Panduan Lengkap Pemrograman Java
Panduan Lengkap Pemrograman Java
[R17A0507]
CATATAN PERKULIAHAN
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
14 Saya Static fields and methods, access control, this reference, 21-30
Pemrograman Berorientasi Objek adalah sebuah paradigma yang menyediakan banyak konsep seperti
Smalltalk dianggap sebagai bahasa pemrograman berorientasi objek yang pertama kali nyata.
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
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.
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
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
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.
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.
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.
Ada banyak versi Java yang telah dirilis. Rilis stabil Java saat ini
adalah Java SE 8.
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.
Komentar satu baris digunakan untuk memberi komentar hanya pada satu baris.
Sintaksis:
Output:
10
Sintaksis:
/*
Ini
adalah
beberapa baris
komentar
*/
Contoh:
public classCommentExample2 {
publik statis voidmain(String[] args) {
/* Mari kita deklarasikan dan
Output:
10
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. */
/** Metode sub() mengembalikan hasil pengurangan dari angka yang diberikan.*/
javac [Link]
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.
karakter 2 byte
byte 0 1 byte
pendek 0 2 byte
int 0 4 byte
panjang 0L 8 byte
Output:20
Variable is a name of memory location. There are three types of variables in java: local, instance
dan statis.
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.
kelasA{
intdata=50;//variabel instance
static intm=100;//variable statis
voidmethod(){
intn=90;//variabel lokal
}
}//akhir dari kelas
Konstanta adalah variabel yang tidak dapat mengubah nilainya setelah deklarasi. Ini menggunakan 'final'
kata kunci.
Sintaksis
modifierfinaldataType namaVariabel = nilai;//konstanta global
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.
Operator dalam java adalah simbol yang digunakan untuk melakukan operasi. Misalnya: +, -, *, / dll.
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
Jenis Ekspresi
While an expression frequently produces a result, it doesn't always. There are three types of
ekspresi dalam Java:
sejumlah elemen yang luas seperti pemanggilan metode atau operator peningkatan yang memodifikasi
keadaan (yaitu memori) dari sebuah program.
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.
. 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.
.
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.
Pernyataan alur kontrol di Java memungkinkan Anda untuk menjalankan atau melewatkan blok kode ketika khusus
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
}
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.
cd Desktop
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:
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.
Contoh:
Membuat Array:
Anda dapat membuat array dengan menggunakan operator new dengan sintaks berikut:
arrayRefVar=newdataType[arraySize];
Pernyataan di atas melakukan dua hal:
Ini menetapkan referensi dari array yang baru dibuat ke variabel arrayRefVar.
dataType[]arrayRefVar=newdataType[arraySize];
Sebagai alternatif, Anda dapat membuat array sebagai berikut:
Example:
Pernyataan berikut mendeklarasikan variabel array, myList, membuat array dengan 10 elemen
tipe ganda dan menetapkan referensinya ke myList:
Contoh:
Berikut adalah contoh lengkap tentang cara membuat, menginisialisasi, dan memproses array:
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);
}}}
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);
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
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.
Sebuah konstruktor yang tidak memiliki parameter dikenal sebagai konstruktor bawaan..
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
Student4(inti,String n){
id = i;
name = n;
}
voidtampilkan(){[Link](id+" "+name);}
Output:
111 Karan
222 Aryan
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.
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);}
Output:
111 Karan
111 Karan
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
int− tipeKembali
a, b− parameter formal
Definisi metode terdiri dari header metode dan badan metode. Hal yang sama ditunjukkan di dalam
sintaksis berikut −
Sintaksis
modifier - Ini mendefinisikan tipe akses dari metode dan ini adalah opsional untuk digunakan.
namaMetode− Ini adalah nama metode. Tanda tangan metode terdiri dari metode tersebut
nama dan daftar 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.
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);
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.
[Link]
[Link] bersarang
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.
Ini membuat program Anda efisien dalam penggunaan memori (yaitu menghemat memori).
[Link]();
[Link]();
}}
111 Karan ITS
222 Aryan ITS
Jika Anda menerapkan kata kunci statis dengan metode apa pun, itu dikenal sebagai metode statis.
kelasSiswa9{
introllno;
String nama;
staticString college ="ITS";
static voidubah(){
college ="BBDIT";
}
Siswa9(intr, String n){
rollno = r;
name = n;
Kontrol Akses
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.
Dalam contoh di atas, cakupan kelas A dan metode msg() adalah default sehingga tidak dapat
diakses dari luar paket.
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.
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.
modifikator.
Privat Y N N N
Default Y Y N N
Dilindungi Y Y Y N
Umum Y Y Y Y
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.
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
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.
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
Ada banyak perbedaan antara konstruktor dan metode. Mereka dijelaskan di bawah ini.
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.
Output:
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.
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; }
}
classTestOverloading1{
publik statis void main(String[] args){
[Link]([Link](11,11));
[Link]([Link](11,11,11));
}}
Output:
22
33
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.
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:
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.
upaya ekstra.
metode gc()
[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
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:
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).
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
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]);
}}
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...
File: [Link]
kelasHewan{
voideat(){[Link]("makan...");}
}
kelasAnjingmemperpanjangHewan{
voidbark(){[Link]("menggonggong...");}
}
kelasBabyDogextendsDog{
voidweep(){[Link]("menangis...");}
}
kelasTestPewarisan2{
Output:
menangis...
mendenggong...
makan...
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...
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 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.
super dapat digunakan untuk merujuk pada variabel instance 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();
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 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.
Jika subclass (kelas anak) memiliki metode yang sama seperti yang dinyatakan dalam kelas induk, itu dikenal sebagai
penggantian metode dalam java.
[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
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.
metode abstrak
[Link] voidprintStatus();//tidak ada badan dan 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.
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.
antarmukaPrintable{
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();
} }
Kami menggunakan kelas dalam untuk mengelompokkan kelas dan antarmuka secara logis di satu tempat sehingga dapat lebih
mudah dibaca dan dapat dipelihara.
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.
Kelas dalam adalah bagian dari kelas bersarang. Kelas bersarang non-statis dikenal sebagai kelas dalam.
Ada dua jenis kelas bersarang, yaitu kelas bersarang non-statis dan kelas bersarang statis. Kelas bersarang non-statis
kelas juga dikenal sebagai kelas dalam.
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.
1) Paket Java digunakan untuk mengkategorikan kelas dan antarmuka sehingga dapat dengan mudah
dipelihara.
kemasanku
kelas publik Simple{
public static voidmain(String args[]){
[Link]("Selamat datang di paket");
}}
Jika Anda tidak menggunakan IDE, Anda perlu mengikuti sintaks yang diberikan di bawah ini:
//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
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.
Dalam Java, pengecualian adalah suatu kejadian yang mengganggu alur normal program. Itu adalah sebuah objek yang ...
dilempar saat runtime.
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
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.
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.
[Link]{
2.//kode yang mungkin melempar pengecualian
3. }catch(Exception_class_Name ref){}
[Link]{
2.//kode yang mungkin melempar exception
3. }akhirnya{}
Blok catch Java digunakan untuk menangani Exception. Itu harus digunakan setelah blok try saja.
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.
Mari kita lihat solusi dari masalah di atas dengan blok try-catch java.
Sekarang, seperti yang ditampilkan dalam contoh di atas, sisa kode dieksekusi yaitu sisa kode...
pernyataan dicetak.
Jika Anda harus melakukan tugas yang berbeda pada terjadinya Pengecualian yang berbeda, gunakan java multi
blok tangkap.
[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...
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{
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.
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 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];
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:
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.
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...
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.
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...");
} }
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.
Itu tidak memblokir pengguna karena utas bersifat independen dan Anda dapat melakukan beberapa
operasi pada saat yang sama.
3) Utas yang independen sehingga tidak mempengaruhi utas lain jika terjadi pengecualian dalam satu utas.
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
Kelas Thread:
Kelas Thread menyediakan konstruktor dan metode untuk membuat dan melakukan operasi pada sebuah
Kelas [Link] memperluas kelas Object dan mengimplementasikan antarmuka Runnable.
o Benang()
o Thread(String nama)
o Thread(Runnable r)
o Thread(Runnable r, String nama)
[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.
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.
classMultiextendsThread{
publik void jalankan() {
[Link]("thread sedang berjalan...");
}
publik statis voidmain(String args[]){
Multi t1=newMulti();
[Link]();
}}
Output:thread is running...
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 default dari sebuah thread adalah 5 (NORM_PRIORITY). Nilai dari MIN_PRIORITY adalah 1 dan
nilai dari MAX_PRIORITY adalah 10.
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.
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(){
Catatan: Sekarang metode suspend(), resume() dan stop() sudah tidak lagi digunakan.
ThreadGroup(String nama)
ThreadGroup(ThreadGroup orangtua, String nama)
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();
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.
UDP− UDP adalah singkatan dari User Datagram Protocol, sebuah protokol tanpa koneksi yang memungkinkan
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.
[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]
[table]
Class|Description
SimpleDateFormat|iadalah kelas konkret yang membantu dalam memformat dan mem-parsing tanggal.
[/table]
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.
Kerangka kumpulan mewakili arsitektur terpadu untuk menyimpan dan memanipulasi kelompok
objek. Ini memiliki:
Konstruktor Description
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
Ravi
Vijay
Ravi
Ajay
Tapi ada banyak perbedaan antara kelas ArrayList dan Vector yang diberikan di bawah ini.
ArrayList Vektor
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.
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
5) ArrayList menggunakan antarmuka Iterator Vector menggunakan antarmuka Enumeration untuk menjelajahi
untuk menjelajahi elemen-elemen. elemen. Tapi bisa menggunakan Iterator juga.
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
Output:
umesh
irfan
kumar
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 Itu disinkronkan.
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.
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.
Contoh
Program berikut menggambarkan beberapa metode yang didukung oleh koleksi ini −
import [Link].*;
[Link](newInteger(a));
[Link]("dorong("+a+")");
[Link](a);
Stackst=newStack();
showpush(st,42);
tunjukkanDorong(st,66);
showpush(st,99);
tampilkanpop(st);
tampilkanpop(st);
tampilkanpop(st);
coba{
tampilkanpop(st);
}catch(EmptyStackExceptione) {
[Link]("tumpukan kosong");
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 −
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
impor [Link];
import [Link];
public classEnumerationTester{
Enumerationdays;
VectordayNames=newVector();
[Link]("Sunday");
[Link]("Monday");
[Link]("Tuesday");
[Link]("Wednesday");
[Link]("Thursday");
[Link]("Friday");
[Link]("Saturday");
days=[Link]();
sementara([Link]()) {
[Link]([Link]());
} }}
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
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.
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.
boolean hasMoreTokens() memeriksa apakah ada lebih banyak token yang tersedia.
Objek nextElement() sama seperti nextToken() tetapi tipe kembalinya adalah Object.
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[]){
[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];
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 Deskripsi
public String nextLine() it moves the scanner position to the next line and returns the value
sebagai string.
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.
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
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.
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:
Aliran
Aliran dapat didefinisikan sebagai serangkaian data. Ada dua jenis Aliran −
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
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].*;
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]();
}} }}
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]
$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{
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]();
}} }}
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]
$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].
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{
cobalah{
cin=newInputStreamReader([Link]);
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
read data from a source and theOutputStreamis used for writing data to a destination.
Berikut adalah hierarki kelas untuk menangani aliran Input dan Output.
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 −
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 −
ByteArrayOutputStream
DataOutputStream
Contoh
imporkan [Link].*;
OutputStreamos=newFileOutputStream("[Link]");
for(int x=0;x<[Link];x++) {
[Link]();
intsize=[Link]();
untuk(inti=0;i<size;i++) {
[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] -
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
Ini membuat aliran file akses acak untuk dibaca, dan secara opsional untuk menulis ke file dengan
nama yang ditentukan.
[Link]
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];
Output:
Exists :true
Dapat ditulisi:true
Dapat dibaca
Apakah direktori:false
Menghubungkan ke DB
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.
mesin. Menggunakan ODBC, memerlukan konfigurasi pada sistem Anda sebuah Nama Sumber Data (DSN) yang
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.
Driver Oracle Call Interface (OCI) adalah contoh dari driver Tipe 2.
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.
Server aplikasi Anda mungkin menggunakan driver Tipe 1, 2, atau 4 untuk berkomunikasi dengan database,
memahami nuansa akan sangat membantu.
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.
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.
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] 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.
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
Untuk menghubungkan aplikasi java dengan database mysql, file [Link] diperlukan.
dimuat.
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];
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 −
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
Konkruensi Description
ResultSet.CONCUR_READ_ONLY Membuat set hasil yang hanya dapat dibaca. Ini adalah default
Ada metode get untuk setiap tipe data yang mungkin, dan setiap metode get memiliki dua versi.
Misalnya, jika kolom yang Anda minati berisi int, Anda perlu menggunakan salah satu dari
metode getInt() dari ResultSet −
Ada juga metode untuk mendapatkan tipe data SQL [Link], [Link],
[Link], [Link], dan [Link]. Periksa dokumentasi untuk informasi lebih lanjut
Untuk pemahaman yang lebih baik, marilah kita belajarMelihat - Contoh Kode.
Seperti dengan metode get, ada dua metode pembaruan untuk setiap tipe data -
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.
Memperbarui baris saat ini dengan memperbarui baris yang sesuai di basis data.
UNIT-5
Pemrograman GUI dengan Java
Hierarki Kelas AWT
Java AWT (Abstract Window Toolkit) adalah API untuk mengembangkan GUI atau berbasis jendela.
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.
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 Description
public void setSize(int lebar, int tinggi) mengatur ukuran (lebar dan tinggi) dari komponen.
Untuk membuat contoh awt sederhana, Anda memerlukan sebuah frame. Ada dua cara untuk membuat frame di AWT.
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.
Paket [Link] menyediakan kelas-kelas untuk API java swing seperti JButton, JTextField,
JTextArea, JRadioButton, JCheckbox, JMenu, JColorChooser, dll.
3) AWT tidak mendukung tampilan yang dapat dipasang Swing mendukung penampilan yang dapat dipasang dan
Metode Description
Kita dapat menulis kode swing di dalam main(), konstruktor, atau metode lainnya.
Mari kita lihat contoh swing sederhana di mana kita membuat satu tombol dan menambahkannya di JFrame
objek di dalam metode main()
File: [Link]
Java JFrame
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);
[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.
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
JDialog(Frame pemilik, String judul, Ini digunakan untuk membuat dialog dengan judul yang ditentukan,
boolean modal) pemilik Frame dan moda.
}); Keluaran:
JPanel
JPanel adalah kelas kontainer paling sederhana. Ini menyediakan ruang di mana sebuah aplikasi dapat melampirkan apa pun.
[Link] classJPanelextendsJComponentimplementsAccessible
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.
[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.
Konstruktor Description
JLabel(String s, Icon i, int Membuat instansi JLabel dengan teks yang ditentukan,
penyelarasan horizontal gambar, dan penyelarasan horizontal.
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.
Ikon getIcon() Ini mengembalikan gambar grafis yang ditampilkan oleh label.
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);
}
}
Objek dari kelas JTextField adalah komponen teks yang memungkinkan pengeditan teks dalam satu baris.
menggunakan kelas JTextComponent.
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
impor [Link];
impor [Link];
publik Contoh() {
setTitle("Simple example");
setSize(300, 200);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
LayoutManagers digunakan untuk mengatur komponen dengan cara tertentu. LayoutManager adalah
antarmuka yang diimplementasikan oleh semua kelas pengelola tata letak.
GridLayout digunakan untuk mengatur komponen dalam grid berbentuk persegi panjang. Satu komponen adalah
ditampilkan di setiap persegi panjang.
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.
Jenis-jenis Acara
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
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.
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
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.
AcaraTindakan ActionListener
MouseWheelEvent PendengarRodaMouse
KeyEvent KeyListener
ItemEvent PendengarItem
AcaraTeks PendengarTeks
AcaraJendela PendengarJendela
ComponentEvent PendengarKomponen
AcaraKontainer PendengarKontainer
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
[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();
}}
Java MouseListener diberitahu setiap kali Anda mengubah keadaan mouse. Ia diberitahu terhadap
MouseEvent. Antarmuka MouseListener ditemukan di paket [Link]. Ini memiliki lima
metode.
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.
WindowAdapter PendengarJendela
KeyAdapter KeyListener
MouseAdapter PendengarMouse
MouseMotionAdapter PendengarGerakanMouse
KomponenAdapter PendengarKomponen
PengadaptasiKontainer PendengarKontainer
HierarchyBoundsAdapter PendengarBatasHierarki
[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();
}}
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.
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.
2. Applet dimulai.
3. Applet telah dilukis.
4. Applet dihentikan.
5. Applet dihancurkan.
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.
[Link] void paint(Graphics g): digunakan untuk melukis Applet. Ini menyediakan kelas Graphics.
objek yang dapat digunakan untuk menggambar oval, persegi panjang, busur, dll.
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 {
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{
c:\>javac [Link]
c:\>appletviewer [Link]
Kita dapat mendapatkan informasi apapun dari file HTML sebagai parameter. Untuk tujuan ini, kelas Applet
menyediakan metode bernama getParameter(). Sintaksis:
[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>