SlideShare a Scribd company logo
1 of 23
PERULANGAN FOR DAN
ARRAY 2 DIMENSI
Kelompok 1
1. Aghun Gugah P.W. 201043500665
2. Prasetya Wira 201043500670
3. Dinda 201043500618
4. Nurmaya 201043500671
5. Zahra 201043500680
6. Ulfa 201043500621
7. M. Firgiawan 201043500662
8. M. Arif 201043500676
9. Ahmad Nurcolis 201043500624
10. Septian 201043500640
11. Ahmad Fahmi 201043500609
12. Dwi Wulan 201043500598
13. M. Zaelani 201043500659
14. M. Kurtubi 201043500646
15. Syartika 201043500623
16. As’ad Aufar 201043500632
17. Fajar Norracmad 201043500644
18. Julistio Pratama 201043500628
19. Rahmat Fajar 201043500599
UNIVERSITAS INDRAPRASTA PGRI
JAKARTA
2011
PERULANGAN
Dalam pemrograman ada dua jenis perulangan, yaitu perulangan yang sudah
diketahui dengan pasti jumlah perulangannya dan yang tidak diketahui jumlah
perulangannya.Yang dimaksud dengan perulangan yang sudah diketahui jumlah
perulangannya adalah pembuat program sudah mengetahui dengan pasti berapa kali
statement dalam blok perulangan yang harus dikerjakan. Sedangkan perulangan
yang tidak pasti, statement yang dikerjakan dalam blok perulangan tidak diketahui
dengan pasti jumlah perulangan yang dikerjakan, misalnya suatu statement akan
diulang apabila user meng-input-kan data lebih besar dari 5. Dalam Java perulangan
yang sudah diketahui dengan pasti jumlah perulangannya bisa diimplementasikan
menggunakan for… sedangkan untuk perulangan yang tidak diketahui dengan pasti
bisa menggunakan jenis perulangan while atau do – while.
Perulangan for
Ada tiga komponen utama yang harus diperhatikan dalam penggunaan
perulangan for…. Tiga komponen tersebut sebagai berikut:
Variabel pencacah
Variabel ini digunakan untuk mengontrol jumlah perulangan yang dikerjakan. Setiap
kali perulangan dikerjakan maka nilai variabel ini akan selalu berubah. Nilai dalam
variabel dapat berubah semakin besar (increment) atau semakin kecil (decrement).
Persyaratan
Persyaratan yang digunakan agar perulangan dikerjakan. Syarat ini bisa berdasarkan
nilai dalam variabel penghitung atau variabel lain (yang telah dideklarasikan
sebelumnya) menggunakan operator relasional.
Peubah variabel pencacah
Statement peubah variabel pencacah bertugas merubah nilai dalam variabel
pencacah selama perulangan terjadi. Perubahan nilai dapat semakin besar
(increment) atau semakin kecil (decrement).
Kita akan membahas bentuk perulangan lain, yaitu perulangan for. Setiap
bentuk perulangan for dapat diubah menjadi bentuk perulangan while dengan
fungsi yang sama tanpa mengubah alur program. Tetapi tergantung dari
permasalahan yang akan kita pecahkan, menulis program dengan for akan
membuat alur program lebih mudah dipahami.
Misalnya, kita akan menghitung 1+2+3+4+5+...+100. Kita bisa ekspresikan
program tersebut dalam bentuk
i = 1;
jumlah = 0;
while (i <= 100) {
jumlah += i;
i++;
}
Perulangan ini dapat ditulis juga dengan
jumlah = 0;
for (i = 1; i <= 100; i++)
jumlah += i
Apa point-point penting yang kita lihat dari perubahan ini? Pertama mari kita lihat
bentuk penggunaan while yang umum dilakukan
inisialisasi variabel
while (suatu_kondisi_variabel) {
perintah
update_variabel
}
Di sini perulangan while memiliki 3 komponen penting, yaitu inisialisasi, yaitu
memberikan nilai awal suatu variabel, suatu_kondisi_variabel, yaitu pengujian
bahwa perulangan akan terus dilakukan selama kondisi ini bernilai true, dan terakhir
update_variabel, yaitu instruksi mengubah nilai kondisi variabel untuk membatasi
perulangan sehingga akan selesai suatu saat, tidak berulang terus menerus.
Pada perulangan for, ketiga komponen ini dirangkai menjadi satu dalam bentuk
for (inisialisasi_variabel; kondisi_variabel; update_variabel)
perintah
atau jika perintah merupakan blok yang terdiri dari banyak perintah, dapat dituliskan
juga dalam bentuk
for (inisialisasi_variabel; kondisi_variabel; update_variabel)
{
banyak_perintah
}
Di sini inisialisasi variabel bisa berupa apa saja yang berbentuk perintah, misalnya
memberikan variabel dengan nilai awal tertentu, dalam
bentuk variabel = nilai_awal.
kondisi_variabel harus berbentuk pernyataan boolean
seperti suatu_kondisi pada pernyataan while.
Sedangkanupdate_variabel juga berbentuk perintah.
inisialisasi_variabel, kondisi_variabel, atau update_variabel dapat
dikosongkan dan tidak harus selalu diisi. Bagian yang tidak diisi yang selalu
digantikan dengan true, yang artinya perulangan akan terus dieksekusi tanpa henti.
Untuk menghentikannya, perintah break harus diberikan ditengah-tengah badan
perulangan.
Bentuk paling umum dari perulangan for adalah menghitung. Biasanya perulangan
ini memiliki bentuk seperti
for (variabel = nilai_minimum; variabel <= nilai_maksimum;
variabel++) {
perintah
}
Perhatikan bagian terakhir adalah menaikkan nilai variabel dengan 1, yang artinya
perulangan akan dimulai dengannilai_minimum, diakhiri
dengan nilai_maksimum dengan jeda 1.
Contoh, jika kita ingin berhitung 2,5,8,11,14,17, atau dengan kata lain, mulai dari 2
hingga 17 dengan jeda 3, kita bisa mengekspresikan for dengan
for (i = 2; i <= 17; i += 3) {
System.out.println(i);
}
Untuk menghitung mundur, kita bisa menggunakan perintah seperti
for (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 dengan
for (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 bahasa
pemrograman ketat, yang artinya semua harus didefinisikan dengan jelas sebelum
digunakan. Untuk banyak kasus, deklarasi variabel dan perulangannya bisa
dilakukan serentak pada bagian inisialisasi variabel. Misalnya
for (int i = 1; i <= 10; i++) {
System.out.println(i)
}
Perhatikan ada imbuhan int di depan inisialisasi variabel i, yang merupakan
deklarasi variabel i dengan tipe data int sekaligus menginisialisasi nilainya dengan
1.
Bentuk umum perulangan for sebagai berikut:
for (variabelPencacah; persyaratan; peubahVariabelPencacah) {
statement
...
...
}
Contoh program:
//Nama program: Perulangan1.java
public 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);
}
}
}
Output program:
Perulangan ke-1
Perulangan ke-2
Perulangan ke-3
Perulangan ke-4
Perulangan ke-5
Perulangan ke-6
Perulangan ke-7
Perulangan ke-8
Perulangan ke-9
Perulangan ke-10
Penjelasan:
Program diawali dengan pendeklarasian variabel, dimana nama variabel tersebut
adalah counter dan batasPerluangandengan tipe data integer.
Variabel batasPerulangan diinisialisasi dengan nilai 10. Pada baris perulangan for…,
variabelcounter diinisialisasi dengan nilai 1. Persyaratannya adalah statement dalam
blok perulangan akan dikerjakan apabila nilai variabel counter kurang dari sama
dengan nilai dalam variabel batasPerulangan. Dan setiap kali statement blok
perulangan selesai dikerjakan nilai dalam variabel counter ditambah 1 (increment).
//Nama program: Perulangan2
public class Perulangan2 {
public static void main(String[] args) {
int bilangan1=6;
int bilangan2=4;
int hasil=0;
String angka = "";
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:
6
6
6
6
------ +
24
Penjelasan program:
Program diawali dengan pendeklarasian variabel. Variabel tersebut
adalah bilangan1, bilangan2, hasil bertipe data integer dan berturut-turut
diinisialisasi dengan nilai 6, 4 , dan 0. Dalam program tersebut juga terdapat
variabelangka diinisialisasi dengan string kosong (“”). Pada baris
perulangan for… dideklarasikan variabel counter dan diinisialisasi dengan nilai 1.
Variabel counter dideklarasikan dalam statement perulangan for…, maka hanya bisa
digunakan dalam perulangan itu saja. Persyaratan dalam perulangan ini adalah
statement dalam blok perulangan dikerjakan apabila nilai variabel counter kurang
dari sama dengan nilai dalam variabel bilangan2. Dan setiap kali statement dalam
blok perulangan selesai dikerjakan, nilai dalam variabel counter ditambah 1
(increment).
Syarat terjadinya pengulangan for… bisa terdiri lebih dari satu statement relasional
yang digabung dengan operator logika AND atau OR. Berikut adalah contoh program
perulangan for dengan dua syarat statement relasional yang digabungkan
menggunakan 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--;
}
}
}
Output program:
1 10 1
2 9 3
3 8 5
4 7 7
5 6 9
For Bersarang (Nested for)
Yang dimaksud dengan nested for adalah apabila di dalam blok statement
perulangan terdapat perulangan lagi. Program berikut adalah contoh dari nested
for…
//Nama program: Perulangan3.java
public 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 + "]");
}
}
}
}
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 sampai
selesai, 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;
}
System.out.println(counter + "!" + " = " + faktorial);
}
}
}
Output program:
0! = 1
1! = 1
2! = 2
3! = 6
4! = 24
5! = 120
6! = 720
7! = 5040
8! = 40320
9! = 362880
10! = 3628800
break; dan continue; dalam Perulangan for
Berikut adalah contoh program perulangan for yang menggunakan statement break;
dan continue;
//Nama program: Perulangan5.java
public 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-1
Penjelasan:
Mengapa perulangan baru dijalankan sekali sudah berhenti? Karena dalam blok
perulangan terdapat percabangan ifdengan statement (counter<=5) dan
statement break. Maksudnya apabila kondisi (counter<=5) terpenuhi/true maka
perulangan akan dihentikan. Dalam program tersebut, perulangan dimulai dengan
menginisialisasi variabel counter dengan nilai 1 (counter=1). Karena syarat
(counter<=batasPerulangan) terpenuhi (dimana nilai variabelcounter=1), maka
statement System.out.println(“Perulangan ke-”+counter) dikerjakan. Selanjutnya
bertemu dengan percabangan dengan statement (counter<=5) dan nilai kondisinya
true maka statement break dalam program akan dijalankan, dan menghentikan
perulangan.
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
Penjelasan:
Dalam blok statement perulangan tersebut terdapat percabangan dengan statement
(counter % 2 != 0). Jika kondisi pernyataannya bernilai benar maka akan terjadi
pengulangan dimulai dengan menambah nilai variabel counterdengan 1 (increment).
Sebaliknya jika kondisinya salah maka nilai yang ada dalam
variabel counter digabungkan dengan string dan disimpan dalam variabel hasil untuk
ditampilkan di layar.
Perulangan for bertingkat
Seperti pada perulangan while, perulangan for pun dapat dilakukan bertingkat,
artinya perulangan for di dalam perulanganfor.
Kita ambil contoh sederhana misalnya membuat tabel perkalian seperti
1 2 3 4 5 6 7 8 9 10 11 12
2 4 6 8 10 12 14 16 18 20 22 24
3 6 9 12 15 18 21 24 27 30 33 36
4 8 12 16 20 24 28 32 36 40 44 48
5 10 15 20 25 30 35 40 45 50 55 60
6 12 18 24 30 36 42 48 54 60 66 72
7 14 21 28 35 42 49 56 63 70 77 84
8 16 24 32 40 48 56 64 72 80 88 96
9 18 27 36 45 54 63 72 81 90 99 108
10 20 30 40 50 60 70 80 90 100 110 120
11 22 33 44 55 66 77 88 99 110 121 132
12 24 36 48 60 72 84 96 108 120 132 144
Program untuk membuat tabel perkalian tersebut bisa diekspresikan dengan
algoritma pseudocode sebagai berikut
untuk setiap baris i = 1,2,3...,12
cetak perkalian i dengan 1,2,3..12
cetak baris baru
Kalau kita jabarkan lebih lanjut, perintah kedua juga merupakan perulangan dari 1
hingga 12, sehingga algoritma di atas bisa kita tulis sebagai
untuk setiap baris i = 1,2,3...,12
untuk setiap kolom j = 1,2,3...,12
cetak i*j
cetak baris baru
Kita bisa terjemahkan ke dalam bahasa Java sebagai
for (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 :
package tabelperkalian;
public class TabelPerkalian {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
for (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:
ARRAY MULTIDIMENSI
Tipe apapun bisa digunakan sebagai tipe dasar suatu array. Kita bisa
membuat array int, array String, array Object dan seterusnya. Terutama,
karena array adalah tipe Java kelas satu, kita bisa membuat array yang bertipe
array.
Misalnya suatu array bertipe int[], juga otomatis memiliki array
bertipe int[][], yaitu "array bertipe array int". Array tersebut disebut array 2
dimensi. Tentunya, dengan tipe int[][], kita juga bisa membuat arraynya dengan
tipe int[][][], yang merupakan array 3 dimensi, dan seterusnya. Tidak ada
batasan berapa dimensi array yang kita buat, akan tetapi bukan sesuatu yang biasa
dilakukan untuk membuat array lebih dari 3 dimensi. Pembahasan kita akan lebih
dikhususkan pada array 2 dimensi. Tipe TipeDasar[][] biasanya dibaca "array 2
dimensi bertipe TipeDasar" atau "array dari array TipeDasar".
Deklarasi pernyataan "int[][] A;" adalah membuat variabel bernama A
dengan tipe int[][]. Variabel ini berisi objek yang bertipe int[][]. Pernyataan
pemberian nilai "A = new int[3][4];" akan membuat objek array 2 dimensi dan
mengisi A ke objek yang baru dibuat tersebut.
Seperti biasa, deklarasi dan pemberian nilai bisa digabung menjadi satu
pernyataan, seperti "int[][] A = new int[3][4];". Objek yang baru dibuat
adalah objek yang merupakan array dari array int. Bagian int[3][4] menyatakan
bahwa ada 3 array int di dalam array A, dan di setiap array int tersebut terdapat 4
int.
Cara seperti itu mungkin sedikit membingungkan, akan tetapi akan lebih
mudah apabila kita bayangkan array tersebut seperti matriks. Istilah "int[3][4]"
bisa disebut sebagai matriks dengan 3 baris dan 4 kolom, seperti pada ilustrasi
berikut ini :
Untuk banyak hal, kita bisa mengabaikan kenyataan di atas, dan membayangkan
bentuk matriks seperti di atas. Kadang-kadang kita juga harus ingat bahwa setiap
baris sebenarnya juga merupakan suatu array. Array-array ini bisa dirujuk
dengan 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] itu
sendiri sebenarnya adalah array int, kita bisa menambah indeks lain untuk merujuk
pada posisi pada baris tersebut. Misalnya A[1][3] adalah elemen nomor 3 pada
baris 1. Seperti biasa, ingat bahwa posisi baris dan kolom dimulai dari 0. Jadi pada
contoh di atas, A[1][3] bernilai 5. Lebih umum lagi,A[i][j] adalah posisi pada
baris 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 atau
menggunakannya 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 dalam
setiap baris, yaitu yang disimpan pada A[0]. Jumlah kolom ini bisa didapatkan
dengan menggunakan A[0].length, atau A[1].length atau A[2].length.
(Tidak ada aturan baku yang menyatakan bahwa pada setiap baris suatu array harus
memiliki panjang yang sama, dan sebenarnya pada beberapa aplikasi, juga
digunakan array dengan panjang yang berbeda-beda pada setiap barisnya. Akan
tetapi apabila kita membuat array dengan perintah seperti di atas, maka kita akan
selalu mendapatkan array dengan panjang array yang sama.)
Array 3 dimensi juga dibuat dan diolah dengan cara yang sama. Misalnya, array 3
dimensi bertipe int bisa dibuat dengan pernyataan
"int[][][] B = new int [7][5][11];". Kita juga bisa mengilustrasikannya
sebagai kubus 3-dimensi. Masing-masing bloknya bertipe int yang bisa dipanggil
dalam bentuk B[i][j][k]. Array dimensi lain yang lebih tinggi juga mengikuti pola
yang sama, akan tetapi akan sangat sulit untuk membuat visualisasi struktur
arraynya.
Kita bisa mengisi array multi dimensi sekaligus pada saat dideklarasikan. Ingat
sebelumnya bagaimana array 1 dimensi biasa dideklarasikan, dan bagaimana isinya
diinisialisasikan, yaitu seperti daftar nilai-nilainya yang dipisahkan dengan koma, dan
diletakkan di dalam tanda kurung kurawal { dan }.
Inisialisasi array bisa juga digunakan untuk array multi dimensi, yang terdiri dari
beberapa 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 }
};
Jika tidak ada inisialisasi yang diberikan untuk suatu array, maka nilainya akan diisi
dengan nilai awal tergantung pada tipenya : nol untuk bilangan, false untuk boolean
dan null untuk objek.
Seperti halnya array 1 dimensi, array 2 dimensi juga sering diolah dengan
menggunakan perulangan for. UNtuk mengolah semua elemen pada array 2
dimensi, kita bisa menggunakan pernyataan for bertingkat. Jika array A
dideklarasikan seperti
int[][] A = new int[3][4];
maka kita bisa mengisi 0 untuk semua elemen pada A dengan menggunakan
for (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. Kemudian
perulangan for bagian luar akan mengisi baris kedua, dan seterusnya.
Dan juga, kita bisa menjumlah semua elemen pada A dengan
int 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 menggunakan
perulangan for bertingkat 3.
Suatu array 2 dimensi bisa digunakan untuk menyimpan data yang secara alami
memang tersusun sebagai baris dan kolom. Misalnya papan catur terdiri dari 8 baris
dan 8 kolom. Jika suatu kelas dinamakan PapanCatur untuk merepresentasikan
papan catur, maka kita bisa deklarasikan dengan perintah
PapanCatur[][] papan = new PapanCatur[8][8];
Kadang-kadang array 2 dimensi juga digunakan untuk masalah yang tidak terlalu
jelas matriksnya. Misalnya perusahaan yang memiliki 25 toko. Anggap masing-
masing toko memiliki keuntungan yang didapat pada masing-masing toko tersebut
setiap 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 data
keuntungan 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 keuntungan
toko noToko pada bulan noBulan. Dalam contoh ini array 1
dimensiuntung[noToko] memiliki arti : Data keuntungan satu toko selama satu
tahun.
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 2009
totalUntung = 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 total
perusahaan pada bulan Desember, yaitu bulan nomor 11, maka kita bisa gunakan
perulangan :
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 toko
setiap bulan :
double[] untungBulanan; // Keuntungan setiap bulan
untungBulanan = new double[12];
for (int bulan = 0; bulan < 12; bulan++) {
// hitung total keuntungan semua toko bulan ini
untungBulanan[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 tahu
toko mana yang menghasilkan keuntungan terbesar sepanjang tahun. Untuk
menghitungnya, 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 dengan
keuntungan terbesar.
double untungMaks; // Keuntungan terbesar suatu toko
int tokoTerbaik; // Nomor toko yang memiliki keuntungan
terbesar
double total = 0.0; // Total keuntungan suatu toko
// Pertama-tama hitung keuntungan dari toko nomo 0
for (int bulan = 0; bulan < 12; bulan++)
total += untung[0][bulan];
tokoTerbaik = 0; // Mulai dengan anggapan toko nomor 0
untungMaks = 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 tersebut
for (toko = 1; toko < 25; toko++) {
// Hitung keuntungan toko tersebut sepanjang tahun
total = 0.0;
for (bulan = 0; bulan < 12; bulan++)
total += untung[toko][bulan];
// Bandingkan keuntungan toko ini dengan untungMaks
if (total > untungMaks) {
untungMaks = total; // keuntungan terbesar saat ini
tokoTerbaik = 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 sebagai
indeks. Penulisan seperti ini
System.out.println(angka[3]);
merupakan penulisan untuk array satu dimensi. Perhatikan bahwa bilangan yang kita
gunakan sebagai nomor indeks array hanya satu, tidak perduli berapa jumlah
digitnya. Angka 100 merupakan sebuah bilangan, walaupun jumlah digitnya ada 3.
Pada beberapa kondisi diperlukan penulisan variabel array yang
menggunakan nomor indeks dua bilangan, misalnya pada aplikasi matrik. Data pada
suatu matrik diketahui berdasarkan nilai baris dan kolomnya. Baris adalah sebuah
bilangan dan kolom adalah sebuah bilangan juga. Tanpa adanya salah satu dari
keduanya kita tidak bisa mengetahui data mana yang dimaksud, jika kita ingin
mengambil sebuah data individu.
Bentuk umum pendeklarasian variabel array dua dimensi di Java adalah:
tipeData[][] nama_variabel[=new
tipeData[jumlah_baris]
[jumlah_kolom]];
Untuk memudahkan pemahaman, bentuk array dua dimensi bisa
dihambarkan 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-1
variabel array
N adalah nilai yang menyatakan jumlah baris dari array, sedangkan M menyatakan
jumlah kolom dari array. Sama seperti array satu dimensi, penomoran indeks untuk
array dua dimensi juga dimulai dari 0 untuk baris maupun kolomnya. Tidak ada
aturan yang mengatakan bahwa urutan untuk nomor indeks adalah baris dulu baru
kolom, tetapi buku ini menggunakan urutan baris-kolom untuk menyatakan indeks
matrik dua dimensi.
Sekarang kita buat sebuah program yang akan mengilustrasikan penggunaan
array dua dimensi. Seperti pada program-program sebelumnya, pada program ini
kita menggunakan fungsi random() pada proses entry data setiap elemen array.
Program 5.11
1 class ArrayDuaDimensi
2 {
3 public static void main (String[]
args)
4 {
5 int[][] angka = new int[5][3];
6
7 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);
10
11 System.out.println("Data array
“ +
“dua
dimensi:n");
12
13 for (int i=0; i<angka.length;
i++)
14 {
15 for (int j=0;
j<angka[i].length; j++)
16
System.out.print(angka[i][j] + " ");
17
18 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 bisa
mengetahui berapa jumlah kolomnya, atau lebih tepatnya jumlah array indeks
keduanya, dengan pernyataan seperti terlihat pada baris 8. Dengan demikian
angka.length
akan melaporkan jumlah baris, sedangkan
angka[i].length
akan melaporkan jumlah kolom pada baris ke-i. Contoh output program dapat dilihat
pada gambar berikut ini:

More Related Content

What's hot

Makalah audit manajemen audit sumber daya manusia (jiantari c 301 09 013)
Makalah audit manajemen audit sumber daya manusia (jiantari c 301 09 013)Makalah audit manajemen audit sumber daya manusia (jiantari c 301 09 013)
Makalah audit manajemen audit sumber daya manusia (jiantari c 301 09 013)Jiantari Marthen
 
Peramalan Forecasting
Peramalan ForecastingPeramalan Forecasting
Peramalan ForecastingINDAHMAWARNI1
 
BAB I, II, III ANALISIS BAURAN PEMASARAN DAN KEPUTUSAN PEMBELIAN PROGRAM USEE...
BAB I, II, III ANALISIS BAURAN PEMASARAN DAN KEPUTUSAN PEMBELIAN PROGRAM USEE...BAB I, II, III ANALISIS BAURAN PEMASARAN DAN KEPUTUSAN PEMBELIAN PROGRAM USEE...
BAB I, II, III ANALISIS BAURAN PEMASARAN DAN KEPUTUSAN PEMBELIAN PROGRAM USEE...princesskemala
 
OPTIMISASI EKONOMI
OPTIMISASI EKONOMIOPTIMISASI EKONOMI
OPTIMISASI EKONOMIsischayank
 
Permasalahan Perusahaan Samsung
Permasalahan Perusahaan SamsungPermasalahan Perusahaan Samsung
Permasalahan Perusahaan SamsungAfdan Rojabi
 
TUGAS 2 - Tahap Eksekusi Sistem Informasi Klinik
TUGAS 2 - Tahap Eksekusi Sistem Informasi KlinikTUGAS 2 - Tahap Eksekusi Sistem Informasi Klinik
TUGAS 2 - Tahap Eksekusi Sistem Informasi Kliniksafiravanillia
 
Tugas soal uas decision making
Tugas soal uas decision makingTugas soal uas decision making
Tugas soal uas decision makingMuhammad Love Kian
 
Makalah KONVERSI ENERGI
Makalah KONVERSI ENERGIMakalah KONVERSI ENERGI
Makalah KONVERSI ENERGIHastih Leo
 
Electronic business system
Electronic business systemElectronic business system
Electronic business systemWisnu Dewobroto
 
Tata Kelola Rantai Pasokan
Tata Kelola Rantai PasokanTata Kelola Rantai Pasokan
Tata Kelola Rantai PasokanTogar Simatupang
 
Perbedaan variabel bebas dan variabel moderating
Perbedaan variabel bebas dan variabel moderatingPerbedaan variabel bebas dan variabel moderating
Perbedaan variabel bebas dan variabel moderatingNajibatul Labibah
 
Aplikasi Crowde Solusi Investasi Masa Kini
Aplikasi Crowde Solusi Investasi Masa KiniAplikasi Crowde Solusi Investasi Masa Kini
Aplikasi Crowde Solusi Investasi Masa Kinitani57
 
LAPORAN PRAKERIN PT. GEODIPA ENERGI DIENG
LAPORAN PRAKERIN PT. GEODIPA ENERGI DIENG LAPORAN PRAKERIN PT. GEODIPA ENERGI DIENG
LAPORAN PRAKERIN PT. GEODIPA ENERGI DIENG YOHANIS SAHABAT
 
Analisa Kinerja Perusahaan Ditinjau Dari Ratio Keuangan
Analisa Kinerja Perusahaan Ditinjau Dari Ratio KeuanganAnalisa Kinerja Perusahaan Ditinjau Dari Ratio Keuangan
Analisa Kinerja Perusahaan Ditinjau Dari Ratio KeuanganBenny Herlambang
 
Proposal studi kelayakan_bisnis_cafe
Proposal studi kelayakan_bisnis_cafeProposal studi kelayakan_bisnis_cafe
Proposal studi kelayakan_bisnis_cafe20risman
 

What's hot (20)

Manajemen proyek
Manajemen proyekManajemen proyek
Manajemen proyek
 
Skripsi Imam H.
Skripsi Imam H.Skripsi Imam H.
Skripsi Imam H.
 
Makalah audit manajemen audit sumber daya manusia (jiantari c 301 09 013)
Makalah audit manajemen audit sumber daya manusia (jiantari c 301 09 013)Makalah audit manajemen audit sumber daya manusia (jiantari c 301 09 013)
Makalah audit manajemen audit sumber daya manusia (jiantari c 301 09 013)
 
Peramalan Forecasting
Peramalan ForecastingPeramalan Forecasting
Peramalan Forecasting
 
BAB I, II, III ANALISIS BAURAN PEMASARAN DAN KEPUTUSAN PEMBELIAN PROGRAM USEE...
BAB I, II, III ANALISIS BAURAN PEMASARAN DAN KEPUTUSAN PEMBELIAN PROGRAM USEE...BAB I, II, III ANALISIS BAURAN PEMASARAN DAN KEPUTUSAN PEMBELIAN PROGRAM USEE...
BAB I, II, III ANALISIS BAURAN PEMASARAN DAN KEPUTUSAN PEMBELIAN PROGRAM USEE...
 
OPTIMISASI EKONOMI
OPTIMISASI EKONOMIOPTIMISASI EKONOMI
OPTIMISASI EKONOMI
 
Permasalahan Perusahaan Samsung
Permasalahan Perusahaan SamsungPermasalahan Perusahaan Samsung
Permasalahan Perusahaan Samsung
 
TUGAS 2 - Tahap Eksekusi Sistem Informasi Klinik
TUGAS 2 - Tahap Eksekusi Sistem Informasi KlinikTUGAS 2 - Tahap Eksekusi Sistem Informasi Klinik
TUGAS 2 - Tahap Eksekusi Sistem Informasi Klinik
 
Tugas soal uas decision making
Tugas soal uas decision makingTugas soal uas decision making
Tugas soal uas decision making
 
Makalah KONVERSI ENERGI
Makalah KONVERSI ENERGIMakalah KONVERSI ENERGI
Makalah KONVERSI ENERGI
 
Electronic business system
Electronic business systemElectronic business system
Electronic business system
 
Manajemen operasi 5 m
Manajemen operasi 5 mManajemen operasi 5 m
Manajemen operasi 5 m
 
Inovasi sdm sebagai keunggulan kompetitif
Inovasi sdm sebagai keunggulan kompetitifInovasi sdm sebagai keunggulan kompetitif
Inovasi sdm sebagai keunggulan kompetitif
 
Tata Kelola Rantai Pasokan
Tata Kelola Rantai PasokanTata Kelola Rantai Pasokan
Tata Kelola Rantai Pasokan
 
Perbedaan variabel bebas dan variabel moderating
Perbedaan variabel bebas dan variabel moderatingPerbedaan variabel bebas dan variabel moderating
Perbedaan variabel bebas dan variabel moderating
 
Aplikasi Crowde Solusi Investasi Masa Kini
Aplikasi Crowde Solusi Investasi Masa KiniAplikasi Crowde Solusi Investasi Masa Kini
Aplikasi Crowde Solusi Investasi Masa Kini
 
LAPORAN PRAKERIN PT. GEODIPA ENERGI DIENG
LAPORAN PRAKERIN PT. GEODIPA ENERGI DIENG LAPORAN PRAKERIN PT. GEODIPA ENERGI DIENG
LAPORAN PRAKERIN PT. GEODIPA ENERGI DIENG
 
Analisa Kinerja Perusahaan Ditinjau Dari Ratio Keuangan
Analisa Kinerja Perusahaan Ditinjau Dari Ratio KeuanganAnalisa Kinerja Perusahaan Ditinjau Dari Ratio Keuangan
Analisa Kinerja Perusahaan Ditinjau Dari Ratio Keuangan
 
Ppt cloudcomputing
Ppt cloudcomputingPpt cloudcomputing
Ppt cloudcomputing
 
Proposal studi kelayakan_bisnis_cafe
Proposal studi kelayakan_bisnis_cafeProposal studi kelayakan_bisnis_cafe
Proposal studi kelayakan_bisnis_cafe
 

Viewers also liked

Pengulanganwhilealgoritma
PengulanganwhilealgoritmaPengulanganwhilealgoritma
Pengulanganwhilealgoritmacasnadi
 
Algoritma & pemrograman 2
Algoritma & pemrograman 2Algoritma & pemrograman 2
Algoritma & pemrograman 2Mulyana Yana
 
Pengulangan for Algoritma
Pengulangan for AlgoritmaPengulangan for Algoritma
Pengulangan for Algoritmacasnadi
 
Mi1274 alpro lanjut 6 - perulangan - 2 - for, do-while
Mi1274 alpro lanjut   6 - perulangan - 2 - for, do-whileMi1274 alpro lanjut   6 - perulangan - 2 - for, do-while
Mi1274 alpro lanjut 6 - perulangan - 2 - for, do-whileDefina Iskandar
 
Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010
Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010
Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010eddie Ismantoe
 

Viewers also liked (6)

Pengulanganwhilealgoritma
PengulanganwhilealgoritmaPengulanganwhilealgoritma
Pengulanganwhilealgoritma
 
Python idioms
Python idiomsPython idioms
Python idioms
 
Algoritma & pemrograman 2
Algoritma & pemrograman 2Algoritma & pemrograman 2
Algoritma & pemrograman 2
 
Pengulangan for Algoritma
Pengulangan for AlgoritmaPengulangan for Algoritma
Pengulangan for Algoritma
 
Mi1274 alpro lanjut 6 - perulangan - 2 - for, do-while
Mi1274 alpro lanjut   6 - perulangan - 2 - for, do-whileMi1274 alpro lanjut   6 - perulangan - 2 - for, do-while
Mi1274 alpro lanjut 6 - perulangan - 2 - for, do-while
 
Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010
Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010
Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010
 

Similar to Perulangan for

Modul vii dan viii algo
Modul vii dan viii algoModul vii dan viii algo
Modul vii dan viii algoSTMIK AKAKOM
 
3. teknik looping dalam_pemrograman
3. teknik looping dalam_pemrograman3. teknik looping dalam_pemrograman
3. teknik looping dalam_pemrogramanRoziq Bahtiar
 
MAKALAH PERULANGAN BAHASA C ( Diki Candra ).docx
MAKALAH PERULANGAN BAHASA C ( Diki Candra ).docxMAKALAH PERULANGAN BAHASA C ( Diki Candra ).docx
MAKALAH PERULANGAN BAHASA C ( Diki Candra ).docxDikicandra6
 
Tugas kelompok
Tugas kelompokTugas kelompok
Tugas kelompokAidil Kun
 
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunusTifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunusTifanie Indah
 
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunusTifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunusTifanie Indah
 
5. pemrograman array dan_string
5. pemrograman array dan_string5. pemrograman array dan_string
5. pemrograman array dan_stringRoziq Bahtiar
 
Laporan praktikum Algoritma dan Pemrograman pertemuan 9&10
Laporan praktikum Algoritma dan Pemrograman pertemuan 9&10Laporan praktikum Algoritma dan Pemrograman pertemuan 9&10
Laporan praktikum Algoritma dan Pemrograman pertemuan 9&10Ekha Cahya Nugraha
 
Laporan Praktikum Algoritma Pemrograman Modul II
Laporan Praktikum Algoritma Pemrograman Modul IILaporan Praktikum Algoritma Pemrograman Modul II
Laporan Praktikum Algoritma Pemrograman Modul IIShofura Kamal
 
Laporan praktikum modul iv
Laporan praktikum modul ivLaporan praktikum modul iv
Laporan praktikum modul ivDevi Apriansyah
 
Algo temu 4 struktur dasar algoritma
Algo temu 4 struktur dasar algoritmaAlgo temu 4 struktur dasar algoritma
Algo temu 4 struktur dasar algoritmaSenna Hendrian
 
DASAR - DASAR ALGORITMA
DASAR - DASAR ALGORITMADASAR - DASAR ALGORITMA
DASAR - DASAR ALGORITMAWalid_1234
 
Looping Algoritma
Looping AlgoritmaLooping Algoritma
Looping AlgoritmaFirdaus1212
 
Struktur data chapter_10
Struktur data chapter_10Struktur data chapter_10
Struktur data chapter_10Sejahtera Affif
 
9. algoritma perulangan pada java
9. algoritma perulangan pada java9. algoritma perulangan pada java
9. algoritma perulangan pada javaSaprudin Eskom
 

Similar to Perulangan for (20)

Topik 8 Perulangan
Topik 8 PerulanganTopik 8 Perulangan
Topik 8 Perulangan
 
Modul vii dan viii algo
Modul vii dan viii algoModul vii dan viii algo
Modul vii dan viii algo
 
3. teknik looping dalam_pemrograman
3. teknik looping dalam_pemrograman3. teknik looping dalam_pemrograman
3. teknik looping dalam_pemrograman
 
MAKALAH PERULANGAN BAHASA C ( Diki Candra ).docx
MAKALAH PERULANGAN BAHASA C ( Diki Candra ).docxMAKALAH PERULANGAN BAHASA C ( Diki Candra ).docx
MAKALAH PERULANGAN BAHASA C ( Diki Candra ).docx
 
Tugas kelompok
Tugas kelompokTugas kelompok
Tugas kelompok
 
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunusTifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
 
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunusTifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
 
207 p05
207 p05207 p05
207 p05
 
5. pemrograman array dan_string
5. pemrograman array dan_string5. pemrograman array dan_string
5. pemrograman array dan_string
 
Laporan praktikum Algoritma dan Pemrograman pertemuan 9&10
Laporan praktikum Algoritma dan Pemrograman pertemuan 9&10Laporan praktikum Algoritma dan Pemrograman pertemuan 9&10
Laporan praktikum Algoritma dan Pemrograman pertemuan 9&10
 
Laporan Praktikum Algoritma Pemrograman Modul II
Laporan Praktikum Algoritma Pemrograman Modul IILaporan Praktikum Algoritma Pemrograman Modul II
Laporan Praktikum Algoritma Pemrograman Modul II
 
Modul 1-2
Modul 1-2Modul 1-2
Modul 1-2
 
Laporan praktikum modul iv
Laporan praktikum modul ivLaporan praktikum modul iv
Laporan praktikum modul iv
 
Algo temu 4 struktur dasar algoritma
Algo temu 4 struktur dasar algoritmaAlgo temu 4 struktur dasar algoritma
Algo temu 4 struktur dasar algoritma
 
DASAR - DASAR ALGORITMA
DASAR - DASAR ALGORITMADASAR - DASAR ALGORITMA
DASAR - DASAR ALGORITMA
 
Looping Algoritma
Looping AlgoritmaLooping Algoritma
Looping Algoritma
 
modul algoritma Bab 4
modul algoritma Bab 4modul algoritma Bab 4
modul algoritma Bab 4
 
Struktur data chapter_10
Struktur data chapter_10Struktur data chapter_10
Struktur data chapter_10
 
Tipe data
Tipe dataTipe data
Tipe data
 
9. algoritma perulangan pada java
9. algoritma perulangan pada java9. algoritma perulangan pada java
9. algoritma perulangan pada java
 

Perulangan for

  • 1. PERULANGAN FOR DAN ARRAY 2 DIMENSI Kelompok 1 1. Aghun Gugah P.W. 201043500665 2. Prasetya Wira 201043500670 3. Dinda 201043500618 4. Nurmaya 201043500671 5. Zahra 201043500680 6. Ulfa 201043500621 7. M. Firgiawan 201043500662 8. M. Arif 201043500676 9. Ahmad Nurcolis 201043500624 10. Septian 201043500640 11. Ahmad Fahmi 201043500609 12. Dwi Wulan 201043500598 13. M. Zaelani 201043500659 14. M. Kurtubi 201043500646 15. Syartika 201043500623 16. As’ad Aufar 201043500632 17. Fajar Norracmad 201043500644 18. Julistio Pratama 201043500628 19. Rahmat Fajar 201043500599 UNIVERSITAS INDRAPRASTA PGRI JAKARTA 2011
  • 2. PERULANGAN Dalam pemrograman ada dua jenis perulangan, yaitu perulangan yang sudah diketahui dengan pasti jumlah perulangannya dan yang tidak diketahui jumlah perulangannya.Yang dimaksud dengan perulangan yang sudah diketahui jumlah perulangannya adalah pembuat program sudah mengetahui dengan pasti berapa kali statement dalam blok perulangan yang harus dikerjakan. Sedangkan perulangan yang tidak pasti, statement yang dikerjakan dalam blok perulangan tidak diketahui dengan pasti jumlah perulangan yang dikerjakan, misalnya suatu statement akan diulang apabila user meng-input-kan data lebih besar dari 5. Dalam Java perulangan yang sudah diketahui dengan pasti jumlah perulangannya bisa diimplementasikan menggunakan for… sedangkan untuk perulangan yang tidak diketahui dengan pasti bisa menggunakan jenis perulangan while atau do – while. Perulangan for Ada tiga komponen utama yang harus diperhatikan dalam penggunaan perulangan for…. Tiga komponen tersebut sebagai berikut: Variabel pencacah Variabel ini digunakan untuk mengontrol jumlah perulangan yang dikerjakan. Setiap kali perulangan dikerjakan maka nilai variabel ini akan selalu berubah. Nilai dalam variabel dapat berubah semakin besar (increment) atau semakin kecil (decrement). Persyaratan Persyaratan yang digunakan agar perulangan dikerjakan. Syarat ini bisa berdasarkan nilai dalam variabel penghitung atau variabel lain (yang telah dideklarasikan sebelumnya) menggunakan operator relasional. Peubah variabel pencacah Statement peubah variabel pencacah bertugas merubah nilai dalam variabel pencacah selama perulangan terjadi. Perubahan nilai dapat semakin besar (increment) atau semakin kecil (decrement). Kita akan membahas bentuk perulangan lain, yaitu perulangan for. Setiap bentuk perulangan for dapat diubah menjadi bentuk perulangan while dengan fungsi yang sama tanpa mengubah alur program. Tetapi tergantung dari permasalahan yang akan kita pecahkan, menulis program dengan for akan membuat alur program lebih mudah dipahami.
  • 3. Misalnya, kita akan menghitung 1+2+3+4+5+...+100. Kita bisa ekspresikan program tersebut dalam bentuk i = 1; jumlah = 0; while (i <= 100) { jumlah += i; i++; } Perulangan ini dapat ditulis juga dengan jumlah = 0; for (i = 1; i <= 100; i++) jumlah += i Apa point-point penting yang kita lihat dari perubahan ini? Pertama mari kita lihat bentuk penggunaan while yang umum dilakukan inisialisasi variabel while (suatu_kondisi_variabel) { perintah update_variabel } Di sini perulangan while memiliki 3 komponen penting, yaitu inisialisasi, yaitu memberikan nilai awal suatu variabel, suatu_kondisi_variabel, yaitu pengujian bahwa perulangan akan terus dilakukan selama kondisi ini bernilai true, dan terakhir update_variabel, yaitu instruksi mengubah nilai kondisi variabel untuk membatasi perulangan sehingga akan selesai suatu saat, tidak berulang terus menerus. Pada perulangan for, ketiga komponen ini dirangkai menjadi satu dalam bentuk for (inisialisasi_variabel; kondisi_variabel; update_variabel) perintah atau jika perintah merupakan blok yang terdiri dari banyak perintah, dapat dituliskan juga dalam bentuk for (inisialisasi_variabel; kondisi_variabel; update_variabel) { banyak_perintah } Di sini inisialisasi variabel bisa berupa apa saja yang berbentuk perintah, misalnya memberikan variabel dengan nilai awal tertentu, dalam bentuk variabel = nilai_awal. kondisi_variabel harus berbentuk pernyataan boolean seperti suatu_kondisi pada pernyataan while. Sedangkanupdate_variabel juga berbentuk perintah. inisialisasi_variabel, kondisi_variabel, atau update_variabel dapat dikosongkan dan tidak harus selalu diisi. Bagian yang tidak diisi yang selalu digantikan dengan true, yang artinya perulangan akan terus dieksekusi tanpa henti. Untuk menghentikannya, perintah break harus diberikan ditengah-tengah badan perulangan.
  • 4. Bentuk paling umum dari perulangan for adalah menghitung. Biasanya perulangan ini memiliki bentuk seperti for (variabel = nilai_minimum; variabel <= nilai_maksimum; variabel++) { perintah } Perhatikan bagian terakhir adalah menaikkan nilai variabel dengan 1, yang artinya perulangan akan dimulai dengannilai_minimum, diakhiri dengan nilai_maksimum dengan jeda 1. Contoh, jika kita ingin berhitung 2,5,8,11,14,17, atau dengan kata lain, mulai dari 2 hingga 17 dengan jeda 3, kita bisa mengekspresikan for dengan for (i = 2; i <= 17; i += 3) { System.out.println(i); } Untuk menghitung mundur, kita bisa menggunakan perintah seperti for (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 dengan for (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 bahasa pemrograman ketat, yang artinya semua harus didefinisikan dengan jelas sebelum digunakan. Untuk banyak kasus, deklarasi variabel dan perulangannya bisa dilakukan serentak pada bagian inisialisasi variabel. Misalnya for (int i = 1; i <= 10; i++) { System.out.println(i) } Perhatikan ada imbuhan int di depan inisialisasi variabel i, yang merupakan deklarasi variabel i dengan tipe data int sekaligus menginisialisasi nilainya dengan 1.
  • 5. Bentuk umum perulangan for sebagai berikut: for (variabelPencacah; persyaratan; peubahVariabelPencacah) { statement ... ... } Contoh program: //Nama program: Perulangan1.java public 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-1 Perulangan ke-2 Perulangan ke-3 Perulangan ke-4 Perulangan ke-5 Perulangan ke-6 Perulangan ke-7 Perulangan ke-8 Perulangan ke-9 Perulangan ke-10 Penjelasan: Program diawali dengan pendeklarasian variabel, dimana nama variabel tersebut adalah counter dan batasPerluangandengan tipe data integer. Variabel batasPerulangan diinisialisasi dengan nilai 10. Pada baris perulangan for…, variabelcounter diinisialisasi dengan nilai 1. Persyaratannya adalah statement dalam blok perulangan akan dikerjakan apabila nilai variabel counter kurang dari sama dengan nilai dalam variabel batasPerulangan. Dan setiap kali statement blok perulangan selesai dikerjakan nilai dalam variabel counter ditambah 1 (increment). //Nama program: Perulangan2 public 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: 6 6 6 6 ------ + 24 Penjelasan program: Program diawali dengan pendeklarasian variabel. Variabel tersebut adalah bilangan1, bilangan2, hasil bertipe data integer dan berturut-turut diinisialisasi dengan nilai 6, 4 , dan 0. Dalam program tersebut juga terdapat variabelangka diinisialisasi dengan string kosong (“”). Pada baris perulangan 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 adalah statement dalam blok perulangan dikerjakan apabila nilai variabel counter kurang dari sama dengan nilai dalam variabel bilangan2. Dan setiap kali statement dalam blok perulangan selesai dikerjakan, nilai dalam variabel counter ditambah 1 (increment). Syarat terjadinya pengulangan for… bisa terdiri lebih dari satu statement relasional yang digabung dengan operator logika AND atau OR. Berikut adalah contoh program perulangan for dengan dua syarat statement relasional yang digabungkan menggunakan 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 1 2 9 3 3 8 5 4 7 7 5 6 9 For Bersarang (Nested for) Yang dimaksud dengan nested for adalah apabila di dalam blok statement perulangan terdapat perulangan lagi. Program berikut adalah contoh dari nested for… //Nama program: Perulangan3.java public 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 sampai selesai, 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! = 1 1! = 1 2! = 2 3! = 6 4! = 24 5! = 120 6! = 720 7! = 5040 8! = 40320 9! = 362880 10! = 3628800 break; dan continue; dalam Perulangan for Berikut adalah contoh program perulangan for yang menggunakan statement break; dan continue;
  • 12. //Nama program: Perulangan5.java public 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-1 Penjelasan: Mengapa perulangan baru dijalankan sekali sudah berhenti? Karena dalam blok perulangan terdapat percabangan ifdengan statement (counter<=5) dan statement break. Maksudnya apabila kondisi (counter<=5) terpenuhi/true maka perulangan akan dihentikan. Dalam program tersebut, perulangan dimulai dengan menginisialisasi 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. Selanjutnya bertemu dengan percabangan dengan statement (counter<=5) dan nilai kondisinya true maka statement break dalam program akan dijalankan, dan menghentikan perulangan. 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 terjadi pengulangan dimulai dengan menambah nilai variabel counterdengan 1 (increment). Sebaliknya jika kondisinya salah maka nilai yang ada dalam variabel counter digabungkan dengan string dan disimpan dalam variabel hasil untuk ditampilkan di layar. Perulangan for bertingkat Seperti pada perulangan while, perulangan for pun dapat dilakukan bertingkat, artinya perulangan for di dalam perulanganfor. Kita ambil contoh sederhana misalnya membuat tabel perkalian seperti 1 2 3 4 5 6 7 8 9 10 11 12 2 4 6 8 10 12 14 16 18 20 22 24 3 6 9 12 15 18 21 24 27 30 33 36 4 8 12 16 20 24 28 32 36 40 44 48 5 10 15 20 25 30 35 40 45 50 55 60 6 12 18 24 30 36 42 48 54 60 66 72 7 14 21 28 35 42 49 56 63 70 77 84 8 16 24 32 40 48 56 64 72 80 88 96 9 18 27 36 45 54 63 72 81 90 99 108 10 20 30 40 50 60 70 80 90 100 110 120 11 22 33 44 55 66 77 88 99 110 121 132 12 24 36 48 60 72 84 96 108 120 132 144 Program untuk membuat tabel perkalian tersebut bisa diekspresikan dengan algoritma pseudocode sebagai berikut untuk setiap baris i = 1,2,3...,12 cetak perkalian i dengan 1,2,3..12 cetak baris baru Kalau kita jabarkan lebih lanjut, perintah kedua juga merupakan perulangan dari 1 hingga 12, sehingga algoritma di atas bisa kita tulis sebagai untuk setiap baris i = 1,2,3...,12 untuk setiap kolom j = 1,2,3...,12 cetak i*j cetak baris baru Kita bisa terjemahkan ke dalam bahasa Java sebagai for (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 stub for (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 MULTIDIMENSI Tipe apapun bisa digunakan sebagai tipe dasar suatu array. Kita bisa membuat array int, array String, array Object dan seterusnya. Terutama, karena array adalah tipe Java kelas satu, kita bisa membuat array yang bertipe array. Misalnya suatu array bertipe int[], juga otomatis memiliki array bertipe int[][], yaitu "array bertipe array int". Array tersebut disebut array 2 dimensi. Tentunya, dengan tipe int[][], kita juga bisa membuat arraynya dengan tipe int[][][], yang merupakan array 3 dimensi, dan seterusnya. Tidak ada batasan berapa dimensi array yang kita buat, akan tetapi bukan sesuatu yang biasa dilakukan untuk membuat array lebih dari 3 dimensi. Pembahasan kita akan lebih dikhususkan pada array 2 dimensi. Tipe TipeDasar[][] biasanya dibaca "array 2 dimensi bertipe TipeDasar" atau "array dari array TipeDasar". Deklarasi pernyataan "int[][] A;" adalah membuat variabel bernama A dengan tipe int[][]. Variabel ini berisi objek yang bertipe int[][]. Pernyataan pemberian nilai "A = new int[3][4];" akan membuat objek array 2 dimensi dan mengisi A ke objek yang baru dibuat tersebut. Seperti biasa, deklarasi dan pemberian nilai bisa digabung menjadi satu pernyataan, seperti "int[][] A = new int[3][4];". Objek yang baru dibuat adalah objek yang merupakan array dari array int. Bagian int[3][4] menyatakan bahwa ada 3 array int di dalam array A, dan di setiap array int tersebut terdapat 4 int. Cara seperti itu mungkin sedikit membingungkan, akan tetapi akan lebih mudah apabila kita bayangkan array tersebut seperti matriks. Istilah "int[3][4]" bisa disebut sebagai matriks dengan 3 baris dan 4 kolom, seperti pada ilustrasi berikut ini :
  • 17. Untuk banyak hal, kita bisa mengabaikan kenyataan di atas, dan membayangkan bentuk matriks seperti di atas. Kadang-kadang kita juga harus ingat bahwa setiap baris sebenarnya juga merupakan suatu array. Array-array ini bisa dirujuk dengan 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] itu sendiri sebenarnya adalah array int, kita bisa menambah indeks lain untuk merujuk pada posisi pada baris tersebut. Misalnya A[1][3] adalah elemen nomor 3 pada baris 1. Seperti biasa, ingat bahwa posisi baris dan kolom dimulai dari 0. Jadi pada contoh di atas, A[1][3] bernilai 5. Lebih umum lagi,A[i][j] adalah posisi pada baris 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 atau menggunakannya 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 dalam setiap baris, yaitu yang disimpan pada A[0]. Jumlah kolom ini bisa didapatkan dengan menggunakan A[0].length, atau A[1].length atau A[2].length. (Tidak ada aturan baku yang menyatakan bahwa pada setiap baris suatu array harus memiliki panjang yang sama, dan sebenarnya pada beberapa aplikasi, juga digunakan array dengan panjang yang berbeda-beda pada setiap barisnya. Akan tetapi apabila kita membuat array dengan perintah seperti di atas, maka kita akan selalu mendapatkan array dengan panjang array yang sama.) Array 3 dimensi juga dibuat dan diolah dengan cara yang sama. Misalnya, array 3 dimensi bertipe int bisa dibuat dengan pernyataan "int[][][] B = new int [7][5][11];". Kita juga bisa mengilustrasikannya sebagai kubus 3-dimensi. Masing-masing bloknya bertipe int yang bisa dipanggil dalam bentuk B[i][j][k]. Array dimensi lain yang lebih tinggi juga mengikuti pola yang sama, akan tetapi akan sangat sulit untuk membuat visualisasi struktur arraynya. Kita bisa mengisi array multi dimensi sekaligus pada saat dideklarasikan. Ingat sebelumnya bagaimana array 1 dimensi biasa dideklarasikan, dan bagaimana isinya diinisialisasikan, yaitu seperti daftar nilai-nilainya yang dipisahkan dengan koma, dan diletakkan di dalam tanda kurung kurawal { dan }. Inisialisasi array bisa juga digunakan untuk array multi dimensi, yang terdiri dari beberapa 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 diisi dengan nilai awal tergantung pada tipenya : nol untuk bilangan, false untuk boolean dan null untuk objek. Seperti halnya array 1 dimensi, array 2 dimensi juga sering diolah dengan menggunakan perulangan for. UNtuk mengolah semua elemen pada array 2 dimensi, kita bisa menggunakan pernyataan for bertingkat. Jika array A dideklarasikan seperti int[][] A = new int[3][4]; maka kita bisa mengisi 0 untuk semua elemen pada A dengan menggunakan for (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. Kemudian perulangan for bagian luar akan mengisi baris kedua, dan seterusnya. Dan juga, kita bisa menjumlah semua elemen pada A dengan int 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 menggunakan perulangan for bertingkat 3. Suatu array 2 dimensi bisa digunakan untuk menyimpan data yang secara alami memang tersusun sebagai baris dan kolom. Misalnya papan catur terdiri dari 8 baris dan 8 kolom. Jika suatu kelas dinamakan PapanCatur untuk merepresentasikan papan catur, maka kita bisa deklarasikan dengan perintah PapanCatur[][] papan = new PapanCatur[8][8]; Kadang-kadang array 2 dimensi juga digunakan untuk masalah yang tidak terlalu jelas matriksnya. Misalnya perusahaan yang memiliki 25 toko. Anggap masing- masing toko memiliki keuntungan yang didapat pada masing-masing toko tersebut setiap 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 data keuntungan 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 keuntungan toko noToko pada bulan noBulan. Dalam contoh ini array 1 dimensiuntung[noToko] memiliki arti : Data keuntungan satu toko selama satu tahun.
  • 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 2009 totalUntung = 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 total perusahaan pada bulan Desember, yaitu bulan nomor 11, maka kita bisa gunakan perulangan : 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 toko setiap bulan : double[] untungBulanan; // Keuntungan setiap bulan untungBulanan = new double[12]; for (int bulan = 0; bulan < 12; bulan++) { // hitung total keuntungan semua toko bulan ini untungBulanan[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 tahu toko mana yang menghasilkan keuntungan terbesar sepanjang tahun. Untuk menghitungnya, 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 dengan keuntungan terbesar. double untungMaks; // Keuntungan terbesar suatu toko int tokoTerbaik; // Nomor toko yang memiliki keuntungan terbesar double total = 0.0; // Total keuntungan suatu toko // Pertama-tama hitung keuntungan dari toko nomo 0 for (int bulan = 0; bulan < 12; bulan++) total += untung[0][bulan];
  • 20. tokoTerbaik = 0; // Mulai dengan anggapan toko nomor 0 untungMaks = 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 tersebut for (toko = 1; toko < 25; toko++) { // Hitung keuntungan toko tersebut sepanjang tahun total = 0.0; for (bulan = 0; bulan < 12; bulan++) total += untung[toko][bulan]; // Bandingkan keuntungan toko ini dengan untungMaks if (total > untungMaks) { untungMaks = total; // keuntungan terbesar saat ini tokoTerbaik = 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 sebagai indeks. Penulisan seperti ini System.out.println(angka[3]); merupakan penulisan untuk array satu dimensi. Perhatikan bahwa bilangan yang kita gunakan sebagai nomor indeks array hanya satu, tidak perduli berapa jumlah digitnya. Angka 100 merupakan sebuah bilangan, walaupun jumlah digitnya ada 3. Pada beberapa kondisi diperlukan penulisan variabel array yang menggunakan nomor indeks dua bilangan, misalnya pada aplikasi matrik. Data pada suatu matrik diketahui berdasarkan nilai baris dan kolomnya. Baris adalah sebuah bilangan dan kolom adalah sebuah bilangan juga. Tanpa adanya salah satu dari keduanya kita tidak bisa mengetahui data mana yang dimaksud, jika kita ingin mengambil sebuah data individu. Bentuk umum pendeklarasian variabel array dua dimensi di Java adalah:
  • 21. tipeData[][] nama_variabel[=new tipeData[jumlah_baris] [jumlah_kolom]]; Untuk memudahkan pemahaman, bentuk array dua dimensi bisa dihambarkan 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-1 variabel array N adalah nilai yang menyatakan jumlah baris dari array, sedangkan M menyatakan jumlah kolom dari array. Sama seperti array satu dimensi, penomoran indeks untuk array dua dimensi juga dimulai dari 0 untuk baris maupun kolomnya. Tidak ada aturan yang mengatakan bahwa urutan untuk nomor indeks adalah baris dulu baru kolom, tetapi buku ini menggunakan urutan baris-kolom untuk menyatakan indeks matrik dua dimensi. Sekarang kita buat sebuah program yang akan mengilustrasikan penggunaan array dua dimensi. Seperti pada program-program sebelumnya, pada program ini kita menggunakan fungsi random() pada proses entry data setiap elemen array. Program 5.11 1 class ArrayDuaDimensi 2 { 3 public static void main (String[] args) 4 {
  • 22. 5 int[][] angka = new int[5][3]; 6 7 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); 10 11 System.out.println("Data array “ + “dua dimensi:n"); 12 13 for (int i=0; i<angka.length; i++) 14 { 15 for (int j=0; j<angka[i].length; j++) 16 System.out.print(angka[i][j] + " "); 17 18 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 bisa mengetahui berapa jumlah kolomnya, atau lebih tepatnya jumlah array indeks keduanya, dengan pernyataan seperti terlihat pada baris 8. Dengan demikian
  • 23. angka.length akan melaporkan jumlah baris, sedangkan angka[i].length akan melaporkan jumlah kolom pada baris ke-i. Contoh output program dapat dilihat pada gambar berikut ini: