Anda di halaman 1dari 72

DIKTAT PEMROGRAMAN BERORIENTASI OBYEK

Materi

Pemrograman Obyek dengan Bahasa JAVA

MUHAMMAD SHOLEH

CIRI KHAS BAHASA


INGATKAH INI BAHASA APA ?? Program pertama; Var A:integer; Begin Writeln(Pertama); End. --------------------------------

#include <iostream.h> void main() { cout<<Pertama; }

INILAH CIRI AWAL BAHASA JAVA public class pertama { public static void main(String args[]) { System.out.println("Pertama"); } } MIRIPKAH DENGAN BAHASA C++

Mengenal Java 1 1.1 Apakah Java Itu ?

Java adalah sebuah platform teknologi pemrograman yang dikembangkan oleh Sun Microsystem. Pertama kali di-release tahun 1991 dengan nama kode Oak. Kemudian tahun 1995 nama kode Oak diganti menjadi Java. Yang memotivasi Java dibuat adalah untuk membuat sebuah bahasa pemrograman yang portable dan independent terhadap platform ( platform independent). Pada tahun 1998-1999 lahirlah teknologi J2EE (Java 2 Enterprise Edition) yang berbasis J2SE. Terakhir teknologi java melahirkan J2ME (Java 2 Micro Edition) yang sudah diadopsi oleh Nokia, Siemens, SonyEricsson, untuk menhasilkan aplikasi mobile baik games maupun software bisnis dan berbagai jenis software lain yang dapat dijalankan diperalatan mobile seperti ponsel. Untuk membangun perangkat lunak menggunakan Java maka dibutuhkan Java Development Kit (JDK). JDK release pertama tahun 1996 yaitu JDK 1.1 yang diadopsi oleh Netscape. JDK terbaru sekarang (September-tahun 2004, ketika modul ini ditulis) adalah JDK 1.4.1 Semua program dan dokumentasi dari JDK ini bisa di-dwonload secara gratis disitus www.sun.java.com. 1.2 Kelebihan Java Mengapa Java sering dibicarakan dan memiliki daya tarik bagi programmer? Karena Java merupakan suatu teknologi yang unik dan revolusioner dan merupakan teknologi pertama di dunia software yang memiliki semboyan write once, run anywhere. Semboyan tersebut telah terbukti karena banyak program java dapat dijalankan di berbagai platform sistem operasi, seperti Linux, Windows maupun Unix. Java juga didesain untuk menghasilkan program dengan seminimal mungkin bug karena kemampuan sebagai berikut : 1 Java didesain untuk menghilangkan alokasi memeri dan dealokasi memori secara manual. memiliki garbage collection yang dapat mendealokasikan memori secara otomatis mencegah memory leak.Memory leak adalah dimana memori yang digunakan objek atau variabel yang sudah tidak digunakan tidak didealokasikan sehingga menyebabkan kehabisan memori karena proses alokasi maupun dealokasi yang tidak diatur dengan baik. Java memiliki array yang tidak memerlukan pointer Bersifat protable dan platform independent. Program Java yang telah ditulis akan dapat dieksekusi di mesin apapun dan sistem operasi apapun tanpa harus mengubah sedikitpun dari program tersebut. Java menghilangkan banyak kebingungan apabila terjadi proses assignment (pemberian nilai) pada statemen kondisional seperti berikut : If (varnya=5) Kode di atas menyebabkan program java tidak dapat dikompilasi karena Java membedakan tanda = yang digunakan untuk pemberian nilai dan untuk pengeekan kondisi True atau false yang harus menggunakan tanda = ganda (= =) Java menghilangkan multiple inheritance pada C++ dan menggunakan interface yang memiliki kemampuan yang sama tetapi lebih sederhana.

2 3

1.3 Karakteristik Java

Selain itu Java memiliki karakteristik: 1 2 3 4 5 6 7 8 9 Berorientasi Objek : Java merupakan pemrograman berorientasi objek yang murni. Dalam pemrograman Java semua adalah objek, terkecuali tipe data primitifRobust Portable : Portable karena Java dapat dijalankan di berbagai platform tanpa perbahan kode sama sekali Multithreading : Java memiliki kemampuan untuk menangani dan menjalankan banyak thread sekaligus Dinamis : Java merupakan teknologi yang terus berkembang, dan hal ini tampak nyata sekali dengan library yang terus ditingkatkan kemampuan dan kelengkapannya. Sederhana : Java memiliki sintaks C++ yang sudah banyak dikenal. Bahkan java memberikan banyak keunggulan dan kemudahan dibanding C++ Terdistribusi : sifat terdistribusi dari Java sangat tampak sebagai applet dan library yang mampu bekerja dalam jaringan dan bekerja secara objek terdistribusi Aman : aman karena program java memiliki library security serta policy yang membatasi akses apllet di komputer client Netral secara arsitektur : Java dapat dijalankan dengan baik pada komputer yang memiliki arsitektur berbeda-beda. Interpreter :Java memerlukan virtual machine yang bertindak sebagai Interpreter yang menterjemahkan bytecode (file class) menjadi bahasa mesin yang dimengerti oleh komputer

10 Robust : Java dapat menghasilkan proram secra cepat dan handal karena Java mencegah adanya memory leaking, meniadakan Pointer (yang merupakan keharusan pada programmer C dan C++). Serta mencegah berbagai error yang mungkin terjadi dengan adanya berbagai proses pengecekan awal pada kompilasi. 11 free / bebas licence

PERSIAPAN INSTALASI
Mengenal Java 2 SDK 1.4 Apakah SDK itu ? SDK adalah kependekan dari Standard Development Kit yang merupakan bekal utama bagi developer untuk membuat program dan menjalankan program java. Secara garis besar Java 2 SDK 1.4 terdiri dari : Java compiler (Javac) Java virtual Machine Java Class Libraries (koleksi class yang dapat digunakan untuk menghasilkan program java) Java AppletViewer (program untuk menjalankan applet tanpa menggunakan browser) Java Debugger dan tool lain Documentasi

Instalasi Java Pada bagian iniakan dibahas langkah-langkha untuk instalasi dan konfigurasi Java Development Kit (JDK): 1. Mulai dari windows explorer double click pada icon j2sdk-1.4.2.win didirektori yang berisi program-program pendukung Java.

2. berikutnya adalah tahapan-tahapan yang harus diperhatikan sesuai dengan kotak dialog yang muncul. 3. pada pilihan komponen-komponen, pilihlah sesuai dengan kebutuhan yang diinginkan untuk diinstalasi. 4. pilihlah juga direktori yang diinginkan untuk tempat instalasi JDK, misal di C:\Java. 5. setelah itu proses instalasi akan berlangsung, tunggulah hingga selesai.

6. jika instalasi telah lengkap / selesai maka akan muncul kotak dialog yang menunjukkan bahwa instalasi komplit. 7. langkah berikutnya, biasanya instalasi JDK akan menghasilkan library yang dibutuhkan masih dalam bentuk file yang terkompres, yaitu src.zip, maka yang harus dilakukan adalah men-decompress file itu dengan winzip atau extractor yang lainnya. 8. hal yang perlu disetting selanjutnya adalah classpath, java home dan path. Untuk setting ketiganya adalah sebagai berikut:

9. untuk system operasi windows 98 maka setting dilakukan di autoexec.bat dengan menuliskan sintaks sebagai berikut : misal java diinstalasi di c:\java c:>set path = c:\jdk141\bin PATH = C:\java\bin CLASSPATH = c:\java\lib\tools.jar;c:\java\ext\lib\rt.jar JAVA_HOME = c:\java

DIMANA SAYA DAPAT MEMBUAT PROGRAM JAVA


Untuk membuat bahasa java Anda dapat memakai editor apapun. Proses kompilasinya dalah javac pertama.java Java pertama Untuk memudahkan proses pembuatan program dan proses kompilasi, Anda dapat menggunakan editor TEXTPAD. Tampillanya adalah :

KETIKAN PROGRAM APLIKASI DI LAYAR INI

Setelah anda ketik programnya lakukan proses kompilasi Pilih tool Pilih Compile Java Tunggu sampai proses kompilasi selesai Bila ada kesalahan akan dimunculkan pesan kesalahannya

PESAN KESALAHAN

Bila tidak ada kesalahan, langkah selanjutnya melihat hasil program Pilih Tools Pilih Run Java Appliocation Lihat hasilnya

HASIL RUN

MEMAHAMI STRUKTUR JAVA


Jenis Program Java Program Java dapat dibedakan menjadi dua jenis, yaitu applet dan Applet Aplikasi

Program Aplikasi Pertamaku class HelloDan { public static void main (String[] arguments) { System.out.println("What's the frequency, Kenneth?"); } }

Program Applet Pertamaku import java.awt.Graphics; public class appletpertama extends java.applet.Applet { public void paint(Graphics g) { g.drawString("Pertama",5,20); } }

Memahami Program Java 1. //Berkas: SelamatBelajar.java 2. 3. public class SelamatBelajar { 4 public static void main(String[] args) { 5 System.out.println("Selamat Belajar Java"); 6 } 7 }

