pertemuan i pengenalan java

advertisement
PERTEMUAN 2
ARRAY, PERCABANGAN, DAN PERULANGAN
Obyektif:
y
Praktikan mengetahui array, percabangan, dan perulangan pada Java.
y
Praktikan mengetahui bentuk umum dari array, percabangan, dan perulangan dalam Java.
y
Praktikan dapat membuat program sederhana dengan menggunakan bahasa pemrograman Java, untuk
array, percabangan, dan perulangan.
Catatan : Cobalah setiap contoh dan latihan
Pemrograman Berbasis Objek - 2011
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 :
y
int numbers[];
y
char[] letters;
y
long grid[][];
Berikut contoh pendeklarasian
operator new():
array
dengan menspesifikasikan ukuran spesifiknya menggunakan
char alphabet[] = new() char [26];
int primes = {7, 11, 13};
Pemrograman Berbasis Objek - 2011
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.
Pemrograman Berbasis Objek - 2011
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;
Pemrograman Berbasis Objek - 2011
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
Pemrograman Berbasis Objek - 2011
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.
Pemrograman Berbasis Objek - 2011
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)
}
}
Pemrograman Berbasis Objek - 2011
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
Pemrograman Berbasis Objek - 2011
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
penyataan logika (true/false) atau variabel
bertipe boolean.
sebuah
Pemrograman Berbasis Objek - 2011
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.
Pemrograman Berbasis Objek - 2011
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.
Pemrograman Berbasis Objek - 2011
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.
y
Break
y
Return
y
Continue
Pemrograman Berbasis Objek - 2011
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
Pemrograman Berbasis Objek - 2011
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
Pemrograman Berbasis Objek - 2011
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
Pemrograman Berbasis Objek - 2011
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;
}
Pemrograman Berbasis Objek - 2011
16
Contoh:
Output:
Lima
Enam
Tujuh
Delapan
Sembilan
bukan karakter digit
Pemrograman Berbasis Objek - 2011
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.
Pemrograman Berbasis Objek - 2011
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).
Pemrograman Berbasis Objek - 2011
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();
}
}
}
Pemrograman Berbasis Objek - 2011
20
Output :
*
*
*
*
*
*
*
*
*
*
*
*
Pemrograman Berbasis Objek - 2011
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.
Pemrograman Berbasis Objek - 2011
22
Contoh:
Pemrograman Berbasis Objek - 2011
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.
Pemrograman Berbasis Objek - 2011
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.
y
Simpan nama file sama seperti nama classnya, yaitu : Array2D.java
Misal disimpan pada direktori D Æ folder “praktikan” Æ Array2D.java
y
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
…………………………….
Pemrograman Berbasis Objek - 2011
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
………………………………………………………………
}
}
Pemrograman Berbasis Objek - 2011
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”.
Pemrograman Berbasis Objek - 2011
27
Step 2 :
Ikuti langkah berikut untuk meng-compile program yang telah Anda buat.
y
Buka command prompt Anda.
y
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
y
Setelah masuk ke direktori dan folder yang dituju, untuk meng-compile program Anda ketikkan
perintah :
javac<spasi>NamaFile.java
Contoh :
javac Array2D.java
Step 3 :
Untuk menjalankan program yang telah Anda buat, ketikkan perintah :
java<spasi>NamaFile
Contoh :
java Array2D
Pemrograman Berbasis Objek - 2011
28
Tampilan Output
Pemrograman Berbasis Objek - 2011
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)+"] :");
Pemrograman Berbasis Objek - 2011
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");
}
}
}
Pemrograman Berbasis Objek - 2011
31
Download