0% menganggap dokumen ini bermanfaat (0 suara)
4 tayangan8 halaman

Pengantar Pemrograman Java Dasar

Dokumen ini adalah kursus pengantar pemrograman Java untuk siswa dengan sedikit pengalaman, mencakup topik seperti struktur program, sintaksis, tipe data, alur kontrol, dan pemrograman berorientasi objek. Selain itu, kursus ini juga membahas alat pengembangan Java seperti JDK dan IDE serta tutorial tentang JDBC, pemrograman soket, dan GUI. Tujuan utama adalah untuk membekali siswa dengan keterampilan dasar dalam menulis dan menjalankan program Java.

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)
4 tayangan8 halaman

Pengantar Pemrograman Java Dasar

Dokumen ini adalah kursus pengantar pemrograman Java untuk siswa dengan sedikit pengalaman, mencakup topik seperti struktur program, sintaksis, tipe data, alur kontrol, dan pemrograman berorientasi objek. Selain itu, kursus ini juga membahas alat pengembangan Java seperti JDK dan IDE serta tutorial tentang JDBC, pemrograman soket, dan GUI. Tujuan utama adalah untuk membekali siswa dengan keterampilan dasar dalam menulis dan menjalankan program Java.

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

PENDAHULUAN KE PEMROGRAMAN JAVA


Rekayasa Perangkat Lunak
Level: 200
Tahun ajaran 2020-2021

Tujuan
Kursus ini menawarkan pengantar untuk bahasa pemrograman Java bagi siswa yang memiliki sedikit pengalaman.
background in programming. Toward this goal students will learn how to:
- Tulis program menggunakan bahasa Java. Topik dasar yang dipertimbangkan adalah sebagai berikut: program java
struktur, sintaksis Java, tipe data, alur kontrol, kelas, array, penanganan pengecualian, rekursi
Konektivitas basis data (JDBC), Pemrograman Soket Dasar dan antarmuka pengguna grafis (GUI).
- Kompilasi dan jalankan mereka di bawah Sun Microsystems, Inc. Java 2 Platform, Edisi Standar, atau
integrasi Lingkungan Pengembangan (IDE) lainnya seperti NetBeans.

Kandungan
I. Pendahuluan........................................................................................................................................................................................... 1
1.1. Apa itu java? .............................................................................................................................................................................. 2
1.2. Java features............................................................................................................................................................................... 2
1.3. Jenis-jenis program java............................................................................................................................................................. 2
1.4. Alat pengembangan Java.............................................................................................................................................................. 3
a) Java Development Kit (JDK)............................................................................................................................................... 3
b) Lingkungan pengembangan Java................................................................................................................................................. 3
II. Elemen Dasar Bahasa Javas ....................................................................................................................................................... 3
2.1. Comments ................................................................................................................................................................................... 3
2.2. Tipe primitif standar di Java.............................................................................................................................................. 3
2.3. Operators .................................................................................................................................................................................... 3
2.4. Deklarasi variabel................................................................................................................................................................. 3
2.5. Konstanta.................................................................................................................................................................................... 3
2.6. Array......................................................................................................................................................................................... 3
2.7. Kontrol aliranl ................................................................................................................................................................................ 4

2.8. Input dan output standar........................................................................................................................................................ 4


2.9. Penanganan Eksepsi Javag ........................................................................................................................................................... 4
III. Pemrograman Berorientasi Objek (OOP)........................................................................................................................................... 5
3.1. Kelas dan objeks ..................................................................................................................................................................... 5
3.1.1. Beberapa terminologi OOP Javas ........................................................................................................................................ 6
3.1.2. Modifikator akses.............................................................................................................................................................. 6
3.2. Warisan.................................................................................................................................................................................. 6
3.2.1. Constructor Chaining...................................................................................................................................................... 7
3.3. Polymorphism............................................................................................................................................................................. 7
3.4. Metode dan Kelas Abstrak.................................................................................................................................................. 7
3.5. Antarmuka.................................................................................................................................................................................... 8
3.5.1. Perbedaan Antara Antarmuka dan Kelas Abstrak................................................................................................... 8
3.5.2. Mengapa Antarmuka Itu Penting? ..................................................................................................................................... 8
3.6. Paket dan pernyataan impor................................................................................................................................................. 8
IV. Berkas (Tutorial)
V. JDBC (Tutorial)
VI. Pemrograman Soket Dasar (Tutorial)
VII. Pemrograman GUI (Tutorial)
Saya. Pendahuluan

1
Pemrograman JAVA
1.1. What is java? Pengumpulan sampah berarti bahwa ada otomatis
Java adalah Bahasa Pemrograman Berorientasi Objek fungsi yang secara teratur melewati ruang objek dan
diciptakan oleh Sun Microsystems, mirip dengan C dan C++ memeriksa objek mana yang masih dirujuk dan mana yang tidak.
kecuali tanpa beberapa yang membingungkan, kurang dipahami Yang tidak lagi dirujuk adalah tidak dapat digunakan untuk
features of C++ (operator overloading, pointers…). program, jadi aman untuk membebaskan ruang yang mereka gunakan. Di Java,
Pada rilis pertamanya, Java terutama digunakan sebagai tidak ada kata kunci "hapus", karena ada pengumpul sampah di
bahasa untuk menulis aplikasi yang akan disematkan di dalam the JVM takes care of allocating and reclaiming memory.
penjelajah (dikenal sebagai applet), tetapi telah berkembang menjadi banyak Beberapa kelemahan C dan C++ dihilangkan
area lain (Aplikasi untuk server dan perusahaan) - Tidak ada pointer memori yang dapat diakses, tidak ada

komputer, komputer desktop, telepon seluler ...). Hari ini, pra-pemroses.


thousands of programmers, Internet developers, Web - Batas array diperiksa secara otomatis.
penerbit, dan rumah perangkat lunak menggunakan Java. - Tidak ada overloading operator di Java.
Java mencakup tiga platform utama: Pewarisan ganda digantikan oleh antarmuka
. Java Standard Edition (JSE): untuk komputer desktop (Menghilangkan kompleksitas pewarisan ganda)
. Java Mobile Edition (JME): itu adalah platform Java Berorientasi objek
untuk perangkat konsumen dan embedded seperti mobile - Berorientasi objek programming (OOP)
telepon dan penyelenggara pribadi. selama–tidak ada pengkodean di luar kelas
. Java Enterprise Edition (JEE): untuk server dan {"definitions":"definisi"}
komputer perusahaan. Kekuatan
Java mencakup beberapa komponen yang berbeda: - Penanganan pengecualian bawaan, tipe kuat
Bahasa tingkat tinggi: kode sumber sekilas terlihat memeriksa (yaitu, semua variabel harus ditugaskan)
sangat mirip dengan C dan C ++ tetapi unik dalam banyak cara. tipe data eksplisit), variabel lokal harus
(Ekstensi file sumber adalah “.java”) diinisialisasi.
Kode byte Java: Sebuah kompilator mengubah Java Kemandirian platform
kode sumber bahasa ke file instruksi biner dan - Byte-code dijalankan di platform mana pun dengan sebuah

data called byte-code that run in the Java Virtual JVM yang kompatibel.
Mesin. - Ideal "Tulis Sekali Jalankan Dimana Saja" belum
Java Virtual Machine (JVM): Ini adalah program yang telah dicapai (penyetelan untuk platform yang berbeda
mengambil byte-code sebagai input dan menginterpretasikan instruksi biasanya diperlukan), tetapi lebih dekat daripada dengan yang lain

seolah-olah itu adalah prosesor fisik yang sedang menjalankan bahasa


kode mesin. Gambar di bawah ini menggambarkan bagaimana sebuah java - Portabel: Tulis Sekali, Jalankan Di Mana Saja
program dikompilasi dan dijalankan. Fitur-fitur ini memberikan sejumlah manfaat
dibandingkan dengan pengembangan program di bahasa lain. Untuk
contoh, program C/C++ dilanda bug yang diakibatkan oleh
penunjuk memori langsung, yang dihilangkan dalam Java.
Demikian pula, pemeriksaan batas array mencegah hal umum lainnya
sumber bug. Pengumpul sampah mengurangi
programmer pekerjaan besar pengelolaan memori. Itu
sering dikatakan bahwa fitur-fitur ini menyebabkan peningkatan kecepatan yang signifikan dalam

pengembangan program dan debugging dibandingkan dengan bekerja


dengan C/C ++.
1.3. Jenis program java
Aplikasi: Program Java mandiri yang dapat dijalankan
1.2. Java features independen dari peramban Web manapun
Kombinasi kompilator/interpreter Applet: Program Java yang berjalan di dalam Java-
Kode sumber dikompilasi menjadi byte-code, yang merupakan peramban web diaktifkan
ditafsirkan oleh Mesin Virtual Java (JVM). Ini memberikan Servlet: Perangkat lunak Java yang dimuat ke dalam web
portabilitas dan keamanan ke sistem operasi dasar mana pun server ke sediakan tambahan server
platform tempat mesin virtual ditulis. fungsi yang mirip dengan program CGI. (CGI=Umum
Pengumpulan sampah Antarmuka Gerbang. Ini adalah teknik yang memungkinkan sebuah
klien untuk menjalankan program tertentu di server
2
Pemrograman JAVA
1.4. Alat pengembangan Java *@param lebar panjang salah satu
*@param tinggi panjang
a) Kit Pengembangan Java (JDK)
*@return luas dari persegi panjang
Java Development Kit (JDK) adalah file minimal */
Anda perlu mengembangkan dalam Java. Versi yang dimaksud untuk
Lingkungan Windows memiliki penginstal otomatis 2.2. Tipe primitif standar di Java
itu mengurus instalasi. Hanya mengatur booleantrue or false
PATH Windows mungkin memerlukan beberapa intervensi manual. karakter Karakter 16 bit, dikodekan menggunakan Unicode 1.1.5
JDK mengandung banyak alat dasar: byte integer bernilai 8 bit tanda ( -128 hingga +127)
javac: Kompiler Bahasa Java yang digunakan untuk mengompilasi
pendek Integer bertanda 16 bit (-32.768 hingga 32.767)
program yang ditulis dalam Bahasa Pemrograman Java ke dalam
int Integer bertanda 32 bit (-2,15E+9 hingga +2,15E+9)
kode byte. panjang 64 bit bilangan bulat bernilai tanda (-4,61E+18 hingga +4,61E+18)
Java: Interpreter Java yang digunakan untuk menjalankan program yang ditulis dalam
float bilangan real titik mengambang (1.0E-38 hingga
Java.
1.0E+38
jre: Penerjemah Runtime Java yang dapat digunakan untuk menjalankan
bilangan riil titik mengapung ganda (-1.0E-308 hingga 1.0E+308)
Aplikasi Java. Alat jre mirip dengan alat java, tetapi
ditujukan terutama untuk pengguna akhir yang tidak memerlukan semua
2.3. Operator
opsi terkait pengembangan yang tersedia dengan alat java.
Mereka mirip dengan operator C++. Namun, mereka sedikit.
appletviewer: Digunakan untuk menjalankan applet tanpa web
differences:
penjelajah.
"+" dapat digunakan untuk menggabungkan string
jar: Menggabungkan beberapa file menjadi satu Arsip Java
"instanceof" mengembalikan true atau false tergantung pada
(JAR) file.
apakah objek sisi kiri adalah sebuah instance dari
objek sisi kanan
b) Lingkungan pengembangan Java
“>>>” menggeser bit ke kanan, mengisi dengan nol
Ada banyak lingkungan pengembangan java: Netbeans,
2.4. Deklarasi variabel
Eclipse, JBuilder, JDeveloper...
Deklarasi variabel terdiri dari tiga bagian: modifikator,
Contoh program java
diikuti oleh suatu tipe, diikuti oleh daftar pengidentifikasi. Yang
o Buat file sumber (di editor teks mana pun): [Link]
modifikator bersifat opsional, tetapi tipe dan daftar pengenal adalah
o Ketik kode di bawah ini dan simpan:
tidak.
publik kelas Hello {
contoh : publik int a, b, c;// "publik" adalah modifier
publik statis void utama (String args[]) {
[Link]("Halo Dunia!");
} 2.5. Konstanta
} Dalam C++, konstanta ditentukan menggunakan const atau #define.
java mereka didefinisikan melalui kombinasi "final"
o Kompilasi:[Link]
dan "statis".
o Jalankan:javaHello (Perintah terakhir ini akan memulai
Sintaksis: publik final <statis><tipe data><nama> =
JVM
<value>;
contoh: publik final statis ganda PI = 3.14;
II. Elemen Bahasa Java Dasar
publik final statis int JumlahMahasiswa = 60;
Java syntax is very close to that of "C" and C++. This
benar untuk Komentar, nama variabel dan deklarasi dan
2.6. Array
inisialisasi, alur kontrol (jika, lain, untuk, sementara) dll.
Arrays are objects in Java .Creating an array involves
tiga langkah: deklarasi, pembuatan dan inisialisasi
2.1. Comments
o Deklarasi: int [] tab; atau int tab [];
Tipe komentar Contoh
Ini berarti bahwa tabis adalah referensi (bandingkan dengan referensi)
//Komentar satu baris
Komentar baris dan penunjuk dalam "C" dan C++ ke array bilangan bulat.
int cpt = 1 //Penghitung
o Creation: tab = new tab[4];
/*Komentar baris pertama
Komentar blok o Inisialisasi: tab[0] = 12;
Komentar baris kedua*/
o Deklarasi, pembuatan, dan inisialisasi dapat
/**
Otomatis dokumentasi digabungkan
*Subrutin ini menghitung
komentar luas persegi panjang int [] tab = {1, 2, 3, 4}

3
Pemrograman JAVA
o Matriks <statements-2> istirahat;
int a[][] = new int [10][3]; berhenti; kasus 1:
println([Link]); // mencetak 10 . kasus 2:
println(a[0].length); // mencetak 3 . // (lebih banyak kasus) [Link]("Yang
. nomornya adalah 1 atau 2.

2.7. Kontrol aliran kasus<constant-N>: putus;


Pernyataan jika <statements-N> kasus 3:
Contoh: putus; kasus 4:
jika (x < y && x < z) {//Anggap x, y dan z adalah bilangan bulat default: // [Link]("The
[Link]("diikuti oleh y dan z dalam urutan yang benar"); kasus default nomor adalah 3 atau 4.";
}
<pernyataan-(N+1)> istirahat;
else if (x > y && x > z) {
[Link] ("output y dan z dalam urutan yang benar, diikuti oleh x");
} // akhir switchdefault:
} pernyataan N>= 5.
lain { }
[Link]("output x di antara y dan z dalam urutan yang benar");
}
2.8. Input dan output standar
Kelas global "System" berisi bidang "in", "out"
Pernyataan for dan "err", yang sesuai dengan input standar, standar
Sintaksis Contoh output dan kesalahan standar. Menggunakan ini diilustrasikan oleh
kelas ForDemo { contoh berikut:
publik statis void main String[]
untuk (inisialisasi; args){ contohKelasStdio
pemutusan; kenaikan) { untuk(int i=1; i<11; i++){ {
<statement(s)> [Link]("Jumlah adalah: " + i); public static void main(String args[]) throws IOException{
} } int n;
} BufferedReader stdin = new BufferedReader(new
} InputStreamReader([Link]));
[Link]("Masukkan sebuah bilangan bulat: ");

Pernyataan while dan do-while n = [Link]([Link]());


[Link]("Kuadrat: " + n*n + " Kubus: " + n*n*n);
Contoh Pernyataan
}
kelas WhileDemo {
}
publik statis void utama(String[] args){
int count = 1;
sementara (count < 11) {
[Link]("Jumlah adalah: " + count);
Fungsi Konversi Data
Sementara
hitung++; Java memiliki sekumpulan kelas yang kuat untuk mengonversi dari satu data
} ketik ke yang lain
} Kelas Contoh konversi
} Panjang String str1 = "488890001";
kelas DoWhileDemo { long l = [Link](str1); // l=488890001;
publik statis void utama(String[] args){ Bilangan bulat Stringstr2 = “32776”;
int count = 1; int n = [Link](str2); // n=32776
lakukan {
Terapung String str3 = "12.3";
Lakukan-sambil [Link]("Jumlah adalah: "+ count);
float f = [Link](str3); // f=12.3
hitung++; Ganda String str4 = “1.5”;
}sementara (hitung < 11);
double d = [Link](str4); // d = 1.5
}
Boolean String str5 = "true"
}
Boolean bool = [Link](str5); //
bool = true
Sakelar
Sintaksis Contoh 2.9. Penanganan Pengecualian Java
switch (<ekspresi>) { switch ( N ){ An exception is an object that defines an unusual or
kasus <konstanta-1>: // Anggap N adalah sebuah bilangan bulat situasi yang keliru. Ini dilempar oleh program atau waktu eksekusi
<statements-1> kasus 0: lingkungan dan dapat ditangkap serta ditangani dengan baik.
putus; [Link]("Yang Java mendukung pengecualian yang didefinisikan pengguna dan yang telah ditentukan sebelumnya

kasus<constant-2>: angka adalah 1.");

4
Pemrograman JAVA
(ArithmeticException, ArrayIndexOutOfBoundsException, [Link]("Akhir Level3");
}
FileNotFoundException, InstantiationException).
publik void L2 ( ) {
Penanganan pengecualian memungkinkan seorang programmer untuk membagi sebuah
[Link]("Tingkat2 dimulai");
program menjadi alur eksekusi normal dan pengecualian L3( );
alur eksekusi. Jika sebuah pengecualian tidak ditangani, program [Link]("Akhir Level2");
akan dihentikan (secara abnormal) dan menghasilkan pesan. }
publik void L1 ( ) {
Contoh: [Link]("Level1 beginning");
kelas publik Bagi0 { coba { L2 ();
public static void main (String[] args) { } catch (ArithmeticException masalah) {
[Link]([Link]( ));
[Link](10 / 0);
[Link]();
}
[Link] ( );
} }
Keluaran: [Link]("Akhir Level1");
[Link]: / dibagi nol }
di [Link](DivdeBy0:3) }
kelas Demo {
public static void main (String[] args) {
Pernyataan Try dan Catch Exception_Scope demo = new Exception_Scope();
[Link]("Program dimulai");
Sintaksis Contoh
demo.L1( );
kelas Publik ExceptionExample {
[Link]("Program berakhir");
publik statis void utama(String arg []){
}
int n; }
BufferedReader stdin = baru [Berikan keluaran setelah menjalankan kode semu ini]
BufferedReader(new Melemparkan Sebuah Exception
coba {
InputStreamReader([Link]));
statement-list1
[Link]("Masukkan sebuah bilangan bulat: "); Contoh metode menyelesaikan persamaan kuadrat (A*x*x + B*x + C = 0)
}
coba{ static public double akar( double A, double B, double C )
tangkap (eksepsi- throwsIllegalArgumentException {
n = [Link]([Link]());
kelas1 variabel1) jika (A == 0) {
[Link]("Anda memasukkan: " + n);
{ throw new IllegalArgumentException("A can’t be zero.");
} }
daftar-pernyataan2 lain {
tangkap(IOException e1){
} double disc = B*B - 4*A*C;
[Link]("IOException")
tangkap (pengecualian-
terjadi jika (disc < 0)
class2 variable2)
}
{ lempar new IllegalArgumentException(" Diskriminan <
tangkap(NumberFormatException e2) {
daftar-pernyataan3 nol.");
Anda harus memasukkan sebuah
} tangkap ….
interger
[Link](); Klausul akhir
} Pernyataan try mungkin memiliki klausa finally. Klausa finally
} clause defines a section of code that is executed regardless
} bagaimana blok try dieksekusi.
coba {
Jika sebuah pengecualian dilemparkan dalam daftar-pernyataan1, kontrol beralih ke daftar-pernyataan1
dipindahkan ke penangan tangkapan yang sesuai. Setelah mengeksekusi } tangkap (kelas-eksepsi1 variabel1) {
pernyataan dalam klausa catch, kontrol berpindah ke daftar-pernyataan2
….
pernyataan setelah seluruh pernyataan coba.
} catch{ daftar-pernyataanN}
} akhirnya {
Propagasi Eksepsi statement-list //Always execute this code.
Jika sebuah pengecualian tidak ditangkap dan ditangani di mana itu
}
terjadi, itu menyebar ke metode yang memanggil.
Contoh III. Konsep Berorientasi Objek dan JAVA
kelas Exception_Scope {
3.1.1. Kelas dan objek
publik void L3 ( ) {
[Link]("Tingkat3 dimulai");
[Link](10/0);

5
Pemrograman JAVA
Kelas adalah kumpulan data (atribut) dan metode - Pribadi
yang beroperasi pada data tersebut. "Dalam Java, semuanya adalah kelas" Modifier ini menunjukkan bahwa atribut dan metode adalah
adalah kelas yang disediakan oleh java dan yang Anda tulis). hanya dapat diakses dari dalam kelas tempat mereka berada
Semua kelas diturunkan dari satu kelas dasar tunggal dinyatakan. Ini digunakan untuk operasi internal dari
calledObject. objek. Ini disebut enkapsulasi dalam OOP.
Setiap kelas (kecuali Object) memiliki tepat satu - Dilindungi:
kelas super langsung. Ketika protected diterapkan sebagai pemodifikasi akses ke
anggota dalam sebuah kelas, anggota itu dapat digunakan dalam
Hanya pewarisan tunggal yang didukung
Objek adalah instance dari sebuah kelas. Mereka dibuat dengan subkelas dari kelas di mana ia didefinisikan, tetapi itu
"kata kunci baru", yang mengembalikan referensi ke sebuah objek yang tidak dapat digunakan di non-subkelas. Ada pengecualian:
mewakili sebuah instance dari kelas. Anggota yang dilindungi juga dapat diakses oleh kelas mana pun
dalam paket yang sama dengan kelas yang berisi
3.1.2. Beberapa terminologi OOP java anggota terlindungi.
- Anggota: baik atribut atau metode dari sebuah kelas - Tidak ditentukan:
- Konstruktor: metode yang melakukan objek Jika tidak ada dari modifikator yang diberikan di atas digunakan,

inisialisasi (bukan penciptaan!) anggota memiliki visibilitas default atau visibilitas "paket".
- Referensi Objek: variabel yang menyimpan referensi ke
(benar-benar alamat memori dari) sebuah objek
- Variabel Instance: atribut untuk mana setiap objek
(instance) memiliki salinannya sendiri

- Variabel Kelas: atribut yang hanya ada


satu salinan untuk kelas. Setiap objek (instance) 3.2. Warisan
membagikan salinan ini. Ini juga disebut variabel statis Terminheritance mengacu pada fakta bahwa satu kelas dapat
- Metode Instansi: metode yang beroperasi pada mewarisi sebagian atau seluruh struktur dan perilakunya dari yang lain
atribut dari sebuah objek (instance) kelas(Mekanisme ini memastikan skalabilitas dan penggunaan kembali
- Metode Kelas: metode yang tidak beroperasi pada kode). Java mendukung pewarisan tunggal menggunakan
objek tertentu, tetapi melakukan beberapa fungsi utilitas "extends" kata kunci sebagai berikut: publik kelas B memperluas

atau beroperasi pada variabel statis. Ini juga disebut A. Di sini, "A" disebut subclass dan "B" superclass.
metode statis. •Sebuah subclass dapat menimpa metode di superclass-nya dengan

- Tanda Tangan Metode: angka, jenis dan urutan dari memberikan definisi baru untuk metode dengan nama yang sama,
argumen dari sebuah metode tipe pengembalian dan tanda tangan.

- Overloading Metode: mendefinisikan sebuah metode dengan • Semua kelas secara implisit memperluas kelas Object.
same name but different signature(number and type • Aprotected memberof a class can be accessed by any
sebagai metode lain dalam kelas yang sama metode dalam kelas yang sama atau subclass. (Ini juga bisa menjadi
akses dengan metode apa pun dalam kelas yang sama dalam paket yang sama)
Overloading metode
kelas Penambah • Di dalam sebuah metode, kata kunci "this" mewakili
{ objek saat ini, sementara "super" adalah sebuah variabel yang berisi
int tambahkan(int i, int j) {
kembali i + j; referensi dari kelas super objek saat ini.
} Contoh Warisan
double tambah(double i, double j) { // A adalah superclass kelas publik ABTest {
return i + j; publik kelas A{ publik statis void
} protected int aData; main(String[] argv) {
} publik A(int aData) //Polymorphism
{[Link] =aData;} A a = new A();
B b = new B();
3.1.3. Modifier akses public A() {aData = 0;} a.f();// Memanggil f() milik A
There are three access modifiers which can define the protected void f() { b.f();// Memanggil f() milik B
[Link]("Ini adalah A's ") A a1 = b;
visibilitas atribut, metode, dan kelas: publik, privat f"); a1.f();// Memanggil f() milik B
terlindungi. } //Pengangkatan
} A a2 = (A) b; // Oke
- Umum: // B adalah subclass
Ini menunjukkan bahwa anggota atau kelas dapat diakses publicclass Bextends A { //Penurunan Casting
protected int bData; //B b1 = a; //Ilegal pada
di mana saja oleh siapa saja. (Dalam filosofi OOP, atribut publik B(int bData) //waktu kompilasi,
{[Link] = bData;} // perlu casting eksplisit
tidak boleh dinyatakan publik. Lebih baik menggunakan //B b2 = (B) a; // Ok pada
publik B() {ini(0);}
getter dan setter dilindungi void f() { //waktu kompilasi,

6
Pemrograman JAVA
[Link]("Ini adalah B's") // pengecualian saat waktu jalankan
pada objek yang sedang diperlukannya. Tiga jenis dari
f"); // Hal-hal lainnya
} int i = [Link]; /* Oke, sama polimorfisme adalah: overloading metode, overriding metode,
protected void g() { paket*/ dan pengikatan metode dinamis.
[Link]("Ini adalah B's ") //i = [Link]; /* Ilegal pada
waktu kompilasi */ Metode yang terlalu banyak dibebani adalah metode dengan nama yang sama
g");
} //bData tidak terdefinisi dalam A
} //a.g(); tetapi baik jumlah parameter yang berbeda atau jenis yang berbeda
// Ilegal pada waktu kompilasi, dalam daftar parameter.
// g() tidak ditemukan di A
} Metode yang diubah adalah metode yang didefinisikan ulang
} di dalam sebuah yang diwarisi atau subkelas. Mereka memiliki yang sama

tanda tangan dan definisi subclass digunakan.


3.2.1. Rantai Konstruktor Pengikatan metode dinamis (atau terlambat) adalah kemampuan dari
Java selalu memanggil konstruktor kelas induk ketika sebuah
program untuk menyelesaikan referensi ke metode subclass di
objek subclass dibuat (karena objek superclass adalah
waktu berjalan. Contoh pengikatan dinamis diberikan di bawah ini.
"bagian dari" objek subclass). Adalah mungkin untuk secara eksplisit memanggil
kelas publik Poly
sebuah konstruktor superkelas menggunakan panggilan ke super(...) sebagai yang pertama
{ public static void main (String
baris dari konstruktor subkelas: args[])
{
public B(int bData) {
[Link]("Tes Pertama");
super(); // Panggilan eksplisit dari konstruktor superclass kelas Titik
Point p = new Point (3, 5) ;
[Link] = bData; {
p. tampilkan();
} publik Titik (int x, int y)
// memanggil display() dari Point
{
Pointcol pc = baru
this.x = x ; this.y = y ;
Pointcol (4, 8, (byte)2) ;
Jika konstruktor superclass tidak dipanggil secara eksplisit, }
p = pc ; // p merujuk ke sebuah
maka konstruktor superclass tanpa argumen secara implisit publik void pindah(int dx, int
// instans dari Pointcol
dy)
memanggil Anda. Itu artinya, Java menyisipkan panggilan ke "super()" p. tampilkan() ;
{
// memanggil display() dari Pointcol
secara otomatis. x += dx ; y += dy ;
p = titik baru (5, 7);
Namun, jika konstruktor kelas super didefinisikan saat } // p sekarang mereferensikan sebuah

jika tidak diberikan argumen tanpa, maka perlu untuk memanggil public void tampilkan() //instance dari Point
{
konstruktor superclass di baris pertama subclass [Link]();
[Link]("my
// memanggil display() dari Point
konstruktor. posisi adalah
[Link]("Tes Kedua");
Tampilan superclass Subkelas }
kelas Pointcol memperluas Point Point [] tabPts = new Point [4] ;
kelas Titik private int x, y ;
{ tabPts [0] = new Point (0, 2) ;
{ public Point (int x, int y) }
public Pointcol (int x, int y, tabPts [1] = baru
{
byte warna) Pointcol (1, 5, (byte)3);
this.x = x ; this.y = y ; kelas Pointcol memperluas Point
tabPts [2] = yang baru
{super (x, y) ;// harus menjadi {
}
//pertama Pointcol (2, 8, (byte)9);
publik void bergerak(int dx, int dy) public Pointcol (int x, int y,
instruksi tabPts [3] = new Point (1, 2) ;
{ x += dx ; y += dy ; byte warna)
[Link] = color ; untuk (int i=0 ;
} {
} i< [Link] ; i++)
publik void tampilkan() super (x, y) ;/* harus menjadi
publik void tampilkan() tabPts[i].tampilkan();
{ [Link] (" instruksi pertama*/
{ super. display() ; }
posisi saya adalah " + x + " " + y [Link] = warna ;
[Link]("dan saya ") }
; }
color is: " + color) ; Hasil
} publik void tampilkan()
} Ujian Pertama
private int x, y ; {
private byte warna ; posisi saya adalah 3 5
} super. tampilkan();
} posisi saya adalah 4 8
dan saya
dan warna saya adalah: 2
Namun, jika baris pertama dari konstruktor menggunakan color is: " + color) ;
posisi saya adalah 5 7
sintaksis 'this(...)' untuk memanggil konstruktor lain dari kelas tersebut, }
Ujian Kedua
maka Java tidak secara otomatis menyisipkan panggilan ke "super()" private byte warna ;
posisi saya adalah 0 2
}
di dalam konstruktor: posisi saya adalah 1 5
public B() { dan warna saya adalah: 3
this(0);// Panggilan ke super() tidak dimasukkan secara otomatis di sini. posisi saya adalah 2 8
} dan warna saya adalah: 9
posisi saya adalah 1 2
3.3. Polimorfisme
Dalam bahasa pemrograman, polimorfisme adalah 3.4. Metode dan Kelas Abstrak
kemampuan suatu aksi atau metode untuk melakukan suatu aksi berbasis

