Pengantar Pemrograman Java Dasar
Pengantar Pemrograman Java Dasar
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
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
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
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.
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
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
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.