P. 1
Modul Java

Modul Java

|Views: 605|Likes:

More info:

Published by: Rimbun Ferianto Sr Rimbun on Dec 19, 2012
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

07/04/2014

pdf

text

original

Sections

  • 1.1 Tujuan
  • 1.2 Sekilas Bahasa Pemrograman
  • 1.3Apa Yang Disebut Bahasa Pemrograman
  • 2.1 Algoritma Pemrograman
  • 3.1 Program Java Pertama
  • 4.Analisa Program Java Pertama
  • 5.1 Ketentuan Penulisan Program Java
  • 5.2 Latihan
  • 5.3 Tujuan
  • 5.4 Tipe Data Primitif
  • 6.Integer – Bilangan bulat
  • 7.Floating Point
  • 8.Char – Tekstual
  • 9.1 Variabel
  • 9.2Deklarasi dan Insialisasi Variabel
  • 10.Petunjuk Penamaan Variabel
  • 11.1 Operator
  • 12.Operator Aritmatika
  • 13.Operator Increment dan Decrement
  • 14.Operator Relasi
  • 15.1 Mendapatkan Input dari Keyboard
  • 16.Menampilkan Data Variabel
  • 17.1 Struktur Kontrol Percabangan
  • 18.Pernyataan if
  • 19.Pernyataan if-else
  • 20.Pernyataan if-else-if
  • 21.Pernyataan if-else bersarang
  • 22.1Struktur Kontrol Perulangan
  • 23.while loop
  • 24.do-while loop
  • 25.1 Latihan
  • 25.2 Tujuan
  • 25.3 Mengenal Array
  • 25.4 Pendeklarasian Array
  • 25.5 Pengaksesan sebuah elemen array
  • 25.6 Panjang Array
  • 25.7 Array Multidimensi
  • 25.8 Latihan
  • 25.9 Pengenalan Pemrograman Berorientasi Objek
  • 25.10 Class dan Objek
  • 26.1 Method
  • 27.Memanggil Instance Sebuah Method
  • 28.1 Access Modifiers
  • 28.2 Package
  • 29.Mengimpor Packages
  • 30.1Memanggil Method Static
  • 30.2 Lingkup Variabel
  • 30.3 Konversi Tipe Data dan Casting
  • 30.4 Menentukan Class dari Sebuah Objek
  • 30.5Latihan
  • 30.6 Tujuan
  • 30.7 Abstract Windowing Toolkit dan Swing
  • 30.8 Menggunakan NetBeans
  • 30.9 Latihan
  • 30.10 Pemrograman GUI Lanjutan
  • 30.11 Latihan
  • 30.12 Tujuan
  • 30.13 Pewarisan
  • 30.14 Mendefinisikan Superclass dan Subclass
  • 30.15 Kata Kunci Super
  • 30.16 Overriding Method
  • 30.17 Method final dan class final
  • 30.18 Polimorfisme
  • 30.19 Interface
  • 31.Membuat Interface

Pengenalan Bahasa Java

1.1 Tujuan

Bagian ini membahas secara singkat tentang bahasa pemrograman. Dalam bagian ini juga akan dibahas tentang bagaimana menulis, mengkompilasi, dan menjalankan program Java. Pada akhir pembahasan, diharapkan pembaca dapat : • Mengetahui tentang bahasa pemrograman komputer dan kategorinya • Membuat program Java menggunakan text editor dan command dalam Windows • Membedakan antara syntax-errors dan runtime-errors • Mengidentifikasi bagian dasar dari Program Java • Mengetahui ketentuan penulisan program Java

1.2
1.3

Sekilas Bahasa Pemrograman
Apa Yang Disebut Bahasa Pemrograman

Bahasa Pemrograman adalah teknik instruksi standar untuk memberikan perintah/instruksi kepada komputer. Layaknya bahasa manusia, bahasa pemrograman juga memiliki tata tulis dan dan aturan tertentu. Bahasa Pemrograman dapat diklasifikasikan menjadi tingkat rendah, tingkat menengah, dan tingkat tinggi. Pergeseran tingkat dari rendah menuju tinggi menunjukkan kemiripan dengan bahasa manusia.

2.

Kategori Bahasa Pemrograman

1. Bahasa Pemrograman Tingkat Tinggi Merupakan bahasa tingkat tinggi yang mempunyai ciri-ciri mudah dimengerti karena kedekatannya terhadap bahasa sehari – hari. Sebuah pernyataan program diterjemahkan kepada sebuah atau beberapa mesin dengan menggunakan compiler. Sebagai contoh adalah: JAVA, C++, .NET 2. Bahasa Pemrograman Tingkat Menengah Dimana penggunaan instruksi telah mendekati bahasa sehari – hari, walaupun masih cukup sulit untuk dimengerti karena menggunakan singkatan – singkatan seperti STO yang berarti simpan (STORE) dan

MOV yang artinya pindah (MOVE). adalah Fortran.

Yang tergolong dalam bahasa ini

3. Bahasa Pemrograman Tingkat Rendah Bahasa pemrograman generasi pertama. Bahasa jenis ini sangat sulit dimengerti karena instruksinya menggunakan bahasa mesin. Disebut juga dengan bahasa assembly merupakan bahasa dengan pemetaan satu – persatu terhadap instruksi komputer. Setiap intruksi assembly diterjemahkan dengan menggunakan assembler. Java merupakan bahasa pemrograman tingkat tinggi yang berorientasi objek (OOP) dan dapat dijalankan pada berbagai platform sistem operasi. Perkembangan Java tidak hanya terfokus pada satu sistem operasi (platform independent), tetapi dikembangkan untuk berbagai sistem operasi dan bersifat open source. Bahasa pemrograman Java ini dikembangkan dengan model yang mirip dengan bahasa C++ dan Smalltalk. Sebagai sebuah bahasa pemrograman, Java dapat membuat seluruh bentuk aplikasi, seperti desktop, web, mobile, dan lainnya sebagaimana dibuat dengan menggunakan bahasa pemrograman lainnya.

2.1

Algoritma Pemrograman

Algortima adalah urutan langkah-langkah logis untuk menyelesaikan masalah yang disusun secara matematis dan logis. Langkah-langkah ini dapat diterjemahkan secara bertahap dari awal hingga akhir. Algoritma dapat diekspresikan dalam bahasa manusia, menggunakan presentasi grafis melalui Flowchart (diagram alir) ataupun melalui Pseudocode yang menjembatani antara bahasa manusia dan bahasa pemrograman. Contoh kasus: "Buatlah sebuah program yang akan menampilkan berapa kali sebuah nama tampil pada sebuah daftar" • Mengekspresikan cara penyelesaian melalui bahasa manusia: 1. Tentukan daftar nama 2. Tentukan nama yang akan dicari, kata yang akan dicari ini dianggap sebagai sebuah kata kunci/keyword 3. Bandingkan kata kunci terhadap nama yang terdapat pada daftar 4. Jika kata kunci sama dengan yang terdapat pada daftar, tambahkan 1 pada hasil perhitungan

5. Jika seluruh nama telah dibandingkan, tampilkan hasil perhitungan

Mengekspresikan cara penyelesaian melalui Flowchart:

Mulai

A

Daftar Nama

Tampilkan hitung

Selesai Kata Kunci

Hitung = 0

Tidak A Tidak Ada nama lain ? Ya Nama == Kata kunci

Ya

Hitung = hitung + 1

Gambar 1: Contoh Flowchart

Mengeskpresikan cara penyelesaian melalui Pseudocode:

listNama = Daftar Nama keyNama = Nama yang dicari hitung = 0 Untuk setiap nama pada listNama lakukan: Jika nama == keyNama Hitung = hitung + 1 Tampilkan hitung

3.

Simbol Flowchart dan Penjelasannya

Flowchart adalah representasi grafis dari langkah-langkah yang harus diikuti dalam menyelesaikan suatu permasalahan yang terdiri atas sekumpulan simbol, dimana masing-masing simbol mempresentasikan kegiatan tertentu. Flowchart biasanya diawali dengan penerimaan input dan diakhiri dengan penampilan output. Berikut ini akan dibahas tentang simbol-simbol yang umum digunakan dalam menyusun flowchart, kegiatan yang diwakili serta aturan yang diterapkan dalam penggunaan simbol tersebut. Simbol Nama Simbol Proses Penjelasan
Melambangkan kegiatan pemrosesan input. Simbol ini, kita dapat menuliskan operasi-operasi yang dikenakan pada pada input, penulisan dapat dilakukan secara satu persatu maupun keseluruhan. Mempresentasikan fungsi I/O yang membuat data data diproses (sebagai input) atau ditampilkan (sebagai output)

Simbol Data (InputOutput)

Simbol Garis Alir

Simbol Percabangan

Digunakan untuk menghubungkan setiap langkah dalam flowchart dan menunjukkan kemana arah aliran diagram. Simbol garis ini dapat menunjukkan arah dari kiri ke kanan atau sebaliknya dan dari atas ke bawah atau sebaliknya. Digunakan untuk melambangkan percabangan suatu kondisi, yang akan menghasilkan Ya atau Tidak.

Digunakan untuk menandakan awal atau akhir dari suatu flowchart.

Simbol Terminator

Digunakan sebagai blok pembangun dari suatu program. } . Jadi dalam simbol ini. meng-compile dan menjalankan (run) program Java. public class Hello { /* * Program Java Pertama */ public static void main(String[] args) { //Prints the string Hello World on screen System. Tulislah program di bawah ini dan simpan dalam file yang bernama "Hello. Terdapat 2 cara dalam melakukannya. penulisan nama prosedur dilakukan secara satu per satu. yang pertama menggunakan command (lingkungan windows) dan text editor. Sedangkan cara kedua dengan menggunakan NetBeans yang merupakan Integrated Development Environment atau yang disebut IDE.println("Hello world"). Dalam sepasang konektor biasanya diberi label tertentu yang sama agar lebih mudah diketahui pasangannya.java".out. Konektor ini biasanya dipakai saat media yang kita gunakan untuk menggambar flowchart tidak cukup luas untuk memuat gambar secara utuh. akan dibahas terlebih dahulu bagaimana menulis. Konektor on page digunakan untuk menghubungkan suatu langkah dengan langkah lain dari flowchart dalam satu halaman.1 Program Java Pertama Sebelum membuat program Java pertama. Prosedur memiliki suatu flowchart yang berdiri sendiri diluar flowchart utama. 3.Simbol Konektor Simbol Prosedur Digunakan untuk menghubungkan suatu langkah dengan langkah lain dalam sebuah flowchart dengan keadaan on page atau off page. Penggunaan NetBeans akan dibahas pada pembahasan selanjutnya. sedangkan konektor off page digunakan untuk menghubungkan suatu langkah dengan langkah lain dari flowchart dalam halaman yang berbeda. dan disimpan dalam sebuah folder yang bernama MYJAVA. jadi perlu dipisah-pisahkan. jadi sama seperti jika kita melakukan pemanggilan suatu prosedur pada program utama (main program). kita cukup menuliskan nama prosedurnya saja. Sama dengan aturan pada simbol percabangan.

Kata kunci yang digunakan adalah class. Analisa Program Java Pertama Baris pertama kode: public class Hello { . ketikkan perintah: javac Hello. • Menjalankan Program Untuk menjalankan program Java. public static void main(String[] args) { .. perintah yang digunakan: java [nama file tanpa ekstensi]. Komentar diindikasikan oleh tanda /* dan */.java.. } Mengindikasikan nama class yaitu Hello. } Mengindikasikan nama suatu method dalam class Hello yang bertindak sebagai method utama.} Setelah program di atas selesai dibuat dan disimpan langkah berikutnya adalah • Meng-compile program Untuk meng-compile program Java.. Dalam hal ini. Komentar digunakan untuk mendokumentasikan bagian dari kode yang ditulis. 4.java. Pada Java semua kode harus ditempatkan didalam sebuah class. Segala sesuatu yang berada diantara tanda tersebut akan diabaikan oleh compiler Java. /* * Program Java Pertama */ Tiga baris selanjutnya merupakan komentar penulisan komentar dalam bahasa Java.. Dalam hal ini ketikkan perintah: java Hello. yang mengindikasikan awal blok dan } yang mengindikasikan akhir dari blok. perintah yang digunakan: javac [nama file].class. Baris berikutnya adalah tanda { kurung kurawal. Baris selanjutnya. Semua . Hasil dari pengcompile-an tersebut berupa sebuah file [nama file]. Method utama adalah titik awal dari suatu program Java.

Kesalahan umum lainnya adalah kapitalisasi. Contoh: public static void main(String[] args { System. yang ditulis dalam bahasa Java dimulai dengan Baris selanjutnya merupakan komentar. menampilan teks yang diapit oleh tanda double quote (" ") pada layar. ejaan. 5. Menampilkan teks "Hello World" pada layar. Syntax Error Syntax error biasanya terjadi karena kesalahan penulisan.out. Pembuatan komentar dengan cara ke-2 ini biasanya untuk komentar yang hanya satu baris. pertama adalah compile-time error atau disebut juga syntax error dan yang kedua adalah run-time error.out. System.program kecuali applet method utama. Baris selanjutnya.out. Perintah System.println(). Errors Ada 2 macam error. dan penghilangan dari pemberian tanda baca yang sebenarnya. Kemungkinan terdapat kekurangan dalam penulisan perintah di Java atau lupa untuk menulis titik koma pada akhir sebuah statement/pernyataan. Dua baris terakhir digunakan untuk menutup method utama dan class. penggunaan dari karakter khusus yang tidak benar. //Prints the string Hello World on screen Merupakan cara ke-2 untuk membuat komentar.println("Hello world").println("Hello world") } //Tanda kurung tidak ada penutup //Titik koma tidak ada Run-time error .

.out.1 Ketentuan Penulisan Program Java Ada Beberapa ketentuan dalam penulisan program dalam bahasa Java : 1. Error ini biasanya terjadi akibat kesalahan proses logis dari program.. Sebagi contoh: ThisIsAnExampleOfClassName thisIsAnExampleOfMethodName 6. jika nama class public Anda adalah Hello. yaitu komentar yang berisi keterangan mengenai baris perintah pada class atau apa yang dijalankan oleh method yang Anda tulis tersebut. 3. Sebagai contoh untuk pernyataan tunggal adalah System.". Jangan lupa mendeklarasikan array string didalam kurung method main.java". huruf pertama dari kata harus dimulai dengan huruf kecil.java.. Nama file harus sama dengan nama class public nya. Untuk pemberian nama dari class Java.Run-time error merupakan error yang tidak ditampilkan sampai program dijalankan. 4. main (String[] args) { .2 • • Latihan dan flowchart untuk Susunlah dengan menggunakan pseudocode menghitung rata-rata dari 3 buah bilangan. Program Java yang Anda buat harus selalu diakhiri dengan ekstensi file ". Pernyataan/statement adalah satu atau lebih baris kode yang diakhiri dengan semicolon ". . Jika dalam program tidak terdapat class public maka nama file boleh tidak sama dengan class pada program. } 8. Method main harus dideklarasikan sebagai public 7.. Untuk nama method dan variabel. Anda harus menulis komentar sebagai penjelasan pada kode yang Anda tulis. 2. hasil dari program yang ditampilkan di layar : . Java bersifat case sensitive. 5. dimana huruf besar dan huruf kecil berbeda 5.println("Hello world"). 5. Anda harus menyimpan file tersebut dengan nama Hello. diberikan huruf kapital untuk huruf pertama pada nama class. Sebagai contoh. Buatlah sebuah program dengan nama file : [Nama Anda].

A tree whose hungry mouth is press. Againts the Earth’s sweet flowing breast. A poem as lovely as a tree.Selamat datang ke Pemrograman Java [Nama Anda] • Buatlah sebuah program dengan nama TheTree. hasil dari program yang harus ditampilkan di layar: I think that I shall never see. .

for) untuk mengeksekusi blok tertentu pada program beberapa kali Menggunakan percabangan yang digunakan untuk mengatur arah dari aliran program 5. switch) yang digunakan untuk memilih blok kode yang akan dieksekusi Menggunakan struktur kontrol perulangan (while. //nilai d = 12 . int. dan oktal (basis 8). akan dikenalkan tipe data. dan operator Membuat program Java yang interaktif yang bisa mendapatkan input dari keyboard Menggunakan struktur kontrol (if.4 Tipe Data Primitif Berdasarkan tipe datanya data primitif dapat dikelompokkan menjadi empat : • • • • Tipe data Integer atau bilangan bulat. long Tipe data Floating point atau bilangan nyata. hexadesimal (basis 16).Dasar Pemrograman 5. Selanjutnya akan dibahas mengenai penggunaan streams untuk mendapatkan nilai input dari user pada saat runtime. short. else. Integer – Bilangan bulat Dibedakan dalam beberapa format berbeda : desimal (basis 10). meliputi : boolean 6. meliputi : byte. Untuk angka desimal tidak ada notasi khusus dalam penggunaanya.3 Tujuan Pada bagian ini. Desimal int d = 12. meliputi : float dan double Tipe data Char untuk bentuk tekstual. tipe variabel. Untuk angka hexadesimal harus ditandai oleh "0x" atau "0X". tipe variabel dan operator pada bahasa pemrograman Java. diharapkan pembaca dapat : • • • • • Mengetahui tipe data dasar. Pada akhir pembahasan. do-while. untuk angka oktal ditandai dengan "0". meliputi : char Tipe data Boolean untuk bentuk logika true dan false. Sebagai contoh : 1.

//nilai c = 12. char x = 'M'. Sebagai contoh. karakter 0 menunjukkan oktal //nilai h = 12.5 x 10-3) Tipe data floating point memiliki range sebagai berikut : Float Length 32 bits 64 bits float double Name or Type 31 31 Range -2 to 2 .1 -263 to 263 – 1 7. Char – Tekstual Tipe data tekstual / character (char). Hexadesimal int h = 0xC. //nilai z = 0. //nilai y = 8.1 -215 to 215 .5E-3. String mewakili tipe data yang terdiri atas banyak karakter. Oktal int c = 014. Floating Point double merupakan tipe data default untuk floating point. diwakili oleh karakter single unicode. 3. karakter F menunjukkan float double z = 2.1 -231 to 231 . float y = 8. akan diperkenalkan juga pada bahasan kali ini.1 8. Sebagai contoh : String message = "Hello World". Tipe data ini harus memiliki tanda single quotes (' ') pada nilainya.1 -263 to 263 . . karakter 0x menunjukkan hexa Tipe data integer memiliki default tipe data yaitu int. Tipe data ini harus memiliki tanda double qoutes (" ") pada nilainya.0025 (2. Sebagai contoh : double x = 3. Berikut range tipe data integer : Integer Length 8 bits 16 bits 32 bits 64 bits byte short int long Name or Type 7 7 Range -2 to 2 .2. Meskipun String bukan merupakan tipe data primitif pada Java (tetapi merupakan class).14.9.9F.

boolean isProcess = true. mendeklarasikan variabel yang dinamai isProcess sebagai tipe data boolean dan diberi nilai true. Sebagai contoh : int x. //deklarasi variabel c dengan tipe data char char c.1 9. sebagai berikut : <tipe data> <nama variabel>. //deklarasi variabel f dengan tipe data float //dan telah diinsialisasi float f = 8. 9. Sebelum digunakan variabel terlebih dahulu harus dideklarasikan. //deklarasi variabel x dengan tipe data int Berikut contoh program untuk mendeklarasikan variabel dan memberikan nilai insialisasi beberapa variabel.9F.2 Variabel Deklarasi dan Insialisasi Variabel Variabel adalah item yang digunakan untuk menyimpan suatu nilai dari tipe data tertentu. //deklrasi variabel i dengan tipe data int //dan telah diinsialisasi int i = 789. } } 10. Boolean – Logika Tipe data boolean diwakili oleh dua pernyataan true dan false. Petunjuk Penamaan Variabel .9. Sebagai contoh. Untuk mendeklarasikan variabel. public class Demo { public static void main(String[] args) { //deklarasi variabel b dengan tipe data boolean boolean b. Contoh diatas. Variabel memiliki tipe data dan nama. //deklarasi variabel s dengan tipe data String //dan telah diinsialisasi String s = "Nilai".

"nama". sedangkan konstanta selalu diinisialisasi dan nilai inisialisasi tersebut tidak akan pernah berubah. tetapi tidak boleh menggunakan operator Panjang nama variabel tidak dibatasi tetapi tidak boleh terpisah Tidak boleh menggunakan keyword / kata kunci Nama variabel bersifat case sensitive Gunakan nama yang bersifat menggambarkan deskriptif untuk variabel yang dibuat. Nama konstanta hanya boleh terdiri dari huruf . "currentValue". Berikut adalah aturan dasar penamaan variabel : • • • • • • • Tidak boleh diawali dengan angka Harus dimulai dengan huruf atau garis bawah (_) atau tanda dollar ($) Huruf kedua dan seterusnya boleh menggunakan angka. Tetapi memiliki kata kunci final sebelum tipe datanya. konstanta juga memiliki aturan dalam penamaannya. bilangan 1. b1langan. bi-langan. "alamat". Bedanya variabel menyimpan suatu nilai yang bisa berubah-ubah (dinamis) sedangkan konstanta sekali dideklarasikan nilainya tidak akan pernah berubah.Penamaan variabel pada bahasa pemrograman Java memiliki aturan dasar. // // // // // // // // valid tidak tidak valid valid valid tidak tidak valid valid valid valid 11. _bilangan1. Dan seperti variabel. misalnya "nextItem". misal : "harga". Jika nama variabel atau identifier terdiri dari 1 kata. $bilangan1. Dua-duanya digunakan untuk menyimpan suatu nilai dari tipe data tertentu. beri nama dengan nama grade atau nilai. Deklarasi konstanta mirip dengan deklarasi variabel. jika ingin mempunyai variabel yang terdiri atas nilai siswa. Variabel bisa tidak diinisialisasi. "getTimeOfDay". maka semua dituliskan dengan huruf kecil. Jika terdiri dari 2 kata atau lebih. bi+langan. Konstanta Pada prinsipnya konstanta hampir mirip dengan variabel. 1bilangan. • • Berikut contoh penamaan variabel yang valid dan tidak valid : int int int int int int int int bilangan1. maka diawali dengan huruf kecil dan menandai bagian kata selanjutnya dengan huruf besar.

hasilnya berupa floating-point.out.besar dan garis bawah (underscore). z).out. double z = 7.println(x * + / * y).println(x System. Tipe operator tersebut adalah operator aritmatika. operator relasi. y). Operator merupakan simbol yang biasa digunakan dalam menulis suatu pernyataan (statement) dalam bahasa pemrograman Java. 12.out.14. ada beberapa tipe operator.22. Operator Aritmatika Berikut ini adalah dasar operator aritmatika : Operator + * / % Keterangan Penjumlahan Pengurangan Perkalian Pembagian Modulus (Sisa bagi) Contoh 5+1 5-1 5*2 9/3 5%3 6 4 10 3 2 Hasil Contoh : int x = 10. dan operator kondisi. /* Catatan: Ketika integer dan floating-point number digunakan sebagai operand untuk operasi aritmatika tunggal. Berikut contoh penamaan konstanta yang valid : final double PI = 3. operator logika.println(x System. Sebagai contoh : .1 Operator Dalam Java. //Deklarasi konstanta dan pemberian // nilai variabel PI 11. Operator akan melakukan operasi terhadap operand sesuai dengan fungsinya. System.println(x System. Operator Increment dan Decrement Operator ini untuk menaikkan atau menurunkan suatu nilai dari suatu variabel angka. int y = 2.out. */ 13. y).

