4371 35 PDF
4371 35 PDF
PENGENALAN'
PEMROGRAMAN'BERORIENTASI'OBJEK
(PBO)
Dosen:
Erma'Susanti,' S.Kom,'M.Cs
Tujuan
Pokok Bahasan
1) Bahasa'Pemrograman
2) Pengenalan PBO:'Class'dan Objek
3) Pemrograman Java
Buku teks
1.)Apakah Bahasa)Pemrograman?
! Komputer'hanya'mengenal'0'dan'1,'sedangkan'manusia'tidak'(paham)'
berbicara'dengan'bahasa'0'dan'1
! Perlu'bahasa'pemrograman'yang'dapat'menjadi'perantara'percakapan'
antara'komputer'dan'manusia
! Bahasa'pemrograman'diubah'ke'dalam'bahasa'yang'dipahami'oleh'
komputer'dengan'menggunakan'interpreter atau'kompiler
Tingkat)Bahasa)Pemrograman
1. Bahasa'Pemrograman'Tingkat'Rendah (Assembler)
2. Bahasa'Pemrograman'Tingkat'Sedang (C,'Pascal,'Fortran)
3. Bahasa'Pemrograman'Tingkat'Tinggi (Java,'C++,'C#)
Paradigma Pemrograman
Sudut'pandang''dan'style pemrograman'berhubungan'dengan'bagaimana'
sebuah'masalah'diformulasikan'dalam'bahasa'pemrograman
1. Pemrograman'Fungsional (Functional Programming):'Urutan'fungsi'
secara'sekuensial (Scheme,'Lisp)
2. Pemrograman'Prosedural (Procedural Programming):''Pemecahan'
masalah'berdasarkan'prosedural'kerja'yg terkumpul'dalam'unit'
pemrograman'bernama'fungsi (C,'Pascal)
3. Pemrograman'Berorientasi'Objek (Object3Oriented Programming):'
Koleksi'object yang'saling'berinteraksi'.'Class adalah'unit'pemrograman'
(Java,'C#,'C++)
Notasi ini digunakan sesuai dengan standar notasi industri yang/disebut dengan
UML,/singkatan dari Unified/Modeling/Language.
Contoh:
Object)dengan Class)Name
Contoh:
3.)Pemrograman Java
1. Java'Standard'Edition'(Java SE)
" Untuk desktop,'client/server'application
2. Java'Enterprise Edition
(Java EE)
" Untuk e]business,'e]commerce'web'based'application
3. Java'Micro'Edition
(Java ME)
" Untuk small'devices,'seperti palm, handphone,'dll
Versi Java
Compiler)dan Interpreter
Dari)Source)Code)ke Running)Program
javac java
(Java'
(Java'
Compiler)
Interpreter)
1. Compiler (Interpreter):
Java'Standard'Edition (JSE)
2. Code'Editor:
1. Text Editor:
TextPad,'Notepad++
2. Integrated Development'Environment (IDE):
Netbeans,'Eclipse,'JCreator
PENGENALAN'PROGRAM'JAVA
Dosen:
Erma'Susanti,' S.Kom,'M.Cs
Tujuan
Setelah mengikuti mata kuliah ini mahasiswa dapat :
Pokok Bahasan
Dalam modul ini akan diuraikan beberapa topik bahasan yaitu :
1) Sejarah JAVA
2) Keunggulan JAVA
3) Struktur program'JAVA
4) JDK,'Compiler'dan Interpreter
5) Pengembangan Program'Java'dengan Netbeans
6) Error/Kesalahan Program
1.)Sejarah Java
• 1991 :'Project'“Green”,'kelompok Sun enginer dipimpin James'Gosling akan merancang
program'simple' untuk konsumsi elektronik consumer
• 1992:'Project'menghasilkan produk bernama “*7”,'kurang sukses
• 1993Zmid1994:Project' baru “First'Person'Inc”,'Patrick'Naughton mencoba memasrakan
*7'(300.000'air'mail)'gagal
• 1994:'Internet'growing' bigger.' The'key'– web'browser'take'hypertext'to'translate'to'
screen
• Kebanyakn browser'adalah Mosaic'(ditulis Marc'Anderson)
• 1994:'Patrick'Naughton dan Jonathan'Payne merancang THE'REAL'BROWSER'
(architectur neutral,'realZtime,relaible and'secure)'disebut HOtJava,'ditulis dalam java.'
• 1995 :'The'breakthrough' for'widespread'use'of'java,'when'Netscape'(ditulis oleh Jim'
Clark)'membuat browsernya JAVA'ENABLE
• 1996 :Januari Z Netscape'ver 2.0'menggunakan java'1.0
2.)Keunggulan Java
1. Sederhana dan ampuh :Mudah dipelajari jika telah mengenal konsep OOP,'terbuka
dan mudah dikembangkan
2. Aman :'DIbuat dengan pertimbangan penuh keamanan diinternet
3. Full2OOP :'Hanya program' java'yang'benarZbenar OOP.'Kebnyakan bahasa program'
lain'memiliki heararchi data'yang'kaku.'Bahkan OOP'adalah fasilitas dan pilihan saja
4. Kokoh :'Kekokohan terkait dengan beberapa kelemahan program'lain'seperti Pascal'
atau C++'dengan pointer,' pengaturan memori dengan konsep garbage)collection.
5. Interaktif :'Dirancang untuk kebutuhan pemrograman jaringan yang'interaktif
6. Netral arsitektur :'Mengatasi portabilitas program' antar sistem operasi (Mac,'PC,'
UNIX)'dengan konsep java4code)byte dan Java Virtual)Machine
3.)Struktur Program)Java
Secara prinsip program'java'dapat dibedakan menjadi 2,'yaitu aplikasi dan applet'
:
Struktur aplikasi
Suatu aplikasi java'memiliki struktur sbb:
[import nama_package]
[public] class nama_Class [ extends nama_induk] [implements
nama_interface,namainterface,.. ]
{ [definisi data dan definisi variabel ]
[definisi metod-metod ]
public static void main (String [] arg)
{ …………
} // akhir main
} //akhir definisi class
Keterangan :
tanda [']'berarti bagian tersebut bersifat pilihan (boleh tidak ada)
Tanda //'berarti dibelakang tanda tersebut adalah komentar program
Edit'program'dengan editor'
teks
TextZPad'/'Notepad++':
Struktur applet
Contoh applet
mencetak tulisan :HelloAKPRIND !
import java.awt.*;
import java.applet.*;
public class simpleApplet extends Applet
{ public void init()
{ setSize(240,100);
setVisible(true);
}//constructor1
public void paint(Graphics g)
{String s="HALO AKPRIND !";
g.drawString(s,30,45);
g.drawRect(20,20,110,40);
}
}//akhir class
Contoh file)HTML
nama file)simpleApplet.html
Selanjutnya simpan dalam file2:simpleApplet.java dan dicimpile dengan javac.exe
Hasil compilasi :simpleApplet.class selanjutnya disimpan dalam file2HTML.
Contoh file2HTML2adalah sbb:
<HTML>
<TITLE>Judul dokumen</TITLE>
<BODY>Dibawah ini dari Applet:<BR>
<APPLET CODE="simpleApplet.class" WIDTH=400
HEIGHT=170>
</APPLET>
</BODY>
Hasil'applet'dengan':
Efek'dari'
!Appletviewer simpleApplet.html HTML'tidak'
terlihat
!Hasil'applet'dengan'browser'
:InternetExplorer
Efek'dari'HTML'pada'
judul' dan'body' 'tidak'
terlihat
Contoh applet)(2)):
pengaturan warna dan model)huruf
import java.awt.*;
import java.applet.*;
public class simpleApplet extends Applet
{ public void init(){
setSize(240,100);
setVisible(true);
}//constructor
public void paint(Graphics g)
{ Font f = new Font("Arial Black",Font.BOLD,30);
g.setFont(f);
g.setColor(Color.red);
String s="HALO AKPRIND !";
g.drawString(s,30,45);
g.drawRect(20,20,110,40);
}
}//class
File)simpleApplet.html
diubah dengan set)warna huruf
<HTML>
<TITLE>Judul dokumen</TITLE>
<BODY>
<b><font color="#0000FF" size="4">
Di bawah ini dari Applet:
</font></b>
<APPLET CODE="simpleApplet.class" WIDTH=400 HEIGHT=170>
</APPLET>
</BODY>
Catatan:
warna terdiri dari komposisi RGB
Yang'masingZmasing diwakili oleh digit'hexa
Warna #0000FF'adalah biru sempurna pada tulisan :'Dibawah ini dari Applet:
• Eksekusi'dengan'
appletviewer
• Eksekusi'dengan'
browser
IE
4.)JDK,)Compiler,)Interpreter
• Pada'kode'program' java'yang'dismpan'
dalam'folder' source'dipisahkan'menjadi'
folderZfolder:' com,'java,'javax,'launcher,' org'
dan'sunw
• Folder' java berisi'definisi' package'dan'classZ
class'mendukung' pembuatan'aplikasi'dan'
applet'java
• Folder' javax definisi'package'dan'classZclass'
mendukung' pembuatan' aplikasi'dan'applet'
javaSwing
• Folder' lain'mendukung' aplikasi'yang'
diperlukan
Pengembangan Program)Java)Menggunakan
NetBeans:)Membuat Project)Java
2.'Pilih Java dalam bagian Categories dan Java2Application2dalam bagian Projects dan
kemudian klik Next untuk menampilkan jendela New2Java2Application
3.'Ketik demo pada kolom ProjectName dan c:\michael pada kolom Project Location.'
Hilangkan cek pada Use2Dedicated2Folder2for2Storing2Libraries dan hilangkan cek pada Create2
Main2Class
4.'Klik Finish untuk membuat project
Pengembangan)Program)Java)Menggunakan)
NetBeans:)Membuat)Project)Java
1. Klik'kanan'node' demo pada'project'pane'untuk'menampilkan' context'menu.'Pilih'
New Java2Class2untuk' menampilkan' jendela'New2Java2Class
Membuat Class)Java
Membuat)Class)Java
2.'Ketik Welcome'pada kolom Class2Name2dan pilih Source2Packages pada kolom Location.'
Biarkan kolom Package kosong.'Ini akan membuat kelas dalam package'default.
3.'Klik Finish untuk membuat class'Welcome.'File'source'code'Welcome.java akan ditempatkan
dibawah node'<default2package>/
4.'Untuk memodifikasi kode dalam class'Welcome'lihat gambar berikut.
1. // Program1.java
2. // Program menampilkan teks ke layar
3.
4. public class Program1 {
5. //method utama dimulai dengan eksekusi dari aplikasi Java
6. public static void main(String[] args)
7. {
8. //menampilkan teks Selamat Belajar Pemrograman Java! Ke layar
9. System.out.println(“Selamat Belajar Pemrograman Java!”);
10. } //akhir method utama
11. } //akhir class Program1
Karakter Deskripsi
[] Menunjukkan array
Deklarasi Class
" Setiap program'java'terdiri dari sedikitnya satu class
" Kata'kunci class digunakan untuk mendeklarasikan sebuah class
class namaclass
" untuk setiap class'yang'didefinisikan dimulai dengan kata'kunci public
" setiap public'class'harus disimpan dalam sebuah file'dengan nama file'
namaclass.java sehingga jika didefinisikan class2Program1 maka simpan file'
dengan nama Program1.java.
Class)Body
" diawali dengan { untuk memulai deklarasi dari body'(tubuh)'class'dan
diakhiri dengan }
" jika memulai dengan { maka jangan lupa dengan menutup dengan }
Deklarasi Method
Modifikasi Program)Java
" Untuk menggunakan multiple' statemen dan mencetak teks dengan beberapa baris
teks dengan menggunakan single'statemen
" Statemen pertama menggunakan System.out method'print,'dan statemen kedua
menggunakan method' println.
" Pada method' println posisi output' kursor akan berpindah di'awal baris berikutnya,'
sedangkan print tidak.
1. // Program1.java
2. // Program menampilkan teks ke layar dengan multiple statemen
3.
4. public class Program1
5. {
6. //method utama dimulai dengan eksekusi dari aplikasi Java
7. public static void main(String[] args)
8. {
9. System.out.print(“Selamat Belajar ”);
10. System.out.println(“Pemrograman Java!”);
11. } //akhir method utama
12. } //akhir class Program1
Modifikasi Program)Java
" \n Pindah baris
" \t horizontal'tab
" \r Posisi kursor di'awal baris
" \\ Mencetak karakter \
" \” Cetak “quotes” System.out.println(“\”dalam
quotes\””);
1. // Program1.java
2. // Program menampilkan teks ke layar dengan single statemen
3.
4. public class Program1
5. {
6. //method utama dimulai dengan eksekusi dari aplikasi Java
7. public static void main(String[] args)
8. {
9. System.out.println(“Selamat Belajar\nPemrograman Java!”);
10. } //akhir method utama
11. } //akhir class Program1
Selamat Belajar
Pemrograman Java!
Versi':'1 Revisi':'0 Halaman':' 39 Dari':'63
Fakultas :)Teknologi)Industri Pertemuan)Ke :)2
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)63
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017G2
1. // Program2.java
2. // menampilkan banyak baris dengan method System.out.printf
3.
4. public class Program2
5. {
6. //method utama dimulai dengan eksekusi dari aplikasi Java
7. public static void main(String[] args)
8. {
9. System.out.println(“%s%n%s%n”,
10. “Selamat Belajar\nPemrograman Java!”);
11. } //akhir method utama
12. } //akhir class Program2
Selamat Belajar
Pemrograman Java!
Versi':'1 Revisi':'0 Halaman':' 40 Dari':'63
Fakultas :)Teknologi)Industri Pertemuan)Ke :)2
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)63
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017G2
Deklarasi import
import java.util.Scanner; //program menggunakan class Scanner
Konsep Memori
" nama variabel nilai1,'nilai2,'dan jumlah berhubungan dengan lokasi di'
memori komputer
" setiap variabel mempunyai nama,'tipe,'dan ukuran (dalam byte)'dan
mempunyai nilai.
" contoh:'
nilai1 = input.nextInt(); //membaca angka pertama dari keyboard
" nilai yang'diketikkan oleh user'diletakkan ke dalam lokasi memori yang'
berhubungan dengan nama nilai1.'Jika user'mengetikkan angka 20.'
Komputer akan meletakkan nilai integer'ke dalam lokasi nilai1.
nilai1 20
Konsep)Memori
" Contoh lokasi memori yang'menyimpan jumlah dari nilai1 dan nilai2:'
nilai1 = input.nextInt(); //membaca angka pertama dari keyboard
nilai2 = input.nextInt(); //membaca angka kedua dari keyboard
jumlah = nilai1 + nilai2; //penjumlahan nilai
nilai1 20
nilai2 35
jumlah 55
Aritmatika
Operasi Java Operator Ekspresi Aljabar Ekspresi Java
Perkalian * bm b *'m
$
Pembagian / !/# atau atau ! ÷ # x /'y
%
Pengambilan Keputusan:)Persamaan
Operator2Aljabar Persamaan di2Java Contoh Kondisi diJava Arti dari kondisi di2Java
Pengambilan Keputusan:)Operator)Relasional
Operator Aljabar Operator Relasional Contoh kondisi di2Java Arti kondisi di2Java
Komentar Program
" Kita'perlu menambahkan komentar untuk dokumentasi program,'sehingga dapat
meningkatkan readability
" Compiler'java'akan mengabaikan komentar,'sehingga tidak akan berpengaruh saat
program'dijalankan.
" komentar diawali dengan //'untuk komentar 1'baris
// Program1.java
// Program menampilkan teks ke layar
" Java'juga mengenal komentar tradisional untuk beberapa baris,'diawali /*'dan
diakhiri dengan */
/* Ini adalah komentar tradisional. Dapat
dipecah menjadi beberapa baris */
" Java'juga menyediakan komentar untuk dokumentasi yaitu komentar Javadoc'
dengan /**'dan diakhiri */'.'Komentar Javadoc'digunakan untuk membuat
dokumentasi Java'untuk format'industri.'
System.out.println(3+4*4); Bad'Styles
System.out.println(3 + 4 * 4); Good' Styles
Block)Styles
NextZline'style EndZofZline'style
public class Program1 public class Program1 {
{ public static void main(String[] args){
public static void main(String[] args) System.out.println(“Block Syles”);
{ }
System.out.println(“Block Syles”); }
}
}
7.)Error/Kesalahan Program
Kesalahan program'dapat dikategorikan menjadi tiga tipe:
1. Syntax)Errors)(Kesalahan Sintaks)
2. Runtime)Errors)(Kesalahan Runtime)
3. Logic)Errors)(Kesalahan Logika)
Syntax)Error
• Error'dapat dideteksi dari compiler'yang'disebut dengan syntax'errors'atau
compile'errors
• Systax error'berupa kesalahan dalam membuat kode,'seperti salah ketik,'
kurang tanda baca,'atau membuka kurung tanpa menutup kurung.
Hasil menunjukkan empat kesalahan,'
// ShowSyntaxErrors.java
padahal sebenarnya hanya dua error:
public class ShowSyntaxErrors { Z Keyword'void'tidak ditemukan
public static main(String[] args){ sebelum main
System.out.println(“Halo Java);
}
Z String' Halo'Java'seharusnya ditutup
} dengan tanda “
Runtime)Error
• Error'yang'menyebabkan program'terminate'secara tidak normal
• Contoh:'pembagian dengan nol.
// ShowRuntimeErrors.java
Logic)Error
• Error'terjadi ketika program'tidak dapat menjalankan sesuai cara
• Contoh:'
// ShowLogicErrors.java
Kesalahan Umum :)
public class Welcome{
} Harus ditutup dengan kurung kurawal tutup
Rangkuman
Latihan
• Buatlah'program'[aplikasi]'java'untuk'mencetak':'Hello'
Yogyakarta!!
• Lakukan'kompilasi'dengan'javac.exe
• Lakukan'eksekusi'dengan'java.exe
• Ubahlah'program'menjadi'applet'dengan'tulisan'diganti'berwarna'
hijau'ukuran'28.'Definisikan'file'HTML'yang'digunakan'untuk'
eksekusi'applet
• Lakukan'eksekusi'dengan'appletviewer'dan'IE
• Selamat'mencoba'…
KENDALI(PROGRAM,(PERULANGAN,(DAN(ARRAY
Dosen:
Erma+Susanti,+S.Kom,+M.Cs
Tujuan
Pokok bahasan
Dalam+modul+ini+akan+diuraikan+beberapa+topik+bahasan+yaitu+:
1) Statemen+if+..+dan+if+..+else,+block+program+:+{..}
2) statemen+switch+..+case ..+break
3) loop+for dan+while
4) konsep+array+
ALGORITMA
! Permasalahan komputasi dapat diselesaikan dengan mengeksekusi
serangkaian tindakan dalam urutan tertentu.
! Prosedur untuk penyelesaian permasalahan terdiri dari:
! Tindakan untuk dieksekusi
! Urutan dalam mengeksekusi tindakan tersebut
! Prosedur inilah disebut dengan algoritma
! Urutan tertentu eksekusi tindakan dalam program+disebut dengan kendali
program+(program2control)
PENYELEKSIAN)KONDISI:)IF
! Program+menggunakan statemen penyeleksian untuk memilih alternatif
tindakan.+
! contoh pseudocode:
Jika nilai mahasiswa lebih dari atau sama dengan 60
cetak “Lulus”
! maka jika ditulis menjadi:
if (nilaiMhs >=60)
System.out.println(“Lulus”)
PENYELEKSIAN)KONDISI:)
IF…ELSE
! Jika kondisi bernilai benar maka statemen dijalankan,+jika tidak maka
tindakan lain+yang+dijalankan.+
! contoh pseudocode:
Jika nilai mahasiswa lebih dari atau sama dengan 60
cetak “Lulus”
Jika tidak
cetak “Gagal”
! maka jika ditulis menjadi:
if (nilaiMhs >=60)
System.out.println(“Lulus”);
else
System.out.println(“Gagal”);
PENYELEKSIAN)KONDISI)BERSARANG):)
NESTED)IF…ELSE
! Program+dapat menempatkan if…else+ke dalam if…else+untuk membuat if…else+
bersarang.+
! contoh pseudocode:
Jika nilai mahasiswa lebih dari atau sama dengan 90
cetak “A” if (nilaiMhs >=90)
System.out.println(“A”);
Jika nilai mahasiswa lebih dari atau sama dengan 80 else if (nilaiMhs >=80)
System.out.println(“B”);
cetak “B” else if (nilaiMhs >=70)
Jika nilai mahasiswa lebih dari atau sama dengan 70 System.out.println(“C”);
else if (nilaiMhs >=60)
cetak “C” System.out.println(“D”);
else
Jika nilai mahasiswa lebih dari atau sama dengan 602 System.out.println(“E”);
cetak “D”
Jika tidak
cetak “Gagal”
Contoh Program
public class Sales
{ public static void main(String[] args)
{
String NAMA,PESAN;
double JUAL,BONUS;
NAMA=“BAMBANG”;
JUAL=99000;
if (JUAL>100000)
{BONUS=0.1*JUAL; PESAN="SELAMAT !!";}
else
{BONUS=0; PESAN="ANDA HARUS LEBIH GIAT LAGI";};
System.out.println("Saudara "+NAMA );
System.out.println("Bonus Anda sebesar : "+BONUS );
System.out.println(PESAN);
} Saudara+BAMBANG
} Bonus+Anda+ sebesar+:+0+
ANDA+HARUS+LEBIH+GIAT+LAGI+
Contoh program
• Program+menentukan nilai A,B,C,D,E+
class NilaiHuruf
{ int nilai=75; char Huruf;
public static void main (String [] arg)
{if (nilai<40)Huruf=‘E’;
else if (nilai<55) Huruf=‘D’;
else if (nilai<70) Huruf = ‘C’;
else if (nilai <80) Huruf=‘B’;
else Huruf=‘A’;
System.out.println (“Nilai angka = “+nilai+” Huruf :
“+Huruf);
} // akhir main
} //akhir definisi class
Hasil+program+ :
Nilai+angka+=+75+Huruf+ :+B
switch)..)case)..)break)
Sintaks:
switch ( variabelSeleksi)
{ case nilai1: Jika+variabelSeleksi+nilainya+sama+
{statemen1; dengan+nilai1+maka+statemen1+
.... dijalankan
[break;]}
case nilai2:
Jika+nilainya+sama+dengan+ nila2+maka+
{ statemen2 statemen2+dijalankan
.... Jika+statemen+break+ditemukan+maka+
[break;]} kontrol+ program+ akan+keluar+dari+
[default :] switch
{statemen_n;
...
[break;] }
}
Edit+program+dengan+editor+
teks+
TextaPad+:
Compilasi+dengan+javac.exe
Eksekusi++dengan
java.exe
Pembahasan break))
2.)Perulangan Proses
• Perulangan Proses
• While
• Do+…+while
• For
• Berkaitan dengan pengulangan proses,+Java+menyediakan pernyataan break+
(untuk mengakhiri pengulangan)+dan continue+(untuk melakukan
pengulangan kembali)
salah
kondisi
benar
Ke pernyataan
blok pernyataan sesudah pernyataan
while
Pernyataan for
• Pernyataan for+berfungsi untuk menangani pengulangan
for((inisialisasi;(kondisi;(penaikan_penurunan)({
pernyataan_pernyataan
}
• Pada pernyataan ini:
• Bagian inisialisasi digunakan untuk memberikan nilai kepada variabel yang+
digunakan untuk mengontrol pengulangan
• Bagian kondisi digunakan untuk mengontrol pengulangan dilanjutkan atau diakhiri
• Bagian penaikan_penurunan digunakan untuk menaikkan atau menurunkan nilai
variabel pengontrol pengulangan
Perulangan (Looping)
Pada prinsipnya secara logika ada dua macam jenis perulangan (loop),(yaitu :
1.(((((((Perulangan terhingga : yaitu proses(perulangan dimana kendali ulangannya adalah
counter.(Proses(diulang selama nilai counter(bergerak dari nilai awal ke nilai akhir.(
Kendlai loop(ini adalah for dengan syntax(:
Contoh :
for(int i=0; i<5; i++)
System.out.println(i+” “);
Hasil:
0 1 2 3 4
ContohHcontoh loop)for
for(int i=0;i<10;i+=2)
Program+faktorial+n!=1*2*..*n
System.out.print(i+" ");
Hasil(: 0 2 4 6 8
for(int i=10;i>0;i-=3)
System.out.print(i+" ");
Hasil(: 10 7 4 1
Hasil+program+ :
Program(mencari(n(faktorial(:
int f=1;
for(int i=1;i<=n;i++) f *=I;
2.#######Perulangan#tak#hingga#:#yaitu#proses#perulangan#dimana#kendali#
ulangannya#adalah#kondisi.#Proses#diulang#selama#nilai#kondisi#
benar#masih#dipenuhi.#Kendali#loop#ini#adalah#while dengan#syntax#
:
while(kondisi)
{ body of loop}
Contoh :
int n=5;
while(n>0)
{ System.out.println(n+” “); n--;}
Hasil:
5 4 3 2 1
Dalam+body+ of+loop+ while ada+bagian+yang+merubah+ kondisi+ sehingga+ suatu+saat+
kondisi+ itu+menjadi+ tidak+lagi+benar,+ dan+proses+berhenti.
Hasil+programnya:
Pernyataan While
• Pernyataan while+berguna untuk melakukan proses+yang+berulang
while((kondisi)({
blok pernyataan
}
• Dalam hal ini blok pernyataan akan dijalankan secara terusamenerus selama
kondisi bernilai true+(benar)
• Contoh berikut menunjukkan tulisa Java+lima+kali+dengan menggunakan
while
Java
Java
Java
Java
Java
0
2
4
6
8
10
Versi+:+1 Revisi+:+0 Halaman+:+ 24 Dari+:+49
Fakultas :)Teknologi)Industri Pertemuan)Ke :)3)dan)4
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)49
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017H2
perulangan do{)})while(..)
Perulangan#while#juga#dapat#mengambil#bentuk#dimana#pengecekan#
kondisi#dilakukan#setelah#blok#statemen#dieksekusi.#Syntax#adalah#
:
Contoh :
int n=5;
do{System.out.println(n+” “); n--;}
while(n>0;
Hasil:
5 4 3 2 1
Pernyataan do..while
• Pernyataan do..while
menyerupai pernyataan
while blok pernyataan
do({
blok pernyataan
}(while((kondisi);
• Pada pernyataan ini,+
blok pernyataan yang+ kondisi
benar
terdapat dalam
do..while paling+tidak salah
dieksekusi sekali
Ke pernyataan sesudah
pernyataan do+while
while (…) {
if (…)
break;
} //akhir while
pernyataan_x;
Contoh break
Pernyataan Continue
• Pernyataan continue+dimaksudkan untuk mengarahkan eksekusi ke kondisi
pernyataan for,+do..while,+atau while+sehingga kondisi akan dievalusi lagi
3.)Array
Array(adalah sederetan data(atau objek yang(sejenis yang(diakses menggunakan indeks
Indeks dimulai dari 0(sampai nT1,(dimana n(adalah jumlah elemen
Syntax+definisi adalah :
TipeData [] nama_array=new TipeData[n];
Contoh :
int [] b=new int[5];
artinya b+adalah array+of+int dengan cacah maksimal elemen 5
Kedalam+tiapatiap+elemen+b[i]+selanjutnya+
dapat+dimasukkan+ nilai+int+dengan+
berbagai+cara+yang+mungkin
Pengenalan Array
• Varibel array+tunggal dapat mengacu ke koleksi data+yang+besar
• Seringkali kita perlu menyimpan sejumlah besar nilai saat eksekusi program
• Sekali array+dibuat,+maka ukurannya tetap.+Variabel referensi array+
digunakan untuk mengakses elemen dalam array+menggunakan index
• Array+pada Java+adalah objek yang+dapat digunakan untuk menyimpan
sejumlah data.+Elemen yang+disimpan pada array+dapat berupa tipe data+
primitif (misalnya int)+ataupun instan class+(objek)
Membuat Array
• Mendeklarasikan variabel untuk merujuk ke array
• Menciptakan objek array+dan menugaskannya ke variabel yang+
dideklarasikan pada langkah pertama
DEKLARASI)ARRAY
• tipePrimitive namaVariabelArray[];
• namaClass namaVariabelArray[];
• Contoh:+
String[] kota; atau bisa ditulis String kota[];
int[] nilai;
Array)1)Dimensi
• Array+dapat+berupa+ variabel+atau+berupa+konstanta.+
• Array+dapat+berupa+ array+dari+int,+long,+ float,+String+ atau+bahkan+objek
• Definisi+array+1+dimensi+ untuk+konstanta+:
int [ ] b ={ 12,10,5,3} ;+
adalah+mendifinisikan+ array+1+dimensi+ dari+int+yang+berelemen+data+12,10,+ 5+dan+3+
seperti+gambar+berikut
Contoh(definisi(konstanta(String:
String [ ] s
={“Joko”,”Budi”,’Yeni”,”Nino”}
Contoh program)array)1)dimensi
• Program+
mendefinisikan+array+
berisi+nama+dan+
umur
• Hasil+program+:
Contoh Array
1. public class ContohArray {
2. //main method
3. public static void main(String[] args) {
4. String[] kota;
5. kota = new String[5];
6.
7. //mengisi elemen array
8. kota[0] = “Jakarta”;
9. kota[1] = “Bandung”;
10. kota[2] = “Semarang”;
11. kota[3] = “Medan”;
12. kota[4] = “Yogyakarta”;
13.
14. //menampilkan elemen array
15. System.out.println(kota[0]);
16. System.out.println(kota[1]);
Jakarta
17. System.out.println(kota[2]); Bandung
18. System.out.println(kota[3]); Semarang
19. System.out.println(kota[4]); Medan
20. }
21. } Yogyakarta
Array)2)dimensi (matrik))
• Array+2+dimensi+didefinsikan+dengan+:+
• TipeData+[+][+]+namaArray=new+TipeData[n][m]
mendefinisikan+array+2+dim+n+baris+m+kolom
• Contoh :
int [][]b= new int[3][4];
Mendifinisikan+array+int+3+baris+4+kolom
Contoh(:(constanta(array(String(2(dimensi(
String[][] Kata={ {"ONE",
"SATU"},{"COW", "SAPI"},{"RUN",
"LARI"},{"RED","MERAH"},{"MAN",
"ORANG"}};
Array)Multidimensi
• Java+mendukung array+multidimensi melalui pendekatan “array+dari array”
• Contoh:+int[][] piksel = new int[5][3];
• Merupakan implementasi array+berdimensi dua
1. public class ArrayDimensiDua{
2. //main method
3. public static void main(String[] args) {
4. int[][] piksel = new int[5][3];
5.
6. //mengisi elemen tertentu
7. piksel[0][1] = 70;
8. piksel[1][1] = 18;
9. piksel[1][2] = 45;
10. piksel[2][1] = 75;
11. piksel[3][1] = 66;
12. piksel[4][0] = 89;
13.
14. //menampilkan elemen array
15. int i, j;
16. for (i = 0; i<5; i++) {
17. for (j = 0; j <3; j++)
18. System.out.print(piksel[i][j] + “ “);
19. System.out.println(“ “); //pindah baris
20. }
21. }
22. }
Hasil program)kamus
• Hasil+kamus+jika+diinputkan+ kata+dengan+
huruf+ kecil+ternyata+hasilnya+masih+:
KATA+TERSEBUT+TIDAK+ADA
• Hal+ini+karena+pencocokan+string+adalah+
apa+adanya+dengan+ yang+ada+dalam+
array
• Untuk+mengatasi+itu+pencocokan+dapat+
dilakukan+dengan+masingamasing+ string+
dirubah+ menjadi+ huruf+ kecil+semua
Rangkuman
• Perulangan+terdiri+dari+dua+jenis+:+terhingga+dan+takhingga
• Perluangan+jenis+terhingga+dikendalikan+dengan+for
• Perulangan+jenis+tak+hingga+menggunakan+kendali+while
• Kondisi+umum+mengggunakan+kendali+if
• Kondisi+untuk+data+data+diskrit+menggunakan+kendali+switch
• Data+sejenis+yang+berjumlah+banyak+dan+akan+diases+secara+massal+dapat+
disimpan+dalam+array
• Array+untuk+satu+deretan+data+disebut+dengan+array+1+dimensi+:+didefinisikan+
dengan+Tipe_Data+[+]+NamVar=new+Tipe_data[ukuran]
• Array+dua+dimensi+didefinisikan+dengan
Tipe_Data+[+]+[+]NamVar=new+Tipe_data[ukuran][+ukuran+]
Latihan
• Ubahlah+program+Kamus+seperti+yang+dijelaskan+dalam+contoh+menjadi+
program+kamus+yang+dapat+dieksekusi+terus+tanapa+setiap+kali+eksekusi+harus+
dengan+>+java+Kamus,+tetapi+dialognya
>java+Kamus+<enter>
Ketik+kata+inggris+:+COW+<enter>
KATA+INDONESIA+=+SAPI
Mau+main+lagi+<Y/T>+?:
Jika+dijawab+Y+atau+y+maka+akan+ditanya+lagi+kata+inggris+,+jika+dijawab+T+atau++t+
program+selesai.
• Program+juga+harus+dapat+menerima+input+dalam+huruf+kecil+dengan+jawaban+
yang+benar.
CASTING(DATA
Dosen:
Erma+Susanti,+S.Kom,+M.Cs
Tujuan
Pokok bahasan
Dalam modul ini akan diuraikan beberapa topik bahasan yaitu :
1) Pengertian casting+data
2) Casting+tipe data+primitive
3) Casting+objek
4) Pernyataan instaceof
Pengertian Casting)Data
! Casting+data+adalah kebutuhan untuk menyesuaikan tipe data+yang+berbeda
pada saat berhubungan dengan operasi data,+fungsi atau penugasan ke
dalam variabel
! Contoh berikut adalah statemen yang+bermasalah karena statemen b+=+a+
telah menugasi variabel b+(bertipe byte)+dengan isi nilai variabel a+(bertipe
int):
int a = 10;
byte b = a;
! Statemen tersebut akan menimbulkan error+pada saat dikompilasi
found : int
required: byte
byte b = a;
1 error
Casting)Data
! Misal kita memiliki definisi fungsi atau method:
public void hitung (int n)
{ …
}
! Ini tidak dapat dipanggil misalnya dalam statemen berikut:
byte m = 20;
hitung(m)
! Karena tidak kompatibel nilai m+yang+bertipe byte+dengan nilai n+yang+
bertipe int dalam definisi fungsi
Casting)Data
(tipedata)variabel
Contoh:
int a+=+10;
byte+b+=+5;
b+=+(byte)+a;
Casting)Tipe Data)Primitive
! Yang+termasuk tipe data+primitive+ adalah byte,+short,+ int,+long,+ float,+double,+ char,+String+
dan boolean
! Casting+tipe data+primitive+biasa dilakukan untuk konversi bilangan apabila tipe bilangan
yang+berbeda akan dipertukarkan
! Dalam java+dikenal istilah:
! Implisit casting:+dilakukan otomatis oleh program+jika berkaitan dengan penugasan tipe lebih sempit
ditugaskan kepada tipe yang+lebih luas
byte a = 10;
int b = a;
class p02 {
public static void main (String[] args) {
byte a=25;
int b = a;
System.out.println(“a = “+a+” b = “+b);
}
}
Hasil program+adalah:+a+=+25+b+=+25+
dalam hal ini cakupan tipe int lebih luas dari tipe byte,+sehingga automatic+casting+akan dilakukan java
Casting)Tipe Data)Primitive
! Eksplisit casting:+bila tipe yang+lebih sempit diUassign+ke tipe yang+lebih luas makan
diperlukan eksplisit casting
class p02 {
public static void main (String[] args) {
int a=25;
byte b = (byte) a;
System.out.println(“a = “+a+” b = “+b);
}
}
Hasil program+ adalah:+a+=+25+b+=+25+
Karena variabel a+yang+bertipe int lebih luas cakupannya daripada varibel b+yang+
bertipe b+maka diperlukan explicit+casting+yaitu
byte b = (byte) a;
Casting)Objek
! Casting+objek sering dilakukan karena objekUobjek yang+berasal dari silsilah
kelas mungkin akan dipertukarkan referensinya
! Contoh automatic+casting+dari objek staff+dari kelas Employee+dan objek
boss+dari kelas Manager
//casting objek otomatis
class co1 {
public static void main (String [] arg){
Employee staff = new Manager(“JON”, 1000, “Yuliet”);
Manager boss = new Manager(“Mr.Big”,5555,”Miss Jane”);
staff=boss;
staff.Print();
boss.Print();
}
}
Casting)Objek
class Employee {
public Employee(String s, float n) { name=s; salary = n;};
public void Print() {
System.out.println(“My name is : “+name+” My salary is : “+salary);
}
private String name;
private float salary;
}
class Manager extends Employee {
public Manager(String s1, int n, String s2) {
super(s1, n); secname=s2;
}
public void Print() {
super.Print();
System.out.println(“My secretary : “+secname);
}
private String secname;
}
Hasil automatic)casting
My+name+is+:+Mr.+Big+My+salary+is+:+5555.0
My+secretary+:+Miss+Jane
My+name+is+:+Mr.+Big+My+salary+is+:+5555.0
My+secretary+:+Miss+Jane
Pernyataan instanceof
! Pernyataan instanceof digunakan untuk mengecek apakah objek tertentu berasal dari kelas
tertentu
! Pernyataan akan bernilai true+apabila objek adalah instance+dari kelas tertentu atau superclassnya
class co1 {
public static void main (String[] args) {
Employee staff = new Employee(“JON”, 1000);
Manager boss = new Manager(“Mr.Big”,5555,”Miss Jane”);
Pernyataan instanceof
! Hasil ini menunjukka bahwa instanceof akan bernilai true+jika objek adalah
instance+dari class+tersebut atau superclassnya
! Pernyataan ini dapat digunakan untuk memastikan dan menghindari
kesalahan dalam casting:
Latihan
! Perhatikan program+berikut
class p15 {
public static void main (String[] args) {
int a = 5;
float b = 1.2;
double c = 10.8;
float d = a*(b+c);
int e = (a*b/(251));
System.out.println(“a = “+a+” b = “+b+” c =
“+c+” d = “+d);
}
}
Bagaimana jika dicompile?+Kenapa terjadi error?+jelaskan
CLASS,&OBJECT,&VARIABEL,&DAN&OPERATOR
Dosen:
Erma+Susanti,+S.Kom,+M.Cs
Tujuan
Setelah mengikuti mata kuliah ini mahasiswa dapat:
! Mendefinisikan class+java
! Mendefinisikan object
! Menggunakan modifier
! Membuat program+menggunakan data+dan variabel
Pokok Bahasan
Dalam modul ini akan diuraikan beberapa topik bahasan yaitu :
1. Pengertian class+dan objek :
2. Modifier+:+public,+static
3. Data+primitive+JAVA,+operator+dan Konsep encapsulation
4. String+sebagai sebuah class+
Definisi class)Dog)
class Dog
{private String nama=“Noname”;
private int umur =0;
public Dog(String nm, int um){nama=nm; umur=um;}
public void bark()
{System.out.println(“Gug..gug..!”);}
public void sayHello()
{System.out.println(“Hello my name is “+nama+” I’m
a “+umur+” years old”);
}
}
Membuat instant)(objek)
Membuat+objek+pada+dasarnya+sama+dengan+mendefinisikan+data+dan+mengisi+
nilai+datanya.
Contoh :+
Mendifinisikan+data+:
String nama;
Mendefinisikan+data+sekaligus+mengisi+data+:
String nama=“Heli”;
Mendefinisikan+objek+:+(nama+objek+adalah+myDog,+merupakan+objek+dari+class+
Dog)+
Dog myDog;
Mendefinisikan+objek+sekalligus+menginisialisasi+nilai+objek.
Dog myDog = new Dog(“Heli”, 3);
Parameter+ Parameter+
nama umur
Versi+:+1 Revisi+:+0 Halaman+:+ 6 Dari+:+47
Fakultas :)Teknologi)Industri Pertemuan)Ke :)6
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)47
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017K2
Selanjutnya
• Setelah+selesai+edit+disimpan+ dalam+file+:DogRUn.java
• Saat+dikompilasi+ dengan+ :
• >javac+DogRun.java
• Akan+terbentuk+ dua+file+class,+yiatu+:DogRun.class+dan+Dog.class
• Saat+dieksekusi+ dengan+:
• >java+DogRun,+ hasilnya+sbb:
Template)Class
Class:+Lingkaran
Template+Class
Field+Data:
Jejari _____
Method:
getLuas
getKeliling
setJejari
class Lingkaran {
Struktur Class
double radius = 1; Field+Data
Lingkaran() { } // konstuktor objek lingkaran
Class)Diagram)UML
Lingkaran Class
jejari:+double Field+Data
Lingkaran()
Lingkaran(newJejari: double)
getLuas():+double Konstruktor dan Method
getKeliling():+double
setJejari(newJejari:+double):+void
Definisi Method
methodName(parameterName:+parameterType):+returnType
Contoh Program:)TesLingkaran.java
1. public class TesLingkaran {
2. //main method
3. public static void main(String[] args) {
4. //membuat lingkaran dengan jejari 1
5. Lingkaran lingkaran1 = new Lingkaran();
6. System.out.println(“Luas lingkaran dengan jejari: “+lingkaran1.jejari
7. +” adalah “ + lingkaran1.getLuas());
8.
9. //membuat lingkaran dengan jejari 25
10. Lingkaran lingkaran2 = new Lingkaran(25);
11. System.out.println(“Luas lingkaran dengan jejari: “+lingkaran2.jejari
12. +” adalah “ + lingkaran2.getLuas());
13.
14. //membuat lingkaran dengan jejari 125
15. Lingkaran lingkaran3 = new Lingkaran(225);
16. System.out.println(“Luas lingkaran dengan jejari: “+lingkaran3.jejari
17. +” adalah “ + lingkaran3.getLuas());
18.
19. //memodifikasi jejari lingkungan
20. lingkaran2.jejari = 100;
21. System.out.println(“Luas lingkaran dengan jejari: “+lingkaran2.jejari
22. +” adalah “ + lingkaran2.getLuas());
23. } }
Lanjutan program)TesLingkaran.java
24. Class Lingkaran {
25. double jejari;
26.
27. //konstruktor lingkaran dengan jejari 1
28. //konstruktor tanpa argumen Luas lingkaran dengan jejari 1.0+adalah 3.141592653589793+
29. Lingkaran() { Luas lingkaran dengan jejari 25.0+adalah 1963.4954084936207+
30. jejari = 1; Luas lingkaran dengan jejari 125.0+ adalah 49087.385212340516+
31. } Luas lingkaran dengan jejari 100.0+ adalah 31415.926535897932+
32.
33. //konstruktor lingkaran dengan jejari tertentu
34. Lingkaran(double newJejari) {
35. jejari = newJejari;
36. }
37.
38. //method mengembalikan luas lingkaran
39. double getLuas() {
40. return jejari * jejari * Math.PI;
41. }
42.
43. //method mengembalikan keliling lingkaran
44. double getKeliling() {
45. return 2 * jejari * Math.PI;
46. }
47.
48. //method mengatur jejari baru lingkaran
49. void setJejari(double newRadius) {
50. jejari = newJejari;
51. }
52. }
Versi+:+1 Revisi+:+0 Halaman+:+ 18 Dari+:+47
Fakultas :)Teknologi)Industri Pertemuan)Ke :)6
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)47
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017K2
Konstruktor (Constructor)
• Konstruktor dipanggil untuk membuat objek menggunakan operator+new
• Konstruktor adalah termasuk jenis method
• Konstruktor harus mempunyai nama yang+sama dengan nama class
• Konstruktor tidak mengembalikan tipe – tanpa void
• Konstruktor dipanggil menggunakan operator+new+saat objek dibuat.
• Kesalahan dalam penulisan konstruktor:+didepannya diberi kata+kunci void
public+ void Lingkaran()+{
}
Lingkaran()+adalah method,+bukan konstruktor
• Konstruktor digunakan untuk membangun objek.+Untuk membangun objek
dari class,+panggil konstruktor class+dengan menggunakan operator+new
new NamaClass (argumen)
Konstruktor (Constructor)
• Construktor+ adalah+jenis+metod+yang+akan+otomatis+dipanggil+ jika+suatu+objek+dibuat
• Construktor+ didefinisikan+ secara+public+ dan+namanya+sama+dengan+nama+classnya
• Construktor+ dapat+didefinisikan+ lebih+dari+satu+definisi+
• Contoh+:+untuk+ Dog+ditambah+definisi+ construktor+ tanpa+parameter,+menjadi+ :
public Dog( ) { }
public Dog(String nm, int um){nama=nm; umur=um;}
new+Lingkaran();
atau
System.out.println(“Luas adalah “++new+Lingkaran(5).getLuas());
class Mahasiswa {
String nama; //nama memiliki nilai default null
int umur; //umur mempunyai default nilai 0
boolean jurSains; //jurSains mempunyai default nilai false
char gender; //gender mempunyai default nilai ‘\u0000’
}
class Test{
public static void main (String [] args) {
Mahasiswa mhs = new Mahasiswa();
System.out.println(“nama: “+mhs.nama);
System.out.println(“umur: “+mhs.umur);
System.out.println(“apakah jurusan Sains: “+jurSains);
System.out.println(“gender: “+mhs.gender);
}
}
class Test{
public static void main (String [] args) {
int x; //x tidak memiliki nilai default
String y; //y tidak memiliki nilai default
System.out.println(“x: “+x);
System.out.println(“y: “+y);
}
}
NullPointerException
java.util.Date date+=+new&java.util.Date();+
System.out.println("The& elapsed&time&since&Jan&1,&1970&is&"&++
date.getTime()+++"&milliseconds");+
System.out.println(date.toString());+
2.+Class+Random
• Math.random()+digunakan untuk mendapatkan nilai double+random+
diantara 0.0+dan 1.0.+Cara+lain+untuk mengenerate nilai random+(acak)+
adalah menggunakan class+java.util.Random
Random+random1+ =+new&Random(3);+
System.out.print("From&random1:&");
for&(int i =+0;+i <+10;+i++)+
System.out.print(random1.nextInt(1000)+ ++"&");+
Random+random2+ =+new&Random(3);+
System.out.print("\nFrom random2:&");+
for&(int i =+0;+i <+10;+i++)+
System.out.print(random2.nextInt(1000)+ ++"&");+
Dari random1: 734 660 210 581 128 202 549 564 459 961
Dari random2: 734 660 210 581 128 202 549 564 459 961
Versi+:+1 Revisi+:+0 Halaman+:+ 27 Dari+:+47
Fakultas :)Teknologi)Industri Pertemuan)Ke :)6
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)47
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017K2
Static)Variabel,)Konstanta,)dan Method
• Static+variabel adalah berbagai dengan semua objek dari class
• Static+method+tidak dapat mengakses anggota instance+dari class
• Contoh:+field+data+jejari dalam class+lingkaran diketahui sebagai instance+
variabel.+
Lingkaran lingkaran1+=+new+Lingkaran();
Lingkaran lingakaran2+=+new+Lingkaran(5);
//deklarasi static&variabel
static&int numberOfObjects;+
//deklarasi static+method
static&int getNumberObjects()+ {+return&
numberOfObjects;+
}+
Deklarasi Konstanta
• Konstanta adalah class+yang+dibagi oleh semua objek dari class
• Konstanta harus dideklarasikan sebagai final+static
final&static&double&PI+=+3.14159265358979323846;
2.)Modifier
• public dapat digunakan untuk modifier+dari class,+method+dan field+data+
untuk menunjukkan dapat diakses dari class+lain
• Jika tanpa modifier+maka default+class,+method,+dan field+data+dapat
diakses oleh class+pada package+yang+sama.+Ini disebut sebagai packagee
private+atau package+access.
• private modifier+membuat method+dan field+data+dapat diakses hanya dari
kelas itu sendiri
package&packageName;
Modifier)public) ,)void,)static,)private
• Modifier+ public :
• Pada definisi class,+merupakan class+ yang+memuat metod main(),+dan nama file+ disimpan dengan
nama class+public
• Pada definisi metod,+bermakna bahwa metod tersebut dapat diases dari luar class+yang+
bersangkutan
• Pada definisi data,+bermakna data+tersebut dapat diases dari luar class
• Modifier+ void pada metod:+berarti Metod tersebut tidak ada return+valuenya
• Modifier+ static pada metod :+berarti metod tersebut dapat dipanggil hanya dari dalam
class+yang+sama
• Modifier+ private pada data+:+berarti data+hanya dapat diases dari class+yang+sama
• Modifier+ protected paad metod :+dapat diases dari class+turunannya
Enkapsulasi Field)Data)
• Membuat field+data+private+untuk melindungi data+dan membuat class+
mudah untuk diatur
public+ class+LingkaranDenganPrivatData {
private+double+ jejari =+1; Enkapsulasi jejari
public+ LingkaranDenganPrivatData()+{
numberOfObjects++;
}
Enkapsulasi Field)Data)
• Membuat field+data+private+untuk melindungi data+dan membuat class+
mudah untuk diatur
Referensi this
• Keyword+this+mengacu kepada objek itu sendiri
• This+juga dapat digunakan di+dalam konstruktor untuk memanggil
konstruktor lain+pada class+yang+sama
• This+dapat digunakan untuk mengacu kepada object+anggota instance
• Contoh:+this+mengacu kepada objek jejari dan memanggil method+getLuas()
public&class&Circle+{+ public&class&Circle+{+
private&double&radius;+ private&double&radius;+
...& ...&
public&double&getArea()+{ public&double&getArea()+{
return&this.radius *&this.radius *+ return&this.radius *&this.radius *+
Math.PI;+}+ Math.PI;+}+
public&String&toString()+ { public&String&toString()+ {
return&"radius:&"&+&this.radius return&"radius:&"&+&this.radius
+&"area:&"&+&this.getArea()+;+ +&"area:&"&+&this.getArea()+ ;+
}+ }+
}+ }+
Ekuivalen
Versi+:+1 Revisi+:+0 Halaman+:+ 34 Dari+:+47
Fakultas :)Teknologi)Industri Pertemuan)Ke :)6
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)47
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017K2
public&class&Circle+{+
private&double&radius;+
public&Circle(double&radius)+{+
this.radius =+radius;+
}+
public&Circle()+{+
this(1.0);+
}+
...&
}+
3.)Data)primitive)dan operator
Data&primitive&:&Data]data&dasar&java,&yang&hampir&sama&dengan&C++
Data&Integer&:
• int 4+byte kisaran+nilai+:e2.147.486.648+s/d+2.147.486.647
• short 2+byte kisaran+nilai+:e32.768+s/d+32.767
• long 8+byte kisaran+nilai+:e9.223.372.036.854.775.808L+s/d
9.223.372.036.854.775.807L
• byte 1+byte kisaran+nilai+:e128+s/d+127
Data&floating&point&:
• float 4+byte kisaran+nilai+:+3.40282347E+38F++(7+digit+ignifikan)
• double 8+byte kisaran+nilai+:+1.79769313486231570E+308+++(15+
digit++signifikan)
karakter&dan&boolean&
• char 1+byte 1+karakter
• boolean bernilai+true,+false
Operator
Operator&aritmatik&:
• +,++e ,++*+++dan+/++untuk+:+penambahan,+ +pengurangan,+ +perkalian+dan++pembagian
• +=++,+yakni+:+x+=4++ekivalen+dengan+operasi+:+x=x+4
• e=++;++*=++dan++/=++memiliki+ ekivalensi+yang+sama+dengan+e=+
• ++++yaitu+:+n++++ekivalen+dengan+n=n+1+ (increment by one)
• ee yaitu+:+nee ekivalen+dengan+ n=ne1+(decrement$by$one)
• %++untuk+ MODULO,+yaitu+:+5+%+3+sama+dengan+ 2
Operator&relational&dan&logika
• <+,+>+,+<=+dan+>=++adalah+:+lebih+kecil,+lebih+ besar,+lebih+kecil+atau+sama+dan+lebih+besa+
atau+sama
• == untuk+ SAMA+DENGAN
• !=+ untuk+ TIDAK+SAMA+DENGAN
• &&+ untuk+ operator+AND
• ||+++ untuk+ operator+OR
Output)program):
a+=+0
b+=+0.333333
c+=+0.333333
d+=+JON+SHOLEH
d.length()+=+10
d.substring(0,3)+=JON
Encapsulation
• Encapsulation:+konsep dalam OOP+yang+bertujuan membungkus (mangekapsul)+data+dan metode
dalam suatu class+sehingga data+dan metode yang+tersembunyi dalam class+tidak dapat diases dari luar
class.+
• Encapsulation+direalisir dengan modifier+:+private
• Data+yang+dapat diases dari luar diberi modifier+dengan public
Contoh :
class Dataku
{ public int N_umum=0;
private int N_khusus=0;
public void Cetak1(){System.out.println("N_umum="+N_umum);}
public void setN_Khusus(int n){N_khusus=n;}
public void Cetak2() {System.out.println("N_khusus="+N_khusus);}
}
Akses data)public
Jika&di&program&utama&:&dituliskan&Dt.N_khusus&=&78;&maka&hasilnya&:
Mengases+data+private :+
Terjadi+error+saat+
kompilasi
Mengakses data)private
• Jika suatu data+dideklarasikan secara private+biasanya disediakan mekanisme
metode public+ untuk mengaksesnya
• Metode akses public+itu umumnya didefinisikan dengan set(). Dalam contoh
diatas jika nilai N_khusus akan diubah digunakan setN_khusus(n)
• Contoh :
• Program+diubah menjadi : hasil program+:
4.)String)sebagai class
• String+merupakan nama khusus class+java+yang+masih mempertahankan
kompatibilitas dengan tipe data+primitif yang+lama+sebagaimana int,+long,+float+
dan lainelain
• Definisi string+dapat digunakan cara luwes,+seperti deklarasi data+primitif atau
seperti deklarasi poembuatan objek string.
Contoh :
Deklarasi seperti data+primitive
int n=10; String s=“JOKO”;
Hasil+nya+sama
Deklarasi seperti membuat objek :
String s= new String(“JOKO”);
Contoh&program:
b+=+array+of+byte
c+=+array+of+char
Hasil+program+
Rangkuman
1. Class+adalah+frame+dari+suatu+data+yang+berisi+ definisi+data,+dan+metod+pengolah+
data
2. Objek+adalah+bentuk+ konkrit+ dari+data+dimana+ia+didefinisikan+ untuk+ mengisi+
data,+mengaktifkan+metod+ dan+operasi+data+sebanarnya
3. Operasi+data+java+hampir+semua+sama+dengan+operasi+data+dalam+C++
4. Dalam+definisi+ metod+ada+metod+khusus+ yang+otomatis+dipanggil+ yaitu+
construktor
5. Konsep+ OOP+yang+disebut+ encaptulation+ memungkinkan+ programmer+
menyembunyikan+ data+yang+tidak+diperlukan+ dengan+mendefinisikan+ secara+
private
6. Data+dan+metod+yang+berkomunikasi+ keluar+didefinisikan+ secara+publik
Latihan
1. Buatlah+definisi+ class+Motor,+ yang+memiliki+data+:+nama+(String)+ ,+status+(boolean)
memiliki+ metod+:+tampilkan()+:+mencetak+keterangan+nama+keadaan+motor+
(status+mati+/hidup)+
memiliki+ metod+:+nyalakan()+:berfungsi+ meneset+status+dari+mati+(false)+menjadi+
hidup+ (true).+ Jika+status+sudah+hidup+ dan++dipanggil+ metod+nyalakan(),+maka+akan+
ada+komentar+“Mesin+sudah+hidup”,+ jika+mesin+belum+ hidup+ dan+meetod+
nyalakan()+dipanggil+ maka+status+diubah+menjadi+ true.+
MENDALAMI(CLASS,(OBJECT(DAN(METHOD
Dosen:
Erma+Susanti,+S.Kom,+M.Cs
Tujuan
Setelah mengikuti mata kuliah ini mahasiswa dapat :
Pokok Bahasan
Dalam+modul+ini+akan+diuraikan+beberapa+topik+bahasan+yaitu+:
1. Sekali+lagi+:Class+dan+objek
2. Mendefinisikan+data+dan+method+
3. Modifier+untuk+class+dan+method+:public,+static,+protected,+final
1.)Mendalami Class
Telah(diuraikan(dalam(Modul(2(bahwa(:
• Class :+suatu+frame+yang+merupakan++definisi+yang+memuat+data+dan+metod+pengolah+
data
• Objek :+Bentuk+konkrit+dari+class+yang+dengannya+data+dan+metod+dapat+direalisasikan
Dalam(program(class(java(dibagi(menjadi(:
• Class+yang+didalamnya+terdefinisi+method+main().+Class+seperti+ini+bahwa+jika+beberapa+
class+didefinisikan+dalam+file+yang+sama,+maka+nama+file+disimpan+dalam+nama+sesuai+
nama+class+yang+berisi+main+tersebut.
• Class+yang+didalamnya+tidak+terdapat+metod+main().+Class+ini+murni+berisi+
encaptulation+dari+definisi+data+dimana+didalamnya+terdapat+data+dan+method+
pengolah+datanya.+
• Pendefinisian+class+dan+pembuatan+objek+juga+dapat+dilakukan+dalam+class+yang+sama+
sehingga+bersifat+rekursif.
Menciptakan Kelas
! Kelas pada didefinisikan dengan menggunakan kata+kunci class
! berikut contoh kelas bernama Mobil
! warna dan tahunProduksi disebut instance(variable(atau field
1. class Mobil
2. {
3. String warna;
4. int tahunProduksi;
5. }
Disini+class+Dog+
dalam+main+adalah+
rekursif
Hasil program
Mendefinisikan+method+
sesungguhnya+mirip+
dengan+mendefinisikan+
fungsi+pada+model+
perosedural
Metod+dalam+OOP+
merupakan+bagian+
terpenting+yang+harus+
dikuasai+seluk+beluknya
Mendefinisikan(data(
• Sesuai+dengan+ide+encaptulation,+data+dalam+suatu+class+sebaiknya+didefinisikan+
secara+private, agar+ia+lebih+aman+dari+ases+luar+class.+Jika+tidak+terpaksa+pada+
data+:+berarti++data+hanya+dapat+diases+dari+class+yang+sama+
• Default+dari+definisi+data+adalah+public,+artinya+jika+kita+tidak+memberi+
keterangan+apaUapa+pada+data+maka+data+tersebut+adlah+public.
• Contoh+definisi+:
int a =9; int b=77;
definisi+ini+adalah+berarti+a+dan+b+data+yang+dapat+diases+dari+luar+class+
Perhatikan(contoh(berikut:
Kata)Kunci this
! Kata+kunci this+dipergunakan pada pembuatan kelas dan
digunakan untuk menyatakan objek sekarang
1. class Mobil
2. {
3. //variabel instan
4. String warna;
5. int tahunProduksi;
6.
7. //metode
8. void isiData (String warnaMobil, int tahunProduksiMobil){
9. warna = warnaMobil;
10. tahunProduksi = tahunProduksiMobil;
11. }
1. //metode
2. void isiData (String warna, int tahunProduksi){
3. this.warna = warna;
4. this.tahunProduksi = tahunProduksi;
5. }
Tanpa penentu akses Metode hanya dapat diakses oleh metode dalam
kelas itu sendiri ataupun metode pada kelas lain+yang+
terletak pada paket yang+sama
public Metode hanya dapat diakses oleh sembarang kelas
Metode Kelas
! ada pemanggilan metode dengan bentuk:+
namaKelas.namaMetode()
! dan bukan dalam bentuk:+namaVariabelObjek.namaMetode()
//contoh1
1. public class MetodeKelas {
2. public static void main (String[] args)
3. {
4. double akar = Math.sqrt(25);
5. System.out.println(akar);
//contoh2
6. }
1. class Matematika {
7. }
2. static public double kuadrat (double nilai){
3. return nilai * nilai;
4. }
5. }
INSTANCE)VARIABEL,)set)METHOD)DAN)get)
METHOD
! Pada bagian ini,+akan dibuat dua class+yaitu Account+dan AccountTest
! Class+AccountTest adalah class+aplikasi dimana method+main+akan
diciptakan dan menggunakan object+Account+untuk
mendemonstrasikan kemampuan class+Account.
Data)default)adalah public
• Program+
Hasil+program:
Perhatikan+variabel+P+dan+Q+dalam+definisi+pada+class+Data
Tanpa+keterangan+P,Q+adalah+public
Dari+class+Tes,+nilai+P+dan+Q+dapat+diubah,+perhatikan+hasil+program
Nilai+P+yang+aslinya+9,+dalam+class+Tes+diubah+menjadi+111
Jika(statemen(definisi(data(untuk(P(dan(Q(dibuat(private(:
private int P=9;
private int Q=8;
Maka(pada(saat(kompilasi(akan(gagal(untuk(melakukan(ases(data(private(dari(luar(
class,(seperti(pesan(kesalahn(kompilasi(berikut.(
Data)static
Data(static adalah(data(yang(didefinisikan(untk(dimiliki(oleh(class.(Jika(objek(berasa(
dari(class(yang(sama(maka(data(static(akan(bernilai(sama(untuk(seluruh(objek(
dalam(class(tersebut.(
Hasil+program
Jika+nilai+P+diubah+pada+suatu+objek,+maka+nilai+P+pada+objek+lain+akan+ikut+
berubah.+Pada+objek+b+nilai+P+diubah+menjadi+99,+ternyata+pada+objek+a+
nilai+P+ikut+berubah+menjadi+99
Hasil+program+asal
static+String+nama;
Jika+dalam+deklarasi+nama+diganti+
dengan+static String Nama
Method):
Default)Definisi metod:)public
Definisi(metod(tanpa(modifier(adalah(public(
Contoh :+
class Data Tanpa+modifier+
{ int P=9; berarti+public
int Q=8;
void Tampil(){System.out.println(P+" "+Q);}
}
public class Tes
{ public static void main(String args[])
{Data data=new Data();
data.P=111;
data.Tampil();
}
}
Hasil(program(:
Method)static
Metod(static(adalah(metod(yang(diases(oleh(metod(static(yang(lain
dari(dalam(class(yang(sama
Contoh(:(definisi(fungsi luasLing(float R)
Setelah kata)static)dipasang
Static+
dipasang
Hasil+
program
Kata+private+pada+metod+menunjukkan+bahwa+metod+tersebut+diases+oleh+
metod+dalam+class+yang+sama
Method)protected)
• protected:+menunjukkan+bahwa+metod+tersebut+hanya+dapat+diwarisi+oleh+class+
turunannya.+
• Dalam+pembahasan+akan+diuraikan+dalam+bagian+penurunan+(inheritance)+class+
Class+Anak
public+metod1(){+}
public+metod1(){+}
private+metod2()+{+}
protected+metod3(){+}
protected+metod3(){+}
public+metod1(){+}
Class+Induk
Class+lain
3.)Class)static)
• Jika+suatu+class+didefinisikan+tidak+
untuk+dibuat+objeknya,+tetapi+untuk+
dimanfaatkan+metodUmetodnya+
maka+class+tersebut+adalah+class(
static.+
• Dalam+java+contoh+class+static+adlah+
class+Math,+dimana+metodUmetod+
seperti+random(),+sqrt()+dan+lainUlain+
diambil+dari+class+ini,+tetapi+class++ini+
tidak+pernah+dibuat+objeknya.
• Contoh+:+class Data berikut+adalah+
class+static+dimana+ia+hanya+
digunakan+metodnya,+tidak+dibuat+
objeknya
Class)final
• Jika+suatu+class+didefinisikan+secara+final+maka+class+tersebut+
tidak+dapat+dibuat+turunannya
• Contoh+classUcalass+final+dalam+java+adalah+:
• class+Math
• class+String
• class+Integer,+Long,+Double,+Float
Rangkuman
1. Modifier+private untuk+data+dan+metod+berarti+hanya+dapat+diases+oleh+
metod+dari+class+yang+sama
2. Modifier+public untuk+data+dan+metod+berarti+dapat+diases+dari+luar+class
3. Modifier+public untuk+class+berarti+berisi+main+program+dan+harus+
disimpan+dengan+nama+yang+sma+dengan+nama+class+tersebut
4. Modifier+protected untuk+data+dan+metod+bnerarti+dapat+diwarisi+oleh+
class+turunannya
5. Modifier+static untuk+data+berarti+bernilai+sama+untuk+semua+objek+dari+
class+yang+sama
6. Modifier+static untuk+metod+berarti+dapat+diases+dari+metod+static+yang+
sama+dalam+class
7. Modifier+final+untu+kclass+berarti+tak+dapat+dibuat+turunannya
Latihan
1. Buatlah+definisi+class+MahasiswaTeknik+dan+MahasiswaSastra.
MasingUmasing+class+berisi+data:
JUR+(String,+static)
NIP(int,+private)
Nama(String,+private)
MasingUmasing+class+berisi++metod+:
setNamaNIP(String+n+,int+m)+:+untuk+mengisi+NIP+dan+Nama
setJUR(String+s)+untuk+mengatur+nama++Jurusan
tampilkan()+untuk+menampilkan+data+NIP+NAMA+dan+JURUSAN
2. Buatlah+class+TesMahasiswa+yang+berisi+main+program
3. Buat+objek+MahasiswaTeknik+3+orang+dan+MahasiswaSastra+2+orang
Latihan …
4. Buatlah+tampilkan+daftar+mahasiswa+dengan+tampilan+:
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
No++++NIP NAMA JURUSAN
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
KONSTRUKTOR(DAN(OVERLOADING
Dosen:
Erma+Susanti,+S.Kom,+M.Cs
Tujuan
Setelah mengikuti mata kuliah ini mahasiswa dapat:
• Mendefinisikan konstruktor
• Menerapkan konsep overloading
Pokok Bahasan
Dalam modul ini akan diuraikan beberapa topik bahasan yaitu :
1) Pengertian constructor+
2) Cara+mengoverloading constructor
3) Melakukan inheritance,+mendefinisikan subclass
1.)Konstruktor
• Konstruktor Method+atau biasa disebut konstruktor adalah method+yang+
dapat digunakan untuk memberikan nilai awal saat objek diciptakan
• Method+ini akan dipanggil secara otomatis oleh Java+ketika new+dipakai
untuk menciptakan instan kelas
• Konstruktor mempunyai sifat:
• Namanya sama dengan nama kelas
• Tidak memiliki nilai balik (termasuk tidak boleh ada kataOkunci void)
Contoh Konstruktor
class Mobil {
//variabel
private String warna;
private int tahunProduksi;
//konstruktor
public Mobil(String warna, int tahunProduksi) {
this.warna = warna;
this.tahunProduksi = tahunProduksi;
}
//method
public void info() {
System.out.println(“Warna : “ + this.warna);
System.out.println(“Tahun: “ + this.tahunProduksi);
}
}
2.)Overloading)terhadap Konstruktor
• Overloading+terhadap konstruktor merupakan suatu mekanisme
pembuatan konstruktor yang+memiliki bentuk lebih dari satu
• Pembeda antara satu konstruktor dengan konstruktor yang+lain+berupa
jumlah parameter+atau tipe parameter
class Mobil {
//variabel
private String warna;
private int tahunProduksi; Contoh Overloading)Konstruktor
//konstruktor pertama
public Mobil(String warna, int tahunProduksi) {
this.warna = warna;
this.tahunProduksi = tahunProduksi;
}
//konstruktor kedua
public Mobil() {
}
//method
public void info() {
System.out.println(“Warna : “ + this.warna);
System.out.println(“Tahun: “ + this.tahunProduksi);
}
}
3.)Overloading)terhadap Method
• Overloading+juga dapat dikenali pada method+nonOkonstruktor
class Matematika {
static public double kuadrat (double nilai) {
return nilai * nilai;
}
bilangan = Double.valueOf(nilai).doubleValue();
return bilangan * bilangan;
}
}
Variabel Kelas
• Variabel class+adalah variabel yang+berlaku tidak terbatas hanya pada objek tetapi
pada seluruh objek
• Variabel ini didefinisikan dengan menggunakan kata+kunci static
class Bilangan{
static int pencacah = 0;
private int nilai;
Rangkuman
• Constructor+adalah metod khusus dengan nama sama dengan nama class+
dan bertugas membuat objek
• Constructor+dapat di+overloading dengan mendefinisikan beberapa nama
constructor
Latihan
1. Buatlah+definisi+ class+Motor,+ yang+memiliki+data+:+nama+(String)+ default+
“NoName”,+dan+status+(boolean)+ default=+false
memiliki+ metod+:+tampilkan()+:+mencetak+keterangan+nama+keadaan+motor+
(status+mati+/hidup)+
memiliki+ metod+:+nyalakan()+:berfungsi+ menOset+status+dari+mati+(false)+menjadi+
hidup+ (true).+ Jika+status+sudah+hidup+ dan++dipanggil+ metod+nyalakan(),+maka+akan+
ada+komentar+“Mesin+sudah+hidup”,+ jika+mesin+belum+ hidup+ dan+meetod+
nyalakan()+dipanggil+ maka+status+diubah+menjadi+ true.+
Definisikan+Constructor+ dengan+tiga+macam
Motor()
Motor+ (boolean+ status)+untujk+ mendifinisikan+ status
Motor+ (String+ nama)+untuk+mendefinisikan+ nama+motor
Latihan
2. Buatlah definisi class+TesMotor ,+untuk membuat objek motor+ :
objek :motorku ,+nama motor+ HONDA+kondisi mati,+panggil metod tampilkan(),+
nama motor+ dedinisikan lewat constructor
INHERITANCE)DAN)POLYMORPHISM
Dosen:
Erma+Susanti,+S.Kom,+M.Cs
Tujuan
Setelah mengikuti mata kuliah ini mahasiswa dapat:
• Menerapkan konsep inheritance
• Menerapkan konsep polymorphism
Pokok Bahasan
Dalam modul ini akan diuraikan beberapa topik bahasan yaitu :
1) Melakukan inheritance,+mendefinisikan subclass
2) Polymorphism
1.)Inheritance
• Pengenalan inheritance+dimulai dari
• Struktur sebuah kelas dapat digambarkan dalam skema
Class+memiliki+2+hal+,+yaitu+:
Data+(Attribut)
Metod
• Secara+konsep+Inheritance adalah+pewarisan+sifat+induk.+Seperti+dalam+
gambaran+taksonomi+berikut
Pada+gambar+
tersebut+class+
CANARY+dapat+
mewakili+data+dan+
metod+dari+BIRD+
dan+ANIMAL
Sesuai+kaidah+
inheritance
Versi+:+1 Revisi+:+0
Modul+5+N Constructor,+overloading,+inheritance Halaman+:+ 5 Dari+:+25
Fakultas :)Teknologi)Industri Pertemuan)Ke :)9
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)25
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017K2
Inheritance
• OOP+memungkinkan untuk mendefinisikan class+baru dari kelas yang+sudah
ada.+Konsep ini disebut inheritance+(pewarisan)
• Inheritance+merupakan fitur yang+penting dan powerful+untuk penggunaan
kembali software
! Pewarisan merupakan konsep dalam pemrograman berorientasi objek
yang+memungkinkan untuk membuat suatu kelas dengan didasarkan pada
kelas yang+sudah ada sehingga mewarisi semua metode dan variabelnya
Konsep Inheritance)…
• Inheritance adalah+konsep+penurunan+data+atau+metod+(biasanya+
metod)+oleh+class+yang+merupakan+class+turunan.
• Cara+mendefinisikan+class+turunan+memiliki+sintak:
class namaClassAnak extends namaClassInduk
• Dengan+deklarasi+seperi+itu+maka+metodNmetod+dalam+class+induk+
yang+bersifat+public dan+protected dapat+di”warisi”+oleh+class+
anakl
Superclass)dan Subclass
• Inheritance+memungkinkan untuk mendefinisikan class+umum (superclass)+
dan kemudian memperluasnya menjadi kelas tertentu (subclass)
Subclass Superclass
public)class)Lingkaran extends)ObjekGeometri
Contoh Inheritance)
Terlihat+bahwa+sebagai+objek+dari+class+
Anak,+objek+ a+dapat+memanggil+ metod+
dari+class++induk,+ yaitu+cetak1()+dan+
cerak2()
Memanggil Method)Superclass
! Java+menyediakan kata+kunci super yang+berarti superclass
! Sintaks:+super.method(parameter);
//contoh KelasDasar
1. class Charlie extends Beta{
2. private int c = 9;
3.
4. public void info() {
5. {
6. super.info(); //panggil metode KelasDasar
7. System.out.println(“c = “+c);
8. }
9. }
Overriding)Method
• Untuk mengNoverride+ sebuah method,+method+harus didefinisikan dalam
subclass+menggunakan method+yang+sama dan mengembalikan tipe yang+
sama sebagai superclass
• Subclass+mewariskan method+dari superclass
//contoh overriding
1. public class Lingkaran extends GeometriObjek {
Overriding)vs.)Overloading
! overloading+berarti mendefinisikan method+multiple+dengan nama yang+
sama tetapi berbeda tanda
! Overriding+berarti menyediakan implementasi baru untuk method+dalam
subclass
class)B+{ class)B+{
public) void) p(double) i)+{+ public) void)p(double) i)+{+
System.out.println(i *+2);+ System.out.println(i *+2);
}+ }+
}+ }+
class)A+extends)B+{ class)A+extends)B+{
//+This+method+ overrides+the+method+in+B+ //+This+method+overloads+ the+method+in+B+
public) void) p(double) i)+{+ public) void)p(int i)+{+
System.out.println(i);+ System.out.println(i);+
} }
}+ }+
Overriding)vs.)Overloading
• Method+Overrride dalam class+yang+berbeda berkaitan dengan inheritance;+
method+overloading+dapat berada di+class+yang+sama atau class+yang+
berbeda jika berhubungan dengan inheritance
• Method+override+ mempunyai tanda dan tipe pengembalian yang+sama;+
method+overloading+mempunyai nama yang+sama tetapi daftar parameter+
yang+berbeda
• Untuk menghindari kesalahan,+kita dapat menggunakan sintaks Java+yang+
disebut dengan override+ annotation+dengan meletakkan @override+
sebelum method+pada subclass
1. public class Lingkaran extends GeometriObjek {
2. @Override
3. public String toString() {
4. return super.toString() + “jejari : “+jejari;
5. }
6. }
2.)Polymorphism)
• Polymorphism adalah+konsep+yang+memungkinkan+
mendefinisikan+metod+pada+class++anak+(sub)class)+yang+
memiliki+definisi+sama+dengan+metod+induk+(super)class)
• Pendefinisian+kembali+metod+dalam+class+anak+dengan+
nama+yang+sama+dari+metod+class+induk+sering+disebut+
melakukan+OverRiding)terhadap+metod+
Hasil+program
Hasil+polymorphism
• Metod+cetak1()+dapat+diwariskan a1.cetak1()+:+akan+gunakan+definisi+ dari+
• Metod+cetak2()+dapat+diwariskan class+Anak
• Metod+cetak3()+tidak+dapat+diwariskan d.cetak1()+:+akan+gunakan+definisi+ dari+induk
Dengan+super.P+class+anak+dapat+mengakses+data+induk
Dengan+super.cetak2()+metod+ induk+dapat+dijalankan+dari+Anak
Polymorphism
• Polymorphism+berarti bahwa variabel dari supertype dapat mengacu
kepada objek subtype
• Tiga pilar dari OOP+adalah encapsulation,+inheritance+dan polymorphism
• Sebuah class+mendefinisikan tipe.+Tipe didefinisikan oleh subclass+disebut
subtype.+Sedangkan tipe yang+didefinisikan oleh superclass+disebut sebagai
supertype
• Contoh:+Lingkaran adalah subtype+dari GeometriObjek dan GeometriObjek
adalah supertype dari Lingkaran
Contoh Polymorhism
Dibuat pada Mon Mar 09 19:25:20 EDT 2011. Warna adalah red Dibuat
pada Mon Mar 09 19:25:20 EDT 2011. Warna adalah black
Rangkuman
• Inheritance merupakan kemampuan java+sebagai OOP+untuk mewariskan
data+dan metod dari Induk(superclass)++kepada anak (subclass)
• Jika metod dalam class+induk didefinisikan ulang oleh class+anak maka
pendefinisian disebut melakukan overriding)metod
• Kemampuan jawa memiliki namaNnama metod yang+sama yang+melintas
pada garis keturuanan disbeut polymorpism
Versi+:+1 Revisi+:+0
Modul+5+N Constructor,+overloading,+inheritance Halaman+:+ 24 Dari+:+25
Fakultas :)Teknologi)Industri Pertemuan)Ke :)9
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)25
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017K2
Latihan
1.++ Definisikan+suatu+kelas+Lingkaran+dengan+atribut+R dan+Luas+serta+method Cetak()+yang+
menghasilkan+output :
LINGKARAN+DENGAN+JEJARI++...++R LUASNYA+ADALAH++....
Definisikan+kelas+turunan+dari+kelas+Lingkaran+yaitu+kelas+Tabung+dengan+atribut+tambahan+
TinggiTabung dan+VolumeTabung serta+overriding method Cetak()+dengan+menghasilkan+
output :
“TABUNG+DENGAN+LUAS+ALAS+...+DAN+TINGGI+...+VOLUMENYA+ADALAH+...
ABSTRACT'CLASS'DAN'ABSTRACT'METHOD
Dosen:
Erma+Susanti,+S.Kom,+M.Cs
Tujuan
Setelah mengikuti mata kuliah ini mahasiswa dapat:
• Menjelaskan konsep abstract+class+dan penggunaannya
• Menjelaskan konsep abstract+method+dan penggunaannya
Pokok Bahasan
Dalam modul ini akan diuraikan beberapa topik bahasan yaitu :
1. class+abstract
2. method+abstract
3. studi class+abstract+java+:+Number
4. class+turunan Number :Integer,+Float,+Long,Double sebagai wrapper
5. konversi data:+bilangan ke string+
1.)Pengertian abstract)class
2.)Pengertian abstract)method)
• Di dalam class abstract dapat didefinisikan atributKatribut dan methodK
method.
• Atribut dan method yang didefinisikan dalam klass abstract dimaksudkan
merupakan sesuatu yang umum dan terdapat pada subKkelas subKkelas
turunannya.
• Suatu abstract method didefinisikan dengan cukup mendeklarasikan
namanya pada class abstract dan mengKoverride pada masingKmasing 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.
• Sehingga+ class+Message+adalah+class+
abstract
Class)Message)
SatuKsatunya+
metod+abstract
Yang+
mengharuskan+
class+Message+
didefinisikan+
secara+abtract
Untuk+class+
turunan+
FaxMessage tidak+
didefinisikan
class)Mailbox
class)MailboxTest (class)utama)
berlanjut…
class)MailboxTest …)lanjutan
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
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()
4.)Class)Turunan Number)
• 4+class+didefnisikan+ secara+class+final
• Pada+setiap+class+turunan+ didefnisikan+ metodKmetod+ abstractnya
• Pada+setiap+class+turunan+ didefinisikan+ metod+toString()+
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
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+berkaliKkali+sampai+diinputkan+ ENTER+
bacaInt(),)bacaFloat(),)bacaDouble()
• Dari+metod bacaString(),+ kita dapat mengkonversi string+menjadi bilangan jika string+
yang+dibaca adalah bilangan
Program)lengkapnya…)
Hasilnya
Rangkuman
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+diKoverride+dalam+
kelas+turunannya.
2. Definisikan+dua+buah+kelas+turunan+dari+class+Orang+yaitu+class+:Pegawai++
dan+class+Mahasiswa.
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.
Interface
Dosen:
Erma+Susanti,+S.Kom,+M.Cs
Tujuan
Setelah mengikuti mata kuliah ini mahasiswa dapat:
• Menerapkan konsep interface+dalam Java
Pokok Bahasan
Dalam modul ini akan diuraikan beberapa topik bahasan yaitu :
1. Pengertian interface
2. Pewarisan interface
Pengertian Interface
Mendeklarasikan Interface
! Penentu akses publik biasa digunakan dengan tujuan agar+interface+
dapat diakses oleh kelas manaun
! Jika tidak ada penentu akses public,+interface+hanya dapat diakses
oleh classTclass+yang+berada pada paket yang+sama
! Jika interface+didefinisikan sebagai public,+interface+tersebut harus
disimpan dengan nama depan yang+sama dengan nama interface
public.interface.NamaInterface {
//method+ tanpa implementasi
//definisi konstanta
}
Contoh Interface
1. //contoh interface yang hanya berisi 1. //contoh interface yang hanya berisi
konstanta konstanta
2. public interface InterfaceWarna { 2. public interface InterfaceWarna {
3. public static final int HITAM = 255; 3. int HITAM = 255;
4. public static final int PUTIH = 0; 4. int PUTIH = 0;
5. } 5. }
1. //contoh interface yang hanya berisi 1. //contoh interface yang hanya berisi
method method
2. public interface InterfaceBentuk { 2. public interface InterfaceBentuk {
3. public abstract void gambar(); 3. void gambar();
4. public abstract void tentukanWarna(); 4. void tentukanWarna();
5. } 5. }
Pewarisan Interface
! Suatu interface+dapat mewarisi interface+yang+lain,+seperti subclass+
mewarisi superclass
Menggunakan Interface
interface+InterfaceLampu {
public+ static+final+int KEADAAN_HIDUP+=+1;
public+ static+final+int KEADAAN_MATI+=+0;
public+ abstract+void+hidupkan();
public+ abstract+void+matikan();
}+//akhir interface
Contoh
class+Lampu implements+ InterfaceLampu {
private+int statusLampu =+0;
public+void+hidupkan()+ {
if+(this.statusLampu ==+KEADAAN_MATI)+{
this.statusLampu =+KEADAAN_HIDUP;
System.out.println(“Lampu hidup”);
}
else+{
System.out.println(“Lampu sudah hidup”);
}
}
Versi+:+1 Revisi+:+0 Halaman+:+ 9 Dari+:+10
Fakultas :)Teknologi) Industri Pertemuan)Ke :)11
Jurusan/Prodi :)Teknik) Informatika)/)Teknik) Informatika Handout)Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)10
Nama)Matakuliah :)Pemrograman) Berorientasi) Objek) Mulai)Berlaku :)2017I2
public+ void+matikan()+{
if+(this.statusLampu ==+KEADAAN_HIDUP)+{
this.statusLampu =+KEADAAN_MATI; Contoh
System.out.println(“Lampu mati”);
}
else+{
System.out.println(“Lampu sudah mati”);
}
}
}+//akhir kelas
Lampu hirup
public+ class+TesInterface { Lampu sudah hidup
public+static+void+main+(String+ []+args)+{ Lampu mati
Lampu lampuKamar =+new+Lampu(); Lampu sudah mati
lampuKamar.hidupkan();
lampuKamar.hidupkan();
lampuKamar.matikan();
lampuKamar.matikan();
}
}
Versi+:+1 Revisi+:+0 Halaman+:+ 10 Dari+:+10
Fakultas :)TEKNOLOGI)INDUSTRI Pertemuan)Ke :)12
Jurusan/Prodi :)TEKNIK)INFORMATIKA/TEKNIK)INFORMATIKA Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)18
Nama)Matakuliah :)PEMROGRAMAN)BERORIENTASI)OBJEK Mulai)Berlaku :)2017J2
Package
Dosen:
Erma+Susanti,+S.Kom,+M.Cs
Tujuan
Setelah mengikuti mata kuliah ini mahasiswa dapat:
• Mengelola classCclass+dalam package
• Menjelaskan struktur package+dalam standard+java
Pokok Bahasan
Dalam modul ini akan diuraikan beberapa topik bahasan yaitu :
1. Pengertian package sebagai koleksi classCclass+sejenis
2. Mendefinisikan dan mempergunakan package
3. Menelaah package+standard+java+:java.lang,-java.awt,-java.applet
Pengantar Package
Pengertian package
• Suatu+package+adalah+“bendel”+atau+pengelompokan+kelasCkelas+
berdasarkan+kesamaan+atau+kemiripan+fungsi
Dalam+java+versi+awal+ada 6+package+besar+,+yaitu+:
• java.io
• java.lang
• java.applet
• java.awt
• java.net
• java.util
Modul+7+C Package
Versi+:+1 Revisi+:+0 Halaman+:+ 5 Dari+:+18
Fakultas :)Teknologi) Industri Pertemuan)Ke :)12
Jurusan/Prodi :)Teknik) Informatika)/)Teknik) Informatika Handout)Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)18
Nama)Matakuliah :)Pemrograman) Berorientasi) Objek) Mulai)Berlaku :)2017J2
Membuat package)
• Pembuatan suatu package dianjurkan untuk pemrograman
skala besar, dimana kita mendefinisikan banyak kelas dengan
pengelompokan sesuai tujuan.
• Pada saat pembuatan suatu package maka kata package harus
menjadi statemen pertama, misalnya :
package+MyFirstpackage
public+class+MyFirstClass+{
....}
Membuat pacakage…)
• setiap+class+yang+menjadi+anggota+paket+didefinisikan+dengan+diawali+
dengan+kata+package+dilanjutkan+dengan+definisi+kelas+seperti+biasa.+
• KelasCkelas+yang+menjadi+anggota+paket+dapat+disimpan+dalam+fileCfile+
yang+terpisah.+
• FileCfile+java+yang+merupakan+definisi+class+dari+anggota+package+
disimpan+dalam+satu+directori+yang+sama+dengan+nama+directori+adalah+
nama-package tersebut.
•
• Contoh:
• Akan+didefinisikan+ suatu+package+bernama+:+geometri
• Berisi+dua+kelas+:+lingkaran+dan+kelas+:epp+(empat+persegi+panjang)
Kode programnya
class)Lingkaran package)geometri
class)Epp package)geometri
Hasil+program
Terlihat+dengan+mendefinisikan+ class+dalam+package+kita+dapat+
menyembunyikan+ sebagian+besar+kode+program.+Sehingga+ kita+dapat+lebih+
konsentrasi+ kepada+problem+ yang+dihadapi+ dari+pada+kode+ program
Package)standard):java.lang
• Pada+program+java+terdapat+package+yang+otomatis+akan+dapat+
digunakan+meskipun+kita+tidak+menggunakan+statemen+import.
• Package+yang+otomatis+tanpa+iport+tersebut+adalah+java.lang
• Apakah+isi+package+java.lang+yang+penting??
• Isinya+adalah+antara+lain+classCclass:
• class+Object++(induk+ dari+semua+class+java)
• class+String++(operasi+ dan+manipulasi+ data+string)
• class+Number,+ Integer,+Long,+ Float,+Double
• class+Math+(fungsiCfungsi+ matematik)
• class+Character+
• class+Boolean+
• Exception+(induk+ dari+semua+class+Exception)
Package)standard):java.io
• Package+io+berisi+classCclass+yang+berhubungan+dengan+baca+tulis+data+
atau+aliran+data
• Isinya+adalah+antara+lain+classCclass:
• class+Stream+
• class+InputStream+dan+OutputStream+
• class+BufferInputStream+dan+BufferOutputStream
• class+ByteArrayInputStream
• class+FileInputStream+dan+FileOutput+Stream+
• class+Reader+
• class+FileReader+
• class+FileWriter+
java.applet1yang1penting1berisi1
• class1java.Applet
• class1java.AudioClip
java.awt1berisi1class;class:
• class+Font
• class+Frame
• class+Window
• class+Button
• class+Label
• class+TextField
• class+TextArea
Mendeklarasikan Package
package namapaket;
1. package kelasku;
2. public class Alpha {
3. public void info() {
4. System.out.println(“Kelas Alpha”);
5. }
6. }
1. package kelasku;
2. public class Beta {
3. public void info() {
4. System.out.println(“Kelas Beta”);
5. }
6. }
Statemen import)
• Pada+beberapa+program+terdahulu+telah+dijumpai+beberapa+definisi+
class+yang+diawali+dengan+kata+kunci+:import.+
• Kata+kunci+ini+memberitahukan+bahwa+definisi+class+yang+kita+buat+
akan+melibatkan+kelasCkelas+lain+yang+terhimpun+didalam+package+
yang+kita+import.+
• Pelibatan+kelas+dari+package+dapat+hanya+sebagian+kelas+(atau+sub+
klas)++atau+semuanya,+seperti+contohnya+:
• import+java.io.*;(semua+kelas+dari+package+java.io+dapat+
diugunakan)
• import+java.util.Properties;+(hanya+class+Properties+dari+package+
java.util)
• import+java.awt.image.ColorModel+;+(sub+klas+ColorModel+dari+
class+image+dari+package+awt).
Menggunakan import
import1namapaket.namaberkas;
import1namapaket.*; *1menyatakan semua kelas pada paket namapaket
Contoh:11import1java.io.*; *1semua kelas yang1berada pada paket java.io
Rangkuman
• Semua package+buatan sendiri atau java+memiliki berbagai
tugas/metod yang+berbeda tetapi satu ide+
• Dalam menyimpan class+nama package+sama dengan nama
folder
• Dalam mendefinisikan package+setiap class+anggota package+
diberi pengenal nama package+
• Selanjutnya classCclass+dengan pengenal nama package+
tersebut disimpan dalam directory+yang+namanya sama
dengan nama package
Latihan
1. Lengkapilah+package+geometri+didalam+contoh+ dengan+classCclass+:
class+Bujursangkar(int+ sisi)
class+Segitiga(int+alas,+int+tinggi)
class+Jajarangenjan(int+garissjj,+int+tinggi)
Semua+class+memiliki+ constructor+dengan+ susunan+seperti+di+atas
Ujilah+package+tersebut+untuk+menghitung+ luas+dan+keliling
PENANGANAN&KESALAHAN
Dosen:
Erma+Susanti,+S.Kom,+M.Cs
Tujuan
Setelah mengikuti mata kuliah ini mahasiswa dapat:
• Memahami mengenai konsep penanganan kesalahan dalam Java
Pokok Bahasan
Dalam modul ini akan diuraikan beberapa topik bahasan yaitu :
1. Menggunakan class+Exception
2. Pernyataan throw
3. Pernyataan throws
4. Pernyataan finally
5. Membuat class+Exception+sendiri
6. Memahami method+java+yang+menOthrows+exception
Penanganaan Kesalahan
• Kesalahan program+pada umumnya ditangani pada saat program+
dikompilasi
• Tidak semua kesalahan dapat terdeteksi saat dikompilasi
• Penanganan eksepsi pada Java+dapat digunakan untuk:
• Menangani kesalahan dengan menuliskan kode penanganan kesalahan yang+
terpisah dengan kode yang+akan ditangani.+Sejumlah pernyataan dapat
ditangani hanya dengan menggunakan sebuah penanganan eksepsi
• Menyediakan mekanisme yang+memungkinkan untuk menjalarkan kesalahan
yang+terjadi dalam sebuah method+ ke method+yang+akan melakukan
pemanggilan method+ tersebut
• Menangani berbagai jenis kondisi tidak normal+ (jenis kesalahan dapat
diketahui)
Menggunakan class)Exception
• Exception+(makna katanya “perkecualian”)+adalah suatu keadaan
dimana program+berjalan tidak sesuai yang+dikehendaki,+atau tidak
normal
• Kasus ini bisa muncul karena terjadinya kesalahan logika,+misal dalam
aritmetika:+pembagian dengan nol,+menarik akar real+dari bilangan
real+negatif atau menugasi variabel melebihi kapasitasnya
• Kasus lainnya misal menggunakan index+array+keluar dari batas yang+
diijinkan
HASIL+:+5+0+0
Class)Throwable
• Java+telah mendefinisikan classOclass+penanganan kesalahan yang+
dapat dibaca kodenya dalam package+java.lang
• Induk dari seluruh penanganan kesalahan adalah class+Throwable
public class Throwable implements java.io.Serializable
• Subclass+turunannya antara lain:
• Public class Exception extends Throwable
• Public class RuntimeException extends Exception
• Public class ArithmeticException extends
RuntimeException
Contoh:)Pembagian dengan 0
• Pesan kesalahan pada catch+biasa ditampilkan melalui
System.err.println()
• Pada bagian catch,+parameter+yang+digunakan adalah t+yang+berkelas
Throwable
• Bagian ini akan dijalankan hanya kalau pernyataan yang+terletak
dalam blok try+mengalami eksepsi
Contoh:)Pembagian dengan 0
• Program+alternatif lain+pembagian dengan nol yang+menampilkan
pesan kesalahan yang+berasal dari parameter+t+(yang+berkelas
Throwable)
Catch)secara bertingkat
• Java+menyediakan berbagai kelas yang+berhubungan dengan eksepsi
• Kelas tertinggi yang+kalian+kenal yaitu Throwable
• Berdasarkan kelas ini,+terdapat subkelas dengan nama Error+dan
Exception
• Subkelas error+antara lain+digunakan untuk menangani kesalahan
seperti memori habis (OutOfMemoryError)+ dan stack+habis
(StackOverflowError)
• Kesalahan seperti di+atas biasanya tidak perlu ditangani.+Dengan kata+
lain+program+segera diakhiri kalau menemukan eksepsi tersebut
• Subkelas Exception+antara lain+memiliki subkelas RuntimeException
yang+digunakan untuk menangani kesalahan seperti subkrip array+
tidak valid+(AritmeticException).+
Catch)secara bertingkat
• Dengan mengetahui berbagai kemungkinan jenis kesalahan,+maka bisa dengan
menangkap berbagai kemungkinan eksepsi dengan menggunakan catch+yang+
bertingkat
try {
//blok yang akan ditangkap sekiranya terjadi eksepsi
}
catch (RuntimeException r) P
//blok yang akan dijalankan kalau terjadi eksepsi RuntimeError)
}
catch (Exception e) {
//blok yang akan dijalankan kalau terjadi eksepsi Exception
}
catch (Throwable t) {
//blok yang akan dijalankan kalau terjadi eksepsi yang lain
}
• Perhatikan bahwa class+Throwable diletakkan terakhir dengan tujuan untuk
menangkap semua jenis eksepsi yang+tidak tertangkap pada catchOcatch+
sebelumnya
Contoh:)try)catch)bertingkat
Jika program+ dijalankan
public class Ex3{
public static void main(String[] args){ tanpa diberikan
try { parameter+command+ line,+
int a = args.length;
Sytem.out.println(“nilai a = “ + a); maka cacah argumen
int b = 40/a; adalah nol,+ berarti nilai a+
int c = {1};
c[10] = 88; akan menjadi nol.+Dengan
} catch (ArithmeticException e) { demikian kesalahan
System.out.println(“pembagian dengan nol!”);
} catch (ArrayIndexOutOfBoundsException e) { terjadi pada baris
System.out.println(“Index array OOB: “+e); pembagian dengan nol,+
} catch (Throwable t) {
System.out.println(“got t “+t);} int b+=+40/a
}
}
Jika dieksekusi dengan
diberikan sebuah
parameter,+misalnya:+
Helo,+maka kesalahan
yang+terjadi adalah index+
array+keluar batas
Pernyataan throw
• Pernyataan throw+dipakai untuk melemparkan eksepsi secara
eksplisit
• Caranya dengan membuat instant+dari class+Throwable dengan
pernyataan new:+throw new namaEksepsi
• Berikut contoh pelemparan eksepsi NullPointerException
• Eksepsi ini akan dikerjakan jika pembuatan objek tidak dirujuk ke
variabel yang+sesuai
caught+inside+demo
REOcaught:+java.lang.NullPointerException:+nyoba
Jika baris perintah throw+e+dalam method+ demo()+ dihapus maka output+ programnya:
Caught+inside+demo
Versi+:+1 Revisi+:+0 Halaman+:+ 16 Dari+:+26
Fakultas :)Teknologi)Industri Pertemuan)Ke :)13)dan)14
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)26
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017L2
Pernyataan throws
• Jika method+dapat menyebabkan eksepsi yang+tidak ditangani sendiri
maka method+tersebut dapat menOthrows+satu atau beberapa
eksepsi
Class TrDemo2 {
static void methodKU () throws IllegalAccessException {
System.out.println(“ini isi methodKU”);
throw new IllegalAccessException(“nyoba”);
}
}
Pernyataan finally
try…finally
• Bentuk pernyataan try+lainnya:
try {
//blok yang akan ditangkap sekiranya
terjadi eksepsi
}
finally {
//blok yang akan dijalankan terakhir kali
}
• Pada bentuk tersebut bagian finally+akan dijalankan,+tak tergantung
apakah bagian blok try+mengalami eksepsi atau tidak
Contoh:)try…finally
public class BagiNol4{
public static void main(String[] args) {
double BILANGAN = 100.0;
System.out.println(“Sebelum pembagian”);
Contoh lain:)try…finally
class exc7 {
static void prosedur_A() {
try {
System.out.println(“di dalam prosedur A”);
throw new RuntimeException(“nyoba A”);
} finally {
System.out.println(“finally A”);
}
}
di+dalam prosedur A
static void prosedur_B() {
try { finally+A
System.out.println(“ini di dalam prosedur B”); ini di+dalam prosedur B
return;
} finally { finally+B
System.out.println(“finally B”);
}
}
Membuat Class)Exception)Sendiri
• Dalam java+setiap exception+adalah class+turunan dari class+pustaka java+
yang+bernama Throwable
• Kelas ini terdapat dalam package+java.lang
• Ada+dua exception+yang+dapat diturunkan dari class+Throwable:+Error+dan
Exception
Throwable
Error Exception
Exception
IOException RuntimeException
ArithmeticException
Class Exc8 {
static void hitung (int a) throws ExceptionKU {
if (a>10) throw new ExceptionKU(a); KELUAR+NORMAL
System.out.println(“KELUAR NORMAL”);
} KETANGKAP+:ExceptionKU [+15+]
public static void main (String[] args) {
try {
hitung(1);
hitung(15);
} catch (ExceptionKU e) {
System.out.println(“KETANGKAP :”+e);
}
}
}
Memahami method)java)yang)melempar
Exception
• Dalam java+banyak method+didefinisikan dengan menOthrows+suatu
exception+agar+berada dalam perlindungan exception
• Contoh method+java+yang+didefinisikan dengan menOthrows+
IOException adalah method+read()+dalam class+InputStream
Latihan
1. Cobalah ketik dan kompilasi program+berikut:
class Exc11 {
public static void main (String [] args) {
int n = 0;
n = System.in.read();
System.out.println(“Hasil : “+(char) n);
}
}
Latihan
2.+Cobalah ketik dan kompilasi program+berikut:
class Exc12 {
public static void main (String [] args) {
byte[] b = new byte[5];
try { System.in.read(b);
} catch (java.io.IOException e);
System.out.println(“Hasil : “+ (char) b[0] + (char) b[1] + (char) b[2]);
}
}
Latihan
3.+Ketik dan kompilasi program+berikut
class Exc13 {
public static void main (String [] args) {
byte[] b = new byte[5];
System.out.println(“Ketik Bilangan Bulat :”);
try { System.in.read(b);
} catch (java.io.IOException e);
int N = Integer.valueOf(b).intValue();
System.out.println(“Hasil : “+(N+2));
}
}