OVERLODING,OVERRIDING DAN EXCEPTION COY
1. TUJUAN PRAKTIKUM
- Agar Mahasiswa dapat menjalankan program java dalam langkah paling pertama atau pengenalan dengan baik,
- Dimana Mahasiswa diharapkan dalam penulisan coding program java menggunakan beberapa kunci yang membedakan satu dengan lainnya,
- Seperti penggunaan case sensitif pada nama class, dan mengenal apa
yang dimaksud dengan class, apa saja yang menjadi persyaratan suatu
class,
- Serta pemberian extensi .java pada program java saat disimpan dan pengenalan apa itu tipe data yang diwujudkan dalam variable / konstanta,
- Pada praktikum 1 ini juga mengajarkan kita tentang penggunaan operator aritmatika dan operator assignment.
2. TINJAUAN TEORITIS
1. Overloading, dimana beberapa method yang memiliki nama yang
sama tetapi beda fungsi. Overloading sendiri memiliki ciri nama method
harus sama, daftar parameter harus berbeda dan return type yang boleh
sama boleh juga tidak.
Contoh sederhana Overloading dapat dilihat di Contoh program Overloading
2. Overriding, menyatakan keadaan dimana method pada subclass
menolak method pada superclass-nya. Ciri dari Overriding adalah nama
method, daftar parameter, dan return type yang harus sama.
3. Exception adalah suatu kemampuan dalam bahasa berorientasi
objek untuk mengubah implementasi (menimpa) suatu method yang dimiliki
oleh kelas super ketika kelas super tsb diturunkan.
3. PEMBAHASAAN
a) Membuat program SegiTiga.java
class SegiTiga {
public SegiTiga(double panjang) {
System.out.println(“\nVariabel = segitiganya sama sisi”);
System.out.println(“panjang = ” +panjang);
keliling(panjang);
}
public SegiTiga(double panjang, double sisiMiring) {
System.out.println(“\n2Variabel = segitiganya sama kaki”);
System.out.println(“Panjang = ” +panjang+ “ sisi miring = “+sisiMiring);
keliling(panjang, sisiMiring);
}
public void keliling(double panjang) {
tampilkanHasil(panjang*3);
}
public void keliling(double p, double sM) {
tampilkanHasil(2*sM+p);
}
protected void tampilkanHasil(double h) {
System.out.println(“Hasil = ” +h);
}
}
Keluarannya:
b) Membuat Program MainSegiTiga.Java
class MainSegiTiga {
public static void main(String [] args) {
new SegiTiga(7);
new SegiTiga (4,7);
}
}
Keluarannya:
c) Membuat program Overriding.java
class OverRiding {
public void MethodAsli() {
System.out.println(“Method milik class OverRiding dijalankan”);
}
public static void main(String [] args) {
OverRiding O = new OverRiding();
O.MethodAsli();
}
}
Keluarannya :
d) Membuat program SubOverriding.java
class SubOverRiding extends OverRiding {
public void MethodAsli() {
System.out.println(“Method yang sudah OverRiding dijalankan”);
}
public void MethodAsliSuper() {
System.out.println(“Method pemanggil MethodAsli dijalankan”);
super.MethodAsli();
}
public static void main(String [] args) {
SubOverRiding SO = new SubOverRiding();
SO.MethodAsli();
SO.MethodAsliSuper();
}
}
Keluarannya:
4. KESIMPULAN
- Java bersift case sensitive : dimana huruf kapital dan huruf kecil tidak dianggap sama.
- Secara umum, Java mengabaikan spasi kosong. Spasi kosong tdd: karakter yg tdk tampil pada
- Layar, seperti kosong tab, ganti baris dan lainnya yg digunakan utk
membuat kode java lebih menarikdan mudah utk dibaca / dipahami.
- Brace atau kurung kurawal {} merupakan simbol pengelompokkan dlm java yg digunakan utk menandai awal dan akhir seksi program.
- Kode program dpt disisipi komentar-komentar yaitu teks yg
menerangkan kode. Simbol khusus harus mendahului komentar agar
kompilator mengabaikan teks tsb. Setiap pernyataan java diakhiri dengan
simbol titik koma (;).
5. PENUTUP
Demikian Laporan Praktikum Java ini penulis paparkan mengenai
materi praktikum yang menjadi pokok bahasan dalam laporan ini, tentunya
masih banyak kekurangan dan kelemahannya.
Penulis sangat berharap kritik dan saran dari Dosen pengajar study Java untuk perbaikan yang lebih baik.
PACKAGE DAN JAVA KELAS
1. TUJUAN PRAKTIKUM
- Agar Mahasiswa dapat menjalankan program java dalam langkah paling pertama atau pengenalan dengan baik,
- Dimana Mahasiswa diharapkan dalam penulisan coding program java menggunakan beberapa kunci yang membedakan satu dengan lainnya,
- Seperti penggunaan case sensitif pada nama class, dan mengenal apa
yang dimaksud dengan class, apa saja yang menjadi persyaratan suatu
class,
- Serta pemberian extensi .java pada program java saat disimpan dan pengenalan apa itu tipe data yang diwujudkan dalam variable / konstanta,
- Pada praktikum 1 ini juga mengajarkan kita tentang penggunaan operator aritmatika dan operator assignment.
2. TINJAUAN TEORITIS
Dalam bahasa pemrograman yang berorientasi obyek dikenal beberapa
konsep-konsep dasar saling berinteraksi satu sama lain yang mendasari
pemrograman berorientasi obyek tersebut yaitu, INHERITANCE (pewarisan),
ENCAPSULATION (pengkapsulan), POLYMORPHISM dan INFORMATION HIDING.
Berikut adalah penjelasan dari tiap-tiap konsep dasar tersebut :
INHERITANCE (pewarisan)
Pada dasarnya, kita melakukan
inheritance(pewarisan) untuk membuat suatu class baru (class
turunan/subclass) yang masih memiliki sifat atau spesifikasi dari
superclass.
Di dalam Java untuk mendeklarasikan suatu
class sebagai subclass dilakukan dengan cara menambahkan kata kunci
extends setelah deklarasi nama class, kemudian diikuti dengan nama
parent class-nya. Kata kunci extends tersebut memberitahu kompiler Java
bahwa kita ingin melakukan perluasan class.
public class Mamalia {
void KelasMamalia () {
…..
}}
class Paus extends Mamalia { (class Paus merupakan keturunan dari class Mamalia)
void TampilkanPaus () {
…..
}}
Pada saat class Paus menurunkan atau memperluas (extend) class
Mamalia, maka ia mewarisi data member yang dipunyai oleh class Mamalia.
Dengan demikian, class Paus mempunyai data member yang diwarisi oleh
Mamalia (behaviournya), ditambah dengan data member yang ia punyai
(tempat hidup,dsb).
Keuntungan dari inheritance adalah :
Subclass menyediakan state/ behaviour yang spesifik yang
mem-bedakannya dengan superclass, hal ini akan memungkinkan programmer
Java untuk menggunakan ulang source code dari superclass yang telah ada.
Programmer Java dapat mendefinisikan superclass khusus yang bersifat
generik, yang disebut abstract class, untuk mendefinisi-kan class dengan
state dan behaviour secara umum.
Beberapa aturan tentang pewarisan (inheritance) yang perlu diperhatikan :
1. Java hanya memperkenankan adanya single inheritance. Konsep single
inheritance hanya memperbolehkan suatu sublass mempunyai satu parent
class. Dengan konsep single inheritance ini, masalah pewarisan akan
dapat diamati dengan mudah.
2. Subclass juga merupakan class biasa, maka kita tetap dapat
melakukan pewarisan pada subclass ini. Misal : class B merupakan
subclass dari class A, kita dapat membuat class baru yang diturunkan
dari class B sehingga class baru tersebut akan memiliki apa yang
dimiliki oleh class A dan class B.
3. Suatu parent class dapat tidak mewariskan sebagian member-nya
kepada subclass-nya. Sejauh mana suatu member dapat diwariskan ke class
lain, ataupun suatu member dapat diakses dari class lain, sangat
berhubungan dengan access control (kontrol pengaksesan).
Di dalam java, kontrol pengaksesan dapat digambarkan dalam tabel berikut ini:
ENCAPSULATION (pengkapsulan)
Enkapsulasi adalah pembungkus, pembungkus disini dimaksudkan untuk
menjaga suatu proses program agar tidak dapat diakses secara sembarangan
atau di intervensi oleh program lain. Konsep enkapsulasi sangat penting
dilakukan untuk menjaga kebutuhan program agar dapat diakses
sewaktu-waktu, sekaligus menjaga program tersebut.
Dalam kehidupan sehari hari enkapsulasi dapat dimisalkan sebagai arus
listrik pada generator, dan sistem perputaran generator untuk
menghasilkan arus listrik. Kerja arus listrik tidak mempengaruhi kerja
dari sistem perputaran generator, begitu pula sebaliknya. Karena didalam
arus listrik tersebut, kita tidak perlu mengetahui bagaimana kinerja
sistem perputaran generator, apakah generator berputar kebelakang atau
ke depan atau bahkan serong. Begitu pula dalam sistem perputaran
generator, kita tidak perlu tahu bagaimana arus listrik, apakah menyala
atau tidak.
Begitulah konsep kerja dari enkapsulasi, dia akan melindungi sebuah
program dari akses ataupun intervensi dari program lain yang
mempengaruhinya. Hal ini sangat menjaga keutuhan program yang telah
dibuat dengan konsep dan rencana yang sudah ditentukan dari awal.
Manfaat dari proses enkapsulasi adalah :
Modularitas
Kode sumber dari sebuah objek dapat dikelola secara independen dari kode sumber objek yang lain.
Information Hiding
Dapat menentukan hak akses sebuah variabel/ methode dari suatu objek,
dengan demikian dapat menyembunyikan informasi yang tidak perlu
diketahui oleh objek lain.
Contoh dalam program :
Belajar.Java
class belajar{
public String x =”Pintar”;
private String y = “Java”;
}
Pintar.Java
public class Pintar{
public static void main(String[]args){
Coba panggil = new Belajar();
System.out.println(“Panggil X : “+panggil.x);
System.out.println(“Panggil Y : “+panggil.y);
}}
Tipe public dan private mempunyai fungsi yang berbeda. Fungsi public
yang terdapat dalam class Coba pada variable x, memungkinkan nilai dari
variable x dapat diakses oleh class Belajar. Sedangkan variable y yang
menggunakan fungsi private tidak dapat dipanggil didalam class Belajar.
3. POLYMORPHISM
Polymorphism adalah suatu aksi yang memungkinkan pemrogram
menyampaikan pesan tertentu keluar dari hirarki obyeknya, dimana obyek
yang berbeda memberikan tanggapan/respon terhadap pesan yang sama sesuai
dengan sifat masing-masing obyek.
Atau Polymorphic dapat berarti banyak bentuk, maksudnya yaitu kita
dapat menimpa (override), suatu method, yang berasal dari parent class
(super class) dimana object tersebut diturunkan, sehingga memiliki
kelakuan yang berbeda.
Kondisi yang harus dipe-nuhi supaya polimorfisme dapat diimplementasikan adalah :
Methode yang dipanggil harus melalui variabel dari basis class atau superclass.
Methode yang dipanggil juga harus menjadi methode dari basis class.
Signature methode harus sama baik pada superclass maupun pada subclass.
Methode access attribute pada subclass tidak boleh lebih terbatas dari basis class.
Contoh program :
Simpan dengan nama BeautyfullMahasiswa.java
public class BeautyfullMahasiswa extends Mahasiswa{
public void printNama(){
System.out.println(“Hallo, saya Mahasiswa yg cantik n baik”);
Super.printNama();
}
}
Simpan dengan nama Main.java
public class Main{
public static void main(String[] args]) {
BeautyfullMahasiswa mhs = new BeautyfullMahasiswa();
mhs.setNim(“09530524”);
mhs.setNama(“Afrida Asna”);
mhs.printNim();
mhs.printNama();
}
}
Kemudian compile dan run.
C:\>javac BeautyfullMahasiswa.java
C:\>javac Main.java
C:\>java Main
Kontruksi objek mahasiswa
Nim:09530524
Hallo, saya Mahasiswa yg cantik n baik
Nama: Afrida Asna
C:\>
Terlihat bahwa disini kita mengoverride method printNama(), dengan
menambahkan beberapa teks tambahan, sehingga method printNama(), pada
class BeautyfullMahasiswa, memiliki perilaku yang berbeda dengan class
Mahasiswa.
4. INFORMATION HIDING
Menyembunyikan informasi adalah fitur kunci dari java. Ketika
mendeklarasikan variabel atau metode ini bisa menjadi salah satu dari
empat hal: swasta, dilindungi, atau umum atau default. Cara Anda
menentukan jenis ini menggunakan salah satu dari tiga kata kunci atau
tidak sama sekali.
Sebagai contoh :
// Default
Int i = 0;
// public
Public i = 0;
Public: Bila Anda mendeklarasikan variabel public itu berarti bahwa
hal itu dapat diakses di mana saja dalam program. Jika Anda mewarisi
dari kelas yang Anda akan memiliki akses ke semua variabel publik.
Private: Ketika variabel bersifat pribadi itu tidak dapat dilihat di
mana saja kecuali untuk kelas adalah instantiated masuk Jika Anda
menggunakan kelas Anda tidak akan dapat melihat data pribadi.
Protected: Jika variabel dilindungi Anda hanya memiliki akses paket
(berguna ketika mengembangkan libs). Itu berarti bahwa Anda hanya akan
melihat variabel dalam paket itu adalah instantiated di dan semua
subclass.
Default: akses default paket dicapai ketika tidak ada specifier
(swasta, publik, atau dilindungi). Jalur akses default paket berarti
bahwa variabel tersebut tersedia dalam paket yang dibuat di tetapi tidak
dalam subclass paket. Pada dasarnya Anda dapat menganggapnya sebagai
sebuah paket pribadi.
Ketika membuat variabel dalam metode Anda hanya dapat menentukan satu
kata kunci (final). Anda tidak dapat membuat publik, swasta, atau
dilindungi, atau bahkan variabel default. Ketika Anda membuat sebuah
Object dalam metode ini hanya tersedia dalam metode itu dibuat masuk.
3. PEMBAHASAAN
a) Membuat program SuperClass.java
public class SuperClass{
public SuperClass(){
System.out.println(“Ini konstruktor milik SuperClass”);
}
public void methodSuperClass(){
System.out.println(“Ini method milik SuperClass”);
}
}
Keluarannya:
b) Membuat Program SubClass.Java
public class SubClass extends SuperClass {
public SubClass() {
super();
}
public void methodSubClass(){
super.methodSuperClass();
}
}
Keluarannya:
c) Membuat program DemoInheritance.java
public class DemoInheritance{
public static void main (String[] args) {
SubClass sc = new SubClass();
sc.methodSubClass();
}
}
Keluarannya :
d) Membuat program Persegi.java
public class Persegi {
private double panjang; //atribut yang disembunyikan
private double lebar; //atribut yang disembunyikan
private double tinggi; //atribut yang disembunyikan
public Persegi() {
panjang = 0;
lebar = 0;
}
private double luas(double p,double l) {
return p*l;
}
public void setPanjang(double panjang1) {
this.panjang = panjang1;
}
public void setLebar(double lebar1) {
this.lebar = lebar1;
}
public double getPanjang() {
return panjang;
}
public double getLebar() {
return lebar;
}
public double getLuas() {
return luas(panjang, lebar);
}
}
Keluarannya:
e) Membuat program MainPersegi.java
public class MainPersegi {
public static void main(String[] args) {
Persegi pg = new Persegi();
pg.setpanjang(10);
pg.setLebar(20);
System.out.println(“Panjang : “+pg.getPanjang());
System.out.println(“Lebar : “+pg.getLebar());
System.out.println(“Luas : “+pg.getLuas());
}
}
Keluarannya:
f) Membuat program Karyawan.java
abstract class Karyawan {
int gaji;
Karyawan() {
gaji = 1000000;
}
int getGaji() {
return gaji;
}
abstract void naikGaji();
}
Keluarannya:
g) Membuat program Manager.java
class Manager extends Karyawan {
Manager() {
gaji += 2000000;
}
void naikGaji() { gaji+=3000000; }
}
Keluarannya:
h) Membuat program Receptionist.java
class Receptionist extends Karyawan {
Receptionist() {
gaji += 1000000;
}
void naikGaji() { gaji+=1000000; }
}
Keluarannya:
i) Membuat program Polymorphisme.java
class Polymorphisme {
public static void main(String[] args) {
Karyawan K[] = new Karyawan[3];
K[0] = new Manager();
K[1] = new Receptionist();
K[2] = new Manager();
for (int i=0;i<3;i++)
System.out.println(“Gaji karyawan “+i+” adalah “+K[i].getGaji());
for (int i=0;i<3;i++)
K[i].naikGaji();
for (int i=0;i<3;i++)
System.out.println(“Gaji sekarang “+i+” adalah “+K[i].getGaji());
}
}
Keluarannya:
4. KESIMPULAN
a.pada program SuperClass.java:
1. terdapat “ 2 (dua) methode”.
2. SuperClass dan methodSuperClass merupakan Konstruktor
b. pada program SubClass.java :
1. terdapat 2 (dua) methode yang berfungsi untuk memanggil kontruktor kelas induk
2. extends merupakan keturunan antara lain SuperClass merupakan induk dan SubClass merupakan anak
3. tidak merupakan kelas utama karena tidak memiliki fungsi utama
c. pada program DemiInheritance.java :
1. merupakan kelas utama karena memiliki fungsi utama
public statisc void main
2. memiliki objek
sc dengan tujuan untuk mengakses
d. pada program Persegi.Java
1. terdapat 7 (tujuh) methode
2. terdapat modifier dengan antribut panjang, lebar, tinggi.
3. memiliki paramater
e. pada program MainPersegi.java:
1. terdapat kelas utama
2. terdapat proses hiding dengan tujuan agar tidak dapat dipanggil
f. pada program Karyawan.java
1. memiliki methode yang tidak memiliki inheritance
g. pada program Polymorphisme.java:
1. memiliki kelas utama
2. memiliki array dengan 1 atribut banyak array
5. PENUTUP
Demikian Laporan Praktikum Java ini penulis paparkan mengenai
materi praktikum yang menjadi pokok bahasan dalam laporan ini, tentunya
masih banyak kekurangan dan kelemahannya.
Penulis sangat berharap kritik dan saran dari Dosen pengajar study Java untuk perbaikan yang lebih baik.
EVENT HANDLING
Event Handling : suatu metode untuk menangani sebuah event / aksi yang diberikan pengguna kepada suatu komponen GUI.
Event : peristiwa yang dipicu oleh pengguna pada suatu komponen, misalnya saat tombol ditekan.
Paket yang biasa digunakan untuk menangani event adalah java.awt.event dan javax.swing.event.
Event handling terbagi 3:
1.
event source
komponen yang mendapat suatu event, yang kemudian ditangkap oleh event listener
2.
event listener
untuk menangkap event yang terjadi pada komponen / event source
3.
event handler
blok method dari listener yang menentukan event selanjutnya setelah komponen mendapatkan event.
Contoh: pada saat tombol simpan ditekan, maka event listener akan
menangkap event pada tombol simpan tersebut / event source simpan,
kemudian event handler menyimpan data yang didefenisikan pada blok event
handler