Tutorial Pemrograman dengan Bahasa Java

dokumen-dokumen yang mirip
Badiyanto, S.Kom., M.Kom. PBO java

2 TIPE DATA DAN VARIABEL

BAB 3 TYPE DATA, VARIABLE DAN OPERATOR

BAB II VARIABEL DAN TIPE DATA

DASAR PEMOGRAMAN JAVA

PEMROGRAMAN JAVA : VARIABEL DAN TIPE DATA

BAHASA PEMROGRAMAN JAVA

LAB PEMROGRAMAN I (JAVA FUNDAMENTAL) PERTEMUAN 3 Dosen : Bella Hardiyana S. Kom

PEMAHAMAN DASAR DASAR JAVA

Pemrograman Berorientasi Objek. Beni Suranto, S.T.

SUMBER BELAJAR PENUNJANG PLPG

Elemen Dasar Dalam Bahasa Java

KONSEP DASAR PEMROGRAMAN BERORIENTASI OBYEK

Identifier, Keywords, Variabel, Tipe Data Primitif dan Operator PBO. Ramos Somya

Pemrograman Berorientasi Obyek. Dasar Pemrograman Java

Percabangan & Perulangan

Dasar Pemrograman Java

E-Book PEMROGRAMAN BERORIENTASI OBJEK. Disusun Oleh: Arfian Hidayat, S.Kom

JAVA FUNDAMENTAL ATURAN PERKULIAHAN SILABUS

Java Basic. Variabel dan Tipe Data. Lokasi di dalam memori komputer yang digunakan untuk menyimpan suatu informasi (nilai)

Dasar Pemograman Java

Pemrograman Berorientasi Obyek. Operator & Assignment

Nama : Julian Chandra W Telp :

BAHASA PEMROGRAMAN JAVA PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM YOGYAKARTA

Pengenalan Bahasa Pemrograman Java

Modul Praktikum 3 Pemograman Berorientasi Objek

OPERATOR-OPERATOR DALAM JAVA

Pemrograman Berbasis Objek Operator dan Assignment

Operator dan Assignment

BAB 1 KONSEP DASAR JAVA

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN

BAB III OPERATOR compiler operasi operand A. Operator Aritmatika Operator Penggunaan Deskripsi Latihan 4. Aritmatika.java

Bahasa Pemrograman 2.

PEMROGRAMAN BERORIENTASI OBJEK

TIPE DATA PADA JAVA. Pertemuan (K-04/L-04)

JAVA. Sekilas tentang java : FITUR JAVA :

PERTEMUAN 2 ARRAY, PERCABANGAN, DAN PERULANGAN

Pengenalan JavaScript

MODUL A:\VARIABEL, OPERATOR, DAN EKSPRESI

JAVA BASIC PROGRAMMING Joobshet

Obyektif : KONTROL ALUR PROGRAM

Modul 2 Dasar Pemrograman Java. Oleh: Mike Yuliana PENS-ITS

Pemrograman. Pertemuan-3 Fery Updi,M.Kom

Percabangan dan Perulangan

PEMROGRAMAN BERORIENTASI OBJEK

Tujuan : A. Percabangan Percabangan di dalam Java terdapat 2 macam, yaitu dengan memakai if dan switch.

24/09/2017 PERCABANGAN

Percabangan & Perulangan

Bahasa Pemrograman Java. Yudi Adha. ST. MMSI

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

Modul Praktikum Bahasa Pemrograman 1

Chapter 2 Tipe Data, Identifier, Operator dan Control Statement

Merupakan tipe data bilangan pecahan seperti 1.5, 2.1, dsb Tipe data ini memiliki ukuran 32 bit dengan panjang range 3.4 x 1038.

Reserved words Reserved words atau keywords merupakan kata-kata spesifik digunakan oleh compiler untuk keperluan pemrograman. Contoh reserved words

KENDALI PROSES. Untuk mengatur arus program, pemrograman java menyediakan struktur perulangan (looping), kondisional, percabangan, dan lompatan.

OPERATOR JAVA. g = x + y; System.out.println("Penjumlahan (x+y) : " + g); g = y - x; System.out.println("Pengurangan (y-x) : " + g);

Operator, Statement kondisional, dan Iterasi pada Java

OBJECT ORIENTED PROGRAMMING. Day 3 : Operator dan Assignment

BAB 6. Struktur Kontrol

