class abstract - elista:. - elearning ista

advertisement
Modul 6:
Abstract Class, abstract
method
Setelah mengikuti mata kuliah ini
mahasiswa dapat menjelaskan
konsep abstract class dan
penggunaannya
Modul 6 - Abstract class and
method
1
Pengantar :

1.
2.
3.
4.
5.
Dalam modul ini akan diuraikan
beberapa topik bahasan yaitu :
class abstract
method abstract
studi class abstract java : Number
class turunan Number :Integer, Float,
Long,Double sebagai wrapper
konversi data: bilangan ke string
Modul 6 - Abstract class and
method
2
1. Pengertian abstract class




Suatu kelas sangat mungkin didefinisikan sebagai super
class yang darinya diturunkan sub-klas sub-klas
turunannya
Kita tidak bermaksud mendefinisikan objek dari super
class tersebut.
Super class tersebut didefinisikan semata-mata hanya
sebagai “payung” atau “induk” dari klas-klas turunannya.
Dari klas-klas turunan ini lah objek yang sebenarnya akan
diciptakan. Suatu super klass yang didefinisikan seperti
ini dinamakan sebagai class abstract.
Modul 6 - Abstract class and
method
3
2. Pengertian abstract method




Di dalam class abstract dapat didefinisikan atribut-atribut dan
method-method.
Atribut dan method yang didefinisikan dalam klass abstract
dimaksudkan merupakan sesuatu yang umum dan terdapat
pada sub-kelas sub-kelas turunannya.
Suatu abstract method didefinisikan dengan cukup
mendeklarasikan namanya pada class abstract dan mengoverride pada masing-masing kelas turunannya dengan
menyesuaikan dengan kebutuhan kelas turunannya tersebut.
Suatu class harus didefinisikan sebagai class abstract
apabila minimal ada satu method yang didefinisikan sebagai
abstract method.
Modul 6 - Abstract class and
method
4
Contoh kasus MailBox

Metod play() : didefinisikan
sebagai abtract method ,
karena play untuk text
adalah berbeda dengan play
untk voice

Sehingga class Message
adalah class abstract
Untuk data sender dan metod getSender(), semua class turunan
memiliki definisi yang sama sehingga data dan metod tersebut
didefinisikan bukan sebagai abstrat
Modul 6 - Abstract class and
method
5
Class Message
Satu-satunya
metod abstract
Yang
mengharuskan
class Message
didefinisikan
secara abtract
Untuk class
turunan
FaxMessage
tidak
didefinisikan
Modul 6 - Abstract class and
method
6
class Mailbox
Modul 6 - Abstract class and
method
7
class MailboxTest (class utama)
berlanjut
…
Modul 6 - Abstract class and
method
8
class MailboxTest … lanjutan
Modul 6 - Abstract class and
method
9
Hasil program MailboxTest

Pesan ke 1 : text
dari : AMIR
isi pesan : HABIS KULIAH
LANGSUNG PULANG YA
JANGAN MAIN2

Pesan ke 2: text
dari : BUDI
isi pesan : SUDAH LAPAR

Pesan ke 3 : voice
dari : JOHAN
isi pesan : suara music dalam
file spacemusic.au
Modul 6 - Abstract class and
method
10
3. Class abstract java : Number



Dalam class java ada class abstract, yaitu class Number
Class ini menjadi payung bagi class number wrapper, yaitu :
Integer, Long, Float, dan Double
Class Number memiliki 4 buah metod abstract yaitu intValue(),
longValue(), floatValue() dan doubleValue()
Modul 6 - Abstract class and
method
11
4. Class Turunan Number



4 class didefnisikan secara class final
Pada setiap class turunan didefnisikan metod-metod abstractnya
Pada setiap class turunan didefinisikan metod toString()
Modul 6 - Abstract class and
method
12
5. Penggunaan class Number
wrapper untuk konversi data



Pada setiap operasi data umumnya diperlukan proses KONVERSI
DATA DARI STRING KE BILANGAN DAN SEBALIKNYA
Untuk konversi data dari String menjadi bilangan ditempuh
dengan menjadikan string tersebut sebagai parameter pada
pembuatan objek. Selanjutnya karena pada class ada metod
intValue(), longValue(), floatValue() dan doubleValue() maka nilainilai bilangan yang bersangkutan :int, long, float dan double dapat
diperoleh
Untuk konversi dari bilangan (int, long, float, double) ke string cara
yang ditempuh adalah dengan menjadikan bilangan tersebut
sebagai argumen pada pembuatan objek class numberWrapper
dan kemudian menggunakan metod toString() untuk mengambil
stringnya
Modul 6 - Abstract class and
method
13
Program cetak Hello n kali dengan n
diinput dari command line





Tahukah anda apa fungsi String[] arg dalam metod main??
Jawabannya adalah bahwa setiap program dieksekusi dengan
java.exe, maka kita diberi kesempatan melewatkan parameter 1, 2
atau lebih
Parameter yang dilewatkan selanjutnya disimpan sebagai string dalam
array of string arg yang akan otomatis diciptakan dengan ukuran
sesuai dengan jumlah para meter
Jika parameter satu, misalnya untuk nama program Cetak.java yang
tyelah dikompilasi
> java Cetak Hello
disini “Hello” akan disimpan dalam arg[0]
Jika parameter 2, misalnya
>java Cetak Hello AKPRIND
Disini “Hello” akan disimpan dalam arg[0] dan akpirnd pada arg[1]
Dst…
Modul 6 - Abstract class and
method
14
Program CetakHello.java





Dalam program ada statemen Integer N= new Integer(arg[0])
arg[0] untk eksekusi tersebut berisi string “4”
Seteleh objek Integer N dibuat kita dapat memperoleh nilai int dari
objek N dengan menggunakan intValue()
Dengan demikian n adalah nilai int 4 untuk string “4”
Konversi berhasil dilakukan
Modul 6 - Abstract class and
method
15
Baca dari keyboard ?
Baca bilangan dari keyboard ?





Untuk mencetak kelayar kita menggunakan System.out.println(…)
Bagaimana untuk membaca data dari keboard??
Pemrogram java awal akan kebingungan karena java tidak menyediakan
statemen langusng untuk membaca data baik string atau bilangan dari keyboard
Sementara sebagaimana C++ punya statemen cin>> , PASCAL punya statemen
read(var) dan BASIC punya steteman INPUT untuk membaca data baik string
maupun bilangan dari keyboard
Persoalan ini dapat dijawab dengan mendefinisikan sendiri metod untuk
keperluan tersebut menggunakan statemen dasar java :
System.in.read()

Modifikasi dilakukan karena System.in.read() adalah membaca data 1 byte dari
keyboard. Sehingga harus didefinisikan metod untuk membaca berkali-kali
sampai diinputkan ENTER
Modul 6 - Abstract class and
method
16
Membaca string dari keyboard
dengan metod bacaString()

bacaString() didefinisikan untuk membaca data string dari keyboard
sampai diketik enter.
static String bacaString() throws Exception
{String s="";int c=0;
while(c!=13)
{c=System.in.read();
if((c!=13)&(c!=10)){s+=(char)c; }
}
return s;
}
Modul 6 - Abstract class and
method
17
bacaInt(), bacaFloat(), bacaDouble()





Dari metod bacaString(), kita dapat mengkonversi string menjadi
bilangan jika string yang dibaca adalah bilangan
static int bacaInt() throws Exception
{return Integer.parseInt(bacaString());}
static float bacaFloat() throws Exception
{return Float.parseFloat(bacaString());}
static double bacaDouble() throws Exception
{return Double.parseDouble(bacaString());}
Penerapan metod-metod tersebut ada dalam program
berikut :
Modul 6 - Abstract class and
method
18
Program lengkapnya…
Hasilnya
Modul 6 - Abstract class and
method
19
Rangkuman






Class abstract didefinisikan untuk suatu class yang tidak dibaut
objeknya
Class abstract hanya dijadikan payung bagi class-class anak
yang sejenis
Suatu metod didefinisikan sebagai abstract jika ia hanya
didefinisikan nama metod dan parameternya
Suatu class harus didefinisikan sebagai abstract jika ada satu
saja metod abstract
Turunan class Number yaitu Integer, Long, Float dan Double
dapat digunakan untuk konversi data dari String ke bilangan
dan sebaliknya
Konversi dapat bolak-balik antara int, long, float dan double ke
dan dari string
Modul 6 - Abstract class and
method
20
Latihan
1.
Definisikan suatu class abstract bernama :class Orang
dengan ketentuan :
• Dalam kelas tersebut ada atribut :Nama (String: yaitu
nama orang tersebut) dan Umur (int :yaitu umur orang
tersebut).
• Constructor dari class Orang didefinisikan dalam class
Orang menginisialisasi Nama dan Umur.
• Didefinisikans method abstract Cetak(), yang akan dioverride dalam kelas turunannya.
2. Definisikan dua buah kelas turunan dari class Orang yaitu
class :Pegawai dan class Mahasiswa.
Modul 6 - Abstract class and
method
21
Lanjutan…



Untuk class Pegawai dengan ketentuan :
• Dalam kelas Pegawai ada atribut tambahan yaitu NIP dan
Gaji
• Mendefinisikan method NaikGaji(), yaitu untuk menaikkan
gaji sebesar :10%
• Mendefinisikan method Cetak() untuk mencetak :NIP,
Nama, Umur (int) dan Gaji (double)
Untuk class Mahasiswa dengan ketentuan :
• Dalam kelas Mahasiswa ada atribut tambahan yaitu NoMhs
(String), Masa studi (int) dan IP (double)
• Mendefinisikan method Cetak() untuk mencetak :NoMhs,
Nama, Umur, Masa studi dan IP
Ujilah kemampuan klas tersebut dengan mendefinisikan klass
TestOrang.java untuk program utamanya.
Modul 6 - Abstract class and
method
22
Download