Terkadang ada banyak datum (data/nilai) yang memiliki jenis yang sama dan kita ingin menyimpannya secara terpisah (masing-masing datum memiliki tempat sendiri). Sebagai contoh dalam sekolah, setiap kelas memiliki banyak murid. Tentu saja kita bisa menuliskan char nama1[32] = "Adi", nama2[32] = "Budi", nama[32] = "Cahya";
dalam bahasa C. Namun tentu tidak akan efektif jika ada banyak yang ingin kita simpan, seperti 1000 datum. Untuk itulah kita perlu belajar mengenai larik atau array.
Daftar isi
Pengertian
Array merupakan salah satu struktur data yang menampung banyak elemen dengan tipe yang sama. Tak hanya sama dalam tipe data, namun datum yang ada harus saling berhubungan. Banyaknya elemen yang saling berhubungan dalam array tersebut tidak akan berubah (tetap), sehingga biasanya kapasitas dari array akan disesuaikan dengan kemungkinan paling banyak dari jumlah datum.
Membuat (Deklarasi) Array
Ketika kita ingin mendeklarasikan sebuah larik, perlu adanya pendeklarasian atau pembuatan array. Dalam bahasa C, pendeklarasian array cukup tuliskan dengan:
tipe_data nama_identifier[jumlah_elemen];
Ganti tipe_data
dengan tipe data dari elemen dalam array, nama_identifier
adalah nama untuk semua elemen dalam array (secara umum) dan isikan jumlah elemen yang diperlukan. Misalnya untuk menyimpan nilai ujian setiap siswa dalam kelas:
int nilai[40];
Artinya, kita bisa menyimpan nilai dengan kapasitas maksimal 40 bilangan integer (bilangan bulat). Perlu diingat bahwa elemen pertama dari setiap array, dimulai dari 0. Sehingga untuk mengakses nilai dari murid ke-n bisa menuliskannya dengan nilai[n-1]
.
Inisialisasi (Memberi Nilai)
Terkadang array juga bisa langsung memiliki nilai, yaitu dengan kita menginisialisasinya (memberi nilai). Cara melakukannya adalah dengan menuliskan identifier dan indeks dari array tersebut. Misal:
nilai[0] = 70; nilai[1] = 77; nilai[2] = 78; nilai[3] = 87; nilai[4] = 85;
Pendeklarasian dan inisialisasi nilai bisa dilakukan secara terpisah. Namun pendeklarasian juga bisa menyertakan nilai untuk mengisi larik secara langsung. Caranya adalah sebagai berikut:
int nilai[5] = {70,77,78,87,85};
Berdasarkan potongan kode tersebut, nilai[0] = 70, nilai[1] = 77, nilai[2] = 78, nilai[3] = 87 dan nilai[4] = 85. Jika nilai awal yang ingin disimpan dalam array adalah 0, cukup tuliskan {}
tanpa nilai di dalamnya. Sebenarnya kita juga bisa untuk tidak menyertakan ukuran/kapasitas dari array karena dengan memberi nilai seperti berikut, komputer akan otomatis mengerti berapa banyak tempat untuk array tersebut.
int nilai[] = {70,77,78,87,85};
Menggunakan sizeof()
Sering kali kita membutuhkan ukuran yang pasti dari sebuah array. Karena itulah penting untuk menggunakan fungsi sizeof()
. Fungsi ini tak akan menampilkan banyaknya jumlah elemen dari larik, melainkan banyaknya penggunaan memori dari larik tersebut.
Karena int
berukuran 4 byte, maka int nilai[]
pada contoh akan menggunakan memori sebanyak 5*4 = 20 byte. Sehingga banyak elemen dapat dicari dengan:
int banyak_elemen = sizeof(nilai)/sizeof(*nilai); //atau int banyak_elemen = sizeof(nilai)/sizeof(int);
Banyaknya elemen sudah tersimpan dalam variabel banyak_elemen
. Dalam potongan kode tersebut, terdapat penggunaan pointer (*) yang artinya program akan menunjuk elemen pertama dari sebuah array, yaitu nilai[0]
. Sehingga maksudnya adalah: banyak elemen = (total penggunaan memori dari nilai) / (besarnya penggunaan untuk setiap elemen).
Mengakses dengan Perulangan
Adanya array adalah untuk menyimpan banyak elemen yang saling berkaitan. Karena jumlah elemen ada banyak, maka kita perlu juga untuk menggunakan perulangan untuk mempermudah pekerjaan. Perulangan ini bisa kita gunakan baik untuk memberi nilai, maupun mengambil nilai dari array. Misalnya dalam memberi masukan (input) nilai untuk 40 siswa.
#include <stdio.h> int main() { int nilai[40],i; for (i = 0; i < 40; i++) { scanf("%d",&nilai[i]); } }
Dengan demikian, user bisa memberikan nilai pada program tanpa mengubah source code.
Array Multidimensi
Sesuai namanya, jenis array ini memiliki beberapa dimensi. Artinya setiap elemen juga dapat menampung beberapa elemen lagi. Contoh yang mungkin sudah kalian ketahui adalah tabel, papan catur ataupun matriks.
Jika dalam array sebelumnya kita hanya butuh 1 indeks, maka dalam jenis array ini banyaknya indeks tergantung pada banyaknya dimensi. Pendeklarasiannya pun tidak banyak berbeda dari sebelumnya karena cukup menambahkan banyak elemen lagi.
int matriks[10][5];
Banyaknya dimensi tergantung sesuai dengan kebutuhan dan pendeklarasiannya sama, yaitu dengan menambahkan [N].
String
Secara umum, string adalah kumpulan dari satu atau lebih karakter. Berdasarkan pengertian tersebut, string adalah array yang berisi satu atau lebih karakter. Dalam bahasa C, string diakhiri oleh karakter '\0'
. Misalnya "cahInfor"
: dalam bahasa C, kata tersebut terdiri dari 'c'
, 'a'
, 'h'
, 'I'
, 'n'
, 'f'
, 'o'
, 'r'
dan '\0'
. Penggunaan karakter null ('\0'
) ini penting untuk memberi tahu komputer bahwa tidak ada lagi karakter berikutnya, sehingga tidak akan muncul karakter acak pada program.
Cara mendeklarasikan string:
#include <stdio.h> int main() { char nama[] = "cahInfor"; }
Sama seperti array biasa nama[0] = 'c'
…nama[8] = 'r'
dengan tambahan nama[9] = '\0'
. Atau bisa juga dengan memberitahu program kapasitas dari sebuah string.
#include <stdio.h> int main() { char nama[10]; }
Maksimal karakter yang dapat tertampung pada contoh tersebut adalah 10 karakter. Untuk cara memberi input dan mencetaknya akan lebih jelas pada input dan output dalam bahasa C.