Dasar-Dasar Pemrograman Java

Tipe if : If tanpa else (if) If dengan else (if-else) Nested if

Java Basics-1 Oleh : Agus Priyanto, Agus Priyanto M.Kom M.K

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK (JAVA) PERTEMUAN 4 CONTROL FLOW STATEMENT

Java Operators. Nurochman

MODUL PRAKTIKUM DASAR-DASAR PEMROGRAMAN

PERTEMUAN 2 ARRAY, PERCABANGAN, DAN PERULANGAN

SILABUS MATA KULIAH PEMROGRAMAN JAVA

PEMROGRAMAN JAVA. Petunjuk Penulisan Program Token Aturan Penamaan Identifier Lingkungan /Scope dari variabel Tipe Data (i) Yoannita

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR

Tipe Data, Identifier, Operator dan Control Statement

if (ekspresi_boolean) { Pernyataan1; } else { Pernyataan2; }

Ada 3 jenis struktur kontrol: Sequence Structure Selection Structure Repetition Structure Sequence Structure

3. Elemen Dasar C++ S. Indriani S. L., M.T L.,

LAPORAN RESMI. PRAKTIKUM TEKNOLOGI WEB Pengenalan JavaScript

Operator dan Assignment. Pertemuan 3 Pemrograman Berbasis Obyek

BAB 6. Struktur Kontrol

PERTEMUAN I PENGENALAN JAVA

MODUL 2 STRUKTUR KONTROL

Pemrograman Fery Updi,M.Kom

Java Basics-1. Oleh : Agus Priyanto, M.Kom

Chapter 1 KONSEP DASAR C

Pada akhir pertemuan ini, diharapkan mahasiswa memiliki kemampuan untuk: Menggunakan struktur kendali pencabangan bersyarat dalam bahasa pemrograman.

Pengenalan Java PEMROGRAMAN DASAR. Dr. Eng. Herman Tolle, ST., MT. Sistem Informasi PTIIK UB Semester Ganjil 2014/2015

MODUL PRAKTIKUM ALGORITMA DAN STRUKTUR DATA PERTEMUAN 1

Pemrograman Berorientasi Objek 1 (IDENTIFIER KEYWORD LITERAL DAN (IDENTIFIER, KEYWORD, LITERAL DAN TIPE DATA, OPERATOR, SEPARATOR)

Modul Praktikum 2 Pemograman Berorientasi Objek

24/09/2017 PERULANGAN

Sejarah C. Dirancang oleh Denis M. Ritchie tahun 1972 di Bell Labs.

Pemrograman Berorientasi Objek

Pertemuan 4 Array pada Java

3.1 Contoh Program Java Sederhana

TIPE DATA, VARIABEL DATA DAN OPERATOR

BAB V. STATEMEN KONTROL

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

Praktikum 4 Control Flow dan Looping

Tipe Data dan Operator

NASKAH UTAMA ULANGAN AKHIR SEMESTER GANJIL TAHUN PELAJARAN 2013/2014

PRAKTIKUM 2. perubah (variabel), konstanta, fungsi, atau obyek lain yang didefinisikan oleh

Dasar Pemrograman Java. Pertemuan 2 Pemrograman Berbasis Obyek

Transkripsi:

Tutorial Pemrograman dengan Bahasa Java I Putu Susila putu.sgr *AT* gmail.com September 20, 2011 1 Tentang Java 1.1 Bahasa Pemrograman Java Java merupakan bahasa Pemrograman sekaligus Platform yang dikembangkan oleh James Gosling ketika masih bergabung degan Sun Microsystem (Sekarang Oracle) dan dirilis tahun 1995. Bahasa pemrograman Java banyak mengadopsi sintaks yang terdapat pada bahasa C/C++, sehingga penulisannya mirip sekali dengan bahasa C/C++. Hal ini sangat memudahkan programer yang mempunyai latar belakang bahasa C/C++ untuk mempelajari Java. Seperti dijelaskan pada 1 Gambar 1, dalam Java, program pertama ditulis dengan menggunakan text editor sembarang, lalu disimpan ke file dengan ekstensi.java. Perhatikan, nama file harus sama dengan nama class pada program tersebut. Kode sumber yang sudah disimpan kemudian dikompile dengan javac menjadi.class file. Sebuah.class file berisi bytecodes yang merupakan bahasa mesin yang dapat dipahami oleh Java Virtual Machine (Java VM). Java VM (java) inilah yang bertugas menterjemahkan bytecodes tersebut menjadi bahasa mesin yang dapat dijalankan di berbagai sistem operasi. Figure 1: Proses Pembuatan dan Eksekusi Program dengan Java Sebuah program Java, terdiri dari kumpulan class dan sebuah method main. 1 Gambar 2 menunjukkan program sederhana pada bahasa Java dan bagaimana program tersebut dijalankan diberbagai sistem operasi yang berbeda. 1.2 Platform Java Platform adalah lingkungan perangkat keras atau perangkat lunak dimana sebuah aplikasi dijalankan. Platform Java terdiri dari ( 1 Gambar 3): 1. Java Virtual Machine (Java VM) 2. Java Application Programming Interface (API) 1 http://download.oracle.com/javase/tutorial/getstarted/intro/definition.html 1

Figure 2: Aplikasi Hello World pada Java 2 Dasar Pemrograman Java 2.1 Variabel Figure 3: Java VM dan API Secara garis besar, sebuah aplikasi komputer menerima suatu masukan kemudian memprosesnya untuk menghasilkan suatu keluaran. Sesuatu tersebut umumnya disebut data dan agar dapat diproses dari program, harus disimpan di memori lalu diacu dengan menggunakan variabel, contohnya pada List 1. Listing 1: Contoh variabel 1 int X = 10; //bilangan bulat 2 double ipk; 3 char grade = A ; //huruf 4 String nama = "Sm*sh"; //variabel tipe string (kumpulan huruf) 5 ipk = 3.0; //baru di set nilainya 6 float bunga = 1.0f; //32-bit floating point Dalam bahasa Java, ada beberapa jenis variabel, yaitu: 1. Instance Variables (Non-static fields): Variabel untuk menyimpan state dari suatu objek, unik untuk setiap objek. 2. Class Variables (Static fields): Variabel yang di-share dalam sebuah class dan hanya ada satu. 3. Local Variables: Variabel yang digunakan untuk menyimpan nilai sementara dalam sebuah method. 4. Parameters: Variable yang digunakan untuk memberikan nilai ke method. 2

2.1.1 Penamaan Variabel List 1 memuat contoh deklarasi dan penggunaan variabel. Sebuah variabel mempunyai nama dan tipe dari data yang bisa disimpan pada variabel tersebut. Nama dari suatu variabel adalah case-sensitif (dibedakan antara huruf besar dan huruf kecil). Kemudian, penamaan variabel harus mengikuti kaidah-kaidah seperti dibawah ini: 1. Kombinasi antara huruf (dalam Unicode), digit (0-9), tanda $, dan garis bawah ( ). 2. Diawali dengan huruf, tanda $ atau garis bawah( ) 3. Tidak boleh sama dengan keywords Keywords adalah kata-kata yang mempunyai makna khusus/tertentu dalam struktur bahasa pemrograman. Berikut adalah keywords pada bahasa Java. Listing 2: Keywords 1 abstract continue for new switch 2 assert*** default goto* package synchronized 3 boolean do if private this 4 break double implements protected throw 5 byte else import public throws 6 case enum**** instanceof return transient 7 catch extends int short try 8 char final interface static void 9 class finally long strictfp** volatile 10 const* float native super while * tidak digunakan, ** ditambahkan pada versi 1.2, *** ditambahkan pada versi 1.4, **** ditambahkan pada versi 5.0 2.1.2 Tipe Data Primitif Seperti dijelaskan sebelumnya, sebuah variabel mempunya tipe tertentu. Berikut adalah tipe data primitif, yaitu tipe data yang sudah disediakan pada kompiler (bukan merupakan pustaka / library). Table 1: Tipe data primitif pada bahasa Java Nama Lebar Data Rentang Nilai byte 8-bit -128 s/d 127 short 16-bit -32,768 s/d 32,767 int 32-bit -2,147,483,648 s/d 2,147,483,647 long 64-bit -9,223,372,036,854,775,808 s/d 9,223,372,036,854,775,807 float 32-bit 7 angka dibelakang koma double 64-bit 14-15 angka dibelakang koma boolean - true, false char 16-bit Unicode \u0000 s/d \uffff 2.1.3 Array Array adalah sebuah objek kontainer yang terdiri dari beberapa elemen dengan tipe yang sama. Panjang atau jumlah elemen dari sebuah array adalah konstan dan ditentukan pada saat objek tersebut dialokasikan. Gambar 4 menunjukkan sebuah array dengan jumlah elemen 10, sedangkan List 3 menunjukkan contoh kode array dalam bahasa Java. Setiap elemen dari array dapat diakses dengan indek (mulai dari 0). 3

Figure 4: Array Listing 3: Contoh kode Array 1 /* 2 * Diadopsi dari: 3 * http://download.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html 4 */ 5 class ArrayDemo { 6 public static void main(string[] args) { 7 int[] anarray; // Deklarasi variabel array tipe integer 8 10 9 anarray = new int[10]; // Alokasikan memori untuk 10 buah elemen 11 anarray[0] = 100; // isi nilai elemen pertama 12 anarray[1] = 200; // isi nilai elemen kedua 13 anarray[2] = 300; // dst 14 anarray[3] = 400; 15 anarray[4] = 500; 16 anarray[5] = 600; 17 anarray[6] = 700; 18 anarray[7] = 800; 19 anarray[8] = 900; 20 anarray[9] = 1000; 21 22 // Mengakses elemen-elemen array 23 System.out.println("Elemen pada indek 0: " + anarray[0]); 24 System.out.println("Elemen pada indek 1: " + anarray[1]); 25 System.out.println("Elemen pada indek 2: " + anarray[2]); 26 System.out.println("Elemen pada indek 3: " + anarray[3]); 27 System.out.println("Elemen pada indek 4: " + anarray[4]); 28 System.out.println("Elemen pada indek 5: " + anarray[5]); 29 System.out.println("Elemen pada indek 6: " + anarray[6]); 30 System.out.println("Elemen pada indek 7: " + anarray[7]); 31 System.out.println("Elemen pada indek 8: " + anarray[8]); 32 System.out.println("Elemen pada indek 9: " + anarray[9]); 33 } 34 } Selain array 1-D, dalam java dimungkinkan untuk mendefinisikan array multidimensi. Sebenarnya, array multidimensi hanyalah array yang elemennya adalah array juga. Pada List 4 ditampilkan contoh array multidimensi yang terdiri dari 2 (dua) elemen (baris), dimana elemen pertama terdiri dari 2 (dua) elemen, sedangkan elemen kedua terdiri dari 3 (tiga) elemen. Untuk mengkopi elemen-elemen array ke array yang lain, disediakan method: public static void arraycopy(object src, int srcpos, Object dest, int destpos, int length) 4

Listing 4: Contoh kode Array Multidimensi 1 /* 2 * Contoh array multidimensi 3 */ 4 class MultiDimArrayDemo { 5 public static void main(string[] args) { 6 String[][] names = { 7 {"Soal ", "Jawaban "}, 8 {"Pemrograman Java", "Algoritma & Pemrograman", "Komputer Grafik"} 9 }; 10 System.out.println(names[0][0] + names[1][0]); //Soal Pemrograman Java 11 System.out.println(names[0][1] + names[1][2]); //Jawaban Komputer Grafik 12 } 13 } 2.2 Operator Dalam bahasa pemrograman Java disediakan operator untuk melakukan operasi aritmatika, logika, bit, komparasi dan assignment. Pada intinya, persamaan (expresi) akan dievaluasi dari kiri ke kanan dengan memperhatikan skala prioritas seperti pada Tabel 2. Table 2: Operator dan Urutan Prioritas Operator Prioritas postfix expr + +, expr unary + + expr, expr, +expr, expr,,! multiplicative, /, % additive +, shift <<, >>, >>> relational <, <=, >, >=, instanceof equality ==,! = bitwise AND & bitwise XOR ˆ bitwise OR logical AND && logical OR ternary? : assignment =, +=, -=, *=, /=, %=, &=, ˆ=, <<=, >>=, >>>= Yang perlu mendapat perhatian disini terkait operator adalah pembagian. Pembagian antar bilangan bulat (int) dan bilangan bulat (int), hasilnya adalah bilangan bulat (int). Dengan kata lain 1/2 hasilnya adalah 0 dan bukan 0.5, sedangkan 1.0/2 hasilnya adalah 0.5, karena 1.0 adalah double, sehingga hasilnya dalam bentuk double. Kemudian, bilangan sembarang dibagi dengan 0, hasilnya adalah NaN (bukan bilangan). 2.3 Ekspresi, Pernyataan dan Blok Variabel dan operator adalah unit terkecil dari pemrograman. Kombinasi antara variabel dan operator akan menghasilkan ekspresi (expression). 1+x, x+y/3, nilai>=80, dan sebagainya adalah contoh ekspresi. 5

Komponen selanjutnya adalah pernyataan (statements). Pernyataan hampir sama dengan kalimat dalam bahasa manusia. Pernyataan biasanya diakhiri dengan tanda titik koma (;). Sekumpulan pernyataan akan membentuk blok (block). Sebuah blok ditandai dengan kurung kurawal buka { dan kurung kurawal tutup }. Listing 5: Ekspresi, pernyataan dan blok 1 int x = 100; // pernyataan 2 int y = 200; // pernyataan 3 int z = x + y; // pernyataan, sedangkan x + y adalah ekspresi 4 5 int sum = 0, idx = 0; 6 while (idx < 10) { // awal blok, idx < 10 adalah ekspresi 7 sum += idx; 8 idx ++; 9 } // akhir blok 2.4 Control-flow Pada dasarnya pernyataan-pernyataan dalam program dieksekusi dari atas ke bawah secara berurutan (runtunan). Namun ada kalanya diperlukan pengambilan keputusan, pengulangan atau percabangan dalam sebuah program. Hal ini memungkinkan program kita mengeksekusi ataupun mengulang sebuah blok pernyataan berdasarkan kriteria atau kondisi tertentu. Dalam pokok bahasan ini akan dibahas mengenai pengambilan keputusan: if-then, if-then-else, switch dan pengulangan: while, for, do-while serta percabangan: continue, break, return. 2.4.1 if-then Pengambilan keputusan yang pertama menggunakan struktur if-then. Dalam struktur pengambilan keputusan seperti ini, jika ekpresi bernilai benar, maka blok pernyataan yang ada dalam if akan dieksekusi, jika nilainya salah, akan diabaikan. Listing 6: Contoh if-then 1 int absolute(int nilai) { 2 if (nilai < 0) { // blok pernyataan dieksekusi jika nilai minus 3 return -nilai; 4 } 5 return nilai; 6 } 7 8 int absolute2(int nilai) { 9 if (nilai < 0) // boleh tidak menggunakan kurung kurawal, 10 return -nilai; // jika pernyataan dalam if hanya 1 11 return nilai; 12 } 2.4.2 if-then-else Pengambilan keputusan yang berikutnya menggunakan struktur if-then-else. Jika ekspresi yang ada dalam if nilainya benar, maka blok pernyataan dalam if yang akan dieksekusi, sedangkan jika ekspresi nilainya salah, maka blok pernyataan dalam else yang akan dieksekusi. 6

Listing 7: Contoh if-then-else 1 void checklulus(float nilai) { 2 if (nilai >= 60) { // blok pernyataan dieksekusi jika nilai >= 60 3 System.out.println("Lulus"); 4 } 5 else { 6 System.out.println("Tidak lulus"); 7 } 8 } Jika ekspresi yang ditest lebih dari satu (pengambilan keputusan berdasarkan beberapa kriteria), maka bisa digunakan struktur if-else if-... - else seperti pada contoh berikut. Listing 8: Contoh penggunaan if-then-else-if-...-else 1 /* 2 * Contoh penggunaan if-else dengan banyak kondisi 3 */ 4 class ScorToGrade { 5 public static void main(string[] args) { 6 int testscore = 76; 7 char grade; 8 9 if (testscore >= 80) { 10 grade = A ; 11 } else if (testscore >= 70) { 12 grade = B ; 13 } else if (testscore >= 56) { 14 grade = C ; 15 } else if (testscore >= 45) { 16 grade = D ; 17 } else { 18 grade = E ; 19 } 20 System.out.println("Test score = " + 21 testscore + ", Grade = " + grade); 22 } 23 } 2.4.3 switch Pengambilan keputusan berikutnya adalah dengan menggunakan switch. Perbedaan if-then dan switch adalah: 1. Pada if-then ekspresinya bisa lebih besar/lebih kecil/sama dengan, sedangkan switch expresinya sama dengan. 2. Pada if-then hanya akan mengeksekusi 1 pernyataan blok, sedangkan switch memungkinkan untuk mengeksekusi beberapa pernyataan blok. Kode berikut menunjukkan contoh penggunaan switch. Dalam contoh ini, variabel month ditest dalam switch, apabila sama dengan nilai tertentu pada rentang 1-12, maka akan dikonversikan ke nama bulannya. Sedangkan jika nilai month berada diluar rentang tersebut, akan diberikan nilai Bulan tidak valid. Pada contoh berikut ini (Listing 9), keluaran dari program adalah Agustus. 7

Listing 9: Contoh penggunaan switch 1 /* 2 * Konversi bulan dalam angka ke nama bulan. 3 * http://download.oracle.com/javase/tutorial/java/nutsandbolts/switch.html 4 */ 5 class SwitchDemo { 6 public static void main(string[] args) { 7 int month = 8; 8 String monthstring; 9 switch (month) { 10 case 1: monthstring = "Januari"; break; 11 case 2: monthstring = "Februari"; break; 12 case 3: monthstring = "Maret"; break; 13 case 4: monthstring = "April"; break; 14 case 5: monthstring = "Mei"; break; 15 case 6: monthstring = "Juni"; break; 16 case 7: monthstring = "Juli"; break; 17 case 8: monthstring = "Agustus"; break; 18 case 9: monthstring = "September"; break; 19 case 10: monthstring = "Oktober"; break; 20 case 11: monthstring = "November"; break; 21 case 12: monthstring = "Desember"; break; 22 default: monthstring = "Nilai bulan tidak valid"; break; 23 } 24 System.out.println(monthString); 25 } 26 } Pernyataan break setelah case dalam switch berfungsi untuk menghentikan eksekusi dari pernyataanpernyataan selanjutnya. Jika break dihilangkan, maka apabila kondisi suatu case terpenuhi, pernyataan yang ada pada case berikutnya (walaupun kondisinya tidak terpenuhi), akan dieksekusi. Hal ini disebut dengan fall through. Hasil dari contoh program berikut (Listing 10) adalah Agustus, September, Oktober, November, Desember atau dengan kata lain, semua pernyataan setelah case 8: dieksekusi semuanya. Listing 10: Contoh penggunaan switch (fall through) 1 /* 2 * Konversi bulan dalam angka ke nama bulan. 3 * http://download.oracle.com/javase/tutorial/java/nutsandbolts/switch.html 4 */ 5 class SwitchDemoFallThrough { 6 public static void main(string args[]) { 7 java.util.arraylist<string> futuremonths = 8 new java.util.arraylist<string>(); 9 int month = 8; 10 11 switch (month) { 12 case 1: futuremonths.add("januari"); 13 case 2: futuremonths.add("februari"); 14 case 3: futuremonths.add("maret"); 15 case 4: futuremonths.add("april"); 16 case 5: futuremonths.add("mei"); 17 case 6: futuremonths.add("juni"); 18 case 7: futuremonths.add("juli"); 19 case 8: futuremonths.add("agustus"); 8

20 case 9: futuremonths.add("september"); 21 case 10: futuremonths.add("oktober"); 22 case 11: futuremonths.add("november"); 23 case 12: futuremonths.add("desember"); break; 24 default: break; 25 } 26 27 if (futuremonths.isempty()) { 28 System.out.println("Nilai bulan tidak valid"); 29 } else { 30 for (String monthname : futuremonths) { 31 System.out.println(monthName); 32 } 33 } 34 } 35 } Switch juga dapat digunakan dengan kondisi multipel case. Contoh penggunaan ini adalah pada program menghitung jumlah hari dalam sebulan. Jika bulan 1, 3, 5, 7, 8, 10, 12 maka jumlah harinya adalah 31, jika bulan 4, 6, 9, 11 maka jumlah harinya adalah 30, sedangkan untuk bulan 2, jika tahun kabisat jumlah harinya 29, selain itu jumlahnya 28 hari. Listing 11: Contoh penggunaan switch (multiple case) 1 /* 2 * Menghitung jumlah hari pada tahun dan bulan tertentu 3 * http://download.oracle.com/javase/tutorial/java/nutsandbolts/switch.html 4 */ 5 class NumDaysInMonth { 6 public static void main(string[] args) { 7 int month = 2; 8 int year = 2000; 9 int numdays = 0; 10 11 switch (month) { 12 case 1: 13 case 3: 14 case 5: 15 case 7: 16 case 8: 17 case 10: 18 case 12: 19 numdays = 31; 20 break; 21 case 4: 22 case 6: 23 case 9: 24 case 11: 25 numdays = 30; 26 break; 27 case 2: 28 if ( ((year % 4 == 0) &&!(year % 100 == 0)) 29 (year % 400 == 0) ) 30 numdays = 29; 31 else 32 numdays = 28; 33 break; 9

34 default: 35 System.out.println("Nilai bulan tidak valid"); 36 break; 37 } 38 System.out.println("Jumlah hari = " + numdays); 39 } 40 } 2.4.4 while Dalam pengulangan (loop), blok pernyataan akan dieksekusi selama hasil evaluasi dari ekspresi adalah true. Dalam bahasa Pemrograman Java, pengulangan dapat direalisasikan dengan: while, do-while, for. Pernyataan while mempunyai struktur seperti pada Listing 12, sedangkan contoh penggunaannya bisa dilihat pada Listing 13. Listing 12: Konstruksi pengulangan dengan while 1 while(<ekspresi>) { 2 pernyataan-pernyataan 3 } Listing 13: Contoh penggunaan while 1 class WhileDemo { 2 public static void main(string[] args){ 3 int angka = 1, sum = 0; 4 while (angka <= 10) { 5 sum += angka; 6 angka++; 7 } 8 System.out.println("Sum = " + sum); 9 } 10 } 2.4.5 do-while Pengulangan juga bisa diimplementasikan dengan do-while. Konstruksi do-while bisa dilihat di Listing 14. Perbedaan prinsip antara while dan do-while adalah urutan pengetesan kondisi (ekspresi) dan eksekusi pernyataan. Dalam while, ekspresi ditest dulu, baru blok pernyataan dieksekusi, sedangkan dalam do-while kebalikannya. Listing 14 adalah contoh penggunaan do-while. Listing 14: Konstruksi pengulangan dengan do-while 1 do { 2 pernyataan-pernyataan 3 } while(<ekspresi>); Listing 15: Contoh penggunaan do-while 1 class DoWhileDemo { 2 public static void main(string[] args){ 3 int sum = 0, angka = 1; 4 do { 10

5 sum += angka; 6 angka ++; 7 } while (angka <= 10); 8 System.out.println("Sum = " + sum); 9 } 10 } 2.4.6 for Struktur pengulangan berikutnya adalah dengan menggunakan for. Konstruksinya bisa dilihat pada Listing 16 berikut. Listing 16: Konstruksi pengulangan dengan for 1 for (inisialisasi; terminasi; increment) { 2 pernyataan. 3 } Pada for, proses eksekusi setiap ekspresi adalah sebagai berikut: 1. inisialisasi : expresi yang berisi kode inisialisasi. Hanya dieksekusi sekali saja pada saat mulai pengulangan. 2. terminasi: berisi kode pengetesan kondisi. Jika true, pengulangan akan diteruskan, jika false, pengulangan selesai. 3. increment : update kondisi, dieksekusi setelah blok pernyataan dalam pengulangan. Bisa increment atau decrement. Contoh penggunaannya dapat dilihat pada Listing 17. Listing 17: Contoh penggunaan for 1 class ForDemo { 2 public static void main(string[] args){ 3 int sum = 0; 4 for(int angka = 1; angka <= 10; angka++) { 5 sum += angka; 6 } 7 System.out.println("Sum = " + sum); 8 } 9 } 2.4.7 continue, break dan return Dalam pengulangan, continue digunakan untuk menskip pernyataan, break digunakan untuk menghentikan pengulangan, sedangkan return digunakan untuk menghentikan pengulangan sekaligus keluar dari method. Berikut adalah contoh dari penggunaan continue, break dan return (Listing 18). Listing 18: Contoh penggunaan continue, break, return 1 class ContinueBreakReturn { 2 public static void main(string[] args){ 3 TestContinue(); 4 TestBreak(); 5 TestReturn(); 11

6 } 7 /** 8 * Contoh penggunaan continue 9 */ 10 public static void TestContinue() { 11 int angka = 6; 12 for (int n = 0; n < 10; n++) { 13 if (n == angka) 14 continue; 15 System.out.print(n + " "); 16 } 17 System.out.println("-- selesai --"); 18 } 19 /** 20 * Contoh penggunaan break 21 */ 22 public static void TestBreak() { 23 int angka = 6; 24 for (int n = 0; n < 10; n++) { 25 if (n == angka) 26 break; 27 System.out.print(n + " "); 28 } 29 System.out.println("-- selesai --"); 30 } 31 /** 32 * Contoh penggunaan return 33 */ 34 public static void TestReturn() { 35 int angka = 6; 36 for (int n = 0; n < 10; n++) { 37 if (n == angka) 38 return; 39 System.out.print(n + " "); 40 } 41 System.out.println("-- selesai --"); 42 } 43 } Figure 5: Hasil eksekusi program pada Listing 18 Hasil eksekusi dari program Listing 18 ditunjukkan pada Gambar 5. Perbedaan method TestContinue, TestBreak, TestReturn terletak hanya pada pernyataan continue, break dan return. Perny- 12

ataan continue mengabaikan angka 6 saja, break mengabaikan angka 6 s/d 9, return mengabaikan angka 6 s/d 9 dan System.out.println("-- selesai --"). 3 Class dan Object 3.1 Konsep Pemrograman Berorientasi Objek Pemrograman berorientasi objek (OOP: Object Oriented Programming) adalah paradigma pemrograman yang berorientasikan objek. Dalam PBO, program dipandang sebagai kumpulan dari objek-objek yang saling berinteraksi satu sama lainnya. Objek pada PBO, mengadopsi konsep objek pada dunia nyata. Yang dimaksud objek disini adalah segala sesuatu yang ada disekeliling kita yang mempunyai state dan behavior. Contoh objek yaitu TV, Mobil, Burung, Mahasiswa, Dosen, dan lain sebagainya. Untuk penjelasan, kita ambil contoh objek Burung. State pada burung misalnya: warna, berat, lapar. Sedangkan behavior menggambarkan perilaku dari burung misalnya: terbang, berjalan dan sebagainya. State biasanya digambarkan dengan kata benda dan kata sifat, sedangkan behaviour digambarkan dengan kata kerja. Secara konseptual, objek pada program juga sama dengan objek pada dunia nyata yaitu memiliki state dan behavior. State dari sebuah objek disimpan di dalam fields (atau bisa juga disebut variabel), sedangkan behavior diekspose melalui method (atau ada yang menyebutnya fungsi). Keuntungan dari PBO adalah: Figure 6: Konsep Objek 1. Modularity 2. Information-hidding 3. Code re-use 4. Pluggability dan kemudahan debugging. 3.1.1 Class Didunia nyata, sering kita jumpai banyak objek dari jenis yang sama, contohnya ada banyak mahasiswa, ada banyak TV, ada banyak mobil. Setiap objek yang tipenya sama memiliki komponen ataupun blueprint yang sama pula. Dalam terminologi PBO, contohnya mobil pribadi anda adalah instance dari class Mobil. Atau dengan kata lain, sebuah class adalah blueprint untuk mencetak objek-objek. Berikut contoh class. 13

Listing 19: Contoh class Mobil 1 public class Mobil { 2 int kecepatan = 0; 3 String jenis = ""; 4 5 public void SetJenis(String str) { 6 jenis = str; 7 } 8 public void Akselerasi(int akselerasi) { 9 kecepatan += akselerasi; 10 } 11 public void Rem(int deakselerasi) { 12 kecepatan -= deakselerasi; 13 } 14 public void Tampilkan() { 15 System.out.println("Mobil: " + jenis + ", kecepatan: " + kecepatan); 16 } 17 } Berikut adalah contoh class MobilTest yang membuat dua objek mobil (mobilsaya dan mobilanda). Listing 20: Contoh class MobilTest 1 class MobilTest { 2 public static void main(string[] args) { 3 //buat instance mobil 4 Mobil mobilsaya = new Mobil(); 5 Mobil mobilanda = new Mobil(); 6 7 //panggil beberapa method 8 mobilsaya.setjenis("suv"); 9 mobilsaya.akselerasi(50); 10 mobilsaya.tampilkan(); 11 12 mobilanda.setjenis("sedan"); 13 mobilanda.akselerasi(60); 14 mobilanda.tampilkan(); 15 } 16 } Hasil eksekusi dari program pada Listing 20 adalah: Mobil: SUV, kecepatan: 50 Mobil: Sedan, kecepatan: 60 14