0% menganggap dokumen ini bermanfaat (0 suara)
6 tayangan127 halaman

Panduan Lengkap Pemrograman Java

Dokumen ini adalah catatan perkuliahan tentang Pemrograman Java untuk mahasiswa B.Tech II tahun II, yang mencakup konsep dasar OOP, pewarisan, polimorfisme, penanganan pengecualian, multithreading, dan pemrograman GUI. Tujuannya adalah untuk memperkenalkan siswa pada bahasa pemrograman Java dan mempersiapkan mereka untuk membuat program menggunakan fitur berorientasi objek. Selain itu, dokumen ini juga mencantumkan buku teks dan referensi yang relevan untuk mendukung pembelajaran.

Diterjemahkan oleh

ScribdTranslations
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
6 tayangan127 halaman

Panduan Lengkap Pemrograman Java

Dokumen ini adalah catatan perkuliahan tentang Pemrograman Java untuk mahasiswa B.Tech II tahun II, yang mencakup konsep dasar OOP, pewarisan, polimorfisme, penanganan pengecualian, multithreading, dan pemrograman GUI. Tujuannya adalah untuk memperkenalkan siswa pada bahasa pemrograman Java dan mempersiapkan mereka untuk membuat program menggunakan fitur berorientasi objek. Selain itu, dokumen ini juga mencantumkan buku teks dan referensi yang relevan untuk mendukung pembelajaran.

Diterjemahkan oleh

ScribdTranslations
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

PEMROGRAMAN JAVA

[R17A0507]

CATATAN PERKULIAHAN

[Link] II TAHUN–II SEM (R17)


(2018-19)

DEPARTEMEN ILMU KOMPUTER & KEJURUTERAAN

KOLLEGE MALLA REDDY TEKNOLOGI & REKAYASA


(Institusi Otonom–UGC, Pemerintah India)
(Terafiliasi dengan JNTUH, Hyderabad, Disetujui oleh AICTE - Terakreditasi oleh NBA & NAAC– Grade 'A' - Bersertifikat ISO 9001:2015)
Maisammaguda, Dhulapally (Kantor Pos Via. Hakimpet), Secunderabad–500100, Negara Bagian Telangana, INDIA.
KOLKAS REDDY PERGURUAN TINGGI TEKNOLOGI DAN ENGINERING
DEPARTEMEN ILMU KOMPUTER & REKAYASA
(R17A0507) PEMROGRAMAN JAVA
Tujuan:
Subjek ini bertujuan untuk memperkenalkan siswa pada bahasa pemrograman Java. Setelah
setelah menyelesaikan mata pelajaran ini, mahasiswa diharapkan mampu membuat program Java yang
manfaatkan fitur berorientasi objek dari bahasa Java, seperti enkapsulasi, pewarisan dan
polymorphism; use data types, arrays and other data collections; implement error-handling
teknik menggunakan penanganan pengecualian, membuat dan GUI yang dipicu peristiwa menggunakan komponen Swing.

UNIT-I
OOP Concepts:-Data abstraction, encapsulation, inheritance, Benefits of Inheritance,
Polimorfisme, kelas dan objek, Paradigma pemrograman prosedural dan berorientasi objek.
Pemrograman Java - Sejarah Java, komentar, Tipe data, Variabel, Konstanta, Lingkup dan
Masa hidup variabel, Operator, Hierarki Operator, Ekspresi, Konversi tipe dan casting,
Tipe yang terenumerasi, Alur kontrol - ruang lingkup blok, pernyataan bersyarat, loop, break, dan continue
pernyataan, program java mandiri sederhana, array, input dan output konsol, format output
konstruktor, metode, pengoperasian parameter, field dan metode statis, kontrol akses, referensi ini
overloading metode dan konstruktor, rekursi, pengumpulan sampah, membangun string, menjelajahi
kelas string.

UNIT–II
Pewarisan–Hierarki pewarisan kelas super dan sub, Aturan akses anggota, super
kata kunci, mencegah pewarisan: kelas dan metode final, kelas Object dan metode-metodenya.
Polimorfisme–perikatan dinamis, penimpaan metode, kelas dan metode abstrak.
Antarmuka-Antarmuka Vs Kelas Abstrak, mendefinisikan antarmuka, menerapkan antarmuka, mengakses
implementasi melalui referensi antarmuka, memperluas antarmuka.
Kelas inner - Penggunaan kelas inner, kelas inner lokal, kelas inner anonim, kelas inner statis
kelas, contoh.
Packages-Defining, creating and accessing a package, Understanding CLASSPATH, importing
paket.

UNIT-III
Penanganan pengecualian - Menangani kesalahan, manfaat penanganan pengecualian, klasifikasi
eksepsi - hierarki eksepsi, eksepsi terkontrol dan eksepsi tidak terkontrol, penggunaan try,
catch, throw, throws and finally, rethrowing exceptions, exception specification, built in
pengecualian, membuat subclass pengecualian sendiri.
Multithreading–Perbedaan antara beberapa proses dan beberapa utas, status utas,
membuat utas, menginterupsi utas, prioritas utas, menyinkronkan utas, antar utas
komunikasi, pola produsen konsumen, Menjelajahi [Link] dan [Link].

UNIT-IV
Kerangka Koleksi di Java – Pengenalan koleksi java, Ikhtisar koleksi java
kerangka kerja, Generik, kelas koleksi yang umum digunakan - Daftar Array, Vektor, Tabel Hash, Tumpukan
Enumerasi, Iterator, Tokenisasi String, Acak, Pemindai, Kalender dan Properti.
File-Streaming-Aliran byte, Aliran karakter, Input/Output teks, Input/Output biner, acak
akses operasi file, Manajemen file menggunakan kelas File.
Menghubungkan ke Database–Driver JDBC Tipe 1 hingga 4, Menghubungkan ke database, melakukan kueri
basis data dan memproses hasilnya, memperbarui data dengan JDBC.

UNIT-V
Pemrograman GUI dengan Java - Hierarki kelas AWT, Pengenalan ke Swing, Swing Vs
AWT, Hierarchy for Swing components, Containers–Jframe, JApplet, JDialog, JPanel
Tinjauan beberapa komponen Swing–JButton, JLabel, JTextField, JTextArea, Swing sederhana
aplikasi, Manajemen tata letak–jenis pengelola tata letak–border, grid dan flow
Penanganan Acara - Acara, Sumber Acara, Kelas Acara, Pendengar Acara, Hubungan antara
Sumber acara dan Pendengar, Model acara delegasi, Contoh: Menangani klik tombol
Menangani peristiwa Mouse, kelas Adapter.
Applet - Hierarki pewarisan untuk applet, perbedaan antara applet dan aplikasi, Kehidupan
siklus applet, Mengoper parameter ke applet, masalah keamanan applet.

BUKU TEKS:
1. Java Fundamentals–A Comprehensive Introduction, Herbert Schildt and Dale Skrien,
TMH.
BUKU REFERENSI:
[Link] untuk Programmer, [Link] dan [Link], PEA (atau) Java: Cara Memprogram
[Link] dan [Link], PHI
[Link] Berorientasi Objek melalui Java, P. Radha Krishna, Universitas Press.
[Link] in Java, Bruce Eckel, PE
[Link] di Java, S. Malhotra dan S. Choudhary, Oxford Universities Press.

Hasil Kursus:

Pemahaman tentang prinsip dan praktik analisis serta desain berorientasi objek dalam
pembangunan program yang kuat dan mudah dipelihara yang memenuhi kebutuhan mereka;
Kompetensi untuk merancang, menulis, mengompilasi, menguji, dan menjalankan program yang sederhana menggunakan
bahasa tingkat tinggi
Sebuah penghargaan terhadap prinsip-prinsip pemrograman berorientasi objek;
Kesadaran akan kebutuhan pendekatan profesional terhadap desain dan pentingnya
dokumentasi yang baik untuk program yang selesai.
Mampu menerapkan, mengompilasi, menguji, dan menjalankan program Java yang terdiri dari lebih dari satu
kelas, untuk menangani masalah perangkat lunak tertentu.
Demonstrate the ability to use simple data structures like arrays in a Java program.
Mampu memanfaatkan anggota kelas yang ditemukan dalam API Java (seperti kelas Math).
KULIAH REDDY KELAS TEKNIK & TEKNOLOGI
DEPARTEMEN ILMU KOMPUTER & TEKNIK

INDeks

S. No Unit Topik Halaman no

1 OOP Concepts:-Data abstraction, encapsulation inheritance 1


Saya

2 Manfaat dari Warisan 2


Saya

3 Saya Polimorfisme, kelas dan objek 2

4 Saya Paradigma pemrograman prosedural dan berorientasi objek 3

5 Saya Pemrograman Java - Sejarah Java 4

6 Saya Komentar, Tipe data, Variabel, Konstanta 5-9

7 Saya Ruang Lingkup dan Masa Hidup Variabel 10

8 Saya Operator, Hierarki Operator, Ekspresi 11-12

9 Saya Konversi tipe dan casting, Tipe Enumerasi 12-13

Alur kontrol - ruang lingkup blok, pernyataan bersyarat, loop, break


10 Saya 13-14
dan melanjutkan pernyataan

11 Saya Program java mandiri sederhana, array 14-18

12 Saya Input dan output konsol, memformat output 18-19

13 Saya Konstruktor, metode, pengiriman parameter 19-20

14 Saya Static fields and methods, access control, this reference, 21-30

Overloading metode dan konstruktor, rekursi, pengumpulan sampah


15 Saya 30-34
koleksi
Membangun string, menjelajahi kelas string.
16 Saya 34-36
No. S Unit Topik Halaman no

Pewarisan – Hierarki pewarisan kelas super dan sub


17 II 37-40
Aturan akses anggota
kata kunci super, mencegah pewarisan: kelas final dan
18 II 40-41
metode, kelas Object dan metode-metodenya.

19 II Polimorfisme–pengikatan dinamis, penggantian metode, 41-42

20 II kelas dan metode abstrak. 43

Antarmuka-Antarmuka Vs Kelas Abstrak, mendefinisikan sebuah


21 II 43-44
antarmuka, menerapkan antarmuka
Mengakses implementasi melalui referensi antarmuka,
22 II 45
memperluas antarmuka.

23 II Kelas dalam - Penggunaan kelas dalam, kelas dalam lokal 45-46

24 II Kelas dalam anonim, kelas dalam statis, contoh. 46

25 II Paket - Mendefinisikan, membuat, dan mengakses sebuah paket 46-47

26 II Memahami CLASSPATH, mengimpor paket. 47

Penanganan pengecualian - Menangani kesalahan, manfaat pengecualian


27 III 48
penanganan
Klasifikasi pengecualian - hierarki pengecualian, diperiksa
28 III eksepsi dan eksepsi yang tidak terpantau
48-50

29 III Penggunaan try, catch, throw, throws, dan finally 50-54

30 III Melempar kembali pengecualian, spesifikasi pengecualian, 54

31 III Pengecualian bawaan, membuat subkelas pengecualian sendiri. 54

Multithreading–Perbedaan antara beberapa proses dan


32 III 55-56
beberapa utas, status utas
Membuat utas, menghentikan utas, prioritas utas,
33 III 56-59
mensinkronkan utas

34 III Komunikasi antar utas, pola produsen konsumen 59

35 III Menjelajahi [Link] dan [Link]. 60


Tidak ada Unit Topik Page no

Kerangka Koleksi di Java – Pengenalan ke java 62


36 IV
collections, Overview of java collection framework, Generics
Kelas koleksi yang umum digunakan - Daftar Array, Vektor, Hash
37 IV 63-71
table, Stack, Enumeration, Iterator

38 IV String Tokenizer, Random, Scanner, Calendar, dan Properties. 71-76

Berkas-Aliran-Aliran byte, Aliran karakter, Teks


39 IV 77-82
input/output, Binary input/output
Operasi file akses acak, Manajemen file menggunakan File
40 IV 83-84
kelas.
Menghubungkan ke Database–Driver JDBC Tipe 1 hingga 4
41 IV
Menghubungkan ke sebuah basis data,
85-88

Menanyakan database dan memproses hasilnya, memperbarui data


42 IV dengan JDBC. 89-94

Pemrograman GUI dengan Java - Hierarki kelas AWT


43 V Introduction to Swing, Swing Vs AWT, Hierarchy for Swing 95-100
komponen
44 V Kontainer–Jframe, JApplet, JDialog, JPanel 100-104

Tinjauan beberapa komponen Swing–JButton, JLabel


45 V 104-108
JTextField, JTextArea, aplikasi Swing sederhana,
Manajemen tata letak–Jenis pengelola tata letak–border, grid dan
46 V 109-111
aliran
Penanganan Acara-Acara, Sumber Acara, Kelas Acara, Acara
47 V 111-112
Pendengar,
Hubungan antara sumber Acara dan Pendengar, Delegasi
48 V 112-113
model acara
{"Handling a button click":"Menangani klik tombol","Handling Mouse events":"Menangani acara mouse","Adapter":"Adapter"}
49 V 114-116
kelas.

50 V Applet–Hierarki pewarisan untuk applet 118-119

{"differences":"Perbedaan antara applet dan aplikasi","life_cycle":"Siklus hidup sebuah"}


51 V 120
applet

52 V Meneruskan parameter ke applet, masalah keamanan applet. 121


KULIAH MALLA REDDY TEKNOLOGI DAN ENGENERING
DEPARTEMEN ILMU KOMPUTER & TEKNIK
Unit-1
Konsep OOP

Pemrograman Berorientasi Objek adalah sebuah paradigma yang menyediakan banyak konsep seperti

pewarisan, pengikatan data, polimorfisme, dll.

Simulais dianggap sebagai bahasa pemrograman berorientasi objek pertama.


paradigma di mana segala sesuatu diwakili sebagai objek dikenal sebagai benar-benar berorientasi objek
bahasa pemrograman.

Smalltalk dianggap sebagai bahasa pemrograman berorientasi objek yang pertama kali nyata.

OOPs (Sistem Pemrograman Berorientasi Objek)

Objek berarti entitas dunia nyata seperti pena, kursi, meja, dll. Pemrograman Berorientasi Objek adalah
sebuah metodologi atau paradigma untuk merancang program menggunakan kelas dan objek. Ini menyederhanakan
pengembangan perangkat lunak dan pemeliharaan dengan memberikan beberapa konsep:

o Objek
o Kelas
o Warisan
o Polimorfisme
o Abstraksi
o Enkapsulasi

Objek

Setiap entitas yang memiliki keadaan dan perilaku dikenal sebagai objek. Contohnya: kursi, pena, meja,
keyboard, sepeda, dll. Itu bisa berupa fisik dan logis.

Kelas

Kumpulan objek disebut kelas. Ini adalah entitas logis.

Warisan

Ketika suatu objek memperoleh semua properti dan perilaku objek induk, yaitu dikenal sebagai
pewarisan. Ini menyediakan penggunaan kembali kode. Ini digunakan untuk mencapai polimorfisme waktu jalan.

PENYUSUNAN PROGRAM JAVA Page 1


Polimorfisme

Ketika satu tugas dilakukan dengan cara yang berbeda, itu dikenal sebagai polimorfisme. Contohnya: untuk
meyakinkan pelanggan dengan cara yang berbeda, untuk menggambar sesuatu misalnya bentuk atau persegi panjang dll.

Dalam java, kita menggunakan overloading metode dan overriding metode untuk mencapai polimorfisme.

Contoh lain bisa jadi berbicara tentang sesuatu misalnya kucing berbicara meow, anjing menggonggong woof, dll.

Abstraksi

Menyembunyikan detail internal dan menunjukkan fungsionalitas dikenal sebagai abstraksi. Contohnya: telepon
panggilan, kami tidak tahu pemrosesan internal.

Dalam java, kita menggunakan kelas abstrak dan antarmuka untuk mencapai abstraksi.

Enkapsulasi

Mengikat (atau membungkus) kode dan data bersama-sama menjadi satu unit dikenal sebagai enkapsulasi.
Misalnya: kapsul, itu dibungkus dengan berbagai obat.

Kelas java adalah contoh dari enkapsulasi. Java bean adalah kelas yang sepenuhnya terenkapsulasi karena semua
anggota data bersifat pribadi di sini.

Manfaat Warisan

Salah satu manfaat utama dari pewarisan adalah meminimalkan jumlah kode duplikat dalam
aplikasi dengan berbagi kode umum di antara beberapa subclass. Di mana kode yang setara
ada dalam dua kelas terkait, hierarki biasanya dapat direfaktorisasi untuk memindahkan yang umum
kode hingga superclass yang saling terkait. Ini juga cenderung menghasilkan organisasi kode yang lebih baik dan

unit kompilasi yang lebih kecil dan lebih sederhana.

Pewarisan juga dapat membuat kode aplikasi lebih fleksibel untuk perubahan karena kelas yang
warisan dari superclass umum dapat digunakan secara bergantian. Jika tipe pengembalian dari a

metode adalah superkelas

Reusabilitas - fasilitas untuk menggunakan metode publik dari kelas dasar tanpa menulis kembali yang sama.

Ekstensi - memperluas logika kelas dasar sesuai dengan logika bisnis dari kelas turunan.

PEMROGRAMAN JAVA Page 2


Penyembunyian data - kelas dasar dapat memutuskan untuk menjaga beberapa data tetap pribadi sehingga tidak dapat diakses.

diubah oleh kelas turunan


Paradigma pemrograman prosedural dan berorientasi objek

PEMROGRAMAN JAVA Page 3


Pemrograman Java - Sejarah Java

Sejarah Java dimulai dari Tim Hijau. Anggota tim Java (juga dikenal
Tim Hijau), memulai tugas revolusioner untuk mengembangkan sebuah bahasa untuk digital
perangkat seperti kotak penerima, televisi, dll.

Bagi anggota tim hijau, itu adalah konsep yang maju pada waktu itu. Tapi, itu adalah
cocok untuk pemrograman internet. Kemudian, teknologi Java diintegrasikan oleh
Netscape.

Saat ini, Java digunakan dalam pemrograman internet, perangkat seluler, permainan, e-bisnis
solusi dll. Ada poin-poin utama yang menjelaskan sejarah Java.

James Gosling, Mike Sheridan, dan Patrick Naughton memulai Java


proyek bahasa pada Juni 1991. Tim kecil insinyur matahari yang disebut Green
Tim.

2) Awalnya dirancang untuk sistem kecil dan tertanam dalam peralatan elektronik seperti set-
kotak atas.

3) Pertama-tama, itu disebut "Greentalk" oleh James Gosling dan ekstensi file-nya adalah .gt.

4) Setelah itu, disebut Oak dan dikembangkan sebagai bagian dari Green
proyek.

Sejarah Versi Java

Ada banyak versi Java yang telah dirilis. Rilis stabil Java saat ini
adalah Java SE 8.

JDK Alpha dan Beta (1995)


2. JDK 1.0 (23 Jan, 1996)
3. JDK 1.1 (19 Februari, 1997)
4. J2SE 1.2 (8 Des, 1998)
5. J2SE 1.3 (8 Mei, 2000)
J2SE 1.4 (6 Februari, 2002)
7. J2SE 5.0 (30 Sep, 2004)
8. Java SE 6 (11 Des, 2006)
9. Java SE 7 (28 Juli, 2011)
[Link] SE 8 (18 Maret, 2014)

PEMROGRAMAN JAVA Page 4


Fitur-fitur Java
Ada banyak fitur dari Java. Mereka juga dikenal sebagai kata kunci Java. Fitur Java.
berikut adalah sederhana dan mudah dipahami.
[Link]
[Link] Objek
[Link] Portable

4. Mandiri platform
[Link]
Kuat
[Link] netral
[Link]
[Link]

[Link] Tinggi
[Link]
[Link]

Komentar Java

Komentar java adalah pernyataan yang tidak dieksekusi oleh compiler dan interpreter.
komentar dapat digunakan untuk memberikan informasi atau penjelasan tentang variabel, metode, kelas atau
pernyataan apa pun. Ini juga dapat digunakan untuk menyembunyikan kode program untuk waktu tertentu.

Jenis-Jenis Komentar Java

Ada 3 jenis komentar di java.

[Link] Baris Tunggal


[Link] Multi Baris
[Link] Dokumentasi

Komentar Satu Baris Java

Komentar satu baris digunakan untuk memberi komentar hanya pada satu baris.

Sintaksis:

//Ini adalah komentar satu baris

PEMROGRAMAN JAVA Page 5


Contoh:

publik kelas ContohKomentar1 {


publik statis void main(String[] args) {
inti=10;//Here, i is a variable
[Link](i);
}
}

Output:

10

Komentar Multi Baris Java

Komentar multi-baris digunakan untuk mengomentari beberapa baris kode.

Sintaksis:

/*
Ini
adalah
beberapa baris
komentar
*/

Contoh:

public classCommentExample2 {
publik statis voidmain(String[] args) {
/* Mari kita deklarasikan dan

cetak variabel di java.


inti=10;
[Link](i);
}}

Output:

10

PEMOGRAMAN JAVA Page 6


Komentar Dokumentasi Java

The documentation comment is used to create documentation API. To create documentation API, you need
menggunakan alat javadoc.

Sintaksis:

/**
Ini
adalah
dokumentasi
komentar
*/

Contoh:

/* Kelas Kalkulator menyediakan metode untuk mendapatkan penjumlahan dan pengurangan dari 2 angka yang diberikan. */

kelas Publik Kalkulator {


/** Metode add() mengembalikan penjumlahan dari angka yang diberikan. */

publik statis int tambah(int a, int b) { return a + b; }

/** Metode sub() mengembalikan hasil pengurangan dari angka yang diberikan.*/

public static int sub(int a, int b) { return a - b; }

Kompilasi dengan alat javac:

javac [Link]

Create Documentation API by javadoc tool:

javadoc [Link]

Sekarang, akan ada file HTML yang dibuat untuk kelas Kalkulator Anda di direktori saat ini. Buka HTML
berkas dan lihat penjelasan tentang kelas Kalkulator yang disediakan melalui komentar dokumentasi.

PENGPROGRAMAN JAVA Page 7


Tipe Data
Tipe data mewakili nilai yang berbeda untuk disimpan dalam variabel. Di Java, ada dua jenis tipe data:

o Primitive data types


o Tipe data non-primitif

Tipe Data Nilai Default Ukuran default

boolean False 1 bit

karakter 2 byte

byte 0 1 byte

pendek 0 2 byte

int 0 4 byte

panjang 0L 8 byte

mengapung 0.0f 4 byte

ganda 0.0d 8 byte

Contoh Variabel Java: Menambahkan Dua Angka


kelasSederhana{
publik statis void main(String[] args){
inta=10;
intb=10;
intc=a+b;
[Link](c);
}}

Output:20

PEMROGRAMAN JAVA Page 8


Variabel dan Tipe Data dalam Java

Variable is a name of memory location. There are three types of variables in java: local, instance
dan statis.

Ada dua jenis tipe data di Java: primitif dan non-primitif.

Jenis Variabel
Ada tiga jenis variabel dalam Java:

o variabel lokal
o variabel instance
o variabel statis

1) Variabel Lokal

Sebuah variabel yang dideklarasikan di dalam metode disebut sebagai variabel lokal.

2) Variabel Instance

Sebuah variabel yang dideklarasikan di dalam kelas tetapi di luar metode, disebut variabel instan. Itu
tidak dideklarasikan sebagai statis.

3) Variabel statis

