190 likes | 474 Views
Array. Dr. Anto Satriyo Nugroho, M.Eng Email: asnugroho@gmail.com Web: http://asnugroho.net/lecture/ds.html. Agenda. Apakah Array itu ? Array Satu dimensi Array Multi dimensi Contoh & Latihan. Definisi. Array adalah penampung sejumlah data yang homogen (bertipe-data yang sama)
E N D
Array Dr. Anto Satriyo Nugroho, M.Eng Email: asnugroho@gmail.com Web: http://asnugroho.net/lecture/ds.html
Agenda • Apakah Array itu ? • Array Satu dimensi • Array Multi dimensi • Contoh & Latihan
Definisi • Array adalah penampung sejumlah data yang homogen (bertipe-data yang sama) • Masing-masing elemen array diakses dengan menggunakan index (subscript) • Index untuk array yang memiliki n elemen adalah 0,1,2,…,n-1 • Berdasarkan banyaknya index, array dapat dikategorikan ke dalam • Satu dimensi array • Multidimensi array
Array Satu Dimensi • Data_type menyatakan tipe data array, tidak boleh jenis void • Array_name menyatakan nama array • Size menyatakan jumlah elemen array • Contoh: int nilai_algodas[10]; • Cara akses ke tiap elemen adalah nilai_algodas[0] nilai_algodas[1] dst • Pada penulisan di atas, array belum diinisialisasi • Inisialisasi WAJIB hukumnya !!! data_type array_name[size];
Contoh #include <stdio.h> int main(void) { int a [10]={10,9,8,7,6,5,4,3,2,1}; int i; for(i=0;i<10;i++) printf("%d\t%d\n",i,a[i]); }
Deklarasi Array sekaligus Inisialisasi • Array dapat juga sekaligus diinisialisasi saat dideklarasikan dengan cara penulisan sebagaimana di atas • Contoh: int nilai_aldas[]={100,70,90,…,100} data_type array_name[] = {constant_1, constant_2, …constant_n};
Array Multidimensi • Contoh deklarasi array 2 dimensi: int nilai_ujian[banyaknyasiswa][kode_matakuliah]; data_type array_name[size1][size2]…[sizen];
Double Loop • Pakailah double loop untuk membuat program menghitung rata-rata nilai yang diperoleh tiap anak ! • Jawaban ada di appendix-01
Cara inisialisasi & akses ke elemen Array #include <stdio.h> int main(void) { int j; int nilai_ujian[3][3]={ {100, 70, 90}, {80, 85, 95}, {100,100, 80} }; for(j=0;j<3;j++) printf("%d %d\n",j,nilai_ujian[j][0]); }
Menghitung Rata-rata #include <stdio.h> int main(void) { int j; int nilai_ujian[3][3]={ {100, 70, 90}, {80, 85, 95}, {100,100, 80} }; for(j=0;j<3;j++){ printf("%d %f\n",j, (nilai_ujian[j][0]+nilai_ujian[j][1]+nilai_ujian[j][2])/3 ); } } Sebenarnya cast diperlukan, untuk Mengubah tipe data dari int ke float.
Penjumlahan matrix #include <stdio.h> int main(void) { int i,j; int ma[2][3]= { {1, 2, 3}, {4, 5, 6} }; int mb[2][3]= { {6, 3, 4}, {5, 1, 2} }; int mc[2][3]= { 0 }; for(j=0;j<2;j++) for(i=0;i<3;i++) mc[j][i]= ma[j][i] + mb[j][i]; for(j=0;j<2;j++) { for(i=0;i<3;i++) printf(“%3d”, mc[j][i]); printf(“\n”); } }
Referensi • Pengantar Algoritma Dengan Bahasa C, Thompson Susabda Ngoen, Salemba Teknika, 2006 (pp.130-139) • BohYoh Shibata, Meikai C Gengo – nyuumonhen, Softbank Publishing, 2004
Double Loop • Pakailah double loop untuk membuat program menghitung rata-rata nilai yang diperoleh tiap anak !
ratarata[0] = ( nilai_ujian[0][0]+nilai_ujian[0][1]+nilai_ujian[0][3] )/3; ratarata[1] = ( nilai_ujian[1][0]+nilai_ujian[1][1]+nilai_ujian[1][3] )/3; ratarata[2] = ( nilai_ujian[2][0]+nilai_ujian[2][1]+nilai_ujian[2][3] )/3;
ratarata[0] = ( nilai_ujian[0][0]+nilai_ujian[0][1]+nilai_ujian[0][3] )/3; pakailah for-loop untuk menghitung bagian ini ratarata[0]=0; for(i=0;i<3;i++) { ratarata[0] = ratarata[0] + nilai_ujian[0][i]; } ratarata[0]=0; for(i=0;i<3;i++) { ratarata[0] += nilai_ujian[0][i]; }
Hal yang sama bisa diterapkan untuk ratarata[1] dan ratarata[2] Dengan demikian, program tsb. akan menjadi sbb. ratarata[0]=0; for(i=0;i<3;i++) { ratarata[0] += nilai_ujian[0][i]; } ratarata[1]=0; for(i=0;i<3;i++) { ratarata[1] += nilai_ujian[1][i]; } ratarata[2]=0; for(i=0;i<3;i++) { ratarata[2] += nilai_ujian[2][i]; } Dapat ditulis lebih ringkas memakai sebuah loop lagi
Hal yang sama bisa diterapkan untuk ratarata[1] dan ratarata[2] Dengan demikian, program tsb. akan menjadi sbb. for(j=0;j<3;j++) { ratarata[j]=0; for(i=0;i<3;i++) { ratarata[j] += nilai_ujian[j][i]; } } Misalnya banyaknya siswa=100, banyaknya matakuliah=10, program di atas akan berubah menjadi for(j=0;j<100;j++) { ratarata[j]=0; for(i=0;i<10;i++) { ratarata[j] += nilai_ujian[j][i]; } } j siswa i matakuliah