Baris (1) menyatakan suatu komnentar. Kornentar adalah keterangan yang berfungsi untuk menjelaskan kepada pembaca program. Dalam hal ini baris ini menyatakan bahwa program ini disimpan pada berkas bernama SelamatBelajar.java. Baris (3) merupakan bagian untuk mengawali pendefinisian kelas bemama SelamatBelaiar. Definisi kelas berupa suatu blok, yang diawali dengan simbol { dan diakhiri dengan }. Blok ini dimulai pada baris (3) dan berakhir pada baris (7). Kelas ini memiliki sebuah metode bernama main() Definisi main() terdapat pada baris (4) hingga (6). Perlu diketahui, main() adalah metode yang akan dijadikan sebagai awal pengeksekusian aplikasi Java. Kode yang terdapat pada metode inilah yang akan dieksekusi pertama kali. Aplikasi Java selalu mengandung metode ini. Metode main() didefinisikan sebagai public static void. Kata-kunci public menyatakan bahwa metode ini bisa dipanggil dari mana saja (baik dari dalam, kelas itu sendiri ataupun dari luar kelas). Kata kunci static menyatakan bahwa metode ini bersifat sama untuk semua instan kelas. Kata kunci void berarti bahwa metode ini tidak memberikan nilai batik (sebuah metode jika diperlukan dapat memberikan nilai balik). Setelah kata main terdapat kurung. Di dalam tanda kurung terdapat String[] args. Yang berada di dalam tanda kurung ini disebut parameter atau argumen. Dalam hat ini metode maino hanya memiliki sebuah parameter. String menyatakan suatu kelas pada Java yang berhubungan dengan penanganan sederetan huruf args yang terletak sesudah String menyatakan array dari objek String. Tanda titik-koma (;) digunakan untuk mengakhiri pernyataan. Dalarn hal ini tulisan yang akan ditampilkan diletakkan sebagai argurnen milik metode prinfino. Metode yang merupakan bagian dari objek out ini merupakan metode, untuk menampilkan tulisan ke keluaran standar (layar). out sendiri adalah anggota objek dari objek System. Tanda titik digunakan untuk memisahkan metode terhadap objek yang melingkupinya dan objek yang menjadi bagian dari objek lain juga perlu ditulis dengan pernisah berupa titile. Contoh-contoh public class pertama{ public static void main(String args[]) { System.out.println("Pertama"); System.out.println("Pertama 1"); System.out.println("Pertama 2"); System.out.println("Pertama 3"); System.out.println("Pertama 4"); } } -------------------------public class pertama { public static void main(String args[]) { System.out.print("Pertama"); System.out.print("Pertama 1"); System.out.print("Pertama 2"); System.out.print("Pertama 3"); System.out.print("Pertama 4"); } } --------------------------public class pertama { public static void main(String args[]) { System.out.print("Pertama"); System.out.println("Pertama 1"); System.out.println("Pertama 2"); System.out.print("\nPertama 3"); System.out.print("Pertama 4\t"); System.out.print("Pertama 5"); } }

