C++ merupakan bahasa pemrograman hasil pengembangan dari bahasa pemrograman C. Pernahkan kamu mempelajari mengenai konsep algoritma pemrograman atau pemrograman terstruktur? Jika pernah, seharusnya kamu juga pernah menggunakan bahasa C untuk membuat programnya. Karena bahasa C bisa dijalankan di compiler C++, maka sebenarnya bahasa C++ sendiri juga bisa digunakan untuk belajar algoritma pemrograman atau pemrograman tersturuktur karena. Tapi, sebaliknya program C++ malahbelum tentu bisa jalan di compiler C.
Sejarah singkat C++
C++ sendiri merupakan bahasa pemrograman tingkat menengah yang dikembangkan oleh Bjarne Stroustrup mulai tahun 1979 di Bell Laboratories. C++ sendiri dapat berjalan di berbagi platform, seperti Windows, Mac OS, dan di berbagai versi UNIX.
Apa itu Standard Template Library (STL) ?
Standard Template Library (STL), merupakan bagian dari C++ Library Standard, yang berupa kumpulan dari algorithm, container, iterator, serta komponen dasar lainnya yang implementasinya berupa template, kelas-kelas, dan fungsi-fungsi khusus yang berguna untuk memperluas fungsionalitas dan standarisasi dari C++ itu sendiri sehingga untuk penggunaanya menjadi lebih praktis. Tujuan utama dari STL adalah untuk men-standarisasi dan meningkatkan performa kode yang dituliskan dengan tepat.
Semisal, daripada terlalu bingung memikirkan jika kita membuat sebuah array biasa, apakah array tersebut bisa menampung 257 data lebih sekaligus? Nah, di sini kita bisa memanfaatkan vector yang secara otomatis memperluas kapasitas penampungan data tadi. Nah, vector sendiri tidak lain halnya seperti array, akan tetapi kapasitas vector lebih dinamis dibandingkan dengan array biasa karena bisa diperluas untuk menampung lebih banyak data lagi ataupun malah dipersempit kapasitasnya sehingga lebih sesuai dengan kebutuhan.
Baca Juga : Perbedaan Web Application dan Website, Emang Beda?
3 komponen acuan C++ Standard Template Library (STL)
Algorithm
Berisi sekumpulan yang digunakan untuk melakukan inisialisasi, pengurutan, pencarian dan transformasi dari sebuah objek yang memiliki kapasitas/jangkauan di dalam container.
Berikut ini contoh penggunaan STL Algorithm Pengurutan di dalam C++
#include <iostream>
#include <algorithm>
using namespace std;
// deklarasikan ukuran dari array
const int UKURAN = 7;
int main ()
{
int bilangan[UKURAN] = { 20, 1, 500, -120, 12, 50, 7 };
// tampilkan ke konsole - log sebelum di urutkan
cout << "array bilangan sebelum diurutakan: " << endl;
for (int i = 0; i < UKURAN; i++)
{
cout << bilangan[i] << " ";
}
// panggil fungsi sort
sort(bilangan, bilangan + UKURAN);
// tampilkan ke konsole - log sesudah diurutkan
cout << endl << endl << "array bilangan sesudah diurutakan: " << endl;
for (int i = 0; i < UKURAN; i++)
{
cout << bilangan[i] << " ";
}
return 0;
}​
Keluaran yang dihasilkan :
array bilangan sebelum diurutakan:
20 1 500 -120 12 50 7
array bilangan sesudah diurutakan:
-120 1 7 12 20 50 500​
Container
Digunakan untuk mengatur sekumpulan objek yang memiliki tipe yang berbeda. Misal: vector, list, map, stack.
Berikut ini contoh penggunaan STL Vector, container yang mirip dengan array yang berisi objek yang mampu mengubah panjangnya secara otomatis.
#include <iostream>
#include <vector>
using namespace std;
int main()
{
// membuat object vecTest untuk menyimpan data integer
vector<int> vecTest;
int i;
// menampilkna ukuran awal dari vecTest
cout << "Ukuran dari vecTest awal adalah = " << vecTest.size() << endl;
// menambahkan 6 nilai baru ke dalam vecTest
for (i = 0; i < 6; i++)
{
vecTest.push_back(i);
}
// menampilkan perubahan ukuran dari vecTest
cout << "Ukuran vecTest setelah ditambahkan 6 nilai baru adalah = " << vecTest.size() << endl;
// mengakses semua nilai dari vecTest
for(unsigned i = 0; i < vecTest.size(); i++)
{
cout << "Nilai dari vecTest dengan index " << i << " adalah " << vecTest[i] << endl;
}
return 0;
}
Keluaran yang dihasilkan :
Ukuran dari vecTest awal adalah = 0
Ukuran vecTest setelah ditambahkan 6 nilai baru adalah = 6
Nilai dari vecTest dengan index 0 adalah 0
Nilai dari vecTest dengan index 1 adalah 1
Nilai dari vecTest dengan index 2 adalah 2
Nilai dari vecTest dengan index 3 adalah 3
Nilai dari vecTest dengan index 4 adalah 4
Nilai dari vecTest dengan index 5 adalah 5
Iterator
Digunakan untuk menelusuri/mengakses setiap detail elemen yang ada dalam suatu objek yang dimana objek itu tadi dapat berupa container ataupun sub-bagian dari sebuah container. Algorithm membutuhkan iterator untuk dapat berinteraksi dengan objek yang ada pada container.
Berikut ini contoh penggunaan STL Iterator.
#include <iostream>
#include <vector>
using namespace std;
int main()
{
// membuat object vecTest untuk menyimpan data integer
vector<int> vecTest;
int i;
// menampilkna ukuran awal dari vecTest
cout << "Ukuran dari vecTest awal adalah = " << vecTest.size() << endl;
// menambahkan 10 nilai baru ke dalam vecTest
for (i = 0; i < 10; i++)
{
vecTest.push_back(i);
}
// menampilkan perubahan ukuran dari vecTest
cout << "Ukuran vecTest setelah ditambahkan 10 nilai baru adalah = " << vecTest.size() << endl;
// mengakses semua nilai dari vecTest menggunakan iterator
vector<int>::iterator val = vecTest.begin();
while(val != vecTest.end())
{
cout << "Nilai dari val adalah = " << *val << endl;
val++;
}
return 0;
}
Keluaran yang dihasilkan :
Ukuran dari vecTest awal adalah = 0
Ukuran vecTest setelah ditambahkan 10 nilai baru adalah = 10
Nilai dari val adalah = 0
Nilai dari val adalah = 1
Nilai dari val adalah = 2
Nilai dari val adalah = 3
Nilai dari val adalah = 4
Nilai dari val adalah = 5
Nilai dari val adalah = 6
Nilai dari val adalah = 7
Nilai dari val adalah = 8
Nilai dari val adalah = 9
Referensi:
- https://en.wikibooks.org/wiki/C%2B%2B_Programming/STL
- https://www.tutorialspoint.com/cplusplus/cpp_stl_tutorial.htm
- https://oopcpp.wordpress.com/2017/05/17/standard-template-library-stl-dalam-c/
- https://www.slideshare.net/KuliahKita/pemrograman-c-standard-templatelibrary
- http://www.cplusplus.com/reference/algorithm/
- https://www.tutorialspoint.com/cpp_standard_library/vector.htm
- http://www.cplusplus.com/reference/iterator/
- https://www.cppreference.com/Cpp_STL_ReferenceManual.pdf