• Like
Perulangan for
Upcoming SlideShare
Loading in...5
×
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,796
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
43
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. PERULANGAN FOR DANARRAY 2 DIMENSIKelompok 11. Aghun Gugah P.W. 2010435006652. Prasetya Wira 2010435006703. Dinda 2010435006184. Nurmaya 2010435006715. Zahra 2010435006806. Ulfa 2010435006217. M. Firgiawan 2010435006628. M. Arif 2010435006769. Ahmad Nurcolis 20104350062410. Septian 20104350064011. Ahmad Fahmi 20104350060912. Dwi Wulan 20104350059813. M. Zaelani 20104350065914. M. Kurtubi 20104350064615. Syartika 20104350062316. As’ad Aufar 20104350063217. Fajar Norracmad 20104350064418. Julistio Pratama 20104350062819. Rahmat Fajar 201043500599UNIVERSITAS INDRAPRASTA PGRIJAKARTA2011
  • 2. PERULANGANDalam pemrograman ada dua jenis perulangan, yaitu perulangan yang sudahdiketahui dengan pasti jumlah perulangannya dan yang tidak diketahui jumlahperulangannya.Yang dimaksud dengan perulangan yang sudah diketahui jumlahperulangannya adalah pembuat program sudah mengetahui dengan pasti berapa kalistatement dalam blok perulangan yang harus dikerjakan. Sedangkan perulanganyang tidak pasti, statement yang dikerjakan dalam blok perulangan tidak diketahuidengan pasti jumlah perulangan yang dikerjakan, misalnya suatu statement akandiulang apabila user meng-input-kan data lebih besar dari 5. Dalam Java perulanganyang sudah diketahui dengan pasti jumlah perulangannya bisa diimplementasikanmenggunakan for… sedangkan untuk perulangan yang tidak diketahui dengan pastibisa menggunakan jenis perulangan while atau do – while.Perulangan forAda tiga komponen utama yang harus diperhatikan dalam penggunaanperulangan for…. Tiga komponen tersebut sebagai berikut:Variabel pencacahVariabel ini digunakan untuk mengontrol jumlah perulangan yang dikerjakan. Setiapkali perulangan dikerjakan maka nilai variabel ini akan selalu berubah. Nilai dalamvariabel dapat berubah semakin besar (increment) atau semakin kecil (decrement).PersyaratanPersyaratan yang digunakan agar perulangan dikerjakan. Syarat ini bisa berdasarkannilai dalam variabel penghitung atau variabel lain (yang telah dideklarasikansebelumnya) menggunakan operator relasional.Peubah variabel pencacahStatement peubah variabel pencacah bertugas merubah nilai dalam variabelpencacah selama perulangan terjadi. Perubahan nilai dapat semakin besar(increment) atau semakin kecil (decrement).Kita akan membahas bentuk perulangan lain, yaitu perulangan for. Setiapbentuk perulangan for dapat diubah menjadi bentuk perulangan while denganfungsi yang sama tanpa mengubah alur program. Tetapi tergantung daripermasalahan yang akan kita pecahkan, menulis program dengan for akanmembuat alur program lebih mudah dipahami.
  • 3. Misalnya, kita akan menghitung 1+2+3+4+5+...+100. Kita bisa ekspresikanprogram tersebut dalam bentuki = 1;jumlah = 0;while (i <= 100) {jumlah += i;i++;}Perulangan ini dapat ditulis juga denganjumlah = 0;for (i = 1; i <= 100; i++)jumlah += iApa point-point penting yang kita lihat dari perubahan ini? Pertama mari kita lihatbentuk penggunaan while yang umum dilakukaninisialisasi variabelwhile (suatu_kondisi_variabel) {perintahupdate_variabel}Di sini perulangan while memiliki 3 komponen penting, yaitu inisialisasi, yaitumemberikan nilai awal suatu variabel, suatu_kondisi_variabel, yaitu pengujianbahwa perulangan akan terus dilakukan selama kondisi ini bernilai true, dan terakhirupdate_variabel, yaitu instruksi mengubah nilai kondisi variabel untuk membatasiperulangan sehingga akan selesai suatu saat, tidak berulang terus menerus.Pada perulangan for, ketiga komponen ini dirangkai menjadi satu dalam bentukfor (inisialisasi_variabel; kondisi_variabel; update_variabel)perintahatau jika perintah merupakan blok yang terdiri dari banyak perintah, dapat dituliskanjuga dalam bentukfor (inisialisasi_variabel; kondisi_variabel; update_variabel){banyak_perintah}Di sini inisialisasi variabel bisa berupa apa saja yang berbentuk perintah, misalnyamemberikan variabel dengan nilai awal tertentu, dalambentuk variabel = nilai_awal.kondisi_variabel harus berbentuk pernyataan booleanseperti suatu_kondisi pada pernyataan while.Sedangkanupdate_variabel juga berbentuk perintah.inisialisasi_variabel, kondisi_variabel, atau update_variabel dapatdikosongkan dan tidak harus selalu diisi. Bagian yang tidak diisi yang selaludigantikan dengan true, yang artinya perulangan akan terus dieksekusi tanpa henti.Untuk menghentikannya, perintah break harus diberikan ditengah-tengah badanperulangan.
  • 4. Bentuk paling umum dari perulangan for adalah menghitung. Biasanya perulanganini memiliki bentuk sepertifor (variabel = nilai_minimum; variabel <= nilai_maksimum;variabel++) {perintah}Perhatikan bagian terakhir adalah menaikkan nilai variabel dengan 1, yang artinyaperulangan akan dimulai dengannilai_minimum, diakhiridengan nilai_maksimum dengan jeda 1.Contoh, jika kita ingin berhitung 2,5,8,11,14,17, atau dengan kata lain, mulai dari 2hingga 17 dengan jeda 3, kita bisa mengekspresikan for denganfor (i = 2; i <= 17; i += 3) {System.out.println(i);}Untuk menghitung mundur, kita bisa menggunakan perintah sepertifor (i = 20; i >= 0; i--) {System.out.println(i);}Atau jika kita ingin menghitung maju dan mundur pada saat yang bersamaan,misalnya i dari 1 hingga 10 dan j dari 10 hingga 1, kita bisa ekspresikan denganfor (i = 1, j = 10; i <= 10; i++, j--) {System.out.println(i + " " + j);}Catatan penting! Variabel yang akan digunakan, dalam contoh di atas i dan j,adalah variabel yang harus dideklarasikan sebelumnya. Java adalah bahasapemrograman ketat, yang artinya semua harus didefinisikan dengan jelas sebelumdigunakan. Untuk banyak kasus, deklarasi variabel dan perulangannya bisadilakukan serentak pada bagian inisialisasi variabel. Misalnyafor (int i = 1; i <= 10; i++) {System.out.println(i)}Perhatikan ada imbuhan int di depan inisialisasi variabel i, yang merupakandeklarasi variabel i dengan tipe data int sekaligus menginisialisasi nilainya dengan1.
  • 5. Bentuk umum perulangan for sebagai berikut:for (variabelPencacah; persyaratan; peubahVariabelPencacah) {statement......}Contoh program://Nama program: Perulangan1.javapublic class Perulangan1 {public static void main(String[] args) {int counter;int batasPerulangan = 10;for (counter=1; counter<=batasPerulangan; counter++) {System.out.println("Perulangan ke-"+counter);}}}
  • 6. Output program:Perulangan ke-1Perulangan ke-2Perulangan ke-3Perulangan ke-4Perulangan ke-5Perulangan ke-6Perulangan ke-7Perulangan ke-8Perulangan ke-9Perulangan ke-10Penjelasan:Program diawali dengan pendeklarasian variabel, dimana nama variabel tersebutadalah counter dan batasPerluangandengan tipe data integer.Variabel batasPerulangan diinisialisasi dengan nilai 10. Pada baris perulangan for…,variabelcounter diinisialisasi dengan nilai 1. Persyaratannya adalah statement dalamblok perulangan akan dikerjakan apabila nilai variabel counter kurang dari samadengan nilai dalam variabel batasPerulangan. Dan setiap kali statement blokperulangan selesai dikerjakan nilai dalam variabel counter ditambah 1 (increment).//Nama program: Perulangan2public class Perulangan2 {public static void main(String[] args) {int bilangan1=6;int bilangan2=4;int hasil=0;String angka = "";
  • 7. for (int counter=1; counter<=bilangan2; counter++) {hasil += bilangan1;angka = Integer.toString(bilangan1);System.out.println(angka);}System.out.println("------ +");System.out.println(hasil);}}Output program:6666------ +24Penjelasan program:Program diawali dengan pendeklarasian variabel. Variabel tersebutadalah bilangan1, bilangan2, hasil bertipe data integer dan berturut-turutdiinisialisasi dengan nilai 6, 4 , dan 0. Dalam program tersebut juga terdapatvariabelangka diinisialisasi dengan string kosong (“”). Pada barisperulangan for… dideklarasikan variabel counter dan diinisialisasi dengan nilai 1.Variabel counter dideklarasikan dalam statement perulangan for…, maka hanya bisa
  • 8. digunakan dalam perulangan itu saja. Persyaratan dalam perulangan ini adalahstatement dalam blok perulangan dikerjakan apabila nilai variabel counter kurangdari sama dengan nilai dalam variabel bilangan2. Dan setiap kali statement dalamblok perulangan selesai dikerjakan, nilai dalam variabel counter ditambah 1(increment).Syarat terjadinya pengulangan for… bisa terdiri lebih dari satu statement relasionalyang digabung dengan operator logika AND atau OR. Berikut adalah contoh programperulangan for dengan dua syarat statement relasional yang digabungkanmenggunakan operator AND.public class Perulangan4 {public static void main(String[] args) {int bilangan1 = 1;int bilangan2 = 10;int counter;for (counter=1; (counter<10) && (bilangan1<bilangan2);counter+=2) {System.out.println("t"+ bilangan1 + "t" + bilangan2 +"t" + counter);bilangan1++;bilangan2--;}}}
  • 9. Output program:1 10 12 9 33 8 54 7 75 6 9For Bersarang (Nested for)Yang dimaksud dengan nested for adalah apabila di dalam blok statementperulangan terdapat perulangan lagi. Program berikut adalah contoh dari nestedfor…//Nama program: Perulangan3.javapublic class Perulangan3 {public static void main(String[] args) {int bilangan1;int bilangan2;for (bilangan1=1; bilangan1<=3; bilangan1++) {for (bilangan2=1; bilangan2<=2; bilangan2++) {System.out.println("[" + bilangan1 + "]" + "[" +bilangan2 + "]");}}}}
  • 10. Output program:[1][1][1][2][2][1][2][2][3][1][3][2]Penjelasan:Perulangan for… yang berada di posisi dalam akan dikerjakan terlebih dahulu sampaiselesai, kemudian variabel pencacah for… di luarnya akan ditambah satu(bilangan1++). Instruksi for… di dalam akan diulang sebanyak batas counter for…yang berada di luar (bilangan1<=5).Contoh lain:public class Faktorial {public static void main(String[] args) {int batas = 10;int counter = 0;int faktorial = 1;for(counter=0; counter<=batas; counter++) {faktorial = 1;for(int faktor=2; faktor<=counter; faktor++) {faktorial *= faktor;}
  • 11. System.out.println(counter + "!" + " = " + faktorial);}}}Output program:0! = 11! = 12! = 23! = 64! = 245! = 1206! = 7207! = 50408! = 403209! = 36288010! = 3628800break; dan continue; dalam Perulangan forBerikut adalah contoh program perulangan for yang menggunakan statement break;dan continue;
  • 12. //Nama program: Perulangan5.javapublic class Perulangan5 {public static void main(String[] args) {int counter;int batasPerulangan = 10;for (counter=1; counter<=batasPerulangan; counter++) {System.out.println("Perulangan ke-"+counter);if (counter<=5)break;}}}Output program:Perulangan ke-1Penjelasan:Mengapa perulangan baru dijalankan sekali sudah berhenti? Karena dalam blokperulangan terdapat percabangan ifdengan statement (counter<=5) danstatement break. Maksudnya apabila kondisi (counter<=5) terpenuhi/true makaperulangan akan dihentikan. Dalam program tersebut, perulangan dimulai denganmenginisialisasi variabel counter dengan nilai 1 (counter=1). Karena syarat(counter<=batasPerulangan) terpenuhi (dimana nilai variabelcounter=1), maka
  • 13. statement System.out.println(“Perulangan ke-”+counter) dikerjakan. Selanjutnyabertemu dengan percabangan dengan statement (counter<=5) dan nilai kondisinyatrue maka statement break dalam program akan dijalankan, dan menghentikanperulangan.public class Perulangan6 {public static void main(String[] args) {int bilangan=15;int counter=0;String hasil = "";for(counter=1; counter<=bilangan; counter++) {if (counter % 2 != 0)continue;hasil += counter + " ";}System.out.println("bilangan genap = " + hasil);}}Output program:bilangan genap = 2 4 6 8 10 12 14
  • 14. Penjelasan:Dalam blok statement perulangan tersebut terdapat percabangan dengan statement(counter % 2 != 0). Jika kondisi pernyataannya bernilai benar maka akan terjadipengulangan dimulai dengan menambah nilai variabel counterdengan 1 (increment).Sebaliknya jika kondisinya salah maka nilai yang ada dalamvariabel counter digabungkan dengan string dan disimpan dalam variabel hasil untukditampilkan di layar.Perulangan for bertingkatSeperti pada perulangan while, perulangan for pun dapat dilakukan bertingkat,artinya perulangan for di dalam perulanganfor.Kita ambil contoh sederhana misalnya membuat tabel perkalian seperti1 2 3 4 5 6 7 8 9 10 11 122 4 6 8 10 12 14 16 18 20 22 243 6 9 12 15 18 21 24 27 30 33 364 8 12 16 20 24 28 32 36 40 44 485 10 15 20 25 30 35 40 45 50 55 606 12 18 24 30 36 42 48 54 60 66 727 14 21 28 35 42 49 56 63 70 77 848 16 24 32 40 48 56 64 72 80 88 969 18 27 36 45 54 63 72 81 90 99 10810 20 30 40 50 60 70 80 90 100 110 12011 22 33 44 55 66 77 88 99 110 121 13212 24 36 48 60 72 84 96 108 120 132 144Program untuk membuat tabel perkalian tersebut bisa diekspresikan denganalgoritma pseudocode sebagai berikutuntuk setiap baris i = 1,2,3...,12cetak perkalian i dengan 1,2,3..12cetak baris baruKalau kita jabarkan lebih lanjut, perintah kedua juga merupakan perulangan dari 1hingga 12, sehingga algoritma di atas bisa kita tulis sebagaiuntuk setiap baris i = 1,2,3...,12untuk setiap kolom j = 1,2,3...,12cetak i*jcetak baris baruKita bisa terjemahkan ke dalam bahasa Java sebagaifor (int i = 1; i <= 12; i++) {for (int j = 1; j <= 12; j++) {System.out.print(i*j + " ");}System.out.println("");}Berikut ini adalah contoh TabelPerkalian :
  • 15. package tabelperkalian;public class TabelPerkalian {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubfor (int i = 1; i <= 12; i++) {for (int j = 1; j <= 12; j++) {System.out.print(i*j + " ");}System.out.println("");}}}Berikut ini hasil kelurannya:
  • 16. ARRAY MULTIDIMENSITipe apapun bisa digunakan sebagai tipe dasar suatu array. Kita bisamembuat array int, array String, array Object dan seterusnya. Terutama,karena array adalah tipe Java kelas satu, kita bisa membuat array yang bertipearray.Misalnya suatu array bertipe int[], juga otomatis memiliki arraybertipe int[][], yaitu "array bertipe array int". Array tersebut disebut array 2dimensi. Tentunya, dengan tipe int[][], kita juga bisa membuat arraynya dengantipe int[][][], yang merupakan array 3 dimensi, dan seterusnya. Tidak adabatasan berapa dimensi array yang kita buat, akan tetapi bukan sesuatu yang biasadilakukan untuk membuat array lebih dari 3 dimensi. Pembahasan kita akan lebihdikhususkan pada array 2 dimensi. Tipe TipeDasar[][] biasanya dibaca "array 2dimensi bertipe TipeDasar" atau "array dari array TipeDasar".Deklarasi pernyataan "int[][] A;" adalah membuat variabel bernama Adengan tipe int[][]. Variabel ini berisi objek yang bertipe int[][]. Pernyataanpemberian nilai "A = new int[3][4];" akan membuat objek array 2 dimensi danmengisi A ke objek yang baru dibuat tersebut.Seperti biasa, deklarasi dan pemberian nilai bisa digabung menjadi satupernyataan, seperti "int[][] A = new int[3][4];". Objek yang baru dibuatadalah objek yang merupakan array dari array int. Bagian int[3][4] menyatakanbahwa ada 3 array int di dalam array A, dan di setiap array int tersebut terdapat 4int.Cara seperti itu mungkin sedikit membingungkan, akan tetapi akan lebihmudah apabila kita bayangkan array tersebut seperti matriks. Istilah "int[3][4]"bisa disebut sebagai matriks dengan 3 baris dan 4 kolom, seperti pada ilustrasiberikut ini :
  • 17. Untuk banyak hal, kita bisa mengabaikan kenyataan di atas, dan membayangkanbentuk matriks seperti di atas. Kadang-kadang kita juga harus ingat bahwa setiapbaris sebenarnya juga merupakan suatu array. Array-array ini bisa dirujukdengan A[0], A[1], dan A[2]. Setiap baris bertipe int[].Pernyataan A[1] merujuk pada salah satu baris pada array A. Karena A[1] itusendiri sebenarnya adalah array int, kita bisa menambah indeks lain untuk merujukpada posisi pada baris tersebut. Misalnya A[1][3] adalah elemen nomor 3 padabaris 1. Seperti biasa, ingat bahwa posisi baris dan kolom dimulai dari 0. Jadi padacontoh di atas, A[1][3] bernilai 5. Lebih umum lagi,A[i][j] adalah posisi padabaris i dan kolom j. Seluruh elemen pada A bisa dinamakan seperti berikut :A[0][0] A[0][1] A[0][2] A[0][3]A[1][0] A[1][1] A[1][2] A[1][3]A[2][0] A[2][1] A[2][2] A[2][3]A[i][j] adalah variabel bertipe int. Kita bisa mengisi nilainya ataumenggunakannya seperti variabel bertipe int biasa.Perlu juga diketahui bahwa A.length akan memberikan jumlah baris pada A.Untuk mendapatkan jumlah kolom pada A, kita harus mencari jumlah int dalamsetiap baris, yaitu yang disimpan pada A[0]. Jumlah kolom ini bisa didapatkandengan menggunakan A[0].length, atau A[1].length atau A[2].length.(Tidak ada aturan baku yang menyatakan bahwa pada setiap baris suatu array harusmemiliki panjang yang sama, dan sebenarnya pada beberapa aplikasi, jugadigunakan array dengan panjang yang berbeda-beda pada setiap barisnya. Akantetapi apabila kita membuat array dengan perintah seperti di atas, maka kita akanselalu mendapatkan array dengan panjang array yang sama.)Array 3 dimensi juga dibuat dan diolah dengan cara yang sama. Misalnya, array 3dimensi bertipe int bisa dibuat dengan pernyataan"int[][][] B = new int [7][5][11];". Kita juga bisa mengilustrasikannyasebagai kubus 3-dimensi. Masing-masing bloknya bertipe int yang bisa dipanggildalam bentuk B[i][j][k]. Array dimensi lain yang lebih tinggi juga mengikuti polayang sama, akan tetapi akan sangat sulit untuk membuat visualisasi strukturarraynya.Kita bisa mengisi array multi dimensi sekaligus pada saat dideklarasikan. Ingatsebelumnya bagaimana array 1 dimensi biasa dideklarasikan, dan bagaimana isinyadiinisialisasikan, yaitu seperti daftar nilai-nilainya yang dipisahkan dengan koma, dandiletakkan di dalam tanda kurung kurawal { dan }.Inisialisasi array bisa juga digunakan untuk array multi dimensi, yang terdiri daribeberapa inisialisasi array 1 dimensi, masing-masing untuk setiap barisnya. Misalnya,array A pada gambar di atas dapat dibuat dengan perintah :int[][] A = { { 1, 0, 12, -1 },{ 7, -3, 2, 5 },{ -5, -2, 2, 9 }};
  • 18. Jika tidak ada inisialisasi yang diberikan untuk suatu array, maka nilainya akan diisidengan nilai awal tergantung pada tipenya : nol untuk bilangan, false untuk booleandan null untuk objek.Seperti halnya array 1 dimensi, array 2 dimensi juga sering diolah denganmenggunakan perulangan for. UNtuk mengolah semua elemen pada array 2dimensi, kita bisa menggunakan pernyataan for bertingkat. Jika array Adideklarasikan sepertiint[][] A = new int[3][4];maka kita bisa mengisi 0 untuk semua elemen pada A dengan menggunakanfor (int baris = 0; baris < 3; baris++) {for (int kolom = 0; kolom < 4; kolom++) {A[baris][kolom] = 0;}}Pertama kali perulangan for bagian luar akan memproses dengan baris = 0.Bagian dalamnya akan mengisi keempat kolom pada baris pertama,yaitu A[0][0] = 0, A[0][1] = 0, A[0][2] = 0, dan A[0][3] = 0. Kemudianperulangan for bagian luar akan mengisi baris kedua, dan seterusnya.Dan juga, kita bisa menjumlah semua elemen pada A denganint jml = 0;for (int i = 0; i < 3; i++)for (int j = 0; j < 4; i++)jml = jml + A[i][j];Untuk mengolah array 3 dimensi, tentunya kita harus menggunakanperulangan for bertingkat 3.Suatu array 2 dimensi bisa digunakan untuk menyimpan data yang secara alamimemang tersusun sebagai baris dan kolom. Misalnya papan catur terdiri dari 8 barisdan 8 kolom. Jika suatu kelas dinamakan PapanCatur untuk merepresentasikanpapan catur, maka kita bisa deklarasikan dengan perintahPapanCatur[][] papan = new PapanCatur[8][8];Kadang-kadang array 2 dimensi juga digunakan untuk masalah yang tidak terlalujelas matriksnya. Misalnya perusahaan yang memiliki 25 toko. Anggap masing-masing toko memiliki keuntungan yang didapat pada masing-masing toko tersebutsetiap bulan pada tahun 2009. Jika toko-toko tersebut memiliki nomor 0 hingga 24,dan 12 bulan dari Januari 09 hingga Desember 09 dinomori 0 hingga 11, maka datakeuntungan dapat disimpan dalam array untung yang dideklarasikan seperti :double[][] untung = new double[25][12];untung[3][2] adalah keuntungan yang dibuat oleh toko nomor 3 di bulan Maret.Atau secara umum,untung[noToko][noBulan] adalah keuntungantoko noToko pada bulan noBulan. Dalam contoh ini array 1dimensiuntung[noToko] memiliki arti : Data keuntungan satu toko selama satutahun.
  • 19. Anggap array untung telah diisi dengan data. Data ini bisa diolah lebih lanjut.Misalnya, total keuntungan seluruh perusahaan -- sepanjang tahun dari seluruh toko-- dapat dihitung dengan menjumlahkan semua elemen pada array :double totalUntung; // Total keuntungan perusahaan tahun 2009totalUntung = 0;for (int toko = 0; toko < 25; toko++) {for (int bulan = 0; bulan < 12; bulan++)totalUntung += untung[toko][bulan];}Kadang-kadang kita juga perlu menghitung hanya satu baris atau satu kolom saja,bukan keseluruhan array. Misalnya, kita ingin menghitung keuntungan totalperusahaan pada bulan Desember, yaitu bulan nomor 11, maka kita bisa gunakanperulangan :double untungDesember = 0.0;for (noToko = 0; noToko < 25; noToko++)untungDesember += untung[noToko][11];Sekarang mari kita buat array 1 dimensi yang berisi total keuntungan seluruh tokosetiap bulan :double[] untungBulanan; // Keuntungan setiap bulanuntungBulanan = new double[12];for (int bulan = 0; bulan < 12; bulan++) {// hitung total keuntungan semua toko bulan iniuntungBulanan[bulan] = 0.0;for (int toko = 0; toko < 25; toko++) {untungBulanan[bulan] += profit[toko][bulan];}}Sebagai contoh terakhir untuk mengolah array keuntungan, misalnya kita ingin tahutoko mana yang menghasilkan keuntungan terbesar sepanjang tahun. Untukmenghitungnya, kita harus menjumlahkan keuntungan setiap toko sepanjang tahun.Dalam istilah array, ini berarti kita ingin mengetahui jumlah setiap baris pada array.Kita perlu mencatat hasil perhitungannya untuk mencari mana toko dengankeuntungan terbesar.double untungMaks; // Keuntungan terbesar suatu tokoint tokoTerbaik; // Nomor toko yang memiliki keuntunganterbesardouble total = 0.0; // Total keuntungan suatu toko// Pertama-tama hitung keuntungan dari toko nomo 0for (int bulan = 0; bulan < 12; bulan++)total += untung[0][bulan];
  • 20. tokoTerbaik = 0; // Mulai dengan anggapan toko nomor 0untungMaks = total; // adalah toko paling menguntungkan// Sekarang kita lihat seluruh toko, dan setiap kali// kita melihat toko dengan keuntungan lebih besar dari// untungMaks, kita ganti untungMaks dan tokoTerbaik// dengan toko tersebutfor (toko = 1; toko < 25; toko++) {// Hitung keuntungan toko tersebut sepanjang tahuntotal = 0.0;for (bulan = 0; bulan < 12; bulan++)total += untung[toko][bulan];// Bandingkan keuntungan toko ini dengan untungMaksif (total > untungMaks) {untungMaks = total; // keuntungan terbesar saat initokoTerbaik = toko; // datang dari toko ini}} // akhir for// Di sini, untungMaks adalah keuntungan terbesar dari 25 toko// dan tokoTerbaik adalah toko dengan keuntung tersebut// (Mungkin juga ada toko yang menghasilkan keuntungan// yang persis sama.)Sejauh ini variabel array yang kita gunakan berjenis array satu dimensi.Istilah satu dimensi mengacu kepada jumlah bilangan yang digunakan sebagaiindeks. Penulisan seperti iniSystem.out.println(angka[3]);merupakan penulisan untuk array satu dimensi. Perhatikan bahwa bilangan yang kitagunakan sebagai nomor indeks array hanya satu, tidak perduli berapa jumlahdigitnya. Angka 100 merupakan sebuah bilangan, walaupun jumlah digitnya ada 3.Pada beberapa kondisi diperlukan penulisan variabel array yangmenggunakan nomor indeks dua bilangan, misalnya pada aplikasi matrik. Data padasuatu matrik diketahui berdasarkan nilai baris dan kolomnya. Baris adalah sebuahbilangan dan kolom adalah sebuah bilangan juga. Tanpa adanya salah satu darikeduanya kita tidak bisa mengetahui data mana yang dimaksud, jika kita inginmengambil sebuah data individu.Bentuk umum pendeklarasian variabel array dua dimensi di Java adalah:
  • 21. tipeData[][] nama_variabel[=newtipeData[jumlah_baris][jumlah_kolom]];Untuk memudahkan pemahaman, bentuk array dua dimensi bisadihambarkan dalam bentuk petak-petak sebagai berikut:baris 0 data[0,0] data[0,1] data[0,2] data[0,M-1]baris 1 data[1,0] data[1,1] data[1,2] data[1,M-1]baris 2 data[2,0] data[2,1] data[2,2] data[2,M-1]…baris N-1 data[N-1,0] data[N-1,1] data[N-1,2] data[N-1,M-1]kolom 0 kolom 1 kolom 2 … kolom M-1variabel arrayN adalah nilai yang menyatakan jumlah baris dari array, sedangkan M menyatakanjumlah kolom dari array. Sama seperti array satu dimensi, penomoran indeks untukarray dua dimensi juga dimulai dari 0 untuk baris maupun kolomnya. Tidak adaaturan yang mengatakan bahwa urutan untuk nomor indeks adalah baris dulu barukolom, tetapi buku ini menggunakan urutan baris-kolom untuk menyatakan indeksmatrik dua dimensi.Sekarang kita buat sebuah program yang akan mengilustrasikan penggunaanarray dua dimensi. Seperti pada program-program sebelumnya, pada program inikita menggunakan fungsi random() pada proses entry data setiap elemen array.Program 5.111 class ArrayDuaDimensi2 {3 public static void main (String[]args)4 {
  • 22. 5 int[][] angka = new int[5][3];67 for (int i=0; i<angka.length;i++)8 for (int j=0;j<angka[i].length; j++)9 angka[i][j] =(int)(Math.random()*100);1011 System.out.println("Data array“ +“duadimensi:n");1213 for (int i=0; i<angka.length;i++)14 {15 for (int j=0;j<angka[i].length; j++)16System.out.print(angka[i][j] + " ");1718 System.out.println();19 }20 }21 }Instruksi pada baris 7 merupakan pernyataan untuk menghitung jumlah baris,atau lebih tepatnya jumlah array indeks pertama. Untuk setiap barisnya kita bisamengetahui berapa jumlah kolomnya, atau lebih tepatnya jumlah array indekskeduanya, dengan pernyataan seperti terlihat pada baris 8. Dengan demikian
  • 23. angka.lengthakan melaporkan jumlah baris, sedangkanangka[i].lengthakan melaporkan jumlah kolom pada baris ke-i. Contoh output program dapat dilihatpada gambar berikut ini: