java - ftsi.files. · pdf fileclient-server membuat instans ... ‹architecture...
TRANSCRIPT
![Page 1: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/1.jpg)
1
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Java Programming
Achmad Imam Kistijantoro
June, 2000Bandung
Jurusan Teknik Informatika ITB
rev 1.0.5
![Page 2: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/2.jpg)
2
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Content
¬ Dasar-dasar Programming¬ Dasar-dasar Java¬ Sintaks¬ Java & Object Oriented Programming¬ Java API¬ Java Swing¬ JDBC¬ Java Networking
![Page 3: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/3.jpg)
3
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Referensi
¬ Java Language Specification 1.1: by James Gosling , BillJoy, Guy Steele, Addison-Wesley, 1996. ISBN: 0-201-63451-1. http://java.sun•com/docs/books/jls/index.html
¬ Thinking in Java: by Bruce Eckel Prentice Hall, ISBN: 0-136-59723-8 http://www.bruceeckel.com/javabook.html
¬ The Java Virtual Machine Specification, by Tim Lindholm,Frank Yellin, Bill Joy, Kathy Walrath, Addison-Wesley 1996ISBN: 0-201-63452-X,
¬ The Java Tutorial, Sun Microsystem Inc, 2000http://web2.java.sun.com/docs/books/tutorial/
¬ JDK 1.2.2 Documentation, Sun Microsystem Inc.
![Page 4: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/4.jpg)
4
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Dasar-dasar Programming
![Page 5: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/5.jpg)
5
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Programming
¬ Program: The instructions executed by a computer
¬ Algorithm: A detailed sequence of actions to perform to accomplish some task.
Named after an Iranian mathematician, Al-Khawarizmi. Sifat:
• must reach a result after a finite number of steps contoh: euclid algorithm
GCD(m,n : integer){ m>=n }1. If m==n then GCD is m else r=m%n.2. if r==0 then GCD is n else m=n; n=r; go to step 1;
![Page 6: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/6.jpg)
6
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Definition from the Jargon file :-)
¬ Program A magic spell cast over a computer allowing it to turn one's input into error
messages. An exercise in experimental epistemology. A form of art, ostensibly intended for the instruction of computers, which is
nevertheless almost inevitably a failure if other programmers can'tunderstand it.
¬ programming The art of debugging a blank sheet of paper (or, in these days of on-line
editing, the art of debugging an empty file). "Bloody instructions which,being taught, return to plague their inventor” ("Macbeth", Act 1, Scene 7)
A pastime similar to banging one's head against a wall, but with feweropportunities for reward.
The most fun you can have with your clothes on
![Page 7: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/7.jpg)
7
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Abstraksi Mesin von Neumann
¬ stored programming concept¬ Logical components of a computer
CU
Input Output
Memory
ALU
![Page 8: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/8.jpg)
8
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Proses pembuatan program
¬ editing¬ compiling¬ linking¬ executing¬ debugging
![Page 9: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/9.jpg)
9
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Software Quality
¬ Correctness¬ Robustness¬ Extendibility¬ Reusability¬ Compatibility¬ Efficiency¬ Portability¬ Ease of use¬ Functionality
![Page 10: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/10.jpg)
10
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Konsep pemrograman
¬ procedural¬ data hiding/modular¬ data abstraction¬ object oriented programming
![Page 11: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/11.jpg)
11
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Pengantar konsep pemrograman
¬ Procedural Programming: pendefinisian langkah-langkah yang harus dieksekusi secara
sekuensial, contoh: resep masakan tentukan prosedur-prosedur yang diperlukan, gunakan algoritma
terbaik untuk mengimplementasikan masing-masing prosedurtersebut
contoh: program copy file• baca nama file yang akan di-copy (source)• buka file dengan nama tersebut• baca nama file tujuan (dest)• buka file dengan nama tujuan• baca isi file source• tulis isi ke file dest• tutup file source & dest
![Page 12: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/12.jpg)
12
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Pengantar konsep pemrograman
¬ Konsep data hiding - modular programming pada pemrograman skala besar, sebuah data yang diakses oleh
banyak kode dapat menyulitkan perubahan program. Sedikitperubahan struktur data dapat mengakibatkan perubahan dibanyak tempat
tentukan modul-modul yang diperlukan. partisi program sehinggadata tersembunyi dibalik modul-modul tersebut
![Page 13: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/13.jpg)
13
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Pengantar konsep pemrograman
¬ Konsep data abstraction pendefinisian tipe dan operasi yang dapat dilakukan terhadap tipe
tersebut. reusability safe-type programming
![Page 14: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/14.jpg)
14
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Dasar dasar Java: Object Oriented Programming
¬ Object Oriented Programming diharapkan dapat: mempercepat pengembangan, meningkatkan
kualitas software, mempermudah pemeliharaan software,memudahkan perubahan
mendefinisikan kelas-kelas yang merepresentasikanpermasalahan pada dunia nyata
mendefinisikan operasi yang disediakan untuk setiap kelas mengelompokkan kesamaan dengan hubungan inheritance atau
client-server membuat instans dari kelas (objek) dan mengatur interaksi antar
objek-objek
![Page 15: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/15.jpg)
15
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Dasar-dasar Java
![Page 16: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/16.jpg)
16
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Dasar-dasar Java
¬ Java: Java Language (current version: Java Language Spec. 2) Java Platform (J2SE, J2EE, J2ME)
¬ Java Language streamlined C++ object oriented interpreted/bytecode
¬ Platform Java Virtual Machine Java API
![Page 17: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/17.jpg)
17
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Dasar-dasar Java: Design goal
¬ Simple and Familiar Java dirancang untuk menghasilkan bug-free code Menggunakan sintaks serupa C/C++, dengan menghilangkan bagian-
bagian yang membingungkan: #define, pointer, typedef, struct, union,enum, multiple inheritance, goto, operator overloading, automatic coersion
¬ Object Oriented menyediakan fasilitas untuk data abstraction, behaviour sharing, evolution
& correctness pendefinisian kelas, instansiasi objek, inheritance, exception handling
¬ Robust and Safe dirancang agar aman dieksekusi via network strong typing, no direct access to memory, good exception handling
mechanism
![Page 18: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/18.jpg)
18
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Java design goal (2)
¬ Architecture Neutral and Portable¬ High Performance
Just In-Time compiler
¬ Interpreted Java bytecode
¬ Multi-threaded support multi-threaded application
¬ Dynamic tidak ada proses linking code secara eksplisit definisi kelas baru dapat ditambahkan pada saat run-time kelas di-load pada saat dibutuhkan
![Page 19: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/19.jpg)
19
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Java design goal (3)
¬ Platform independent Catatan: Java disebut sebagai platform independent, karena Java
sendiri adalah sebuah platform yang berjalan di atas platformlainnya
platform:• a specific computer hardware• a specific combination of hardware and operating system
and/or compiler• a support software for a particular activity.
¬ Automatic garbage collection Programmer tidak perlu melakukan dealokasi memory secara
eksplisit
![Page 20: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/20.jpg)
20
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Dasar-dasar Java
¬ Program Java sederhana:class HelloWorld {
static public void main(String args[]) { System.out.println("Hello world!");
}
}
¬ Kelas HelloWorld dengan sebuah method bernama main¬ Method main :
memiliki sebuah parameter bertipe String array memiliki public modifier static modifier
main: titik awal program
![Page 21: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/21.jpg)
21
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Perbandingan Java & C++
¬ Java design goal: automatic garbage collection streamlined C++, dengan menghilangkan feature: #define, typedef, struct,
union, enum, multiple inheritance, goto, operator overloading, automaticcoersion
menyediakan fasilitas interface
¬ C++ design goal: explicit garbage collection macro definition menggunakan #define pendefinisian tipe baru: typedef, struct, union, enum mendukung multiple inheritance fasilitas kontrol eksekusi: goto mekanisme operator overloading fasilitas automatic coersion
![Page 22: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/22.jpg)
22
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Arsitektur Java
Compiler
Java program
Java byte-code
Interpreter
Sistem Komputer
Java Virtual Machine
Java API
Program Java
![Page 23: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/23.jpg)
23
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Java & Internet
¬ Aplikasi Java dapat dijalankan secara stand-alone, atausebagai applet (dieksekusi melalui web browser)
¬ Applet: program yang dapat dijalankan oleh browser
Java sourceimport java.applet.Applet;import java.awt.Graphics;
public class HelloWorldextends Applet { public void paint(Graphics g) { g.drawString("Hello world!",
50, 25); }}
HTML<HTML> <HEAD> <TITLE> A Simple Program </TITLE> </HEAD><BODY>Here is the output of my program: <APPLET CODE="HelloWorld.class" WIDTH=150 HEIGHT=25> </APPLET></BODY></HTML>
![Page 24: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/24.jpg)
24
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Applet vs. Stand-alone
¬ Program’s entry: stand-alone: main applet: init & start
¬ Akses terbatas: library resources
![Page 25: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/25.jpg)
25
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Java flavor
¬ Java Development Kit (JDK)¬ Java Runtime Environment
(JRE)¬ Java Standard Edition¬ Java Enterprise Edition¬ Java Micro Edition¬ Java Servlet¬ Java Server Pages
¬ Java Beans¬ Enterprise Java Beans¬ Java OS¬ Javascript¬ JavaCard
![Page 26: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/26.jpg)
26
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Sintaks Java
![Page 27: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/27.jpg)
27
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Struktur dasar pemrograman prosedural
¬ Pendefinisian data: primitif, terstruktur¬ alur kontrol:
analisa kasus/kondisi• if-else• switch
iterasi/pengulangan• for-loop• while-loop• do-while-loop
¬ struktur program prosedur fungsi
![Page 28: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/28.jpg)
28
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
statement & expression
¬ statement: satuan kalimat program, diakhiri dengan;
contoh: x = x + 5;
¬ expression: ekspresi, menghasilkan nilai dengantipe tertentu
contoh: x + 5, a > b
¬ block-statement: beberapa statement dapat digabung menjadi sebuah block, dengan diawali
oleh { dan diakhiri oleh } contoh:
{ tmp = a; a = b; b = tmp; }
¬ standar penulisan sintaks: [ text ]: bagian yang berada dalam [ ] bersifat optional italicized_text: bagian yang berhuruf italic dapat digantikandengan teks yang sesuai
![Page 29: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/29.jpg)
29
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Komentar
¬Komentar: tidak dieksekusi, digunakanuntuk penjelasan
¬ sintaks:// komentar baris/* komentar block */
¬ contoh:class Count { public static void main (String args[]) { /* bagian ini komentar */ int i; // ini juga komentar for (i = 0; i < 50; i=i+1) { System.out.println(i); } }}
![Page 30: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/30.jpg)
30
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Pendefinisian data: type & variable
¬ program: algoritma + struktur data¬ pendefinisian data: tipe dan variable¬ tipe: mendefinisikan jenis suatu variabel: kumpulan nilai yang
valid untuk suatu variabel dan operasi yang dapat dilakukanterhadap variabel tersebut.
¬ Type pada Java : primitif & reference¬ primitif:
numerik: byte (8 bit), short (16 bit), integer (32 bit), long (64 bit), float 32 bitfloating point/real number), double (64 bit floating point)
char boolean
¬ reference: string, user-defined class
![Page 31: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/31.jpg)
31
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Pendefinisian data: tipe & variabel
¬ variabel harus dideklarasikan dan dialokasikan dahulusebelum digunakan
¬ deklarasi: menyatakan tipe variabel tersebut.¬ alokasi: pengadaan area memori untuk menampung nilai
variabel¬ contoh (Java):
int X; // variabel dengan nama X, bertipe integerchar myvarChar; // variabel dengan nama myvarCharString str; // variabel dengan nama str
¬ variabel bertipe non primitif harus alokasi eksplisit:String str;str = new String(“my string”);str = “str 2”; // khusus tipe string, operasi = otomatis alokasi
![Page 32: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/32.jpg)
32
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Tipe primitif & reference
¬ Primitif: tipe dasar seperti char, int, long, byte, float, double memori untuk variabel tipe primitif dialokasikan pada saat variabel
tersebut dideklarasikan operasi assignment pada variabel primitif menghasilkan
pengkopian nilai
¬ Reference: mempunyai semantik serupa dengan pointer pada C/C++ memori untuk variabel tipe reference tidak dialokasikan pada saat
deklarasi, alokasi dilakukan eksplisit dengan operator new operasi assignment pada variabel reference menghasilkan
pengkopian reference (tetap mengacu pada object yang sama
![Page 33: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/33.jpg)
33
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Perbedaan tipe primitif & reference
class Value { int val; }class Test { public static void main(String[] args) { int i1 = 3; int i2 = i1; // i1 & i2 variabel berbeda dengan nilai sama i2 = 4; System.out.print("i1==" + i1); System.out.println(" but i2==" + i2); Value v1 = new Value(); v1.val = 5; Value v2 = v1; // v1 & v2 mengacu ke variabel yg sama v2.val = 6; System.out.print("v1.val==" + v1.val); System.out.println(" and v2.val==" + v2.val); }}
![Page 34: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/34.jpg)
34
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Struktur
¬ Membentuk tipe data baru yang terdiri atas beberapatipe lainnyaclass Mahasiswa { String nama;
int umur; String alamat;
}
![Page 35: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/35.jpg)
35
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
if-else statement
¬eksekusi jika kondisi tertentu terpenuhi¬ sintaks:
if ( condition-expression ) statement-block[else] statement-block
¬Contoh:class Hello { public static void main (String args[]) { int x = 10; if ( x > 0 ) { System.out.println(”x is a positive number"); } else System.out.println(“x is a negative number”); }}
![Page 36: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/36.jpg)
36
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
switch statement
¬ analisa kasus lebih dari 1 kondisi¬ sintaks:
switch ( variabel ) { case val1 : Statement-block; break; case val2 : Statement-block; break; ... [default : Statement-block;]}
¬ catatan: variabel harus bertipe char, byte, short, atau int default: eksekusi yang harus dijalankan jika tidak ada value yg
dipenuhi variabel tersebut
![Page 37: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/37.jpg)
37
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
switch statement - contoh
class SwitchTest { public static void main(String[] args) {
int k = 1; switch (k) {
case 1: System.out.print(”1"); break; case 2: System.out.print(”2"); break;
case 3: System.out.println(”3"); break; }
}}
¬ Apakah yang terjadi jika break dihilangkan?
![Page 38: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/38.jpg)
38
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Pengulangan for-loop
¬ sintaks:for ( init-stmt ; cond-exp ; inc-stmt )statement-block
¬Contoh:class Count { public static void main (String args[]) { int i; for (i = 0; i < 50; i=i+1) { System.out.println(i); } }}
![Page 39: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/39.jpg)
39
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
while statement
class Count { public static void main (String args[]) {
int i = 0; while(i < 50) {
System.out.println(i); i=i+1;
} }
}
![Page 40: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/40.jpg)
40
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
do-while
class Count { public static void main (String args[]) {
int i = 0; do {
System.out.println(i); i=i+1;
} while(i<50); }
}
¬ Apakah perbedaannya dengan versi sebelumnya?
![Page 41: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/41.jpg)
41
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Struktur program: prosedur & fungsi
¬ sekumpulan instruksi yang dapat dipanggil dengan satuperintah
¬ contoh pemanggilan prosedur/fungsi:System.out.println(“x”);// prosedur untuk menampilkan teks x ke layar
¬ Sintaks:tipe nama-fungsi ( parameter-list ) { statement; ... statement;}
¬ tipe: tipe nilai yang dikembalikan suatu fungsi
![Page 42: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/42.jpg)
42
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Command line argument & array
class printArgs { public static void main (String args[]) {
for (int i = 0; i < args.length; i++) { System.out.println(“arg[“+i+”]”+args[i]); } }
}
¬ Array: kumpulan variabel dengan tipe samacontoh: String args[] args adalah array of String, diakses dengan cara: args[0], args[1], args[2] dst.,
![Page 43: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/43.jpg)
43
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Operator pada Java
+,-,/,* arithmetics operators += add and assign numbers-= subtract and assign*= multiply and assign/= divide and assign | bitwise OR |= bitwise OR and assign ^ bitwise XOR ^= bitwise XOR and assign & bitwise AND &= bitwise AND and assign% take remainder %= take remainder and assign > greater than >= greater than or equal to< less than <= less than or equal to
! boolean NOT != not equal to ++ increment by one -- decrement by one >> shift bits right >>= shift bits right and assign << shift bits left <<= shift bits left and assign >>> unsigned bit shift right >>>= unsigned bit shift right and
assign && boolean AND || boolean OR == boolean equals = assignment ~ bitwise NOT ? : conditional
![Page 44: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/44.jpg)
44
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Keyword pada Java
abstract declares that a class ormethod is abstract
boolean declares a boolean variable orreturn type
break prematurely exits a loopbyte declares a byte variable or return
typecase one case in a switch statementcatch handle an exceptionchar declares a character variable or
return typeclass signals the beginning of a class
definitioncontinue prematurely return to the
beginning of a loopdefault default action for a switch
statement
do begins a do while loopdouble declares a double variable or
return typeelse signals the code to be executed if
an if statement is not trueextends specifies the class which this
class is a subclass offinal declares that a class may not be
subclassed or that a field or methodmay not be overridden
finally declares a block of codeguaranteed to be executed
float declares a floating point variableor return type
for begins a for loopif execute statements if the condition is
true
![Page 45: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/45.jpg)
45
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Keyword pada Java (2)
implements declares that this classimplements the given interface
import permit access to a class orgroup of classes in a package
instanceof tests whether an object isan instanceof a class
int declares an integer variable orreturn type
interface signals the beginning of aninterface definition
long declares a long integer variable orreturn type
native declares that a method isimplemented in native code
new allocates a new objectpackage defines the package in which
this source code file belongs
private declares a method or membervariable to be private
protected declares a class, method ormember variable to be protected
public declares a class, method ormember variable to be public
return returns a value from a methodshort declares a short integer variable
or return typestatic declares that a field or a method
belongs to a class rather than anobject
super a reference to the parent of thecurrent object
switch tests for the truth of variouspossible cases
![Page 46: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/46.jpg)
46
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Keyword pada Java (3)
synchronized Indicates that a sectionof code is not thread-safe
this a reference to the current objectthrow throw an exceptionthrows declares the exceptions thrown
by a methodtransient This field should not be
serializedtry attempt an operation that may throw
an exceptionvoid declare that a method does not
return a valuevolatile Warns the compiler that a
variable changes asynchronouslywhile begins a while loop
![Page 47: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/47.jpg)
47
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Arithmetics operation
¬ operators: +, -, *, /, %, +=, -=, *=, /=¬ precedence:
*, /, % +, - =
¬ special results: NaN (not a number) negative Infinity, positive Infinity
¬ 1.0e+308*10==Infinity¬ 0.0/0.0 = NaN
![Page 48: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/48.jpg)
48
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Konversi String ke bilangan
int x = Integer.parseInt(“2”);long l = Long.parseLong(“2L”);double d = Double.parseDouble(“2.0”);float f = Float.parseFloat(“2.0f”);
String ival = Integer.toString (2);
String lval = Long.toString(2L);String dval = Double.toString(2.0);String fval = Float.toString(2.0f);
![Page 49: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/49.jpg)
49
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Data type
¬ char: ‘a’, ‘b’, ‘A’, ‘B’, dst.¬ special char:
‘\b’ backspace ‘\t’ tab ‘\n’ linefeed ‘\f’ formfeed ‘\r’ carriage return ‘\”’ double quote, " ‘\’’ single quote, ' ‘\\’ backslash, \ \uxxxx Unicode character (xxxx: bilangan hexadesimal)
![Page 50: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/50.jpg)
50
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
String
![Page 51: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/51.jpg)
51
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
operator ? :
¬ operator <expression>?<expr1>:<expr2> mengembalikan nilaiexpr1 jika expression true dan expr2 jika false.
¬ contoh:max = (a>b)?a:b
sama dengan:if(a>b) max = a;else max = b;
![Page 52: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/52.jpg)
52
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
break & continue
¬ break: keluar dari current block¬ continue: lompat ke awal current block (dalam loop)
![Page 53: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/53.jpg)
53
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Array
¬array: kumpulan variabel dengan tipesejenis
¬ contoh:int[] x;int x[];int[] x[];
¬ inisialisasix = new int[5];int[] x = { 1, 2, 3 };int[][] x = { {1, 2}, {2, 3}, {3, 4}};
¬ copy data arraySystem.arraycopy(Object src_arr, int src_pos,
Object dst_arr, int dst_pos, int len)
![Page 54: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/54.jpg)
54
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Java & Object Oriented Programming
![Page 55: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/55.jpg)
55
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Object Programming pada Java
¬ Object¬ Kelas¬ Exception¬ Interface¬ Inheritance¬ Package
![Page 56: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/56.jpg)
56
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Contoh Kasus
¬ Program pengolahan data akademik menyimpan data mahasiswa, dosen, karyawan, nilai, matakuliah dsb. perlu struktur data/tipe data untuk representasi mahasiswa, dosen,
karyawan, jurusan, dsb.
¬ contoh: tipe mahasiswaclass Mahasiswa { String nama; String alamat; String nim; String jurusan;}
¬ class: definisi tipe baru¬ variabel (instans) untuk tipe ini disebut object
![Page 57: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/57.jpg)
57
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Contoh kasus
¬mendefinisikan object:Mahasiswa mhs1;mhs1 = new Mahasiswa();
¬Deklarasi object (variabel) tipe referencetidak membuat object. Object dibuatdengan perintah new ClassName()
¬ contoh:public class MahasiswaTest { public static void main(String args[]) { Mahasiswa mhs = new Mahasiswa(); mhs.nama = “Amir”; mhs.alamat = “Dago”; mhs.jurusan = “Informatika”; System.out.println(“nama: ”+mhs.nama); System.out.println(“alamat: ”+mhs.alamat); }}
![Page 58: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/58.jpg)
58
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Class method
¬ class method: operasi yang disediakanoleh suatu class
¬ contoh:class Mahasiswa { String nama; String alamat; String nim; String jurusan;
String getNama() { return nama; }
void setNama(String nm) { nama = nm; }}
![Page 59: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/59.jpg)
59
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Class method
public class MahasiswaTest { public static void main(String args[]) {
Mahasiswa mhs = new Mahasiswa(); mhs.setNama(“Amir”);
System.out.println(“nama: ”+mhs.getNama()); }
}
¬ Dibandingkan cara sebelumnya, manakah yg lebih baik ?
![Page 60: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/60.jpg)
60
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Method parameter
¬ deskripsi suatu method dengan parameter danreturn value disebut sebagai method signature
¬ sintaks:[modifier] result-type method-name ( parameterList )[throws-decl]method-body
¬ modifier: public, protected, private abstract, static, final, synchronized, native
¬ Result type void: no result typename (primitive or class name)
¬ Parameter list: typename param1-name, typename param2-name ...
![Page 61: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/61.jpg)
61
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Method parameter
class Mahasiswa { String nama; String alamat; String nim; String jurusan;
public String getNama() { return nama; }
public void setNama(String nm) { nama = nm; }}
![Page 62: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/62.jpg)
62
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
OO Programming
¬ Objek: satuan unit, memiliki state & behavior¬ Kelas: definisi statik dari objek, menyatakan type objek¬ Objek adalah instance dari suatu Kelas
Class C
Variable(state)
deklarasi variabel
Method(behaviour)
deklarasi methoddefinisi method
objek oA
objek oB
objek oC
instansiasikelas C
instansiasikelas C
instansiasikelas C
![Page 63: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/63.jpg)
63
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Kelas (class)
¬ definisi internal data, internal method, atribut & behaviour dariobject
¬ Enkapsulasi: membungkus data internal dengan menyediakaninterface untuk akses data internal
¬ sintaks pendefinisian kelas:
public class myClass { public myClass() { // konstruktor } // definisi method & atribut private int myVariable; public void methodA() { }}
![Page 64: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/64.jpg)
64
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Konstruktor
¬method khusus yg digunakan untukmembuat object
¬memiliki nama sama dengan nama class¬ contoh:
class Mahasiswa { String nama; String alamat; String nim; String jurusan; public Mahasiswa() { } public Mahasiswa(String nm) { nama = nm; }}
![Page 65: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/65.jpg)
65
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Konstruktor
public class MahasiswaTest { public static void main(String args[]) {
Mahasiswa mhs = new Mahasiswa(“Amir”); System.out.println(“nama: ”+mhs.getNama());
}}
![Page 66: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/66.jpg)
66
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Mekanisme Enkapsulasi
¬ Java menyediakan mekanisme pendefinisianscope member variable/method dari sebuah classdengan mekanisme:
private protected public
¬ private: variable/method hanya dapat diakses oleh kelas itu sendiri
¬ protected: variable/method dapat diakses oleh semua kelas turunan variabel tidak dapat diakses dalam pola use, bukan sebagai inheritance
(lihat contoh Point pada bagian package (slide no. 23)
¬ public: variable/method dapat diakses oleh semua kelas
![Page 67: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/67.jpg)
67
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
method & attribute access modifier
¬ access modifier: menentukan apakah method/atributtersebut dapat dipanggil oleh kelas lain
private: hanya dapat diakses dari object itu sendiri protected: hanya dapat diakses object lain yang diturunkan dari
kelas object tersebut (akan diterangkan kemudian) public: dapat diakses oleh object lain default: hanya dapat diakses oleh object yang berada dalam satu
kelas
![Page 68: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/68.jpg)
68
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Contoh public
// contoh public variable// file name: Point.java
class Point { public int x, y;}----------------------------------------------//file name: Test.java
public class Test { public static void main(String[] args) { Point p = new Point(); System.out.println(p.x + " " + p.y); }}
![Page 69: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/69.jpg)
69
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Contoh private:
// file name: Point.javapublic class Point { private int x, y; public int getX() { return x; } public int getY() { return y; }}----------------------------------------------
// file name: Test.javaclass Test { public static void main(String[] args) { Point p = new Point(); System.out.println(p.x + " " + p.y); // error !, karenaprotected
System.out.println(p.getX()+ “ “+ p.getY() ); }}
![Page 70: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/70.jpg)
70
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
reference this
¬Pada Java, this adalah reference ygmengacu ke object itu sendiri. Contoh:// file name: Point.javapublic class Point { private int x, y; public int getX() { return this.x; } public int getY() { return this.y; }}
¬ sama dengan:// file name: Point.javapublic class Point { private int x, y; public int getX() { return this.x; } public int getY() { return this.y; }}
![Page 71: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/71.jpg)
71
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
static dan alokasi memori
¬ atribut dan method hanya dapat diakses jika object telahdibuat
contoh:Mahasiswa mhs;System.out.println(mhs.getNama()); // errormhs = new Mahasiswa(“Amir”);System.out.println(mhs.getNama());
¬ atribut & method static dapat diakses tanpa melaluiobject
¬ static: alokasi statis, hanya ada satu instans dalamseluruh program
![Page 72: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/72.jpg)
72
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Contoh:
class Mahasiswa { static int jumlah; String nama; String alamat; String nim; String jurusan; public Mahasiswa() { } public Mahasiswa(String nm) { nama = nm; jumlah = jumlah+1; }
public static int getJumlah() { return jumlah; }}
![Page 73: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/73.jpg)
73
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Contoh static:
public class StaticTest { public static void main(String args[]) {
Mahasiswa mhs1 = new Mahasiswa(); System.out.println(“Jumlah:”+Mahasiswa.getJumlah());
Mahasiswa mhs2 = new Mahasiswa(); System.out.println(“Jumlah:”+Mahasiswa.getJumlah());
}}
![Page 74: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/74.jpg)
74
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Interaksi antar object
¬ Program pada OO: membuat object-object danmengatur interaksi antar object
¬ Relasi antar object: has-a is-a reference
¬ Has-a: suatu object dicakup oleh object lainnya¬ Is-a: suatu object adalah instans dari kelas yg diturunkan
dari kelas object lainnya¬ Reference: 2 buah object atau lebih saling menyimpan
reference lainnya
![Page 75: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/75.jpg)
75
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Inheritance
¬ Inheritance: menyatakan pewarisan dari satu kelas ke kelaslainnya.
¬ Inheritance dituliskan dengan menggunakan keyword extends¬ Java hanya mendukung single inheritance
ColoredPointColor color
setColor()
Pointint xint y
Move()
![Page 76: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/76.jpg)
76
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Inheritance
public class Point { int x = 1, y = 1; void move(int dx, int dy) { x += dx; y += dy; }}
public class ColoredPoint extends Point { private int color; void setColor(int clr) { color = clr }; int getColor();}
¬Class Point disebut sebagai parent,superclass
¬Class ColoredPoint disebut sebagai child,subclass
![Page 77: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/77.jpg)
77
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Inheritance
¬ Contoh: Buat buku alamat yang dapat menyimpan data alamat
mahasiswa, dosen dan lembaga. Untuk data mahasiswa, bukutersebut menyimpan informasi nama, nim, alamat, jurusan,angkatan, sedangkan untuk dosen buku tersebut menyimpaninformasi nama, nip, alamat, jurusan, ruang
Buat buku informasi kendaraan, yang menyimpan data motor danmobil. Motor memiliki atribut: merek, model, tahun, cc, dan mobilmemiliki atribut merek, model, tahun, cc, jumlah pintu dst.
![Page 78: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/78.jpg)
78
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Inheritance - kelakuan konstruktor
¬ Pada Java, konstruktor base class selalu dipanggilpada saat pemanggilan konstruktor anak.
class Bapak { Bapak() { System.out.println("Konstruktor Bapak"); }}class Anak extends Bapak { Anak() { System.out.println("Konstruktor Anak"); }}public class TestKonstruktor extends Anak { TestKonstruktor() { System.out.println("Konstruktor TestKonstruktor"); } public static void main(String[] args) { TestKonstruktor x = new TestKonstruktor(); }}
![Page 79: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/79.jpg)
79
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Inheritance - Kelakuan konstruktor
¬ Konstruktor dengan parameter tidak otomatis memanggilkonstruktor base class dengan parameter yang sama
class Bapak { Bapak() { System.out.println("Konstruktor Bapak"); } Bapak(int x) { System.out.println(“Konstruktor Bapak dengan parameter”); }}class Anak extends Bapak { Anak() { System.out.println("Konstruktor Anak"); } Anak(int x) { System.out.println(“Konstruktor Anak dengan parameter”)}; } public static void main(String[] args) { Anak x = new Anak(5); }}
![Page 80: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/80.jpg)
80
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Inheritance - mekanisme protected
¬ protected: modifier untuk mendefinisikan scope pada kelasdan turunannya
¬ atribut & method yang dinyatakan sebagai protected hanyadapat diakses oleh objek yang berasal dari satu kelas atausubclass dari kelas tersebut
class Bapak { protected int a, b;}
class Anak extends Bapak { void ubahProtected() { a = 15; // boleh, karena Anak diturunkan dari Bapak }}
![Page 81: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/81.jpg)
81
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Contoh protected
public class Point { protected int x, y;}
public class Point3D { protected int z; public void move(int dx, int dy, int dz) { x = x+dx; y = y+dy; z = z+dz; // ok, karena diakses oleh
kelas turunan }}
class Test { public static void main(String[] args) { Point3D p = new Point3D(); p.x = 4; p.y = 3; p.z = 2; // error !, karena protected p.move(1,2,3); }}
![Page 82: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/82.jpg)
82
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Exception
¬Penanganan kesalahan pada javamenggunakan mekanisme exceptiontry { statement} catch (tipe exception name){ statement} catch (tipeexception name) { statement} . .} finally { statement}
![Page 83: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/83.jpg)
83
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Contoh:
public class ExceptionTest { public static void main(String args[]) { ExceptionTest test = new ExceptionTest(); try { test.getError();
System.out.println(“Tidak ada error”); } catch (Exception e) { System.out.println( e ); } }
public void getError() throws Exception { throw new Exception(“Error!”); }}
![Page 84: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/84.jpg)
84
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Inheritance - final class
¬ class dapat memiliki modifier final, yangberarti class tersebut tidak dapatditurunkan lagi menjadi class baru
final class finalClass { finalClass() { } void methodA() { }}
class classBaru extends finalClass { // error
}
![Page 85: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/85.jpg)
85
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Inheritance - final method
¬ final pada sebuah method: menyatakanmethod tersebut tidak dapat di redefinepada class anak
class Bapak { Bapak() { } final void finalMethod() { }}
class classBaru extends Bapak { void finalMethod() { // error }}
![Page 86: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/86.jpg)
86
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Package
¬ package adalah mekanisme untuk pengelompokan kelas-kelas ke dalam sebuah modul pada Java
¬ package didefinisikan dengan menambahkan baris: package <nama package>
pada awal file¬ Kelas yang berasal dari suatu package diakses dengan
menggunakan nama package dan nama kelas. contoh: points.Point (kelas Point yang terdapat pada package points)
¬ Kelas yang berasal dari suatu package dapat diakseslangsung dengan menggunakan nama kelas dengan caramenggunakan import.
![Page 87: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/87.jpg)
87
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Package - contoh
// file Point.javapackage points;public class Point { protected int x, y;}---------------------------------------// file: Test.javaclass Test { public static void main(String[] args) { points.Point p = new points.Point(); p.x = 4; p.y = 3; p.z = 2; p.move(1,2,3); }}--------------------------------------// file: Test2.javaimport points;class Test2 { public static void main(String[] args) { Point p = new Point(); p.x = 4; p.y = 3; p.z = 2; p.move(1,2,3); }
![Page 88: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/88.jpg)
88
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Package & enkapsulasi
¬ Package juga merupakan mekanisme untuk membatasiscope sebuah variabel/method/class
variabel/method/class yang tidak memiliki access modifier(public/private/protected) memiliki scope package, yaitu hanyadapat diakses oleh class lain yang berada dalam satu package
variabel/method dengan access modifier protected dapat diaksesoleh class lain yang berada dalam satu package
![Page 89: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/89.jpg)
89
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Contoh package access modifier
// file Point.javapackage points;
public class Point { public int x, y; void move(int dx, int dy) { x += dx; y += dy; } public void moveAlso(int dx, int dy) { move(dx, dy); }}
//file PlusPoint.java
package morepoints;
public class PlusPoint extends points.Point { public void move(int dx, int dy) { super.move(dx, dy); // compile-time error, karena tidak 1
package moveAlso(dx, dy); }}
![Page 90: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/90.jpg)
90
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Contoh protected dalam package
// file Point.javapackage points;public class Point { protected int x, y; void warp(threePoint.Point3d a) { if (a.z > 0) // compile-time error: cannot access a.z
// karena bukan satu package a.delta(this); }}// file Point3d.javapackage threePoint;import points.Point;public class Point3d extends Point { protected int z; public void delta(Point p) { p.x += this.x; // compile-time error: cannot access p.x &
p.y p.y += this.y; // karena bukan satu package. this.x dapat
diakses // karena Point3d turunan dari Point
}}
![Page 91: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/91.jpg)
91
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Interface
¬ Definisi method yang harus diimplementasikan dankonstanta (final member variabel)
¬ Mendefinisikan type¬ Interface tidak dapat diinstansiasi
public interface interfaceA { int integerConst = 5; public void method1(/* parameter */); public void method2( /* parameter */); }
![Page 92: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/92.jpg)
92
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Implementasi Interface
¬ Interface dapat diimplementasikan oleh sebuah kelas¬ Kelas yang mengimplementasi sebuah interface harus
menyediakan semua method yang disebutkan dalam interfacetersebut
class MyClass implements interfaceA { public void methodA() {
} public void methodB() {
} }
![Page 93: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/93.jpg)
93
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Interface & Abstract class
¬ interface & abstract classes: serupa tapi tak sama¬ interface sama sekali tidak mengandung implementasi¬ interface tidak memiliki state (member variable selain
constant
![Page 94: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/94.jpg)
94
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Interface & Inheritance
¬ Interface dapat diturunkan dari interface lainnya¬ Kelas implementasi harus mendefinisikan seluruh
method yang didefinisikan oleh interface beserta parent-nya.
¬ Interface dapat diturunkan secara multiple inheritance
![Page 95: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/95.jpg)
95
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Interface & Inheritance
interface FirstInterface { Object method1();}
interface SecondInterface extends FirstInterface { int method2();}
public class FirstClass implements FirstInterface { public FirstClass(){ }...}public class SecondClass extends FirstClass implements
SecondInterface {...}
SecondClass bertype: FirstInterface, SecondInterface,FirstClass & SecondClass
![Page 96: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/96.jpg)
96
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Interface & Inheritance
¬ Inheritance pada interface hanya menurunkan sintaks method-method yang didefinisikan pada bapak
¬ Multiple interface inheritance dengan nama method yangsama tidak mengakibatkan konflik.
public interface A { methodA();}public interface B { methodA();}public interface AB extends A, B {}
![Page 97: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/97.jpg)
97
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Interface & Inheritance
// file BaseColors.javainterface BaseColors { int RED = 1, GREEN = 2, BLUE = 4;}interface RainbowColors extends BaseColors { int YELLOW = 3, ORANGE = 5, INDIGO = 6, VIOLET = 7;}interface PrintColors extends BaseColors { int YELLOW = 8, CYAN = 16, MAGENTA = 32;}interface LotsOfColors extends RainbowColors, PrintColors { int FUCHSIA = 17, VERMILION = 43, CHARTREUSE = RED+90;}// file: Main.javapublic class Main { public static void main(String args[]) { System.out.println(LotsOfColors.YELLOW); // error }}
![Page 98: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/98.jpg)
98
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Interface & Multiple Inheritance
¬ Interface dapat digunakan untukmenggantikan kapabilitas yang disediakanmelalui multiple inheritance
interface CanFight { void fight(); } interface CanSwim { void swim(); } interface CanFly { void fly(); } class ActionCharacter { public void fight() {} }
![Page 99: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/99.jpg)
99
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Interface & Multiple Inheritance
class Hero extends ActionCharacter implements CanFight, CanSwim, CanFly { public void swim() {} public void fly() {}}public class Adventure { static void t(CanFight x) { x.fight(); } static void u(CanSwim x) { x.swim(); } static void v(CanFly x) { x.fly(); }
public static void main(String[] args) { Hero i = new Hero(); t(i); // Treat it as a CanFight u(i); // Treat it as a CanSwim v(i); // Treat it as a CanFly }}
![Page 100: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/100.jpg)
100
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Interface & Multiple Inheritance
¬ Class hanya mewarisi konstanta dari interface¬ Class tidak mewarisi implementasi dari interface¬ hierarki interface independen terhadap hierarki class,
beberapa class yang mengimplementasi interface yangsama bisa jadi sama sekali tidak berkaitan
![Page 101: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/101.jpg)
101
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Java API
![Page 102: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/102.jpg)
102
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Java API
¬ java.applet¬ java.io¬ java.util¬ java.awt¬ javax.swing¬ java.lang¬ java.math
¬ java.sql¬ java.text¬ java.net¬ java.rmi¬ java.security
![Page 103: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/103.jpg)
103
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Applet
¬ program kecil yang dijalankan dari sebuah browser¬ kode program (.class file) dapat didownload dari server¬ subclass dari java.applet.Applet
![Page 104: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/104.jpg)
104
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Applet
¬HTML: template link <applet> tag
<HTML><HEAD><TITLE> Hello World </TITLE></HEAD>
<BODY>Applet Hello World: <P><applet code="HelloWorldApplet.class" CODEBASE=“classes” width="150" height="50"></applet></BODY></HTML>
![Page 105: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/105.jpg)
105
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Applet
import java.applet.Applet;import java.awt.Graphics;
public class HelloWorldApplet extends Applet {
public void paint(Graphics g) { g.drawString("Hello world!", 50, 25);
}
}
¬ Tidak ada main(String args[]) !
![Page 106: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/106.jpg)
106
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Applet & Event driven program
¬ Event driven: program merespon event yang dikirimkankepadanya
¬ contoh event: keyboard event, mouse event, focusevent, action event
![Page 107: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/107.jpg)
107
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Applet
¬ Method yang disediakan java.applet.Applet init() start() paint() destroy() processMouseEvent(MouseEvent ev) processKeyEvent(KeyEvent ev) processFocusEvent(FocusEvent ev)
![Page 108: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/108.jpg)
108
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Applet: contoh
¬Applet yang menggambar garis di antara 2titikimport java.applet.*;import java.awt.* ;public class Garis extends Applet { int a; int b; int c; int d; int e; public void init(){ resize(300, 500); } public void paint(Graphics g){ g.drawLine(a, b, d, e); } public void processMouseEvent(Event evt, int x, int y) { if (c==0) { a=x; b=y; c=1; } else { d=x; e=y; c=0; repaint(); } return true; } }
![Page 109: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/109.jpg)
109
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Java IO
¬ disediakan pada package java.io.*;¬ stream: aliran data¬ semua fasilitas IO direpresentasikan sebagai stream¬ InputStream: kelas general untuk menangani aliran input¬ OutputStream: kelas general untuk menangani output¬ Contoh IO Stream: file, network, pipe, string.¬ note: string dapat dibuat sebagai stream, yaitu dengan
cara membaca dan menulis secara sekuensial
![Page 110: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/110.jpg)
110
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Jenis-jenis Stream
¬ Stream yang menerima masukan disebut sebagai inputstream
contoh: FileInputStream: untuk membaca file
¬ Stream mengeluarkan data disebut sebagaioutputstream
contoh: FileOutputStream
¬ Masukan untuk suatu stream dapat berasal dari streamlainnya. Stream jenis ini disebut sebagai processingstream
contoh: BufferedOutputStream: digunakan untuk menampungstream dalam buffer, sebelum digunakan
![Page 111: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/111.jpg)
111
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Bytes stream & Character stream
¬ Pada java tersedia 2 jenis stream berdasarkan elemennya¬ byte stream: satuan data yang membentuk stream adalah byte
(8 bit), umumnya stream jenis ini memiliki nama denganmenggunakan akhiran Stream
contoh: InputStream, OutputStream
¬ characters stream: satuan data yang membentuk streamadalah character (16 bit), umumnya stream jenis ini memilikinama dengan menggunakan akhiran Writer atau Reader
contoh: InputStreamReader, InputStreamWriter
![Page 112: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/112.jpg)
112
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
InputStream
¬ Semua byte oriented input stream diturunkan dari kelasini.abstract class InputStream { int available();
void close(); int mark( int n );
int reset(); int read();
int read( byte[] b ); int read( byte[] b, int off, int len );
long skip( long n );}
![Page 113: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/113.jpg)
113
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Java IO
Reader
BufferedReader
CharArrayReader
InputStreamReader
FilterReader
PipedReader
StringReader
LineNumberReader
FileReader
PushbackReader
Writer
BufferedWriter
CharArrayWriter
OutputStreamWriter
FilterWriter
PipedWriter
StringWriter
FileWriter
PrintWriter
![Page 114: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/114.jpg)
114
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Java IO
InputStream
FileInputStream
PipedInputStream
FilterInputStream
ByteArrayInputStream
SequenceInputStream
StringBufferInputStream
LineNumberInputSream
OutputStream
ObjectOutputStream
FileOutputStream
PipedOutputStream
FilterOutputStream
ByteArrayOutputStream
ObjectInputStream
DataInputStream
BufferedInputSream
PushbackInputStream
DataOutputStream
BufferedOutputStream
PrintStream
![Page 115: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/115.jpg)
115
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Membaca file
import java.io.*;public class BacaFile {
public static void main(String[] args) throws IOException {
FileInputStream in; int c;
in = new FileInputStream( args[0] ); while ((c = in.read()) != -1)
System.out.write(c); in.close();
}}
![Page 116: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/116.jpg)
116
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Menulis file
import java.io.*;public class TulisFile { public static void main(String[] args) throws IOException { FileInputStream in; FileOutputStream out; int c; in = new FileInputStream( args[0] ); out = new FileOutputStream( args[1] ); while ((c = in.read()) != -1) out.write(c); in.close(); out.close(); }}
![Page 117: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/117.jpg)
117
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Input Dialog
import javax.swing.*;
public class InputDialog {
public static void main(String args[]) { String inputValue = JOptionPane.showInputDialog("Please
input a value"); System.out.println(inputValue); inputValue = JOptionPane.showInputDialog("Please input a
value 2"); System.out.println(inputValue); System.exit(0); }}
![Page 118: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/118.jpg)
118
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Input (Text mode)
import java.io.*;
public class InputString { public static void main(String args[]) { try { BufferedReader in = new BufferedReader( new
InputStreamReader(System.in)); String s = in.readLine(); System.out.println( s ); } catch(Exception e) { e.printStackTrace(); } }}
![Page 119: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/119.jpg)
119
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Input File
![Page 120: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/120.jpg)
120
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Output File
![Page 121: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/121.jpg)
121
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Java util
¬ Java Collection Framework kumpulan kelas untuk menangani koleksi objek (struktur data
seperti array, list, set etc.)
¬ Date, Calendar, TimeZone, Locale¬ Properties: file konfigurasi untuk aplikasi java¬ Random¬ StringTokenizer: parser untuk string
![Page 122: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/122.jpg)
122
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Hashtable
¬ koleksi objek dengan key unik. Objek dapatdiletakkan ke dalam hashtable dengan identifikasikey unik tertentu.public class Hashtable extends Dictionary implements Map, Cloneable, Serializable { // ... public Object put( Object key, Object val ); public Object get( Object key ); public Object remove( Object key ); public void clear(); public int size(); // ... method lainnya}
![Page 123: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/123.jpg)
123
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Hashtable
¬ Contoh penggunaan:Hashtable table = new Hashtable();
table.put(“key1”, new Integer(1) );table.put(“key2”, new Integer(2) );
Integer intval = (Integer) table.get(“key1”);if( intval != null ) {
System.out.println(“key: key1, value: “+intval);}
![Page 124: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/124.jpg)
124
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Vector
¬ Koleksi objek dengan urutan tertentu (serupaarray)public class Vector extends AbstractList implements List, Cloneable, Serializable { // ... public boolean add( Object val ); public boolean add( int index, Object val ); public Object get( int index ); public Object remove( Object val ); public void clear(); public int size(); // ... method lainnya}
![Page 125: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/125.jpg)
125
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Vector
¬ contoh:Vector v = new Vector();
v.add( new Integer(1) );v.add( new Integer(2) );
Integer intval = (Integer) v.get(0);if( intval != null ) {
System.out.println(“index 0, value: “+intval);}
![Page 126: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/126.jpg)
126
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Java Swing
![Page 127: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/127.jpg)
127
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Swing
¬ Koleksi kelas untuk tampilan (GUI) pada Java¬ AWT: Abstract Window Toolkit, koleksi kelas untuk
tampilan pada Java versi JDK 1.1 dan versi sebelumnya¬ AWT mengandung native code, sehingga terdapat
perbedaan antara platform satu dengan lainnya
![Page 128: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/128.jpg)
128
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Contoh aplikasi dengan Swing
import javax.swing.*; // baris ini diperlukan karena // swing berasal dari package javax.swing
public class Aplikasi extends JFrame { public Aplikasi(String title) {
super(title); }
public static void main(String s[]) { Aplikasi frame = new Aplikasi(”Aplikasi Swing");
frame.setSize(50,100); frame.show();
}}
![Page 129: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/129.jpg)
129
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Contoh aplikasi swing
import javax.swing.*; // baris ini diperlukan karena // swing berasal dari package javax.swingpublic class Aplikasi { JFrame frame; public Aplikasi(String title) { frame = new JFrame(title); } public void run() { frame.setSize(50, 100); frame.show(); } public static void main(String s[]) { Aplikasi app = new Aplikasi(”Aplikasi Swing"); app.run(); }}
![Page 130: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/130.jpg)
130
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
JComponent
¬ Widget: elemen sebuah graphical user interface untukmelakukan fungsi tertentu
¬ Atomic component Button: JButton, JCheckBox, JRadioButton, JMenuItem,
JCheckBoxMenuItem, JRadioButtonMenuItem, JToggleButton JComboBox JList Menu: JMenu, JMenuItem JLabel JTextField JTable
![Page 131: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/131.jpg)
131
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Java GUI
Button
Label
Panel
Frame
¬ Panel (JPanel): Container untuk meletakkan komponen GUI¬ Panel memiliki LayoutManager yang berfungsi mengatur tata
letak komponen yang dimilikinya¬ Komponen diletakkan ke dalam panel dengan memanggil
method add dari panel
![Page 132: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/132.jpg)
132
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Contoh Panel
JPanel panel = new JPanel();JButton b1 = new JButton(“Button 1”);JButton b2 = new JButton(“Button 2”);JLabel label1 = new JLabel(“Label 1”);JLabel label2 = new JLabel(“Label 2”);JLabel label3 = new JLabel(“Label 3”);panel.add(b1);panel.add(b2);panel.add(label1);panel.add(label2);panel.add(label3);
¬ Kode di atas membuat sebuah panel, 2 buahbutton dan 3 buah label, kemudianmenambahkan button dan label ke dalampanel tersebut.
![Page 133: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/133.jpg)
133
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
JFrame
¬ Frame: Top level container (Window utama) dari suatuaplikasi Java
¬ Sebuah frame memiliki: Title, pada bagian atas frame MenuBar, tempat untuk meletakkan menu standard panel yang disebut sebagai ContentPane
gambar diambil dari Java Tutorial, Sun
![Page 134: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/134.jpg)
134
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Menambahkan Button ke Frame
import javax.swing.*;public class CobaButton { JFrame frame; JButton button; public CobaButton(String title) { frame = new JFrame(title); } public void run() { button = new JButton(); frame.getContentPane().add(button); frame.pack(); frame.show(); } public static void main(String s[]) { CobaButton app = new CobaButton(”Aplikasi Swing"); app.run(); }}
![Page 135: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/135.jpg)
135
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Mengganti ContentPanel dari sebuah Frame
¬ Standar content panel dari sebuah frame dapat digantidengan perintah setContentPane.
¬ contoh:JFrame frame = new JFrame();
JPanel panel = new JPanel();frame.setContentPane(frame);
¬ Tugas: Gabungkanlah kode pada contoh panel denganprogram contoh Aplikasi Swing sehingga program andadapat menampilkan window berisi 2 button dan 3 label
![Page 136: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/136.jpg)
136
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Contoh
import javax.swing.*;public class CobaPanel { JFrame frame; public CobaPanel(String title) { frame = new JFrame(title); } public void run() { JPanel panel = new JPanel(); JButton b1 = new JButton(“B1”); JButton b2 = new JButton(“B2”); JLabel label1 = new JLabel(“L1”); JLabel label2 = new JLabel(“L2”); JLabel label3 = new JLabel(“L3”); panel.add(b1); panel.add(b2); panel.add(label1); panel.add(label2);
panel.add(label3);// tambahkan kode di sini untuk
mengganti content panel dari frame}
public static void main(String s[]) { CobaPanel app = new CobaPanel(”Aplikasi Swing"); app.run(); }}
![Page 137: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/137.jpg)
137
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Mengganti LayoutManager dari sebuah Panel
¬ Sebuah panel dapat memiliki layout manager untukmengatur tata letak komponen
¬ Standar layout manager untuk JPanel adalahFlowLayout
¬ Standar layout manager untuk Content pane dari Jframeadalah BorderLayout
¬ Jenis-jenis layout manager sederhana pada JDK 1.2/1.3 FlowLayout BorderLayout BoxLayout GridLayout
![Page 138: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/138.jpg)
138
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
FlowLayout
¬ Mengatur posisi komponen-komponen dari kiri ke kanandan meletakkan komponen selanjutnya pada baris barujika ukuran lebar panel tidak mencukupi
![Page 139: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/139.jpg)
139
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
BorderLayout
¬ BorderLayout mengatur komponen dalam posisitertentu, sesuai arah mata angin: NORTH,EAST, SOUTH, WEST dan CENTER.Penambahan komponen dengan BorderLayoutmemiliki parameter posisi. Contoh:JPanel panel = new JPanel();panel.add( new JButton(“South”), BorderLayout.SOUTH );panel.add( new JButton(“East”), BorderLayout.EAST );panel.add( new JButton(“West”), BorderLayout.WEST );panel.add( new JButton(“North”), BorderLayout.NORTH );panel.add( new JButton(“Center”), BorderLayout.CENTER );
![Page 140: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/140.jpg)
140
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
BoxLayout
¬ BoxLayout mengatur komponen secara horizontal atauvertikal. Contoh:JPanel panel = new JPanel();panel.setLayout(new BoxLayout(panel,BoxLayout.X_AXIS));
panel.add( new JButton(“b1”) );panel.add( new JButton(“b2”) );
panel.add( new JButton(“b3”) );
![Page 141: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/141.jpg)
141
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
GridLayout
¬ GridLayout mengatur komponen dalam posisi grid, yaituserupa matriks. Contoh:JPanel panel = new JPanel();panel.setLayout( new GridLayout( 2, 3 ) );
panel.add( new JButton(“b11”));panel.add( new JButton(“b12”));
panel.add( new JButton(“b13”));panel.add( new JButton(“b21”));
panel.add( new JButton(“b22”));panel.add( new JButton(“b23”));
![Page 142: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/142.jpg)
142
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
GridBagLayout
¬ GridBag mengatur komponen serupa dengangrid, namun untuk setiap komponen dapatditentukan konstrain tertentu, sehingga GridBagakan mengatur tata letak berdasarkan konstrainuntuk setiap komponen
¬ Konstrain yg dapat diatur: gridx, gridy: koordinat komponen dalam grid layout gridwidth, gridheight: jumlah sel yg digunakan sebuah komponen.
Komponen dapat menduduki lebih dari 1 sel horisontal dan vertikal fill: kelakukan komponen jika ukuran sel lebih besar dari komponen.
Komponen dapat membesar horizontal/vertikal sesuai ukuran sel,berdasarkan parameter konstrain fill.
weightx, weighty: bobot ukuran sel dibandingkan sel lainnya insets: jarak antara komponen dengan sel anchor: posisi komponen di dalam sel
![Page 143: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/143.jpg)
143
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
GridBagLayout
¬ fill: GridBagConstraint.NONE: komponen tidak membesar GridBagConstraint.HORIZONTAL: komponen membesar secara
horizontal GridBagConstraint.VERTICAL: komponen membesar vertikal GridBagConstraint.BOTH: komponen membesar ke kedua arah
¬ anchor: GridBagConstraint.SOUTH: komponen diletakkan di bagian bawah GridBagConstraint.NORTH: komponen diletakkan di bagian atas GridBagConstraint.CENTER: komponen diletakkan di bagian tengah GridBagConstraint.WEST: komponen diletakkan di bagian kiri GridBagConstraint.EAST: komponen diletakkan di bagian kanan
![Page 144: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/144.jpg)
144
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Mengatur letak komponen dengan panel
¬ Sebuah panel dapat ditambahkan ke panel lainnya. Halini digunakan untuk membantu mengatur tata letakkomponen. Contoh:
![Page 145: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/145.jpg)
145
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Menangani event pada Swing
¬ Jenis event: mouse event focus event keyboard event component event container event window event action event adjustment event item event text event
![Page 146: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/146.jpg)
146
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
event listener
¬ objek yang bertugas untuk mendengarkan event danmemberikan respon terhadap event tertentu.
¬ mengimplementasikan salah satu dari listener interface: ComponentListener ContainerListener FocusListener KeyListener MouseListener MouseMotionListener WindowListener ActionListener AdjustmentListener ItemListener TextListener
![Page 147: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/147.jpg)
147
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
interface
¬ deskripsi method-method yang harusdisediakan oleh suatu kelas
¬ kelas yang mengimplementasikan sebuahinterface harus mendefinisikan semua methodpada interface tersebut
¬ contoh:interface ActionListener { void actionPerformed( ActionEvent ev);}
class MyActionHandler implements ActionListener { void actionPerformed( ActionEvent ev ) { System.out.println(“menerima event”); }}
![Page 148: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/148.jpg)
148
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Mendefinisikan handler untuk event tertentu
¬ contoh:MyActionHandler hd = new MyActionHandler();
JButton b1 = new JButton();b1.addActionListener( hd );
¬ baris di atas menyatakan bahwa objek hd adalahhandler untuk event jenis action (button clicked) untukobjek b1.
![Page 149: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/149.jpg)
149
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Mouse Event
¬ java.awt.event.MouseEvent MouseEvent.MOUSE_CLICKED MouseEvent.MOUSE_DRAGGED MouseEvent.MOUSE_ENTERER MouseEvent.MOUSE_EXITED MouseEvent.MOUSE_MOVED MouseEvent.MOUSE_PRESSED MouseEvent.MOUSE_RELEASED int getID();
• mengambil ID event, seperti MOUSE_CLICKED, MOUSE_MOVED String paramString(); // memberikan deskripsi event int MouseEvent.getX(); int MouseEvent.getY();
• getX() & getY() mengambil koordinat mouse pada saat terjadi event Point MouseEvent.getPoint();
• getPoint() mengambil koordinat mouse dalam bentuk Point. Pointmemiliki atribut x & y
int getClickCount();• mengembalikan jumlah click yang dilakukan pada saat terjadi event
![Page 150: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/150.jpg)
150
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
MouseListener interface
¬ Interface ini diimplementasikan oleh kelas yang menjadilistener event mousepublic interface MouseListener { void mouseClicked(MouseEvent ev);
void mousePressed(MouseEvent ev); void mouseReleased(MouseEvent ev);
void mouseEntered(MouseEvent ev); void mouseExited(MouseEvent ev);
}
![Page 151: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/151.jpg)
151
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Mouse Motion Listener
¬ Interface untuk menangani event gerakan mousepublic interface MouseMotionListener {
void mouseDragged( MouseEvent ev ); void mouseMoved( MouseEvent ev );
}
![Page 152: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/152.jpg)
152
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Component event
¬ Event yg berkaitan dengan perubahan padakomponen, seperti komponen moved, resized,hidden & shown
¬ java.awt.event.ComponentEvent ComponentEvent.COMPONENT_MOVED ComponentEvent.COMPONENT_RESIZED ComponentEvent.COMPONENT_HIDDEN ComponentEvent.COMPONENT_SHOWN int getID(); Component getComponent();
• memberikan komponen yang menghasilkan event String paramString();
![Page 153: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/153.jpg)
153
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Component listener
¬ interface untuk menangani event componentpublic interface ComponentListener {
public void componentHidden(ComponentEvent ev); public void componentShown(ComponentEvent ev);
public void componentResized(ComponentEvent ev); public void componentMoved(ComponentEvent ev);
}
![Page 154: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/154.jpg)
154
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Action Event
¬ java.awt.event.ActionEvent int getID(); Object getSource(); String getActionCommand();
¬ ActionListenerpublic interface ActionListener { void actionPerformed( ActionEvent ev );}
¬ Pada component asal, action command di setdengan perintah: setActionCommand()JButton b = new JButton(“button”);b.setActionCommand(“b”);
![Page 155: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/155.jpg)
155
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Key Event
¬ event yang berkaitan dengan aktivitas keyboard¬ java.awt.event.KeyEvent
KeyEvent.VK_A, KeyEvent.VK_B, KeyEvent.VK_F1,
KeyEvent.VK_PAGE_UP, etc. char getKeyChar();
• mengembalikan representasi char yang ditekan pada keyboard int getKeyCode();
• mengembalikan kode key yang ditekan pada keyboard
![Page 156: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/156.jpg)
156
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Key Listener
public interface KeyListener { void keyTyped( KeyEvent ev );
// high level event, dibangkitkan ketika sebuah // karakter dihasilkan keyboard
void keyPressed( keyEvent ev ); // low level, dibangkitkan setiap sebuah tombol pada
// keyboard ditekan void keyReleased( keyEvent ev );
}
![Page 157: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/157.jpg)
157
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Window Event
¬ java.awt.event.WindowEvent Window getWindow(); String paramString();
![Page 158: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/158.jpg)
158
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
WindowListener
public interface WindowListener { void windowActivated( WindowEvent ev );
void windowClosed( WindowEvent ev ); void windowClosing( WindowEvent ev );
void windowDeactivated( WindowEvent ev ); void windowDeiconified( WindowEvent ev );
void windowIconified( WindowEvent ev ); void windowOpened( WindowEvent ev );
}
![Page 159: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/159.jpg)
159
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Focus Event
¬ java.awt.event.FocusEvent Component getComponent();
¬ FocusListenerpublic interface FocusListener {
void focusGained( FocusEvent ev ); void focusLost( FocusEvent ev );
}
![Page 160: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/160.jpg)
160
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Menggunakan adapter untuk event listener
¬ interface: semua method harus didefinisikanulang pada kelas yang mengimplementasikannya
¬ sebuah event listener dapat diturunkan dari kelasAdapter, dan mendefinisikan ulang method yangdiperlukan saja.class MyAdapter extends MouseAdapter { public void mouseClicked( MouseEvent ev ) { System.out.println("mouse clicked"); }}public void init() { JButton b = new JButton(); MyAdapter evHandler = new MyAdapter(); b.addMouseListener( evHandler );}
![Page 161: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/161.jpg)
161
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
JDBC
![Page 162: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/162.jpg)
162
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
JDBC
¬ API yang menyediakan interface universal ke basis data¬ package java.sql¬ SQL: Standard Query Language¬ JDBC menyediakan kelas-kelas:
DriverManager: kelas ini digunakan untuk membuat koneksi (instance darikelas Connection) ke database
Connection: instance dari kelas ini merepresentasikan koneksi kedatabase tertentu
Statement: instance dari kelas ini merepresentasikan sebuah query yangakan dieksekusi ke database
• PreparedStatement• CallableStatement
ResultSet: instance dari kelas ini merepresentasikan hasil eksekusi query
![Page 163: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/163.jpg)
163
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Struktur JDBC
![Page 164: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/164.jpg)
164
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
JDBC Driver
¬ JDBC menggunakan driver yang spesifik untuk masing-masing jenis database.
¬ Pendefinisian driver yg digunakan dilakukan dengancara me-load class driver yg diinginkanClass.forName("sun.jdbc.odbc.JdbcOdbcDriver");Class.forName(“org.gjt.mm.mysql.Driver”);
¬ Driver untuk ODBC: sun.jdbc.odbc.JdbcOdbcDriver,sudah disediakan oleh Sun
¬ Driver untuk mySQL (org.gjt.mm.mysql.Driver) tersediasecara freeware
![Page 165: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/165.jpg)
165
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Menggunakan ODBC Driver
¬ Buatlah definisi Datasource yang akan digunakan padaODBC melalui setting ODBC datasource dari controlpanel (misalkan dibuat datasource bernama mahasiswa)
¬ pada program java, load kelas Driver untuk Odbc,Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
¬ Buka koneksi ke ODBC dengan mendefinisikan URLuntuk datasource tersebut, dengan format:
jdbc:odbc:mahasiswa
¬ dimana odbc adalah nama driver yang digunakan, danmahasiswa adalah nama data source dari ODBC
![Page 166: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/166.jpg)
166
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Connection
¬ Connection adalah representasi hubungan ke database¬ Connection dibuat dengan mendefinisikan url string yang
sesuai Connection con =
DriverManager.getConnection(“jdbc.odbc.mahasiswa”);
¬ Connection digunakan untuk membuat statement (queryyang akan dikirimkan ke database) dan mendapatkaninformasi tentang database
![Page 167: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/167.jpg)
167
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Query SQL
¬ query dikirimkan ke database dalam bentuk SQL Query.Beberapa perintah yang umum digunakan adalahsebagai berikut:
CREATE: untuk membuat table baru SELECT: untuk mengambil record dari database yang memenuhi
kriteria tertentu INSERT: untuk menambah record ke dalam suatu table UPDATE: untuk merubah isi record tertentu pada suatu table DELETE: untuk menghapus record pada suatu table DROP: untuk menghapus sebuah table
![Page 168: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/168.jpg)
168
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
CREATE TABLE
CREATE TABLE <NAMA TABLE> (<NAMA KOLOM> <TIPE>, <NAMA KOLOM> <TIPE>, ... PRIMARY KEY (<NAMA KOLOM>), FOREIGN KEY (<NAMA KOLOM>)
REFERENCES <NAMA_TABEL> (<NAMA KOLOM>))
¬ Tipe dari sebuah kolom dapat berupa: char(x), dimana x adalah ukuran/jumlah character, varchar(x), serupa dengan char, namun alokasinya dilakukan
secara variabel int(x), x adalah jumlah digit yang disediakan date, untuk tipe tanggal jenis tipe lain yang spesifik untuk setiap database
![Page 169: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/169.jpg)
169
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
SELECT
SELECT <NAMA KOLOM>, <NAMA KOLOM>, ...FROM <NAMA TABEL>WHERE <KONDISI>
¬ Select digunakan untuk mengambil record yangmemenuhi kriteria tertentu, yang diletakkan pada where.Contoh:
Select NAMA, ALAMAT from MAHASISWA whereNIM=“13592033”
![Page 170: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/170.jpg)
170
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
INSERT
INSERT INTO <NAMA TABEL> (<NAMA KOLOM>, <NAMA KOLOM>, ... )VALUES (<NILAI KOLOM>, <NILAI KOLOM>, ...)
![Page 171: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/171.jpg)
171
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
UPDATE
UPDATE <NAMA TABEL>SET (<NAMA KOLOM>=<NILAI KOLOM>, <NAMA KOLOM>=<NILAI KOLOM>, ...)WHERE <KONDISI>
![Page 172: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/172.jpg)
172
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
DELETE
DELETE FROM <NAMA TABEL>WHERE <KONDISI>
¬ DROPDROP <NAMA TABLE>
![Page 173: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/173.jpg)
173
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Statement
¬ Query yang akan dieksekusi oleh database¬ Contoh query:
CREATE TABLE MAHASISWA (NAMA VARCHAR(20), ALAMATVARCHAR(60), JURUSAN VARCHAR(20))
SELECT NAMA FROM MAHASISWA WHEREJURUSAN=“INFORMATIKA”
¬ Statement dibuat dengan memanggil createStatement dariobject Connection
![Page 174: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/174.jpg)
174
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Statement
¬ Statement yang tidak menghasilkan data dieksekusidengan memanggil method executeUpdate(), sedangkanstatement yang menghasilkan data dieksekusi denganmemanggil method executeQuery(), yang akanmenghasilkan object bertipe ResultSet
¬ Contoh: stmt = con.createStatement(); stmt.executeUpdate(“CREATE TABLE MAHASISWA ”+ “(NAMA VARCHAR(30), ALAMAT VARCHAR(30))”);
![Page 175: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/175.jpg)
175
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
PreparedStatement
¬ PreparedStatement: query yang memiliki parameter yangdapat di set. Contoh:
SELECT NAMA FROM MAHASISWA WHERE JURUSAN=?
¬ Simbol ? merepresentasikan sebuah parameter yang dapat diset.
¬ PreparedStatement dibuat dengan memanggil methodprepareStatement dari object Connection
¬ contoh: PreparedStatement stmt = con.prepareStatement(“SELECT *FROM MAHASISWA WHERE NAMA=?”);
stmt.setString(1, “Amir”); ResultSet rset = stmt.executeQuery();
![Page 176: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/176.jpg)
176
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
ResultSet
¬ ResultSet adalah table hasil query database¬ ResultSet diakses secara per baris table, dimana untuk
maju ke baris berikutnya digunakan method next()
dari object ResultSet¬ Untuk mengambil field tertentu dari current row (baris
saat ini) digunakan perintah: getString(String fieldname): jika tipe data field berupa string getInt(String fieldname) : jika tipe data field berupa integer, dst.
¬ Contoh: stmt = con.createStatement(); ResultSet rset = stmt.executeQuery(“SELECT * “ + ”FROM MAHASISWA”); String nama = rset.getString(“NAMA”);
![Page 177: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/177.jpg)
177
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Contoh membuat table
//File : CreateMahasiswa.java//Desc : implementasi pembentukan tabel Mahasiswaimport java.sql.*;public class CreateMahasiswa { public static void main(String args[]) { String url = "jdbc:odbc:mahasiswa"; String query = "create table MAHASISWA " + "(NIM CHAR(8),NAMA VARCHAR(32)," + "ALAMAT VARCHAR(100), " + ”JURUSAN VARCHAR(40))"; Statement stmt; Connection con; try { Class.forName(” sun.jdbc.odbc.JdbcOdbcDriver"); } catch(java.lang.ClassNotFoundException e) { System.err.print("ClassNotFoundException: "); System.err.println(e.getMessage()); }
![Page 178: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/178.jpg)
178
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
try { con = DriverManager.getConnection(url); stmt = con.createStatement(); stmt.executeUpdate(query); stmt.close(); con.close(); } catch(SQLException ex) { System.err.println("SQLException: " + ex.getMessage()); } }}
![Page 179: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/179.jpg)
179
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Contoh insert ke database
//File : InsertMahasiswa.java//Desc : implementasi insert data ke table Mahasiswaimport java.sql.*;public class InsertMahasiswa { public static void main(String args[]) { String url = "jdbc:odbc:mahasiswa"; String query = ”insert into MAHASISWA " + ”values (‘13592033’,‘Amir’,‘Dago’,”+ “‘Informatika’)”; Statement stmt; Connection con; try { Class.forName(” sun.jdbc.odbc.JdbcOdbcDriver"); } catch(java.lang.ClassNotFoundException e) { System.err.print("ClassNotFoundException: "); System.err.println(e.getMessage()); }
![Page 180: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/180.jpg)
180
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
try { con = DriverManager.getConnection(url); stmt = con.createStatement(); stmt.executeUpdate(query); stmt.close(); con.close();} catch(SQLException ex) { System.err.println("SQLException: " + ex.getMessage()); } }}
![Page 181: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/181.jpg)
181
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Contoh insert dengan PreparedStatement
//File : InsertMahasiswa2.java//Desc : implementasi insert data ke table Mahasiswaimport java.sql.*;public class InsertMahasiswa2 { public static void main(String args[]) { String url = "jdbc:odbc:mahasiswa"; String query = ”insert into MAHASISWA " + ”values ( ?, ?, ?, ?)”; PreparedStatement stmt; Connection con; try { Class.forName(” sun.jdbc.odbc.JdbcOdbcDriver"); } catch(java.lang.ClassNotFoundException e) { System.err.print("ClassNotFoundException: "); System.err.println(e.getMessage()); }
![Page 182: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/182.jpg)
182
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
try { con = DriverManager.getConnection(url); stmt = con.prepareStatement(query); stmt.setString(1, “13592033”); stmt.setString(2, “Amir”); stmt.setString(3, “Dago”); stmt.setString(4, “Informatika”); stmt.executeUpdate(); stmt.close(); con.close();} catch(SQLException ex) { System.err.println("SQLException: " + ex.getMessage()); } }}
![Page 183: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/183.jpg)
183
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Contoh query database
//File : SelectMahasiswa.java//Desc : implementasi pembentukan tabel Mahasiswaimport java.sql.*;public class SelectMahasiswa { public static void main(String args[]) { String url = "jdbc:odbc:mahasiswa"; String query = ”SELECT * FROM MAHASISWA”; Statement stmt; Connection con; try { Class.forName(”sun.jdbc.odbc.JdbcOdbcDriver"); } catch(java.lang.ClassNotFoundException e) { System.err.print("ClassNotFoundException: "); System.err.println(e.getMessage()); }
![Page 184: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/184.jpg)
184
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
try { con = DriverManager.getConnection(url); stmt = con.createStatement(); ResultSet rset = stmt.executeQuery(query); while(rset.next()) { System.out.println(“Nama: “+rset.getString(“NAMA”)); System.out.println(“Alamat: ”+ rset.getString(“ALAMAT”)); System.out.println(“Jurusan: ”+ rset.getString(“JURUSAN”)); } stmt.close(); con.close();} catch(SQLException ex) { System.err.println("SQLException: " + ex.getMessage()); } }}
![Page 185: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/185.jpg)
185
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Contoh query dengan parameter
//File : SelectMahasiswa2.java//Desc : implementasi pembentukan tabel Mahasiswaimport java.sql.*;public class SelectMahasiswa2 { public static void main(String args[]) { String url = "jdbc:odbc:mahasiswa"; String query = ”SELECT * FROM MAHASISWA “+ “where NAMA=?”; PreparedStatement stmt; Connection con; try { Class.forName(”sun.jdbc.odbc.JdbcOdbcDriver"); } catch(java.lang.ClassNotFoundException e) { System.err.print("ClassNotFoundException: "); System.err.println(e.getMessage()); }
![Page 186: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/186.jpg)
186
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
try { con = DriverManager.getConnection(url); stmt = con.prepareStatement(query); stmt.setString(1, “Amir”); ResultSet rset = stmt.executeQuery(); while(rset.next()) { System.out.println(“Nama: “+rset.getString(“NAMA”)); System.out.println(“Alamat: ”+ rset.getString(“ALAMAT”)); System.out.println(“Jurusan: ”+ rset.getString(“JURUSAN”)); } stmt.close(); con.close();} catch(SQLException ex) { System.err.println("SQLException: " + ex.getMessage()); } }}
![Page 187: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/187.jpg)
187
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Java Networking
![Page 188: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/188.jpg)
188
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
java.net
¬ package java untuk jaringan¬ kelas yg umum digunakan dari java.net
InetAddress: merepresentasikan alamat host (IP atau nama) Socket: untuk berkomunikasi dengan komputer lain pada sisi
client ServerSocket: untuk berkomunikasi dengan komputer lain pada
sisi server URL: merepresentasikan URL (contohnya:
http://www.informatika.org)
![Page 189: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/189.jpg)
189
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Contoh program untuk query hostname
import java.net.*;public class IPName {
public static void main(String args[]) {
try { InetAddress h1 =
InetAddress.getByName( args[0] ); System.out.println(h1.getHostAddress());
} catch (Exception e) { System.out.println( e );
} }
}
![Page 190: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/190.jpg)
190
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
InetAddress
¬ Merepresentasikan sebuah alamat pada internet¬ Satu object InetAddress merepresentasikan satu alamat¬ InetAddress getByName(String hostname)
method untuk membuat object InetAddress dari sebuah hostnameatau IP address
¬ String getHostName() mengembalikan nama host dari object InetAddress
¬ byte[] getAddress() mengembalikan raw IP address (dalam bentuk byte array)
¬ String getHostAddress() mengembalikan IP address dalam bentuk String
![Page 191: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/191.jpg)
191
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Contoh program dengan menggunakan URL
import java.net.*; import java.io.*;public class BacaURL { public static void main(String args[]) { try { URL url = new URL( args[0] ); BufferedReader in = new BufferedReader( new InputStreamReader( url.openStream())); String s; while ((s = in.readLine()) != null) System.out.println(s); in.close(); } catch (Exception e) { System.out.println( e ); } }}
![Page 192: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/192.jpg)
192
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
URL
¬ Merepresentasikan URL¬ URL: Uniform Resource Locator, sebuah identifier ke suatu
resource (file, direktori) pada Internet¬ URL terdiri atas 3 bagian, protocol, host name dan pathname¬ Contoh: http://www.informatika.org/java/index.html¬ Fungsi yang disediakan:
String getProtocol()• mengambil protocol dari URL
String getHost()• mengambil hostname dari URL
String getFile()• mengambil filename dari URL
String getPath()• mengambil pathname dari URL
InputStream openStream()• membuka input stream dari URL, untuk membaca
dokumen dari URL tersebut.
![Page 193: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/193.jpg)
193
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Contoh program dengan socket
import java.io.*;import java.net.*;
public class EchoServer { public static void main(String[] args) { ServerSocket serverSocket = null; Socket clientSocket = null; PrintWriter out = null; BufferedReader in = null; try { serverSocket = new ServerSocket(4444); System.out.println("server siap ..."); while(true) { clientSocket = serverSocket.accept(); out = new PrintWriter(clientSocket.getOutputStream(), true); in = new BufferedReader(new InputStreamReader( clientSocket.getInputStream()));
![Page 194: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/194.jpg)
194
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
String s = in.readLine(); System.out.println("menerima: "+ s);
out.println( "jawaban server: "+ s ); System.out.println("mengirim: "+ "jawaban server:"+ s)
} } catch (Exception e) {
System.out.println( e ); clientSocket.close();
serverSocket.close(); }
}}
![Page 195: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/195.jpg)
195
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Contoh program socket
import java.io.*;import java.net.*;
public class D3EchoClient {
public static void main(String[] args){ Socket socket = null;
PrintWriter out = null; BufferedReader in = null;
try { socket = new Socket("localhost", 4444 );
out = new PrintWriter(socket.getOutputStream(),true); in = new BufferedReader(new
InputStreamReader(socket.getInputStream()));
![Page 196: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/196.jpg)
196
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
String s; out.println( args[0] );
System.out.println("kirim teks: "+ args[0] ); s = in.readLine();
System.out.println("terima teks: "+ s ); in.close();
out.close(); socket.close();
} catch (Exception e) { e.printStackTrace();
} }
}
![Page 197: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/197.jpg)
197
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Socket
¬ Socket adalah representasi komunikasi data antara 2 buahkomputer/program (dapat dari komputer yang sama)
¬ Socket dibuat dengan memberikan hostname dan portnamedari komputer yang dituju
Socket s = new Socket(“www.informatika.org”, 80);
¬ Method yang disediakan: InputStream getInputStream() OutputStream getOutputStream() int getReceiveBufferSize() setReceiveBufferSize(int s) int getSendBufferSize() setSendBufferSize(int s)
![Page 198: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/198.jpg)
198
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
ServerSocket
¬ Socket yang digunakan pada sisi server¬ ServerSocket akan menunggu koneksi dari client pada
port tertentu. Jika terdapat client yang menghubungiserver, ServerSocket akan membuat socket baru yangmerepresentasikan koneksi dengan client tersebutSocket accept()
• menunggu koneksi dari client, setelah ada, menghasilkanobject socket
![Page 199: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/199.jpg)
199
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Thread
¬ satuan titik eksekusi program¬ multithreading: aplikasi yang berjalan dengan lebih dari satu
thread, sehingga seakan-akan ada 2 program paraleldijalankan bersamaan
¬ contoh:class Thread1 extends Thread { int x=1; public Thread1() { } public void run() { try { while(true) { System.out.println("Thread 1: loop ke "+x); x++; } } catch(Exception e) { e.printStackTrace(); } } public static void main(String a[]) { Thread1 t1 = new Thread1(); Thread1 t2 = new Thread1(); t1.start(); t2.start(); }}
![Page 200: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/200.jpg)
200
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Membuat thread
¬ Thread baru dibuat dengan: membuat object yang diturunkan dari kelas Thread (lihat contoh
sebelumnya), dan memanggil method start dari object tsb. membuat object dari kelas yang mengimplementasikan interface
Runnable, membuat object Thread dengan object Runnable tadi sebagaiparameter, memanggil method start dari object thread. contoh:class MyRunnable implements Runnable { public void run() { while(true) System.out.println(“my runnable object”); } public static void main(String a[]) { MyRunnable myrun = new MyRunnable(); Thread t1 = new Thread(myrun); t1.start(); }}
Note: interface Runnable mensyaratkan method run() harusdiimplementasikan
![Page 201: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/201.jpg)
201
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Membuat server multithreading
¬ server harus melayani lebih dari satu client pada saatbersamaan, sehingga harus diimplementasikan sebagaimultithreaded server
¬ cara: setiap ada client baru, dibuat sebuah thread untukmelayaninya.
while(true) { clientSocket = serverSocket.accept();
MyThread t1 = new MyThread(clientSocket); t1.start(); }
¬ Di mana MyThread adalah sebuah kelas yang diturunkan dariThread
class MyThread extends Thread { Socket socket; public MyThread(Socket s) { socket = s; }
![Page 202: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/202.jpg)
202
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Contoh: Buat server file
¬ Client menghubungi server dengan mengirimkan namafile yang akan diambil
¬ server membaca file yang diminta dan mengirimkannyake server
¬ jawaban server terdiri atas satu baris status hasil danbaris berikutnya berupa file yang diminta
Client Server
![Page 203: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/203.jpg)
203
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Contoh: server file
public class FileThread extends Thread{ Socket socket; public FileThread(Socket s) { socket = s; }
public void run() { InputStream in = s.getInputStream(); OutputStream out = s.getOutputStream(); BufferedReader bin = new BufferedReader( new InputStreamReader( in )); // baca filename dari client String fileName = bin.readLine(); // buka file dengan nama tersebut FileInputStream fin = new FileInputStream(fileName); // tulis status pembukaan file ke client
while( masih ada data dari file) // kirim data dari file ke client }}
![Page 204: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/204.jpg)
204
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
thread-safe & synchronize
¬ thread-safe: beberapa thread dapat mengakses objectyang sama pada waktu bersamaan. Variable sebuahobject dapat menjadi tidak konsisten karena diubah olehdua thread pada saat bersamaan. Thread-safe adalahkondisi dimana sebuah object dapat tetap konsistenwalaupun diakses oleh banyak thread pada saatbersamaan
¬ synchronize adalah parameter yang dapat diterapkankepada method agar object tersebut thread-safe
¬ dengan synchronize, sebuah method pada setiap saatpasti hanya dieksekusi oleh sebuah thread saja.
![Page 205: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/205.jpg)
205
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Contoh:
public class Counter { int count = 1; public int getValue () { count++; return count; }}
public class CounterThread extends Thread { public CounterThread() {} public void run() { Counter c = new Counter(); while(true) { System.out.println(“counter: “+c.getValue()); } }
public static void main(String a[]) { CounterThread t1 = new CounterThread(); CounterThread t2 = new CounterThread(); t1.start(); t2.start(); }}
![Page 206: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/206.jpg)
206
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Java Servlet
![Page 207: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/207.jpg)
207
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Java Servlet
¬ Servlet: aplikasi java yang dieksekusi pada Web server
![Page 208: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/208.jpg)
208
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Mengapa Object Oriented
¬ Why Object Oriented: Software development pada awalnya cenderung fokus kepada cara
berpikir mesin: prosedural. Data+Algoritma = program.
Masalah yang harus dipecahkan semakin kompleks, paradigma mesintidak mencukupi untuk mengembangkan software sesuai dengankebutuhan masa kini.
Level abstraksi: Mesin – Assembly language – Programming Language –Implementation Design – High Level Design – Software Requirement.
Object Oriented adalah paradigma pengembangan software yangmembuat metodologi pemecahan masalah lebih dekat kepada domainpermasalahan dibandingkan domain mesin.
permasalahan di bidang software engineering: software crisis, rapidsoftware development, software complexity, software maintenance,evolutionary techniques.
![Page 209: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/209.jpg)
209
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Interface & Callback
¬ Interface dapat digunakan untuk mendefinisikan antarmuka sebuah callback
Tampilan
MouseHandlerinterface
onMousePressed
MouseHandlerimplementation 1
onMousePressed
MouseHandlerimplementation 2
onMousePressed
![Page 210: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/210.jpg)
210
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Permainan kartu
¬ terdapat setumpuk kartu, terdiri atas 52 kartu dengan 4suit. Tumpukan kartu tersebut dapat dikocok dandibagikan ke sejumlah pemain. Sisa yang tidakdibagikan diletakkan ditengah meja, dan disebut sebagaidraw pile. Kartu-kartu dimainkan oleh pemain dengancara meletakkan pada meja, dan diletakkan padatumpukan kartu yang telah dimainkan yang dinamakandiscard pile.
![Page 211: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/211.jpg)
211
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Contoh kasus:
¬ vending machine sebuah vending machine menampilkan daftar produk yg dapat
dibeli, antara lain permen, kue, coklat dan chips. Harga masing-masing produk adalah sbb:
• permen : Rp. 500,-• kue : Rp. 600,-• coklat : Rp. 1200,-• chips : Rp. 1000,-
pembeli dapat memasukkan sejumlah uang, dan memilih produkyang diinginkannya. Machine akan memberikan produk tersebut,dan memberikan kembaliannya.
![Page 212: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/212.jpg)
212
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Contoh kasus:
¬ algoritma solusi umum: loop
• tampilkan pilihan produk• input uang dari pembeli• input pilihan dari pembeli• hitung kembalian• output produk & kembalian
![Page 213: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/213.jpg)
213
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Solusi
for( ; ; ) { uang = InputMoney(); PrintMenu(); pil = InputPil(); switch (pil) { case 0: kembali = uang; break; // batal case 1: kembali = uang - 500; break;// permen case 2: kembali = uang - 600; break; // kue case 3: kembali = uang - 1200; break; // coklat case 4: kembali = uang - 1000; // chips } if ((kembali >= 0) && (pil != 0)) { OutputProduk(pil); OutputMoney(kembali); } else { System.out.println(“uang tidak cukup/batal”); OutputMoney(uang); }}
![Page 214: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/214.jpg)
214
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Solusi OO
Produk
Chips Coklat PermenChips
![Page 215: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/215.jpg)
215
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Contoh kasus
¬ buat program untuk menggambar bentuk (square,rectange, circle, etc) di layar.
¬ informasi yang harus disimpan: jenis bentuk, posisi,ukuran.
¬ solusi:class Rectangle {
int}
![Page 216: java - ftsi.files. · PDF fileclient-server membuat instans ... ‹Architecture Neutral and Portable ... definisi kelas baru dapat ditambahkan pada saat run-time](https://reader038.vdocuments.site/reader038/viewer/2022102603/5a72b8ff7f8b9aac538dcf09/html5/thumbnails/216.jpg)
216
Achmad Imam Kistijantoro- Diktat Java ProgrammingTeknik - Informatika ITB, Juli - Agustus 2000
Solusi
void draw(Bentuk b) { switch(b.Jenis) {
case 1: drawSquare(b); break; case 2: drawRectangle(b); break;
case 3: drawCircle(b); break; }
}