A. Array sebagai Penyimpanan Data
Array (larik) identik dengan kumpulan data-data bertipe sama dan menggunakan nama yang sama. Nilai-nilai data di suatu array disebut dengan elemen-elemen array, yang letak urutannya ditunjukkan oleh suatu indeks (subscript). Dengan demikian, antara satu variabel dengan variabel lainnya di dalam array dibedakan berdasarkan subscript. Subscript berupa bilangan di dalam tanda kurung siku (kurawal). Melalui subscript inilah setiap elemen array dapat diakses. Nilai subscript pertama secara default adalah 0. Bila kita menyatakan int x[10], hal ini berarti 10 elemen yang dimulai dari 0. Karena itu elemen terakhir array adalah x[9]. Hal ini terjadi karena pada dasarnya C++ tidak pernah mengecek array.
1. Pengertian Array
Pada dasarnya adalah sebuah variabel yang memiliki suatu nama tertentu, namun di dalamnya terbagi menjadi berbagai variabel yang dibedakan berdasarkan nomor indeks. Sebuah variabel yang terbagi berdasarkan nomor indeks memiliki tipe data yang sama. Dengan pengecualian pada string karakter, semua tipe hingga saat ini hanya dapat menampung sebuah nilai.
[Gambar 5.1: Variabel Array]
Pada saat membuat variabel array kita dapat membagi variabel tersebut menjadi n buah elemen array, di mana setiap elemen ditandai dengan suatu nomor indeks yang selalu dimulai dari angka 0 (nol). Sehingga bila membuat variabel array bernama num yang membagi nya menjadi 5 buah elemen, maka variabel tersebut akan memiliki elemen num[0], num[1], num[2], num[3], dan num[4]. Guna memanggil nilai dari elemen tersebut, hanya perlu memanggil nama variabelnya dan nomor indeksnya saja. Bentuk umum dalam mendeklarasikan suatu variabel array adalah sebagai berikut:
type_data nama_variabel_array[jumlah_elemen_array];
2. Array Dimensi Satu
Array dimensi satu identik dengan data-data akan disimpan dalam satu baris array yang hanya dibutuhkan satu penomoran indeks. Pada dasarnya, data array akan disimpan dalam memori yang berurutan dengan elemen pertama memiliki indeks bernilai 0. Misalnya sebuah variabel nilai_uji yang dideklarasikan sebagai array dengan 9 elemen, maka elemen pertama memiliki indeks sama dengan 0, dan elemen terakhir memiliki indeks 8.
[Gambar 5.2: Elemen variabel nilai_uji]
Bentuk umum pendeklarasian array dimensi satu adalah sebagai berikut.
Tipe_data nama_variabel[ukuran]
Bentuk inisialisasi array dimensi satu adalah sebagai berikut.
Tipe_data nama_variabel[ukuran] = {elemen1, elemen2, ..., elemen-n}
Perhatikan contoh program berikut:
#include <iostream>
#include <conio.h>
// Array Dimensi Satu
void main() {
clrscr(); // untuk menghapus tampilan layar
int nilaix[5];
cout << "Masukan enam data nilai" << endl;
cout << "Nilai 1 : "; cin >> nilaix[0];
cout << "Nilai 2 : "; cin >> nilaix[1];
cout << "Nilai 3 : "; cin >> nilaix[2];
cout << "Nilai 4 : "; cin >> nilaix[3];
cout << "Nilai 5 : "; cin >> nilaix[4];
cout << endl;
cout << "Data nilai yang anda masukan " << endl;
cout << "1 2 3 4 5" << endl << endl;
}
cout << nilaix[0] << " ";
cout << nilaix[1] << " ";
cout << nilaix[2] << " ";
cout << nilaix[3] << " ";
cout << nilaix[4] << endl;
getch();
Pengiriman parameter berupa array dimensi satu identik dengan pengiriman secara acuan (referensi) karena yang dikirimkan adalah alamat dari elemen pertama array, bukan seluruh nilai-nilai elemennya. Alamat elemen pertama dari array dapat ditunjukkan oleh nama larik yang tidak diikuti dengan indeks.
b. Array Dimensi Dua
Array dua dimensi identik dengan perluasan dari array satu dimensi. Array dua dimensi terdiri dari beberapa baris dan beberapa kolom, dan semua baris dan semua kolom elemen array harus memiliki tipe data yang sama sedangkan pada satu dimensi hanya terdiri dari sebuah baris bertipe sama. Hal ini berarti memberi kesempatan untuk menyimpan data baik dalam bentuk baris maupun dalam bentuk kolom. Oleh karena menerima data baik dalam baris dan kolom, maka dibutuhkan dua buah nilai indeks.
Bentuk umum pendeklarasian array dimensi dua adalah sebagai berikut.
Tipe_data nama_variabel[jumlah_baris][jumlah_kolom]
Bentuk inisialisasi array dimensi dua adalah sebagai berikut.
Tipe_data nama_variabel[jumlah_baris][jumlah_kolom] = {{elm1-1}, {elm-n-n}}
Meskipun pengiriman parameter berupa array dimensi dua memiliki kemiripan dengan pengiriman parameter array satu dimensi, tetapi terdapat perbedaan pokok yang terletak pada array dimensi dua dengan menyebutkan MAX_ROWS dan MAX_COLS yang digunakan pada pengiriman parameter array dimensi dua. Saat pengiriman parameter harus menyebutkan jumlah dimensi array untuk kolom, sehingga ukuran kolom dapat diketahui. Hal ini dikarenakan adanya pemesanan variabel array di memori.
c. Array Multidimensi
Array multidimensi diterjemahkan sebagai suatu array yang memiliki dimensi lebih dari dua. Bentuk pendeklarasian array multidimensi memiliki kemiripan dengan deklarasi array dimensi satu maupun dimensi dua. Deklarasi array tersebut adalah sebagai berikut:
tipe_array nama_array[ukuran 1][ukuran 2] ... [ukuran n]
2. Deklarasi Array
Untuk mendeklarasikan sebuah array, harus menyebutkan tipe data array yang dibuat, seperti int, float, ataupun double beserta ukuran array-nya. Guna menentukan ukuran pada penempatan jumlah nilai bisa disimpulkan dengan tanda kurung siku ([]) yang mengelilingi. Metode yang umum untuk membuat array dimulai dengan mendeklarasikan memori untuk menampung semua elemen yang sesuai dengan yang dideklarasikan.
a. Elemen Kosong
Elemen kosong digunakan untuk mendeklarasikan variabel array tanpa memasukan nilai ke dalam variabel tersebut. Misalnya int nomor [6] yang berarti instruksi tersebut menyatakan suatu variabel array bernama 'nomor' bertipe integer dideklarasikan dan memesan elemen array berjumlah 6 buah. Nilai 6 yang berada di dalam tanda kurung ke-6, menunjukkan jumlah elemen dimulai dari angka 0 sampai 5. Walaupun programmer tidak dapat melihat dengan karakter '0' karakter ini akan memberitahu compiler bahwa akhir dari elemen array telah dicapai. Meskipun program dari compiler umumnya menggunakan karakter tersebut secara eksplisit, tetapi compiler mampu mengetahui di mana berakhirnya.
b. Elemen Pointer
Elemen pointer digunakan untuk mendeklarasikan variabel array dengan memasukkan nilainya sekaligus ke dalam variabel tersebut. Misalnya int nomor [6] = { 28, 10, 23, 20, 9, 14 }; yang berarti instruksi tersebut menyatakan bahwa suatu variabel array bernama 'nomor' bertipe integer dideklarasikan dan memesan elemen array berjumlah 6 buah. Kemudian, nilai pada setiap elemen array disimpan sesuai urutan pada instruksi tersebut.
[Gambar 5.4: Int nomor[6]]
Dengan demikian, inisialisasi array identik dengan pemberian nilai default pada array. Pemberian nilai default ini dilakukan pada saat array dideklarasikan, sedangkan nilai di dalam kurung kurawal disebut initialization list. Bentuk umum dari inisialisasi array adalah sebagai berikut:
tipe_data nama_array[jumlah_elemen] = {nilai1, nilai2,...,nilaiN}
Misalnya sebuah kode program memiliki tipe data array yang berisi lima elemen dengan nilai default dari kelima elemen array adalah 2, 4, 6, 8, 10, jadi bentuk penerapannya adalah sebagai berikut:
#include <iostream>
using namespace std;
int a[5] = {2, 4, 6, 8, 10}, jml_x = 5;
void input (int data, int i) {
a[i] = data;
}
void tampil (int nElemen) {
for (int i = 0; i < nElemen; i++) cout << a[i] << " ";
cout << endl;
}
void main() {
int data;
cout << "Belum ada perubahan data array" << endl;
tampil (jml_X);
for(int i=0; i<jml_X; i++) {
cout << "a[" << i << "] = ";
cin >> data;
input (data,i);
}
cout << endl;
cout << "Setelah terjadi perubahan data array" << endl;
tampil (jml_X);
3. Mengurutkan Elemen Array
Metode metode yang digunakan untuk mengurutkan data array, antara lain Exchange Sort, Selection Sort, Insertion Sort, Bubble Sort, Quick Sort, Shell Sort, Merge Sort, Heap Sort, dan lain-lain. Namun, metode yang paling mudah dan banyak digunakan adalah Selection Sort, Bubble Sort, dan Insertion Sort.
a. Selection Sort
Metode Selection Sort menggunakan elemen-elemen yang diperbandingkan satu per satu hingga seluruh array disusun berdasarkan ketentuan yang berlaku.
Langkah-langkah mengurutkan array menggunakan metode Selection Sort adalah sebagai berikut:
* Proses 1:
* Variabel indeks diberi nilai 1 (data ke-1) kemudian data indeks dibandingkan dengan data ke-2. Jika data indeks lebih besar, maka nilai indeksnya diganti dengan data ke-2. Jika tidak, nilai indeks tetap. Kemudian, data indeks dibandingkan lagi dengan data ke-3. Jika datanya lebih besar, maka nilai indeks harus ditukar. Setelah selesai, nilai indeks diperiksa apakah sudah berubah atau belum. Jika nilai indeks mengalami perubahan, maka data ke-1 harus ditukar dengan data indeks.
* Proses 2:
* Variabel indeks diberi nilai 2 (data ke-2) kemudian data indeks dibandingkan dengan data ke-3. Jika data indeks lebih besar, maka nilai indeksnya diganti dengan data ke-3. Jika tidak, nilai indeks tetap. Kemudian, data indeks dibandingkan lagi dengan data ke-4. Jika datanya lebih besar, maka nilai indeks harus ditukar. Setelah selesai, nilai indeks diperiksa sudah berubah atau belum. Jika nilai indeks mengalami perubahan, maka data ke-2 ditukar dengan data indeks. Demikian seterusnya hingga proses berlanjut di mana jumlah elemen array dikurangi satu.

Komentar