Sebuah variabel yang dideklarasikan sebagai statis disebut variabel statis. Itu tidak dapat bersifat lokal.

Kami akan mempelajari variabel-variabel ini dengan detail di bab-bab berikutnya.

Contoh untuk memahami jenis-jenis variabel dalam java

kelasA{
intdata=50;//variabel instance
static intm=100;//variable statis
voidmethod(){
intn=90;//variabel lokal
}
}//akhir dari kelas

Konstanta dalam Java

Konstanta adalah variabel yang tidak dapat mengubah nilainya setelah deklarasi. Ini menggunakan 'final'
kata kunci.

Sintaksis
modifierfinaldataType namaVariabel = nilai;//konstanta global

modifikator statis akhir tipeData namaVariabel = nilai;//konstanta dalam c

PEMROGRAMAN JAVA Page 9


Cakupan dan Umur Variabel
Lingkup sebuah variabel mendefinisikan bagian dari kode di mana variabel tersebut terlihat. Sebagai sebuah
aturan umum, variabel yang didefinisikan dalam sebuah blok tidak dapat diakses di luar blok tersebut.
Umur dari sebuah variabel merujuk pada berapa lama variabel tersebut ada sebelum dihancurkan.
Menghancurkan variabel mengacu pada mengalokasikan kembali memori yang diberikan kepada variabel ketika
mendeklarasikannya. Kami telah menulis beberapa kelas hingga saat ini. Anda mungkin telah mengamati bahwa tidak semuanya

variabelnya sama. Yang dideklarasikan di dalam tubuh metode berbeda dari yang lainnya
yang dinyatakan dalam kelas itu sendiri. Ada tiga jenis variabel: variabel instansi,
parameter formal atau variabel lokal dan variabel lokal.

Variabel instance

Variabel instans adalah variabel yang didefinisikan di dalam kelas itu sendiri dan bukan di dalam metode mana pun.
konstruktor kelas. Mereka dikenal sebagai variabel instance karena setiap instance dari
kelas (objek) berisi salinan dari variabel-variabel ini. Lingkup variabel instans ditentukan
oleh spesifikator akses yang diterapkan pada variabel-variabel ini. Kita sudah membahasnya sebelumnya.
Masa hidup variabel-variabel ini sama dengan masa hidup objek yang dimilikinya.
Objek yang telah dibuat tidak ada selamanya. Mereka dihancurkan oleh pengumpul sampah Java.
ketika tidak ada lagi referensi ke objek itu. Kita akan membahas tentang pengelolaan sampah otomatis Java
kolektor nanti.

Argument variables

Ini adalah variabel yang didefinisikan di header konstruktor oaf atau metode. Lingkup
dari variabel-variabel ini adalah metode atau konstruktor tempat mereka didefinisikan. Masa hidupnya adalah
dibatasi pada waktu di mana metode terus berjalan. Setelah metode selesai
eksekusi, variabel-variabel ini akan dihancurkan.

Variabel lokal

Variabel lokal adalah variabel yang dideklarasikan di dalam sebuah metode atau konstruktor (bukan di dalam
header). Cakupan dan masa hidup terbatas pada metode itu sendiri.

Satu perbedaan penting antara ketiga jenis variabel ini adalah bahwa spesifikator akses dapat
hanya diterapkan pada variabel instance dan bukan pada variabel argumen atau variabel lokal.

Selain variabel lokal yang didefinisikan dalam sebuah metode, kami juga memiliki variabel yang didefinisikan
dalam hidup boks ada blok if dan blok else. Lingkup dan adalah sama dengan blok tersebut
itu sendiri.

PEMROGRAMAN JAVA Page 10


Operator di java

Operator dalam java adalah simbol yang digunakan untuk melakukan operasi. Misalnya: +, -, *, / dll.

Ada banyak jenis operator di java yang diberikan di bawah ini:

o Operator Unary
o Arithmetic Operator,
o operator geser
o Operator Relasional
o Operator Bitwise
o Operator Logika
o Operator Ternary dan
o Operator Penugasan.

Hierarki Operator

PEMROGRAMAN JAVA Page 11


Ekspresi
Ekspresi adalah blok bangunan penting dari setiap program Java, biasanya dibuat untuk menghasilkan sesuatu yang baru
nilai, meskipun terkadang suatu ekspresi hanya menetapkan nilai pada sebuah variabel. Ekspresi adalah
dibangun menggunakan nilai-nilai,variabel, operator dan pemanggilan metode.

Jenis Ekspresi

While an expression frequently produces a result, it doesn't always. There are three types of
ekspresi dalam Java:

Mereka yang menghasilkan nilai, yaitu hasil dari (1 + 1)


Mereka yang menetapkan sebuah variabel, misalnya (v = 10)
Mereka yang tidak memiliki hasil tetapi mungkin memiliki "efek samping" karena sebuah ekspresi bisa mencakup

sejumlah elemen yang luas seperti pemanggilan metode atau operator peningkatan yang memodifikasi
keadaan (yaitu memori) dari sebuah program.

Java Type casting and Type conversion

Widening or Automatic Type Conversion


Konversi yang melebar terjadi ketika dua tipe data secara otomatis dikonversi. Ini terjadi
when:
. Kedua tipe data tersebut kompatibel.
. Ketika kita menetapkan nilai dari tipe data yang lebih kecil ke tipe data yang lebih besar.

Sebagai contoh, dalam Java, tipe data numerik kompatibel satu sama lain tetapi tidak ada otomatis.
konversi didukung dari tipe numerik ke char atau boolean. Juga, char dan boolean tidak
kompatibel with setiap other.

Konversi yang Sempit atau Eksplisit


Jika kita ingin menetapkan nilai dari tipe data yang lebih besar ke tipe data yang lebih kecil, kita melakukan pemaksaan tipe secara eksplisit.
penyaringan atau pemilihan.

. Ini berguna untuk tipe data yang tidak kompatibel di mana konversi otomatis tidak dapat dilakukan.
. Di sini, jenis-target menentukan jenis yang diinginkan untuk mengonversi nilai yang ditentukan.

.

PEMROGRAMAN JAVA Page 12


Enum Java

Enum dalam Java adalah tipe data yang berisi sekumpulan konstanta tetap.

Dapat digunakan untuk hari-hari dalam seminggu (MINGGU, SENIN, SELASA, RABU,
KAMIS, JUMAT dan SABTU), arah (UTARA, SELATAN, TIMUR dan BARAT)
etc. The java enum constants are static and final implicitly. It is available from JDK 1.5.

Enum Java dapat dianggap sebagai kelas yang memiliki seperangkat konstanta tetap.

Contoh sederhana enum java


classEnumExample1{
public enumSeason { WINTER, SPRING, SUMMER, FALL }

publik statis void utama(String[] args) {


untuk(Season s : [Link]())
[Link](s);
}}
Output:
WINTER
SPRING
SUMMER
JATUH

Pernyataan Alur Kontrol

Pernyataan alur kontrol di Java memungkinkan Anda untuk menjalankan atau melewatkan blok kode ketika khusus

kondisi telah terpenuhi.

Pernyataan “jika”
Pernyataan "if" dalam Java bekerja persis seperti di sebagian besar bahasa pemrograman. Dengan bantuan
“jika” Anda dapat memilih untuk menjalankan blok kode tertentu ketika kondisi yang telah ditentukan terpenuhi. The
struktur dari pernyataan "if" dalam Java terlihat seperti ini:

jika(kondisi) {
// jalankan kode ini
}

PEMROGRAMAN JAVA Page 13


Kondisinya adalah Boolean. Boolean berarti bisa benar atau salah. Misalnya, Anda dapat memasukkan sebuah
persamaan matematis sebagai kondisi. Lihat contoh lengkap ini:

Membuat Aplikasi Java Mandiri


[Link] metode utama yang menjalankan program Anda. Anda dapat menulis metode ini di mana saja. Dalam ini
misalnya, saya akan menulis metode utama saya di kelas bernama Main yang tidak memiliki metode lain.
contoh:
2. kelas publik Utama
3. {
4. publik statis void utama(String[] args)
5. {
6. [Link]();
7. }}
8. Pastikan kode Anda telah dikompilasi, dan bahwa Anda telah mengujinya secara menyeluruh.
9. Jika Anda menggunakan Windows, Anda perlu mengatur jalur Anda untuk menyertakan Java, jika Anda belum melakukannya.
sudah dilakukan. Ini adalah operasi yang rumit. Buka Explorer, dan lihat di dalam
C:\ProgramFiles\Java, dan Anda seharusnya melihat beberapa versi dari JDK. Buka folder ini, dan
kemudian buka folder bin. Pilih jalur lengkap dari bagian atas jendela Explorer, dan
tekan Ctrl-C untuk menyalinnya.

Selanjutnya, temukan ikon "Komputer Saya" (di menu Mulai atau desktop Anda), klik kanan padanya, dan pilih
properti. Klik pada tab Lanjutan, dan kemudian klik pada tombol variabel Lingkungan.
Lihat variabel yang terdaftar untuk semua pengguna, dan klik pada variabel Path. Jangan hapus
isi variabel ini! Sebaliknya, edit kontennya dengan menggerakkan kursor ke ujung kanan,
masukkan titik koma (;), dan tekan Ctrl-V untuk menempelkan jalur yang Anda salin sebelumnya. Kemudian pergi
lanjutkan dan simpan perubahan Anda. (Jika Anda memiliki jendela Cmd yang terbuka, Anda perlu menutupnya
mereka.)

10. Jika Anda menggunakan Windows, buka menu Start dan ketik "cmd" untuk menjalankan program yang
mengeluarkan jendela perintah. Jika Anda menggunakan mesin Mac atau Linux, jalankan
Program terminal untuk membuka prompt perintah.
11. Di Windows, ketik dir di prompt perintah untuk menampilkan isi direktori saat ini.
Di mesin Mac atau Linux, ketik ls untuk melakukan ini.

PEMROGRAMAN JAVA Page 14


12. Sekarang kita ingin beralih ke direktori/folder yang berisi kode hasil kompilasi Anda. Lihatlah
daftar sub-direktori di dalam direktori ini, dan identifikasi yang mana yang berisi kode Anda.
Ketik cd diikuti dengan nama direktori tersebut, untuk beralih ke direktori itu. Misalnya, untuk
ganti ke direktori yang disebut Desktop, Anda harus mengetik:

cd Desktop

Untuk berpindah ke direktori induk, ketik:

cd ..

Setiap kali Anda berpindah ke direktori baru, daftar isi direktori tersebut untuk melihat kemana harus pergi
selanjutnya. Lanjutkan daftar dan mengganti direktori sampai Anda mencapai direktori yang berisi
file .class Anda.

13. Jika Anda mengompilasi program Anda menggunakan Java 1.6, tetapi berencana untuk menjalankannya di Mac, Anda perlu
kompilasi ulang kode Anda dari baris perintah, dengan mengetik:

javac -target 1.5 *.java

14. Sekarang kita akan membuat satu file JAR yang berisi semua file yang diperlukan untuk menjalankan program Anda.

Array
Java menyediakan struktur data, array, yang menyimpan koleksi berurutan dengan ukuran tetap dari
elemen dari tipe yang sama. Sebuah array digunakan untuk menyimpan kumpulan data, tetapi seringkali lebih
berguna untuk memikirkan array sebagai kumpulan variabel dari jenis yang sama.

Alih-alih mendeklarasikan variabel individu, seperti number0, number1, ..., dan number99, Anda
deklarasikan satu variabel array seperti angka dan gunakan angka[0], angka[1], dan ...
numbers[99] untuk mewakili variabel individu.

Tutorial ini memperkenalkan cara mendeklarasikan variabel array, membuat array, dan memproses array menggunakan
variabel terindeks.

Deklarasi Variabel Array:


Untuk menggunakan array dalam sebuah program, Anda harus mendeklarasikan sebuah variabel untuk merujuk ke array, dan Anda harus
tentukan jenis array yang dapat direferensikan oleh variabel. Berikut adalah sintaks untuk mendeklarasikan sebuah array
variable:

dataType[]arrayRefVar;// cara yang disarankan.


atau
dataType arrayRefVar[];// works but not preferred way.
Note:The style dataType[] arrayRefVar is preferred. The styledataType
arrayRefVar[] berasal dari bahasa C/C++ dan diadopsi dalam Java untuk mengakomodasi
Programmer C/C++.

Contoh:

PEMROGRAMAN JAVA Page 15


Berikut adalah potongan kode yang merupakan contoh dari sintaks ini:

double[]myList; // cara yang disukai.


atau
doublemyList[]; // bekerja tetapi bukan cara yang diutamakan.

Membuat Array:
Anda dapat membuat array dengan menggunakan operator new dengan sintaks berikut:

arrayRefVar=newdataType[arraySize];
Pernyataan di atas melakukan dua hal:

Ini membuat array menggunakan new dataType[arraySize];

Ini menetapkan referensi dari array yang baru dibuat ke variabel arrayRefVar.

Mendeklarasikan variabel array, membuat array, dan menetapkan referensi array ke


variabel dapat digabungkan dalam satu pernyataan, seperti yang ditunjukkan di bawah ini:

dataType[]arrayRefVar=newdataType[arraySize];
Sebagai alternatif, Anda dapat membuat array sebagai berikut:

dataType[] arrayRefVar = {value0, value1, ..., valuek};


Elemen array diakses melalui indeks. Indeks array dimulai dari 0; artinya, mereka mulai
dari 0 hingga [Link]-1.

Example:
Pernyataan berikut mendeklarasikan variabel array, myList, membuat array dengan 10 elemen
tipe ganda dan menetapkan referensinya ke myList:

double[] myList = new double[10];


Gambar berikut mewakili array myList. Di sini, myList menyimpan sepuluh nilai double dan indeks
berasal dari 0 hingga 9.

PEMROGRAMAN JAVA Page 16


Memproses Array:
Saat memproses elemen array, kita sering menggunakan baik perulangan for atau perulangan for each karena semua dari
elemen dalam array adalah dari tipe yang sama dan ukuran array diketahui.

Contoh:
Berikut adalah contoh lengkap tentang cara membuat, menginisialisasi, dan memproses array:

kelas Publik TestArray


{
publik statis void main(String[] args) {
double[]myList= {1.9,2.9,3.4,3.5};
// Cetak semua elemen array
untuk(inti=0;i<[Link];i++) {
[Link](myList[i] +" ");
}
Menjumlahkan semua elemen
doubletotal=0;
untuk(inti=0;i<[Link];i++) {
total+=myList[i];
}
[Link]("Total adalah " + total);
// Mencari elemen terbesar
doublemax=myList[0];
untuk(inti=1;i<[Link];i++) {
jika(myList[i] >max)max=myList[i];
}
[Link]("Max adalah " + max);
}
}

PEMROGRAMAN JAVA Page 17


Ini akan menghasilkan hasil berikut:

1.9
2.9
3.4
3.5
Totalis11.7
Maxis3.5
kelas PublikTestArray{
publik statis void utama(String[] args) {
double[] myList = {1.9, 2.9, 3.4, 3.5};
// Cetak semua elemen array
for(doubleelement:myList) {
[Link](element);
}}}

Kelas Konsol Java

The Java Console class is be used to get input from console. It provides methods to read texts and
kata sandi.

Jika Anda membaca kata sandi menggunakan kelas Console, kata sandi tersebut tidak akan ditampilkan kepada pengguna.

Kelas [Link] terhubung dengan konsol sistem secara internal. Kelas Console adalah
diperkenalkan sejak 1.5.

Mari kita lihat contoh sederhana untuk membaca teks dari konsol.

1. String text=[Link]().readLine();
2. [Link]("Teksnya adalah: " + text);

Contoh Konsol Java

impor [Link];
kelasBacaStringTes{
publik statis void utama(String args[]){
Console c=[Link]();
[Link]("Masukkan nama Anda: ");
String n=[Link]();
[Link]("Welcome "+n); } }
PEMROGRAMAN JAVA Page 18
Keluaran

Masukkan nama Anda: Nakul Jain


Selamat datang Nakul Jain

Constructors

Konstruktor di java adalah jenis metode khusus yang digunakan untuk menginisialisasi objek.

Konstruktor Java dipanggil pada saat pembuatan objek. Ini membangun nilai-nilai yaitu menyediakan data.
untuk objek itulah ia dikenal sebagai konstruktor.

Pada dasarnya ada dua aturan yang ditentukan untuk konstruktor.

Nama konstruktor harus sama dengan nama kelasnya


2. Konstruktor tidak boleh memiliki jenis kembalian yang eksplisit

Types of java constructors

Ada dua tipe konstruktor:

[Link] constructor (no-arg constructor)


2. Konstruktor terparameter

Konstruktor Bawaan Java

Sebuah konstruktor yang tidak memiliki parameter dikenal sebagai konstruktor bawaan..

Sintaksis konstruktor default:


1. <class_name>(){}

Contoh dari konstruktor default

Dalam contoh ini, kami membuat konstruktor tanpa argumen di kelas Bike. Itu akan dipanggil di
waktu pembuatan objek.
kelasBike1{
Bike1(){[Link]("Sepeda dibuat");}
publik statis void utama(String args[]){
Sepeda1 b=sepedaBaru1();
}}
Sepeda telah dibuat

PENGPROGRAMAN JAVA Page 19


Contoh dari konstruktor terparameter
Dalam contoh ini, kami telah membuat konstruktor kelas Siswa yang memiliki dua parameter.
dapat memiliki jumlah parameter apa pun di konstruktor.
kelasSiswa4{
intid;
String nama;

Student4(inti,String n){
id = i;
name = n;
}
voidtampilkan(){[Link](id+" "+name);}

publik statis void main(String args[]){


Mahasiswa4 s1 = mahasiswa4 baru(111, "Karan");
Mahasiswa4 s2 = mahasiswaBaru(222, "Aryan");
[Link]();
[Link]();
}}

Output:

111 Karan
222 Aryan

Overloading Konstruktor dalam Java

Overloading konstruktor adalah teknik di Java di mana sebuah kelas dapat memiliki sejumlah.
konstruktor yang berbeda dalam daftar parameter. Kompiler membedakan konstruktor ini dengan
mempertimbangkan jumlah parameter dalam daftar dan jenisnya.

Contoh Pengalihan Konstruktor


kelasSiswa5{
intid;
String nama;
vintage
Student5(inti,String n){
id = i;
name = n;
}
Mahasiswa5(inti,String n,inta){
id = i;
name = n;
age=a;
}
void tampilkan(){[Link](id+" "+name+" "+age);}

publik statis void utama(String args[]){


Student5 s1 = new Student5(111, "Karan");
Student5 s2 =newStudent5(222,"Aryan",25);
[Link]();
PEMROGRAMAN JAVA Page 20
[Link]();
}}

Output:

111 Karan 0
222 Aryan 25
Konstruktor Penyalinan Java

Tidak ada konstruktor salinan di java. Tapi, kita dapat menyalin nilai dari satu objek ke objek lain seperti
konstruktor salin di C++.

Ada banyak cara untuk menyalin nilai suatu objek ke objek lain di java. Mereka adalah:

o Dengan konstruktor
o Dengan menetapkan nilai dari satu objek ke objek lain
o Dengan metode clone() dari kelas Object

Dalam contoh ini, kita akan menyalin nilai dari satu objek ke objek lainnya menggunakan java
constructor.
classStudent6{
intid;
String nama;
Student6(inti,String n){
id = i;
name = n;
}

Siswa6(Siswa6 s){
id = [Link];
name =[Link];
}
void tampilkan(){[Link](id + " " + nama);}

publik statis void main(String args[]){


Student6 s1 = newStudent6(111, "Karan");
Student6 s2 =newStudent6(s1);
[Link]();
[Link]();
}}

Output:

111 Karan
111 Karan

PEMROGRAMAN JAVA Page 21


MetodeJava
Metode Java adalah kumpulan pernyataan yang dikelompokkan bersama untuk melakukan suatu operasi.
When you call the [Link]()method, for example, the system actually executes
beberapa pernyataan untuk menampilkan pesan di konsol.

Sekarang Anda akan belajar bagaimana cara membuat metode Anda sendiri dengan atau tanpa nilai kembali, memanggil sebuah

metode dengan atau tanpa parameter, dan menerapkan abstraksi metode dalam desain program.

Membuat Metode
Mengingat contoh berikut untuk menjelaskan sintaks suatu metode -

Sintaksis

publik statis int namaMetode(int a, int b) {


// tubuh
}
Di sini,

modifier publik statis

int− tipeKembali

methodName− name ofthe method

a, b− parameter formal

int a, int b− daftar parameter

Definisi metode terdiri dari header metode dan badan metode. Hal yang sama ditunjukkan di dalam
sintaksis berikut −

Sintaksis

modifier returnType namaMetode (Daftar Parameter) {


// tubuh metode
}
Sintaksis yang ditunjukkan di atas mencakup −

modifier - Ini mendefinisikan tipe akses dari metode dan ini adalah opsional untuk digunakan.

returnType− Metode dapat mengembalikan nilai.

namaMetode− Ini adalah nama metode. Tanda tangan metode terdiri dari metode tersebut
nama dan daftar parameter.

PEMBUATAN PROGRAM JAVA Page 22


Daftar Parameter− Daftar parameter, ini adalah jenis, urutan, dan jumlah parameter
dari suatu metode. Ini bersifat opsional, metode dapat berisi nol parameter.

badan metode− Badan metode mendefinisikan apa yang dilakukan metode dengan pernyataan.
Panggilan berdasarkan Nilai dan Panggilan berdasarkan Referensi di Java