//akan menghasilkan k = 9-3 = 6 Ketika operator increment dan decrement digunakan setelah operand.1. Sebagai contoh : 1. int j = 3. int j = 3. dan kemudian nilai baru digunakan dalam pernyataan dia ditambahkan atau dikurangkan. Pernyataan tersebut sama dengan operator increment. akan menyebabkan variabel diincrement atau di-decrement dengan nilai 1. 2. Sebagai contoh : 1. k = --i . nilai variabel lama akan digunakan terlebih dahulu terhadap pernyataan dimana dia ditambahkan atau dikurangkan. Operator Decrement count = count – 1. int j = 3. count --. Operator ++ -Keterangan Penambahan nilai dengan satu Pengurangan nilai dengan satu Operator increment dan decrement dapat ditempatkan sebelum dan sesudah operand. Operator Increment int i = 10. Ketika digunakan sebelum operand.j. int k = 0. //akan menghasilkan k = 4+10 = 14 2. k = ++j + i. Operator Decrement int i = 10. int k = 0. Operator Increment count = count + 1. . int k = 0. Pernyataan tersebut sama dengan operator decrement. count ++. Operator Increment int i = 10.

Operator Relasi Operator ini digunakan untuk membandingkan kedua nilai operand-nya dan hasilnya berupa boolean bernilai true atau false.println(j <= i). //true //lebih kecil atau sama dengan System.println(j >= k).out. //akan menghasilkan k = 3+10 = 13 2. //true //lebih kecil dari System. bukan memberikan nilai) Tidak sama dengan Lebih besar dari Lebih kecil dari Lebih besar atau sama dengan Lebih kecil atau sama dengan Berikut contoh program : public class Demo { public static void main(String[] args) { int i = 37.out. k = i-.out. //false ..println(i < k). //akan menghasilkan k = 10-3 = 7 14.j.println(i > j). int j = 42. //lebih besar dari System. int j = 3.out. int k = 0. int k = 42.k = j++ + i. Operator Decrement int i = 10. //false //lebih besar atau sama dengan System. Operator == != > < >= <= Keterangan Sama dengan (membandingkan 2 nilai.

operator & selalu mengevaluasi kedua exp1 dan exp2 sebelum mengembalikan suatu nilai. Terdapat enam operator logika yaitu : && (logika AND). dan segera mengembalikan nilai. //true } } 15.out.out. exp1 & exp2.println(i != j). ^ (boolean exclusive OR). || (logika OR). Berikut contoh program : public class Demo { public static void main( String[] args) { int i = 0. dan ! (logika NOT). Sebaliknya. && (logika AND) dan & (boolean logikan AND) Tabel kebenaran untuk operator logika && dan & exp1 TRUE TRUE FALSE FALSE exp2 TRUE FALSE TRUE FALSE Hasil TRUE FALSE FALSE FALSE Perbedaan antara operator && dan & adalah untuk && mendukung short-circuit evaluations. Operator Logika Operator logika memiliki satu atau lebih operand boolean yang menghasilkan nilai boolean. boolean test = false. int j = 10. sementara untuk & tidak.println(i == j). Jika exp1 bernilai false maka operator tidak akan pernah mengevaluasi exp2 karena hasil operasi pasti akan bernilai false. Penulisan pernyataannya sebagai berikut: exp1 && exp2. //false //tidak sama dengan System.//sama dengan System. //demo && . & (boolean logika AND). | (boolean logika inclusive OR). && akan mengevaluasi pernyataan exp1.

System.out. /* Hasil 0 10 false */ //demo & test = (i > 10) & (j++ > 9). System.println(test). System.println(test). Jika exp1 bernilai true maka operator tidak akan pernah mengevaluasi exp2 karena hasil operasi pasti akan bernilai true. /* Hasil 0 11 false */ } } || (logika OR) dan | logika (boolean logika inclusive OR) Tabel kebenaran untuk operator logika || dan | exp1 TRUE TRUE FALSE FALSE exp2 TRUE FALSE TRUE FALSE Hasil TRUE TRUE TRUE FALSE Perbedaan antara operator || dan | adalah untuk || mendukung short-circuit evaluations. Sebaliknya. sementara untuk | tidak. Berikut contoh program : public class Demo { . System.println(j). || akan mengevaluasi pernyataan exp1.println(j). Penulisan pernyataannya sebagai berikut: exp1 || exp2. System.out.out.println(i). System.out. exp1 | exp2.out. dan segera mengembalikan nilai.out. operator | selalu mengevaluasi kedua exp1 dan exp2 sebelum mengembalikan suatu nilai.test = (i > 10) && (j++ > 9).println(i).

System. System.println(test).out.println(x^z). Boolean z = true.public static void main( String[] args) { int i = 0.out. System.out. jika dan hanya jika salah satu exp bernilai TRUE dan yang lain bernilai FALSE. System. int j = 10.out.out.println(i).out.println(test). //true System. boolean test = false. //demo || test = (i > 10) || (j++ > 9). Boolean y = false. System.out. Sebagai contoh : Boolean x = true.out.println(j).println(i).println(x^y). System. System. /* Hasil 0 10 true */ //demo | test = (i > 10) | (j++ > 9).println(j). //false . /* Hasil 0 11 true */ } } ^ (boolean logika ExclusiveOR) Berikut adalah tabel kebenaran untuk ^ exp1 TRUE TRUE FALSE FALSE exp2 TRUE FALSE TRUE FALSE FALSE TRUE TRUE FALSE Hasil Hasil operasi dari operator exclusiveOR adalah TRUE.

println(!x). Package merupakan kumpulan class-class. int grade = 80. Yang berarti bahwa operator ini membawa tiga argumen yang membentuk suatu ekspresi bersyarat. Jika exp1 bernilai true maka hasilnya adalah exp2. Boolean y = false. Struktur pernyataan operator ini adalah : exp1?exp2:exp3 Dimana nilai exp1 adalah suatu pernyataan boolean yang memiliki nilai true atau false. // akan menghasilkan passed 15. System. varibel atau konstanta.io untuk mendapatkan input dari keyboard. tetapi jika exp1 bernilai false maka hasilnya adalah exp3.out. Berikut tabel kebenaran logika ! : Exp1 TRUE FALSE Sebagai contoh : Boolean x = true. System.1 Mendapatkan Input dari Keyboard Pada bagian ini. Sebagai contoh: String status = "". Tetapi sebelum masuk ke pembahasan tersebut. akan dijelaskan bagaimana menampilkan nilai dari variabel ke layar.! (logika NOT) Logika ! (NOT) digunakan dalam satu argumen.out.println(status). status = (grade >= 60) ? "Passed": "Failed". dimana argumen tersebut bisa berupa pernyataan. kita akan menggunakan class BufferedReader yang berada di package java.println(!y). akan dibahas pada pembasan selanjutnya.out. Menampilkan Data Variabel Untuk menampilkan nilai dari variabel yang diinginkan. //false System. //true Hasil FALSE TRUE Operator ?: (operator kondisi) Operator kondisi ?: adalah operator ternary. kita dapat menggunakan perintah : . 16.

atau System.out.System.out. } catch(IOException e){ System. } System.print().out.out.*. Menggunakan BufferedReader untuk mendapatkan nilai input Berikut adalah contoh program untuk mendapatkan input dari keyboard : import java. } } Program tersebut akan menampilkan output pada layar. sebagai berikut : 10 The value of x=A 17. char x = 'A'.out. name = dataIn. System.println("Hai " + name + "!").out.println("Terjadi Error!"). } } try { Sedikit penjelasan tentang program: .in)).println().io. System.out.readLine(). String name = "". Berikut contoh programnya : public class Demo { public static void main(String[] args){ int value = 10. System. public class GetInputFromKeyboard { public static void main(String[] args) { BufferedReader dataIn = new BufferedReader(new InputStreamReader(System.print("Masukkan nama anda:").println("The value of x= " + x).println(value).

yang akan kita gunakan pada statement akhir untuk menyambut user.import java. Pernyataan if Pernyataan if merupakan salah satu pernyataan percabangan pada Java. Kita akan membahas tentang penanganan exception pada pembahasan selanjutnya. . untuk menangkap error tersebut digunakan try-catch blok. Blok di bawah ini merupakan try-catch block : try { name = dataIn.out. Statement : BufferedReader dataIn = new BufferedReader(new InputStreamReader(System.1 Struktur Kontrol Percabangan Struktur kontrol percabangan merupakan pernyataan yang mengijinkan user untuk memilih dan mengeksekusi suatu blok kode dan mengabaikan blok kode yang lain. tetapi untuk sekarang. Pernyataan If akan menentukan sebuah pernyataan yang akan dieksekusi jika dan hanya jika persyaratan bernilai benar (true). Nilai ini akan disimpan ke dalam variabel name.println("Hello " + name).out. } catch(IOException e){ System.in)). mendapatkan input dari user dan memberikan sebuah nilai String.*.readLine(). method diatas memanggil dataIn.println("Error!"). } Pada baris ini menjelaskan bahwa kemungkinan terjadi error pada pernyataan.io. menjelaskan bahwa kita akan menggunakan package java. Anda cukup mencatat bahwa Anda perlu menambahkan kode ini untuk menggunakan method readLine() dari BufferedReader untuk mendapatkan input dari user.. System.readLine(). if (boolean_expression) { . Mendeklarasikan variabel dataIn dengan tipe class BufferedReader .readLine(). name = dataIn. 18. 17. Bentuk pernyataan if..io yang mengandung class-class yang memungkinkan program untuk melakukan input dan output data.

System.println("Anda lulus!").println("Selamat!"). if (boolean_expression) { .out. } boolean_expression pada pernyataan if harus merupakan nilai boolean (true atau false).println("Maaf anda gagal"). if( grade > 60 ){ System. 19. } else { . if( grade > 60 ) System... } else { System.out. if( grade > 60 ) System.} Sebagai contoh : int grade = 68. atau int grade = 68. System.println("Selamat!"). } Sebagai contoh : int grade = 68.out.println("Selamat!").out.println("Gagal!").out.out. Pernyataan if-else Pernyataan if-else digunakan apabila kita ingin mengeksekusi suatu blok pernyataan jika kondisi bernilai true dan mengeksekusi blok pernyataan lainnya jika kondisi bernilai false. else System. Bentuk pernyataan if.. if( grade > 60 ){ System. .out.println("Anda lulus!").out.. atau int grade = 68.println("Selamat!").

. } else if (grade > 60){ System..println("Baik"). } else { .} 20. } else { . } else { . } else { System. } } else if (boolean_expression2) { .. } 22. Bentuk pernyataan if-else bersarang sebagai berikut : if (boolean_expression) { if (boolean_expression) { . } 21.out. Pernyataan if-else-if Bentuk pernyataan if-else-if sebagai berikut : if (boolean_expression) { .. } else if (boolean_expression2) { ..... } Sebagai contoh : int grade = 68.out...... Pernyataan switch .. if( grade > 90 ){ System.println("Amat baik"). Pernyataan if-else bersarang Pernyataan if-else berarti pernyataan if-else ini berada di dalam if-else.println("Maaf anda gagal").out.

.. Apabila perintah break tidak diberikan. case case_selector2: ...out. Sebuah pernyataan switch bisa jadi tidak memiliki blok kode default.println("Angka tersebut bernilai 1"). break. java pertama kali akan memeriksa switch_expression. Ketika pernyataan switch ditemukan pada potongan kode program. Tetapi. break. case_selector2 dan seterusnya adalah konstanta unik dari nilai integer atau karakter. switch_expression adalah ekspresi integer atau character dan case_selector1. Bentuk pernyataan switch. perintah break di sini memerintahkan komputer agar segera keluar dari blok switch apabila perintah tersebut telah selesai dilaksanakan. case case_selector3: . Jika tidak ditemui case yang cocok. Contoh program: switch (N) case 1: System. dan menuju ke case yang akan menyamakan nilai yang dimiliki oleh switch_expression. Pernyataan switch mengkonstruksikan cabang untuk beberapa kondisi dari nilai. break. Pernyataan break di atas sebetulnya tidak harus selalu ada. selanjutnya akan mengabaikan pernyataan yang lainnya hingga akhir dari struktur dari pernyataan switch. meskipun sudah berada di luar nilai yang tertera dalam pernyataan casenya.... maka program akan mengeksekusi blok default. Sebagai catatan. } break. bahwa bagian blok default adalah opsional.. default: . break. maka program akan terus mengeksekusi pernyataan pada case berikutnya. switch (switch_expression) { case case_selector1: .Pernyataan percabangan kedua yang dimiliki Java adalah switch.. Selanjutnya program akan mengeksekusi pernyataan pada dari kode setelah case yang ditemukan sampai menemui pernyataan break.

println("Angka tersebut bernilai 6. Perlu dicatat jika bagian i--. atau 5"). } Pernyataan di dalam while loop akan dieksekusi berulang-ulang selama kondisi boolean_expression bernilai benar (true).out..println("Angka tersebut bernilai 2. Contoh : int i = 4. i--. dan for-loops. } case case case case 22.out.print(i). case 6: case 7: case 8: System.out. 4.println("Angka tersebut tidak bernilai 1 8"). default: System. while( boolean_expression ){ .out. atau 8"). 23. break. break. do-while. akan menghasilkan perulangan yang terus menerus . while loop Bentuk pernyataan while. Ada tiga macam jenis dari struktur kontrol perulangan yaitu while.2: 3: 4: 5: System. while ( i > 0 ){ System. 7.. dihilangkan.1 Struktur Kontrol Perulangan Struktur kontrol perulangan adalah berupa pernyataan dari Java yang mengijinkan kita untuk mengeksekusi blok code berulang-ulang sesuai dengan jumlah tertentu yang diinginkan. } Contoh diatas akan mencetak angka 4321 pada layar. 3.

out. Beberapa contoh lain : Berikut ini adalah beberapa contoh while loop.println(x). } while( boolean_expression ). x++. Bentuk pernyataan do-while.out.println("hello"). Berikut ini contoh do-while loop: int x = 0. harus dihindari while(true) System. Contoh 3: // Tidak ada loop. do { . while (x<10) { System. ketika menggunakan while loop atau bentuk perulangan yang lain. pernyataan di dalam do-while loop akan dieksekusi lagi. } Contoh 2: //infinite loop. Jika nilai pada boolean_expression tersebut bernilai true. dan akan dievaluasi kondisi dari boolean_expression. Sehingga.println("hello"). perulangan pada do-while loop akan dieksekusi sedikitnya satu kali. pernyataan tidak akan dieksekusi while (false) System. 24. Contoh 1: int x = 0..out. Perbedaannya dengan while-loop. do-while loop do-while loop mirip dengan while-loop.(infinite loop). pastikan Anda memberikan pernyataan yang membuat perulangan berhenti pada suatu kondisi. Pernyataan di dalam do-while loop akan dieksekusi pertama kali. do{ ..

for loop Pernyataan for loop memiliki kondisi hampir mirip seperti struktur perulangan sebelumnya yaitu melakukan perulangan untuk mengeksekusi kode yang sama sebanyak jumlah yang telah ditentukan. 25. pernyataan i=0 merupakan inisialisasi dari variabel.print(i). StepExpression){ . Kemudian.out. i < 10. for (InitializationExpression. } dimana. i < 10.melakukan update pada variabel loop. pernyataan di dalam for loop dieksekusi. LoopCondition.System. ekspresi i++ dieksekusi. x++.out. i++ ){ System.. for( i = 0. while( i < 10 ){ System. Kondisi ini akan dilakukan berulang-ulang sampai mencapai nilai yang salah (false).print(i). int i.membandingkan variabel loop pada nilai batas tertentu. } . Bentuk dari for loop. } atau for(int i = 0. int i = 0. StepExpression . InitializationExpression – inisialisasi dari variabel loop. } Pada contoh ini.out. Selanjutnya. Jika kondisi bernilai true.print(i). i++. LoopCondition .println(x).out. lalu akan kembali pada bagian pemeriksaan terhadap kondisi i<10 lagi. Berikut ini adalah contoh dari for loop. Contoh di atas adalah contoh yang sama dari while loop berikut. } while (x<10). kondisi i<10 diperiksa. i++ ){ System..

Tampilan Output yang diharapkan adalah number 1 = 10 number 2 = 20 number 3 = 45 Rata-rata = 25 • Menggunakan BufferedReader.25. Contoh. 20 dan 45. do while dan for-loop. Input kata 1: Halo Input kata 2: Selamat pagi Kata yang anda inputkan Halo dan Selamat pagi • Buat sebuah program yang mencetak nama Anda sebanyak seratus kali. tanyakan dua kata dari user dan tampilkan output dari input user tersebut ke layar. . Nilai dari masing-masing tiga angka tersebut adalah 10. Buat tiga versi program ini menggunakan while loop.1 • Latihan Buatlah program yang menghasilkan output nilai rata-rata dari tiga angka.

nol hingga nilai tertentu. mempunyai item sejenis secara berurutan. . yang ditentukan Misalnya.. terdapat kemampuan untuk menggunakan satu variabel yang dapat menyimpan beberapa data dan data tersebut dapat dimanipulasi. int z. Pertama. kita menggunakan tipe data beserta nama variabel. Terlihat sangat tidak efisien jika kita harus mendeklarasikan banyak variabel dengan tipe data dan tujuan yang sama (mis: untuk penjumlahan).2 Tujuan Pembahasan pada bagian ini mengenai array dalam Java. Pada akhir pembahasan. x = 0.. kemudian kita akan mendeklarasikan dan menggunakannya dalam Java. . z = 2... Dalam Java. .. int y. Sebuah array menyimpan beberapa item data selalu diberi indeks dari pada array tersebut diinisialisasi...Array 25. sebuah array yang berisi 100 indeks dari nol hingga 99. Pada bahasa pemrograman Java. Sebagai contoh : int x. diharapkan pembaca dapat : • • • • Mendeklarasikan array dalam Java Mengakses elemen-elemen di dalam sebuah array Menentukan jumlah elemen di dalam sebuah array Mendeklarasikan array multidimensi 25.. Dalam pendeklarasian variabel.3 Mengenal Array Pada bagian sebelumnya telah dibahas bagaimana mendeklarasikan variabel sebelum variabel tersebut digunakan. . bilangan bulat (integer). Tipe variabel inilah yang disebut sebagai array. . y = 1. kita akan mendefinisikan apa yang dimaksud dengan array.

pendeklarasikan ini memberitahukan kepada compiler Java. Dua cara pendeklarasian ini hanyalah untuk memudahkan programmer. Pembahasan mengenai pembuatan objek dan pembuatan konstruktor akan dibahas pada pembahasan selanjutnya. tipe_data merupakan tipe data yang akan ditampung oleh variabel ini. ke 9 tempat yang dialokasikan ini menampung 9 item data dengan tipe data int : umur[0] umur[1] umur[2] umur[3] umur[4] umur[5] umur[6] umur[7] umur[8] . Semua tipe data yang dikenal dalam Java. Untuk membuat sebuah objek. harus ditentukan berapa panjangnya dengan sebuah konstruktor. Atau dapat juga ditulis : //Deklarasi dan membuat objek array int umur[] = new int[9]. //membuat objek array umur = new int[9]. Proses ini di Java disebut sebagai instantiation. dan dilanjutkan dengan membuat atau meng-instantiate sebuah array baru dengan panjang 9 (terdiri dari 9 elemen). array harus dideklarasikan seperti layaknya sebuah variabel. Pendeklarasian tipe data array memiliki dua bentuk : tipe_data[] nama_array. Berikut ilustrasi array berukuran 9.4 Pendeklarasian Array Sebelum digunakan. dibutuhkan sebuah konstruktor.25. bahwa umur akan digunakan sebagai nama array yang bertipe integer. Setelah pendeklarasian array. Contoh di atas. Ukuran sebuah array tidak dapat diubah setelah diinisialisasi. tipe_data nama_array[]. baik yang merupakan tipe data primitif maupun berupa class dapat digunakan. bentuk yang mana pun yang digunakan diperbolehkan karena pada dasarnya keduanya sama. Sebagai contoh : //deklarasi int umur[].

Selain menggunakan sebuah pernyataan new untuk membuat objek array. digunakan indeks yang menentukan urutan dari array yang akan diakses.false.5 Pengaksesan sebuah elemen array Untuk mengakses elemen dari sebuah array. Array ini terdiri dari 4 //elemen yang diinisilisasikan sebagai value //{true. false. //menampilkan elemen array yang terakhir System. //Insialisasi array umur[0] = 25. dan dilanjutkan ke angka berikutnya sampai akhir array (panjang array – 1).println(umur[8]).out. 80.75} double []grades = {100. Sebagai contoh.println(umur[i]).80. umur[2] = 19.90. i++) { System. dapat juga mendeklarasikan. Indeks untuk array dalam Java selalu dalam tipe integer. //Membuat sebuah array yang terdiri dari penginisialisasian //4 variabel double bagi value {100. umur[1] = 27. } } . i < 100. 75}. pada array yang dideklarasikan tadi : //memberikan nilai 25 pada elemen pertama array umur[0] = 25. membangun. for (int i=0.out. 90.false} boolean results[] = {true. public class DemoArray { public static void main(String[] args) { int umur[] = new int[100]. true. false}. 25. //Deklarasi dan membuat objek array int umur[] = new int[3]. kemudian memberikan nilai kedalam array tersebut dalam sebuah pernyataan / statement. dimulai dari nol. Sebagai contoh : //membuat sebuah array yang berisi variabel-variabel //boolean pada sebuah identifier. Berikut contoh program untuk mencetak seluruh elemen didalam array.true.

println(umur[i]). Sebagai contoh : // Elemen 512 x 128 dari integer array int[][] twoD = new int[512][128]. // karakter array 8 x 16 x 24 char[][][] threeD = new char[8][16][24]. kita juga dapat menulisnya kembali seperti berikut ini : public class DemoArray { public static void main(String[] args) { int umur[] = new int[100]. "brown" }.out. "Kristin".6 Panjang Array Untuk mengetahui panjang / banyak elemen dari sebuah array. for (int i=0. "white" }. Sebagai contoh : arrayName.length. "toby". Array multidimensi dideklarasikan dengan menambahkan jumlah tanda kurung setelah nama array. i < umur. // String array 4 baris String[][] cats = { { { { { }.7 Array Multidimensi Array multidimensi adalah array yang terdapat didalam array. x 2 kolom "terry". "fido". i++) { System.} 25. "black"} . "gray"}. Pada contoh sebelumnya. Atribut ini akan mengembalikan ukuran dari array tersebut. dapat digunakan atribut length.length. } } } 25.

//Cetak baris i Kolom 2 System. 5 }.out. { -5.out.out.print(cats[0][0]).print(A[i][0] + " "). j < A.length.length . j++) { //Cetak baris i Kolom 1 System.1. Kode di atas akan mencetak "terry" di layar.out. //Cetak baris i Kolom 3 System. 2. -3. System. Sebagai contoh. 2. } } .print(A[i][2] + " "). 9 }}.out. { 7. i < A. hampir sama seperti mengakses array satu dimensi. i++) { //Cetak baris i kolom 0 System. //Cetak isi Array for (int i = 0. for (int j = 1. untuk mengakses elemen pertama dari baris pertama didalam array cats di atas dapat kita tulis. -2. Sebagai contoh : int[][] A = { { 1.println(A[i][3] + " "). 12.Untuk mengakses sebuah elemen didalam array multidimensi. 0.print(A[i][1] + " "). -1 }.

. Tampilkan isi dari array berikut ini serta cari dan tampilkan juga elemen yang memiliki angka terbesar. int[] number = { 13. Cetak isi dari array di atas. 9.25. Gunakan juga do-while-loop dan for-loop. "Medan". Gunakan while-loop.. 25. {"Rio". Berikut merupakan array multidimensi : String[][] entry = { {"Budi". 1. "15-01-1985"}.. "Medan". 19 }. 6. dalam format berikut : Nama : Budi Tempat Lahir : Medan Tanggal Lahir : 03-12-1986 Nama : Cindy Tempat Lahir : Tebing Tinggi Tanggal Lahir : 15-01-1985 Nama : Rio Tempat Lahir : Medan Tanggal Lahir : 23-05-1980 3. "03-12-1986"}.8 Latihan 1. }. "Tebing Tinggi". . "Selasa". 20. Contoh : String hari[] = {"Senin". kemudian tampilkan ke layar semua isi dari array tersebut. "23-05-1980"} }. 14. 5. Buatlah sebuah String array yang akan menginisialisasi 7 hari dalam seminggu. {"Cindy".. 2.

3. 89. Anda ditunjuk oleh seorang pebisnis untuk membuat program konversi mata uang sederhana. dan pembagian. . Buatlah sebuah program kalkulator yang dapat melakukan perhitungan sederhana. 34. 55. 1. Dari penjelasan diatas. dimana program tersebut dapat mengkonversikan dari mata uang Rupiah ke mata uang Dollar US atau ke mata uang Dollar Singapura. 5. Dalam matematika. buatlah program untuk menampilkan 10 deret fibonaccci pertama. 8. 2. 987. Dengan aturan ini. 2584. 13. bahkan sampai jam tangan. 233. perkalian. pengurangan. 377.Studi Kasus : Dasar Pemrograman 1. kemudian angka berikutnya didapat dengan cara menambahkan dua bilangan sebelumnya.. Pada perkembangannya sekarang ini. apakah akan keluar dari program atau akan melanjutkan perhitungan. 1. 21. 2. setelah perhitungan program akan menanyakan kepada user. 4181. 3. Seorang pebisnis akan sangat ingin mengetahui nilai mata uang asing yang real time kapan saja dan dimana saja.. 610. 1597. penjumlahan. pengurangan. Mesin hitung atau Kalkulator adalah alat untuk menghitung dari perhitungan sederhana seperti penjumlahan. 144. handphone. perkalian dan pembagian sampai kepada kalkulator sains yang dapat menghitung rumus matematika tertentu. maka barisan bilangan fibonacci seperti berikut ini : 0. . kalkulator sering dimasukkan sebagai fungsi tambahan daripada komputer. bilangan Fibonacci adalah deret bilangan yang dimulai dari angka 0 dan 1.

Pada class yang kita buat sebelumnya. sedangkan objek merupakan individu. sebuah class juga memiliki variabel dan metode. sedangkan Anda. dan pengubahan objek. Kita telah mencoba beberapa contoh class pada bagian sebelumnya. serta penggunaan class. Homo Sapiens (nama biologi dari manusia) adalah class. Kakak. Class terdiri dari dua tipe anggota yang disebut dengan field (atribut/properti) dan method. Ibu adalah objek. ciri-ciri fisik ini disebut dengan atribut. konversi. serta cara pemanggilan dan pemberian parameter ke dalam method Mengidentifikasi jangkauan dari sebuah variabel Mendklarasikan atribut dan method pada class Menggunakan access modifiers untuk memberikan akses terhadap class member 25. Juga akan dibahas konsep dari class dan objek. Mungkin untuk bahasa biologi. Dalam PBO. diharapkan pembaca dapat : • • • • • • Menjelaskan mengenai Pemrograman berorientasi objek Perbedaan antara class dan objek Menjelaskan mengenai method. tetapi kita memiliki ciri- . Masing-masing dari kita memiliki blueprint yang sama. Field merupakan tipe data yang didefinisikan oleh class. Ayah. Objek terkait dengan class. yaitu memiliki ciri-ciri fisik dan juga perilaku. Adik. Pada PBO. sementara method merupakan operasi.Pemrograman Berorientasi Objek Pembahasan pada bagian ini mengenai beberapa konsep dasar dari pemrograman berorientasi objek (Object Oriented Programming). masalah pemrograman dibagi berdasarkan objek atau "sesuatu" benda. Sebagai contoh.10 Class dan Objek Class merupakan struktur dasar dari OOP. class adalah spesies. sedangkan perilaku disebut juga dengan metode.9 Pengenalan Pemrograman Berorientasi Objek Pemrograman berorientasi objek (PBO) bermaksud untuk memecahkan masalah programming mirip dengan cara berfikir manusia dan bagaimana manusia berinteraksi dengan dunia. Objek ini diibaratkan seperti makhluk hidup. Sebuah objek adalah instance dari class. Pada akhir pembahasan. 25. Pak Guru.

Berikut adalah karakterisitik dari method : 3. Kita menggunakan keyword new. Sebuah method adalah bagian-bagian program yang dapat dipanggil oleh program utama atau dari method lainnya untuk menjalankan fungsi yang spesifik. 26. mata. dan lain-lain. Kita memiliki sebuah class mobil dimana dapat digunakan untuk medefinisikan beberapa objek mobil. dan method itu adalah method main(). Mobil juga dapat berakselerasi. telinga. kita menggunakan kode berikut : String str2 = new String("Hello world!"). Sebagai contoh.ciri yang berbeda seperti rambut. warna. 26. hidung. Dapat mengembalikan nilai atau tidak . Contoh lainnya. kita hanya memiliki satu method. dan juga perilaku saat kita makan. Class memiliki field nomor. jika anda ingin membuat instance dari class string.1 Method Pada beberapa contoh sebelumya. saat kita minum. Ini juga sama dengan. Class Mobil Nomor Plat Warna Variabel Instance Manufaktur Kecepatan Method Instance Objek Mobil A BK 74 VA Hitam Toyota 150 km/h Method Akselerasi Method Belok Method Rem Objek Mobil B BK 5 UN Putih Honda 150 km/h Ketika diinisialisasi. manufaktur dan kecepatan yang diisi dengan nilai pada objek mobil A dan mobil B. Pada tabel dibawah. setiap objek mendapat satu set variabel yang baru. berbelok dan melakukan pengereman. Instansiasi Class Untuk membuat sebuah objek atau sebuah instance pada sebuah class. String str2 = "Hello". Kita dapat mendefinisikan banyak method yang akan dipanggil dari method yang berbeda. mobil A dan mobil B adalah objek dari class mobil. plat.

double bilangan. Selanjutnya kita akan membuat method kita sendiri.charAt(0). Setelah method telah selesai dieksekusi. karena tidak //case sensitive maka hasilnya true Mengambil tertentu Membandingkan dua buah tetapi tidak case sensitive Definisi karakter pada indeks string. Kita akan mengambil dua contoh method dari class String. System. try { .4.out. //mengembalikan boolean (true or false) boolean result = strH1. kita dapat menuliskan : namaObjek. char chrH1 = strH1.equalsIgnoreCase(strH2). Deklarasi Method public char charAt(int index) public boolean equalsIgnoreCase (String param) Sebagai contoh penggunaan : String strH1 = "Hello". Memanggil Instance Sebuah Method Untuk mengilustrasikan bagaimana memanggil method.print(pertanyaan). program akan kembali kepada method yang memanggilnya. 28.namaMethod(parameter). Dapat menerima beberapa parameter atau tidak.in)). Pemberian Variabel Pada Sebuah Method Sebagai contoh kita lihat program dibawah ini : public static double ambilDouble(String pertanyaan) { String strbilangan = null. Untuk memanggil sebuah instance method. 27. //Membandingkan antara nilai strH1 dan strH2. //Akan mengembalikan character H //dan disimpan ke dalam variabel charH1 String strH2 = "hello". akan kita gunakan class String sebagai contoh. Parameter disebut sebagai argumen dari fungsi 5. Dokumentasi dari Java API untuk melihat semua method yang tersedia dalam class String. BufferedReader br = new BufferedReader(new InputStreamReader(System.

Sewaktu kita memanggil method(). Parameter yang digunakan pada definisi suatu method() disebut parameter formal. return bilangan. pada dasarnya sama dengan menlakukan perintah-perintah berikut : . } catch (IOException ioe) { System. x == 3). Ketika suatu method() dipanggil. Ketika method() ini dipanggil. kemudian method() ambilDouble panggil ambilDouble(str). boolean b) { . Ketika Java mengevaluasi method() ini.readLine(). maka isi dari str akan dikopi ke "pertanyaan" terlebih dahulu sebelum seluruh perintah ambilDouble dilaksanakan. seperti contoh berikut : static void lakukanSesuatu(int N. komputer akan memasukkan "hallo" ke dalam parameter "pertanyaan".exit(1). jadi bisa berbentuk ekspresi atau perintah apapun yang menghasilkan nilai atau angka.parseDouble(strbilangan).misalnya int. program berhenti"). dan bersifat seperti halnya variabel dan memiliki tipe -. Math. atau String. } Di sini method() ambilDouble memiliki parameter tunggal yang bertipe String dan bernama pertanyaan. Yang pertama adalah "parameter" digunakan untuk mendefinisikan suatu method(). dan hasilnya akan dimasukkan ke dalam parameter formal..out. dan nilai ini dimasukkan dalam parameter "pertanyaan". Parameter aktual bersifat seperti nilai atau angka.. System. "Parameter" yang digunakan untuk memanggil suatu method() disebut parameter aktual.strbilangan = br. } bilangan = Double. Parameter formal berbentuk seperti pengenal atau nama. suatu nilai harus ikut disertakan. //perintah lain } Method() diatas dapat dipanggil seperti berikut : lakukanSesuatu(1. Ketika komputer menjalankan perintah ini. Jika parameter yang diberikan berupa variabel. kita harus memberi parameter aktual untuk setiap parameter formal yang didefinisikan. Misalnya.. kemudian method() ambilDouble menjalankan semua perintah di dalamnya. double.random() * 3.println("Kesalahan IO. misalnya "kabar". parameter aktual akan dievaluasi. method() dapat dipanggil dengan a = ambilDouble("hallo"). variabel str berisi dengan perintah dalam parameter dalam method() Perlu dicatat bahwa istilah "parameter" digunakan dalam dua konsep berbeda tetapi berkaitan. double d. Misal.

default (package). 2. double d.. } //Pada variabel public int demo. 3.{ int N. 1. (x == 3)... boolean b.. protected.random() * 3. // perintah lainnya di sini } 28..1 Access Modifiers Pada Java terdapat 4 access modifers. } //Pada method public void demo() { . 1.. public Class. N = d = b = . dan private. method. Penggunaan : //Pada class public class Demo { . Math. default Hanya class class yang berada satu package yang dapat mengakses. ataupun variabel yang menggunakan access modifier ini dapat digunakan oleh class manapun. . yaitu public. Dapat juga diakses oleh class yang berada dalam satu package. protected Dapat diakses pada class itu sendiri maupun class-class dari class turunannya.

//Cara Kedua import java. Anda harus mengimpor package dimana class tersebut berada.awt. Fitur ini menyediakan mekanisme untuk mengatur class dan interface dalam jumlah banyak dan menghindari konflik pada penamaan.awt.Color.*. seluruh program JAVA mengimpor package java. sehingga Anda dapat menggunakan class seperti String dan Integer dalam program meskipun belum mengimpor package sama sekali. bila Anda ingin menggunakan class Color dalam package awt. 29. Mengimpor Packages Agar dapat meggunakan class yang berada diluar package. 30. Sebagai contoh. Anda harus menuliskan import package sebagai berikut : //Cara pertama import java.2 Package Packages dalam JAVA berarti pengelompokan beberapa class dan interface dalam satu unit. Penulisan import package dapat dilakukan seperti dibawah ini : import <namaPaket>.* secara default.awt. dapat dilakukan dengan menuliskan : package <packageName>. Membuat Package Untuk membuat package.lang. 28. Pada dasarnya. Baris pertama menyatakan untuk mengimpor class Color secara spesifik pada package.4. . private Hanya class itu sendiri yang dapat mengakses method ataupun variabel yand diberi akses ini. sedangkan baris kedua menyatakan mengimpor seluruh class yang terkandung dalam package java.

toHexString(10). Jangkauan ini menentukan kemampuan dalam mengakses variabel. int age. //konversi string menjadi integer int i = Integer. public class { private private private } StudentRecord String name.out. 30.parseInt("10"). Method static hanya dimiliki oleh class dan tidak dapat digunakan oleh instance (atau objek) dari suatu class. String address.1 Memanggil Method Static Method Static adalah method yang dapat dipakai tanpa harus menginisialisasi suatu class (maksudnya tanpa menggunakan variabel terlebih dahulu).staticMethodName(params).println("Hello world"). Method static dibedakan dari method yang dapat instance di dalam suatu class oleh kata kunci static. Sebagai contoh : package schoolClasses. Berikut contoh program penggunaan method static : //mencetak ke layar System.2 Lingkup Variabel Selain nama dan tipe data. sebuah variabel juga mempunyai jangkauan. Salin seluruh class yang ingin diletakkan pada package dalam folder ini. Jangkauan ini juga menentukan siklus hidup dari sebuah variable atau berapa lama variable . kita dapat menuliskan : Classname. String hexEquivalent = Integer. Untuk memanggil method static. 30. Langkah pertama yang harus dilakukan adalah membuat folder dengan nama schoolClasses.Kita ingin membuat package dimana class StudentRecord akan ditempatkan bersama dengan class – class yang lain dengan nama package schoolClasses. Kemudian tambahkan kode deklarasi package pada awal file.

Hal ini biasanya terjadi diantara tipe data Integer dan Floating point. namun harus dilakukan secara eksplisit (explisit casting).. Java akan melakukan konversi tipe data secara otomatis jika kedua tipe data tersebut kompatibel (biasa disebut implicit casting). long numLong = numInt. Jika kita mendeklarasikan variabel di blok dalam. sedangkan int merupakan tipe data Integer. kita dapat menuliskan : . Jika kita mendeklarasikan variabel di blok luar. Jangkauan ini ditentukan oleh letak pendeklarasian variabel didalam program. Untuk memudahkan anda mengenai jangkauan variabel. yaitu tipe data boolean. terjadi konversi tipe data. suatu jangkauan variabel dapat terletak di dalam blok dimana variabel tersebut sudah dideklarasikan.. Konversi yang tidak kompatibel ini masih memungkinkan.. //konversi tipe data Variabel numInt yang bertipe int ditampung ke dalam variabel numLong yang bertipe long. Casting antara tipe data primitif dapat mengijinkan anda untuk mengkonversikan sebuah nilai dari sebuah tipe data ke tipe data primitif lain. 30. seperti dari int ke short. Hal yang sama juga terjadi jika kita hendak mengonversi tipe data yang ukurannya berbeda. Typecasting atau casting adalah proses konversi dari tipe data tertentu ke tipe data yang lain. Namun. dan blok kode yang terletak di dalam kurung kurawal disebut dengan blok dalam. dimulai dari tempat dimana variabel itu dideklarasikan dan di blok-blok bagian dalam. float merupakan tipe data floating-point. Blok kode yang terdapat di luar kurung kurawal bisa disebut juga dengan blok luar.3 Konversi Tipe Data dan Casting Dalam pemrograman untuk menampung suatu nilai dengan tipe data tertentu ke dalam variabel yang mempunyai tipe data yang berbeda adalah hal yang biasa. kita tidak bisa menggunakan varibel blok terluar untuk menggunakan variabel tersebut. Jadi dapat disimpulkan. tidak semua tipe data kompatibel satu dengan lainnya.}. Misalnya tipe data float dengan tipe data int. Untuk mengunakan eksplisit casting. Ada sebuah tipe data primitif yang tidak dapat di-casting.. kita bedakan variabel yang terletak di dalam kurawal {. Dengan demikian. variabel akan dapat digunakan oleh blok bagian dalam. dan dalam hal ini konversi dilakukan secara otomatis oleh Java tanpa menambahkan kode apapun.itu berada dalam memori. Contoh kode : int numInt = 10.

30. Dalam contoh di atas. variabel data1 adalah byte (jumlah maksimum yang dapat ditampung oleh byte adalah 256). byte data2 = (byte)data1. . int valInt = (int)valFloat. Pernyataan ini mengembalikan nilai true atau false tergantung pada benar/salah objek adalah sebuah instance dari penamaan class atau beberapa subclass milik class tersebut. Dalam contoh di atas nilai dari valInt adalah 10. Selanjutnya getName() akan mengembalikan sebuah string yang mewakili nama class. Method getClass() mengembalikan sebuah objek class (dimana class itu sendiri merupakan sebuah class) yang memilki sebuah method getName(). Yang perlu diperhatikan di sini adalah jika anda mengubah tipe data yang berbeda jenis. //casting dari float ke int int data1 = 257. Sebagai contoh. boolean ex1 = "Texas" instanceof String. String className = key. maka yang akan tertampung adalah nilai modulusnya (sisa bagi).getName(). Maka data2 bernilai 1. // true Object ex2 = 10. seperti dari tipe data floating point ke tipe data integer maka akan terjadi pemotongan (truncation).getClass(). Sedangkan untuk tipe data yang ukurannya lebih kecil jika digunakan untuk menampung data yang lebih besar daya tampunya. 2. String key = "". Operator instanceof. memiliki dua operand: objek pada sebelah kiri dan nama class pada sebelah kanan. Sebagai contoh.2f. sedangkan nilai yang akan ditampung adalah 257.4 Menentukan Class dari Sebuah Objek Jika kita ingin mengetahui class dari sebuah objek dapat dilakukan dengan cara : 1.(target-tipe-data)variabel. Contoh kode : float valFloat = 10.

Latihan Dengan kata-kata Anda sendiri. definisikan istilah-istilah berikut ini : a) Class b) Object c) Instantiate d) Instance Variable e) Instance Method f) Class Variables atau static member variables g) Constructor . // false 30.5 1.boolean ex3 = ex2 instanceof String.

.

AWT dan Swing menyediakan komponen pembuatan GUI yang dapat digunakan dalam membuat aplikasi Java dan Applet.6 Tujuan Tanpa mempelajari tentang Graphical User Interface (GUI) API. Swing menyediakan platformindependent sehingga aplikasi yang dibangun pada platform yang berbeda dapat memiliki tampilan yang sama. yang termasuk dalam koleksi dari Java API yang dapat mempermudah pengembangan aplikasi Java GUI. code editor.8 Menggunakan NetBeans Kita akan memulai penggunaan NetBeans. kita masih bisa membuat sebuah program. Tetapi.Pemrograman GUI 30. keselurahan Swing ditulis menggunakan bahasa pemrograman Java. Komponen pada AWT dapat digunakan bersama komponen Swing. Tidak seperti beberapa komponen AWT yang menggunakan native code. merupakan bagian penting dari Java SDK. Pada akhir pembahasan. compiler. 30. program yang kita buat akan kelihatan kurang menarik oleh pengguna. dan debugger.7 Abstract Windowing Toolkit dan Swing The Java Foundation Class (JFC). Langkah 1 : Jalankan aplikasi NetBeans. diharapkan pembaca dapat : • • • Membuat program menggunakan NetBeans Mendesain aplikasi GUI dengan AWT Mendesain aplikasi GUI dengan Swing 30. Anda akan melihat GUI seperti di bawah ini : . IDE merupakan lingkup pemrograman yang diintegrasikan ke dalam suatu aplikasi perangkat lunak yang menyediakan pembangunan GUI. digunakan Abstract Windowing Toolkit dan Swing. yang merupakan Integrated Development Environment (IDE). Dalam pembuatan GUI yang interaktif pada Java.

Akan muncul kotak dialog. kemudian pada categories klik Java lalu pada projects klik Java Desktop Application. Kemudian klik tombol Next .Langkah 2 : Membuat Sebuah Project Klik pada File > New Project.

Lalu klik tombol Finish.Akan muncul kotak dialog baru. Hasilnya akan terlihat seperti di bawah ini : . isi Project Name dan Project Location.

java (sesuai nama project).java Pada saat membuat project Java Desktop Application. Buka kode JavaApplicationProject1. Langkah 3 : Membuat Form Boleh juga mengklik icon ini - Pilih JFrame From Pada class name : isi dengan frmDataNilai Pada location : isi dengan Source Packages (default) Pada package : pilih javaapplicationproject1 (sesuai dengan nama project) Klik Finish Langkah 4 : Mengganti kode program pada [nama_project]. NetBeans telah menyertakan contoh desktop application.Seperti terlihat pada gambar di atas. NetBeans menyertakan default application maka default application tersebut yang akan dijalankan pertama kali. kita tidak menggunakan contoh desktop application tersebut melainkan kita akan membuat form kita sendiri. kita tidak menggunakan default application tersebut dan akan membuat form baru (frmDataNilai) maka kita harus mengubah kode pada JavaApplicationProject1.java . Pada pembahasan ini. Untuk saat ini.

-

