Array dan Structure PERTEMUAN 2 !" MENIT# I Putu $arma Putra $ayan %de Rudyart&a Putu %d A'ryan Tata Pangar(a Jurusan Sistem Komputer STMIK STIKOM BALI SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN TEKNIK KOMPUTER (STMIK) STIKOM BALI Jalan Teuku Umar 222, Denpasar-Bali Praktikum Algoritma dan Struktur Data II Array dan Structure 1) Array Array merupakan sekumpulan data yang mempunyai nama dan tipe yang sama, Array disebut juga variabel berindeks. Nilai suatu data dalam Array ditentukan oleh nama dan indeksnya. Array banyak digunakan pada operasi yang melibatkan indeks seperti pada statistik Tipe data Array dapat berupa Array satu dimensi (D!, dua dimensi ("D!, tiga dimensi (#D! atau banyak dimensi. $ara pendeklarasiannya dalam bahasa $%%, yaitu & Array satu dimensi & Tipe_Array nama_Array[ukuran] $ontoh & double Array'()* Array dua dimensi & Tipe_Array nama_Array[ukuran1][ukuran2] $ontoh & int Array'"()*()* Array tiga dimensi & Tipe_Array nama_Array[ukuran1][ukuran2][ukuran3] $ontoh & +loat Array'#()*()*()* Array dalam bahasa $%% tidak dimulai dari indeks satu, tetapi dimulai dari indeks ) (nol!. ,isalnya dideklarasikan suatu Array satu dimensi & int -(#* berarti Array yang terjadi adalah & -()*, -(*, -("*, -(#*. Mem'eri Nilai Pada Array .ntuk memberi nilai pada Array dapat dilakukan dengan mengakses indeksnya, misal & Array_1[0] = 10.0; Array_1[1] = 20.0; /arma.blogspot.0om " Praktikum Algoritma dan Struktur Data II Selain itu, memberi nilai pada Array juga dapat dilakukan dnegan menggunakan struktur perulangan +or yang mana jumlah perulangan yang trjadi disesuaikan dengan ukuran Array. ,isal & for (int i=0;i<10;i++) { [i] = i; ! Mem'aca Nilai Dari Array Nilai Array dapat langsung ditampilkan misalnya & "out<<Array_1[0]<<en#$; "out<<Array_1[0]<<en#$; Atau dapat juga dengan bantuan strukur +or, misalnya & for (int i=0;i<10;i++) { "out<<[i]; ! Selain bertipe numerik, Array dapat juga bertipe 0har. Array 0har dapat dianggap sebagai sebuah string. $ontoh & 0har nama(1* 2 3STI45, 6A7I89 0har alamat( * 2 3:7. T;.4. .,A< N5."""89 .ntuk memberi nilai pada suatu string, tidak diperbolehkan menggunakan operator penugasan (2!. .ntuk memberi nilai string dapat menggunakan tiga 0ara yaitu dengan inisialisasi, diambil dari papan ketik atau menggunakan +ungsi str0py(!. $ontoh penerapan array sebagai berikut & . =uided %%pro&ram &ui#e# 1 'in"$u#e (io)tream.*( 'in"$u#e ("onio.*( +oi# main() { int #ata[,]; %%input #ata ke array /arma.blogspot.0om # Praktikum Algoritma dan Struktur Data II for (int k=0;k<,;k++) { "out<<(ma)ukkan #ata[(<<k<<(] = (; "in--#ata[k]; ! %%tampi$ #ata array for (int .=0;.<,;.++) { "out<<(#ata[(<<.<<(] = (<<#ata[.]<<en#$; ! &et"*(); ! ". =uided " %%pro&ram &ui#e# 2 'in"$u#e (io)tream.*( 'in"$u#e ("onio.*( +oi# main() { int #ata[,]; int rata/ tota$ = 0; %%input #ata ke array for (int k=0;k<,;k++) { "out<<(ma)ukkan #ata[(<<k<<(] = (; "in--#ata[k]; ! %%men&*itun& tota$ ni$ai pa#a array for (int .=0;.<,;.++) /arma.blogspot.0om > Praktikum Algoritma dan Struktur Data II { tota$ = tota$ + #ata[.]; ! %%men&*itun& rata 0 rata rata = tota$ % ,; "out<<(rata 0 rata #ata pa#a array = (<<rata<<en#$; &et"*(); ! #. =uided # %%pro&ram &ui#e# 3 'in"$u#e (io)tream.*( 'in"$u#e ("onio.*( +oi# main() { int #ata[3][3]; int rata/ tota$ = 0; %%input #ata ke array for (int k=0;k<3;k++) { for (int .=0;.<3;.++) { "out<<(ma)ukkan #ata[(<<k<<(][(<<.<<(] = (; "in--#ata[k][.]; ! ! %%men&*itun& tota$ ni$ai pa#a array for (int m=0;m<3;m++) { /arma.blogspot.0om 1 Praktikum Algoritma dan Struktur Data II for (int n=0;n<3;n++) { "out<<#ata[m][n]<<( (; tota$ = tota$ + #ata[m][n]; ! "out<<((<<en#$; ! %%men&*itun& rata 0 rata rata = tota$ % 3; "out<<(rata 0 rata #ata pa#a array = (<<rata<<en#$; &et"*(); ! >. =uided > %%pro&ram &ui#e# 1 'in"$u#e (io)tream.*( 'in"$u#e ("onio.*( +oi# main() { "*ar nama[] = (2T3456 7A83(; int nomor; "*ar a$amat[1,]/ a$amat_$ain[1,]; "out<<(ma)ukkan #ata tentan& 9 (<<en#$; "out<<(ma)ukkan nomor 9 (; "in--nomor; "out<<(ma)ukkan a$amat 9 (; "in--a$amat; %%"ara mem:eri ni$ai pa#a )trin& )tr"py(a$amat_$ain/ a$amat); "out<<(;ata yan& #ima)ukkan 9(<<en#$; "out<<(nama 9 (<<nama<<en#$; "out<<(nomor 9 (<<nomor<<en#$; "out<<(a$amat 9 (<<a$amat<<en#$; /arma.blogspot.0om ? Praktikum Algoritma dan Struktur Data II "out<<(a$amat $ain 9 (<<a$amat_$ain<<en#$; &et"*(); ! 2) Structure Dalam $%%, tipe data struktur yang dideklarasikan dengan kata kun0i stru0t, dapat mempunyai komponen dengan sembarang tipe data, baik tipe data dasar maupun tipe data turunan, termasuk +ungsi. Dengan kemampuan ini, tipe data struktur menjadi sangat berdaya guna. ,isalnya, kita ingin membentuk tipe data struktur yang namanya kotak. ,aka dapat dideklarasikan sebagai berikut& struct tkotak { double panjang; double lebar; }; tkotak kotak; .ntuk memberi nilai ukuran kotak tersebut, kita dapat menggunakan perintah@ perintah ini& kotak.panjang = 10; kotak.lebar = 7; .ntuk memberi nilai panjang dan lebar kotak, salah satu 0aranya adalah seperti di atas. $ara lain untuk memberi nilai panjang dan lebar adalah dengan membentuk suatu +ungsi. 4arena +ungsi ini hanya digunakan untuk memberi nilai data panjang dan lebar suatu kotak, tentunya +ungsi ini khusus milik objek kotak, sehingga harus dianggap sebagai anggota struktur kotak. $%% sebagai bahasa pemrograman dapat mende+inisikan anggota tipe struktur yang berupa +ungsi. Dengan menambah +ungsi tersebut, maka struktur kotak menjadi lebih jelas bentuknya. struct tkotak { double panjang; double lebar; void SetUkuran(double pj, double lb) { panjang = pj; lebar = lb; }; }; tkotak kotak; /arma.blogspot.0om A Praktikum Algoritma dan Struktur Data II dengan tipe struktur kotak seperti itu, untuk memberi nilai panjang dan lebar hanya dengan memanggil +ungsi Set.kuran(! kotak.SetUkuran(10,7); Selain punya ukuran panjang dan lebar, kotak juga mempunyai keliling dan luas. Dengan demikian, kita dapat memasukkan +ungsi untuk menghitung keliling dan luas ke dalam struktur kotak. Sebagai 0atatan, bah/a de+inisi +ungsi yang menjadi anggota struktur dapat ditempatkan di luar tubuh struktur. Dengan 0ara ini maka deklarasi struktur kotak menjadi seperti berikut& struct tkotak { double panjang; double lebar; void SetUkuran(double pj, double lb); double Keliling(); double Luas(); }; tkotak kotak; Contoh penerapan struktur kotak dapat dilihat dalam program berikut: #include<iostream.h> #include<conio.h> struct tkotak { double panjang; double lebar; void SetUkuran(double pj, double lb); double Keliling(); double Luas(); }; void main() { tkotak kotak; kotak.SetUkuran(10,7); cout<<"Panjang : "<<kotak.panjang<<endl; cout<<"Lebar : "<<kotak.lebar<<endl; cout<<"Keliling : "<<kotak.Keliling()<<endl; cout<<"Luas : "<<kotak.Luas()<<endl; getch(); /arma.blogspot.0om B Praktikum Algoritma dan Struktur Data II } void tkotak::SetUkuran(double pj, double lb) { panjang = pj; lebar = lb; } double tkotak::Keliling() { return 2*(panjang+lebar); } double tkotak::Luas() { return panjang*lebar; } Tam*ilan Out*ut+ Panjang : 10 Lebar : 7 Keliling : 34 Luas : 70 /arma.blogspot.0om C