Hanya ada panggilan berdasarkan nilai di Java, bukan panggilan berdasarkan referensi. Jika kita memanggil sebuah metode dengan mengoper nilai, itu

dikenal sebagai panggilan dengan nilai. Perubahan yang dilakukan di metode yang dipanggil, tidak mempengaruhi di

memanggil metode.

Contoh panggilan dengan nilai di java


Dalam kasus pemanggilan dengan nilai, nilai asli tidak berubah. Mari kita ambil contoh sederhana:

kelasOperasi{
intdata=50;
ubahvoid(intdata){
data=data+100;//perubahan hanya akan terjadi pada variabel lokal saja
}
publik statis void main(String args[]){
Operasi op=newOperation();
[Link]("sebelum perubahan " + [Link]);
[Link](500);
[Link]("setelah perubahan " + [Link]);
}
}
Sebelum perubahan 50
setelah perubahan 50

Di Java, parameter selalu diteruskan dengan nilai. Sebagai contoh, program berikut mencetak
i = 10, j = 20.
// [Link]
kelas Uji {
// swap() tidak menukar i dan j
publik statis void tukar(Integer i, Integer j) {
Integer temp = new Integer(i);
i = j;
j = temp;
}
publik statis void utama(String[] args) {
Integer i = new Integer(10);
Integer j = new Integer(20);
tukar(i, j);
[Link]("i = " + i + ", j = " + j);

PEMROGRAMAN JAVA Page 23


}
}

Bidang dan Metode Statis

Kata kunci static dalam java digunakan terutama untuk manajemen memori. Kita dapat menerapkan static java

kata kunci dengan variabel, metode, blok, dan kelas bersarang. Kata kunci statis milik kelas
daripada contoh kelas tersebut.

Statis dapat berupa:

1. variabel (juga dikenal sebagai variabel kelas)

[Link] (juga dikenal sebagai metode kelas)

[Link]
[Link] bersarang

Variabel statis Java

Jika Anda mendeklarasikan variabel apa pun sebagai statis, itu dikenal sebagai variabel statis.

o Variabel statis dapat digunakan untuk merujuk pada properti umum dari semua objek (yang tidak unik untuk
setiap objek) misalnya nama perusahaan karyawan, nama universitas mahasiswa dll.

o Variabel statis mendapatkan memori hanya sekali di area kelas pada saat pemuatan kelas.

Keuntungan dari variabel statis

Ini membuat program Anda efisien dalam penggunaan memori (yaitu menghemat memori).

Memahami masalah tanpa variabel statis


[Link]{
2. introllno;
3. String nama;
4. String college="ITS";
5. }

Example of static variable


//Program variabel statis
kelasSiswa8{
introllno;

PEMROGRAMAN JAVA Page 24


String nama;
staticString college ="ITS";
Mahasiswa8(intr,String n){
rollno = r;
name = n;
}
voiddisplay (){[Link](rollno+" "+name+" "+college);}
publik statis void utama(String args[]){
Student8 s1 =newStudent8(111,"Karan");
Mahasiswa8 s2 = mahasiswa8 baru(222, "Aryan");

[Link]();
[Link]();
}}
111 Karan ITS
222 Aryan ITS

Metode statis Java

Jika Anda menerapkan kata kunci statis dengan metode apa pun, itu dikenal sebagai metode statis.

o Metode statis milik kelas daripada objek suatu kelas.


o Metode statis dapat dipanggil tanpa perlu membuat instance dari sebuah kelas.
o metode statis dapat mengakses anggota data statis dan dapat mengubah nilainya.

Contoh metode statis


//Program mengubah properti umum dari semua objek (field statis).

kelasSiswa9{
introllno;
String nama;
staticString college ="ITS";
static voidubah(){
college ="BBDIT";
}
Siswa9(intr, String n){
rollno = r;
name = n;

PEMROGRAMAN JAVA Page 25


}
void tampilkan (){[Link](rollno+" "+name+" "+college);}
publik statis void main(String args[]) {
[Link]();
Student9 s1 = new Student9 (111, "Karan");
Student9 s2 =newStudent9 (222,"Aryan");
Student9 s3 =newStudent9 (333,"Sonoo");
[Link]();
[Link]();
[Link]();
}}
Output:111 Karan BBDIT
222 Aryan BBDIT
333 Sonoo BBDIT

Blok statis Java

o Digunakan untuk menginisialisasi anggota data statis.

o Ini dieksekusi sebelum metode utama pada saat pemuatan kelas.

Contoh blok statis


kelasA2{
statik{[Link]("blok statik dipanggil");}
publik statis void main(String args[]){
[Link]("Halo main");
}}
blok statis dipanggil
Halo utama

Kontrol Akses

Modifier Akses di Java

Ada dua jenis modifier di java: modifier akses dan modifier non-akses.

Modifikator akses dalam java menentukan aksesibilitas (lingkup) dari anggota data, metode, konstruktor
atau kelas.

Ada 4 jenis modifier akses java:

PEMROGRAMAN JAVA Page 26


pribadi
2. default
3. dilindungi
4. publik

modifier akses pribadi


Modifier akses privat hanya dapat diakses di dalam kelas.

Contoh sederhana dari modifier akses privat


Dalam contoh ini, kami telah membuat dua kelas A dan Simple. Kelas A berisi data pribadi.
anggota dan metode privat. Kami mengakses anggota privat ini dari luar kelas,
jadi ada kesalahan waktu kompilasi.
kelasA{
private intdata=40;
private void msg(){[Link]("Halo java");} }
kelas Publik Sederhana{
publik statis void utama(String arg[]){
A obj=newA();
[Link]([Link]);//Kesalahan Waktu Kompilasi
[Link]();//Kesalahan Waktu Kompilasi
}}

2)modifikator akses default


If you don't use any modifier, it is treated asdefaultbydefault. The default modifier is
accessible only within package.

Contoh modifier akses default


Dalam contoh ini, kami telah membuat dua paket pack dan mypack. Kami sedang mengakses A
kelas dari luar paketnya, karena kelas A tidak bersifat publik, jadi tidak dapat diakses dari luar
paket tersebut.
//simpan oleh [Link]
packagepack;
kelasA{
voidmsg(){[Link]("Halo");}
}

//simpan oleh [Link]


kemasansaya
importpack.*;

PEMROGRAMAN JAVA Page 27


classB{
publik statis void main(String args[]){
A obj = baru A();//Kesalahan Waktu Kompilasi

[Link]();//Kesalahan Waktu Kompilasi} }

Dalam contoh di atas, cakupan kelas A dan metode msg() adalah default sehingga tidak dapat
diakses dari luar paket.

3)modifikator akses terlindung

Modifier akses terlindungi dapat diakses di dalam paket dan di luar paket tetapi melalui
hanya warisan.

Modifikator akses terlindungi dapat diterapkan pada anggota data, metode, dan konstruktor. Itu tidak dapat
dapat diterapkan pada kelas.

Contoh modifier akses dilindungi

Dalam contoh ini, kami telah membuat dua paket pack dan mypack. Kelas A dari pack
paket ini bersifat publik, sehingga dapat diakses dari luar paket. Namun, metode msg dari paket ini
dideklarasikan sebagai dilindungi, sehingga dapat diakses dari luar kelas hanya melalui pewarisan.

//simpan oleh [Link]


paket
publik kelas A{
protected void msg(){[Link]("Halo");} }
//simpan oleh [Link]
kemasanku
importpack.*;
kelasBBerlanjutA{
publik statis void utama(String args[]){
B obj = new B();
[Link]();
}}
Halo

4) modifikasi akses publik


Modifier akses publik dapat diakses di mana saja. Ini memiliki ruang lingkup terluas di antara yang lainnya.

modifikator.

PEMBANGUNAN JAVA Page 28


Contoh modifier akses publik
//simpan oleh [Link]
paket
publik kelas A{
publik void msg(){[Link]("Halo");} }
//simpan oleh [Link]
kemasankemasku;
importpack.*;
kelasB{
publik statis kosong main(String args[]){
A obj =newA();
[Link]();
}}
Halo

Memahami semua modifikator akses java

Mari kita memahami pengubah akses dengan tabel sederhana.

Akses di dalam dalam di luar paket oleh di luar


Modifikator kelas paket subkelas saja paket

Privat Y N N N

Default Y Y N N

Dilindungi Y Y Y N

Umum Y Y Y Y

kata kunci ini di java

Penggunaan kata kunci this di java

Berikut adalah 6 penggunaan kata kunci this dalam java.

1. ini dapat digunakan untuk merujuk pada variabel instance kelas saat ini.
2. ini dapat digunakan untuk memanggil metode kelas saat ini (secara implisit)
[Link]() dapat digunakan untuk memanggil konstruktor kelas saat ini.

PEMROGRAMAN JAVA Page 29


4. Ini dapat diteruskan sebagai argumen dalam panggilan metode.
5. ini dapat diteruskan sebagai argumen dalam pemanggilan konstruktor.
6. ini dapat digunakan untuk mengembalikan instance kelas saat ini dari metode.

kelasSiswa{
nomor_introl
String nama;
biaya terapung;
Mahasiswa(introllno,String nama,floatfee){
[Link]=rollno;
[Link]=name;
[Link]=fee;
}
voiddisplay(){[Link](rollno+" "+name+" "+fee);}
}
classTestThis2{
public static voidmain(String args[]){
Mahasiswa s1=newStudent(111,"ankit",5000f);
Student s2=newStudent(112,"sumit",6000f);
[Link]();
[Link]();
}}

Output:
111 ankit 5000
112 sumit 6000

Perbedaan antara konstruktor dan metode dalam java

Konstruktor Java Metode Java

Konstruktor digunakan untuk menginisialisasi keadaan sebuah objek. Metode digunakan untuk mengekspos perilaku
dari sebuah objek.

Konstruktor tidak boleh memiliki tipe pengembalian. Metode harus memiliki tipe pengembalian.

Konstruktor dipanggil secara implisit. Metode dipanggil secara eksplisit.

Kompiler java menyediakan konstruktor default jika Anda Metode tidak disediakan oleh kompilator dalam
tidak memiliki konstruktor. kasus apa pun.

Nama konstruktor harus sama dengan nama kelas. Nama metode mungkin ada atau mungkin tidak ada

PEMOGRAMAN JAVA Page 30


sama seperti nama kelas.

Ada banyak perbedaan antara konstruktor dan metode. Mereka dijelaskan di bawah ini.

Overloading Konstruktor di Java

Overloading konstruktor adalah teknik di Java di mana sebuah kelas dapat memiliki jumlah yang tidak terbatas dari

konstruktor yang berbeda dalam daftar parameter. Kompiler membedakan konstruktor ini dengan
dengan mempertimbangkan jumlah parameter dalam daftar dan tipe mereka.

Contoh Overloading Konstruktor


kelasSiswa5{
intid; String
name;int
age;
Murid5(inti,String n){
id = i;
name = n;
}
Student5(inti,String n,inta){
id = i;
name = n;
age=a;
}
void tampilkan(){[Link](id + " " + nama + " " + usia);}

publik statis void main(String args[]) {


Student5 s1 = new Student5(111, "Karan");
Student5 s2 =newStudent5(222,"Aryan",25);
[Link]();
[Link]();
}
}

Output:

PEMROGRAMAN JAVA Page 31


111 Karan 0
222 Aryan 25

Metode Overloading di Java

Jika sebuah kelas memiliki beberapa metode dengan nama yang sama tetapi berbeda dalam parameter, itu dikenal sebagai

Overloading Metode.

Jika kita hanya perlu melakukan satu operasi, memiliki nama metode yang sama meningkatkan
keterbacaan program.

Overloading Metode: mengubah jumlah argumen

Dalam contoh ini, kami telah membuat dua metode, pertama metode add() melakukan penjumlahan dari dua
metode angka dan penambahan kedua melakukan penjumlahan tiga angka.

Dalam contoh ini, kami membuat metode statis sehingga kami tidak perlu membuat instance untuk memanggil
methods.

classAdder{
statis int tambah(int a, int b) { return a + b; }

static int tambah(int a, int b, int c) { return a + b + c; }

}
classTestOverloading1{
publik statis void main(String[] args){
[Link]([Link](11,11));
[Link]([Link](11,11,11));
}}

Output:

22
33

Overloading Metode: mengubah tipe data argumen

Dalam contoh ini, kami telah membuat dua metode yang berbeda dalam tipe data. Metode penambahan pertama
receives two integer arguments and second add method receives two double arguments.

Pemrograman JAVA Page 32


Rekursi dalam Java
Rekursi dalam java adalah sebuah proses di mana sebuah metode memanggil dirinya sendiri terus-menerus. Sebuah metode dalam java yang
metode yang memanggil dirinya sendiri disebut metode rekursif.

Contoh Rekursi Java 1: Bilangan Faktorial

public classRecursionExample3 {
static int faktoriel(int n) {
jika(n == 1)
kembali1;
lainnya
kembalikan(n * faktorial(n-1));
}}
publik statis void main(String[] args) {
[Link]("Faktorial dari 5 adalah: " + faktorial(5));
}}

Output:

Faktorial dari 5 adalah: 120

Pengumpulan Sampah Java

Dalam java, sampah berarti objek yang tidak direferensikan.

Pengumpulan Sampah adalah proses untuk mengambil kembali memori yang tidak terpakai secara otomatis selama runtime. Di lain
kata-kata, ini adalah cara untuk menghancurkan objek yang tidak terpakai.

Untuk melakukannya, kami menggunakan fungsi free() dalam bahasa C dan delete() dalam C++. Tetapi, dalam java itu adalah

dilakukan secara otomatis. Jadi, java menyediakan manajemen memori yang lebih baik.

Keuntungan dari Pengumpulan Sampah


o Ini membuat memori Java efisien karena pengumpul sampah menghapus yang tidak dirujuk.
objek dari memori heap.
o Ini dilakukan secara otomatis oleh pengumpul sampah (sebuah bagian dari JVM) jadi kami tidak perlu membuat

upaya ekstra.

metode gc()

PEMROGRAMAN JAVA Page 33


Metode gc() digunakan untuk memanggil pengumpul sampah untuk melakukan pemrosesan pembersihan. Yang
gc() ditemukan dalam kelas System dan Runtime.

publik statis void gc(){}

Contoh sederhana pengumpulan sampah dalam java


publik kelas Uji Sampah1{
publik void finalisasi(){[Link]("objek dikumpulkan sebagai sampah");}
publik statis void main(String args[]){
TestGarbage1 s1=new TestGarbage1();
TestGarbage1 s2=newTestGarbage1();
s1=null;
s2=null;
[Link]();
}}
objek dihapus oleh pengumpul sampah

objek dikumpulkan sebagai sampah


String Java
String pada dasarnya adalah objek yang mewakili urutan nilai karakter. Sebuah array karakter berfungsi
sama seperti string java. Contohnya:

[Link][] ch={'j','a','v','a','t','p','o','i','n','t'};
String s=newString(ch);

sama dengan:

[Link] s="javatpoint";
Kelas String Java menyediakan banyak metode untuk melakukan operasi pada string seperti
compare(), concat(), equals(), split(), length(), replace(), compareTo(), intern(), substring()
dll.
3. Yang [Link] kelas
mengimplementasikan antarmuka Serializable, Comparable, dan CharSequence.

Antarmuka CharSequence

PEMROGRAMAN JAVA Page 34


Antarmuka CharSequence digunakan untuk mewakili urutan karakter. Ini diimplementasikan oleh
Kelas String, StringBuffer, dan StringBuilder. Ini berarti, kita dapat membuat string di java dengan menggunakan
tiga kelas ini.

String java adalah tidak dapat diubah yaitu tidak dapat diubah. Setiap kali kita mengubah apa pun
string, sebuah instance baru dibuat. Untuk string yang dapat diubah, Anda dapat menggunakan StringBuffer dan StringBuilder
kelas.
Ada dua cara untuk membuat objek String:
1. Dengan literal string
2. Dengan kata kunci baru

Literal String
Literal String Java dibuat dengan menggunakan tanda kutip ganda. Sebagai Contoh:

1. String s="welcome";

Setiap kali Anda membuat literal string, JVM memeriksa kolam konstan string terlebih dahulu. Jika string
sudah ada di dalam kumpulan, referensi ke instansi yang terkumpul dikembalikan. Jika string tidak ada di
kolam, sebuah instance string baru dibuat dan ditempatkan di kolam. Misalnya:

String s1="Selamat Datang";


String s2="Selamat Datang";//tidak akan membuat instance baru

Dengan kata kunci baru


1. String s=newString("Selamat Datang");//membuat dua objek dan satu variabel referensi

Dalam kasus tersebut, JVM akan membuat objek string baru di memori heap biasa (non-pool) dan
"Selamat datang" akan ditempatkan di kolam konstanta string. Variabel s akan merujuk pada objek
di heap (bukan pool).

Contoh String Java


kelasStringContoh
publik statis void main(String args[]){
String s1="java";//membuat string dengan literal string java
charch[]={'s','t','r','i','n','g','s'};
String s2=newString(ch);//converting char array to string
String s3=newString("contoh");//membuat string java dengan kata kunci baru
[Link](s1);
[Link](s2);
[Link](s3);
}}
java

PEMROGRAMAN JAVA Page 35


strings
example
String yang Tidak Dapat Diubah di Java

Di java, objek string tidak dapat diubah. Tidak dapat diubah berarti tidak dapat dimodifikasi atau diubah.

Setelah objek string dibuat, data atau statusnya tidak dapat diubah tetapi objek string baru dibuat.

Mari kita coba untuk memahami konsep ketidakberubahan dengan contoh yang diberikan di bawah ini:

kelasUjiStringTidakBisaDiubah{
public static voidmain(String args[]){
String s="Sachin";
[Link](" Tendulkar");//metode concat() menambahkan string di akhir
[Link](s);//akan mencetak Sachin karena string adalah objek yang tidak dapat diubah
} }
Output:Sachin
kelasUjiimmutablestring1{
publik statis voidmain(String args[]){
String s="Sachin";
s=[Link](" Tendulkar");
[Link](s);
Sachin Tendulkar

PEMROGRAMAN JAVA Page 36


SMK MALLA REDDY TEKNIK & TEKNOLOGI
DEPARTEMEN ILMU KOMPUTER & REKAYASA
Unit-2
Pewarisan dalam Java
Pewarisan di java adalah mekanisme di mana satu objek memperoleh semua properti dan perilaku
dari objek induk. Pewarisan mewakili hubungan IS-A, juga dikenal sebagai induk-
hubungan anak.
Mengapa menggunakan pewarisan dalam java

o Untuk Penggantian Metode (agar polimorfisme waktu jalankan dapat dicapai).


o For Code Reusability.

Sintaksis Warisan Java


[Link]-namemewarisiSuperclass-nama
2.
3.//metode dan bidang
4. }

Kata kunci extends menunjukkan bahwa Anda sedang membuat kelas baru yang diturunkan dari yang sudah ada
kelas. Arti dari "extends" adalah untuk meningkatkan fungsionalitas.

kelasKaryawan{
floatsalary=40000;
}
classProgrammerextendsEmployee{
intbonus=10000;
publik statis void main(String args[]) {
Programmer p=newProgrammer();
[Link]("Gaji programmer adalah:" + [Link]);
[Link]("Bonus Programmer adalah:"+[Link]);
}}

Gaji programmer adalah: 40000.0


PEMROGRAMAN JAVA Page 37
Bonus of programmer is:10000

Jenis-jenis pewarisan di Java

Contoh Pewarisan Tunggal

File: [Link]

kelasHewan{
void makan() {[Link]("makan...");}
}
kelasAnjingMemperluasHewan{
voidbark(){[Link]("mengonggong...");}
}
kelasUjiWarisan{
publik statis void utama(String args[]){
Dog d=newDog();
[Link]();
[Link]();
}}
Output:
menggonggong...
makan...

Contoh Pewarisan Multilevel

File: [Link]

kelasHewan{
voideat(){[Link]("makan...");}
}
kelasAnjingmemperpanjangHewan{
voidbark(){[Link]("menggonggong...");}
}
kelasBabyDogextendsDog{
voidweep(){[Link]("menangis...");}
}
kelasTestPewarisan2{

PEMROGRAMAN JAVA Page 38


publik statis void utama(String args[]){
AnakAnjing d=newAnakAnjing();
[Link]();
[Link]();
[Link]();
}}

Output:

menangis...
mendenggong...
makan...

Contoh Pewarisan Hierarkis


File: [Link]

kelasHewan{
voideat(){[Link]("makan...");}
}
kelasAnjingMengextendsHewan{
voidbark(){[Link]("menggonggong...");}
}
kelas CatextendsAnimal{
voidmeow(){[Link]("mendesis...");}
}
kelasTesPewarisan3{
publik statis void utama(String args[]){
Kucing c=newKucing();
[Link]();
[Link]();
//[Link]();//[Link]
}}

Output:

mengaum...
makan...

PEMROGRAMAN JAVA Page 39


Akses anggota dan Pewarisan

Subkelas mencakup semua anggota dari kelas supernya tetapi tidak dapat mengakses anggota-anggota tersebut.
kelas super yang telah dinyatakan sebagai pribadi. Upaya mengakses variabel pribadi akan
menyebabkan kesalahan kompilasi karena menyebabkan pelanggaran akses. Variabel yang dinyatakan sebagai pribadi, hanya
dapat diakses oleh anggota lain dari kelasnya sendiri. Subkelas tidak memiliki akses ke dalamnya.

kata kunci super dalam java

Kata kunci super dalam java adalah variabel referensi yang digunakan untuk merujuk kelas induk segera.
objek.

Setiap kali Anda membuat instance dari subclass, sebuah instance dari kelas induk dibuat secara implisit.
yang dirujuk oleh variabel referensi super.

Penggunaan kata kunci super dalam java

super dapat digunakan untuk merujuk pada variabel instance kelas induk langsung.

2. super dapat digunakan untuk memanggil metode kelas induk langsung.

super() dapat digunakan untuk memanggil konstruktor kelas induk langsung.

super digunakan untuk merujuk pada variabel instance kelas induk yang langsung.

kelasHewan{
String color="white";
}
kelasAnjingMemperluasHewan{
String color="black";
voidprintColor(){
[Link](warna);//mencetak warna kelas Anjing
[Link]([Link]);//mencetak warna kelas Hewan
}
}
kelasTesSuper1{
publik statis void main(String args[]){
Anjing d=newAnjing();

PEMROGRAMAN JAVA Page 40


[Link]();
}}

Output:

hitam
putih
Kata Kunci Final dalam Java

Kata kunci final dalam java digunakan untuk membatasi pengguna. Kata kunci final java dapat digunakan dalam banyak konteks.
Akhir dapat berupa:

variabel

2. metode

kelas

Kata kunci final dapat diterapkan pada variabel, variabel final yang tidak memiliki nilai disebut kosong.
variabel final atau variabel final yang belum diinisialisasi. Ini hanya dapat diinisialisasi dalam konstruktor. Final yang kosong

variabel juga bisa statis yang akan diinisialisasi di dalam blok statis saja.

Kelas objek dalam Java

Kelas Object adalah kelas induk dari semua kelas di java secara default. Dengan kata lain, itu adalah
kelas teratas dari java.

Kelas Object sangat berguna jika Anda ingin merujuk pada objek apapun yang tipe nya tidak Anda ketahui. Perhatikan
variabel referensi kelas induk dapat merujuk objek kelas anak, yang dikenal sebagai upcasting.

Mari kita ambil contoh, ada metode getObject() yang mengembalikan sebuah objek tetapi bisa dari tipe apa pun.
seperti Karyawan, Siswa, dll, kita dapat menggunakan referensi kelas Object untuk merujuk objek tersebut. Misalnya:

[Link] obj=getObject();//kami tidak tahu objek apa yang akan dikembalikan dari metode ini

Kelas Objek menyediakan beberapa perilaku umum untuk semua objek seperti objek dapat
dibandingkan, objek dapat dicloning, objek dapat diberi notifikasi, dll.

Penggantian Metode dalam Java

Jika subclass (kelas anak) memiliki metode yang sama seperti yang dinyatakan dalam kelas induk, itu dikenal sebagai
penggantian metode dalam java.

PEMROGRAMAN JAVA Page 41


Penggunaan Penggantian Metode Java
o Override metode digunakan untuk memberikan implementasi spesifik dari suatu metode yang sudah ada.
diberikan oleh super kelasnya.
o Penggantian metode digunakan untuk polimorfisme waktu jalan

Aturan untuk Override Metode Java


[Link] harus memiliki nama yang sama dengan di kelas induk
[Link] harus memiliki parameter yang sama seperti di kelas induk.
[Link] be IS-A relationship (inheritance).

Contoh dari penggantian metode


KelasKendaraan{
voidrun(){[Link]("Kendaraan sedang berjalan");}
}
kelasSepeda2memperpanjangKendaraan{
voidrun(){[Link]("Sepeda sedang berjalan dengan aman");}
publik statis void main(String args[]){
Bike2 obj = newBike2();
[Link]();
}

Sepeda beroperasi dengan aman

[Link]{
intgetRateOfInterest(){return0;}
}
kelasSBIextendsBank{
intgetRateOfInterest(){return8;}
}
kelasICICIextendsBank{
intgetRateOfInterest(){return7;}
}
kelasAXISmelanjutkanBank{
intgetRateOfInterest(){return9;}
}
kelasTes2{
publik statis void main(String args[]){
SBI s=newSBI();
ICICI i=newICICI();
AXIS a=newAXIS();
[Link]("Suku Bunga SBI: " + [Link]());
[Link]("Tingkat Bunga ICICI: " + [Link]());
[Link]("Tingkat Bunga AXIS: " + [Link]());
}}

Output:
SBI Rate of Interest: 8

PEMROGRAMAN JAVA Page 42


ICICI Rate of Interest: 7
AXIS Rate of Interest: 9

Kelas abstrak di Java

Kelas yang dideklarasikan dengan kata kunci abstrak dikenal sebagai kelas abstrak di java. Kelas ini dapat memiliki

metode abstrak dan non-abstrak (metode dengan tubuh). Itu perlu diperluas dan metodenya
diimplementasikan. Ini tidak bisa diinstansiasi.

Example abstract class


[Link] abstrak A{}

metode abstrak
[Link] voidprintStatus();//tidak ada badan dan abstrak

Contoh kelas abstrak yang memiliki metode abstrak


abstract classBike{
abstrak voidrun();
}
kelasHonda4melanjutkanSepeda{
voidrun(){[Link]("berjalan dengan aman..");}
publik statis void main(String args[]) {
Sepeda obj = new Honda4();
[Link]();
}
1. }
berlari dengan aman..

Antarmuka dalam Java


Antarmuka dalam java adalah cetak biru sebuah kelas. Itu memiliki konstanta statis dan metode abstrak.

Antarmuka dalam java adalah mekanisme untuk mencapai abstraksi. Hanya ada metode abstrak.
di antarmuka java bukan tubuh metode. Ini digunakan untuk mencapai abstraksi dan pewarisan ganda dalam
Java.

Antarmuka Java juga mewakili hubungan IS-A.

Ini tidak dapat diinstansiasi seperti kelas abstrak.

Ada tiga alasan utama untuk menggunakan antarmuka. Berikut ini adalah penjelasannya.
o Ini digunakan untuk mencapai abstraksi.
o Dengan antarmuka, kita dapat mendukung fungsionalitas pewarisan ganda.
o Ini dapat digunakan untuk mencapai keterkaitan longgar.

PEMROGRAMAN JAVA Page 43


Penambahan internal oleh kompiler

Memahami hubungan antara kelas dan antarmuka

//Deklarasi antarmuka: oleh pengguna pertama


interfaceDrawable{
voiddraw();
}
//Implementasi: oleh pengguna kedua
classRectangleimplementsDrawable{
public void draw(){[Link]("menggambar persegi panjang");}
}
classCircleimplementsDrawable{
publik void gambar(){[Link]("menggambar lingkaran");}
}
//Menggunakan antarmuka: oleh pengguna ketiga
classTestInterface1{
publik statis void main(String args[]){
Drawable d=newCircle();//Dalam skenario nyata, objek disediakan oleh metode seperti getDrawable()
[Link]();
}}
menggambar lingkaran

Warisan ganda di Java melalui antarmuka

antarmukaPrintable{

PEMROGRAMAN JAVA Page 44


voidprint();
}
antarmukaTampilkan{
voidshow();
}
classA7implementsPrintable,Showable{
public void print(){[Link]("Halo");}
publik void show(){[Link]("Selamat datang");}
publik statis void main(String args[]){
A7 obj = new A7();
[Link]();
[Link]();
}}

Halo
Selamat datang
Kelas abstrak Antarmuka

1) Kelas abad dapat memiliki abstrak Antarmuka hanya dapat memiliki metode abstrak. Sejak
dan metode non-abstrak. Java 8, itu dapat memiliki default dan statis
metode juga.
Kelas abstrak tidak mendukung Antarmuka mendukung warisan ganda.
warisan ganda.
3) Kelas abstrak dapat memiliki final, non- Antarmuka hanya memiliki variabel statis dan final.
variabel final, statis, dan non-statis.
Kelas abstrak dapat menyediakan Antarmuka tidak dapat memberikan implementasi dari
implementasi antarmuka. kelas abstrak.
5) Kata kunci abstract digunakan untuk Kata kunci interface digunakan untuk mendeklarasikan
nyatakan kelas abstrak. antarmuka.
6)Contoh: Contoh:
publik abstrak kelas Bentuk{ publik antarmuka Tersedia{
publik abstrak kosong gambar(); kosong gambar();
} }

Kelas Dalam Java


Kelas dalam Java atau kelas bersarang adalah kelas yang dideklarasikan di dalam kelas atau antarmuka.

Kami menggunakan kelas dalam untuk mengelompokkan kelas dan antarmuka secara logis di satu tempat sehingga dapat lebih
mudah dibaca dan dapat dipelihara.

Sintaksis Kelas Dalam


1.kelasJava_Kelas_luar{
2.//kode
3.kelasJava_Kelas_Dalam{
4.//kode
5. } }
PEMROGRAMAN JAVA Page 45
Keuntungan dari kelas dalam Java

Secara dasar, ada tiga keuntungan dari kelas dalam di Java. Mereka adalah sebagai berikut:

1) Kelas bersarang mewakili jenis hubungan khusus yang dapat mengakses semua anggota
(anggota data dan metode) dari kelas luar termasuk yang privat.

Kelas bersarang digunakan untuk mengembangkan kode yang lebih mudah dibaca dan dirawat karena itu
logically group classes and interfaces in one place only.

3) Optimisasi Kode: Ini memerlukan lebih sedikit kode untuk ditulis.

Perbedaan antara kelas bersarang dan kelas dalam di Java

Kelas dalam adalah bagian dari kelas bersarang. Kelas bersarang non-statis dikenal sebagai kelas dalam.

Jenis-jenis Kelas Bersarang

Ada dua jenis kelas bersarang, yaitu kelas bersarang non-statis dan kelas bersarang statis. Kelas bersarang non-statis
kelas juga dikenal sebagai kelas dalam.

o Kelas bersarang non-statis (kelas dalam)


[Link] dalam anggota
[Link] dalam anonim
[Link] inner lokal
o Kelas bersarang statis

Paket Java
Paket Java adalah sekelompok jenis kelas, antarmuka, dan sub-paket yang serupa.

Paket dalam Java dapat dikategorikan dalam dua bentuk, paket bawaan dan paket yang ditentukan pengguna.

Ada banyak paket bawaan seperti java, lang, awt, javax, swing, net, io, util, sql, dll.

Keuntungan Paket Java

1) Paket Java digunakan untuk mengkategorikan kelas dan antarmuka sehingga dapat dengan mudah
dipelihara.

Paket Java menyediakan perlindungan akses.

Paket Java menghilangkan bentrokan penamaan.

kemasanku
kelas publik Simple{
public static voidmain(String args[]){
[Link]("Selamat datang di paket");
}}

PEMROGRAMAN JAVA Page 46


Cara mengompilasi paket java

Jika Anda tidak menggunakan IDE, Anda perlu mengikuti sintaks yang diberikan di bawah ini:

javac -d direktori namafilejava


Cara menjalankan program paket java

Untuk Mengkompilasi:javac -d . [Link]


Untuk Menjalankan: java [Link]

Menggunakan nama yang sepenuhnya memenuhi syarat

Contoh paket dengan nama lengkap yang diimpor

//save by [Link]
paketkemasan;
publik kelas A{
publik void msg(){[Link]("Halo");} }
//simpan oleh [Link]
kemasamakemasanmu;
kelasB{
publik statis void main(String args[]){
pack.A obj = new pack.A(); //menggunakan nama yang sepenuhnya kualifikasi
[Link]();
}
}
Halo

PEMROGRAMAN JAVA Page 47


KULIAH TEKNIK DAN TEKNOLOGI MALLA REDDY
DEPARTEMEN ILMU KOMPUTER & REKAYASA

UNIT-3
Penanganan Pengecualian

Penanganan pengecualian di Java adalah salah satu mekanisme yang kuat untuk menangani waktu berjalan
kesalahan agar alur normal aplikasi dapat dipertahankan.

Apa itu pengecualian

Dalam Java, pengecualian adalah suatu kejadian yang mengganggu alur normal program. Itu adalah sebuah objek yang ...
dilempar saat runtime.

Keuntungan Penanganan Eksepsi

Keuntungan utama dari penanganan pengecualian adalah untuk menjaga alur normal aplikasi.
Pengecualian biasanya mengganggu alur normal aplikasi, itulah sebabnya kami menggunakan pengecualian.
penanganan.

Jenis-jenis Pengecualian

Terdapat dua jenis pengecualian utama: diperiksa dan tidak diperiksa di mana kesalahan dianggap sebagai
eksepsi yang tidak teratasi. Sun Microsystems mengatakan ada tiga jenis eksepsi:

1. Pengecualian Diperiksa
2. Pengecualian Tak Terperiksa
3. Kesalahan

Perbedaan antara pengecualian yang diperiksa dan yang tidak diperiksa

1)Checked Exception:Kelas-kelas yang memperluas kelas Throwable kecuali RuntimeException dan Error
dikenal sebagai pengecualian yang diperiksa misalnya IOException, SQLException, dll. Pengecualian yang diperiksa diperiksa
pada saat kompilasi.

2)Unchecked Exception:Kelas-kelas yang memperluas RuntimeException dikenal sebagai tidak terperiksa


eksepsi seperti ArithmeticException, NullPointerException, ArrayIndexOutOfBoundsException, dll.
Unchecked exceptions are not checked at compile-time rather they are checked at runtime.

3)Kesalahan:Kesalahan tidak dapat diperbaiki misalnya OutOfMemoryError, VirtualMachineError, AssertionError, dll.

PEMPROGRAMAN JAVA Page 48


Hierarki kelas Exception Java

Pengecualian Terchecked dan Tidak Terchecked

PEMROGRAMAN JAVA Page 49


Blok coba Java

Java try block is used to enclose the code that might throw an exception. It must be used within
metode tersebut.

Blok try Java harus diikuti oleh blok catch atau akhirnya.

Sintaksis java try-catch

[Link]{
2.//kode yang mungkin melempar pengecualian
3. }catch(Exception_class_Name ref){}

Sintaksis blok try-finally

[Link]{
2.//kode yang mungkin melempar exception
3. }akhirnya{}

Blok tangkap Java

Blok catch Java digunakan untuk menangani Exception. Itu harus digunakan setelah blok try saja.

Anda dapat menggunakan beberapa blok catch dengan satu try.

Masalah tanpa penanganan eksepsi

Mari kita coba memahami masalahnya jika kita tidak menggunakan blok try-catch.

public classTesttrycatch1{
public static voidmain(String args[]){
intdata=50/0;//mungkin melempar pengecualian
[Link]("sisa kode...");
}}
Keluar:
Pengecualian di thread utama [Link]: / dibagi nol

Seperti yang ditampilkan dalam contoh di atas, sisa kode tidak dieksekusi (dalam hal ini, sisa
kode... pernyataan tidak dicetak).

Setelah pengecualian, bisa ada 100 baris kode. Jadi semua kode setelah pengecualian tidak akan
dieksekusi.

Solusi dengan penanganan pengecualian

Mari kita lihat solusi dari masalah di atas dengan blok try-catch java.

publik kelas Testtrycatch2{

PEMROGRAMAN JAVA Page 50


publik statis void utama(String args[]){
coba{
intdata=50/0;
}catch(PengecualianAritmetika e){[Link](e);}
[Link]("sisa kode...");
}}
1. Output:
Pengecualian dalam utas utama [Link]:/ dibagi nol
sisa kode...

Sekarang, seperti yang ditampilkan dalam contoh di atas, sisa kode dieksekusi yaitu sisa kode...
pernyataan dicetak.

Blok tangkapan multi Java

Jika Anda harus melakukan tugas yang berbeda pada terjadinya Pengecualian yang berbeda, gunakan java multi
blok tangkap.

Mari kita lihat contoh sederhana dari blok multi-catch java.

[Link] classTestMultipleCatchBlock{
[Link] publik void main(String args[]){
3. coba{
4. inta[]=new int[5];
5. a[5]=30/0;
6. }
[Link](ArithmeticException e){[Link]("tugas1 selesai");}
[Link](ArrayIndexOutOfBoundsException e){[Link]("tugas 2 selesai");
9. }
[Link](Exception e){[Link]("tugas umum selesai");
11. }
12. [Link]("sisa kode...");
13. } }

tugas1 selesai
sisa kode...

Contoh nested try di Java

Mari kita lihat contoh sederhana dari blok try bersarang di java.

kelasExcep6{
publik statis void main(String args[]){
coba{
coba{
[Link]("akan membagi");
intb =39/0;
}catch(PengecualianAritmatika e){[Link](e);}

coba{

PEMROGRAMAN JAVA Page 51


inta[]=new int[5];
a[5]=4;
}catch(ArrayIndexOutOfBoundsException e){[Link](e);}
[Link]("pernyataan lain);
}catch(Exception e){[Link]("ditangani");}
[Link]("aliran normal..");
}
1. }
blok finally Java

Blok finally di Java adalah blok yang digunakan untuk mengeksekusi kode penting seperti menutup koneksi,
alur dll.

Blok finally di Java selalu dieksekusi apakah pengecualian ditangani atau tidak.

Blok finally di Java mengikuti blok try atau catch.

Penggunaan Java finally

Kasus 1

Mari kita lihat contoh java finally di mana pengecualian tidak terjadi.

kelasTesAkhirBlok{
publik statis void main(String args[]){
cobalah{
intdata=25/5;
[Link](data);
}
catch(NullPointerException e){[Link](e);}
akhirnya{[Link]("blok akhirnya selalu dijalankan");}
[Link]("sisa kode...");
}
}
5
blok finally selalu dijalankan
sisa kode...

Kata kunci throw di Java

Kata kunci throw di Java digunakan untuk secara eksplisit melempar sebuah pengecualian.

Kita dapat melempar baik pengecualian yang dicek atau yang tidak dicek dalam java dengan kata kunci throw. Kata throw
kata kunci terutama digunakan untuk melempar pengecualian kustom. Kita akan melihat pengecualian kustom nanti.

Sintaksis dari kata kunci throw dalam java adalah sebagai berikut.

[Link];

PEMROGRAMAN JAVA Page 52


Contoh kata kunci throw di Java

Dalam contoh ini, kami telah membuat metode validasi yang mengambil nilai integer sebagai parameter. Jika
usia kurang dari 18, kami melempar ArithmeticException jika tidak cetak pesan
selamat datang untuk memilih.

[Link] TestThrow1{
static void validasi(int umur) {
jika(usia<18)
throw newArithmeticException("not valid");
lainnya
selamat datang untuk memilih
}
publik statis void main(String args[]){
validasi(13);
[Link]("sisa kode...");
} }

Output:

Pengecualian di utas utama [Link]: tidak valid


Kata kunci throws dalam Java

Kata kunci throws dalam Java digunakan untuk mendeklarasikan sebuah pengecualian. Ini memberikan informasi kepada
programmer bahwa mungkin terjadi pengecualian jadi lebih baik bagi programmer untuk menyediakan
kode penanganan pengecualian sehingga alur normal dapat dipertahankan.

Penanganan pengecualian terutama digunakan untuk menangani pengecualian yang diperiksa. Jika terjadi kesalahan apapun
eksepsi yang tidak terduga seperti NullPointerException, ini adalah kesalahan programmer karena dia tidak
melakukan pemeriksaan sebelum kode digunakan.

Sintaksis java throws


1.tipe_kembali nama_metode()melempar_pengecualian_nama_kelas{
2.//kode metode
3. }
4.

Contoh lemparan Java

Mari kita lihat contoh klausul throws java yang menjelaskan bahwa pengecualian yang diperiksa dapat
disebarkan oleh kata kunci throws.

impor [Link];
kelasUjiLempar1{
voidm()throwsIOException{
throw newIOException("device error");//checked exception
PEMOGRAMAN JAVA Page 53
}
voidn()throwsIOException{
m();
}
voidp(){
coba{
n();
}catch(Pengecualian e){[Link]("pengecualian ditangani");}
}
publik statis void utama(String args[]){}
Testthrows1 obj=newTestthrows1();
obj.p();
[Link]("aliran normal..."); } }
Output:
penanganan pengecualian
aliran normal...

Pengecualian Kustom Java

Jika Anda membuat pengecualian Anda sendiri yang dikenal sebagai pengecualian khusus atau yang ditentukan oleh pengguna.
eksepsi. Eksepsi kustom Java digunakan untuk menyesuaikan eksepsi sesuai dengan kebutuhan pengguna.

Dengan bantuan pengecualian kustom, Anda dapat memiliki pengecualian dan pesan Anda sendiri.

Mari kita lihat contoh sederhana dari pengecualian kustom java.

classInvalidAgeExceptionextendsException{
InvalidAgeException(String s){
super(s);
}}
classTestCustomException1{
static void validasi(int umur) melempar InvalidAgeException{
jika(usia<18)
lempar newInvalidAgeException("tidak valid");
lainnya
[Link]("selamat datang untuk memilih");
}
publik statis void main(String args[]) {
coba{
validasi(13);
}catch(Exception m){[Link]("Pengecualian terjadi: "+m);}

[Link]("sisa kode...");
} }

Output:Exception occured: InvalidAgeException:not valid rest of the code...

PEMROGRAMAN JAVA Page 54


Multithreading

Multithreading di Java adalah proses menjalankan beberapa thread secara bersamaan.

Thread pada dasarnya adalah sub-proses yang ringan, unit terkecil dari pemrosesan. Multiprocessing dan
multithreading, keduanya digunakan untuk mencapai multitasking.

Tapi kami menggunakan multithreading daripada multiprocessing karena thread berbagi area memori yang sama.
Mereka tidak mengalokasikan area memori terpisah sehingga menghemat memori, dan peralihan konteks antara
utasan membutuhkan waktu lebih sedikit dibandingkan proses.

Multithreading Java sebagian besar digunakan dalam permainan, animasi, dll.

Keuntungan dari Multithreading Java

Itu tidak memblokir pengguna karena utas bersifat independen dan Anda dapat melakukan beberapa
operasi pada saat yang sama.

Anda dapat melakukan banyak operasi sekaligus sehingga menghemat waktu.

3) Utas yang independen sehingga tidak mempengaruhi utas lain jika terjadi pengecualian dalam satu utas.

Siklus hidup sebuah Thread (Status Thread)

A thread can be in one of the five states. According to sun, there is only 4 states inthread life
siklus dalam java baru, dapat dijalankan, tidak dapat dijalankan dan dihentikan. Tidak ada keadaan berjalan.

Namun untuk pemahaman yang lebih baik tentang benang, kami menjelaskannya dalam 5 keadaan.

Siklus hidup thread dalam java dikendalikan oleh JVM. Status thread java adalah sebagai berikut:
Baru
[Link] dijalankan

[Link]
[Link] Dapat Dijalankan (Terblokir)

5. Dihentikan

PEMOGRAMAN JAVA Page 55


Bagaimana cara membuat thread

Ada dua cara untuk membuat sebuah benang:

[Link] memperluas kelas Thread


[Link] mengimplementasikan antarmuka Runnable.

Kelas Thread:

Kelas Thread menyediakan konstruktor dan metode untuk membuat dan melakukan operasi pada sebuah
Kelas [Link] memperluas kelas Object dan mengimplementasikan antarmuka Runnable.

Konstruktor Kelas Thread yang Umumnya Digunakan:

o Benang()
o Thread(String nama)
o Thread(Runnable r)
o Thread(Runnable r, String nama)

PEMROGRAMAN JAVA Page 56


Metode yang umum digunakan dari kelas Thread:

[Link] void run(): digunakan untuk melakukan aksi untuk sebuah thread.
[Link] void start(): memulai eksekusi dari thread. JVM memanggil metode run() pada thread.
[Link] void sleep(long miliseconds): Menyebabkan utas yang sedang berjalan saat ini untuk tidur (sementara
hentikan eksekusi) untuk jumlah milidetik yang ditentukan.
[Link] void join():menunggu sebuah thread untuk mati.
[Link] void join(long milidetik): menunggu sebuah thread untuk mati selama milidetik yang ditentukan.
[Link] int getPriority():mengembalikan prioritas dari thread.
[Link] int setPriority(int priority):mengubah prioritas dari thread.
[Link] String getName():mengembalikan nama thread.
[Link] void setName(String name):mengubah nama benang.
10. public Thread currentThread(): mengembalikan referensi dari thread yang sedang dieksekusi saat ini.
[Link] int getId():mengembalikan id dari thread.
[Link] [Link] getState():mengembalikan status dari thread.
[Link] boolean isAlive(): menguji apakah thread masih hidup.
[Link] void yield(): menyebabkan objek utas yang sedang dijalankan untuk sementara berhenti dan memungkinkan
benang lain untuk dijalankan.
[Link] void suspend(): digunakan untuk menangguhkan thread (tidak direkomendasikan).
[Link] void resume():digunakan untuk melanjutkan thread yang ditangguhkan (tidak lagi digunakan).
17. public void stop(): digunakan untuk menghentikan thread (tidak lagi digunakan).
[Link] boolean isDaemon():mengujinya apakah thread tersebut adalah thread daemon.
[Link] void setDaemon(boolean b):marks the thread as daemon or user thread.
20. publik void putuskan(): menghentikan utas.
[Link] boolean isInterrupted():tests if the thread has been interrupted.
[Link] static boolean interrupted(): menguji apakah thread saat ini telah terganggu.

Antarmuka Runnable:

Antarmuka Runnable harus diimplementasikan oleh kelas mana pun yang instansinya dimaksudkan untuk
dieksekusi oleh sebuah thread. Antarmuka Runnable hanya memiliki satu metode yang bernama run().

1. public void run(): digunakan untuk melakukan aksi untuk sebuah thread.

Memulai sebuah utas:

Metode start() dari kelas Thread digunakan untuk memulai sebuah thread yang baru dibuat. Ini melakukan hal-hal berikut
tasks:
o Sebuah thread baru dimulai (dengan callstack baru).
o Utas bergerak dari keadaan Baru ke keadaan Dapat Dijalankan.
o Saat benang mendapatkan kesempatan untuk dijalankan, metode run() tujuannya akan dijalankan.

PEMKODAN JAVA Page 57


Java Thread Example by extending Thread class

classMultiextendsThread{
publik void jalankan() {
[Link]("thread sedang berjalan...");
}
publik statis voidmain(String args[]){
Multi t1=newMulti();
[Link]();
}}
Output:thread is running...

Contoh Thread Java dengan mengimplementasikan antarmuka Runnable

classMulti3implementsRunnable{
public voidrun(){
[Link]("thread is running...");
}
publik statis void main(String args []){
Multi3 m1=newMulti3();
Thread t1 = new Thread(m1);
[Link]();
}}
benang sedang berjalan...

Prioritas Thread (Prioritas Thread):


Setiap utas memiliki prioritas. Prioritas diwakili oleh angka antara 1 dan 10. Dalam sebagian besar
kasus, penjadwal utas menjadwalkan utas sesuai dengan prioritas mereka (dikenal sebagai preemptive
penjadwalan). Tapi tidak dijamin karena tergantung pada spesifikasi JVM bahwa mana
Jadwal yang dipilih.

3 konstanta yang didefinisikan dalam kelas Thread:

[Link] static int MIN_PRIORITY


[Link] static int NORM_PRIORITY
3. public static int MAX_PRIORITY

Prioritas default dari sebuah thread adalah 5 (NORM_PRIORITY). Nilai dari MIN_PRIORITY adalah 1 dan
nilai dari MAX_PRIORITY adalah 10.

Contoh prioritas sebuah Thread:


classTestMultiPriority1extendsThread{
publik void run(){
[Link]("nama thread yang sedang berjalan adalah:" + [Link]().getName());
[Link]("prioritas thread yang sedang berjalan adalah:" + [Link]().getPriority());
}
publik statis void utama(String args[]){

PEMROGRAMAN JAVA Page 58


TestMultiPriority1 m1=newTestMultiPriority1();
TestMultiPriority1 m2=newTestMultiPriority1();
[Link](Thread.MIN_PRIORITY);
[Link](Thread.MAX_PRIORITY);
[Link]();
[Link]();
}}
Nama utas yang berjalan adalah: Thread-0
prioritas utas yang sedang berjalan adalah: 10
nama utas yang berjalan adalah: Thread-1
prioritas utas yang berjalan adalah: 1

Metode disinkronisasi Java


Jika Anda mendeklarasikan metode apa pun sebagai disinkronkan, itu dikenal sebagai metode yang disinkronkan.

Metode yang disinkronkan digunakan untuk mengunci objek untuk sumber daya bersama.

Ketika sebuah thread memanggil metode yang disinkronkan, ia secara otomatis memperoleh kunci untuk objek tersebut
dan melepaskannya ketika utas menyelesaikan tugasnya.

Contoh komunikasi antar thread di java


Mari kita lihat contoh sederhana dari komunikasi antar thread.

kelasPelanggan{
intamount=10000;
synchronized void withdraw(int amount){
[Link]("akan menarik...");
jika([Link]<amount){
Saldo kurang; menunggu setoran...
coba{tunggu();}catch(Pengecualian e){}
}
[Link]-=amount;
[Link]("penarikan selesai...");
}
synchronized void deposit(int amount) {
[Link]("akan menyetor...");
[Link]+=amount;
[Link]("setoran selesai... ");
beritahu();
}
}
kelasUji{
publik statis void main(String args[]) {
finalCustomer c=newCustomer();
newThread(){
publik void run() { [Link](15000); }
}.mulai();
newThread(){

PEMROGRAMAN JAVA Page 59


public voidrun(){[Link](10000);}
}
mulai();
}}
akan menarik diri...
Saldo kurang; menunggu setoran...
akan menyetor...
setoran selesai...
penarikan selesai
ThreadGroup di Java
Java menyediakan cara yang nyaman untuk mengelompokkan beberapa utas dalam satu objek. Dengan cara ini, kita dapat
menangguhkan, melanjutkan, atau menghentikan sekelompok utas dengan satu panggilan metode.

Catatan: Sekarang metode suspend(), resume() dan stop() sudah tidak lagi digunakan.

Grup thread Java diimplementasikan oleh kelas [Link].

Konstruktor kelas ThreadGroup

Hanya ada dua konstruktor dari kelas ThreadGroup.

ThreadGroup(String nama)
ThreadGroup(ThreadGroup orangtua, String nama)

Mari kita lihat kode untuk mengelompokkan beberapa thread.

[Link] tg1 =newThreadGroup("Grup A");


[Link] t1 =newThread(tg1,newMyRunnable(),"satu");
[Link] t2 =newThread(tg1,newMyRunnable(),"dua");
[Link] t3 =newThread(tg1,newMyRunnable(),"tiga");

Sekarang semua 3 utas milik satu grup. Di sini, tg1 adalah nama grup utas, MyRunnable adalah
kelas yang mengimplementasikan antarmuka Runnable dan "satu", "dua", dan "tiga" adalah nama-nama thread.

Sekarang kita bisa menghentikan semua utas hanya dengan satu baris kode.

[Link]().getThreadGroup().interrupt();

Menjelajahi [Link] dan [Link]


PEMROGRAMAN JAVA Page 60
[Link]
Istilah pemrograman jaringan mengacu pada penulisan program yang dieksekusi di beberapa perangkat.
(komputer), di mana perangkat semuanya terhubung satu sama lain menggunakan jaringan.

Paket [Link] dari J2SE API berisi kumpulan kelas dan antarmuka yang
berikan detail komunikasi tingkat rendah, memungkinkan Anda untuk menulis program yang fokus pada
menyelesaikan masalah yang dihadapi.

Paket [Link] menyediakan dukungan untuk dua protokol jaringan yang umum -

TCP - TCP adalah singkatan dari Transmission Control Protocol, yang memungkinkan komunikasi yang andal.

komunikasi antara dua aplikasi. TCP biasanya digunakan di atas Internet


Protokol, yang disebut sebagai TCP/IP.

UDP− UDP adalah singkatan dari User Datagram Protocol, sebuah protokol tanpa koneksi yang memungkinkan

untuk paket data yang akan ditransmisikan antara aplikasi.

Bab ini memberikan pemahaman yang baik tentang dua subjek berikut −

Pemrograman Soket−Ini adalah konsep yang paling banyak digunakan dalam Jaringan dan itu memiliki
telah dijelaskan dengan sangat detail.

Pemrosesan URL− Ini akan dibahas secara terpisah.

[Link]

Paket [Link] sangat diperlukan bagi setiap pengembang java untuk dikuasai karena memiliki banyak
classes that is helpful in formatting such as dates, numbers, and messages.

Kelas [Link]

Berikut adalah kelas-kelas yang tersedia untuk paket [Link]

[table]
Class|Description
SimpleDateFormat|iadalah kelas konkret yang membantu dalam memformat dan mem-parsing tanggal.
[/table]

PEMROGRAMAN JAVA Page 61


KULIAH REDDY PERGURUAN TINGGI TEKNIK & TEKNOLOGI
DEPARTEMEN ILMU KOMPUTER & REKAYASA

UNIT-4
Kerangka Koleksi di Java

Koleksi dalam java adalah sebuah kerangka kerja yang menyediakan arsitektur untuk menyimpan dan memanipulasi

sekelompok objek.

Semua operasi yang Anda lakukan pada data seperti pencarian, pengurutan, penyisipan, manipulasi,
penghapusan dll. dapat dilakukan oleh Java Collections.

Java Collection simply means a single unit of objects. Java Collection framework provides many
antarmuka (Set, List, Antrian, Deque, dll.) dan kelas (ArrayList, Vector, LinkedList,
PriorityQueue, HashSet, LinkedHashSet, TreeSet, dll.

Apa itu framework dalam java


o menyediakan arsitektur siap pakai.
o mewakili kumpulan kelas dan antarmuka.
o adalah opsional.

Apa itu kerangka koleksi

Kerangka kumpulan mewakili arsitektur terpadu untuk menyimpan dan memanipulasi kelompok
objek. Ini memiliki:

[Link] dan implementasinya yaitu kelas-kelas


[Link]

PEMROGRAMAN JAVA Page 62


Hierarki Kerangka Koleksi

Kelas ArrayList Java


Kelas Java ArrayList menggunakan array dinamis untuk menyimpan elemen-elemen. Ia mewarisi kelas AbstractList.
dan mengimplementasikan antarmuka List.

Poin-poin penting tentang kelas Java ArrayList adalah:

o Kelas ArrayList di Java dapat berisi elemen duplikat.


o Kelas ArrayList Java mempertahankan urutan penyisipan.

o Kelas Java ArrayList tidak disinkronkan.


o Java ArrayList memungkinkan akses acak karena array bekerja berdasarkan indeks.
o Dalam kelas ArrayList Java, manipulasi lambat karena banyak penggeseran yang perlu dilakukan.
jika ada elemen yang dihapus dari daftar array.

PEMROGRAMAN JAVA Page 63


Deklarasi kelas ArrayList

Mari kita lihat deklarasi untuk kelas [Link].

Konstruktor ArrayList Java

Konstruktor Description

ArrayList() Ini digunakan untuk membangun daftar array kosong.

ArrayList(Koleksi Ini digunakan untuk membangun daftar array yang diinisialisasi dengan
c) elemen-elemen dari koleksi c.

ArrayList(int Ini digunakan untuk membangun daftar array yang memiliki yang ditentukan

kapasitas) kapasitas awal.

Contoh ArrayList Java


[Link].*;
classTestCollection1{
publik statis void utama(String args[]){
ArrayList<String> list=newArrayList<String>();//Creating arraylist
[Link]("Ravi");//Menambahkan objek ke dalam arraylist
[Link]("Vijay");
[Link]("Ravi");
[Link]("Ajay");
//Menelusuri daftar melalui Iterator
Iterator itr=[Link]();
sementara([Link]()){
[Link]([Link]()); } }}

Ravi
Vijay
Ravi
Ajay

PEMOGRAMAN JAVA Page 64


vektor
ArrayList dan Vector keduanya mengimplementasikan antarmuka List dan mempertahankan urutan penyisipan.

Tapi ada banyak perbedaan antara kelas ArrayList dan Vector yang diberikan di bawah ini.

ArrayList Vektor

ArrayList tidak disinkronkan. Vektor disinkronkan.

ArrayList meningkat 50% dari Peningkatan vektor 100% berarti menggandakan array
ukuran array saat ini jika jumlah dari ukuran jika total jumlah elemen melebihi itu
elemen melebihi kapasitasnya. kapasitas.

3) ArrayList bukanlah kelas warisan, Vector is alegacyclass.


ini diperkenalkan di JDK 1.2.

4) ArrayList cepat karena itu adalah Vektor lambat karena itu disinkronkan yaitu dalam
tidak tersinkronisasi. lingkungan multithreading, itu akan menahan yang lain
thread dalam keadaan dapat dijalankan atau tidak dapat dijalankan sampai

utasan saat ini melepaskan kunci objek.

5) ArrayList menggunakan antarmuka Iterator Vector menggunakan antarmuka Enumeration untuk menjelajahi
untuk menjelajahi elemen-elemen. elemen. Tapi bisa menggunakan Iterator juga.

Contoh Vector Java

Mari kita lihat contoh sederhana dari kelas Vector java yang menggunakan antarmuka Enumeration.

[Link].*;
2.kelasUjiVektor1{
3. publik statis void main(String args[]){
[Link]<String> v=newVector<String>();//membuat vektor
[Link]("umesh");//metode dari Koleksi
[Link]("irfan");//metode Vector
[Link]("kumar");
8.//menelusuri elemen menggunakan Enumeration

PEMROGRAMAN JAVA Page 65


[Link] e=[Link]();
[Link]([Link]()){
[Link]([Link]());
12. } } }

Output:

umesh
irfan
kumar

Kelas Hashtable Java


Kelas Hashtable Java mengimplementasikan sebuah hashtable, yang memetakan kunci ke nilai. Ini mewarisi Dictionary.
kelas dan mengimplementasikan antarmuka Peta.

Poin penting tentang kelas Hashtable Java adalah:

o Sebuah Hashtable adalah array dari daftar. Setiap daftar dikenal sebagai ember. Posisi ember adalah
diidentifikasi dengan memanggil metode hashcode(). Sebuah Hashtable berisi nilai-nilai berdasarkan
kunci.
o Ini hanya mengandung elemen yang unik.

o Ini mungkin tidak memiliki kunci atau nilai yang null.

o Itu disinkronkan.

Deklarasi kelas Hashtable

Let's see the declaration for [Link] class.

[Link] publik Hashtable<K,V> memperluas Dictionary<K,V> mengimplementasikan Map<K,V>, Cloneable, Ser


ializable

Parameter kelas Hashtable

Let's see the Parameters for [Link] class.

o K: Ini adalah jenis kunci yang dipelihara oleh peta ini.


o V: Ini adalah jenis nilai yang dipetakan.

PEMBUATAN PROGRAM JAVA Page 66


Konstruktor kelas Hashtable Java

Constructor Description

Tabel Hash() Ini adalah konstruktor default dari tabel hash yang menginstansiasi
Kelas Hashtable.

Hashtable(int ukuran) Ini digunakan untuk menerima parameter bilangan bulat dan membuat tabel hash
yang memiliki ukuran awal yang ditentukan oleh nilai bilangan bulat size.

Hashtable(int size, float Ini digunakan untuk membuat tabel hash yang memiliki ukuran awal yang ditentukan oleh
fillRatio) ukuran dan rasio pengisian yang ditentukan oleh fillRatio.

Contoh Hashtable Java


[Link].*;
classTestCollection16{
publik statis void utama(String args[]){
Hashtable<Integer,String> hm=newHashtable<Integer,String>();
[Link](100,"Amit");
[Link](102,"Ravi");
[Link](101,"Vijay");
[Link](103,"Rahul");
untuk([Link] m:[Link]()){
[Link]([Link]() + " " + [Link]());
}}}

Output:

103 Rahul
102 Ravi
101 Vijay
100 Amit

Tumpukan

Stack adalah subclass dari Vector yang mengimplementasikan tumpukan standar last-in, first-out.

Stack hanya mendefinisikan konstruktor default, yang membuat stack kosong. Stack mencakup semua
metode yang ditentukan oleh Vektor, dan menambahkan beberapa miliknya sendiri.

PEMROGRAMAN JAVA Page 67


Tumpukan( )

Contoh
Program berikut menggambarkan beberapa metode yang didukung oleh koleksi ini −

import [Link].*;

kelas Publik StackDemo {

static void show push(Stack st, int a) {

[Link](newInteger(a));

[Link]("dorong("+a+")");

[Link]("tumpukan: " + st);

static void tampilkanPop(Tumpukan st) {

[Link]("pop -> ");

Integera = (Integer) [Link]();

[Link](a);

[Link]("tumpukan: " + st); }

publik statis void main(String args[]) {

Stackst=newStack();

[Link]("tumpukan: " + st);

showpush(st,42);

tunjukkanDorong(st,66);

showpush(st,99);

tampilkanpop(st);

tampilkanpop(st);

tampilkanpop(st);

coba{

tampilkanpop(st);

}catch(EmptyStackExceptione) {

[Link]("tumpukan kosong");

PEMROGRAMAN JAVA Page 68


}}}

Ini akan menghasilkan hasil berikut -

Keluaran
stack: [ ]
dorong(42)
stack: [42]
tekan(66)
stack: [42, 66]
dorong(99)
stack: [42, 66, 99]
pop -> 99
stack: [42, 66]
pop -> 66
stack: [42]
pop -> 42
stack: [ ]
pop -> tumpukan kosong

Enumerasi
Antarmuka Enumeration

Antarmuka Enumeration mendefinisikan metode yang dapat Anda gunakan untuk mengenum (mendapatkan satu pada
waktu) elemen-elemen dalam sebuah koleksi objek.
Metode yang dideklarasikan oleh Enumeration dirangkum dalam tabel berikut −

[Link]. Method & Description

1
boolean hasMoreElements( )

Ketika diimplementasikan, itu harus mengembalikan true selama masih ada elemen yang perlu diambil, dan
salah ketika semua elemen telah dihitung.

2
Objek nextElement()

Ini mengembalikan objek berikutnya dalam enumerasi sebagai referensi Objek generik.

Contoh

PEMROGRAMAN JAVA Page 69


Berikut adalah contoh yang menunjukkan penggunaan Enumeration.

impor [Link];

import [Link];

public classEnumerationTester{

publik statis void utama(String args[]) {

Enumerationdays;

VectordayNames=newVector();

[Link]("Sunday");

[Link]("Monday");

[Link]("Tuesday");

[Link]("Wednesday");

[Link]("Thursday");

[Link]("Friday");

[Link]("Saturday");

days=[Link]();

sementara([Link]()) {

[Link]([Link]());

} }}

Ini akan menghasilkan hasil berikut -

Keluaran

Minggu
Senin
Selasa
Rabu
Kamis
Jumat
Sabtu

Iterator
PEMOGRAMAN JAVA Page 70
Ini adalah iterator universal karena kita dapat menerapkannya pada objek Koleksi apa pun. Dengan menggunakan Iterator, kita dapat
melakukan operasi baca dan hapus. Ini adalah versi yang ditingkatkan dari Enumeration dengan tambahan
fungsi kemampuan untuk menghapus elemen.
Iterator must be used whenever we want to enumerate elements in all Collection framework
diimplementasikan antarmuka seperti Set, List, Queue, Deque dan juga di semua kelas yang diimplementasikan dari Map
antarmuka. Iterator adalah satu-satunya kursor yang tersedia untuk seluruh kerangka koleksi.
Objek Iterator dapat dibuat dengan memanggil metode iterator() yang ada dalam antarmuka Koleksi.
// Di sini "c" adalah objek Koleksi apa pun. itr adalah dari

// tipe antarmuka Iterator dan merujuk ke "c"


Iterator itr = [Link]();
Antarmuka Iterator mendefinisikan tiga metode:
// Mengembalikan true jika iterasi memiliki lebih banyak elemen

publik boolean hasNext();

Mengembalikan elemen berikutnya dalam iterasi


// Ini melempar NoSuchElementException jika tidak ada lagi
// elemen hadir
objek publik selanjutnya();

// Hapus elemen berikutnya dalam iterasi


Metode ini hanya dapat dipanggil sekali per panggilan
// ke berikutnya()

publik void hapus();


metode remove() dapat melempar dua pengecualian
. UnsupportedOperationException: Jika operasi hapus tidak didukung oleh iterator ini
. IllegalStateException: Jika metode next belum dipanggil, atau metode remove
sudah dipanggil setelah panggilan terakhir ke metode berikutnya
Keterbatasan Iterator:
. Hanya iterasi dalam arah maju yang dimungkinkan.
. Penggantian dan penambahan elemen baru tidak didukung oleh Iterator.

StringTokenizer di Java

Kelas [Link] memungkinkan Anda untuk memecah string menjadi token. Ini adalah cara sederhana untuk

pisahkan string.

Ini tidak menyediakan fasilitas untuk membedakan angka, string yang dikutip, identifier, dll.

Konstruktor dari kelas StringTokenizer

Ada 3 konstruktor yang didefinisikan dalam kelas StringTokenizer.

PEMROGRAMAN JAVA Page 71


Konstruktor Deskripsi

StringTokenizer(String str) membuat StringTokenizer dengan string yang ditentukan.

StringTokenizer(String str, membuat StringTokenizer dengan string yang ditentukan dan


String delim) pemisah.

StringTokenizer(String str membuat StringTokenizer dengan string dan pemisah yang ditentukan
String delim, boolean dan nilai kembali. Jika nilai kembali benar, pemisah
returnValue) karakter dianggap sebagai token. Jika itu salah,
karakter pemisah berfungsi untuk memisahkan token.

Methods of StringTokenizer class

6 metode berguna dari kelas StringTokenizer adalah sebagai berikut:

Metode publik Deskripsi

boolean hasMoreTokens() memeriksa apakah ada lebih banyak token yang tersedia.

String tokenSelanjutnya() mengembalikan token berikutnya dari objek StringTokenizer.

String nextToken(String delim) mengembalikan token berikutnya berdasarkan pemisah.

boolean hasMoreElements() sama seperti metode hasMoreTokens() .

Objek nextElement() sama seperti nextToken() tetapi tipe kembalinya adalah Object.

int hitungToken() mengembalikan jumlah total token.

Contoh sederhana kelas StringTokenizer

Mari kita lihat contoh sederhana dari kelas StringTokenizer yang memisahkan sebuah string "nama saya khan"
berdasarkan ruang kosong.

import [Link];
kelas publik Simple{
publik statis void main(String args[]){

PEMROGRAMAN JAVA Page 72


StringTokenizer st = new StringTokenizer("nama saya adalah khan", " ");
selama([Link]()) {
[Link]([Link]());
}}}
saya
nama
adalah
khan
Contoh metode nextToken(String delim) dari kelas StringTokenizer
impor [Link].*;
publik classTest {
publik statis void utama(String[] args) {
StringTokenizer st = new StringTokenizer("my,name,is,khan");
// mencetak token berikutnya

[Link]("Token berikut adalah : " + [Link](","));


} }
Token berikutnya adalah : saya

[Link]
. Untuk menggunakan kelas ini untuk menghasilkan angka acak, kita harus terlebih dahulu membuat satu instance dari ini.
kelas dan kemudian memanggil metode seperti nextInt(), nextDouble(), nextLong() dll menggunakan itu
contoh.
. Kami dapat menghasilkan angka acak dari tipe integer, float, double, long, boolean menggunakan ini
kelas.
. Kita dapat memberikan argumen kepada metode untuk menetapkan batas atas pada rentang dari
nomor yang akan dihasilkan. Misalnya, nextInt(6) akan menghasilkan angka dalam rentang 0 hingga 5
kedua-duanya termasuk.
// Sebuah program Java untuk mendemonstrasikan generasi angka acak
// menggunakan [Link];
impor [Link];

publik kelas generateRandom{

publik statis void utama(String args[])


{
// buat instance dari kelas Random
Random rand = new Random();

// Menghasilkan bilangan bulat acak dalam rentang 0 hingga 999


int rand_int1 = [Link](1000);
int rand_int2 = [Link](1000);

PEMROGRAMAN JAVA Page 73


// Cetak bilangan bulat acak
[Link]("Bilangan Bulat Acak: "+rand_int1);
[Link]("Bilangan Bulat Acak: " + rand_int2);

// Menghasilkan angka desimal acak


double rand_dub1 = [Link]();
double rand_dub2 = [Link]();

// Cetak angka ganda acak


[Link]("Random Doubles: " + rand_dub1);
[Link]("Angka Acak Ganda: " + rand_dub2);
}}
Output:

Bilangan Bulat Acak: 547

Random Integers: 126


Angka Acak Ganda: 0.8369779739988428
Dobel Acak: 0.5497554388209912

Kelas Scanner Java

Ada berbagai cara untuk membaca input dari keyboard, kelas [Link] adalah salah satunya.
Kelas Scanner Java memecah input menjadi token menggunakan pemisah yang adalah ruang kosong
bydefault. It provides many methods to read and parse various primitive values.

Kelas Scanner Java digunakan secara luas untuk mem-parsing teks untuk tipe string dan tipe primitif menggunakan reguler

ekspresi.

Kelas Scanner Java mewarisi kelas Object dan mengimplementasikan antarmuka Iterator dan Closeable.

Metode yang umum digunakan dari kelas Scanner

Ada daftar metode kelas Scanner yang umum digunakan:

Metode Deskripsi

publik String berikutnya() ini mengembalikan token berikutnya dari pemindai.

public String nextLine() it moves the scanner position to the next line and returns the value
sebagai string.

public byte nextByte() itu memindai token berikutnya sebagai byte.

PEMROGRAMAN JAVA Page 74


publik pendek nextShort() itu memindai token berikutnya sebagai nilai pendek.

public int nextInt() itu memindai token berikutnya sebagai nilai int.

publik long nextLong() itu memindai token berikutnya sebagai nilai panjang.

public float nextFloat() itu memindai token berikutnya sebagai nilai float.

publik ganda itu memindai token berikutnya sebagai nilai ganda.


nextDouble()

Contoh Java Scanner untuk mengambil input dari konsol

Mari kita lihat contoh sederhana dari kelas Scanner Java yang membaca int, string, dan double
nilai sebagai masukan:

[Link];
classScannerTest{
publik statis void main(String args[]){
Scanner sc=newScanner([Link]);
[Link]("Masukkan nomor absen Anda");
introllno=[Link]();
[Link]("Masukkan nama Anda");
String name=[Link]();
[Link]("Masukkan biaya Anda");
doublefee=[Link]();
[Link]("No. Roll:"+rollno+" nama:"+name+" biaya:"+fee);
[Link]();
} } Output:
Masukkan nomor gulungan Anda

111
Masukkan nama Anda
Ratan
Masukkan
450000
Rollno:111 name:Ratan fee:450000

PEMROGRAMAN JAVA Page 75


Kelas Kalender Java

Kelas Kalender Java adalah kelas abstrak yang menyediakan metode untuk mengonversi tanggal antara
momen spesifik dalam waktu dan serangkaian bidang kalender seperti BULAN, TAHUN, JAM, dll. Itu
mengambil alih kelas Object dan mengimplementasikan antarmuka Comparable.

Deklarasi kelas Kalender Java

Mari kita lihat deklarasi kelas [Link].

[Link] abstrak publik Calendar memperluas Object


[Link], Cloneable, Comparable<Calendar>

Contoh Kelas Kalender Java

import [Link];
kelas KalenderContoh1 {
publik statis void main(String[] args) {
Kalender kalender = [Link]();
[Link]("Tanggal saat ini adalah : " + [Link]());
[Link]([Link], -15);
[Link]("15 hari yang lalu: " + [Link]());
[Link]([Link],4);
[Link]("4 bulan kemudian: " + [Link]());
[Link]([Link], 2);
[Link]("2 tahun kemudian: " + [Link]());
}}

Output:

Tanggal saat ini adalah: Kam Jan 19 18:47:02 IST 2017


15 hari yang lalu: Rabu 04 Jan 18:47:02 IST 2017
4 bulan kemudian: Kam Mei 04 18:47:02 IST 2017
2 tahun kemudian: Sabtu, 04 Mei 2019 18:47:02 IST

PEMROGRAMAN JAVA Page 76


Java - Files and I/O
Paket [Link] berisi hampir setiap kelas yang mungkin Anda perlukan untuk melakukan input dan output
(I/O) di Java. Semua aliran ini mewakili sumber input dan tujuan output. Aliran
paket [Link] mendukung banyak data seperti primitif, objek, karakter yang dilokalisasi, dll.

Aliran
Aliran dapat didefinisikan sebagai serangkaian data. Ada dua jenis Aliran −

InputStream− InputStream digunakan untuk membaca data dari suatu sumber.

OutputStream− OutputStream digunakan untuk menulis data ke suatu tujuan.

Java menyediakan dukungan yang kuat namun fleksibel untuk I/O yang terkait dengan file dan jaringan tetapi tutorial ini
menyediakan fungsi dasar yang sangat mendasar terkait dengan aliran dan I/O. Kita akan melihat yang paling umum digunakan

contoh satu per satu −

Aliran Byte
Aliran byte Java digunakan untuk melakukan input dan output dari byte 8-bit. Meskipun ada banyak
kelas yang terkait dengan aliran byte tetapi paling sering digunakan kelas
adalah,FileInputStreamdanFileOutputStream. Berikut adalah contoh yang menggunakan
dua kelas ini untuk menyalin file input ke dalam file output−

Contoh

impor [Link].*;

kelas Publik SalinFile {

publik statis void utama(String arg[]) melempar IOException {

FileInputStreamin=null;

FileOutputStream out=null;

coba{

in=newFileInputStream("[Link]");

out=newFileOutputStream("[Link]");

intc;

while((c=[Link]()) != -1) {
PEMROGRAMAN JAVA Page 77
[Link](c);

akhirnya

jika(in!=null) {

[Link]();

jika(out!=null) {

[Link]();

}} }}

Sekarang mari kita memiliki [Link] dengan konten berikut -

Ini adalah tes untuk menyalin file.

Sebagai langkah selanjutnya, kompilasi program di atas dan jalankan, yang akan menghasilkan [Link]
file dengan konten yang sama seperti yang kita miliki di [Link]. Jadi mari kita masukkan kode di atas ke dalam [Link]

file dan lakukan hal berikut−

$javac [Link]
$java SalinFile
Aliran Karakter
JavaBytestreams digunakan untuk melakukan input dan output byte 8-bit, sedangkan
Aliran karakter Java digunakan untuk melakukan input dan output untuk unicode 16-bit. Meskipun ada
ada banyak kelas yang terkait dengan aliran karakter tetapi kelas yang paling sering digunakan
adalah, FileReader dan FileWriter. Meskipun secara internal FileReader menggunakan FileInputStream dan

FileWriter menggunakan FileOutputStream tetapi di sini perbedaan utamanya adalah FileReader membaca dua
byte per waktu dan FileWriter menulis dua byte per waktu.

Kita dapat menulis ulang contoh di atas, yang membuat penggunaan kedua kelas ini untuk menyalin sebuah input
file (yang memiliki karakter unicode) ke dalam file keluaran -

Contoh

[Link].*;

public classCopyFile{

publik statis void main(String args[]) melempar IOException {

PEMROGRAMAN JAVA Page 78


FileReaderin=null;

FileWriterout=null;

coba{

in=newFileReader("[Link]");

out=newFileWriter("[Link]");

intc;

sementara((c=[Link]()) != -1) {

[Link](c);

}akhirnya{

jika(in!=null) {

[Link]();

jika(out!=null) {

[Link]();

}} }}

Sekarang mari kita memiliki [Link] dengan konten berikut −

Ini adalah tes untuk menyalin file.

Sebagai langkah berikutnya, kompilasi program di atas dan jalankan, yang akan menghasilkan [Link]
file dengan konten yang sama seperti yang kita miliki di [Link]. Jadi mari kita tempatkan kode di atas di [Link]

file dan lakukan yang berikut -

$javac [Link]
$java SalinFile
Aliran Standar
Semua bahasa pemrograman mendukung I/O standar di mana program pengguna dapat
ambil input dari keyboard dan kemudian menghasilkan output di layar komputer. Java menyediakan
mengikuti tiga aliran standar −

Input Standar−Ini digunakan untuk memberikan data ke program pengguna dan biasanya menggunakan keyboard
digunakan sebagai aliran input standar dan direpresentasikan sebagai [Link].

PEMROGRAMAN JAVA Page 79


Keluaran Standar− Ini digunakan untuk mengeluarkan data yang dihasilkan oleh program pengguna dan
biasanya layar komputer digunakan untuk aliran output standar dan direpresentasikan
[Link].

Kesalahan Standar− Ini digunakan untuk mengeluarkan data kesalahan yang dihasilkan oleh program pengguna

dan biasanya layar komputer digunakan untuk aliran kesalahan standar dan diwakili
[Link].

Berikut adalah program sederhana, yang membuat InputStreamReader untuk membaca aliran input standar
hingga pengguna mengetik "

Contoh
[Link].*;

public classReadConsole{

publik statis void main(String args[]) melempar IOException{

InputStreamReader cin = null;

cobalah{

cin=newInputStreamReader([Link]);

[Link]("Masukkan karakter, 'q' untuk keluar.");

karakter
lakukan{

c= (char)[Link]();

[Link](c);

}sementara(c!='q');

}akhirnya{

jika(cin!=null) {

[Link]();

} } }}

Program ini terus membaca dan mengeluarkan karakter yang sama sampai kita menekan 'q' −

$javac [Link]
$java BacaKonsol

PEMROGRAMAN JAVA Page 80


Masukkan karakter, 'q' untuk keluar.
1
1
e
e
q
q
Membaca dan Menulis File
Seperti yang dijelaskan sebelumnya, aliran dapat didefinisikan sebagai urutan data. InputStream digunakan untuk

read data from a source and theOutputStreamis used for writing data to a destination.

Berikut adalah hierarki kelas untuk menangani aliran Input dan Output.

Dua aliran penting adalah FileInputStream dan FileOutputStream

FileInputStream
Aliran ini digunakan untuk membaca data dari file. Objek dapat dibuat menggunakan
keywordbaru dan ada beberapa jenis konstruktor yang tersedia.

Konstruktor berikut mengambil nama file sebagai string untuk membuat objek aliran input untuk membaca
file −

InputStream f = new FileInputStream("C:/java/hello");

PEMROGRAMAN JAVA Page 81


Konstruktor berikut mengambil objek file untuk membuat objek aliran masukan untuk membaca file. Pertama kita
buat objek file menggunakan metode File() sebagai berikut −

File f = new File("C:/java/hello");


InputStream f = new FileInputStream(f);
Setelah Anda memiliki objek InputStream di tangan, maka ada daftar metode pembantu yang dapat digunakan.
digunakan untuk membaca aliran atau melakukan operasi lain pada aliran.

ByteArrayInputStream

DataInputStream

FileOutputStream
FileOutputStream digunakan untuk membuat file dan menulis data ke dalamnya. Stream akan membuat file jika
itu tidak sudah ada, sebelum membukanya untuk output.

Berikut adalah dua konstruktor yang dapat digunakan untuk membuat objek FileOutputStream.

Konstruktor berikut mengambil nama file sebagai string untuk membuat objek aliran masukan untuk menulis
file −

OutputStream f = new FileOutputStream("C:/java/halo")


Konstruktor berikut mengambil objek file untuk membuat objek aliran keluaran untuk menulis file. Pertama,
kami membuat objek file menggunakan metode File() sebagai berikut −

File f = new File("C:/java/hello");


OutputStream f = new FileOutputStream(f);
Setelah Anda memiliki objek OutputStream, maka ada daftar metode pembantu yang dapat digunakan.
digunakan untuk menulis ke aliran atau melakukan operasi lain pada aliran.

ByteArrayOutputStream
DataOutputStream

Contoh

Berikut adalah contoh untuk mendemonstrasikan InputStream dan OutputStream −

imporkan [Link].*;

kelas public fileStreamTest{

publik statis void main(String args[]) {


cobalah{

PEMROGRAMAN JAVA Page 82


bytebWrite[] = {11,21,3,40,5};

OutputStreamos=newFileOutputStream("[Link]");

for(int x=0;x<[Link];x++) {

[Link](bWrite[x] );// menulis byte}

[Link]();

InputStream is = new FileInputStream("[Link]");

intsize=[Link]();

untuk(inti=0;i<size;i++) {

[Link]((char)[Link]() +" "); }

[Link]();

}catch(IOExceptione) {

[Link]("Pengecualian");

} }}

Kelas [Link]
Kelas file [Link] berfungsi seperti array besar byte yang disimpan dalam file
Instansi dari kelas ini mendukung baik pembacaan maupun penulisan ke file akses acak.

Deklarasi kelas
Berikut adalah deklarasi untuk kelas [Link] -

kelas publik RandomAccessFile


memperluas Objek
mengimplementasikan DataOutput, DataInput, Closeable

Konstruktor kelas
S.N. Constructor & Description

1
RandomAccessFile(File file, String mode)

Ini membuat aliran file akses acak untuk membaca dari, dan jika diperlukan, untuk menulis ke, file tersebut

ditentukan oleh argumen File.

PEMROGRAMAN JAVA Page 83


2
RandomAccessFile(File file, String mode)

Ini membuat aliran file akses acak untuk dibaca, dan secara opsional untuk menulis ke file dengan
nama yang ditentukan.

Metode yang diwarisi


Kelas ini mewarisi metode dari kelas-kelas berikut −

[Link]

Kelas [Link] di Java


Kelas File adalah representasi Java dari nama jalur file atau direktori. Karena file dan direktori
nama memiliki format yang berbeda di berbagai platform, sebuah string sederhana tidak cukup untuk menamainya.
Kelas File berisi beberapa metode untuk bekerja dengan nama jalur, menghapus dan mengganti nama
berkas, membuat direktori baru, mencantumkan isi sebuah direktori, dan menentukan beberapa
atribut umum dari file dan direktori.
. Ini adalah representasi abstrak dari nama jalur file dan direktori.
. Sebuah pathname, baik yang abstrak maupun dalam bentuk string, bisa bersifat absolut atau relatif. Induk
jalan abstrak dapat diperoleh dengan memanggil metode getParent() dari kelas ini.
. Pertama-tama, kita harus membuat objek kelas File dengan memberikan nama file atau nama direktori.
ke dalamnya. Sistem file mungkin menerapkan pembatasan pada operasi tertentu pada file yang sebenarnya
objek sistem, seperti membaca, menulis, dan mengeksekusi. Pembatasan ini secara kolektif
dikenal sebagai izin akses.
. Instance dari kelas File bersifat tidak dapat diubah; artinya, setelah dibuat, jalur nama abstrak
yang diwakili oleh objek File tidak akan pernah berubah.
Bagaimana cara membuat objek File?
Objek File dibuat dengan memasukkan String yang mewakili nama sebuah file, atau String atau
objek File lainnya. Misalnya,
File a = new File("/usr/local/bin/geeks");

defines an abstract file name for the geeks file in directory /usr/local/bin. This is an absolute
nama file abstrak.
Program untuk memeriksa apakah file atau direktori secara fisik ada atau tidak.

// Dalam program ini, kami menerima nama file atau direktori dari
// argumen baris perintah. Kemudian program akan memeriksa apakah
// apakah file atau direktori tersebut secara fisik ada atau tidak dan
// ini menampilkan properti dari file atau direktori tersebut.
*impor [Link];

// Menampilkan properti file


kelas fileProperty
{
publik statis void main(String[] args) {

PEMROGRAMAN JAVA Page 84


//terima nama file atau nama direktori melalui argumen baris perintah
String fname = args[0];

//lewati nama file atau nama direktori ke objek File


File f = new File(fname);

//terapkan metode kelas File pada objek File


[Link]("Nama file :"+[Link]());
[Link]("Jalur: " + [Link]());
[Link]("Jalur absolut:" + [Link]());
[Link]("Orangtua:"+[Link]());
[Link]("Ada :"+[Link]());
jika([Link]())
{
[Link]("Dapat ditulis:"+[Link]());
[Link]("Dapat dibaca"+[Link]());
[Link]("Apakah ini direktori:" + [Link]());
[Link]("Ukuran File dalam byte " + [Link]());
}
}
}

Output:

File name :[Link]


Path: [Link]

Jalur absolut: C:\Users\akki\IdeaProjects\codewriting\src\[Link]


Parent:null

Exists :true

Dapat ditulisi:true
Dapat dibaca

Apakah direktori:false

File Size in bytes 20

Menghubungkan ke DB

Apa itu JDBC Driver?


Driver JDBC mengimplementasikan antarmuka yang ditentukan dalam API JDBC, untuk berinteraksi dengan Anda

server basis data.

Sebagai contoh, menggunakan driver JDBC memungkinkan Anda membuka koneksi database dan berinteraksi dengannya.
dengan mengirimkan perintah SQL atau basis data kemudian menerima hasilnya dengan Java.

PEMROGRAMAN JAVA Page 85


Paket [Link] yang dikirimkan dengan JDK, berisi berbagai kelas dengan perilaku mereka yang ditentukan
dan implementasi sebenarnya dilakukan di driver pihak ketiga. Vendor pihak ketiga mengimplementasikan
antarmuka [Link] dalam pengemudi basis data mereka.

Jenis Driver JDBC


Implementasi driver JDBC bervariasi karena berbagai macam sistem operasi dan
platform perangkat keras di mana Java beroperasi. Sun telah membagi tipe implementasi menjadi empat
kategori, Tipe 1, 2, 3, dan 4, yang dijelaskan di bawah ini −

Tipe 1: Driver JDBC-ODBCBridge


Dalam pengemudi Tipe 1, jembatan JDBC digunakan untuk mengakses pengemudi ODBC yang terinstal di setiap klien.

mesin. Menggunakan ODBC, memerlukan konfigurasi pada sistem Anda sebuah Nama Sumber Data (DSN) yang

mewakili basis data target.

Ketika Java pertama kali muncul, ini adalah pengemudi yang berguna karena sebagian besar basis data hanya mendukung ODBC.

akses tetapi sekarang jenis driver ini hanya direkomendasikan untuk penggunaan eksperimental atau ketika tidak ada yang lain

alternatif tersedia.

JDBC-ODBC Bridge yang disertakan dengan


JDK 1.2 adalah contoh yang baik dari jenis driver ini.

Tipe 2: API-Natif JDBC


Dalam driver Tipe 2, panggilan API JDBC diubah menjadi panggilan API C/C++ asli, yang unik
ke basis data. Driver ini biasanya disediakan oleh vendor basis data dan digunakan di dalam
cara yang sama seperti Jembatan JDBC-ODBC. Driver spesifik vendor harus diinstal di setiap
mesin klien.

PEMOGRAMAN JAVA Page 86


Jika kita mengubah Basis Data, kita harus mengubah API asli, karena itu spesifik untuk sebuah basis data dan
mereka sebagian besar sudah usang sekarang, tetapi Anda mungkin menyadari peningkatan kecepatan dengan driver Tipe 2,

karena itu menghilangkan overhead ODBC.

Driver Oracle Call Interface (OCI) adalah contoh dari driver Tipe 2.

Tipe 3: JDBC-Net murni Java


Dalam pengemudi Tipe 3, pendekatan tiga lapisan digunakan untuk mengakses basis data. Klien JDBC menggunakan

soket jaringan standar untuk berkomunikasi dengan server aplikasi middleware. Soket
informasi kemudian diterjemahkan oleh server aplikasi middleware ke dalam format panggilan yang dibutuhkan
oleh DBMS, dan diteruskan ke server database.

Jenis pengemudi ini sangat fleksibel, karena tidak memerlukan kode yang diinstal di klien dan
satu driver dapat memberikan akses ke beberapa basis data.

PEMROGRAMAN JAVA Page 87


Anda dapat menganggap server aplikasi sebagai "proxy" JDBC, yang berarti bahwa ia membuat panggilan untuk
aplikasi klien. Oleh karena itu, Anda perlu sedikit pengetahuan tentang konfigurasi server aplikasi
untuk secara efektif menggunakan jenis driver ini.

Server aplikasi Anda mungkin menggunakan driver Tipe 1, 2, atau 4 untuk berkomunikasi dengan database,
memahami nuansa akan sangat membantu.

Tipe 4: 100% Murni Java


Dalam driver Tipe 4, driver berbasis Java murni berkomunikasi langsung dengan basis data vendor.
melalui koneksi soket. Ini adalah driver berkinerja tertinggi yang tersedia untuk basis data dan
biasanya disediakan oleh vendor itu sendiri.

Driver jenis ini sangat fleksibel, Anda tidak perlu menginstal perangkat lunak khusus di klien
atau server. Selain itu, driver ini dapat diunduh secara dinamis.

MySQL's Connector/J driver is a Type 4 driver. Because of the proprietary nature of their
protokol jaringan, vendor basis data biasanya menyediakan driver tipe 4.

Driver mana yang harus digunakan?


Jika Anda mengakses satu jenis basis data, seperti Oracle, Sybase, atau IBM, pengemudi yang disarankan
tipe adalah 4.

Jika aplikasi Java Anda mengakses beberapa jenis basis data pada saat yang sama, tipe 3 adalah
pengemudi pilihan.

Pengemudi tipe 2 berguna dalam situasi, di mana pengemudi tipe 3 atau tipe 4 belum tersedia.
basis data Anda.

PEMROGRAMAN JAVA Page 88


Driver tipe 1 tidak dianggap sebagai driver level penerapan, dan biasanya digunakan untuk
hanya untuk tujuan pengembangan dan pengujian.

Contoh untuk menghubungkan ke database mysql di java

Untuk menghubungkan aplikasi java dengan basis data mysql, Anda perlu mengikuti 5 langkah untuk dilakukan
konektivitas basis data.

Dalam contoh ini, kami menggunakan MySql sebagai basis data. Jadi kami perlu mengetahui informasi berikut
untuk basis data mysql:

[Link] pengemudi: Kelas pengemudi untuk database mysql adalah [Link].


[Link] URL: Itu koneksi URL untuk yang mysql database
isjdbc:mysql://localhost:3306/sonoowhere jdbc adalah API, mysql adalah database,
localhost adalah nama server tempat mysql berjalan, kita juga dapat menggunakan alamat IP, 3306
nomor port dan sonoo adalah nama basis datanya. Kami dapat menggunakan basis data apa pun, dalam hal ini

Anda perlu mengganti sonoo dengan nama database Anda.


[Link] Pengguna: Nama pengguna default untuk database mysql adalah root.

[Link] Sandi: Kata sandi diberikan oleh pengguna pada saat menginstal basis data mysql. Dalam
pada contoh ini, kita akan menggunakan root sebagai kata sandi.

Mari kita buat tabel terlebih dahulu di database mysql, tetapi sebelum membuat tabel, kita perlu membuat
database pertama.

[Link] basis data sonoo;


[Link] sonoo;
[Link] tabel emp(id int(10), nama varchar(40), umur int(3));
Example to Connect Java Application with mysql database

Dalam contoh ini, sonoo adalah nama database, root adalah nama pengguna dan kata sandi.

[Link].*;
classMysqlCon{
publik statis void main(String args[]){
coba{
[Link]("[Link]");
Koneksi con=[Link](
"jdbc:mysql://localhost:3306/sonoo","root","root");
//di sini sonoo adalah nama database, root adalah nama pengguna dan kata sandi

PEMROGRAMAN JAVA Page 89


Pernyataan stmt=[Link]();
ResultSet rs=[Link]("select * from emp");
sementara([Link]())
[Link]([Link](1)+" "+[Link](2)+" "+[Link](3));
[Link]();
}catch(Exception e){ [Link](e);}
}}

Contoh di atas akan mengambil semua catatan dari tabel emp.

Untuk menghubungkan aplikasi java dengan database mysql, file [Link] diperlukan.
dimuat.

Dua cara untuk memuat file jar:


1. Tempelkan file [Link] di folder jre/lib/ext
[Link] classpath

1) Tempelkan file [Link] di folder JRE/lib/ext:


Unduh file [Link]. Pergi ke folder jre/lib/ext dan tempelkan file jar di sini.

2) atur jalur kelas:


Ada dua cara untuk mengatur classpath:
[Link] [Link]

Cara mengatur classpath sementara


buka command prompt dan tulis:
1.C:>set classpath=c:\folder\[Link];.;

Cara mengatur classpath permanen

Buka variabel lingkungan lalu klik pada tab baru. Di nama variabel tulis classpath dan di
nilai variabel tempelkan jalur ke file [Link] dengan menambahkan [Link];.; sebagai
C:\folder\[Link];

Set Hasil JDBC


Pernyataan SQL yang membaca data dari kueri basis data, mengembalikan data dalam set hasil. Yang
Pernyataan SELECT adalah cara standar untuk memilih baris dari database dan melihatnya dalam hasil.
set. Antarmuka [Link] mewakili hasil dari kueri basis data.

PEMROGRAMAN JAVA Page 90


Objek ResultSet menjaga kursor yang menunjuk pada baris saat ini dalam set hasil. Istilah
"result set" mengacu pada data baris dan kolom yang terdapat dalam objek ResultSet.

Metode antarmuka ResultSet dapat dibagi menjadi tiga kategori -

Metode navigasi: Digunakan untuk memindahkan kursor.

Metode Get: Digunakan untuk melihat data di kolom baris saat ini yang ditunjuk oleh
kursor.

Metode pembaruan: Digunakan untuk memperbarui data di kolom baris saat ini. Pembaruan
dapat kemudian diperbarui di database yang mendasarinya juga.

Kursor dapat dipindahkan berdasarkan properti dari ResultSet. Properti ini ditentukan
when the corresponding Statement that generates the ResultSet is created.

JDBC memberikan metode koneksi berikut untuk membuat pernyataan dengan ResultSet yang diinginkan −

buatPernyataan(int RSType, int RSConcurrency);

prepareStatement(String SQL, int RSType, int RSConcurrency);

persiapkanPanggilan(String sql, int RSType, int RSConcurrency);

Argumen pertama menunjukkan tipe objek ResultSet dan argumen kedua adalah salah satu dari dua
Konstanta ResultSet untuk menentukan apakah hasil set bersifat hanya-baca atau dapat diperbarui.

Jenis ResultSet
Jenis RSType yang mungkin diberikan di bawah ini. Jika Anda tidak menentukan jenis ResultSet, Anda akan
secara otomatis mendapatkan yang berjenis TYPE_FORWARD_ONLY.

Ketik Description

ResultSet.TYPE_FORWARD_ONLY Kursor hanya dapat bergerak maju dalam hasil


set.

ResultSet.TYPE_SCROLL_INSENSITIVE Kursor dapat menggulir maju dan mundur, dan


set hasil tidak peka terhadap perubahan yang dibuat oleh
lainnya ke database yang terjadi setelah set hasil
diciptakan.

PEMROGRAMAN JAVA Page 91


ResultSet.TYPE_SCROLL_SENSITIVE. Kursor dapat menggulir maju dan mundur, dan
hasil set sangat sensitif terhadap perubahan yang dibuat oleh
lainnya ke basis data yang terjadi setelah himpunan hasil
diciptakan.

Konkuren dari ResultSet


Kemungkinan RSConcurrency diberikan di bawah ini. Jika Anda tidak menentukan jenis Concurrency, Anda
akan secara otomatis mendapatkan yang bersifat CONCUR_READ_ONLY.

Konkruensi Description

ResultSet.CONCUR_READ_ONLY Membuat set hasil yang hanya dapat dibaca. Ini adalah default

ResultSet.CONCUR_UPDATABLE Membuat kumpulan hasil yang dapat diperbarui.

Melihat Hasil Set


Antarmuka ResultSet berisi puluhan metode untuk mendapatkan data dari baris saat ini.

Ada metode get untuk setiap tipe data yang mungkin, dan setiap metode get memiliki dua versi.

Satu yang menerima nama kolom.

Satu yang mengambil indeks kolom.

Misalnya, jika kolom yang Anda minati berisi int, Anda perlu menggunakan salah satu dari
metode getInt() dari ResultSet −

S.N. Methods & Description

1 public int getInt(String columnName) throws SQLException

Mengembalikan int di baris saat ini di kolom bernama columnName.

2 public int getInt(int columnIndex) throws SQLException


Mengembalikan int di baris saat ini di indeks kolom yang ditentukan. Indeks kolom dimulai
pada 1, berarti kolom pertama dari sebuah baris adalah 1, kolom kedua dari sebuah baris adalah 2, dan seterusnya.

PEMROGRAMAN JAVA Page 92


Demikian pula, ada metode get dalam antarmuka ResultSet untuk masing-masing dari delapan tipe primitif Java.
tipe, serta tipe umum seperti [Link], [Link], dan [Link].

Ada juga metode untuk mendapatkan tipe data SQL [Link], [Link],
[Link], [Link], dan [Link]. Periksa dokumentasi untuk informasi lebih lanjut

informasi tentang penggunaan tipe data SQL ini.

Untuk pemahaman yang lebih baik, marilah kita belajarMelihat - Contoh Kode.

Memperbarui Hasil Set


Antarmuka ResultSet berisi sekumpulan metode pembaruan untuk memperbarui data dari sebuah hasil
set.

Seperti dengan metode get, ada dua metode pembaruan untuk setiap tipe data -

Satu yang menerima nama kolom.

Satu yang mengambil indeks kolom.

PEMOGRAMAN JAVA Page 93


Sebagai contoh, untuk memperbarui kolom String dari baris saat ini dalam sekumpulan hasil, Anda akan menggunakan salah satu dari

metode updateString() berikut −

S.N. Methods & Description

1 public void updateString(int columnIndex, String s) throws SQLException

Mengubah String di kolom yang ditentukan menjadi nilai s.

2 public void updateString(String columnName, String s) throws SQLException


Mirip dengan metode sebelumnya, kecuali bahwa kolom ditentukan dengan namanya alih-alih
indeksnya.

Ada metode pembaruan untuk delapan tipe data primitif, serta String, Object, URL, dan
tipe data SQL dalam paket [Link].

Memperbarui sebuah baris dalam hasil set mengubah kolom dari baris saat ini dalam objek ResultSet,
tetapi tidak di basis data yang mendasarinya. Untuk memperbarui perubahan Anda pada baris di basis data, Anda perlu
untuk memanggil salah satu dari metode berikut.

S.N. Methods & Description

1 public void perbaruiBaris()

Memperbarui baris saat ini dengan memperbarui baris yang sesuai di basis data.

2 public void hapusBaris()


Menghapus baris saat ini dari database

3 public void refreshRow()


Refreshes the data in the result set to reflect any recent changes in the database.

4 public void batalkanPembaruanBaris()


Membatalkan pembaruan yang dilakukan pada baris saat ini.

5 publik kosong insertRow()


Menyisipkan sebuah baris ke dalam database. Metode ini hanya dapat dipanggil ketika kursor berada

menunjuk ke baris sisipan.

PEMROGRAMAN JAVA Page 94


KOLLEGE TEKNIK & TEKNOLOGI MALLA REDDY
DEPARTEMEN ILMU KOMPUTER & REKAYASA

UNIT-5
Pemrograman GUI dengan Java
Hierarki Kelas AWT

Java AWT (Abstract Window Toolkit) adalah API untuk mengembangkan GUI atau berbasis jendela.

aplikasi dalam java.

Komponen Java AWT tergantung pada platform yaitu komponen ditampilkan sesuai dengan
pandangan sistem operasi. AWT adalah berat, yaitu komponen-komponennya menggunakan sumber daya dari OS.

Paket [Link] menyediakan kelas-kelas untuk API AWT seperti TextField, Label, TextArea,
RadioButton, CheckBox, Pilihan, Daftar dll.

Hierarki Java AWT

Hierarki kelas Java AWT diberikan di bawah ini.

PEMROGRAMAN JAVA Page 95


Kontainer

Container adalah komponen dalam AWT yang dapat menampung komponen lain seperti tombol,
kotak teks, label dll. Kelas yang memperluas kelas Container dikenal sebagai wadah seperti
Bingkai, Dialog, dan Panel.

Jendela

Jendela adalah wadah yang tidak memiliki batas dan bilah menu. Anda harus menggunakan bingkai, dialog atau
jendela lain untuk membuat jendela.

Panel

Panel adalah wadah yang tidak memiliki bilah judul dan bilah menu. Itu bisa memiliki yang lain
komponen seperti tombol, bidang teks, dll.

Kaidah

The Frame is the container that contain title bar and can have menu bars. It can have other
komponen seperti tombol, bidang teks, dll.

Metode Berguna dari Kelas Komponen

Metode Description

public void add(Component c) menyisipkan komponen pada komponen ini.

public void setSize(int lebar, int tinggi) mengatur ukuran (lebar dan tinggi) dari komponen.

publik void setLayout(LayoutManager menentukan pengelola tata letak untuk komponen.


m)

public void setVisible(boolean status) mengubah visibilitas komponen, secara default


salah.

Java AWT Example

Untuk membuat contoh awt sederhana, Anda memerlukan sebuah frame. Ada dua cara untuk membuat frame di AWT.

o Dengan memperluas kelas Frame (warisan)


o Dengan membuat objek dari kelas Frame (asosiasi)

PEMROGRAMAN JAVA Page 96


Contoh AWT dengan Pewarisan

Mari kita lihat contoh sederhana dari AWT di mana kita mewarisi kelas Frame. Di sini, kita menampilkan
Komponen tombol pada Frame.

[Link].*;
classFirstextendsFrame{
Pertama() {
Tombol b=newButton("klik saya");
[Link](30,100,80,30);// mengatur posisi tombol
tambahkan(b);//menambahkan tombol ke dalam bingkai
setSize(300,300);//ukuran bingkai 300 lebar dan 300 tinggi
setLayout(null);//tidak ada pengelola tata letak
setVisible(true);//sekarang bingkai akan terlihat, secara default tidak terlihat
}
publik statis void main(String args[]){
Pertama f=newFirst();
}}
Metode setBounds(int xaxis, int yaxis, int width, int height) digunakan dalam contoh di atas yang
mengatur posisi tombol awt.

Java Swing
Tutorial Java Swing adalah bagian dari Java Foundation Classes (JFC) yang digunakan untuk membuat jendela-
aplikasi berbasis. Ini dibangun di atas AWT (Abstract Windowing Toolkit) API dan sepenuhnya
ditulis dalam java.

Unlike AWT, Java Swing provides platform-independent and lightweight components.

Paket [Link] menyediakan kelas-kelas untuk API java swing seperti JButton, JTextField,
JTextArea, JRadioButton, JCheckbox, JMenu, JColorChooser, dll.

PEMROGRAMAN JAVA Page 97


Perbedaan antara AWT dan Swing.

Tidak. Java AWT Java Swing

1) AWT komponen areplatform- Java swing components areplatform-


bergantung. mandiri.

2) Komponen AWT adalah berat. Komponen Swing ringan.

3) AWT tidak mendukung tampilan yang dapat dipasang Swing mendukung penampilan yang dapat dipasang dan

dan merasakan. merasakan.

4) AWT menyediakan lebih sedikit komponen daripada


Ayunan menyediakanlebih kuat
Ayunan. komponen seperti tabel, daftar,
scrollpanes, colorchooser, tabbedpane
dll.

5) AWT tidak mengikuti MVC (Model View Swing mengikuti MVC.


Controller) di mana model mewakili data,
lihat mewakili presentasi dan
pengontrol bertindak sebagai antarmuka antara
model dan tampilan.

Commonly used Methods of Component class

Metode Description

publik void tambahkan(Komponen c) tambahkan komponen pada komponen lain.

public void setUkuran(int lebar, int tinggi) mengatur ukuran komponen.

publik void setLayout(LayoutManager mengatur pengelola tata letak untuk komponen.


m)

publik void setVisible(booleans b) mengatur visibilitas komponen. Secara default


salah.

PEMOGRAMAN JAVA Page 98


Hierarki kelas Java Swing

Hierarki API Java Swing diberikan di bawah ini.

Contoh Java Swing

Ada dua cara untuk membuat sebuah bingkai:

o Dengan membuat objek dari kelas Frame (asosiasi)


o Dengan memperluas kelas Frame (pewarisan)

Kita dapat menulis kode swing di dalam main(), konstruktor, atau metode lainnya.

Contoh Java Swing Sederhana

Mari kita lihat contoh swing sederhana di mana kita membuat satu tombol dan menambahkannya di JFrame
objek di dalam metode main()

File: [Link]

PEMROGRAMAN JAVA Page 99


import [Link].*;
public classFirstSwingExample {
publik statis void main(String[] args) {
JFrame f=new JFrame();//membuat instance dari JFrame
JButton b=new JButton("klik"); //membuat instance dari JButton
[Link](130,100,100,40);//sumbu x, sumbu y, lebar, tinggi
[Link](b);//menambahkan tombol di JFrame
[Link](400,500);//lebar 400 dan tinggi 500
[Link](null);//tidak menggunakan manajer layout
[Link](true);//making the frame visible
}}
Kontainer

Java JFrame

Kelas [Link] adalah jenis kontainer yang mewarisi kelas [Link].


JFrame berfungsi seperti jendela utama di mana komponen seperti label, tombol, dan bidang teks ditambahkan
untuk membuat antarmuka pengguna.

Berbeda dengan Frame, JFrame memiliki opsi untuk menyembunyikan atau menutup jendela dengan bantuan

metode setDefaultCloseOperation(int).

Contoh JFrame

impor [Link];
import [Link];
import [Link];
import [Link];
import [Link];
kelas publik JFrameExample {
public static voidmain(String s[]) {
JFrame frame = new JFrame("Contoh JFrame");
JPanel panel = new JPanel();
[Link](newFlowLayout());
JLabel label = new JLabel("JFrame Contoh");
JButton button = new JButton();
Tombol
[Link](label);

PEMROGRAMAN JAVA Page 100


[Link](button);
[Link](panel);
[Link](200,300);
[Link](null);
[Link](JFrame.EXIT_ON_CLOSE);
[Link](true);
}}
JApplet
Karena kami lebih memilih Swing daripada AWT. Sekarang kami dapat menggunakan JApplet yang dapat memiliki semua kontrol dari swing.

Kelas JApplet memperluas kelas Applet.

Contoh Penanganan Acara di JApplet:

[Link].*;
[Link].*;
impor [Link].*;
publik kelas EventJApple yang memperluas JApplet dan mengimplementasikan ActionListener {

JButton b;
JTextField tf;
publik void init() {
tf=newJTextField();
[Link](30,40,150,20);
b=newJButton("Click");
[Link](80,150,70,40);
tambahkan(b);tambahkan(tf);
[Link](this);
setLayout(null);
}
public void actionPerformed(ActionEvent e) {
[Link]("Welcome");
}}
Dalam contoh di atas, kami telah membuat semua kontrol di metode init() karena dipanggil.
hanya sekali.

[Link]
1. <html>
2. <body>
3. <applet code="[Link]" width="300" height="300">
PEMROGRAMAN JAVA Page 101
</applet>
</body>
</html>

JDialog

Kontrol JDialog mewakili jendela tingkat atas dengan batas dan judul yang digunakan untuk mengambil beberapa
bentuk masukan dari pengguna. Ini mewarisi kelas Dialog.

Tidak seperti JFrame, ia tidak memiliki tombol maksimalkan dan minimalkan.

Deklarasi kelas JDialog

Mari kita lihat deklarasi untuk kelas [Link].

[Link] classJDialogextendsDialogimplementsWindowConstants, Accessible, RootPaneConta


iner

Konstruktor yang sering digunakan:

Konstruktor Deskripsi

JDialog() Ini digunakan untuk membuat dialog tanpa model tanpa judul dan
without a specified Frame owner.

JDialog(Frame pemilik) Ini digunakan untuk membuat dialog modeless dengan yang ditentukan

Bingkai sebagai pemiliknya dan judul kosong.

JDialog(Frame pemilik, String judul, Ini digunakan untuk membuat dialog dengan judul yang ditentukan,
boolean modal) pemilik Frame dan moda.

PEMOGRAMAN JAVA Page 102


Contoh JDialog Java
[Link].*;
impor [Link].*;
[Link].*;
kelas ContohDialog publik {
private staticJDialog d;
DialogContoh() {
JFrame f=newJFrame();
d = new JDialog(f, "Contoh Dialog", true);
[Link](newFlowLayout() );
JButton b = new JButton ("OK");
[Link] (newActionListener()
{
publik void actionPerformed( ActionEvent e )
{
[Link](false);
}

}); Keluaran:

[Link](newJLabel ("Klik tombol untuk melanjutkan."));


[Link](b);
[Link](300,300);
[Link](true);
}
publik statis void main(String args[])
{
newDialogExample();
}}

JPanel
JPanel adalah kelas kontainer paling sederhana. Ini menyediakan ruang di mana sebuah aplikasi dapat melampirkan apa pun.

komponen lain. Ini mewarisi kelas JComponents.

Itu tidak memiliki bilah judul.

PEMROGRAMAN JAVA Page 103


Deklarasi kelas JPanel

[Link] classJPanelextendsJComponentimplementsAccessible

Contoh JPanel Java

impor [Link].*;
import [Link].*;
kelas PanelContoh publik {
PanelContoh()
{
JFrame f=newJFrame("Contoh Panel");
JPanel panel=newJPanel();
[Link](40,80,200,200);
[Link]([Link]);
JButton b1=newJButton("Tombol 1");
[Link](50,100,80,30);
[Link]([Link]);
JButton b2=new JButton("Tombol 2");
[Link](100,100,80,30);
[Link]([Link]);
[Link](b1); [Link](b2);
[Link](panel);
[Link](400,400);
[Link](null);
[Link](true);
}
publik statis void utama(String args[])
{
contohPanelBaru();
}}
Tinjauan Beberapa Komponen Swing

Java JButton

Kelas JButton digunakan untuk membuat tombol berlabel yang memiliki implementasi independen platform.
Aplikasi menghasilkan beberapa aksi ketika tombol ditekan. Ini mewarisi kelas AbstractButton.

PEMROGRAMAN JAVA Page 104


Deklarasi kelas JButton
Mari kita lihat deklarasi untuk kelas [Link].

1. kelas publik JButton memperpanjang AbstractButton mengimplementasikan Accessible

Contoh JButton Java