Ganti kode yang ada pada method startup() menjadi @Override protected void startup() { //show(new JavaApplicationProject1View(this)); show(new frmDataNilai()); }

-

Kemudian coba run project anda dengan menekan F6, lalu akan tampil form kosong.

Langkah 5 : Menambah Component Pallete Pada Form Ada banyak component pallete yang bisa kita tambahkan pada form. Seperti pembahasan di atas, kita menggunakan AWT dan Swing. Biasanya component pallete berada di sebelah kanan atas layar.

Daftar tab source yang sedang dibuka

Project Explorer

Daftar Compone nt Pallete

Lem bar Kerj a

Propertie s

Untuk menambahkan component pallete pada form, kita tinggal melakukan drag and drop, drag dari daftar component pallete dan drop ke form. Atau bisa juga dengan mengklik salah satu component pallete dan arahkan mouse ke form. Sebagai contoh, kita akan menambah sebuah label ke form.

Kemudian ganti text pada label tersebut menjadi Nilai 1 dan nama variabel menjadi lblNilai1, caranya : Klik kanan pada label, kemudian pilih edit text isi dengan Nilai 1 Untuk mengubah nama variabel, klik kanan pada label pilih Change Variable Name isi dengan lblNilai1

Untuk melakukan perubahan lainnya kita bisa menggunakan jendela properties yang berada di kanan bawah (posisi default)

Studi Kasus 1 : Lengkapi form Anda seperti di bawah ini :

Jika project dijalankan, maka form akan terlihat seperti gambar di atas dan semua textfield dan tombol hitung tidak dapat diisi / diklik, hanya tombol baru yang dapat diklik.

Fungsi tombol : Baru • Jika diklik semua textfield dapat diisi dan bernilai kosong, tombol hitung aktif dan dapat diklik

Hitung • Hanya dapat diklik setelah tombol baru diklik, jika diklik akan menghitung rata-rata nilai dari nilai 1, nilai 2, dan nilai 3 serta menampilkan hasilnya pada textfield nilai rata-rata. Apabila salah satu textfield masih kosong, maka penghitungan nilai rata-rata tidak dilakukan dan akan menampilkan pesan error. Setelah selesai penghitungan maka semua textfield dan tombol hitung tidak dapat diisi / diklik.

Menyelesaikan Kasus 1 : Setelah Anda melengkapi form maka : 1. Ganti nama variabel dari masing-masing component pallete • Kelompok textfield     • txtNilai1 : untuk Nilai 1 txtNilai2 : untuk Nilai 2 txtNilai3 : untuk Nilai 3 txtRata : untuk Nilai Rata-rata

Kelompok button   btnHitung : untuk tombol Hitung btnBaru : untuk tombol Baru

Form  frmNilaiRata : nama Form utama

2. Tambahkan Events Window Opened pada frmNilaiRata, caranya : • Dalam mode design, klik pada form di area kosong. Kemudian lihat di bagian properties, pilih tab events.

setEnabled(false).setText(""). kemudian pilih formWindowOpened • kemudian pada method formWindowOpened.setText(""). txtNilai3.setEnabled(false). ketik baris kode program berikut : txtNilai1.setEnabled(false). txtNilai3. txtNilai2. • Tombol btnBaru .• Cari events window opened.setText(""). txtRata.setText("").setEnabled(false). btnHitung. txtNilai1. txtNilai2.

boleh juga dengan double click di btnBaru kemudian pada Action pilih Create New Action. txtNilai3.Untuk menambahkan events klik pada btnBaru gunakan cara yang sama ketika menambahkan events pada form.setEnabled(true). .setEnabled(true).setEnabled(true).setText(""). txtNilai2. txtNilai3. txtNilai2.setText(""). txtRata. Pada Action's Method isi dengan btnBaruMouseClicked kemudian klik tombol Ok Kemudian ketik kode program berikut pada method btnBaruMouseClicked() txtNilai1.setText(""). txtNilai1. setelah itu pada Action's Class biarkan sebagai nilai default. btnHitung.setText("").setEnabled(true).

return.setText(Double. txtNilai1.setEnabled(false). } double dblRata = (Double. String strNilai2 = txtNilai2.getText(). .parseDouble(strNilai1) + Double.isEmpty()) | (strNilai2.• Tombol btnHitung seperti btnBaru. buat juga events untuk btnHitung. btnHitung. Pada method yang Anda buat ketik kode berikut : // TODO add your handling code here: String strNilai1 = txtNilai1.parseDouble(strNilai3)) / 3.showMessageDialog(null.setEnabled(false).getText().isEmpty())) { JOptionPane.toString(dblRata)). silahkan dilengkapi").getText(). "Masih ada nilai yang kosong. txtNilai2. String strNilai3 = txtNilai3.setEnabled(false). txtRata. txtNilai3. // validasi kalau masih ada textfield yang belum di isi if ((strNilai1.requestFocus().parseDouble(strNilai2) + Double. txtNilai1.isEmpty()) | (strNilai3.setEnabled(false).

30. Jika username dan password yang di-input benar maka akan memunculkan pesan "Selamat Datang". Buat program untuk menghitung nilai rata-rata dari suatu mata kuliah. Tambahkan label yang akan menampilkan nilai dalam huruf. berdasarkan nilai rata-rata yang didapat : • • • • • Nilai rata-rata >= 85. Bobot masing-masing nilai sebagai berikut : • • • Nilai Tugas : 15% Nilai UTS : 35% Nilai UAS : 50% . Jika kedua text field terisi maka program akan mencheck apakah username dan password benar. nilai huruf D < 45 nilai huruf E Ada tiga nilai yang akan dihitung yaitu nilai tugas. yang memiliki text field username dan password serta satu tombol login.9 Latihan 1. nilai UTS. Jika salah satu tidak diisi maka akan memunculkan pesan "username dan password harus diisi". maka akan tampil pada label nilai huruf A 70 s/d < 85. maka program akan memvalidasi apakah username dan password diisi. Buat program login sederhana. Ketika pengguna mengklik tombol login. nilai huruf C 45 s/d < 60. 2. nilai huruf B 60 s/d < 70. dan nilai UAS.

.

akan menampilkan dialog yang isinya terdiri atas isian form Pendaftaran Siswa Baru.10 Pemrograman GUI Lanjutan Studi Kasus 2 Buat Project Baru.30. Fungsi Tombol Simpan : Pada saat tombol simpan diklik. . dan Lengkapi form Anda seperti di bawah ini : Pada saat project dijalankan form akan terlihat seperti di atas.

Jika salah satu TextField. Fungsi Tombol Batal : Jika tombol Batal diklik.Sebelum menampilkan dialog diatas. ComboBox. Menyelesaikan Studi Kasus 2 : 1. form terlebih dahulu dicek. Ganti nama variabel dari masing-masing component • • Form  MainFrame : nama Form utama Kelompok TextField    • txtNama : untuk Nama txtTempatLahir : untuk Tempat Lahir txtTanggalLahir : untuk Tanggal Lahir Kelompok TextArea  taAlamat : untuk Alamat • Kelompok RadioButton   radioLaki : untuk Laki-laki radioPerempuan : untuk Perempuan • Kelompok ButtonGroup  bgJenisKelamin : Jenis Kelamin • Kelompok ComboBox  cbAgama : untuk Agama . CheckBox. akan mengosongkan nilai-nilai yang terdapat pada form. atau RadioButton tidak diisi/dipilih maka akan menampilkan pesan.

3. caranya : • • Klik pada CheckBox Agama Pada properties cari properties model. . Menambahkan item pada CheckBox Agama.• Kelompok CheckBox       chkSepakBola : untuk Sepak Bola chkFutsal : untuk Futsal chkBasket : untuk Basket chkBerenang : untuk Berenang chkBuluTangkis : untuk Bulu Tangkis chkLainnya : untuk Lainnya • Kelompok Button   btnSimpan : untuk tombol Simpan btnBatal : untuk tombol Batal 2. dan klik tombol yang berada disebelah kanan. Pada konstruktor class tambahkan code berikut : Beberapa RadioButton pada ButtonGroup yang sama berarti hanya salah satu RadioButton yang dapat dipilih.

swing.append(chkSepakBola. lalu klik tombol Ok 4. return.showMessageDialog(null.append("\nTempat Lahir: " + txtTempatLahir.append("\nTanggal Lahir: " + txtTanggalLahir.append(chkBasket. sb.isSelected() && !radioPerempuan. sb.append("Nama: " + txtNama.isSelected())) { javax.append(chkBerenang.isSelected() && !chkBasket.isSelected() && !chkBuluTangkis.isSelected() ? "\n.isSelected() ? "\n. sb.JOptionPane. } StringBuilder sb = new StringBuilder(). sb. } 5.Lainnya" : "").isEmpty() | txtTanggalLahir.getText(). javax. Tambahkan events actionPerformed pada tombol Batal private void tnBatalActionPerformed(java.append("\nAgama: " + cbAgama.isSelected() ? "\n.isEmpty() | cbAgama. silahkan dilengkapi"). sb.getText()). sb. Tambahkan events actionPerfomed pada tombol Simpan. sb.event.Bulu Tangkis" : "").append(chkLainnya.getText().Berenang" : "").isSelected() && !chkFutsal. sb.isSelected()) | (!chkSepakBola.getText(). sb. ganti isi dari model menjadi seperti gambar di bawah ini.Futsal" : "").JOptionPane. sb.swing.isSelected() ? "\n.getText()).showMessageDialog(null.getText().getText()).• Maka akan muncul window baru.isSelected() ? "Laki-laki" : "Perempuan")).isEmpty() | txtTempatLahir.toString()).getSelectedItem(). sb.toString()).isSelected() && !chkLainnya.ActionEvent evt) { // TODO add your handling code here: if (txtNama.isSelected() ? "\n.event.append("\nHobi: ").isSelected() ? "\n.isSelected() && !chkBerenang.Basket" : ""). private void btnSimpanActionPerformed(java.append("\nAlamat: " + taAlamat. sb.append("\nJenis Kelamin: " + (radioLaki. "Masih ada nilai yang kosong.append(chkFutsal.getText()).awt.isEmpty() | taAlamat. sb.awt.ActionEven t evt) { .append(chkBuluTangkis.getSelectedIndex() == 0 | (!radioLaki.Sepak Bola" : ""). sb.

setSelected(false).selectWithKeyChar('-'). chkBasket.setSelected(false). chkBerenang. bgJenisKelamin.setText(""). cbAgama.clearSelection(). chkBuluTangkis.setText("").setText("").setText(""). txtTempatLahir.setSelected(false).setSelected(false).setSelected(false). chkSepakBola.setSelected(false).} // TODO add your handling code here: txtNama. . taAlamat. chkFutsal. chkLainnya. txtTanggalLahir.

500. pembeli akan mendapatkan diskon 10% . yang akan menampilkan total harga pembelian sejumlah barang.500. 3. 2.11 Latihan 1.000 : Rp. Pada saat dijalankan form akan terlihat seperti gambar di bawah ini : Rincian ComboBox Kartu Kredit : • • Kartu Kredit Mandiri Kartu Kredit BCA Rincian Harga : • • • • Televisi Komputer AC : Rp.000 : Rp. pembeli akan mendapatkan diskon 10% Jika pembeli memiliki Kartu Kredit Mandiri.000 Mobile Phone Rincian Diskon : • • Jika pembeli memiliki Kartu Member.000. 1.000 : Rp.30. 1. Buat sebuah aplikasi Point Of Sale Sederhana.000.

• Jika pembeli memiliki Kartu Kredit BCA. . pembeli akan mendapatkan diskon 5% Pada saat tombol hitung diklik maka akan menampilkan total harga pembelian barang. Hasilnya akan terlihat seperti gambar di bawah ini.

Juga akan dijelaskan sifat khusus dari Java yang otomatis memakai method yang tepat untuk setiap object tanpa memperhatikan asal dari subclass object. Polymorphism. . semua class. adalah subclass dari superclass Object. Juga akan dijelaskan tentang interface yang membantu mengurangi penulisan program.Inheritance. akan dijelaskan bagaimana suatu class dapat mewariskan sifat dari class yang sudah ada. diharapkan pembaca dapat : • • • Mendefinisikan superclass dan subclass Override method dari superclass Membuat method final dan class final 30.12 Tujuan Pada bagian ini. Hubungan antara subclass dan superclass-nya sering digambarkan dalam bentuk diagram di mana subclass digambarkan di bawah superclass-nya. termasuk class yang membangun Java API. Subclass bisa memiliki struktur atau perilaku tambahan dari superclass-nya. Contoh hirarki class diperlihatkan di bawah ini. dan Interface 30. dan dihubungkan dengan garis penghubung dengan tanda segitiga yang diletakkan di dekat superclass-nya. Jika class B adalah subclass dari class A. Beberapa class di atas class utama dalam hirarki class dikenal sebagai superclass. Pada akhir pembahasan. Istilah pewarisan berarti suatu class bisa mewariskan sebagian atau keseluruhan struktur dan method class lain. Atau bahkan subclass bisa mengubah atau mengganti method superclass-nya. Sifat ini dinamakan polimorfisme. Class ini dinamakan subclass dan induk class dari subclass dinamakan superclass.13 Pewarisan Dalam Java. Sementara beberapa class di bawah class pokok dalam hirarki class dikenal sebagai subclass dari class tersebut. maka kita bisa juga menyebut class A adalah superclass dari class B.

Untuk mengilustrasikan ini. kita inginkan atribut-atribut ini untuk bisa diakses oleh subclass dari superclass.14 Mendefinisikan Superclass dan Subclass Untuk menurunkan suatu class. protected dan default dapat diakses oleh subclasses-nya.out. } } Perhatikan bahwa atribut name dan address dideklarasikan sebagai protected.30. Sekarang. name = "". } } . Alasannya kita melakukan ini yaitu. kita menggunakan kata kunci extends. kita akan membuat contoh class induk. subclass tidak dapat menggunakannya. protected String address.println("Inside Student:Constructor"). /** * Default constructor */ public Person(){ System. address = "".println("Inside Person:Constructor"). Jika kita mendeklarasikannya sebagai private. kita ingin membuat class lain bernama Student. Dimisalkan kita mempunyai class induk yang dinamakan Person.out. public class Person { protected String name. public class Student extends Person { public Student(){ System. Catatan bahwa semua properti dari superclass yang dideklarasikan sebagai public.

Pemanggil super() harus dijadikan pernyataan pertama dalam constructor. pernyataan di dalam subclass dieksekusi. Hal ini dilakukan dengan pemanggil constructor super.println("Inside Student:Constructor"). public Student() { super(). default constructor dari superclass secara mutlak meminta untuk melakukan inisialisasi yang seharusnya. Untuk mengilustrasikannya. pada contoh class sebelumnya.15 Kata Kunci Super Subclass juga dapat memanggil constructor secara eksplisit dari superclass di atasnya. Ada beberapa hal yang harus diingat ketika menggunakan pemanggil constuctor super: 1. Sebagai contoh. Pemanggil super() hanya dapat digunakan dalam definisi constructor. Pemakaian lain dari super adalah untuk menunjuk anggota dari superclass(seperti reference this). System. perhatikan kode berikut. Setelah itu. Termasuk constructor this() dan pemanggil super() tidak boleh terjadi dalam constructor yang sama. 2. kita membuat sebuah object dari class Student. kita tunjukkan contoh dari pemanggil constructor super. Inside Person:Constructor Inside Student:Constructor 30. Pemanggil constructor super dalam constructor dari subclass akan menghasilkan eksekusi dari superclass constructor yang bersangkutan. public static void main( String[] args ){ Student anna = new Student(). } Kode ini memanggil default constructor dari superclass di atasnya (yaitu Person) dan mengeksekusinya. public Student() { .out.Ketika object Student dibuat. Keluaran dari program adalah. } Dalam kode ini. 3. Sebagai contoh. berdasar dari argumen sebelumnya. Diberikan kode berikut untuk Student. Person dan Student.

method overriding digunakan. Oleh karena itulah.println("Student: getName"). return name. } } Ketika kita meminta method getName dari object class Student. Misalnya kita mempunyai implementasi berikut untuk method getName dalam superclass Person. method overridde akan dipanggil. } } Untuk meng-override method getName dalam subclass Student. .out. Subclass dapat mengesampingkan method yang didefinisikan dalam superclass dengan menyediakan implementasi baru dari method tersebut. juga dimungkinkan untuk mendeklarasikan class-class yang methodnya tidak dapat di-override.16 Overriding Method Untuk beberapa kasus.address = "St.super. sebagai contoh : public class Person { . Cross road". .17 Method final dan class final Dalam Java. Student: getName 30. public String getName() { System. super. terkadang subclass mempunyai implementasi berbeda dari method yang diturunkan dari superclass. . public class Student extends Person { . Class ini dinamakan class final. public String getName(){ System. Untuk mendeklarasikan class untuk menjadi final kita hanya menambahkan kata kunci .name = "Tomy".out.println("Parent: getName"). keluarannya akan menjadi. return name. . } 30.

Person Student Employee Dalam Java. kita tulis. Sebagai contohnya. kita tambahkan kata kunci final ke dalam deklarasi method. Untuk mendeklarasikan method untuk menjadi final.final dalam deklarasi class. . . Employee employeeObject = new Employee(). Method ini dapat kita panggil method final. } Method static secara otomatis final. kita dapat membuat referensi yang merupakan tipe dari superclass ke sebuah object dari subclass tersebut. Student studentObject = new Student(). 30. jika kita ingin method getName dalam class Person untuk dideklarasikan final. //Person menunjuk kepada object Student . jika kita ingin class Person untuk dideklarasikan final. Ini artinya Anda tidak dapat membuatnya override. dan String. kita tambahkan subclass lain dari Person yaitu Employee. Di bawah ini adalah hierarkinya.18 Polimorfisme Class induk Person dan subclass Student dari contoh sebelumnya. public final class Person { . ref = studentObject. } Beberapa class dalam Java API dideklarasikan secara final untuk memastikan sifatnya tidak dapat di-override. . Ini memungkinkan dalam Java membuat method yang tidak dapat di-override. Contoh-contoh dari class ini adalah Integer. Double. public static main( String[] args ) { Person ref. Contohnya. kita tulis. Sebagai contoh. public final String getName(){ return name.

out. .println("Employee Name: " + name). } } //Student.println("Person Name: " + name). return name. //Person menunjuk kepada object Student String temp = ref.println( temp ).java public class Employee extends Person { public String getName(){ System.java public class Student extends Person { public String getName(){ System. return name.getName(). Employee employeeObject = new Employee().out. } } //Employee. dan kita override method ini dalam kedua subclasses Student dan Employee. } Sekarang dimisalkan kita punya method getName dalam superclass Person kita. method getName dari object Student akan dipanggil.. Sekarang. public static main( String[] args ) { Person ref.out. method getName dari Employee akan dipanggil. Student studentObject = new Student(). //Person. jika kita berikan ref ke object Employee. ketika kita mencoba memanggil method getName dari reference Person ref. } } Kembali ke method utama.out. .java public class Person { public String getName(){ System. //getName dari Student class dipanggil System. return name.println("Student Name: " + name). ref = studentObject.

println( temp ).getName(). yaitu . printInformation( studentObject ). akan tetapi isi method gambar() dikosongkan. //Person menunjuk kepada object Employee String temp = ref. Misalkan kita punya method static printInformation yang mengakibatkan object Person sebagai reference.ref = employeeObject. printInformation( employeeObject ). Contoh lain yang menunjukkan properti polimorfisme adalah ketika kita mencoba melalui reference ke method. public static main( String[] args ) { Student studentObject = new Student(). Berikut adalah contoh interface : public interface Gambar { public void gambar (graphics g) } Deklarasi di atas mirip dengan definisi suatu class. Polimorfisme menyediakan multiobject dari subclasses yang berbeda untuk diperlakukan sebagai object dari superclass tunggal. kata interface adalah kata kunci (keyword) yang memiliki arti tambahan yaitu interface terdiri dari subrutin tanpa implementasi apa-apa. Kemampuan dari reference untuk mengubah sifat menurut object apa yang dijadikan acuan dinamakan polimorfisme. Suatu class yang mengimplementasi interface ini. kita dapat me-reference dari tipe Employee dan tipe Student ke method ini selama itu masih subclass dari class Person. Suatu class dapat mengimplementasi suatu interface dengan memberikan kode detail pada setiap subrutin yang ditulis pada interface tersebut.out. Employee employeeObject = new Employee(). secara otomatis menunjuk method yang tepat untuk menggunakannya ke particular object berdasar subclass yang termasuk di dalamnya. } public static printInformation( Person p ){ } 30.19 Interface Dalam Java. //getName dari Employee class dipanggil } System.

gambar(g). Suatu class bisa menurunkan hanya satu class lain. tetapi interface mirip dengan class. Tentunya class tersebut juga bisa memiliki variabel dan metode lain. Definisi class yang ingin mengimplementasikan suatu interface harus menulis "implements Gambar" dalam definisi class-nya. . // variabel dan metode lain } Class apapun yang mengimplementasi interface Gambar[code] harus memberikan detail apa yang akan dilakukan oleh method [code]gambar().interfaceGambar. Meskipun kita tidak bisa membuat objek dari interface. // memanggil metode gambar() dari class Garis gambarku = new LingkaranBerwarna(). class Garis implements Gambar { public void gambar(Graphics g) { . jika Gambar adalah suatu interface. . Misalnya. Method pada suatu interface merupakan method yang harus diimplementasikan pada class yang mengimplementasikan interface tersebut. } Meskipun interface bukan class. . // perintah untuk menggambar garis } . // Deklarasi variabel dengan tipe Gambar. // Sekarang gambarku berisi // objek dengan class LingkaranBerwarna . akan tetapi suatu class bisa mengimplementasikan lebih dari satu interface. Misalnya. class LingkaranBerwarna extends Lingkaran implements Gambar. . harus mengisi implementasi method gambar() ini. bukan untuk membuat objek. // gambarku berisi objek dengan class Garis gambarku. . // Variabel ini bisa diisi objek yang // mengimplementasi interface Gambar gambarku = new Garis(). BerisiWarna { . Interface hanya digunakan untuk membuat class lain. Perlu diingat bahwa hanya menambah metode gambar() saja tidak cukup. tetapi suatu variabel dapat bertipe suatu interface. . dan jika Garis dan LingkaranBerwarna adalah class yang mengimplementasikan Gambar. Misalnya. Objek yang diciptakan dari class tersebut akan memiliki metode gambar(). maka kita bisa menulis code seperti berikut : Gambar gambarku.

Object b). Contohnya. penggunaan interface. atau salah satu dari tipe data primitif. tipe data bisa berupa class. mari kita membuat sebuah interface yang mendefinisikan hubungan antara dua object menurut urutan asli dari object. Kita biasanya tidak perlu menulis interface kita sendiri hingga program kita menjadi sangat kompleks. Membuat Interface Untuk membuat interface. /** * Class ini mendefinisikan segmen garis */ public class Line implements Relation { private double x1. penulisannya : public interface [InterfaceName] { //beberapa method tanpa isi } Sebagai contoh.gambar(g).gambar(g)" boleh ditulis karena gambarku adalah variabel dengan tipe Gambar. hanya class yang bisa digunakan untuk membuat objek baru. Pernyataan di atas seperti "gambarku. . interface. public boolean isEqual( Object a. public boolean isLess( Object a. Catatan bahwa tipe data merupakan sesuatu yang biasa digunakan untuk mendeklarasikan variabel. Pada Java.gambarku. Dari semuanya. Akan tetapi ada beberapa interface yang sudah disediakan oleh Java yang mungkin bisa digunakan atau diimplementasi dalam program kita. // memanggil metode gambar() dari class // LingkaranBerwarna Variabel dengan tipe Gambar boleh merujuk pada class apapun yang mengimplementasikan antar muka Gambar. } Sekarang. atau sebagai tipe keluaran / return value suatu method. 31. Object b). Tipe data juga digunakan untuk memberikan tipe suatu parameter pada method. kita gunakan kata kunci implements. dan setiap objek bertipe Gambar pasti memiliki metode gambar(). Object b). public interface Relation { public boolean isGreater( Object a.

private double y1.getLength(). } public boolean isLess( Object a.x1 = x1.y2 = y2. } public boolean isGreater( Object a. double y1.Object) in Relation public class Line implements Relation ^ 1 error Petunjuk penulisan program: Gunakan interface untuk mendefinisikan method standar yang sama dalam class-class berbeda yang memungkinkan.getLength(). double x2. return (aLen < bLen). private double y2.x2 = x2. selalu pastikan bahwa Anda mengimplementasikan semua method dari interface.getLength(). Object b){ double aLen = ((Line)a). this. return (aLen > bLen). double y2){ this.private double x2. double bLen = ((Line)b). double bLen = ((Line)b). public Line(double x1. Anda dapat menulis method tunggal untuk memanipulasi semua class-class yang mengimplementasikan interface.sqrt((x2-x1)*(x2-x1) + (y2-y1)* (y2y1)). Line. this. Anda akan menemukan kesalahan ini. jika tidak. double bLen = ((Line)b). } public boolean isEqual( Object a. } public double getLength(){ double length = Math. Object b){ double aLen = ((Line)a).java:4: Line is not abstract and does not override abstract method isGreater(java.lang.y1 = y1. } } Ketika class Anda mencoba mengimplementasikan sebuah interface.lang. .java. return length.getLength(). Sekali Anda telah membuat kumpulan definisi method standar. this. Object b){ double aLen = ((Line)a).getLength().Object. return (aLen == bLen).getLength().

} } //SepedaGunung. System. } //membuat method tambahKecepatan dan parameter //pertambahanKecepatan yang bertipe integer void tambahKecepatan(int pertambahanKecepatan) { kecepatan = kecepatan + pertambahanKecepatan.out. System. int gir = 0.println("Gir:" + gir).Studi Kasus 1 : Inheritance (pewarisan) //Sepeda.java class SepedaGunung extends Sepeda { //mendeklarasikan atribut int setSadel.println("Tinggi Sadel: " + setSadel).out.java class Sepeda{ //mendeklarasikan variabel int kecepatan = 0. //membuat method ubahGir dan parameter pertambahanGir yang //bertipe integer void ubahGir(int pertambahanGir) { gir= gir + pertambahanGir.println("Kecepatan: " + kecepatan). } } //SepedaGunungBeraksi class SepedaGunungBeraksi { . //membuat method setSadel dan parameter nilaiSadel yang bertipe integer public void setSadel(int nilaiSadel) { setSadel = nilaiSadel. System.out.

sepedaku.ubahGir(2). sepedaku.tambahKecepatan(10). // Memanggil method dan memberikan nilai parameter pada masing//masing method diobject sepedaku. } } .public static void main(String[] args) { // Membuat object SepedaGunung sepedaku = new sepedaGunung().setSadel(20).

"tv mencari chanel".31. Buat class MobilBMWBeraksi yang memanggil method nontonTV() serta hidupkanMobil(). kita akan membuat class MobilBMW yang merupakan inherit dari class MobilLengkap dengan menambahkan beberapa method nontonTV() yang isinya menampilkan "tulisan tv dihidupkan". "tv menampilkan gambar".1 Latihan 1. matikanMobil() yang di-extends dari class MobilBMW. . dan ubahGigi().

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->