Array Linear Array (biasa disebut Array) adalah salah satu bentuk struktur data yang bersifat Linear (continue). Nilai data Array harus homogen (bertipe data sama). Array merupakan koleksi data dimana setiap elemen memakai nama yang sama dan bertipe sama dan setiap elemen diakses dengan membedakan index array-nya. Representasi (Pemetaan) di memori ARRAY BERDIMENSI SATU Lihat gambar dibawah ini, nilai data A (18) dismpan mulai dari alamat 1136 di memori.
DEKLARASI ARRAY DENGAN C++ Perlu diperhatikan bahwa C++ secara otomatis akan menyediakan lokasi memori sesuai dengan yang dideklarasikan, dimana nomor indeks selalu dimulai dari 0. Berikut adalah contoh variabel bernama C yang mempunyai 5 (lima) lokasi memori yang semuanya bertipe int. Masing-masing nilai dalam setiap lokasi mempunyai identitas berupa nama ( C ) dan nomor indeks yang dituliskan didalam tanda kurung siku [ ] C[0] - 45 C[1] 6 C[2] 0 C[3] 72 C[4] 1543 Sebagai contoh : 72 adalah nilai dari C [3]. Nilai indeks merupakan suatu ekspresi. 2
DEKLARASI ARRAY DENGAN C++ Variabel array dideklarasikan dengan mencantumkan tipe dan nama variabel yang diikuti dengan banyaknya lokasi memori yang ingin dibuat. Dengan demikian, deklarasi untuk variabel array C diatas adalah : int C[5] Perlu diperhatikan bahwa C++ secara otomatis akan menyediakan lokasi memori sesuai dengan yang dideklarasikan, dimana nomor indeks selalu dimulai dari 0. Nilai suatu variabel array dapat juga diinisialisasi secara langsung pada saat deklarasi, misalnya : int C[5] = { - 45, 0, 6, 72, 1543 Berarti setiap lokasi memori dari variabel array C langsung diisi dengan nilai-nilai yang dituliskan didalam tanda kurung kurawal. Contoh: Array dimensi satu dengan C++ #include <stdio.h> int main () { int square[100]; int i; /*loop index */; int k; /*the integer */ /*calculate the squares */ for (i=0;i<10;i++){ k=i+1; square [ i ]=k*k; printf( \n pangkat dari %d adalah %d, k, square[ i ]); return 0; 3
Sorting Algorithm Bubble Sort -- Selection Sort -- Insertion Sort -- Exchange Sort Sorting Algorithm Salah satu bagian penting dari struktur data adalah sorting atau pengurutan data. Ada banyak sekali Algoritma pengurutan data di dunia komputer, yatu : bubble sort, selection sort, insertion sort, exchange sort, quick sort, merge sort, dll. Setiap algoritma memiliki kelebihan dan kekurangan masing masing, kita akan mempelajari cukup 4 algoritma saja, yaitu bubble sort, selection sort, insertion sort, dan exchange sort. Bila ingin mempelajari algoritma yang lain silakan berkunjung ke www.wikipedia.org. 4
Bubble Sort Metode gelembung (bubble sort) sering juga disebut dengan metode penukaran (exchange sort) adalah metode yang mengurutkan data dengan cara membandingkan masing-masing elemen, kemudian melakukan penukaran bila perlu. Metode ini mudah dipahami dan diprogram, tetapi bila dibandingkan dengan metode lain yang kita pelajari, metode ini merupakan metode yang paling tidak efisien. Perhatikan contoh program Bubble Sort ke 1 berikut ini : 5
Task 1 1. Apa yang dilakukan program diatas? 2. Lakukan untuk pengurutan sebaliknya! 3. Pengurutan diatas dilakukan dari depan atau belakang? Buat program untuk sebaliknya! 4. Buat program agar user bisa inputkan data secara dinamis, baik untuk ascending, maupun descending! 5. Tambahkan kode agar user dapat melihat proses pengurutan data! Note : Ascending adalah pengurutan data dari terkecil menuju terbesar, sedangkan descending adalah pengurutan dari data terbesar menuju terkecil. 6
Contoh program Bubble Sort ke 2 : // program sorting dengan metode bubble sort #include <iostream.h> void main() { int i, n, temp, data[5]; // input/baca data i=1; while(i<=5) { cout <<"Data ke "<<i<< " : "; cin >> data[i-1]; i++; n=i-1; // proses bubble sort for(int x=0; x<n; x++) { for(int y=0; y<n-1; y++) { if(data[y]>data[y+1]) { int temp = data[y+1]; data[y+1] = data[y]; data[y] = temp; // cetak data array sesudah sort cout<<endl<<"data array sesudah sort :"<<endl; i=1; while(i<=5) { cout <<"Data ke "<<i<< " : "<< data[i-1]<<endl; i++; 7
Selection Sort Metode seleksi melakukan pengurutan dengan cara mencari data yang terkecil kemudian menukarkannya dengan data yang digunakan sebagai acuan atau sering dinamakan pivot. Perhatikan kode berikut : 8
Task 3 1. Apa yang dilakukan program diatas? 2. Lakukan untuk pengurutan sebaliknya! 3. Apa fungsi pos? 4. Buat program agar user bisa inputkan data secara dinamis, baik untuk ascending, maupun descending! 5. Tambahkan kode agar user dapat melihat proses pengurutan data! 9
Insertion Sort Proses pengurutan dengan metode penyisipan langsung dapat dijelaskan sebagai berikut : Data dicek satu per satu mulai dari yang kedua sampai dengan yang terakhir. Apabila ditemukan data yang lebih kecil daripada data sebelumnya, maka data tersebut disisipkan pada posisi yang sesuai. Perhatikan kode berikut : 10
Task 4 1. Apa yang dilakukan program diatas? 2. Lakukan untuk pengurutan sebaliknya! 3. Apa fungsi tampung? 4. Buat program agar user bisa inputkan data secara dinamis, baik untuk ascending, maupun descending! 5. Tambahkan kode agar user dapat melihat proses pengurutan data! 11
Exchange Sort Perhatikan kode berikut : Task 2 1. Apa yang dilakukan program diatas? 2. Lakukan untuk pengurutan sebaliknya! 3. Buat program agar user bisa inputkan data secara dinamis, baik untuk ascending, maupun descending! 4. Tambahkan kode agar user dapat melihat proses pengurutan data! 12
5. Apa perbedaan antara exchange sort dan bubble sort! 13