7
Pemrograman JAVA
Metode abstrak tidak memiliki tubuh. Ini seperti virtual murni. 3.5.2. Mengapa Antarmuka Penting?
fungsi dalam C++. Metode abstrak diharapkan untuk menjadi Tipe objek pada dasarnya mengacu pada OO
dihapus dalam subclass dengan implementasi yang sebenarnya. antarmuka dari kelasnya. Kemudian di Java, sebuah objek dari kelas yang
Setiap kelas dengan metode abstrak adalah kelas abstrak mengimplementasikan beberapa antarmuka memiliki banyak tipe. Juga, objek
dan harus dideklarasikan sebagai abstrak. Kelas abstrak tidak dapat dari banyak kelas yang berbeda dapat memiliki tipe yang sama. Ini
diinstansiasi. Juga, jika subclass dari kelas abstrak tidak memungkinkan untuk menulis metode yang dapat bekerja pada objek dari banyak

berikan implementasi untuk semua metode abstrak dari kelas yang berbeda yang bahkan dapat berada dalam pewarisan yang berbeda
superkelasnya, maka subclass itu sendiri bersifat abstrak. hierarki.

// Kelas Shape adalah kelas dasar abstrak untuk bentuk geometris.


kelas abstrak publik Shape {
publik abstrak ganda area();//area() tidak memiliki tubuh
} public void renderScreen(Drawable d) {
// Kelas Rectangle adalah implementasi konkret dari Shape. // Render objek Drawable ini di layar.
publik kelas PersegiPanjang memperluas Bentuk {
// Tidak masalah apakah ini adalah DrawableRectangle,
protected double w;
// DrawableCircle, dll. Karena objeknya adalah Drawable, itu
protected double h;
public Rectangle(double w, double h) { // HARUS mengimplementasikan metode Draw.
this.w = w; [Link]();
this.h = h; } Paket dan pernyataan impor
} 3.6.
publik ganda area() { kembalikan (w * h); } Java classes can be grouped together into a package.
}
Paket memiliki beberapa keuntungan:
- kelas terkait dapat dikelompokkan bersama (menyiratkan
3.5. Antarmuka modularitas)
Dalam Java, antarmuka adalah spesifikasi dari sekumpulan - anggota hanya dapat diakses oleh metode dari
metode abstrak. kelas dalam paket yang sama
Sebuah kelas yang mengimplementasikan antarmuka harus menyediakan Aturan
sebuah implementasi untuk semua metode abstrak di - Pernyataan paket harus muncul sebagai yang pertama
antarmuka. pernyataan dari file sumber Java:
Sebuah kelas dapat mengimplementasikan banyak antarmuka, tetapi sebuah packagein3;
kelas hanya dapat memperluas satu kelas (Jika tidak ada pernyataan paket, kode tersebut menjadi bagian dari
// Antarmuka Drawable menyediakan spesifikasi untuk objek yang dapat digambar paket default yang tidak dinamai
// objek grafis.
public interface DapatDigambar {
publik void Gambar(); - Nama Java yang sepenuhnya memenuhi syarat untuk sebuah kelas adalah:

} <Nama Paket>.<Nama Kelas>


// Kelas DrawableRectangle mengimplementasikan antarmuka Drawable.
kelas DrawableRectangle memperluas Rectangle menerapkan Drawable {
Contoh: [Link]
// Kode lain di sini.
public void Gambar() {
Pernyataan impor memungkinkan penggunaan singkatan
// Isi dari Draw()
} nama kelas dalam berkas sumber Java
} Kelas selalu tersedia melalui nama lengkapnya:
[Link] p = new [Link]();
3.5.1. Perbedaan Antara Antarmuka dan Dengan menggunakan pernyataan "import", kode sebelumnya adalah
Kelas Abstrak disingkat sebagai berikut:
- Sebuah kelas abstrak dapat memiliki metode non-abstrak, [Link];
sementara semua metode dari sebuah antarmuka secara implisit (atau Point p = new Point();
secara eksplisit) abstrak. Sangat mungkin untuk mengimpor semua kelas dari sebuah paket menggunakan
- An abstract class can declare instance variables; an bentuk pernyataan impor berikut:
antarmuka tidak dapat impor [Link].*;
- An abstract class can have a user-defined (Ini mengimpor semua kelas dalam paket [Link])
konstructor, sementara antarmuka tidak memiliki konstructor
- Setiap metode dari sebuah antarmuka secara implisit (atau
secara eksplisit) publik; kelas abstrak dapat memiliki non-
metode publik.

Anda mungkin juga menyukai