import javax.swing.JOptionPane; public class SalamGUI { /**Main Method*/ public static void main( String args[] ) { // Menampilkan pesan dengan Message Dialog dari // kelas JOptionPane JOptionPane.showMessageDialog( null, "Saya sedang belajar Java","Salam", 1); System.exit( 0 ); // Keluar dari program } }

10

MEMAHAMI PROSES MEMASUKAN DATA


1. Pemberian nilai pada saat program dibuat. Dengan cara ini sebuah variabel diberi nilai dengan menuliskan langsung di dalarn kode program pada saat variabel tersebut dideklarasikan. int bilanganBulat = 55; Variabei bilanganBulat dideklarasikan sebagai variabel bertipe int dan langsung diberikan harga awal 55. Cara lain adalah dengan memberikan nilai pada bagian lagi dari kode program. bilanganBulat = 11; Kita memberikan nilai 11 kepada variabei bilanganBulat langsung pada salah satu baris program. Kita tidak perlu mendefinisikan tipe data bagi variabel ini lagi. Cara mana yang akan digunakan terserah kepada programmer, tergantung situasi yang dilhadapi. 2. Pemberian nilai melalui parameter program. Parameter program adalah data yang dilewatkan kepada sebuah program pada saat program tersebut akan dijalankan. Beberapa perintah DOS menggunakan cara ini untuk melewatkan parameter ke dalarn suatu program atau instruksi. 3. Menggunakan Class JoptionPane import javax.swing.JOptionPane; public class masuk { public static void main(String[] args) { String nama; nama=JOptionPane.showInputDialog("Data Anda "); System.out.println("data Anda " + nama); System.exit(0); } }

11

Menggunakan metode showMessageDialog() import javax.swing.JOptionPane; public class masuk1 { public static void main(String[] args) { String nama; nama=JOptionPane.showInputDialog("Data Anda "); JOptionPane.showMessageDialog(null,"Hallo " + nama); System.exit(0); } }

12

MEMAHAMI VARIABEL
Variabel Variabel adalah satuan dasar penyimpanan dalam program Java. Suatu variabel didefinisikan dengan kombinasi identifier, tipe, dan cakupan. Bergantung pada tempat kita mendeklarasikannya. Deklarasi Variabel Bentuk dasar dari deklarasi variabel adalah: type identifier [=value] [,identifier[=value] ...];

public class variabel1 { public static void main(String[] args) { int var1; var1 = 3; int var2 = 5; double var3 = 1.99; boolean var4 = false; String var5= "Purwokerto"; System.out.println(var1); System.out.println(var2); System.out.println(var3); System.out.println(var4); System.out.println(var5); } }

Tipe Data Tipe-tipe Data Sederhana Java memiliki delapan tipe sederhana: byte, short, int, long, char, float, double dan boolean. Dapat dipisahkan dalam empat kelompok: Integer Karakter Boolean : byte, short, int, dan long, semuanya berupa bilangan bulat bertanda. : char, mewakili simbol pada himpunana karakter seperti tulisan dan angka. : boolean, yang merupakan tipe khusus untuk menunjukkan besaran logika. Bilangan pecahan: float dan double, yang berupa bilangan pecahan.

13

1. a.

Tipe Data Tipe-tipe Data Sederhana Java memiliki delapan tipe sederhana: byte, short, int, long, char, float, double dan boolean. Dapat dipisahkan dalam empat kelompok: Integer: byte, short, int, dan long, semuanya berupa bilangan bulat bertanda. Bilangan pecahan: float dan double, yang berupa bilangan pecahan. Karakter: char, mewakili simbol pada himpunana karakter seperti tulisan dan angka. Boolean: boolean, yang merupakan tipe khusus untuk menunjukkan besaran logika. Tipe Numerik Tipe numerik berfungsi menampung bilangan. Setiap kali kita melakukan proses matematis, kita pasti akan menggunakan tipe ini. Jika kita ingin menyimpan hasil beberapa perhitungan matematis, harus dibuat variabel denagan tipe numerik. Ada dua jenis tipe numerik: interger yang menyimpan bilangan bulat tanpa pecahan; dan floating-point yang dapat menyimpan bilangan dengan bagian desimalnya. Setiap tipe ini mempunyai bermacam-macam rentang nilai untuk penyimpanan bilangan tertentu. Pemilihan rentang nilai dan ketelitian pecahanya bergantung pada kebutuhan aplikasi yang kita buat. Bilangan Bulat (Integer) Tiadanya tipe unsigned pada Java telah mengurangi jumlah tipe data integer menjadi hanya empat, setengah dari biasanya. Masing-masing mewakili penyimpanan 1, 2, 4 dan 8 byte. Tiap tipe, byte, short, int, dan long memiliki sifat yang sama dengan yang dikenal pada bahasa lain.

b.

c.

Byte byte adalah tipe 8-bit bertanda. Memiliki rentang nilai dari -128 sampai 127. Sebaiknya digunakan jika kita menangani aliran-aliran byte asing dari network atau file. Variabel byte dideklarasikan dengan kata kunci byte. Contohnya dibawah ini adalah deklarasi dua variabel byte yang diberinama b dan c, dan c diinisialisasi dengan nilai 0x55. byte b; byte c=0x55; short short adalah tipe 16-bit bertanda. Memiliki rentang nilai dari -32768 sampai 32767. Tipe ini mungkin merupakan tipe yang paling jarang digunakan karena bersifat big-endian, format data bit-atas di depan, sehingga tidak mungkin diolah pada mesin-mesin litle-endian seperti PC. Contoh deklarasi variabel short: short s; short t=0x55aa; int int adalah tipe 32-bit bertanda. Memiliki rentang nilai dari -2147483648 sampai 2147483647. Tipe ini paling banyak digunakan untuk menyimpan besaran integer sederhana. Karena nilainya dapat mencapai trilyunan. Contoh deklarasi int: int i; int j=0x55aa000;

14

long long adalah tipe 64-bit bertanda. Rentang nilainya cukup besar untuk tugas-tugas menghitung jumlah atom di alam semesta. Contoh deklarasi tipe long: long m; long n= 0x55aa000055aa0000;

d.

Bilangan Pecahan (Floating-Point) Bilangan pecahan (floating-point) atau lebih dikenal sebagai bilangan riil, digunakan pada fungsi perhitungan yang membutuhkan ketelitian pecahan. Ada dua macam tipe bilangan pecahan, float dan double. Nama double float Lebar (bit) 64 32 Rentang Nilai 1,7E-308, ..., 1,7E+308 3,4E-038, ..., 3,4E+038

float Ketelitian tunggal, dispesifikasikan dengan kata kunci float, menggunakan 32-bit untuk menyimpan nilai. Ketelitian tunggal diolah lebih cepat pada sejumlah prosessor dan hanya mengambil ruang setengahnya, tetapi akan mulai tidak teliti jika nilai yang diolah terlalu besar atau terlalu kecil. Berikut contoh deklarasi float: float f; float f2=3.14f; double Ketelitian ganda seperti dinyatakan dengan kata kunci double, menggunakan 64-bit untuk menyimpan nilai. Ketelitian ganda sebenarnya diolah lebih cepat daripada ketelitian tunggal pada sejumlah prosessor modern yang telah dioptimalisasi untuk perhitungan matematis kecepatan tinggi. Contoh deklarasi variable double: double d; double pi=3.141593653558979323846

15

MEMAHAMI OPERASI MATEMATIKA


OPERASI MATEMATIKA Ungkapan Ungkapan dibentuk oleh operand dan operator. Contoh A+ B Operand

Operator (A+B)* 2 A,B,2 operand sedangkan ( , + sebagai operator Operator dalam turbo pascal Operator Arti Prioritas Contoh

* Kali 1 2*4 =8 / Bagi real 1 7/2 =3.5 DIV Bagi bulat 1 7 div 2 =3 + Tambah 2 Kurang 2 Operator dalam suatu ungkapan dikerjakan berdasarkan derajat atau prioritasnya. contoh urutkan pekerjaannya 2+3*4 * mempunyai prioritas lebih tinggi dari +, sehingga proses 3 * 4 dikerjakan terlebih dahulu baru hasil perkalian tersebut ditambah dengan 2. Untuk merubah urutan prioritas dapat menggunakan tanda apit (), bila digunakan tanda () Urutan prioritas akan dikerjakan terlebih dahulu yang ada di dalan tanda kurung. (2+3)*4 (2+3)*4 Yang ada di dalam kurung akan dikerjakan terlebih dahulu, walaupun di dalam tanda kurung terdapat operand + e. Operator Aritmatik Operator aritmatik digunakanan untuk proses matematika, sama persis dengan yang digunakan pada aljabar. Operandnya harus berupa numerik. Operator ini tidak dapat digunakan untuk tipe boolean, tetapi dapat digunakan untuk tipe char karena char adalah anggota himpunan int. Operator Hasil + Penjumlahan += Persamaan penjumlahan Pengurangan -= Persamaan pengurangan * Perkalian *= Persamaan perkalian / Pembagian /= Persamaan pembagian % Modulus (sisa pembagian) %= Persamaan modulus ++ Penambahan -Pengurangan hasilnya 20

16

class AmoebaMath { public static void main (String arguments[]) { int x = 6; short y = 4; float a = .12f; System.out.println("You start with " + x + " pet amoebas."); System.out.println("\tTwo get married and their spouses move in."); x = x + 2; System.out.println("You now have " + x); System.out.println("\tMitosis occurs, doubling the number of amoebas."); x = x * 2; System.out.println("You now have " + x); System.out.println("\tThere's a fight. " + y + " amoebas move out."); x = x - y; System.out.println("You now have " + x); System.out.println("\tParamecia attack! You lose one-third of the colony."); x = x - (x / 3); System.out.println("You end up with " + x + " pet amoebas."); System.out.println("Daily upkeep cost per amoeba: $" + a); System.out.println("Total daily cost: $" + (a * x)); } }

17

CONTOH PROGRAM MEMAHAMI VARIABEL SATU class satu { public static void main (String args[]) { int a=10; double b=10.5; System.out.println("isi a " + a); System.out.println("isi b " + b); } } DUA class satu { public static void main (String args[]) { int a=10; int c; double b=10.5; System.out.println("isi a " + a); System.out.println("isi b " + b); System.out.println("isi c " + c]); }} D:\Backup\Dari D\Data Back up\Soleh_02\buku_diktat\diktat_java\latihan\satu.java:10: ')' expected System.out.println("isi c " + c]); ^ 1 error Tool completed with exit code 1 DUA 11 class satu { public static void main (String args[]) { int a=10; int c=20; double b=10.5; a=a+10; System.out.println("isi a " + a); System.out.println("isi b " + b); System.out.println("isi c " + c); } } isi a 20 isi b 10.5 isi c 20 dua 22 class satu { public static void main (String args[]) { final int a=10; int c=20; double b=10.5; a=a+10; System.out.println("isi a " + a); System.out.println("isi b " + b); System.out.println("isi c " + c); } } C:\My Documents\satu.java:7: cannot assign a value to final variable a a=a+10; ^ 1 error

18

Tool completed with exit code 1 DUA 333 class satu { public static void main (String args[]) { int a=10; int c=20; final double b=10.5; a=a+10; System.out.println("isi a " + a); System.out.println("isi b " + b); System.out.println("isi c " + c); } }

DUA_a class AmoebaMath { public static void main (String arguments[]) { int x = 6; short y = 4; float a = .12f; System.out.println("Nilai awal " + x + " angka"); System.out.println("Nilai x ditambah 2."); x = x + 2; System.out.println("Nilai X sekarang " + x); x = x * 2; System.out.println("Nilai X sekarang " + x); System.out.println("Nilai Y " + y + " angka"); x = x - y; System.out.println("Nilai X sekarang" + x); x = x - (x / 3); System.out.println("Nilai X " + x ); System.out.println("Nilai a" + a); System.out.println("Hasil " + (a * x)); } } Nilai awal 6 angka Nilai x ditambah 2. Nilai X sekarang 8 Nilai X sekarang 16 Nilai Y 4 angka Nilai X sekarang12 Nilai X 8 Nilai a0.12 Hasil 0.96 Press any key to continue . . .

19

KONVERSI DATA
TYPE CASTING Memaksa suatu tipe data menjadi tipe data lain. Proses casting tidak akan merubah tipe awal dari variable yang dicasting Contoh public class kasting { public static void main(String[] args) { int x=9; int y=4; int z=x/y; System.out.println("hasil" + z); } } hasil 2 public class kasting1 { public static void main(String[] args) { int x=9; int y=4; double z=x/y; System.out.println("hasil" + z); } } hasil 2.0 public class kasting2 { public static void main(String[] args) { int x=9; double y=4; double z=x/y; System.out.println("hasil" + z); } } hasil 2.25 public class kasting3 { public static void main(String[] args) { int x=9; double y=4; double z=(double) x/y; System.out.println("hasil" + z); } } hasil2.25

20

public class kasting4 { public static void main(String[] args) { int x=9; double y=4; int z=(double) x/y; System.out.println("hasil" + z); } } D:\sasi\java\kasting4.java:7: possible loss of precision found : double required: int int z=(double) x/y; ^ 1 error Tool completed with exit code 1 METODE KHUSUS DARI CLASS SUATU TYPE DATA public class string1{ public static void main(String[] args) { String x="9"; System.out.println("ISI " + x); } } public class string2 { public static void main(String[] args) { String x="9"; int y=1; int z; z=x+y; System.out.println("ISI " + z); } } D:\sasi\java\string2.java:8: incompatible types found : java.lang.String required: int z=x+y; ^ 1 error Tool completed with exit code 1 public class string3 { public static void main(String[] args) { String x="9"; int y=1; int z; z=Integer.parseInt(x)+y; System.out.println("ISI " + z); } }

21

MEMAHAMI CASTING
TIGA class satu { public static void main (String args[]) { int x =9; int y=4; int z; z=x/y; System.out.println("Isi z " +z); } } EMPAT class satu { public static void main (String args[]) { int x =9; int y=4; double z; z=x/y; System.out.println("Isi z " +z); }} LIMA class satu { public static void main (String args[]) { double x =9; int y=4; double z; z=x/y; System.out.println("Isi z " +z); }} ENAM class satu { public static void main (String args[]) { double x =9; int y=4; int z= x/y; System.out.println("Isi z " +z); }} C:\jdk1.3.1\bin\satu.java:8: possible loss of precision found : double required: int int z= x/y; ^ 1 error Tool completed with exit code 1 TUJUH class satu { public static void main (String args[]) { double x =9; double y=4; int z= x/y; System.out.println("Isi z " +z); } }

22

DELAPAN class satu { public static void main (String args[]) { int x =9; int y=4; double z= (double) (x)/y; System.out.println("Isi z " +z); } } SEMBILAN class satu { public static void main (String args[]) { int x =9; int y=4; double z= (double) (x/y); System.out.println("Isi z " +z); } } SEPULUH class satu { public static void main (String args[]) { double x =9; double y=4; double z= (int) (x/y); System.out.println("Isi z " +z); } }

11 class satu { public static void main (String args[]) { String nama1 = args[0]; String nama2 = args[1]; String nama3 = args[2]; int a=10; System.out.println(" isi a =" + a); System.out.println(" isi nama1 =" + nama1); System.out.println(" isi nama2 =" + nama2); System.out.println(" isi nama3 =" + nama3); } } C:\jdk1.3.1\bin>java satu ista asti esti isi a =10 isi nama1 =ista isi nama2 =asti isi nama3 =esti C:\jdk1.3.1\bin> Atau pilih tool kemudian pilih run, ketikan seperti editor di bawah ini

23

isi a =10 isi nama1 =bibi isi nama2 =bubu isi nama3 =baba Press any key to continue . . . 12 class satu { public static void main (String args[]) { String nama1 = args[0]; String nama2 = args[1]; String nama3; nama3=nama1+nama2; System.out.println(" isi nama1 =" + nama1); System.out.println(" isi nama2 =" + nama2); System.out.println(" isi nama3 =" + nama3); } } C:\jdk1.3.1\bin>java satu 10 20 isi nama1 =10 isi nama2 =20 isi nama3 =1020 C:\jdk1.3.1\bin> 13 class satu { public static void main (String args[]) { int nama1 = Integer.parseInt (args[0]); int nama2 = Integer.parseInt (args[1]); int nama3; nama3=nama1+nama2; System.out.println(" isi nama1 =" + nama1); System.out.println(" isi nama2 =" + nama2); System.out.println(" isi nama3 =" + nama3); } } C:\jdk1.3.1\bin>java satu 10 20 isi nama1 =10 isi nama2 =20 isi nama3 =30 C:\jdk1.3.1\bin>

24

CONTOH-CONTOH LAIN
class DemoOperator{ public static void main(String [] args){ // Mendeklarasikan variabel test dengan tipe boolean // dan menginisialisasinya dengan false. boolean test = false; // Membuat objek demo dari kelas DemoOperator. DemoOperator demo = new DemoOperator(); // Menggunakan operator instanceof untuk memeriksa // apakah demo merupakan instans dari kelas DemoOperator test = (demo instanceof DemoOperator); // Menggunakan operator [] untuk membuat array namaHari // dengan tipe String String[] namaHari = {"Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu", "Minggu"}; System.out.println("\nPROGRAM DEMO OPERATOR"); System.out.println("---------------------\n"); System.out.println("Apakah objek demo merupakan " + "instans dari DemoOperator ? : " + test); System.out.println("\nMencetak hari pertama" + "\t" + namaHari[0]); System.out.println("\nMencetak hari keempat" + "\t" + namaHari[3]); } }

public class DemoShortcutOperator{ public static void main(String [] args){ int a = 2, hasil; System.out.println("\nPROGRAM DEMO SHORTCUT OPERATOR"); System.out.println("------------------------------\n"); System.out.println("Nilai awal a = " + a); // ShortcutOperator a += 3; // Nilai a menjadi 2 + 3 = 5 System.out.println("\nShortcut Operator a += 3 " + "menghasilkan : " + a); a *= 3; // Nilai a menjadi 5 x 3 = 15 System.out.println("\nShortcut Operator a *= 3 " + "menghasilkan : " + a); // Postincremental System.out.println("\nNilai variabel a sebelum " + "PostIncremental = " + a); hasil = 3*(a++); // {nilai hasil = 3 x 15 = 45

System.out.println("Hasil PostIncremental 3*(a++) = " + hasil); System.out.println("Nilai variabel a setelah " + "PostIncremental = " + a);

25

// Preincremental System.out.println("\nNilai variabel a sebelum " + "PreIncremental = " + a); // a = 16 hasil = 3*(++a); // {nilai hasil = 3 x (16+1) = 51 System.out.println("Hasil PreIncremental 3*(++a) = " + hasil); System.out.println("Nilai variabel a setelah " + "PreIncremental = " + a); // a = 17 // Postdecremental System.out.println("\nNilai variabel a sebelum " + "Postdecremental = " + a); // a = 17 hasil = 3*(a--); // {nilai hasil = 3 x (17) = 48 System.out.println("Hasil Postdecremental 3*(a--) = " + hasil); System.out.println("Nilai variabel a setelah " + "PostDecremental = " + a); // a = 16 // Predecremental {nilai hasil = 3 x (414-1)} System.out.println("\nNilai variabel a sebelum " + "Predecremental = " + a); //a = 16 hasil = 3*(--a); //(nilai hasil = 3 x (16-1) = System.out.println("Hasil PostDecremental 3*(--a) = " + hasil); System.out.println("Nilai variabel a setelah " + "Predecremental = " + a); // a = 15 } } public class DemoCasting{ /**Main Method*/ public static void main(String [] args){ // Narrowing double nilaiDouble = 3000.56d; long m = (long)nilaiDouble; int j = (int)m; byte x = (byte)j; // Widening byte nilaiByte = -72; int i = (int)nilaiByte; long p = (long)i; double z = (double)p; System.out.println("\nPROGRAM CASTING TIPE DATA"); System.out.println("-------------------------\n"); System.out.println("NARROWING"); System.out.println("Nilai asli double" + "\t" + nilaiDouble); System.out.println("Proses Narrowing long" + "\t" + m); System.out.println("Proses Narrowing int" + "\t" + j); System.out.println("Proses Narrowing byte" + "\t" + x); System.out.println("\nWIDENING"); System.out.println("Nilai asli byte" + "\t" + nilaiByte); System.out.println("Proses Widening int" + "\t" + i); System.out.println("Proses Widening long" + "\t" + p); System.out.println("Proses Widening double" + "\t" + z); } }

26

MEMAHAMI PERINTAH KEPUTUSAN (IF )


Dalam pemrograman suatu keputusan sering digunakan, misal keputusan Anda dalam mengambil uang Anda lewat ATM, disana Anda tentunya di beri alternatif untuk mengambil dana sebesar pilihan yang sudah ada. Didalam program ATM, tentunya ada perintah keputusan yang akan dijalankan. Jika anda memilih Rp. 100000 ATM akan mengeluarkan uang sebanyak 100000 Jika anda memilih Rp. 200000 ATM akan mengeluarkan uang sebanyak 200000 Dan seterusnya Dalam JAVA perintah yang digunakan adalah IF If (kondisi) { Pernyataan_1 }

ya KONDISI tidak Tindakan 2 Tindakan 1

Dalam diagram arus digambarkan jika KONDISI benar , maka tindakan 1 akan dikerjakan kemudian baru mengerjakan tindakan 2, tetapi jika KONDISI salah yang dikerjakan hanya tindakan 2. Sebagai contoh program jika pembelian diatas 10000 mendapat korting 10 %, jika tidak kortingnya nol public class korting { public static void main(String[] args) { int belanja,bayar; belanja=11000; if (belanja>=10000) { System.out.println("Dapat korting 10 %"); } } } public class korting { public static void main(String[] args) { double belanja,bayar,diskon; bayar=11000; belanja=11000; diskon=0; if (belanja>=10000) { System.out.println("Dapat korting"); diskon=0.1; bayar=belanja - (belanja*diskon); } System.out.println("Bayar " + bayar); } }

27

IF ELSE

if (kondisi) Pernyataan1 else Pernyataan 2

Contoh : Untuk menentukan kelulusan seorang mahasiswa. Mahasiswa dinyatakan lulus bila hasil ujian di atas atau sama 55 sebaliknya di bawah 55 tidak lulus. Dengan diagram alir dapat digambarkan

KONDISI

Tindakan 1

Tindakan 2

Tindakan 3

Dari diagram arus dapat diterjemahkan Jika kondisi BENAR kerjakan TINDAKAN 1 kemudian kerjakan tindakan 3, tindakan 2 tidak dikerjakan Jika kondisi SALAH kerjakan tindakan 2 baru kemudian kerjakan tindakan 3, tindakan 1 tidak dikerjakan. import javax.swing.JOptionPane; public class ifelse { public static void main(String[] args) { String nilai; int nilai1; nilai =JOptionPane.showInputDialog("Nilai Anda "); nilai1=Integer.valueOf(nilai).intValue(); if (nilai1>=60) JOptionPane.showMessageDialog(null,"Hallo Anda Lulus"); else JOptionPane.showMessageDialog(null,"Hallo Anda gagal"); System.exit(0); } }

28

class Jabberwock { String color; String sex; boolean hungry; void feedJabberwock() { if (hungry == true) { System.out.println("Yum -- a peasant!"); hungry = false; } else System.out.println("No, thanks -- already ate."); } void showAttributes() { System.out.println("This is a " + sex + " " + color + " jabberwock."); if (hungry == true) System.out.println("The jabberwock is hungry."); else System.out.println("The jabberwock is full."); } public static void main (String arguments[]) { Jabberwock j = new Jabberwock(); j.color = "orange"; j.sex = "male"; j.hungry = true; System.out.println("Calling showAttributes ..."); j.showAttributes(); System.out.println("-----"); System.out.println("Feeding the jabberwock ..."); j.feedJabberwock(); System.out.println("-----"); System.out.println("Calling showAttributes ..."); j.showAttributes(); System.out.println("-----"); System.out.println("Feeding the jabberwock ..."); j.feedJabberwock(); } }

29

Switch - Case
Statement switch digunakan untuk mengeksekusi sebuah blok jika memenuhi sebuah kondisi tertentu . Syntax : Switch (variabelseleksi) { case nilai1; statement; statement; [break] case nilai2; statement; statement; .. [break] . [default:] statement; statement; [break] } Statement statemen akan dijalankan apabila variabel seleksi bernilai dari salah satu nilai1, nilai2 dan seterusnya atau nilai default. Setelah statement dijalankan apabila dijumpai statement break, maka contoh program akan keluar block seleksi switch case. Perlu dicermati bahwa statement break pada akhir statement dalam suatu kasusu nilai adalah penting. Apabila statement break ini tidak dicantumkan maka setelah deretan statement dijalankan untuk suatu nilai1 maka deretan statement setelah nilai2, nilai3 dan seterusnya sampai nilai defaultnya akan tetap dijalankan, hal ini terjadi karena concrol program tidak diarahkan keluar seleksi.

30

class angka { public static void main (String args[]) { int angka1=9; String hasil; switch (angka1) { case 0: { hasil="zero ";break;} case 1: { hasil="one ";break;} case 2: { hasil="two ";break;} case 3: { hasil="three ";break;} case 4: { hasil="four ";break;} case 5: { hasil="five ";break;} case 6: { hasil="six ";break;} case 7: { hasil="seven ";break;} case 8: { hasil="eight ";break;} case 9: { hasil="nine ";break;} default: { hasil=" ";break;} } System.out.println("Angka = " + hasil); } } Angka = nine class CheckString { public static void main(String arguments[]) { String str = "In my next life, I will believe in reincarnation"; System.out.println("The string is: " + str); System.out.println("Length of this string: " + str.length()); System.out.println("The character at position 7: " + str.charAt(7)); System.out.println("The substring from 24 to 31: " + str.substring(24, 31)); System.out.println("The index of the character x: " + str.indexOf('x')); System.out.println("The index of the beginning of the " + "substring \"will\": " + str.indexOf("will")); System.out.println("The string in upper case: " + str.toUpperCase()); } }

31

class EqualsTest { public static void main(String args[]) { String str1, str2; str1 = "Free the bound periodicals."; str2 = str1; System.out.println("String1: " + str1); System.out.println("String2: " + str2); System.out.println("Same object? " + (str1 == str2)); str2 = new String(str1); System.out.println("String1: " + str1); System.out.println("String2: " + str2); System.out.println("Same object? " + (str1 == str2)); System.out.println("Same value? " + str1.equals(str2)); } }

CONTOH-CONTOH APLIKAS /** * Title : Program Bilangan Prima */ public class BilanganPrima{ /**Main method*/ public static void main(String[] args) { int jumBilPrima; int counter = 1; // Counter penghitung jumlah bilangan Prima int bilangan = 2; // Bilangan yang akan diperiksa, apakah // merupakan bilangan prima atau bukan. // Variabel ini diinisialisasi dengan 2 // karena merupakan bilangan Perima pertama. // Selanjutnya bilangan ini akan diupdate // dengan bilangan berikutnya (3,4,5,..) boolean testPrima = true; // Kondisi yang akan menyatakan // suatu bilangan sebagai Prima // atau bukan. System.out.println("\nPROGRAM MENCARI N BILANGAN PRIMA " + "PERTAMA"); System.out.println("-----------------------------------" + "-----\n"); // Menginstruksikan user untuk memasukkan N // (jumlah bilangan prima) yang akan dicari. System.out.print("Masukkan jumlah bilangan prima : "); jumBilPrima = InputConsole.readInt(); System.out.println("\nMencari " + jumBilPrima + " Bilangan Prima Pertama : \n"); // Blok yang mengulang pemeriksaan bila bilangan // yang baru adalah bilangan Prima

32

while (counter <= jumBilPrima) { // Mengasumsikan suatu bilangan merupakan bilangan Prima testPrima = true; // Mengeset testPrima menjadi false, jika bilangan // tersebut ternyata bukan bilangan prima for (int pembagi = 2; pembagi <= bilangan/2; pembagi++) { if (bilangan % pembagi == 0) // Jika bernilai true, maka // bilangan bukan prima { testPrima = false; break; // Keluar dari blok perulangan for } } // Mencetak bilangan Prima dan menambahkan counter if (testPrima) { if (counter%10 == 0) { // Mencetak bilangan Prima System.out.println(bilangan); } else System.out.print(bilangan + " "); counter++; // Menambah satu ke counter } // Memeriksa apakah bilangan selanjutnya merupakan Prima bilangan++; } } } public class ComputeArea { /**Main method*/ public static void main(String[] args) { double radius; double area; // Prompt the user to enter radius System.out.print("Enter radius: "); radius = InputConsole.readDouble(); // Compute area area = radius*radius*3.14159; // Display results System.out.println("The area for the circle of radius " + radius + " is " + area); } } /** * Title : Program Demo Break * Deskripsi: Mengaplikasikan pemakaian break * untuk menghentikan perulangan. */ public class DemoBreak { /**Main method*/ public static void main(String[] args) {

33

int counter = 0; System.out.println("\nPROGRAM DEMO BREAK"); System.out.println("------------------\n"); while (counter < 100) { counter++; if (counter == 7) break; } System.out.println("Counter terakhir adalah : " + counter); } } /** * Title : Program Demo Continue * Deskripsi: Mendemonstrasikan pemakaian continue * untuk menghentikan sementara proses * perulangan. */ public class DemoContinue { /**Main Method*/ public static void main( String args[] ) { int counterDiabaikan = 0; System.out.println("\nPROGRAM DEMO CONTINUE"); System.out.println("---------------------\n"); for ( int counter = 1; counter <= 5; counter++ ) { if ( counter == 3 ) { counterDiabaikan = counter; continue; // Menghentikan sisa perulangan } // jika counter == 3 else System.out.println("Mencetak counter ke-" + counter); } System.out.println( "\nPerulangan telah dihentikan " + "oleh 'continue' pada counter ke : " + counterDiabaikan); } } /** * Title : Program Demo Do..While * Deskripsi: Mendemonstrasikan pemakaian perulangan * do..while untuk mencetak statement ke */ public class DemoDoWhile { /**Main Method*/ public static void main(String[] args) { int counter = 0; // Inisialisasi counter System.out.println("\nPROGRAM DEMO DO..WHILE"); System.out.println("----------------------\n"); do { // Kondisi perulangan System.out.println( "Mencetak counter ke-" + counter );

34

++counter; // Menaikkan counter dengan 1 } while ( counter <= 0 ); } } public class DemoFor { /**Main Method*/ public static void main(String[] args) { System.out.println("\nPROGRAM DEMO FOR"); System.out.println("----------------\n"); for ( int counter=0; counter<=5; counter++ ) System.out.println( "Mencetak counter ke-" + counter ); } } /** * Title : Program Test Penyeleksian Kondisi If * Deskripsi: Menggunakan if untuk menyeleksi nilai ujian. * @versi : 1.0 */ public class DemoIf{ /**Main Method*/ public static void main(String [] args){ double nilaiInput; System.out.println("\nPROGRAM DEMO IF"); System.out.println("---------------\n"); // Menginstruksikan user untuk menginputkan nilai System.out.print("Masukkan Nilai [0 - 100]: "); nilaiInput = InputConsole.readDouble(); // Menyeleksi kondisi dan mencetak hasil ke console if (nilaiInput >= 60) System.out.println("\nSelamat, anda lulus mata kuliah ini."); } } /** * Title : Program Demo if else * Deskripsi: Menggunakan if else untuk menyeleksi nilai ujian dan menentukan grade kelulusannya. * @versi : 1.0 */ class DemoIfElse{ public static void main(String [] args){ double nilaiInput; System.out.println("\nPROGRAM DEMO IF ELSE"); System.out.println("--------------------\n"); // Menginstruksikan user untuk menginputkan nilai. // Untuk memasukkan data dari keyboard, digunakan // kelas bantuan InputConsole.java. Pembahasan yang // mendalam tentang ini dapat anda baca di bab 14. System.out.print("Masukkan Nilai [0 - 100]: "); nilaiInput = InputConsole.readDouble(); // Menyeleksi range 0 -100 if ((nilaiInput < 0) | (nilaiInput > 100)){ System.out.println("Data input invalid !");

35

} // Kalau input valid, lakukan instruksi berikut else { // Menyeleksi kondisi if (nilaiInput >= 60){ System.out.println("\nSelamat, anda lulus mata " + "kuliah ini."); if (nilaiInput >= 85) System.out.println("\nNilai anda : A"); else if (nilaiInput >= 70) System.out.println("\nNilai anda : B"); else if (nilaiInput >= 60) System.out.println("\nNilai anda : C"); } else { System.out.println("\nMaaf, anda harus mengulang " + "mata kuliah ini kembali, atau " + "mengikuti ujian perbaikan dengan " + "nilai maksimum C); } } } } /** * Title : Program Demo Switch Case * Deskripsi: Mengaplikasikan pemakaian switch.. case * untuk membuat pilihan * @versi : 1.0 */ public class DemoSwitchCase { /**Main Method*/ public static void main(String[] args){ int pilihan; // Ubahlah nilai ini untuk menguji // pilihan yang lain

System.out.println("\nPROGRAM DEMO SWITCH CASE"); System.out.println("------------------------\n"); // Menginstruksikan user untuk memasukkan pilihan System.out.print("Masukkan pilihan anda [1-3] : "); pilihan = InputConsole.readInt(); switch( pilihan ) { case 1: System.out.println("\nAnda memilih Tom Cruise."); break; case 2: System.out.println("\nAnda memilih Jacky Chan."); break; case 3: System.out.println("\nAnda memilih Van Damme."); break; default: System.out.println("\nHanya pilihan [1-3] yang " + "diperbolehkan." ); } // akhir switch } // akhir main method } // akhir class SwitchTest /**

36

* Title : Program Demo While * Deskripsi: Mendemonstrasikan pemakaian perulangan while * untuk mencetak statement ke console sebanyak * n kali. * @versi : 1.0 */ public class DemoWhile { /**Main Method*/ public static void main(String[] args) { int counter = 0; // Inisialisasi counter System.out.println("\nPROGRAM DEMO WHILE"); System.out.println("------------------\n"); while ( counter <= 5 ) { // Kondisi perulangan System.out.println( "Mencetak counter ke-" + counter ); ++counter; // Menaikkan counter dengan 1 } } } /** * Title : Program Test Penyeleksian Kondisi If else * Deskripsi: Menggunakan if else untuk menyeleksi nilai ujian dan menentukan grade kelulusannya. * @versi : 1.0 */ class TestIfGrade{ public static void main(String [] args){ double nilaiInput; //Menginstruksikan user untuk menginputkan nilai System.out.print("Masukkan Nilai [0 - 100]: "); nilaiInput = InputConsole.readDouble(); //Menyeleksi range 0 -100 if ((nilaiInput < 0) | (nilaiInput > 100)){ System.out.println("Data input invalid !"); } //Kalau input valid, lakukan instruksi berikut else { //Menyeleksi kondisi if (nilaiInput >= 60){ System.out.println("Selamat, anda lulus mata kuliah ini."); if (nilaiInput >= 85) System.out.println("Nilai anda : A"); else if (nilaiInput >= 70) System.out.println("Nilai anda : B"); else if (nilaiInput >= 60) System.out.println("Nilai anda : C"); } else { System.out.println("Maaf anda harus mengulang kembali."); } } } }

37

MEMAHAMI CLASS dan OBYEK


Class adalah template untuk obyek-obyek yang memiliki sifat yang sama. Dalam program OOP, sebuah obyek bisa didefinisikan setelah suatu class ada terlebih dahulu. Sebagai ilustrasi kita bisa menyebut YAMAHA, HONDA, SUZUKI adalah sebagai alat transportasi. Merk-merk tersebut sering disebut dengan MOTOR. MOTOR inilah nanti yang di OOP sering disebut dengan suatu class, sedangkan YAMAHA, HONDA, SUZUKI sering disebut dengan obyek. Sebuah class akan mendefinisikan secara keseluruhan dari ciri class tersebut. Sebuah MOTOR pasti mempunyai ciri ,antara lain Warna Tahun produksi Cc Proses menghidupkan mesin Proses mematikan mesin Ciri tersebut dalam pemrograman berorientasi obyek sering disebut dengan Setiap suatu produk MOTOR dapat dipastikan/ mempunyai kemungkinan mempunyai ciri tersebut diatas. Contoh lain Class pohon : mempunyai ciri Mempunyai daun Mempunyai akar Mempunyai batang Proses fotosintesis Proses penyerapan air Kemudian ada MAWAR, MELATI, JERUK dan lain-lain inilah yang nanti disebut dengan OBYEK. Bentuk Umum Suatu class diciptakan dengan kata kunci CLASS NAMA_CLASS {

38

Suatu class tanpa obyek, tidaklah dapat dilihat isi dari class tersebut. Jadi .. suatu class hanya dapat dilihat lewat suatu obyek Bentuk umum menciptakan obyek NAMA_CLASS NAMA_OBYEK = NEW NAMA_CLASS() Penciptaan obyek ini harus dilakukan di program utama CIRI SUATU CLASS

class obje ct Class Orang name Suatu class biasanya terdiri dari ATRRIBUT dan METODE NoKTP nama alamat duduk() makan() ... attribu ts Tom:Orang Harto:Orang

operasi

NoKTP = 123... nama= Tom alamat=Yogya

NoKTP = 122... nama = Harto alamat =Yogya

CONTOH _CONTOH 1 class hitung ISI { double x =9; double y=4; double z; } public class satu { public static void main (String args[]) { } }

SUATU CLASS

39

2 class hitung { double x =9; double y=4; double z; void hitung1() { z=x/y; System.out.println("Hasil z = " +z); } } public class satu { public static void main (String args[]) { } } 3 class hitung { double x; double y; double z; void rumus() { x=9;y=2; z=x/y; System.out.println("Hasil z = " +z); } } public class satu { public static void main (String args[]) { //ciptakan obyek hitung cari=new hitung(); cari.rumus(); } } 4 class hitung { double x; double y; double z; void rumus() { x=9;y=2; z=x/y; System.out.println("Hasil z = " +z); } } public class satu { public static void main (String args[]) { //ciptakan obyek hitung cari=new hitung(); cari.rumus(); hitung carilagi=new hitung(); carilagi.rumus(); } }

MENCIPTAKAN OBYEK

40

5 import javax.swing.JOptionPane; class hitung { String input; int x; int y; int z; void isi_data() { input=JOptionPane.showInputDialog("Nilai x = "); x=Integer.parseInt(input); input=JOptionPane.showInputDialog("Nilai y = "); y=Integer.parseInt(input); } void rumus() { z=x*y; System.out.println("Hasil z = " +z); } }

public class satu { public static void main (String args[]) { //ciptakan obyek hitung cari=new hitung(); cari.isi_data(); cari.rumus(); } }

41

6 import javax.swing.JOptionPane; class hitung { String input; int x; int y; int z; String hasil; void isi_data() { input=JOptionPane.showInputDialog("Nilai x = "); x=Integer.parseInt(input); input=JOptionPane.showInputDialog("Nilai y = "); y=Integer.parseInt(input); } void rumus() { z=x*y; hasil=Integer.toString(z); JOptionPane.showMessageDialog(null,hasil); } } public class satu { public static void main (String args[]) { //ciptakan obyek hitung cari=new hitung(); cari.isi_data(); cari.rumus(); } }

42

public class AksesDalamScope { public static void main(String[] args){ System.out.println("\nDEMO AKSES VARIABEL dari DALAM SCOPE"); System.out.println("------------------------------------\n"); // Mendeklarasikan argumen untuk kedua method int bilangan1 = 3, bilangan2 = 5, hasilJumlah; hasilJumlah = bilangan1 + bilangan2; System.out.println("Hasil Penjumlahan " + bilangan1 + " + " + bilangan2 + " = " + hasilJumlah); } } /** * Title : Akses Variabel * Deskripsi : Mendemonstrasikan cara mengakses variabel * di dalam suatu scope. */ public class AksesLuarScope { /**Main method*/ public static void main(String[] args){ System.out.println("\nDEMO AKSES VARIABEL dari LUAR SCOPE"); System.out.println("-----------------------------------\n"); // Mendeklarasikan argumen untuk kedua method int bilangan1 = 3, bilangan2 = 5; // Membuat objek AksesLuarScope aLS = new AksesLuarScope(); // Mengakses method jumlah aLS.jumlah(bilangan1, bilangan2); } // Mendeklarasikan dan mendefinisikan method penjumlahan public void jumlah (int x, int y){ int jumlah2Bilangan = x + y; System.out.println("Hasil Penjumlahan " + x + " + " + y+"="+ jumlah2Bilangan); } }

public class MamaliaDarat{ public static void main(String[] args){ // Mendeklarasikan dan menginisialisasi data String suaraHewan = ""; System.out.println("\nDEMO KELAS, METHOD DAN DATA"); System.out.println("---------------------------\n"); Kucing pussy = new Kucing(); suaraHewan = pussy.mengeong(); System.out.println("Pussy : " + suaraHewan);

43

Anjing doggy = new Anjing(); suaraHewan = doggy.menggonggong(); System.out.println("Doggy : " + suaraHewan); Macan siKumbang = new Macan(); suaraHewan = siKumbang.mengaum(); System.out.println("Si Kumbang : " + suaraHewan); } }

class Kucing { // Method yang mengembalikan suara kucing public String mengeong() { String suara = new String("Meoong..."); return suara; } } class Anjing{ // Method yang mengembalikan suara anjing public String menggonggong() { String suara = new String("Guk..Guk..."); return suara; } } class Macan { // Method yang mengembalikan suara macan public String mengaum() { String suara = new String("Auummm..."); return suara; } }

class Temperatur{ // Mendeklarasikan variabel kelas int hasil; double celcius, fahrenheit; // Mendeklarasikan konstanta kelas final double KONST_FAHR = 32.0; // Method konversi dari Celcius ke Fahrenheit public double toFahrenheit(double suhuCelcius){ fahrenheit = KONST_FAHR + (9.0/5.0) * suhuCelcius; return fahrenheit; } // Method konversi dari Fahrenheit ke Celcius public double toCelcius(double suhuFahrenheit){ celcius = (suhuFahrenheit - KONST_FAHR) * (5.0/9.0); return celcius; } }

public class DemoKonversiSuhu{ /**Main Method*/ public static void main(String [] args){

44

// Mendeklarasikan data double suhuCelcius, suhuFahrenheit, hasilCelcius, hasilFahrenheit; suhuCelcius = 37.0; suhuFahrenheit = 145.0; // Membuat objek "temp" dari kelas Temperatur Temperatur temp = new Temperatur(); // Mengkonversi suhu hasilFahrenheit = temp.toFahrenheit(suhuCelcius); hasilCelcius = temp.toCelcius(suhuFahrenheit); // Mencetak hasil di console System.out.println("\nPROGRAM DEMO KONVERSI SUHU"); System.out.println("--------------------------\n"); System.out.println("Suhu Celcius = " + suhuCelcius + " derajat."); System.out.println("\nKonversi ke Fahrenheit = " + hasilFahrenheit + " derajat."); System.out.println("\nSuhu Fahrenheit = " + suhuFahrenheit + " derajat."); System.out.println("\nKonversi ke Celcius = " + hasilCelcius + " derajat."); } } class Matematika{ // Mendeklarasikan variabel kelas private double hasil; // Method penjumlahan public double jumlah(double a, double b){ hasil = a + b; return hasil; } // Method pengurangan public double kurang(double a, double b){ hasil = a - b; return hasil; } // Method perkalian public double kali(double a, double b){ hasil = a * b; return hasil; } // Method pembagian public double bagi(double a, double b){ hasil = a / b; return hasil; } }

public class DemoMatematika{ /**Main Method*/ public static void main(String [] args){

45

// Mendeklarasikan data double a = 100.0; double b = 3.0; double hasilJumlah, hasilKurang, hasilKali, hasilBagi; // Membuat objek "hitung" dari kelas Matematika Matematika hitung = new Matematika(); hasilJumlah = hitung.jumlah( a, b ); hasilKurang = hitung.kurang( a, b ); hasilKali = hitung.kali( a, b ); hasilBagi = hitung.bagi( a, b ); // Mencetak hasil di console System.out.println("\nPROGRAM DEMO OPERASI MATEMATIKA"); System.out.println("-------------------------------\n"); System.out.println("Penjumlahan " + a + " + " + b + " = " + hasilJumlah); System.out.println("\nPengurangan " + a + " - " + b + " = " + hasilKurang); System.out.println("\nPerkalian " + a + " x " + b + " = " + hasilKali); System.out.println("\nPembagian " + a + " / " + b + " = " + hasilBagi); } }

46

MEMAHAMI KEPUTUSAN
import java.io.*; class putus { public static void main(String args[]) { int a; int b; DataInputStream dis = new DataInputStream (System.in); try { System.out.print("masukan data a "); String input = dis.readLine(); a=Integer.parseInt(input); System.out.print("masukan data b "); input = dis.readLine(); b=Integer.parseInt(input); if (a>b) { System.out.println(" A lebih besar"); } else { System.out.println(" B lebih besar"); } } catch (Exception e) { System.out.println("salah "); } }} masukan data a 45 masukan data b 67 B lebih besar Press any key to continue . . .

BAGAIMANA KALAU DI BUAT BERBASIS OBYEK


import javax.swing.JOptionPane; class keputusan { int a; int b; String input; void input_data() { input=JOptionPane.showInputDialog("Nilai x = "); a=Integer.parseInt(input); input=JOptionPane.showInputDialog("Nilai y = "); b=Integer.parseInt(input); } void hasil() { if (a>b) { JOptionPane.showMessageDialog(null,"Nilai A lebih besar"); } else { JOptionPane.showMessageDialog(null,"Nilai B lebih besar"); }} class putus { public static void main(String args[]) { keputusan coba = new keputusan(); coba.input_data(); coba.hasil(); }}

47

import java.io.*; class keputusan { int a; int b; String input; void input_data() { DataInputStream dis = new DataInputStream (System.in); try { System.out.print("masukan data a "); String input = dis.readLine(); a=Integer.parseInt(input); System.out.print("masukan data b "); input = dis.readLine(); b=Integer.parseInt(input); } catch (Exception e) { System.out.println("salah "); } } void hasil() { if (a>b) { System.out.println(" A lebih besar"); } else { System.out.println(" B lebih besar"); } } } class putus { public static void main(String args[]) { } }

48

import java.io.*; class keputusan { int a; int b; String input; void input_data() { DataInputStream dis = new DataInputStream (System.in); try { System.out.print("masukan data a "); String input = dis.readLine(); a=Integer.parseInt(input); System.out.print("masukan data b "); input = dis.readLine(); b=Integer.parseInt(input); } catch (Exception e) { System.out.println("salah "); } } void hasil() { if (a>b) { System.out.println(" A lebih besar"); } else { System.out.println(" B lebih besar"); } } } class putus { public static void main(String args[]) { keputusan coba = new keputusan(); coba.input_data(); coba.hasil(); } } masukan data a 45 masukan data b 23 A lebih besar Press any key to continue . . .

49

MEMAHAMI OBYEK BERPARAMETER


1 class satu { int a; int b; void isi() { a=100; b=200; } void hasil() { System.out.println("isi a " +a); System.out.println("isi b " +b); } } class contoh1 { public static void main(String arg[]) { satu ista=new satu(); ista.isi(); ista.hasil(); satu ista1=new satu(); ista1.isi(); ista1.hasil(); satu ista2=new satu(); ista2.isi(); ista2.hasil(); }} isi a 100 isi b 200 isi a 100 isi b 200 isi a 100 isi b 200 Press any key to continue . . . BAGAIMANA JIKA DIINGINKAN NILAI OBYEK BERBEDA-BEDA ??? 2 class satu { int a; int b; void isi(int aa, int bb) { a=aa; b=bb; } void hasil() { System.out.println("isi a " +a); System.out.println("isi b " +b); } } class contoh1 { public static void main(String arg[]) { satu ista=new satu(); ista.isi(1,2); ista.hasil(); satu ista1=new satu(); ista1.isi(3,4); ista1.hasil(); satu ista2=new satu(); ista2.isi(5,6); ista2.hasil(); } }

isi a 1 isi b 2 isi a 3 isi b 4 isi a 5 isi b 6 Press any key to continue . . .

50

MEMAHAMI LINGKUP VARIABEL (THIS)


1 class satu { int a=100; int b; void metode() { int a=10; } void hasil() { System.out.println("isi a " +a); } } class contoh { public static void main(String arg[]) { satu ista=new satu(); ista.metode(); ista.hasil(); } } isi a 100 Press any key to continue . . . 2 class satu { int a=100; int b; void metode() { int a=10; System.out.println("isi a " +a); } void hasil() { System.out.println("isi a " +a); }} class contoh { public static void main(String arg[]) { satu ista=new satu(); ista.metode(); ista.hasil(); }} isi a 10 isi a 100 Press any key to continue . . . 3 class satu { int a=100; int b; void metode() { int a=10; System.out.println("isi a " +this.a); } void hasil() { System.out.println("isi a " +a); } } class contoh { public static void main(String arg[]) { satu ista=new satu(); ista.metode(); ista.hasil(); } } isi a 100 isi a 100

51

Press any key to continue . . . 4 class satu { int a=100; atribut int b; void metode() { int a=10; variabel this.a=1000; System.out.println("isi a " +this.a); } void hasil() { System.out.println("isi a " +a); } } class contoh {public static void main(String arg[]) { satu ista=new satu(); ista.metode(); ista.hasil(); }} isi a 1000 isi a 1000

MEMAHAMI PENENTU AKSES PRIVATE dan PUBLIC


1 class satu { int a; int b; } class contoh1 { public static void main(String arg[]) { satu ista=new satu(); ista.a=100; ista.b=200; System.out.println("Nilai a = " +ista.a); System.out.println("Nilai b = " +ista.b); } } Nilai a = 100 Nilai b = 200 Press any key to continue . . . Penjelasan Atribut a dan b belum didefinisikan hak aksesnya, sehingga atribut a dan b dapat dijalankan/diakses di class utama 2 class satu { private int a; int b; } class contoh1 { public static void main(String arg[]) { satu ista=new satu(); ista.a=100; ista.b=200; System.out.println("Nilai a = " +ista.a); System.out.println("Nilai b = " +ista.b);

52

} } C:\My Documents\contoh1.java:11: a has private access in satu ista.a=100; ^ C:\My Documents\contoh1.java:13: a has private access in satu System.out.println("Nilai a = " +ista.a); ^ 2 errors Tool completed with exit code 1 Atribut a diberi hak akses private : artinya atribut a hanya dapat diakses dalam class contoh1 saja, tidak bisa diakses diluar class contoh1 Dalam class utama terdapat pengaksesan terhadap atribut a, akan muncul kesalahan ??? kenapa

3 class satu { public int a; int b; } class contoh1 { public static void main(String arg[]) { satu ista=new satu(); ista.a=100; ista.b=200; System.out.println("Nilai a = " +ista.a); System.out.println("Nilai b = " +ista.b); } } Nilai a = 100 Nilai b = 200 Press any key to continue . . atribut a diberi hak akses public dalam class utama diijinkan untuk mengakses atribut a 4 class satu { private int a; private int b; void isi() { a=100; b=1000; } void cetak() { System.out.printl("Isi a = "+a); System.out.printl("Isi b = "+b); } } class contoh1 { public static void main(String arg[]) { satu ista=new satu(); ista.a=100; ista.b=200; System.out.println("Nilai a = " +ista.a); System.out.println("Nilai b = " +ista.b); } }

C:\My Documents\contoh1.java:13: cannot resolve symbol symbol : method printl (java.lang.String)

53

location: class java.io.PrintStream System.out.printl("Isi a = "+a); ^ C:\My Documents\contoh1.java:14: cannot resolve symbol symbol : method printl (java.lang.String) location: class java.io.PrintStream System.out.printl("Isi b = "+b); ^ C:\My Documents\contoh1.java:24: a has private access in satu ista.a=100; ^ C:\My Documents\contoh1.java:25: b has private access in satu ista.b=200; ^ C:\My Documents\contoh1.java:26: a has private access in satu System.out.println("Nilai a = " +ista.a); ^ C:\My Documents\contoh1.java:27: b has private access in satu System.out.println("Nilai b = " +ista.b); ^ 6 errors Tool completed with exit code 1 KENAPA ??? 5 class satu { private int a; private int b; void isi() { a=100; b=1000; } void cetak() { System.out.println("Isi a = "+a); System.out.println("Isi b = "+b); } } class contoh1 { public static void main(String arg[]) { satu ista=new satu(); ista.isi(); ista.cetak(); } } Isi a = 100 Isi b = 1000 Press any key to continue . . .

54

MEMAHAMI KONSTRUKTOR
1 class satu { private int a; private int b; satu() { System.out.println("Konstruktor di jalankan...."); } } class konst { public static void main(String arg[]) { satu ista=new satu(); } } 2 class satu { private int a; private int b; satu() { System.out.println("Konstruktor di jalankan...."); } class konst { public static void main(String arg[]) { satu ista=new satu(); satu ista1=new satu(); satu ista2=new satu(); } } 3 class satu { private int a;` private int b;

satu(int aa,int bb)


{ System.out.println("Konstruktor di jalankan...."); System.out.println("Nilai a = " + a + "Nilai b = " +b); } } class konst { public static void main(String arg[]) { satu ista=new satu(1,2); satu ista1=new satu(2,3); satu ista2=new satu(3,4); }} Konstruktor di jalankan.... Nilai a = 0Nilai b = 0 Konstruktor di jalankan.... Nilai a = 0Nilai b = 0 Konstruktor di jalankan.... Nilai a = 0Nilai b = 0 Press any key to continue . . .

55

4 class satu { private int a; private int b; satu(int aa,int bb) { a=aa; b=bb; System.out.println("Konstruktor di jalankan...."); System.out.println("Nilai a = " + a + "Nilai b = " +b); } } class konst { public static void main(String arg[]) { satu ista=new satu(1,2); satu ista1=new satu(2,3); satu ista2=new satu(3,4); }} Konstruktor di jalankan.... Nilai a = 1Nilai b = 2 Konstruktor di jalankan.... Nilai a = 2Nilai b = 3 Konstruktor di jalankan.... Nilai a = 3Nilai b = 4 Press any key to continue . . . 5 class satu { private int a; private int b; satu(int aa,int bb) { int a=aa; int b=bb; System.out.println("Konstruktor di jalankan...."); System.out.println("Nilai a = " + a + "Nilai b = " +b); } } class konst { public static void main(String arg[]) { satu ista=new satu(1,2); satu ista1=new satu(2,3); satu ista2=new satu(3,4); }}

56

MEMAHAMI OVERLOADING
1 class satu { private int a; private int b;

satu( ) { a=aa; b=bb; System.out.println("Konstruktor di jalankan...."); System.out.println("Nilai a = " + a + "Nilai b = " +b); } satu() { System.out.println("Konstruktor di jalankan...."); } } class konst { public static void main(String arg[]) { satu ista=new satu(1,2); satu ista2=new satu(); }} 2 class satu { private int a; private int b; satu(int aa,int bb) { a=aa; b=bb; System.out.println("Konstruktor di jalankan...."); System.out.println("Nilai a = " + a + "Nilai b = " +b); } satu() { System.out.println("Konstruktor di jalankan...."); } satu(int aa) { a=aa; System.out.println("Konstruktor di jalankan...."); System.out.println("Nilai a = " + a + "Nilai b = " +b); } } class konst {public static void main(String arg[]) { satu ista=new satu(1,2); satu ista1=new satu(2); satu ista2=new satu(); }}

int aa,int bb

Nama sama Ada yang membedakan Satu yang pertama : meminta 2 parameter Satu yang kedua tidak memeinta parameter

57

MEMAHAMI PACKAGE
Suatu class yang dapat dipakai oleh program lain 1. Buat suatu class tanpa ada class utama 2. diatas class harus ada nama paket 3. simpan dalam direktori info //simpan di direktori info package info; public class satu { void satu1() { System.out.println("di class satu"); } } --//simpan di direktori info package info; public class dua dapat diakses di luar class { public void dua1() { System.out.println("di class dua"); } } --//simpan didirektori selain info import info.dua; class empat { public static void main(String[] args) { dua a=new dua(); a.dua1(); } } --Program empat.java bila di run sukses --

//simpan di direktori info package info; public class satu { void satu1() tanpa memakai hak akses, artinya tidak boleh diakses diluar package { System.out.println("di class satu"); 58

} } --//simpan didirektori selain info import info.satu; class empat { public static void main(String[] args) { satu a=new satu(); a.satu1(); } } error , kenapa 1. Perhatikan metode satu1, tanpa hak akses 2. coba tambah public void satu1(), jalankan, kenapa

Sekarang buat 3 program dan simpan didirektori yang sama misal direktori info public class lima { public void lima1() { System.out.println("di class lima"); } } --public class enam { void enam1() { System.out.println("di class enam"); } } --public class tujuh { public static void main(String[] args) { enam bb=new enam(); bb.enam1(); } } --Run program tujuh.java Perhatikan metode enam1 di class enam --> tanpa memakai metode akses

59

MEMAHAMI PEWARISAN
Pewarisan merupakan teknik yang menyatakan bahwa anak dari obyek akan mewarisi data/atribut dan metode dari induknya. Dalam membuat program pewarisan harus diperhatikan class induk class anak Contoh class bapak { private int a; private int b; void minum() { System.out.println("ada diclass bapak...."); } } class utama { public static void main(String arg[]) { bapak satu=new bapak(); satu.minum(); }} Penjelasan : o Program diatas belum ada pewarisan o Dalam class induk diciptakan 1 obyek yang bernama satu class bapak { private int a; private int b; void minum() { System.out.println("ada diclass bapak...."); } } class anak { private int a; private int b; void makan() { System.out.println("ada diclass anak...."); } } class utama { public static void main(String arg[]) { bapak satu=new bapak(); anak dua=new anak(); satu.minum(); dua.makan(); }} Program diatas terdapat : o dua class, yaitu class bapak dan class anak o Diclass utama diciptakan 2 pbyek Obyek satu menunjuk ke class bapak Obyek dua menunjuk ke class anak o Obyek satu menjalankan metode minum yang ada di class bapak o Obyek dua menjalankan metode makan yang ada di class anak

60

Pertanyaan : Dapatkan obyek dua mengakses metode minum yang ada di class bapak ??? Misal di class induk ditambah : class utama { public static void main(String arg[]) { bapak satu=new bapak(); anak dua=new anak(); satu.minum(); dua.makan(); dua.minum(); }} Run, hasilnya C:\Documents and Settings\user\My Documents\utama.java:27: cannot find symbol symbol : method minum() location: class anak dua.minum(); ^ 1 error Tool completed with exit code 1 Ternyata dua.minum tidak diperkenankan untuk mengakses !!!! APA YANG HARUS DILAKUKAN JIKA DIINGINKAN OBYEK DUA DAPAT MENGAKSES METODE YANG ADA DI CLASS BAPAK ??? GUNAKANLAH PEWARISAN

class bapak { private int a; private int b; void minum() { System.out.println("ada diclass bapak...."); } } class anak extends bapak { private int a; private int b; void makan() { System.out.println("ada diclass anak...."); } } class utama { public static void main(String arg[]) { bapak satu=new bapak(); anak dua=new anak(); satu.minum(); dua.makan(); dua.minum(); }}

61

Program diatas ditambah instruksi extends bapak, artinya program diatas penerapkan konsep pewarisan. Dengan penambahan instruksi extends berarti : class bapak didefinisikan sebagai class induk (base class) class anak didefinisikan sebagai class anak (derived class) Instruksi dua.minum(); artinya obyek dua yang menunjuk ke class anak mengakses metode minum yang ada di class bapak. Pengaksesan ini diijinkan karena class anak mendapatkan pewarisan dari class bapak. Hasil run :

IMPLEMENTASI LAIN DARI PEWARISAN DAPAT DILAKUKAN DENGAN PEMISAHKAN CLASS INDUK DAN CLASS ANAK DENGAN FILE YANG DISIMPAN TERSENDIRI // Berkas: Alpha.java class Alpha { private int a = 5; public void info() { System.out.println("a = " + a); System.out.println("Dipanggil pada BAPAK"); } } Ciptakan file Alpha.java, file ini sebagai class induk Program diatas dicompile, jangan di run

// Berkas: Bravo.java class Bravo extends Alpha { private int b = 7; public static void main(String[] args) { Bravo obj = new Bravo(); obj.info(); } } Program diatas merupakan class yang mendapatkan pewarisan dari class Alpha ==> class Bravo extends Alpha Class Bravo menjadi class anak Dalam class Bravo terdapat instruksi Bravo obj = new Bravo(); obj.info();

Artinya : Terdapat obyek obj yang menunjuk ke class Bravo Obyek oby mengakses metode info ==> metode info tidak terdapat dalam class Bravo, tetapi terdapat dalam class Alpha

62

Pemakaian metode info yang berada di luar class diijinkan karena ada pendefinisian pewarisan

RUN HASILNYA :

Apa yang terjadi jika instruksi class Bravo extends Alpha diganti menjadi class Bravo RUN Terdapat kesalaha ??? kenapa ??? I:\bahan_kuliah\data_data_dari_berbagai_CD\java_ak\contoh\bab11\Bravo.java:8: cannot find symbol symbol : method info() location: class Bravo obj.info(); ^ 1 error Tool completed with exit code 1 CATATAN : Dua class diatas disimpan dalam folder yang sama. !!!

63

1 class satu { private int a; private int b; void minum() { System.out.println("Pesan air minum...."); } } class waris { public static void main(String arg[]) { satu ista=new satu(); ista.minum(); }} 2 class satu { private int a; private int b; void makan() { System.out.println("Pesan makan ...."); } } class anak { public static void main(String arg[]) { satu ista1=new satu(); ista1.makan(); }} 3 class satu { private int a; private int b; void makan() { System.out.println("Pesan makan ...."); } } class anak { public static void main(String arg[]) { satu ista1=new satu(); ista1.makan(); ista1.minum(); }} C:\My Documents\anak.java:16: cannot resolve symbol symbol : method minum () location: class satu ista1.minum(); ^ 1 error Tool completed with exit code 1 4 class makan { private int a; private int b; void makan() { System.out.println("Pesan makan ...."); } }

64

class minum { private int a; private int b; void minum () { System.out.println("Pesan minum...."); } } public class warisan { public static void main(String arg[]) { makan ista1=new makan(); ista1.makan(); ista1.minum(); }} C:\My Documents\warisan.java:20: cannot resolve symbol symbol : method minum () location: class makan ista1.minum(); ^ 1 error Tool completed with exit code 1 5 class makan { private int a; private int b; void makan() { System.out.println("Pesan makan ...."); } } class minum extends makan { private int a; private int b; void minum () { System.out.println("Pesan minum...."); } } public class warisan { public static void main(String arg[]) { makan ista1=new makan(); ista1.makan(); ista1.minum(); }}

6 class makan { private int a; private int b; void makan() { System.out.println("Pesan makan ...."); } } class minum extends makan { private int a; private int b; void minum() { System.out.println("Pesan minum...."); } }

65

public class warisan { public static void main(String arg[]) { minum ista1=new minum(); ista1.makan(); ista1.minum(); }} Pesan makan .... Pesan minum.... Press any key to continue . . . 7 class makan { private int a; private int b; void makan() { System.out.println("Pesan makan ...."); } } class minum extends makan { private int a; private int b; void minum() { System.out.println("Pesan minum...."); } } public class warisan { public static void main(String arg[]) { minum ista1=new minum(); makan ista2=new makan(); ista1.makan(); ista1.minum(); ista2.makan(); }} Pesan makan .... Pesan minum.... Pesan makan .... Press any key to continue . . .

66

MEMAHAMI PROTECTED
1 class makan { private int a; private int b; private void makan() { System.out.println("Pesan makan ...."); } } class minum extends makan { private int a; private int b; void minum() { System.out.println("Pesan minum...."); } } public class warisan { public static void main(String arg[]) { minum ista1=new minum(); makan ista2=new makan(); ista1.makan(); ista1.minum(); ista2.makan(); } } C:\My Documents\warisan.java:21: makan() has private access in makan ista1.makan(); ^ C:\My Documents\warisan.java:23: makan() has private access in makan ista2.makan(); ^ 2 errors Tool completed with exit code 1

2 class makan { private int a; private int b; protected void makan() { System.out.println("Pesan makan ...."); }} class minum { private int a; private int b; void minum() { System.out.println("Pesan minum...."); } } public class warisan{ public static void main(String arg[]) { minum ista1=new minum(); makan ista2=new makan(); ista1.minum(); ista2.makan(); }}

67

3 class makan { private int a; private int b; protected void makan() { System.out.println("Pesan makan ...."); } } class minum extends makan { private int a; private int b; void minum() { System.out.println("Pesan minum...."); } } public class warisan { public static void main(String arg[]) { minum ista1=new minum(); makan ista2=new makan(); ista1.makan(); ista1.minum(); ista2.makan(); }}

68

AWT (ABSTRACT WINDOW TOOLKIT) dan APPLET


Abstract Window Toolkit adalah seperangkat package yang didefinisikan oleh Java untuk pemrograman Java model visual MEMBUAT TEXT import java.awt.*; public class Slacker extends java.applet.Applet { String note = "I am extremely tired and would prefer not " + "to be clicked. Please interact somewhere else."; Button tired = new Button(note); public void init() { add(tired); } } compile kemudian jalankan lewat applet <applet code="Slacker.class" width=550 height=75> </applet>

MEMBUAT LABEL import java.awt.*; public class Labels extends java.applet.Applet { Label lefty = new Label("Bleeding heart!"); Label center = new Label("Centrist!", Label.CENTER); Label righty = new Label("Hardliner!", Label.RIGHT); Font lf = new Font("Helvetica", Font.BOLD, 14); GridLayout layout = new GridLayout(3,1); public void init() { setFont(lf); setLayout(layout); add(lefty); add(center); add(righty); } } MEMBUAT BUTTON import java.awt.*; public class CheckACzech extends java.applet.Applet { Checkbox c1 = new Checkbox("Milos Forman"); Checkbox c2 = new Checkbox("Paulina Porizkova"); Checkbox c3 = new Checkbox("Ivan Reitman"); Checkbox c4 = new Checkbox("Tom Stoppard"); Checkbox c5 = new Checkbox("Ivana Trump"); public void init() { add(c1); c2.setState(true); add(c2); add(c3); add(c4); add(c5);

69

} } MEMBUAT CHECK BOXES import java.awt.*; public class PickAPole extends java.applet.Applet { CheckboxGroup p = new CheckboxGroup(); Checkbox p1 = new Checkbox("Samuel Goldwyn", p, false); Checkbox p2 = new Checkbox("Krzysztof Kieslowski", p, true); Checkbox p3 = new Checkbox("Klaus Kinski", p, false); Checkbox p4 = new Checkbox("Joanna Pacula", p, false); Checkbox p5 = new Checkbox("Roman Polanski", p, false); public void init() { add(p1); add(p2); add(p3); add(p4); add(p5); } }

MEMBUAT CHOICE LIST import java.awt.*; public class SelectASpaniard extends java.applet.Applet { Choice span = new Choice(); public void init() { span.addItem("Pedro Almodvar"); span.addItem("Antonio Banderas"); span.addItem("Charo"); span.addItem("Xavier Cugat"); span.addItem("Julio Iglesias"); add(span); } } MEMBUAT TEXT FIELD import java.awt.*; public class OutOfSite extends java.applet.Applet { Label siteLabel = new Label("Site Name: "); TextField site = new TextField(25); Label addressLabel = new Label("Site Address: "); TextField address = new TextField(25); Label passwordLabel = new Label("Admin Password: "); TextField password = new TextField(25); public void init() { add(siteLabel); add(site); add(addressLabel); add(address); add(passwordLabel); password.setEchoCharacter('*'); add(password); }

70

} MEMBUAT TEXT AREA import java.awt.*; public class Virginia extends java.applet.Applet { String letter = "Dear Editor:\n" + "I am 8 years old.\n" + "Some of my little friends say there is no Santa Claus." + " Papa\n" + "says, ''If you see it in The Sun it's so.'' Please tell" + " me the truth,\n" + "is there a Santa Claus?\n\n" + "Virginia O'Hanlon\n" + "115 West 95th Street\n" + "New York"; TextArea lt; public void init() { lt = new TextArea(letter, 10, 50); add(lt); } }

MEMBUAT SCROLLING LIST import java.awt.*; public class Hamlet extends java.applet.Applet { List hm = new List(5, true); public void init() { hm.addItem("Hamlet"); hm.addItem("Claudius"); hm.addItem("Gertrude"); hm.addItem("Polonius"); hm.addItem("Horatio"); hm.addItem("Laertes"); hm.addItem("Ophelia"); add(hm); } }

71

MENANGANAN EVENT import java.awt.Graphics; import java.awt.Color; import java.awt.Event; public class Spots extends java.applet.Applet { final int MAXSPOTS = 10; int xspots[] = new int[MAXSPOTS]; int yspots[] = new int[MAXSPOTS]; int currspots = 0; public void init() { setBackground(Color.white); } public boolean mouseDown(Event evt, int x, int y) { if (currspots < MAXSPOTS) { addspot(x,y); return true; } else { System.out.println("Too many spots."); return false; } } void addspot(int x,int y) { xspots[currspots] = x; yspots[currspots] = y; currspots++; repaint(); } public void paint(Graphics g) { g.setColor(Color.blue); for (int i = 0; i < currspots; i++) { g.fillOval(xspots[i] - 10, yspots[i] - 10, 20, 20); } } }

72