[Link].*;
kelas Publik ContohTombol {
publik statis void main(String[] args) {
JFrame f=newJFrame("Contoh Tombol");
JButton b=newJButton("Klik Di Sini");
[Link](50,100,95,30);
[Link](b);
[Link](400,400);
[Link](null);
[Link](true); } }

Java JLabel
Objek kelas JLabel adalah komponen untuk menempatkan teks dalam sebuah wadah. Ini digunakan untuk menampilkan sebuah
baris tunggal teks hanya baca. Teks dapat diubah oleh aplikasi tetapi pengguna tidak dapat mengeditnya
langsung. Ini mewarisi kelas JComponent.

Deklarasi kelas JLabel


Mari kita lihat deklarasi untuk kelas [Link].

[Link] publik JLabel memperluas JComponent mengimplementasikan SwingConstants, Accessible

Konstruktur yang sering digunakan:

Konstruktor Description

JLabel() Membuat instance JLabel tanpa gambar dan dengan


empty string for the title.

JLabel(String s) Membuat instansi JLabel dengan teks yang ditentukan.

JLabel(Icon i) Membuat instance JLabel dengan gambar yang ditentukan.

JLabel(String s, Icon i, int Membuat instansi JLabel dengan teks yang ditentukan,
penyelarasan horizontal gambar, dan penyelarasan horizontal.

PEMROGRAMAN JAVA Page 105


Metode yang umum digunakan:

Metode Description

String getText() ini mengembalikan string teks yang ditampilkan oleh label.

void setText(String teks) Ini mendefinisikan satu baris teks yang akan menjadi komponen ini

tampilkan.

kosong setHorizontalAlignment(int Ini mengatur penjajaran konten label sepanjang


penyelarasan sumbu X.

Ikon getIcon() Ini mengembalikan gambar grafis yang ditampilkan oleh label.

int dapatkanPenyelarasanHorizontal() Ini mengembalikan penyesuaian isi label sepanjang


sumbu X.

Contoh JLabel Java

import [Link].*;
classLabelExample
{
publik statis void main(String args[])
{
JFrame f=newJFrame("Contoh Label");
JLabel l1,l2;
l1=newJLabel("Label Pertama.");
[Link](50,50,100,30);
l2=newJLabel("Label Kedua.");
[Link](50,100,100,30);
[Link](l1); [Link](l2);
[Link](300,300);
[Link](null);
[Link](true);
}
}

PEMROGRAMAN JAVA Page 106


JTextField

Objek dari kelas JTextField adalah komponen teks yang memungkinkan pengeditan teks dalam satu baris.
menggunakan kelas JTextComponent.

Pernyataan kelas JTextField

Mari kita lihat deklarasi untuk kelas [Link].

[Link] publik JTextField memperluas JTextComponent menerapkan SwingConstants

Contoh JTextField Java

import [Link].*;
classTextFieldExample
{
publik statis void main(String args[])
{
JFrame f=newJFrame("Contoh TextField");
JTextField t1,t2;
t1=newJTextField("Selamat datang di Javatpoint.");
[Link](50,100,200,30);
t2=newJTextField("Tutorial AWT");
[Link](50,150,200,30);
[Link](t1); [Link](t2);
[Link](400,400);
[Link](null);
[Link](true);
} }
Java JTextArea

Objek dari kelas JTextArea adalah wilayah multi baris yang menampilkan teks. Ini memungkinkan pengeditan dari
teks beberapa baris. Ini mewarisi kelas JTextComponent

Deklarasi kelas JTextArea


Mari kita lihat deklarasi untuk kelas [Link].

[Link] class JTextArea extends JTextComponent

Contoh JTextArea Java


PEMROGRAMAN JAVA Page 107
import [Link].*;
kelas ContohTextArea
{
TextAreaExample(){
JFrame f=newJFrame();
JTextArea area=newJTextArea("Selamat datang di javatpoint");
[Link](10,30,200,200);
[Link](area);
[Link](300,300);
[Link](null);
[Link](true);
}
publik statis void main(String args[])
{
newTextAreaExample();
}}

Aplikasi Java Sederhana

impor [Link];
impor [Link];

publik kelas Contoh memperluas JFrame {

publik Contoh() {
setTitle("Simple example");
setSize(300, 200);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}

publik statis void utama(String[] args) {


Contoh ex = new Contoh();
[Link](true);
}}

PEMROGRAMAN JAVA Page 108


Manajemen Tata Letak

Manajer Tata Letak Java

LayoutManagers digunakan untuk mengatur komponen dengan cara tertentu. LayoutManager adalah
antarmuka yang diimplementasikan oleh semua kelas pengelola tata letak.

Tata Letak Batas


BorderLayout menyediakan lima konstanta untuk setiap wilayah:

[Link] statis final int UTARA


[Link] static final int SELATAN
[Link] final int TIMUR
[Link] static final int BARAT
[Link] static final int PUSAT

Konstruktor kelas BorderLayout:


o BorderLayout(): membuat tata letak tepi tetapi tanpa celah antara komponen.
o JBorderLayout(int hgap, int vgap): membuat layout batas dengan jarak horizontal dan
jarak vertikal antara komponen.

Contoh kelas BorderLayout:


[Link].*; Output:
impor [Link].*;
kelas Publik Perbatasan
{
JFrame f;
Perbatasan()
{
f=newJFrame();
JButton b1=new JButton("UTARA");
JButton b2=newJButton("SELATAN");
JButton b3=newJButton("EAST");;
JButton b4=new JButton("BARAT");
JButton b5=new JButton("TENGAH");;
[Link](b1, [Link]);
[Link](b2, [Link]);
[Link](b3, [Link]);
[Link](b4, [Link]);
[Link](b5, [Link]);
[Link](300,300);
[Link](true);
}
publik statis void main(String[] args)
{
newBorder();
}}

PEMROGRAMAN JAVA Page 109


Tata Letak Grid Java

GridLayout digunakan untuk mengatur komponen dalam grid berbentuk persegi panjang. Satu komponen adalah
ditampilkan di setiap persegi panjang.

Konstruktor kelas GridLayout


[Link](): menciptakan tata letak grid dengan satu kolom per komponen dalam satu baris.
[Link](int baris, int kolom): membuat tata letak grid dengan baris dan kolom yang diberikan
kolom-kolom tetapi tanpa celah antara komponen.
[Link](int rows, int columns, int hgap, int vgap): menciptakan tata letak grid dengan
diberikan baris dan kolom beserta celah horizontal dan vertikal yang diberikan.

Contoh kelas GridLayout


[Link].*;
[Link].*;
publik kelas MyGridLayout{
JFrame f;
MyGridLayout(){
f=newJFrame();
JButton b1=newJButton("1");
JButton b2=new JButton("2");
JButton b3=newJButton("3");
JButton b4=newJButton("4");
JButton b5=new JButton("5");
JButton b6=newJButton("6");
JButton b7=newJButton("7");
JButton b8=newJButton("8");
JButton b9=newJButton("9");
[Link](b1);[Link](b2);[Link](b3);[Link](b4);[Link](b5);
[Link](b6);[Link](b7);[Link](b8);[Link](b9);
[Link](newGridLayout(3,3));
//mengatur tata letak grid dengan 3 baris dan 3 kolom
[Link](300,300);
[Link](true);
}
publik statis void main(String[] args) {
newMyGridLayout(); }}
Java FlowLayout

The FlowLayout is used to arrange the components in a line, one after another (in a flow). It is the
tata letak default dari applet atau panel.

Field dari kelas FlowLayout


[Link] static final int KIRI
[Link] static final int KANAN
[Link] statis final int TENGAH
[Link] publik final int LEADING
[Link] publik akhir int TRAILING

PEMROGRAMAN JAVA Page 110


Konstruktor dari kelas FlowLayout
[Link](): membuat tata letak aliran dengan penyesuaian di tengah dan default 5 unit
jarak horisontal dan vertikal.
[Link](int align): menciptakan tata letak aliran dengan penyelarasan yang diberikan dan default 5
unit celah horizontal dan vertikal.
[Link](int align, int hgap, int vgap): menciptakan tata letak aliran dengan yang diberikan
penyelarasan dan celah horizontal serta vertikal yang diberikan.

Contoh kelas FlowLayout


impor [Link].*;
[Link].*;
public classMyFlowLayout{
JFrame f;
MyFlowLayout(){
f=newJFrame();
JButton b1=newJButton("1");
JButton b2=new JButton("2");
JButton b3=new JButton("3");
JButton b4=new JButton("4");
JButton b5=new JButton("5");
[Link](b1);[Link](b2);[Link](b3);[Link](b4);[Link](b5);
[Link](newFlowLayout([Link]));
//setting flow layout of right alignment
[Link](300,300);
[Link](true);
}
publik statis void utama(String[] args) {
newMyFlowLayout();
}}
Penanganan Acara
Acara dan Pendengar (Penanganan Acara Java)
Mengubah keadaan suatu objek dikenal sebagai sebuah peristiwa. Misalnya, klik pada tombol, menyeret
mouse dll. Paket [Link] menyediakan banyak kelas peristiwa dan antarmuka Pendengar untuk
event handling.

Jenis-jenis Acara

Peristiwa dapat diklasifikasikan secara luas ke dalam dua kategori:

Peristiwa Latar Depan - Peristiwa-peristiwa yang memerlukan interaksi langsung pengguna. Mereka adalah
dihasilkan sebagai konsekuensi dari seseorang yang berinteraksi dengan komponen grafis di
Antarmuka Pengguna Grafis. Misalnya, mengklik tombol, menggerakkan mouse, memasukkan
sebuah karakter melalui keyboard, memilih item dari daftar, menggulir halaman, dll.

Acara Latar Belakang - Acara-acara yang memerlukan interaksi pengguna akhir dikenal sebagai

PEMROGRAMAN JAVA Page 111


peristiwa latar belakang. interupsi sistem operasi, kegagalan perangkat keras atau perangkat lunak, pengatur waktu

masa berlaku, penyelesaian operasi adalah contoh dari peristiwa latar belakang.

Penanganan Acara

Penanganan Event adalah mekanisme yang mengontrol event dan memutuskan apa yang harus terjadi jika sebuah
peristiwa terjadi. Mekanisme ini memiliki kode yang dikenal sebagai penangkap peristiwa yang dieksekusi
ketika sebuah peristiwa terjadi. Java menggunakan Model Peristiwa Delegasi untuk menangani peristiwa tersebut. Model ini

mengatur mekanisme standar untuk menghasilkan dan menangani peristiwa. Mari kita memiliki pengantar singkat
ke model ini.

Model Acara Delegasi memiliki peserta kunci berikut yaitu:

Source- The source is an object on which event occurs. Source is responsible for
memberikan informasi tentang peristiwa yang terjadi kepada penangkapnya. Java menyediakan kami dengan kelas-kelas

untuk objek sumber.

Pendengar - Ini juga dikenal sebagai pengendali acara. Pendengar bertanggung jawab untuk menghasilkan
tanggapan terhadap suatu acara. Dari sudut pandang implementasi java, pendengar juga merupakan
objek. Pendengar menunggu sampai ia menerima sebuah peristiwa. Setelah peristiwa diterima, pendengar
memproses acara dan kemudian kembali.

Kelas acara dan antarmuka Pendengar:


Kelas Acara Antarmuka Pendengar

AcaraTindakan ActionListener

PeristiwaMouse MouseListener dan MouseMotionListener

MouseWheelEvent PendengarRodaMouse

KeyEvent KeyListener

ItemEvent PendengarItem

AcaraTeks PendengarTeks

Peristiwa Penyesuaian PendengarPenyesuaian

AcaraJendela PendengarJendela

ComponentEvent PendengarKomponen

AcaraKontainer PendengarKontainer

Acara Fokus Pendengar Fokus

PEMROGRAMAN JAVA Page 112


Langkah-langkah untuk melakukan Penanganan Acara

Langkah-langkah berikut diperlukan untuk melakukan penanganan acara:

1. Implementasikan antarmuka Listener dan override metodenya


[Link] komponen dengan Pendengar

Untuk mendaftarkan komponen dengan Listener, banyak kelas menyediakan metode pendaftaran.
Misalnya:

o Tombol
o public void addActionListener(ActionListener a){}
o MenuItem
o public void addActionListener(ActionListener a){}
o Kolom Teks
o publik void addActionListener(ActionListener a){}
o public void addTextListener(TextListener a){}
o Area Teks
o publik void addTextListener(TextListener a){}
o Kotak centang
o public void addItemListener(ItemListener a){}
o Pilihan
o public void addItemListener(ItemListener a){}
o Daftar
o public void addActionListener(ActionListener a){}
o public void addItemListener(ItemListener a){}

EventHandling Codes:
Kita dapat menempatkan kode penanganan acara di salah satu tempat berikut:
[Link] yang sama

[Link] lain
[Link] anonimus

Contoh penanganan acara dalam kelas:


impor [Link].*;
[Link].*;
classAEventextendsFrameimplementsActionListener{
TextField tf;

PEMROGRAMAN JAVA Page 113


AEvent(){
tf=newTextField();
[Link](60,50,170,20);
Tombol b=newButton("klik saya");
[Link](100,120,80,30);
[Link](this);
tambah(b);tambah(tf);
setSize(300,300);
setLayout(null);
setVisible(true);
}
publik void aksiDilaksanakan(Acara e) {
[Link]("Welcome");
}
publik statis void main(String args[]){
newAEvent();
}}
public void setBounds(int xaxis, int yaxis, int width, int height); telah digunakan di dalam
contoh di atas yang mengatur posisi komponen tersebut bisa berupa tombol, kolom teks, dll.

Penanganan acara Java dengan menerapkan ActionListener

[Link].*;
[Link].*;
classAEventextendsFrameimplementsActionListener{
TextField tf;
AEvent(){
//buat komponen
tf=newTextField();
[Link](60,50,170,20);
Tombol b=newButton("klik saya");
[Link](100,120,80,30);
//daftar pendengar
[Link](this);//melemparkan instance saat ini
//add components and set size, layout and visibility
tambah(b);tambah(tf);
setSize(300,300);
setLayout(null);
setVisible(true);
}
publik void actionPerformed(ActionEvent e){
[Link]("Welcome");
}
publik statis void utama(String args[]){
newAEvent();
}}

PEMROGRAMAN JAVA Page 114


Antarmuka MouseListener Java

Java MouseListener diberitahu setiap kali Anda mengubah keadaan mouse. Ia diberitahu terhadap
MouseEvent. Antarmuka MouseListener ditemukan di paket [Link]. Ini memiliki lima
metode.

Metode dari antarmuka MouseListener


Tanda tangan dari 5 metode yang ditemukan dalam antarmuka MouseListener diberikan di bawah ini:

1. publik abstrak void mouseClicked(MouseEvent e);


2. publik abstrak void mouseEntered(MouseEvent e);
3. public abstract void mouseExited(MouseEvent e);
4. publik abstrak void mousePressed(MouseEvent e);
[Link] abstract void mouseReleased(MouseEvent e);

Contoh Java MouseListener


import [Link].*;
import [Link].*;
public classMouseListenerExampleextendsFrameimplementsMouseListener{
Label l;
MouseListenerExample() {
tambahkanPendengarMouse(this);
l=newLabel();
[Link](20,50,100,20);
tambah(l);
setSize(300,300);
setLayout(null);
setVisible(true);
}
publik void mouseClicked(MouseEvent e) {
Klik Mouse
}
publik void mouseEntered(MouseEvent e) {
[Link]("Kursor Masuk");
}
publik void mouseExited(MouseEvent e) {
[Link]("Mouse Keluar");
}
publik void mousePressed(MouseEvent e) {
[Link]("Mouse Pressed");
}
publik void mouseReleased(MouseEvent e) {
Mouse Dilepaskan
}
publik statis void main(String[] args) {
contohMouseListenerBaru();
}}

PEMROGRAMAN JAVA Page 115


Antarmuka KeyListener Java
Java KeyListener diberitahukan setiap kali Anda mengubah status tombol. Itu diberitahukan terhadap
KeyEvent. Antarmuka KeyListener dapat ditemukan di paket [Link]. Ini memiliki tiga metode.

Metode dari antarmuka KeyListener


Tanda tangan dari 3 metode yang ditemukan dalam antarmuka KeyListener adalah sebagai berikut:

[Link] abstract void keyPressed(KeyEvent e);


2. publik abstrak void keyReleased(KeyEvent e);
[Link] abstract void keyTyped(KeyEvent e);

Contoh KeyListener Java


[Link].*;
[Link].*;
kelasPublicKeyListenerExampleextendsFrameimplementsKeyListener{
Label l;
Area TextArea;
ContohKeyListener(){
l=newLabel();
[Link](20,50,100,20);
area=newTextArea();
[Link](20,80,300,300);
[Link](this);
tambahkan(l);tambahkan(area);
setSize(400,400);
setLayout(null);
setVisible(true);
}
publik void keyPressed(KeyEvent e) {
[Link]("Key Pressed");
}
publik void keyReleased(KeyEvent e) {
Kunci Dibebaskan
}
public voidkeyTyped(KeyEvent e) {
[Link]("Kunci Ditekan");
}
publik statis void main(String[] args) {
newKeyListenerExample(); } }
Kelas Adapter Java

Kelas adaptor Java menyediakan implementasi default dari antarmuka pendengar. Jika Anda mewarisi
kelas adapter, Anda tidak akan dipaksa untuk memberikan implementasi dari semua metode pendengar
antarmuka. Jadi ini menghemat kode.

PEMROGRAMAN JAVA Page 116


Kelas adaptor [Link]

Kelas Adaptor Antarmuka Pendengar

WindowAdapter PendengarJendela

KeyAdapter KeyListener

MouseAdapter PendengarMouse

MouseMotionAdapter PendengarGerakanMouse

Adaptasi Fokus Pendengar Fokus

KomponenAdapter PendengarKomponen

PengadaptasiKontainer PendengarKontainer

HierarchyBoundsAdapter PendengarBatasHierarki

Contoh WindowAdapter Java

[Link].*;
[Link].*;
publik kelasAdapterContoh{
Frame f;
AdapterExample(){
f=newFrame("Adapter Jendela");
[Link](newWindowAdapter(){
publik void jendelaMenutup(WindowEvent e) {
[Link](); } });
[Link](400,400);
[Link](null);
[Link](true);
}
publik statis void main(String[] args) {
newAdapterExample();
}}

PEMROGRAMAN JAVA Page 117


Applet

Applet adalah jenis program khusus yang disematkan di halaman web untuk menghasilkan konten dinamis.
konten. Ini berjalan di dalam browser dan bekerja di sisi klien.

Keuntungan dari Applet

Ada banyak keuntungan dari applet. Mereka sebagai berikut:

o Ini bekerja di sisi klien sehingga waktu respons lebih sedikit.

o Aman
o Ini dapat dijalankan oleh browser yang berjalan di banyak platform, termasuk Linux,
Windows, Mac Os, dll.

Kekurangan Applet
o Plugin diperlukan di browser klien untuk mengeksekusi applet.

Siklus Hidup Java Applet Hierarki Applet


1. Applet telah diinisialisasi.

2. Applet dimulai.
3. Applet telah dilukis.

4. Applet dihentikan.
5. Applet dihancurkan.

Metode siklus hidup untuk Applet:

Kelas [Link] memiliki 4 metode siklus hidup dan kelas [Link] menyediakan 1 siklus hidup
metode siklus untuk sebuah applet.

kelas [Link]

Untuk membuat aplikasi apapun, kelas [Link] harus diwarisi. Ini menyediakan 4 metode siklus hidup.
aplikasi.

[Link] void init(): digunakan untuk menginisialisasi Applet. Ini hanya dipanggil sekali.

[Link] void start(): dipanggil setelah metode init() atau browser dimaksimalkan. Ini digunakan
untuk memulai Applet.
3. publik void stop(): digunakan untuk menghentikan Applet. Ini dipanggil ketika Applet dihentikan atau
peramban diminimalkan.
[Link] void destroy():digunakan untuk menghancurkan Applet. Ini dipanggil hanya sekali.

PEMROGRAMAN JAVA Page 118


kelas [Link]

Kelas Komponen menyediakan 1 metode siklus hidup applet.

[Link] void paint(Graphics g): digunakan untuk melukis Applet. Ini menyediakan kelas Graphics.
objek yang dapat digunakan untuk menggambar oval, persegi panjang, busur, dll.

Contoh sederhana Applet oleh file html:

Untuk menjalankan applet melalui file html, buatlah sebuah applet dan kompile. Setelah itu buatlah file html
dan letakkan kode applet di file html. Sekarang klik file html.

1.//[Link]
impor [Link];
impor [Link];
publik kelas Pertama memperluas Applet {

public void catat(Graphics g) {


[Link]("selamat datang",150,150);
}
}

Contoh sederhana Applet menggunakan alat appletviewer:

Untuk mengeksekusi applet menggunakan alat appletviewer, buatlah applet yang mengandung tag applet dalam komentar.
dan kompilasi. Setelah itu jalankan dengan: appletviewer [Link]. Sekarang file Html tidak diperlukan tetapi itu adalah
hanya untuk tujuan pengujian.

1.//[Link]
impor [Link];
import [Link];
publik kelas Pertama memperluas Applet{

publik void paint(Graphics g){


[Link]("selamat datang di applet",150,150);
}
}
/*
<applet code="[Link]" width="300" height="300">
</applet>
*/

PEMROGRAMAN JAVA Page 119


Untuk menjalankan applet menggunakan alat appletviewer, tuliskan di command prompt:

c:\>javac [Link]
c:\>appletviewer [Link]

Perbedaan antara Applet dan pemrograman Aplikasi

PEMROGRAMAN JAVA Page 120


Parameter dalam Applet

Kita dapat mendapatkan informasi apapun dari file HTML sebagai parameter. Untuk tujuan ini, kelas Applet
menyediakan metode bernama getParameter(). Sintaksis:

[Link] getParameter(String parameterName)

Contoh menggunakan parameter dalam Applet:

[Link];
[Link];
[Link] publik UseParamextendsApplet
4.{
[Link] void paint(Graphics g)
6. {
[Link] str=getParameter("msg");
[Link](str,50,50);
9.} }
[Link]
1. <html>
2. <body>
3. <applet code="[Link]" width="300" height="300">
4. <param name="msg"value="Welcome to applet">
5. </applet>
6. </body>
7.</html>

PEMROGRAMAN JAVA Page 121

Anda mungkin juga menyukai