PERTEMUAN 2 ARRAY, PERCABANGAN, DAN PERULANGAN Obyektif: Praktikan mengetahui array, percabangan, dan perulangan pada Java. Praktikan mengetahui bentuk umum dari array, percabangan, dan perulangan dalam Java. Praktikan dapat membuat program sederhana dengan menggunakan bahasa pemrograman Java, untuk array, percabangan, dan perulangan. Catatan : Cobalah setiap contoh dan latihan 1
Array Deklarasi dan Penciptaan Array Array di Java dideklarasikan dengan kurung siku: [ ], lalu diikuti oleh nama identifier-nya. Sintaks umum deklarasi array : type var-name[]; Atau type[] var-name; Berikut contoh contoh deklarasi array di Java : int numbers[]; char[] letters; long grid[][]; Berikut contoh pendeklarasian array dengan menspesifikasikan ukuran spesifiknya menggunakan operator new(): char alphabet[] = new() char [26]; int primes = 7, 11, 13; 2
Array 1 Dimensi Array 1 dimensi pada dasarnya senarai (deretan) variabel bertipe serupa. Bentuk umum new()untuk array 1 dimensi adalah sebagai berikut : array-var = new() type[size] Keterangan : type menspesifikasikan tipe data yang dialokasikan, size menspesifikasikan jumlah dari elemen array, dan array-var adalah variabel array yang dirangkai ke array. Perhatikan contoh berikut : monthdays = new() int[12]; Setelah pernyataan diatas dieksekusi, monthdays akan mengacu ke array berisi 12 bilangan int, kedua belas angka tersebut dinisialisasi dengan nol. Catatan : Proses untuk dapat memperoleh array ialah 2 langkah, yaitu: 1. Deklarasi variabel dari tipe array yang dikehendaki. 2. Alokasi memori yang akan menyimpan array menggunakan operator new() dan memberikannya ke variable array. 3
Semua array dimulai dengan indeks nol. Berikut contoh untuk memberikan nilai 29 ke elemen kedua dari monthdays, digunakan perintah : monthdays[1] = 29; Berikut ini untuk menampilkan nilai yang disimpan pada indeks 3, yaitu: System.out.println(monthDays[3]); Berikut ini salah satu contoh untuk array yang berisi jumlah hari maksimum di masing masing bulan : Class Bulan //deklarasi class public static void main(string[]args) //main method //deklarasi var array int monthdays[]; monthdays = new int[12]; //isi var array mounthdays[0] = 31; mounthdays[1] = 29; mounthdays[2] = 31; mounthdays[3] = 30; mounthdays[4] = 31; mounthdays[5] = 30; mounthdays[6] = 31; mounthdays[7] = 31; mounthdays[8] = 30; 4
mounthdays[9] = 31; mounthdays[10] = 30; mounthdays[11] = 31; //cetak tulisan dan isi var array mounthdays indeks ke 7. System.out.println("Agustus mempunyai "+mounthdays[7]+" hari"); Output : Agustus mempunyai 31 hari 5
Array Multi Dimensi Array multidimensi diimplementasikan sebagai array yang terletak didalam array. Array multidimensi dideklarasikan dengan menambahkan jumlah tanda kurung setelah nama array. Contoh : Array 2 dimensi bertipe int bernama intdarr dideklarasikan dan dibuat dengan perintah sebagai berikut : int int2darr[][] = new() int [4][5]; Keterangan : Perintah ini mendeklarasikan dan mengalokasikan array 4 kali 5 dan memberikan ke variabel int2darr. Secara internal matriks ini diimplementasikan sebagai array dari array bertipe int inisialisasi Inisialisasi array multidimensi, yaitu kita cukup mengapit masing inisialisasi dimensi dengan satu pasangan kurung kurawal. 6
Berikut contoh listing program yang memberikan angka ke masing masing elemen di array dari kiri ke kanan, puncak ke bawah, kemudian menampilkan masing masing elemen : class Multidimensi // deklarasi class public static void main(string[]args) //main method //deklarasi variabel array dan variabel k int 2DArr[][] = new int[4][5]; int k=0; //perulangan untuk menginput data array for(int i=0; i<4; i++) //untuk perulangan baris for(int j=0; j<5; j++) //untuk perulangan kolom 2DArr[i][j] = k++; //isi var array 2DArr = increment var k (k=k+1) 7
//perulangan untuk menampilkan data array for(int i=0; i<4; i++) //untuk perulangan baris for(int j=0; j<5; j++) //untuk perulangan kolom //cetak isi variabel array sesuai index [baris][kolom] dan 1 spasi kosong " " System.out.println(2DArr[i][j] + " "); System.out.println();//pindah baris Output: 01234 56789 10 11 12 13 14 15 16 17 18 19 8
Percabangan Jenis percabangan di java, yaitu: If, if-else, dan switch. Percabangan if Pernyataan if akan menentukan sebuah pernyataan (atau blok kode) yang akan eksekusi jika dan hanya jika persyaratan bernilai benar(true). Bentuk dari pernyataan if : if (- Expression -) Statement else Statement atau if( boolean_expression ) atau if( boolean_expression ) statement1; statement2;... Catatan : dimana, boolean_expression adalah sebuah penyataan logika (true/false) atau variabel bertipe boolean. 9
Contoh program bentuk percabangan if : Output : Variabel anint bernilai nol Contoh program if diatas dapat diringkas sebagai berikut : Output : Variabel anint bernilai nol Keterangan : kedua program diatas menghasilkan output yang sama karena inti programnya sama yaitu mencetak tulisan Variabel anint bernilai nol jika isi var anint = 0. 10
Percabangan if-else Pernyataan if-else digunakan apabila kita ingin mengeksekusi beberapa pernyataan dengan kondisi true dan pernyataan yang lain dengan kondisi false. Berikut bentuk umum pernyataan if-else: if (condition or Boolean expression) statement1 else statement2 Catatan : Jika condition atau Boolean expression dievaluasi bernilai true, maka statement1 dieksekusi, sedangkan jika condition atau Boolean expression dievaluasi bernilai false, maka statement2 yang dieksekusi. 11
Contoh program bentuk percabangan if else: Output : Variabel anint tidak bernilai nol Keterangan : karena var anint bernilai 1 maka statement di else yang dieksekusi, yaitu cetak tulisan Variabel anint tidak bernilai nol. Bahasa Java menyediakan beragam kendali percabangan tidak lokal, yaitu : break, return, dan continue. Break Return Continue 12
Break Istilah break mengacu pada proses memecahkan blok program. Proses tersebut memerintahkan runtime untuk menjalankan program di belakang blok tertentu. Untuk dapat ditunjuk, suatu blok diberi nama, dan Java memiliki bentuk label untuk menyatakan nama suatu blok. Contoh : class ContohBreak //deklarasi class public static void main(string[]args) //main method boolean t=true; //deklarasi variabel t b: //label b System.out.println("Sebelum break"); //cetak tulisan //seleksi if, karena var t bernilai true maka break label b if(t) break b; System.out.println("Ini tidak akan dieksekusi"); System.out.println("Ini tidak akan dieksekusi"); System.out.println("Ini adalah setelah b"); Output: Sebelum break Ini adalah setelah b 13
Return Java menggunakan bentuk sub-rutin yang disebut method untuk mengimplementasikan antarmuka procedural ke kelas objek. Setiap saat dalam method dapat digunakan pernyataan return yang menyebabkan eksekusi mencabang kembali ke pemanggil method. Contoh : Output : Before the return 14
Continue Seringkali kita ingin keluar lebih cepat dari perulangan ataumungkin juga ingin meneruskan perulangan, tetapi harus menghentikan sisa proses pada program untuk iterasi yang bersangkutan. Pernyataan continue di Java melakukan persis seperti itu. Contoh program penggunaan continue yang menyebabkan 2 bilangan dicetak dalam setiap baris : Output: 01 23 45 67 89 15
Percabangan switch Percabangan switch dimaksudkan untuk menangani banyak kemungkinan kemunculan. Berikut ini bentuk umum percabangan switch : switch (expression) case valeue1: break; case value2; break; case valuen; break; default; 16
Contoh: Output: Lima Enam Tujuh Delapan Sembilan bukan karakter digit 17
Perulangan Terdapat beberapa jenis perulangan pada Java, yaitu for, while, dan do while. Perulangan for Berikut bentuk dasar perulangan for : for(initializationexpression; LoopCondition; StepExpression) Statement; Atau for(initializationexpression; LoopCondition; StepExpression) Statement1; Statement2;... Keterangan: InitializationExpression, digunakan untuk inisialisasi variabel kendali perulangan. LoopCondition, membandingkan variabel kendali perulangan dengan suatu nilai batas. StepExpression, menspesifkasikan cara variabel kendali dimodifikasi sebelum iterasi berikutnya dari perulangan. 18
Contoh: Output: 1 2 3 4 5 6 7 8 9 10 Keterangan : potongan program di atas mencetak isi var i secara berulang dimana perulangan dimulai dari nilai awal var i = 1 sampai var i < 11 dan dengan step isi var i ditambah 1 (increment 1). 19
Pernyataan for-loop Bersarang Java memungkinkan loop yang disarangkan di loop yang lain. Satu loop berada didalam loop yang lainnya. Contoh: public class Loop public static void main(string[]args) for(int i=0;i<3;i++) // perulangan i mulai dari 0 sampai 2, step i++ for(int j=5;j>i;j--) //cetak * dari j=5 sampai j>i, step j-- System.out.println("*"); System.out.println(); 20
Output : * * * * * * * * * * * * 21
Perulangan while Pengulangan while mempunyai kondisi yang mengendalikan pernyataan perulangan. Berikut bentuk dasar perulangan while : [initialization;] while (Pernyataan boolean/ LoopCondition/ Termination) Statement; [iteration;] Catatan: Jika LoopCondition/ pernyataan boolean dievaluasi true, maka statement dieksekusi dan proses terus berlanjut berulang kali. Penting diketahui bahwa LoopCondition muncul sebelum badan dari pernyataan. Ini berarti jika LoopCondition sejak semula dievaluasi false, maka statement tidak pernah dieksekusi. Hal ini merupakan perbedaan penting antara perulangan while dengan perulangan do-while. 22
Contoh: 23
Perulangan do-while Bentuk umum atau bentuk dasar perulangan do while : [initialization;] do Statement; [iteration;] while(pernyataan boolen/ LoopCondition/ Termination); Contoh : Catatan: Pada contoh program do-while diatas, kita menggunakan pernyataan (--n > 0) untuk memeriksa kondisi perulangan do-while. Pernyataan --n dijalankan, lalu n dikurangi 1, sehingga menghasilkan nilai baru n. Kemudian n dibandingkan dengan nol. Jika masih lebih besar dari nol, perulangan diteruskan, jika tidak maka dihentikan. 24
Latihan Program Berikut ini adalah contoh program sederhana membuat matriks 3x3 dengan menggunakan array 2 dimensi dan perulangan for. Ikutilah langkah-langkah berikut : Step 1 : Buka dan ketikan program pada teks editor notepad++ Anda. Simpan nama file sama seperti nama classnya, yaitu : Array2D.java Misal disimpan pada direktori D folder praktikan Array2D.java Ketikkan program berikut pada teks editor Anda. import java.io.*; *Deklarasikan class... public static void main(string[] args) //main method // deklarasi var masuk sbg inputan utama DataInputStream masuk=new DataInputStream(System.in); try //try dan catch digunakan untuk menangani kesalahan *Dekalarasi var array angka 2 dimensi, dengan indeks dimensi masing masing 3 bertipe integer. 25
for(int i=0;i<angka.length;i++) //program input data array 3 baris & 3 kolom for(int j=0;j<angka[i].length;j++) //cetak tulisan System.out.print("Matrik ["+(i+1)+"] ["+(j+1)+"] :"); //input data ke var angka[i][j] angka[i][j]=integer.parseint(masuk.readline()); *Buat perintah untuk mencetak matriks 3x3.("Matrik array 2 dimensi"); for(int i=0;i<angka.length;i++) for(int j=0;j<angka[i].length;j++) System.out.print(angka[i][j]+" "); //cetak isi var array *Pindah baris 26
catch(exception e) System.out.println("Salah Input"); *Tutup program dengan mengetikkan tanda... Keterangan : perulangan for(int i=0;i<angka.length;i++) untuk menunjuk ke baris matriksnya, sedangkan perulangan for(int j=0;j<angka[i].length;j++) untuk menunjuk ke kolom matriksnya angka.length panjang/banyaknya isi variabel angka sehingga perulangan tidak boleh melebihi jumlah array variabel angka try...catch... untuk menangani terjadinya kesalahan. Misal salah input data berupa integer tetapi yang diinput karakter/huruf maka pada blok catch akan dicetak pesan kesalahan Salah Input. 27
Step 2 : Ikuti langkah berikut untuk meng-compile program yang telah Anda buat. Buka command prompt Anda. Masuk ke direktori dan folder tempat program tersebut disimpan. Misal program disimpan pada direktori D folder praktikan Perintah masuk/pindah ke direktori D, ketik D: Perintah masuk ke folder praktikan, ketik cd<spasi>praktikan Setelah masuk ke direktori dan folder yang dituju, untuk meng-compile program Anda ketikkan perintah : Contoh : Step 3 : javac<spasi>namafile.java javac Array2D.java Untuk menjalankan program yang telah Anda buat, ketikkan perintah : Contoh : java<spasi>namafile java Array2D 28
Tampilan Output 29
Koreksi Latihan Program import java.io.*; class Array2D //deklarasikan class public static void main(string[] args) //main method // deklarasi var masuk sbg inputan utama DataInputStream masuk=new DataInputStream(System.in); try //try dan catch digunakan untuk menangani kesalahan int[][]angka=new int[3][3]; // dekalarasi var array angka 2 dimensi, dengan indeks dimensi masing masing 3 bertipe integer for(int i=0;i<angka.length;i++) //program input data array 3 baris & 3 kolom for(int j=0;j<angka[i].length;j++) //cetak tulisan System.out.print("Matrik ["+(i+1)+"] ["+(j+1)+"] :"); 30
//input data ke var angka[i][j] angka[i][j]=integer.parseint(masuk.readline()); System.out.println("Matrik array 2 dimensi"); //program mencetak matriks 3x3 for(int i=0;i<angka.length;i++) for(int j=0;j<angka[i].length;j++) System.out.print(angka[i][j]+" "); //cetak isi var array System.out.println();//pindah baris catch(exception e) System.out.println("Salah Input"); 31