STRUKTUR DATA Array atau Larik
Pengantar Array / Larik Array/larik adalah sekumpulan elemen yang bertipe sama(homogen). Deklarasi array pada bahasa C++ tipe_data nama_array[elemen]; Suatu array dapat digambarkan sebagai kotak panjang yang berisi kotak-kotak kecil didalam kotak panjang tersebut
Contoh: int nilai[6]; Elemen Array Elemen 1 2 3 4 5 6 1 2 3 4 5 1 2 3 4 5 Subscript / Index Array Nilai
Index array pada C++ dimulai dari 0 Elemen bisa didefinisikan atau pun tidak, dan bisa langsung diberi nilai awal. Contoh : int nilai[]={16, 2, 77 40, 12071}; Untuk mengakses data pada array, gunakan nomor index sebagai penunjuk lokasi memori, seperti format ini nama_array[index]; Index array pada C++ dimulai dari 0
Nilai/data yang ada pada array harus sama jumlahnya dengan elemen array yang sudah didefinisikan. Jika elemen dikosongkan, artinya anda tidak membatasi jumlah nilai yang ada pada array tersebut. Array terbagi 2, yaitu array satu dimensi dan multidimensi. Array dapat juga dijadikan argumen/ parameter sebuah fungsi.
Array Berdimensi Satu - Misal array Nilai Secara umum suatu array Nilai index bergerak dari L sampai U, ditulis Nilai (L:U)=L,L+1,L+2,…..,U Ex : Kita dapat menuliskan data hasil pencatatan suhu suatu ruangan setiap satu jam selama 24 jam, Nilai minimum dari index disebut batas bawah atau lower bound(L), sedang nilai maximum disebut batas atas atau upper bound(U), sedangakan untuk array “suhu” yang elemennya dapat kita tulis sebagai SUHU(I), batas bawahnya adalah 1 dan batas atasnya 24. SUHU(I) menyatakan suhu pada jam ke-I, dan I=1<=I<=24. Batas bawah dari array, pada beberapa aplikasi, tidak selalu diambil 1. Kadang-kadang diambil batas bawah nol, bahkan juga negatif. Banyaknya elemen sebuah array disebut rentang atau range. Jadi array A(L:U) mempunyai range sebesar U-L+1. Secara khusus bila L=1 dan U=N, maka range dari array A(l:N) adalah N-I+1 = N. Nilai(1) Nilai(2) Nilai(3) …… Nilai(n)
Contoh Program 1 /* ----------------------------- */ /* Inisialisasi Array Dimensi 1 */ #include<conio.h> #include<iostream.h> void main() { float nilai[5] = {56.4, 67.6, 57.7, 76.3, 72.5}; int i; clrscr(); for(i=1; i<=5; i++) cout<<"Nilai Array Index ke - "<<i<<" = "; cout<<nilai[i]<<endl; } getch();
Array Berdimensi Banyak Misal array B merupakan array berdimensi 2 yang mempunyai M elemen berupa array pula, yang terdiri dari N elemen. Kalau hal tersebut kita gambarkan, akan terbentuk baris dan kolom Secara umum array dimensi dua B, dengan elemen bertipe data T, index baris dari 1 sampai M, index kolom dari 1 sampai N, ditulis sebagai B(1:M, 1:N) = (B(I,J)), I = 1, 2, ...,M dan J = 1, 2,...,N dengan setiap elemen B(I,J) bertipe data T. Array B tersebut dikatakan berukuran atau berorder M x N. Di sini banyak elemen array adalah M*N Cross Section suatu array berdimensi dua adalah pengambilan salah satu subscript, menggunakan notasi * (asterisk). 1 2 N 1 2 M
Contoh Program 2 /* ---------------- */ /* Array Dimensi 2 */ #include<conio.h> #include<stdio.h> #include<iostream.h> #include<iomanip.h> void main() { int i, j; int data_jual[3][4]; clrscr(); for(i=0;i<=2;i++) for(j=0;j<=3;j++) cout<<"Data Ke - "<<i<<" "<<j<<; cout<<"Jumlah Penjulan : "; cin>>data_jual[i][j]; }
cout<<"Data Penjualan Pertahun"<<endl; cout<<"-----------------------"<<endl; cout<<"NO 2001 2002 2003"<<endl; for(i=0;i<=2;i++) { cout<<setiosflags(ios::left)<<setw(5)<<i; for(j=0;j<=3;j++) cout<<setiosflags(ios::right)<<setw(4); cout<<data_jual[i][j]; cout<<" "; } cout<<endl; getch();
Contoh array dimensi tiga adalah penyajian data mengenai banyaknya mahasiswa dari-20 perguruan tinggi di Jogjakarta, berdasarkan tingkat semester (tingkat 1, 2 sampai dengan 5), dan jenis kelamin (pria atau wanita). Misalnya array tersebut dinamakan MHS. Ambil sebagai index pertama, tingkat : I = 1, 2,...,5; index kedua, jenis kelamin (pria = 1, wanita = 2): J = 1,2, dan index ke-3, Perguruan Tinggi adalah K = 1,2,...,20. Jadi MHS(4,2,17) menyatakan jumlah mahasiswa tingkat 4, wanita, dari perguruan tinggi ke 17.
Contoh Program 3 /* ---------------- */ /* Array Argumen/Fungsi */ #include <iostream.h> #include <conio.h> void printarray (int arg[], int length) { for (int n=0; n<length; n++) cout << arg[n] << " "; cout << "\n"; } int main () int firstarray[] = {5, 10, 15}; int secondarray[] = {2, 4, 6, 8, 10}; printarray (firstarray,3); printarray (secondarray,5); getch(); return 0;