Anda di halaman 1dari 338

Fakultas :)Teknologi)Industri Pertemuan)Ke :)1

Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1


Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)16
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017F2

PENGENALAN'
PEMROGRAMAN'BERORIENTASI'OBJEK
(PBO)

Dosen:
Erma'Susanti,' S.Kom,'M.Cs

Versi':'1 Revisi':'0 Halaman': 1 Dari':'16


Fakultas :)Teknologi)Industri Pertemuan)Ke :)1
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)16
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017F2

Tujuan

Setelah mengikuti mata kuliah ini mahasiswa dapat :

! menjelaskan tentang bahasa pemrograman


! menjelaskan perbedaan paradigma pemrograman
! menjelaskan komponen dasar dalam pemrograman berorientasi objek

Versi':'1 Revisi':'0 Halaman':' 2 Dari':'16


Fakultas :)Teknologi)Industri Pertemuan)Ke :)1
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah) :)MIP1202 Jumlah)Halaman :)16
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017F2

Pokok Bahasan

Dalam modul ini akan diuraikan beberapa topik bahasan yaitu :

1) Bahasa'Pemrograman
2) Pengenalan PBO:'Class'dan Objek
3) Pemrograman Java

Versi':'1 Revisi':'0 Halaman':' 3 Dari':'16


Fakultas :)Teknologi)Industri Pertemuan)Ke :)1
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah) :)MIP1202 Jumlah)Halaman :)16
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017F2

Buku teks

Versi':'1 Revisi':'0 Halaman':' 4 Dari':'16


Fakultas :)Teknologi)Industri Pertemuan)Ke :)1
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah) :)MIP1202) Jumlah)Halaman :)16
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017F2

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

Versi':'1 Revisi':'0 Halaman':' 5 Dari':'16


Fakultas :)Teknologi)Industri Pertemuan)Ke :)1
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah) :)MIP1202 Jumlah)Halaman :)16
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017F2

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#)

Versi':'1 Revisi':'0 Halaman':' 6 Dari':'16


Fakultas :)Teknologi)Industri Pertemuan)Ke :)1
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah) :)MIP1202 Jumlah)Halaman :)16
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017F2

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++)

Versi':'1 Revisi':'0 Halaman':' 7 Dari':'16


Fakultas :)Teknologi)Industri Pertemuan)Ke :)1
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)16
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017F2

2.)Pengenalan PBO:)Class)dan Objek

! Program'berorientasi objek menggunakan objek]objek


! objek (object )'adalah sesuatu,'baik itu nyata ataupun tidak nyata.'Contoh:'
Rekening,'Kendaraan,'Pegawai
! Untuk membuat objek di'dalam program'komputer,'harus didefinisikan
objek – bagaimana perilakunya dan informasi seperti apa yang'ada di'
dalamnya – disebut dengan class
! Objek disebut sebagai instance dari sebuah class

Versi':'1 Revisi':'0 Halaman':' 8 Dari':'16


Fakultas :)Teknologi)Industri Pertemuan)Ke :)1
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)16
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017F2

Representasi Grafis dari Sebuah Class

Kita menggunakan persegi


<Class/Name> untuk merepresentasikan
sebuah class dan diberi
nama di dalam persegi
panjang.

Contoh: Rekening Mobil

Notasi ini digunakan sesuai dengan standar notasi industri yang/disebut dengan
UML,/singkatan dari Unified/Modeling/Language.

Versi':'1 Revisi':'0 Halaman':' 9 Dari':'16


Fakultas :)Teknologi)Industri Pertemuan)Ke :)1
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)16
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017F2

Representasi Grafis dari Object

Kita menggunakan persegi panjang


untuk merepresentasikan object
<Object-Name> dan menempatkan garis bawah di
bawah nama dari object di dalam
persegi panjang.

Contoh:

Ini adalah object bernama


SV168 SV168.

Versi':'1 Revisi':'0 Halaman':' 10 Dari':'16


Fakultas :)Teknologi)Industri Pertemuan)Ke :)1
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah) :)MIP1202 Jumlah)Halaman :)16
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017F2

Object)dengan Class)Name

Notasi ini adalah class


<Object-Name>-:-<Class-Name> dengan object disebut
dengan instance.

Contoh:

Object SV168 adalah


SV168-:-BankAccount instance dari BankAccount
class.

Versi':'1 Revisi':'0 Halaman':' 11 Dari':'16


Fakultas :)Teknologi)Industri Pertemuan)Ke :)1
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah) :)MIP1202 Jumlah)Halaman :)16
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017F2

3.)Pemrograman Java

Java'adalah bahasa pemrograman tingkat tinggi,'berorientasi objek yang'


dikembangkan oleh Sun'Microsystem

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':'1 Revisi':'0 Halaman':' 12 Dari':'16


Fakultas :)Teknologi)Industri Pertemuan)Ke :)1
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah) :)MIP1202 Jumlah)Halaman :)16
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017F2

Versi Java

Versi Tahun Fitur-fitur baru


1.0 1696
1.1 1697 Inner'classes
1.2 1698 Swing,' Collections
1.3 2000 Performance'enhancements
1.4 2002 Assertions,' XML
5 2004 Generic'classes,'enhanced'for'loop,' auto]boxing,' enumerations
6 2006 Library'improvements
7 2010 Small'language'changes'and'library'improvements
8 2014 library/improvements

Versi':'1 Revisi':'0 Halaman':' 13 Dari':'16


Fakultas :)Teknologi)Industri Pertemuan)Ke :)1
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)16
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017F2

Compiler)dan Interpreter

! Compiler:'Mengkompilasi source code menjadi'bentuk file yang'bisa'


dieksekusi
! Interpreter:'Mengkompilasi dan'menjalankan'source code secara'langsung

Versi':'1 Revisi':'0 Halaman':' 14 Dari':'16


Fakultas :)Teknologi)Industri Pertemuan)Ke :)1
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah) :)MIP1202 Jumlah)Halaman :)16
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017F2

Dari)Source)Code)ke Running)Program

javac java
(Java'
(Java'
Compiler)
Interpreter)

Versi':'1 Revisi':'0 Halaman':' 15 Dari':'16


Fakultas :)Teknologi)Industri Pertemuan)Ke :)1
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)16
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017F2

Perangkat Pemrograman Java

1. Compiler (Interpreter):
Java'Standard'Edition (JSE)
2. Code'Editor:
1. Text Editor:
TextPad,'Notepad++
2. Integrated Development'Environment (IDE):
Netbeans,'Eclipse,'JCreator

Versi':'1 Revisi':'0 Halaman':' 16 Dari':'16


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

PENGENALAN'PROGRAM'JAVA

Dosen:
Erma'Susanti,' S.Kom,'M.Cs

Versi':'1 Revisi':'0 Halaman': 1 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

Tujuan
Setelah mengikuti mata kuliah ini mahasiswa dapat :

• Menjelaskan keunggulan program'Java


• Membuat program'sederhana,' mengcompile,'dan menjalankan program'
Java
• Mengembangkan program'Java'menggunakan Netbeans
• Menggunakan style program'Java'dengan baik dan dapat membuat
dokumentasi program'dengan benar
• Menjelaskan perbedaan antara syntax)error,'runtime)errors,'dan logic)
errors

Versi':'1 Revisi':'0 Halaman':' 2 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

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

Versi':'1 Revisi':'0 Halaman':' 3 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.)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

Versi':'1 Revisi':'0 Halaman':' 4 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

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

Versi':'1 Revisi':'0 Halaman':' 5 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

3.)Struktur Program)Java
Secara prinsip program'java'dapat dibedakan menjadi 2,'yaitu aplikasi dan applet'
:

• Aplikasi :'Adalah program'java'yang'dapat berdiri sendiri,'dicompile dan


dieksekusi secara mandiri
Ciri utama suatu program'java'adalah aplikasi adalah didalamnya ada definisi
method'main'dengan sintaks:
public static void main (String [] arg)

• Applet2:'Program'java'yang'dicompile menjadi file'class'(kode byte)'dan


eksekusinya diZINSERTZkan dalam file'HTML'yang'selanjutnya dieksekusi dengan
suatu browser'tertentu
Applet'juga dapat dieksekusi menggunakan program'appletviewer dalam JDK

Versi':'1 Revisi':'0 Halaman':' 6 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

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

Versi':'1 Revisi':'0 Halaman':' 7 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

Contoh aplikasi (1)


Program)cetak Hello)World)!
class Cetak_Hello
{ public static void main (String [] arg)
{ System.out.println(“Hello World!”);
} // akhir main
} //akhir definisi class

Bagaimana mengcompile dan menjalankan program?:

Setelah program'diketik,'lalu disimpan dengan ekstensi Cetak_Hello.java.'


Program'dicompilasi dengan compiler'javac.exe sebagai berikut:

!javac Cetak_Hello.java <enter>


!Hasil program'berupa file':'Cetak_Hello.class yang'dapat dieksekusi dengan interpreter'java.exe,'
contoh sebagai berikut :
!java Cetak_Hello <enter>

Versi':'1 Revisi':'0 Halaman':' 8 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

Hasil contoh aplikasi (1)

Edit'program'dengan editor'
teks
TextZPad'/'Notepad++':

Compilasi dengan javac.exe


Eksekusi dengan
java.exe

Versi':'1 Revisi':'0 Halaman':' 9 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

Struktur applet

Suatu applet'java'memiliki struktur sbb:

public class namaApplet extends java.applet.Applet


{ public void init(){… inisialisasi….}
public void paint(){…….}
[definisi method-method yang lain]
}

Setelah applet'dicompile (dengan javac.exe)'dan menghasilkan suatu file'.class.'Maka file'


tersebut diINSERTkan dalam file'html'dalam tag':
<APPLET CODE=“NamaApplet.class“
WIDTH=150'HEIGHT=25>
</APPLET>

Versi':'1 Revisi':'0 Halaman':' 10 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

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

Versi':'1 Revisi':'0 Halaman':' 11 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

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>

Versi':'1 Revisi':'0 Halaman':' 12 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

Hasil eksekusi file)HTML:


dengan appletViewer dan IE

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

Versi':'1 Revisi':'0 Halaman':' 13 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

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

Versi':'1 Revisi':'0 Halaman':' 14 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

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:

Versi':'1 Revisi':'0 Halaman':' 15 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

Hasil eksekusi file)HTML:


dengan appletViewer dan IE

• Eksekusi'dengan'
appletviewer

• Eksekusi'dengan'
browser
IE

Versi':'1 Revisi':'0 Halaman':' 16 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

4.)JDK,)Compiler,)Interpreter

• JDK'singkatan dari Java'Development' Kit','merupakan seperangkat kode,' library,'form'


dan paket yang'berguna untuk membuat aplikasi atau applet'java
• JDK'dapat didownload secara gratis'dari :'
http://www.oracle.com/technetwork/java/javase/downloads/jdk
8-downloads-2133151.html

• Versi terakhir (Juli 2017)'dari JDK'yang'dapat di'download' adalah Java'SE'Development'


Kit'8u131'(JDK'8)

• JDK2memiliki 32kelompok pengembangan ,2yaitu :


• Java2SE (Java'Standard'Edition,' untuk kebutuhan standard)
• Java2EE (Java'Enterprise'Edition,' untuk kebutuhan skala besar)
• Java2ME (Java'Mobile'Edition,' untuk kebutuhan pemrograman mobile)

Versi':'1 Revisi':'0 Halaman':' 17 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

Organisasi folder)untuk JDK

• Jika suatu JDK'telah didownload dan diinstall


dalam komputer kita,'organisasi dikelola dalam
folder' yang'namanya sesuai pakcage
• Contoh package'pada j2sdk1.8 adalah :
• bin :'berisi beberapa program'compiler' javac.exe,'
interpreter'java.exe,'appletviewer dll
• include :'berisi fileZfile'pendukung
• demos :'berisi contoh aplikasi/applet
• jre :'untuk pemrograman jre
• lib :'berisi librari
• source :'berisi kode sumber untuk class

Versi':'1 Revisi':'0 Halaman':' 18 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

Organisasi dari source

• 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

Versi':'1 Revisi':'0 Halaman':' 19 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

Organisasi dari folder:)java)

• Pada folder'java ini lah didefinisikan package'


dan class'untuk pembuatan program' java
• Folder' java'berisi package':
• applet :'untuk clas pendukung applet
• lang :'untuk definisi class'umum seperti class':'
String, Character
• io :'untuk definisi calss berhubungan dengan
io,'seperti :'Stream
• math :'untuk class'fungsiZfungsi matematika,'
seperti sqrt(), random()
• net : untuk koneksi dengan
jaringan

Versi':'1 Revisi':'0 Halaman':' 20 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

5.)Pengembangan Program)Java) Menggunakan NetBeans:)


Membuat Project)Java
1.'Pilih File,' New2Project2untuk menampilkan jendela New2Project

Versi':'1 Revisi':'0 Halaman':' 21 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

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

Versi':'1 Revisi':'0 Halaman':' 22 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

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

Versi':'1 Revisi':'0 Halaman':' 23 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

Membuat Class)Java

Versi':'1 Revisi':'0 Halaman':' 24 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

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.

Versi':'1 Revisi':'0 Halaman':' 25 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

Mengkompilasi dan Menjalankan Class


• Untuk menjalankan Welcome.java,'klik kanan pada Welcome.java untuk
menampilkan context'menu'dan pilih Run2File,'atau tekan Shift+F6
• Output'akan ditampilkan pada Output2 pane.
• Perintah Run2File2secara otomatis mengcompile program

Versi':'1 Revisi':'0 Halaman':' 26 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

Pengenalan Aplikasi Java


" Aplikasi java'adalah sebuah program'komputer yang'akan dieksekusi ketika kita
menggunakan perintah java'untuk menjalankan Java'Virtual'Machine'(JVM)
" Pada bagian ini kita akan belajar tentang bagaimana cara mengZcompile dan meZ
run (menjalankan)'aplikasi Java.
" Program'java'dieksekusi dari method'main pada class

Versi':'1 Revisi':'0 Halaman':' 27 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

Program)Java)Pertama:)Cetak teks ke layar


Mari'kita mulai program'Java'sederhana untuk menampilkan teks Selamat
Belajar Pemrograman Java! ke layar komputer

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

Selamat Belajar Pemrograman Java!

Versi':'1 Revisi':'0 Halaman':' 28 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

Program)Java)Pertama:)Cetak teks ke layar


• Setiap program'Java'dimulai dengan blok pembuka { dan diakhiri dengan blok
penutup }
• Setiap class'memiliki blok class'yang'mengelompokkan data'dan method'dari class
• Setiap method'memiliki blok method'yang'mengelompokkan statemenZstatemen
dalam method

public class Program1 {


public static void main(String[] args) { Blok'Class
System.out.println(“Selamat Belajar Pemrograman Java!”); Blok'Method
}
}

Versi':'1 Revisi':'0 Halaman':' 29 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

Karakter Spesial pada Program)Java


" Kita'dapat melihat beberapa spesial karakter dalam program'(contoh:'{2},'
//,'; )
1. // Program1.java
2. public class Program1 {
3. //method utama dimulai dengan eksekusi dari aplikasi Java
4. public static void main(String[] args) {
5. //menampilkan teks Selamat Belajar Pemrograman Java! Ke layar
6. System.out.println(“Selamat Belajar Pemrograman Java!”);
7. } //akhir method utama
8. } //akhir class Program1

Versi':'1 Revisi':'0 Halaman':' 30 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

Karakter Spesial pada Program)Java


" Kita'dapat melihat beberapa spesial karakter dalam program'(contoh:'{2},'
//,'; )

Karakter Deskripsi

{} Menunjukkan block'untuk menyertakan statemen

() Digunakan dengan method

[] Menunjukkan array

// Baris komentar sebaris

““ Menyertakan string'(urutan karakter)

; Tanda akhir statemen

Versi':'1 Revisi':'0 Halaman':' 31 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 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.

public class Program1

Versi':'1 Revisi':'0 Halaman':' 32 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

Aturan Penamaan Class


" Sebaiknya dibuat kesepakan tentang penamaan kelas yang'baik
" Nama kelas dimulai dengan huruf besar di'awal kata'untuk setiap kata'
(Contoh:'ContohNamaClass).
" Nama kelas adalah identifier':'sekumpulan karakter yang'terdiri dari huruf,'
angka,'underscore'(_)'dan tanda dolar ($)'yang'tidak dimulai dengan angka
dan tidak boleh ada spasi.
" Contoh nama class'yang'valid':'Program1,'$nilai,'_nilai,'M_InputKolom1'
dan tombol5.
" Contoh yang'tidak valid:'5tombol,'input'kolom.
" Java'bersifat case'sensitive,'huruf besar dan huruf besar berbeda,'sehingga
nilai dan Nilai adalah identifier'yang'berbeda walaupun samaZsama valid.

Versi':'1 Revisi':'0 Halaman':' 33 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

Class)Body
" diawali dengan { untuk memulai deklarasi dari body'(tubuh)'class'dan
diakhiri dengan }
" jika memulai dengan { maka jangan lupa dengan menutup dengan }

Versi':'1 Revisi':'0 Halaman':' 34 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 Method

public static void main(String[] args)


adalah awal mulai dari setiap aplikasi Java

" Setiap mendeklarasikan sebuah class'Java'maka normalnya akan berisi


minimal'satu atau lebih method.
" untuk sebuah aplikasi Java,'satu dari method'harus disebut sebagai main'
dan method'tersebut harus didefinisikan.
" Method'tersebut yang'akan mengembalikan informasi ketika tugas telah
selesai.
" Kata'kunci void'mengindikasikan bahwa method'tidak akan
mengembalikan informasi.

Versi':'1 Revisi':'0 Halaman':' 35 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

Menampilkan Output)ke layar dengan


System.out.println
System.out.println(“Selamat Belajar Pemrograman
Java!”);

" instruksi komputer untuk melakukan aksi untuk menampilkan karakter


diantara tanda “'dan “
" karakter dapat berupa string'atau disebut dengan character'string'atau
string'literal
" System.out adalah objek predefined,' diketahui sebagai standar objek
output
" System.out.println,'argumen “Selamat Belajar
Pemrograman Java!” dan (;)'disebut sebagai statemen
" Setiap method'dapat berisi satu atau lebih statemen
" Setiap statemen diakhiri dengan tanda (;)

Versi':'1 Revisi':'0 Halaman':' 36 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

Compile)dan Run)menggunakan Command)Prompt


" untuk mengcompile program'ketikkan:
javac NamaClass.java
" untuk run'(mengeksekusi/menjalankan program)'ketik:
java2NamaClass

Versi':'1 Revisi':'0 Halaman':' 37 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

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

Selamat Belajar Pemrograman Java!

Versi':'1 Revisi':'0 Halaman':' 38 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

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

Menampilkan Teks dengan printf


" method'System.out.printf (f'dari kata'‘formatted’)'menampilkan data'yang'diformat.'
" contoh berikut menggunakan method'untuk menampilkan dua baris string'“Selamat belajar”'
dan “Pemrograman Java!”.
" %s'untuk format'string
" %n'untuk pindah baris
" %d'untuk number

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

Masukan Program)dari Keyboard


" Untuk aplikasi berbasis DOS'dengan command'line'interaktif dapat dibuat program'masukan dari Keyboard
" Package'java.io telah mendefinisikan suatu class'abstract'InputStream method'untuk membaca aliran byte'
data'antara lain'method'read()'untuk membaca sejumlah byte'dari keyboard
" Arthur'van'Hoff'(1995)'mendefinisikan suatu class'final'yang'dinamakan class'System'yang'didalamnya
didefinisikan beberapa objek,'yaitu in untuk standar masukan keyboard'dan out2untuk output' ke layar
Untuk input'dari keyboard
System.io.read()
Sedangkan untuk output' dari keyboard
System.io.println(String s)
" Cay'Horstmann (1996)'mendefinisikan suatu package'corejava yang'mendefinisikan class'Console'yang'
didalamnya terdiri dari beberapa method'System.in.read()'antara lain:
Console.readString(string'prompt)':'untuk masukan string'dari keyboard
Console.readInt(string'prompt)':'untuk masukan integer'dari keyboard
Console.readDouble(string'prompt)':'untuk masukan double'dari keyboard
" Julio'Sanchez'dan Maria'Canton'(2002)'mendefinisikan class'Keyin yang'memanfaatkan class'dari
InputStream yaitu method:
Keyin.inChar(String prompt) : untuk input karakter
Keyin.inString(String prompt) : untuk input string
Keyin.inInt(String prompt): untuk input integer
Keyin.inDouble(string prompt) : untuk input double

Versi':'1 Revisi':'0 Halaman':' 41 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

Contoh baca data)dari Keyboard


" Program'berikut membaca berbagai jenis data'dengan
menggunakan method'dari class'Console
1. import corejava.*;
2. public class CobaBaca
3. public static void main (String [] args) {
4. int u;
5. String nm;
6. float Gj;
7.
8. Nm = Console.readString(“Siapa namamu ? ”);
9. u = Console.readInt(“Berapa umurmu ? ”);
10. Gj = (float)Console.readDouble(“Sekarang gajimu berapa Rp ? ”);
11.
12. System.out.println(“Halo “+Nm);
13. System.out.println(“Kamu lahir tahun “+ 2017-u));
14. System.out.println(“Sekarang kamu kaya ya !! Gajimu : “+Gj);
15. }
16. }

Siapa namamu ?'Jon'<enter>


Berapa umurmu ?'17'<enter>
Sekarang gajimu berapa Rp ?'10000000'<enter>
Halo'Jon
Kamu lahir tahun 2000
Sekarang kamu kaya'ya !!'Gajimu :'10000000
Versi':'1 Revisi':'0 Halaman':' 42 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

Membaca input)Keyboard)dengan class)Scanner)dan


Menambahkan Integer
1. // ProgramInputScanner.java
2. // Program inputan keyboard
3. import java.util.Scanner; //program menggunakan class Scanner
4.
5. public class InputScanner
6. {
7. //method utama dimulai dengan eksekusi dari aplikasi Java
8. public static void main(String[] args)
9. {
10. //membuat inputan keyboard dengan Scanner
11. Scanner input = new Scanner(System.in); Masukkan angkat ke 1:'40
12. Masukkan angka ke 2:'25
13. int nilai1; Jumlah :'65
14. int nilai2;
15. int jumlah;
16.
17. System.out.println(“Masukkan angka ke 1: ”); //kursor
18. nilai1 = input.nextInt(); //membaca angka pertama dari keyboard
19.
20. System.out.println(“Masukkan angka ke 2: ”); //kursor
21. nilai2 = input.nextInt(); //membaca angka kedua dari keyboard
22.
23. jumlah = nilai1 + nilai2; //penjumlahan nilai
24.
25. System.out.println(“Jumlah : %d%n”, jumlah); //tampilkan penjumlahan
26. } //akhir method utama
27. } //akhir class InputScanner

Versi':'1 Revisi':'0 Halaman':' 43 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

" deklarasi import'membantu compiler'untuk meletakkan class'yang'


digunakan dalam program.2Program'tersebut menggunakan predefined'
class'Scanner dari package'java.util.
" Java'menganut konsep reuse
" ClassZclass'dapat dikelompokkan ke dalam packages
" Packages2adalah sekumpulan class'yang'saling terkait

Versi':'1 Revisi':'0 Halaman':' 44 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

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

Versi':'1 Revisi':'0 Halaman':' 45 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

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

Versi':'1 Revisi':'0 Halaman':' 46 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

Aritmatika
Operasi Java Operator Ekspresi Aljabar Ekspresi Java

Tambahan + f'+'7 f'+'7

Pengurangan Z pZc pZc

Perkalian * bm b *'m
$
Pembagian / !/# atau atau ! ÷ # x /'y
%

Sisa Pembagian % r mod's r %'s

Versi':'1 Revisi':'0 Halaman':' 47 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

Pengambilan Keputusan:)Persamaan

Operator2Aljabar Persamaan di2Java Contoh Kondisi diJava Arti dari kondisi di2Java

= == x =='y x sama dengan y

! != x !='y x tidak sama dengan y

Versi':'1 Revisi':'0 Halaman':' 48 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

Pengambilan Keputusan:)Operator)Relasional

Operator Aljabar Operator Relasional Contoh kondisi di2Java Arti kondisi di2Java

> > x >'y x'lebih besar y

< < x <'y x'lebih kecil y

≥ >= x >='y x'lebih besar atau sama


dengan y
≤ <= x <='y x'lebih kecil atau sama
dengan y

Versi':'1 Revisi':'0 Halaman':' 49 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

Membuat,)Mengkompile dan Mengeksekusi Program)


Java
Program'Java'disimpan
dalam file'.java'dan
dikompile ke dalam file'
.class.'File'.class'dieksekusi
oleh Java'Virtual'Machine'
(JVM)
Nama file'Welcome.java
Kompile Welcome.java:
javac Welcome.java

Versi':'1 Revisi':'0 Halaman':' 50 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

Membuat,)Mengkompile dan Mengeksekusi Program)


Java
a. Source'code'Java'diterjemahkan menjadi bytecode
b. Java'bytecode dapat dieksekusi pada komputer dengan JVM

Versi':'1 Revisi':'0 Halaman':' 51 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

• Gambar berikut menunjukkan perintah javac untuk mengkompilasi


Welcome.java.'Compiler'mengenerate file'Welcome.class dan dieksekusi
menggunakan perintah java

Versi':'1 Revisi':'0 Halaman':' 52 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

6.)Style)Pemrograman dan Dokumentasi


" Style'program'yang'baik dan dokumentasi yang'tepat membuat program'
mudah dibaca dan membantu programmer'untuk menghindari errors

Versi':'1 Revisi':'0 Halaman':' 53 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

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.'

Versi':'1 Revisi':'0 Halaman':' 54 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

Indentasi dan Spasi yang)tepat

" Style'Indentasi yang'konsisten membuat program'rapi dan mudah dibaca,'


didebug dan dimaintain.'

System.out.println(3+4*4); Bad'Styles
System.out.println(3 + 4 * 4); Good' Styles

Versi':'1 Revisi':'0 Halaman':' 55 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

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”); }
}
}

Versi':'1 Revisi':'0 Halaman':' 56 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

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)

Versi':'1 Revisi':'0 Halaman':' 57 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

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 “

Versi':'1 Revisi':'0 Halaman':' 58 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

Runtime)Error
• Error'yang'menyebabkan program'terminate'secara tidak normal
• Contoh:'pembagian dengan nol.
// ShowRuntimeErrors.java

public class ShowRuntimeErrors {


public static main(String[] args){
System.out.println( 1 / 0 );
}
}

Versi':'1 Revisi':'0 Halaman':' 59 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

Logic)Error
• Error'terjadi ketika program'tidak dapat menjalankan sesuai cara
• Contoh:'

// ShowLogicErrors.java

public class ShowLogicErrors {


public static void main(String[] args){
System.out.println(“Celcius 35 is Fahrenheit degree “);
System.out.println( 9 / 5) * 35 +32);
}
}

Hasil Fahrenheit'67'derajat adalah salah.


Seharusnya 95.0
Dalam java'pembagian dengan integer'untuk 9'/5'adalah 1.
Untuk mendapatkan hasil yang'benar maka seharusnya gunakan 9.0'/'5

Versi':'1 Revisi':'0 Halaman':' 60 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

Kesalahan Umum :)
public class Welcome{
} Harus ditutup dengan kurung kurawal tutup

public static void main (String [] args) {


System.out.println(“Belajar Pemrograman”);
System.out.println(“Belajar dasar-dasar”) Kurang ;
}

public static void main (String [] args) {


System.out.println(“Belajar Pemrograman”);
System.out.println(“Belajar dasar-dasar) Kurang tanda “
}

public static void Main (string [] args) {


System.out.println(“Belajar Pemrograman”); Java2bersifat case2sensitive
System.out.println(“Belajar dasar-dasar”) Main seharusnya main
} String seharusnya string

Versi':'1 Revisi':'0 Halaman':' 61 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

Rangkuman

• Java'adalah'pemrograman' yang'bukan'sekedar' pemrograman' tetapi'adalah'sebuah'


platform'dan'sebuah'teknologi' baru'yang'lahir'untuk' menjawab'teknologi' baru'yaitu'
INTERNET
• Progam'java'dapat''dibuat'dengan'dua'pendekatan,'sebagai'aplikasi yang'berdiri' sendiri'
layaknya'program'C'atau'Pascal,'atau'sebagai'applet yang'disisipkan'dalm'dokumen'
HTML
• Java'adalah'pemrograman' murni' OOP,'artinya'tidak'mungkin' membuat'program' java'
tanpa'kita'mendefinisikan' class,'data'dan'method.'Ini'berbeda'dengan'Pascal'atau'C++,'
dimana'OOP'adalah'pilihan' saja
• Struktur' program'java'adalah':
class Nama_Kelas [extends Nama_induk][implements
nama_interface{ body };
• Struktur' program'pengembangan' adalah'semataZmata'mengembangkan' classZclass'inti'
java'menjadi' solusikebutuhan' kita

Versi':'1 Revisi':'0 Halaman':' 62 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

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'…

Versi':'1 Revisi':'0 Halaman':' 63 Dari':'63


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

KENDALI(PROGRAM,(PERULANGAN,(DAN(ARRAY

Dosen:
Erma+Susanti,+S.Kom,+M.Cs

Versi+:+1 Revisi+: Halaman+:+1 Dari+:+26


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

Tujuan

Setelah mengikuti mata kuliah ini mahasiswa dapat:


• Membuat program+java+dengan konsep kondisional
• Membuat program+java+dengan konsep perulangan (looping)
• Mengelola data+dengan array

Versi+:+1 Revisi+:+0 Halaman+:+ 2 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

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+

Versi+:+1 Revisi+:+0 Halaman+:+ 3 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

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)

Versi+:+1 Revisi+:+0 Halaman+:+ 4 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

1.)Penyeleksian Kondisi di)Java


! If+statemen
Tindakan dilakukan jika kondisi bernilai benar,+atau mengabaikan kondisi
yang+salah
! If…else+ statemen
Tindakan dilakukan jika kondisi benar dan melakukan tindakan yang+lain+jika
kondisi salah
! Switch+statemen
Digunakan jika melakukan satu atau banyak tindakan berbeda,+bergantung
pada nilai ekspresi yang+diberikan

Versi+:+1 Revisi+:+0 Halaman+:+ 5 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

Statemen kondisional If)


Statemen kondisional If+dalam+JAVA+memiliki+4+macam+syntax :
• If (kondisi) statemen ;
atau
• If (kondisi) {blok statemen} ;
atau
• If (kondisi) statemen1 else statemen2;
atau
• If (kondisi) {blok statemen -1} else {blok
statemen-2} ;

BLOK+STATEMEN+:+kumpulan statemen yang+berada dalam blok {+}

Versi+:+1 Revisi+:+0 Halaman+:+ 6 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

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”)

Versi+:+1 Revisi+:+0 Halaman+:+ 7 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

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”);

Versi+:+1 Revisi+:+0 Halaman+:+ 8 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

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”

Versi+:+1 Revisi+:+0 Halaman+:+ 9 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

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+

Versi+:+1 Revisi+:+0 Halaman+:+ 10 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

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

Versi+:+1 Revisi+:+0 Halaman+:+ 11 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

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;] }
}

Versi+:+1 Revisi+:+0 Halaman+:+ 12 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

Hasil contoh aplikasi switch)(1)

Edit+program+dengan+editor+
teks+
TextaPad+:

Compilasi+dengan+javac.exe
Eksekusi++dengan
java.exe

Versi+:+1 Revisi+:+0 Halaman+:+ 13 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

Pembahasan break))

Jika dibelakang deretan statemen tidak dipasang


statemen break;+maka setelah evaluasi statemen
yang+sesuai case,+alur program+tidak loncat keluar
tetapi mengevaluasi kembali statemen case yang+
dibawahnya
Sebagai contoh jika statemen break dibelakang
case 6+dihilangkan,+ maka alur program+akan
mengevaluasi case dibawahnya
Hasil program+ seperti disebelah ini

Versi+:+1 Revisi+:+0 Halaman+:+ 14 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

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

Versi+:+1 Revisi+:+0 Halaman+:+ 15 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

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

Versi+:+1 Revisi+:+0 Halaman+:+ 16 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

Contoh Pengulangan for

1. public class PernyatanFor{ 1


2. public static void main(String[] args)
3. { 2
4. int bilangan = 0; 3
5.
6. for (int bil = 1; bil < 13; bil++) 4
7. System.out.println(bil); 5
8. }
9. } 6
7
8
9
10
11
12

Versi+:+1 Revisi+:+0 Halaman+:+ 17 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 (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(:

for (counter = nilaiawal; kondisi; perubahan counter)


{ body of loop}

Contoh :
for(int i=0; i<5; i++)
System.out.println(i+” “);
Hasil:
0 1 2 3 4

Versi+:+1 Revisi+:+0 Halaman+:+ 18 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

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;

Versi+:+1 Revisi+:+0 Halaman+:+ 19 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 while(.){})dan do){}while(.)

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.

Versi+:+1 Revisi+:+0 Halaman+:+ 20 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

Contoh loop)while)untuk mencari akar suatu bilangan real


Programnya+:

Hasil+programnya:

Versi+:+1 Revisi+:+0 Halaman+:+ 21 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

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

Versi+:+1 Revisi+:+0 Halaman+:+ 22 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

Contoh Kondisi While

1. public class PernyataanWhile{


2. public static void main(String[] args)
3. {
4. int jumlah = 1;
5.
6. while (jumlah <= 5) {
7. System.out.println(“Java”);
8.
9. jumlah++; //menaikkan nilai sebesar 1
10. } }

Java
Java
Java
Java
Java

Versi+:+1 Revisi+:+0 Halaman+:+ 23 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

Contoh Kondisi While

1. public class BilanganGenap{


2. public static void main(String[] args)
3. {
4. int bilangan = 0;
5.
6. while (bilangan <= 10) {
7. System.out.println(bilangan);
8.
9. bilangan +=2; //menaikkan nilai sebesar 2
10. }
11. } }

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

Contoh Kondisi While)salah


• Ada+kemungkinan bahwa blok pernyataan tidak dijalankan sama sekali
sekiranya ketika while+mulai dieksekusi ternyata nilai kondisinya berupa
false+(salah)

1. public class KondisiWhileSalah {


2. public static void main(String[] args)
3. {
4. int bilangan = 40;
5.
6. while (bilangan <= 20) {
7. System.out.println(bilangan);
8.
9. bilangan+=2; //menaikkan nilai sebesar 2
10. }
11. } }

Versi+:+1 Revisi+:+0 Halaman+:+ 25 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#
:

do { body of loop } while(kondisi)

Contoh :
int n=5;
do{System.out.println(n+” “); n--;}
while(n>0;
Hasil:
5 4 3 2 1

Versi+:+1 Revisi+:+0 Halaman+:+ 26 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

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

Versi+:+1 Revisi+:+0 Halaman+:+ 27 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

Contoh Kondisi do…While

1. public class EksekusiSekali {


2. public static void main(String[] args){
3. int bilangan = 10;
4.
5. do {
6. System.out.println(“Java”);
7. bilangan--;
8. } while (bilangan <= 8);
9. }
10.}

Versi+:+1 Revisi+:+0 Halaman+:+ 28 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

Keluar dari Pengulangan


• Java+menyediakan sebuah pernyataan yang+berguna untuk keluar dari suatu
pengulangan (loop)
• Pernyataan tersebut adalah break

while (…) {
if (…)
break;
} //akhir while
pernyataan_x;

Versi+:+1 Revisi+:+0 Halaman+:+ 29 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

Contoh break

1. public class EfekBreak {


2. public static void main(String[] args)
3. {
4. int bil; 1
5. 2
6. for (bil = 1; bill <= 10; bil++) {
3
7. if (bil == 5)
8. break;
4
9.
10. System.out.println(bil);
11. }
12. }
13. }

Versi+:+1 Revisi+:+0 Halaman+:+ 30 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

Pernyataan Continue
• Pernyataan continue+dimaksudkan untuk mengarahkan eksekusi ke kondisi
pernyataan for,+do..while,+atau while+sehingga kondisi akan dievalusi lagi

1. public class PernyataanContinue {


2. public static void main(String[] args)
3. {
4. int i = 0;
5. 0
6. while (i < 5) {
1
7. if (i == 3) {
8. i++;
2
9. continue; 4
10. }
11. System.out.println(i);
12. i++;
13. }
14. }
15. }
Versi+:+1 Revisi+:+0 Halaman+:+ 31 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

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

Versi+:+1 Revisi+:+0 Halaman+:+ 32 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

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)

Versi+:+1 Revisi+:+0 Halaman+:+ 33 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

Membuat Array
• Mendeklarasikan variabel untuk merujuk ke array
• Menciptakan objek array+dan menugaskannya ke variabel yang+
dideklarasikan pada langkah pertama

Versi+:+1 Revisi+:+0 Halaman+:+ 34 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

DEKLARASI)ARRAY
• tipePrimitive namaVariabelArray[];
• namaClass namaVariabelArray[];
• Contoh:+
String[] kota; atau bisa ditulis String kota[];
int[] nilai;

Versi+:+1 Revisi+:+0 Halaman+:+ 35 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

Menciptakan Objek Array


• Penciptaan objek array+dan penugasan objek ke variabel array+dilakukan dengan
menggunakan kata+kunci new
• namaKelas namaVariabel = new namaKelas[jumlahElemen];
• TipePrimitif namaVariabel = new
tipePrimitif[jumlahElemen];
• Contoh:
kota = new String[5];
nilai = new int[3];
Dua pernyataan seperti
String[] kota;
kota = new String[5];
dapat disingkat menjadi
String[] kota = new
String[5];
Versi+:+1 Revisi+:+0 Halaman+:+ 36 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

Mengakses Elemen Array


• Elemen array+dapat diakses melalui notasi:
namaVariabelArray[subskrip]
• Subskrip berupa nomor elemen
• Elemen pertama memiliki subskrip berupa nol,+elemen kedua mempunyai
subskrip 1+dst
• Contoh:
kota[0] = “Jakarta”;
• Akan+membuat elemen pertama (subskrip 0)+array+yang+dirujuk kota diisi
dengan string+“Jakarta”

Versi+:+1 Revisi+:+0 Halaman+:+ 37 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

Memberikan Nilai Saat Objek Array)Diciptakan

• Pemberian nilai pada array+dapat dilakukan sewaktu objek array+diciptakan


• Contoh:+String[]+kota =+{“Jakarta”,+“Bandung”,+“Semarang”,+“Medan”,+
“Yogyakarta”};

1. public class ContohArray {


2. //main method
3. public static void main(String[] args) {
4. String[] kota = {“Jakarta”, “Bandung”,
“Semarang”, “Medan”, “Yogyakarta”};
5.
6. //menampilkan elemen array
7. System.out.println(kota[0]); Jakarta
8. System.out.println(kota[1]);
9. System.out.println(kota[2]);
Bandung
10. System.out.println(kota[3]); Semarang
11. System.out.println(kota[4]); Medan
12. }
Yogyakarta
13. }

Versi+:+1 Revisi+:+0 Halaman+:+ 38 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

Mengetahui Jumlah Elemen Array


• Jumlah elemen array+dapat diketahui dengan menggunakan variabel
instance+length+milik objek array
• Contoh:+kota.length menghasilkan jumlah elemen array+yang+dirujuk oleh
kota
1. public class ContohArray {
2. //main method
3. public static void main(String[] args) {
4. String[] kota = {“Jakarta”, “Bandung”,
“Semarang”, “Medan”, “Yogyakarta”};
5.
6. //menampilkan elemen array
7. for (int I; I < kota.length; i++) Jakarta
8. System.out.println(kota[i]);
9. } Bandung
10. } Semarang
Medan
Yogyakarta

Versi+:+1 Revisi+:+0 Halaman+:+ 39 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

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”}

Versi+:+1 Revisi+:+0 Halaman+:+ 40 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

Contoh program)array)1)dimensi

• Program+
mendefinisikan+array+
berisi+nama+dan+
umur

• Hasil+program+:

Versi+:+1 Revisi+:+0 Halaman+:+ 41 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

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

Versi+:+1 Revisi+:+0 Halaman+:+ 42 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

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"}};

Versi+:+1 Revisi+:+0 Halaman+:+ 43 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

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. }

Versi+:+1 Revisi+:+0 Halaman+:+ 44 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

Contoh aplikasi array)2)dimensi untuk program)kamus.

Versi+:+1 Revisi+:+0 Halaman+:+ 45 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

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

Versi+:+1 Revisi+:+0 Halaman+:+ 46 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

Argumen Baris Perintah


• Penanganan baris perintah pada Java+dilakukan melalui argumen yang+
terdapat pada metode main().+Misalnya
• public+static+void+main+(String[]+args)+{
• Pada contoh ini,+argumen baris perintah dapat diambil dari variabel array+
args
• Jumlah argumen dapat diperoleh melalui variabel instan pada kelas String+
yang+bernama length
1. public class TampilArg {
2. public static void main(String[] args) {
3. for (int i; i < args.length; i++)
4. System.out.println(“Argumen ke- “+ (i+1) + “ : “ +
args[i]);
5. } Argumen kea 1+:+123+456
6. }
Argumen kea 2+:+Tes
Argumen kea 3+:+Tes

Versi+:+1 Revisi+:+0 Halaman+:+ 47 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

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+]

Versi+:+1 Revisi+:+0 Halaman+:+ 48 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

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.

Versi+:+1 Revisi+:+0 Halaman+:+ 49 Dari+:+49


Fakultas :)TEKNOLOGI)INDUSTRI Pertemuan)Ke :)5
Jurusan/Prodi :)TEKNIK)INFORMATIKA/TEKNIK)INFORMATIKA Handout) Ke :)1
Kode)Matakuliah :)MIP1202) Jumlah)Halaman :)26
Nama)Matakuliah :)PEMROGRAMAN)BERORIENTASI)OBJEK Mulai)Berlaku :)2017K2

CASTING(DATA

Dosen:
Erma+Susanti,+S.Kom,+M.Cs

Versi+:+1 Revisi+: Halaman+:+1 Dari+:+26


Fakultas :)Teknologi)Industri Pertemuan)Ke :)5
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)16
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017K2

Tujuan

Setelah mengikuti mata kuliah ini mahasiswa dapat:


• Memahami dan memanfaatkan pemahaman mengenai casting+data

Versi+:+1 Revisi+:+0 Halaman+:+ 2 Dari+:+16


Fakultas :)Teknologi)Industri Pertemuan)Ke :)5
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202) Jumlah)Halaman :)16
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017K2

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

Versi+:+1 Revisi+:+0 Halaman+:+ 3 Dari+:+16


Fakultas :)Teknologi)Industri Pertemuan)Ke :)5
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202) Jumlah)Halaman :)16
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017K2

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

Versi+:+1 Revisi+:+0 Halaman+:+ 4 Dari+:+16


Fakultas :)Teknologi)Industri Pertemuan)Ke :)5
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202) Jumlah)Halaman :)16
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017K2

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

Versi+:+1 Revisi+:+0 Halaman+:+ 5 Dari+:+16


Fakultas :)Teknologi)Industri Pertemuan)Ke :)5
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202) Jumlah)Halaman :)16
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017K2

Casting)Data
(tipedata)variabel
Contoh:
int a+=+10;
byte+b+=+5;
b+=+(byte)+a;

Berarti bahwa variabel a+yang+bertipe int dicasting ke tipe byte

Versi+:+1 Revisi+:+0 Halaman+:+ 6 Dari+:+16


Fakultas :)Teknologi)Industri Pertemuan)Ke :)5
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202) Jumlah)Halaman :)16
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017K2

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

Versi+:+1 Revisi+:+0 Halaman+:+ 7 Dari+:+16


Fakultas :)Teknologi)Industri Pertemuan)Ke :)5
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202) Jumlah)Halaman :)16
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017K2

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;

Versi+:+1 Revisi+:+0 Halaman+:+ 8 Dari+:+16


Fakultas :)Teknologi)Industri Pertemuan)Ke :)5
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202) Jumlah)Halaman :)16
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017K2

Casting)dalam Operasi Data)Primitive


! Apabila tipe byte,+short+dan int dioperasikan maka tipe yang+diambil oleh Java+adalah
tipe int
class p03 {
public static void main (String[] args) {
byte a = 50;
byte b = 5;
byte c = 10;
byte d = a*b/c;
System.out.println(“a = “+a+” b = “+b+” c =
“+c+” d = “+d);
}
}
Jika dicompile akan muncul kesalahan,+sehingga perlu dilakukan casting
byte d = (byte) (a*b/c);

Versi+:+1 Revisi+:+0 Halaman+:+ 9 Dari+:+16


Fakultas :)Teknologi)Industri Pertemuan)Ke :)5
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202) Jumlah)Halaman :)16
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017K2

Contoh:)casting)dalam operasi data)primitive


! Apabila tipe byte,+short+dan int dioperasikan maka tipe yang+diambil oleh Java+adalah tipe int
class p04 {
public static void main (String[] args) {
byte a = 50;
int b = 5;
float c = 2;
int d = (a*b/c);
int e = (a*b/(251));
System.out.println(“a = “+a+” b = “+b+” c = “+c+” d =
“+d);
System.out.println(“e = “+e);
}
}
Jika dicompile akan muncul kesalahan,+sehingga perlu dilakukan casting
int d = (int)(a*b/c);
int e = (int)(a*b/(251)); //hasil operasi di casting ke int

Versi+:+1 Revisi+:+0 Halaman+:+ 10 Dari+:+16


Fakultas :)Teknologi)Industri Pertemuan)Ke :)5
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202) Jumlah)Halaman :)16
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017K2

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();
}
}

Versi+:+1 Revisi+:+0 Halaman+:+ 11 Dari+:+16


Fakultas :)Teknologi)Industri Pertemuan)Ke :)5
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202) Jumlah)Halaman :)16
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017K2

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;
}

Versi+:+1 Revisi+:+0 Halaman+:+ 12 Dari+:+16


Fakultas :)Teknologi)Industri Pertemuan)Ke :)5
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202) Jumlah)Halaman :)16
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017K2

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

Jika statemen staff=boss+diganti dengan boss=staff+maka akan terjadi error+program.+Kesalahan


ini disebabkan karena perbedaan tipe data.
Untuk itu perlu dilakukan casting+dengan cara:
boss=(Manager)staff
Sehingga hasilnya
My+name+is+:+JON+My+salary+is+:+1000
My+secretary+:+Miss+Jane
My+name+is+:+JON+My+salary+is+:+1000
My+secretary+:+Miss+Jane

Versi+:+1 Revisi+:+0 Halaman+:+ 13 Dari+:+16


Fakultas :)Teknologi)Industri Pertemuan)Ke :)5
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202) Jumlah)Halaman :)16
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017K2

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”);

System.out.println(staff instanceof Employee);


System.out.println(staff instanceof Manager);
System.out.println(boss instanceof Employee);
System.out.println(boss instanceof Manager);
}
}
Hasil program+:
true
false
true
true

Versi+:+1 Revisi+:+0 Halaman+:+ 14 Dari+:+16


Fakultas :)Teknologi)Industri Pertemuan)Ke :)5
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202) Jumlah)Halaman :)16
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017K2

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:

if (staff instanceof Manager)


boss=*(Manager)staff;

Versi+:+1 Revisi+:+0 Halaman+:+ 15 Dari+:+16


Fakultas :)Teknologi)Industri Pertemuan)Ke :)5
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202) Jumlah)Halaman :)16
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017K2

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

Versi+:+1 Revisi+:+0 Halaman+:+ 16 Dari+:+16


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

CLASS,&OBJECT,&VARIABEL,&DAN&OPERATOR

Dosen:
Erma+Susanti,+S.Kom,+M.Cs

Versi+:+1 Revisi+: Halaman+:+1 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

Tujuan
Setelah mengikuti mata kuliah ini mahasiswa dapat:
! Mendefinisikan class+java
! Mendefinisikan object
! Menggunakan modifier
! Membuat program+menggunakan data+dan variabel

Versi+:+1 Revisi+:+0 Halaman+:+ 2 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

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+

Versi+:+1 Revisi+:+0 Halaman+:+ 3 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

1.)Pengenalan OOP:)class)dan object


! OOP+memungkinkan untuk mengembangkan software+untuk skala besar dan GUI+
secara efektif
! Class+dan objek merupakan paradigma dasar dari OOP
• 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
• Contoh class+:+Dog
• Contoh data+:+warna,+umur ,+harga
definisi data+menggunakan sintak :+tipe_data nama_var;
atau :+tipe_data nama_var=nilai_data;
• Contoh metod :+bark(),+sleep()+
definisi metod :
[public/static]+return_value nama_metod(parameter){+…+}
{+isi metod}+

Versi+:+1 Revisi+:+0 Halaman+:+ 4 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

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”);
}
}

Versi+:+1 Revisi+:+0 Halaman+:+ 5 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

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

Memanggil method)dari objek


• Berikut ini class+yang+memuat program+utama dan memanggil metod bark()+dan seyHello().
• Rumus memanggil metod adalah :+
nama_class.nama_metod()

public class DogRun


{public static void main (String[ ] arg)
{ Dog myDog= new Dog(“Heli”,3);
Dog yourDog = new Dog(“Pleki”, 1);
myDog.bark();
myDog.sayHello();
System.out.println(“Kenalkan anjingmu:”);
yourDog.sayHello();
} // akhir main
} //akhir definisi class

Versi+:+1 Revisi+:+0 Halaman+:+ 7 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

Edit)program)dengan TextPad dan kompilasi dengan javac.exe,)


eksekusi dengan java.exe
Edit+dengan+
TextPad4

Versi+:+1 Revisi+:+0 Halaman+:+ 8 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:

Versi+:+1 Revisi+:+0 Halaman+:+ 9 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

Definisi Class)untuk Object


! sebuah class+mendefinisikan properties+dan behavior+untuk object
! OOP+merupakan pemrograman yang+menggunakan objekeobjek
! contoh:+mahasiswa,+meja,+lingkaran,+tombol dapat dilihat sebagai objek
! setiap objek memiliki identitas unik,+state+dan behavior
! State+dari objek (juga disebut sebagai properties+ atau atribut)+direpresentasikan
dengan data+field+yang+memiliki nilai.+Contoh:+objek lingkaran memiliki data+field+
jejari yang+merupakan karakteristik dari lingkaran.+Objek segi empat memiliki data+
field+panjang dan lebar,+yang+merupakan karakteristik dari segi empat.
! Behavior+dari objek (juga disebut sebagai action/aksi)+didefinisikan sebagai method.+
Method+ pada objek adalah objek yang+melakukan aksi.+Contoh:+untuk objek
lingkaran didefinisikan method+ setJejari(Jejari),+ getLuas()+untuk mengembalikan area+
dan getKeliling()+ untuk mengembalikan keliling.
! objekeobjek bertipe sama didefinisikan dalam sebuah class

Versi+:+1 Revisi+:+0 Halaman+:+ 10 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

Definisi Class)Untuk Objek


! Class+adalah sebuah template,+blueprint,+atau contract+yang+
mendefinisikan bagaimana object+data+field+dan method+di+dalamnya
! Objek adalah instance+dari sebuah class.+Kita+dapat membuat banyak
instance+dalam sebuah class
! sebuah class+Java+menggunakan variabel untuk mendefinisikan data+field+
dan method+untuk mendefinisikan aksi
! sebagai tambahan,+class+menyediakan sebuah tipe khusus yang+disebut
sebagai konstruktor yang+diciptakan pada saat membuat objek baru
! konstruktor dapat melakukan aksi,+tetapi konstruktor didesain untuk
melakukan inisialisasi aksi,+seperti inisialisasi field+data+dari objek

Versi+:+1 Revisi+:+0 Halaman+:+ 11 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

Template)Class
Class:+Lingkaran
Template+Class
Field+Data:
Jejari _____

Method:
getLuas
getKeliling
setJejari

Object+Lingkaran 1 Object+Lingkaran 2 Object+Lingkaran 3

Field+Data: Field+Data: Field+Data:


Jejari __1___ Jejari __25___ Jejari __125___

Versi+:+1 Revisi+:+0 Halaman+:+ 12 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

class Lingkaran {
Struktur Class
double radius = 1; Field+Data
Lingkaran() { } // konstuktor objek lingkaran

// kontruktor objek lingkaran


Lingkaran(double newJejari) {
Konstruktor
jejari= newJejari;
}

// mengembalikan objek luas Lingkaran


double getLuas() {
return jejari* jejari* Math.PI;
}
// mengembalikan keliling lingkaran
double getKeliling() {
return 2 * jejari* Math.PI; Method
}
// mengatur jejari baru untuk lingkaran
double setJejari(double newJejari) {
jejari= newJejari;
}
}
Versi+:+1 Revisi+:+0 Halaman+:+ 13 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

Class)Diagram)UML
Lingkaran Class
jejari:+double Field+Data
Lingkaran()
Lingkaran(newJejari: double)
getLuas():+double Konstruktor dan Method
getKeliling():+double
setJejari(newJejari:+double):+void

lingkaran1:&Lingkaran lingkaran2:&Lingkaran lingkaran3:&Lingkaran Notasi UML+


untuk Objek
Jejari =+1 Jejari =+25 Jejari =+125

Versi+:+1 Revisi+:+0 Halaman+:+14 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

Definisi Method
methodName(parameterName:+parameterType):+returnType

Versi+:+1 Revisi+:+0 Halaman+:+ 15 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

Contoh:)Definisi Class)dan Membuat Objek


• Class+Lingkaran dibuat untuk membuat objek

//File TesLingkaran.java TesLingkaran.class


public class TesLingkaran {
Menegenerate
….
}
Java+
Compiler
Class Lingkaran { diecompile+oleh
…. menegenerate
}
Lingkaran.class

Versi+:+1 Revisi+:+0 Halaman+:+ 16 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

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. } }

Versi+:+1 Revisi+:+0 Halaman+:+ 17 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

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)

Versi+:+1 Revisi+:+0 Halaman+:+ 19 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)
• 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;}

Misalkan+dalam+class DogRun+ didefinisikan+ objek+yourDog


Dog yourDog=new Dog();
Maka+jika+dalam+class+DogRun+ dipanggil+ :+
yourDog.seyHello();
Outputnya+:+(nilai+nama+dan+umur+ digunakan+ nilai+default)
Hello my name is Noname I’am a 0 years old

Versi+:+1 Revisi+:+0 Halaman+:+ 20 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

Mengakses Objek melalui Variabel Referensi


• Data+objek dan method+dapat diakses melalui operator+titik (.)+melalui
objek variabel referensi
• Objek baru dialokasikan dalam memori.+Objek dapat diakses melalui
variabel referensi

Versi+:+1 Revisi+:+0 Halaman+:+ 21 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

Variabel Referensi dan Tipe Referensi


• Objek diakses melalui variabel referensi objek,+yang+terdiri dari referensi ke objek
• Sintaks:+NamaClass objectRefVar;
• Class+adalah tipe referensi,+berarti variabel dari tipe class+dapat mereferensikan
instance+dari class.+Contoh statemen berikut mendeklarasikan variabel iniLingkaran
menjadi tipe Lingkaran
Lingkaran iniLingkaran;
• Variabel iniLingkaran dapat mereferenskan objek Lingkaran.+Statemen berikutnya
membuat objek dan menugaskan referensi ke iniLingkaran:
iniLingkaran =+new+Lingkaran();
• Kombinasi deklarasi keduanya dapat ditulis menjadi satu:
NamaClass objectRefVar =+new+NamaClass();
Lingkaran iniLingkaran =+new+Lingkaran();
• Variabel iniLingkaran mengacu kepada objek Lingkaran

Versi+:+1 Revisi+:+0 Halaman+:+ 22 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

Mengakses Data)Objek dan Method


• Dalam OOP,+anggota objek mengacu kepada field+data+dan method
• Setelah objek diciptakan,+data+dapat diakses dan method+ dapat dipanggil menggunakan
operator+titik (.)+
• objectRefVar.dataField mereferensikan field+ data+pada objek
• objectRefVar.method(argumen) memanggil method+pada objek
• Contoh:+iniLingkaran.jejari mengacu kepada jejari pada iniLingkaran dan
iniLingkaran.getLuas()+ memanggil method+ getLuas pada iniLingkaran.+Method+
memanggil operasi objek.
• Field+data+jejari mengacu sebagai instance+variabel,+karena bergantung pada instance+
tertentu
• Method+ getLuas mengacu sebagai instance+method,+ karena memanggil hanya instance+
tertentu.
• Objek pada instance+method+ disebut sebagai calling+object+(pemanggil objek)

new+Lingkaran();
atau
System.out.println(“Luas adalah “++new+Lingkaran(5).getLuas());

Versi+:+1 Revisi+:+0 Halaman+:+ 23 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

Referensi Field)Data)dan Nilai null

• Field+data+dapat menjadi tipe referensi


• Contoh,+berikut class+Mahasiswa berisi field+data+nama dengan tipe String.

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);
}
}

Versi+:+1 Revisi+:+0 Halaman+:+ 24 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

Referensi Field)Data)dan Nilai null


• Contoh error$compile,+karena lokal variabel x+dan y+belum dinisialisasi

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

Versi+:+1 Revisi+:+0 Halaman+:+ 25 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

Menggunakan Class)dari Library)Java


• Java+API+berisi sekumpulan class+untuk
mengembangkan program+Java
1. Class+Date
Java+menyediakan systemeindependent+
encapsulation+dari date+dan time+dalam
class+java.util.Date

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());+

The elapsed time since Jan 1, 1970 is 1324903419651 milliseconds Mon


Dec 26 07:43:39 EST 2011
Versi+:+1 Revisi+:+0 Halaman+:+ 26 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

Menggunakan Class)dari Library)Java

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;+
}+

Versi+:+1 Revisi+:+0 Halaman+:+ 28 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

Deklarasi Konstanta
• Konstanta adalah class+yang+dibagi oleh semua objek dari class
• Konstanta harus dideklarasikan sebagai final+static

final&static&double&PI+=+3.14159265358979323846;

Versi+:+1 Revisi+:+0 Halaman+:+ 29 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

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;

Versi+:+1 Revisi+:+0 Halaman+:+ 30 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

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

Versi+:+1 Revisi+:+0 Halaman+:+ 31 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

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

private+static+int numberOfObjects =+0; Enkapsulasi numberOfObjects

public+ LingkaranDenganPrivatData()+{
numberOfObjects++;
}

public+ LingkaranDenganPrivatData(double+ newJejari)+{


jejari =+newJejari;
numberOfObjects++;
}

Versi+:+1 Revisi+:+0 Halaman+:+ 32 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

Enkapsulasi Field)Data)
• Membuat field+data+private+untuk melindungi data+dan membuat class+
mudah untuk diatur

public+ double+ getJejari()+ {


return+jejari;
}

public+ void+setJejari (double+ newJejari){


jejari =+(newJejari >=+0)+?+newJejari :+0;
}

public+ static+int getNumberOfObjects()+ {


return+numberOfObjects;
}

public+ double+ getLuas()+{


return+jejari *+jejari *+Math.PI;
}
}
Versi+:+1 Revisi+:+0 Halaman+:+ 33 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

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

Menggunakan this)untuk memanggil konstruktor


• This+dapat digunakan untuk memanggil konstruktor lain+pada class+yang+
sama

public&class&Circle+{+
private&double&radius;+

public&Circle(double&radius)+{+
this.radius =+radius;+
}+

public&Circle()+{+
this(1.0);+
}+
...&
}+

Versi+:+1 Revisi+:+0 Halaman+:+ 35 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

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

Versi+:+1 Revisi+:+0 Halaman+:+ 36 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

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

Versi+:+1 Revisi+:+0 Halaman+:+ 37 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

Contoh program)dengan data)dan operator):


class OperasiDATA
{ public static void main (String args[])
{int a; float b; double c; String d;
a=(int)1/3;b=(float)1/3 ; c=(double)1/3 ;
d="JON SHOLEH";
System.out.println("a = " +a);
System.out.println("b = " +b);
System.out.println("c = " +c);
System.out.println("d = " +d);
System.out.println("d.length() = " +d.length());
System.out.println("d.substring(0,3) = "
+d.substring(0,3));
}
}

Versi+:+1 Revisi+:+0 Halaman+:+ 38 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

Output)program):
a+=+0
b+=+0.333333
c+=+0.333333
d+=+JON+SHOLEH
d.length()+=+10
d.substring(0,3)+=JON

Versi+:+1 Revisi+:+0 Halaman+:+ 39 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

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);}
}

Versi+:+1 Revisi+:+0 Halaman+:+ 40 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

Akses data)public

Jika dimiliki program+utama : maka hasilnya :

Jika&di&program&utama&:&dituliskan&Dt.N_khusus&=&78;&maka&hasilnya&:

Mengases+data+private :+
Terjadi+error+saat+
kompilasi

Versi+:+1 Revisi+:+0 Halaman+:+ 41 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

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+:

Versi+:+1 Revisi+:+0 Halaman+:+ 42 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

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”);

Versi+:+1 Revisi+:+0 Halaman+:+ 43 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

Contructor dan Beberapa fungsi String


• String+memiliki beberapa konstruktor :
String(String+s+)+:+argumen string+s
String(byte+[+]+b+)+:+argumen berupa array+of+byte+b+
String(char+[+]+c+)+:+argumen berupa array+of+char++

• length() :+mengetahui panjang string


• substring(n,m) :+mengambil substring+dari string+sebanyak m+mulai dari posisi n
• equals(s) :+untuk mengetahui apakah suatu string+s+nilainya sama dengan string+
tersebut
• charAt(n)+:+mengambil satu data+char dari string+pada posisi n

Versi+:+1 Revisi+:+0 Halaman+:+ 44 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

Contoh constructor)dan pemanggilan metod String

Contoh&program:
b+=+array+of+byte
c+=+array+of+char

Hasil+program+

Versi+:+1 Revisi+:+0 Halaman+:+ 45 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

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

Versi+:+1 Revisi+:+0 Halaman+:+ 46 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

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.+

2. Buatlah+definisi+ class+TesMotor+ ,+untuk+membuat+ objek+motor+ :


motorku+ ,+nama+motor+HONDA+kondisi+ mati,+panggil+ metod+tampilkan()
motormu,+ nama+motor+ YAMAHA+,+panggil+ metod+nyalakan()+dan+tampilkan()+

Versi+:+1 Revisi+:+0 Halaman+:+ 47 Dari+:+47


Fakultas :)TEKNOLOGI)INDUSTRI Pertemuan)Ke :)7
Jurusan/Prodi :)TEKNIK)INFORMATIKA/TEKNIK)INFORMATIKA Handout)Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)33
Nama)Matakuliah :)PEMROGRAMAN)BERORIENTASI) OBJEK Mulai)Berlaku :)2017J2

MENDALAMI(CLASS,(OBJECT(DAN(METHOD

Dosen:
Erma+Susanti,+S.Kom,+M.Cs

Versi+:+1 Revisi+: Halaman+:+1 Dari+:+33


Fakultas :)Teknologi)Industri Pertemuan)Ke :)7
Jurusan/Prodi :)Teknik)Informatika)/)Teknik)Informatika Handout)Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)33
Nama)Matakuliah :)Pemrograman)Berorientasi)Objek) Mulai)Berlaku :)2017J2

Tujuan
Setelah mengikuti mata kuliah ini mahasiswa dapat :

• Memperdalam lagi bagaimana mendefinisikan class,+membuat objek,+


dan mendefinisikan method

Versi+:+1 Revisi+:+0 Halaman+:+ 2 Dari+:+33


Fakultas :)Teknologi)Industri Pertemuan)Ke :)7
Jurusan/Prodi :)Teknik)Informatika)/)Teknik)Informatika Handout)Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)33
Nama)Matakuliah :)Pemrograman)Berorientasi)Objek) Mulai)Berlaku :)2017J2

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

Versi+:+1 Revisi+:+0 Halaman+:+ 3 Dari+:+33


Fakultas :)Teknologi)Industri Pertemuan)Ke :)7
Jurusan/Prodi :)Teknik)Informatika)/)Teknik)Informatika Handout)Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)33
Nama)Matakuliah :)Pemrograman)Berorientasi)Objek) Mulai)Berlaku :)2017J2

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.

Versi+:+1 Revisi+:+0 Halaman+:+ 4 Dari+:+33


Fakultas :)Teknologi)Industri Pertemuan)Ke :)7
Jurusan/Prodi :)Teknik)Informatika)/)Teknik)Informatika Handout)Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)33
Nama)Matakuliah :)Pemrograman)Berorientasi)Objek) Mulai)Berlaku :)2017J2

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. }

Versi+:+1 Revisi+:+0 Halaman+:+ 5 Dari+:+33


Fakultas :)Teknologi)Industri Pertemuan)Ke :)7
Jurusan/Prodi :)Teknik)Informatika)/)Teknik)Informatika Handout)Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)33
Nama)Matakuliah :)Pemrograman)Berorientasi)Objek) Mulai)Berlaku :)2017J2

Definisi class)Dog)dan main)yang)rekursif

Disini+class+Dog+
dalam+main+adalah+
rekursif

Versi+:+1 Revisi+:+0 Halaman+:+ 6 Dari+:+33


Fakultas :)Teknologi)Industri Pertemuan)Ke :)7
Jurusan/Prodi :)Teknik)Informatika)/)Teknik)Informatika Handout)Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)33
Nama)Matakuliah :)Pemrograman)Berorientasi)Objek) Mulai)Berlaku :)2017J2

Hasil program

Versi+:+1 Revisi+:+0 Halaman+:+ 7 Dari+:+33


Fakultas :)Teknologi)Industri Pertemuan)Ke :)7
Jurusan/Prodi :)Teknik)Informatika)/)Teknik)Informatika Handout)Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)33
Nama)Matakuliah :)Pemrograman)Berorientasi)Objek) Mulai)Berlaku :)2017J2

Perbandingan OOP)dan prosedural programming


• Berikut+ini+ditunjukkan+perbedaan+paradigma+pemrograman+OOP+dengan+
pendekatan++

Mendefinisikan+method+
sesungguhnya+mirip+
dengan+mendefinisikan+
fungsi+pada+model+
perosedural
Metod+dalam+OOP+
merupakan+bagian+
terpenting+yang+harus+
dikuasai+seluk+beluknya

Versi+:+1 Revisi+:+0 Halaman+:+ 8 Dari+:+33


Fakultas :)Teknologi)Industri Pertemuan)Ke :)7
Jurusan/Prodi :)Teknik)Informatika)/)Teknik)Informatika Handout)Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)33
Nama)Matakuliah :)Pemrograman)Berorientasi)Objek) Mulai)Berlaku :)2017J2

2.)Mendefinisikan Data)dan Metod

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:

Versi+:+1 Revisi+:+0 Halaman+:+ 9 Dari+:+33


Fakultas :)Teknologi)Industri Pertemuan)Ke :)7
Jurusan/Prodi :)Teknik)Informatika)/)Teknik)Informatika Handout)Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)33
Nama)Matakuliah :)Pemrograman)Berorientasi)Objek) Mulai)Berlaku :)2017J2

Kelas dengan Metode


! Sebuah kelas
umumnya tersusun
atas variabel instan 1. class Mobil
dan metode untuk 2. {
objek 3. //variabel instan
4. String warna;
! Metode adalah 5. int tahunProduksi;
fungsi 6.
7. //metode
(subprogram)+yang+ 8. void isiData (String warnaMobil, int tahunProduksiMobil){
melekat pada 9. warna = warnaMobil;
sebuah objek atau 10. tahunProduksi = tahunProduksiMobil;
instan kelas 11.
12.
}

! Contoh berikut 13. String ambilWarna() {


14. return warna;
menunjukkan kelas 15. }
Mobil+dengan 16.
memiliki tiga buah 17. int ambilTahunProduksi() {
metode pada kelas 18. return tahunProduksi;
19. }
tersebut 20. }

Versi+:+1 Revisi+:+0 Halaman+:+ 10 Dari+:+33


Fakultas :)Teknologi)Industri Pertemuan)Ke :)7
Jurusan/Prodi :)Teknik)Informatika)/)Teknik)Informatika Handout)Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)33
Nama)Matakuliah :)Pemrograman)Berorientasi)Objek) Mulai)Berlaku :)2017J2

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. }

Bagian metode diganti dengan

1. //metode
2. void isiData (String warna, int tahunProduksi){
3. this.warna = warna;
4. this.tahunProduksi = tahunProduksi;
5. }

Versi+:+1 Revisi+:+0 Halaman+:+ 11 Dari+:+33


Fakultas :)Teknologi)Industri Pertemuan)Ke :)7
Jurusan/Prodi :)Teknik)Informatika)/)Teknik)Informatika Handout)Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)33
Nama)Matakuliah :)Pemrograman)Berorientasi)Objek) Mulai)Berlaku :)2017J2

Penentu Akses:)privat dan public


! public:+pengaksesan suatu variabel instan atau metode dapat
dilakukan dari luar kelas
! private:+pengaksesan suatu variabel instan atau metode hanya dapat
dilakukan di+dalam kelas,+tidak bisa diakses dari luar kelas

Versi+:+1 Revisi+:+0 Halaman+:+ 12 Dari+:+33


Fakultas :)Teknologi)Industri Pertemuan)Ke :)7
Jurusan/Prodi :)Teknik)Informatika)/)Teknik)Informatika Handout)Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)33
Nama)Matakuliah :)Pemrograman)Berorientasi)Objek) Mulai)Berlaku :)2017J2

Perbedaan public,)private,)dan tanpa penentu akses


pada variabel
Penentu Akses Keterangan

Tanpa penentu akses Variabel dapat diakses oleh kelas yang+berbeda


dalam paket yang+sama
public Variabel dapat diakses pada semua kelas yang+
menggunakan kelas yang+berisi variabel tersebut
private Hanya dapat diakses oleh metodeUmetode dalam
kelas itu sendiri

Versi+:+1 Revisi+:+0 Halaman+:+ 13 Dari+:+33


Fakultas :)Teknologi)Industri Pertemuan)Ke :)7
Jurusan/Prodi :)Teknik)Informatika)/)Teknik)Informatika Handout)Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)33
Nama)Matakuliah :)Pemrograman)Berorientasi)Objek) Mulai)Berlaku :)2017J2

Perbedaan public,)private,)dan tanpa penentu akses


pada metode
Penentu Akses Keterangan

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

private Hanya dapat diakses oleh metodeUmetode dalam


kelas yang+sama

Versi+:+1 Revisi+:+0 Halaman+:+14 Dari+:+33


Fakultas :)Teknologi)Industri Pertemuan)Ke :)7
Jurusan/Prodi :)Teknik)Informatika)/)Teknik)Informatika Handout)Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)33
Nama)Matakuliah :)Pemrograman)Berorientasi)Objek) Mulai)Berlaku :)2017J2

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. }

6. public class MetodeKelas2 {


7. public static void main (String[] args)
8. {
9. double bilangan = Matematika.kuadrat(25.0);
10. System.out.println(bilangan);
11. }
12. }
Versi+:+1 Revisi+:+0 Halaman+:+ 15 Dari+:+33
Fakultas :)Teknologi)Industri Pertemuan)Ke :)7
Jurusan/Prodi :)Teknik)Informatika)/)Teknik)Informatika Handout)Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)33
Nama)Matakuliah :)Pemrograman)Berorientasi)Objek) Mulai)Berlaku :)2017J2

Konsep:)Tipe Data,)Variabel dan Penugasan


! Tipe data+di+java:+String,+bilangan (Integer+dan floatingUpoint)
! Tipe data+primitif:+int,+double
! Variabel adalah lokasi penyimpanan di+memori komputer yang+memiliki
tipe,+nama,+dan isi.
! Deklarasi Variabel
tipeData namaVariabel =(nilai; atau tipeData namaVariabel;
! Contoh:+
String+ucapan =+“Hello+World!”;
PrintStream printer =+System.out;
int lebar =+30;
! Operator+Penugasan menggunakan operator+(=)
! Contoh:
double+lebar =+30;
lebar =+20;
lebar =+lebar ++10;

Versi+:+1 Revisi+:+0 Halaman+:+ 16 Dari+:+33


Fakultas :)Teknologi)Industri Pertemuan)Ke :)7
Jurusan/Prodi :)Teknik)Informatika)/)Teknik)Informatika Handout)Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)33
Nama)Matakuliah :)Pemrograman)Berorientasi)Objek) Mulai)Berlaku :)2017J2

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.

Versi+:+1 Revisi+:+0 Halaman+:+ 17 Dari+:+33


Fakultas :)Teknologi)Industri Pertemuan)Ke :)7
Jurusan/Prodi :)Teknik)Informatika)/)Teknik)Informatika Handout)Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)33
Nama)Matakuliah :)Pemrograman)Berorientasi)Objek) Mulai)Berlaku :)2017J2

Accout Class)dengan Instance)Variabel,)set)Method)


dan get)Method
! Perbedaan account+biasanya memiliki nama yang+berbeda.+Untuk alasan ini,+
class+Account+berisi nama instance+variabel.
! class+instance+variabel memelihara data+untuk setiap objek (setiap instance)+
dari class
1. // Account.java
2. // Account class berisi nama instance variabel
3. // dan method untuk set dan get nilai
4.
5. public class Account
6. {
7. private String nama; //instance variabel
8. //method untuk set nama dalam objek
9. public void setNama(String nama)
10. {
11. this.nama = nama; // menyimpan nama
12. }
13.
14. //method untuk mengambil nama dari objek
15. public String getNama()
16. {
17. return nama; //mengembalikan nilai dari pemanggil nama
18. }
19. } //akhir class Account

Versi+:+1 Revisi+:+0 Halaman+:+ 18 Dari+:+33


Fakultas :)Teknologi)Industri Pertemuan)Ke :)7
Jurusan/Prodi :)Teknik)Informatika)/)Teknik)Informatika Handout)Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)33
Nama)Matakuliah :)Pemrograman)Berorientasi)Objek) Mulai)Berlaku :)2017J2

AcountTest Class)untuk Membuat dan


Menggunakan
1. // AccountTest.java
Objek dari Class)Account
2. // Account class berisi nama instance variabel
3. // dan method untuk set dan get nilai
4. import java.util.Scanner;
5.
6. public class AccountTest
7. {
8. public static void main(String[] args)
9. {
10. //membuat objek Scanner untuk mendapatkan inputan dari command window
11. Scanner input = new Scanner(System.in);
12.
13. //membuat objek Account dan menugaskannya ke myAccount
14. Account myAccount = new Account();
15.
16. //menampilkan inisial nama dari nama (null)
17. System.out.printf(“Nama inisial : %s%n%n”, myAccount.getNama());
18.
19. //kursor untuk membaca nama
20. System.out.println(“Masukkan nama anda: “);
21. String inputNama = input.nextLine(); // baca baris teks
22. myAccount.setNama(inputNama); //letakkan inputNama di myAccount
23. System.out.println(); //output baris kosong
24.
25. //menampilkan nama yang disimpan di objek myAccount
26. System.out.printf(“Nama objek Account : %n%s%n”, myAccount.getNama();
27. }
28. } //akhir class Account
Versi+:+1 Revisi+:+0 Halaman+:+ 19 Dari+:+33
Fakultas :)Teknologi)Industri Pertemuan)Ke :)7
Jurusan/Prodi :)Teknik)Informatika)/)Teknik)Informatika Handout)Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)33
Nama)Matakuliah :)Pemrograman)Berorientasi)Objek) Mulai)Berlaku :)2017J2

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

Versi+:+1 Revisi+:+0 Halaman+:+ 20 Dari+:+33


Fakultas :)Teknologi)Industri Pertemuan)Ke :)7
Jurusan/Prodi :)Teknik)Informatika)/)Teknik)Informatika Handout)Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)33
Nama)Matakuliah :)Pemrograman)Berorientasi)Objek) Mulai)Berlaku :)2017J2

Lindungi data)default)dengan modifier)private)

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.(

Versi+:+1 Revisi+:+0 Halaman+:+ 21 Dari+:+33


Fakultas :)Teknologi)Industri Pertemuan)Ke :)7
Jurusan/Prodi :)Teknik)Informatika)/)Teknik)Informatika Handout)Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)33
Nama)Matakuliah :)Pemrograman)Berorientasi)Objek) Mulai)Berlaku :)2017J2

Gunakan metod set(.))untuk ubah data)private)dan metod get())


untuk ambil data)private)dari luar class)
Data(private(masih(diberi(kemungkinan(perubahan( dengan(mendefinisikan(metod(
set()(untuk(menggantinya(dan(metod(get()(untuk(mengambilnya.(
Contoh(:
untuk(merubah(data(P(yang(private dalam(class(Data(tambahkan(definisi(setP()
dan(getP() sebagai(berikut(:

Versi+:+1 Revisi+:+0Mendalami+ ClassUObjekUMetod


Modul+4+U Halaman+:+ 22 Dari+:+33
Fakultas :)Teknologi)Industri Pertemuan)Ke :)7
Jurusan/Prodi :)Teknik)Informatika)/)Teknik)Informatika Handout)Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)33
Nama)Matakuliah :)Pemrograman)Berorientasi)Objek) Mulai)Berlaku :)2017J2

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

Versi+:+1 Revisi+:+0 Halaman+:+ 23 Dari+:+33


Fakultas :)Teknologi)Industri Pertemuan)Ke :)7
Jurusan/Prodi :)Teknik)Informatika)/)Teknik)Informatika Handout)Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)33
Nama)Matakuliah :)Pemrograman)Berorientasi)Objek) Mulai)Berlaku :)2017J2

Contoh efek kata):)static

Hasil+program+asal

static+String+nama;

Jika+dalam+deklarasi+nama+diganti+
dengan+static String Nama

Versi+:+1 Revisi+:+0 Halaman+:+ 24 Dari+:+33


Fakultas :)Teknologi)Industri Pertemuan)Ke :)7
Jurusan/Prodi :)Teknik)Informatika)/)Teknik)Informatika Handout)Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)33
Nama)Matakuliah :)Pemrograman)Berorientasi)Objek) Mulai)Berlaku :)2017J2

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(:

Versi+:+1 Revisi+:+0 Halaman+:+ 25 Dari+:+33


Fakultas :)Teknologi)Industri Pertemuan)Ke :)7
Jurusan/Prodi :)Teknik)Informatika)/)Teknik)Informatika Handout)Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)33
Nama)Matakuliah :)Pemrograman)Berorientasi)Objek) Mulai)Berlaku :)2017J2

Method)static
Metod(static(adalah(metod(yang(diases(oleh(metod(static(yang(lain
dari(dalam(class(yang(sama
Contoh(:(definisi(fungsi luasLing(float R)

Dalam+definisi+luasLing(float R)kata+static tidak+ditemukan,+tetapi+


ada+kata+private. Saat(dikompile(ternyata(salah..(Karena(metod(main(yang(
memanggilnya(adalah(suatu(metod(static

Versi+:+1 Revisi+:+0 Halaman+:+ 26 Dari+:+33


Fakultas :)Teknologi)Industri Pertemuan)Ke :)7
Jurusan/Prodi :)Teknik)Informatika)/)Teknik)Informatika Handout)Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)33
Nama)Matakuliah :)Pemrograman)Berorientasi)Objek) Mulai)Berlaku :)2017J2

Setelah kata)static)dipasang
Static+
dipasang

Hasil+
program

Kata+private+pada+metod+menunjukkan+bahwa+metod+tersebut+diases+oleh+
metod+dalam+class+yang+sama

Versi+:+1 Revisi+:+0 Halaman+:+ 27 Dari+:+33


Fakultas :)Teknologi)Industri Pertemuan)Ke :)7
Jurusan/Prodi :)Teknik)Informatika)/)Teknik)Informatika Handout)Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)33
Nama)Matakuliah :)Pemrograman)Berorientasi)Objek) Mulai)Berlaku :)2017J2

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

Versi+:+1 Revisi+:+0 Halaman+:+ 28 Dari+:+33


Fakultas :)Teknologi)Industri Pertemuan)Ke :)7
Jurusan/Prodi :)Teknik)Informatika)/)Teknik)Informatika Handout)Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)33
Nama)Matakuliah :)Pemrograman)Berorientasi)Objek) Mulai)Berlaku :)2017J2

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

Versi+:+1 Revisi+:+0 Halaman+:+ 29 Dari+:+33


Fakultas :)Teknologi)Industri Pertemuan)Ke :)7
Jurusan/Prodi :)Teknik)Informatika)/)Teknik)Informatika Handout)Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)33
Nama)Matakuliah :)Pemrograman)Berorientasi)Objek) Mulai)Berlaku :)2017J2

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

Versi+:+1 Revisi+:+0 Halaman+:+ 30 Dari+:+33


Fakultas :)Teknologi)Industri Pertemuan)Ke :)7
Jurusan/Prodi :)Teknik)Informatika)/)Teknik)Informatika Handout)Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)33
Nama)Matakuliah :)Pemrograman)Berorientasi)Objek) Mulai)Berlaku :)2017J2

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

Versi+:+1 Revisi+:+0 Halaman+:+ 31 Dari+:+33


Fakultas :)Teknologi)Industri Pertemuan)Ke :)7
Jurusan/Prodi :)Teknik)Informatika)/)Teknik)Informatika Handout)Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)33
Nama)Matakuliah :)Pemrograman)Berorientasi)Objek) Mulai)Berlaku :)2017J2

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

Versi+:+1 Revisi+:+0 Halaman+:+ 32 Dari+:+33


Fakultas :)Teknologi)Industri Pertemuan)Ke :)7
Jurusan/Prodi :)Teknik)Informatika)/)Teknik)Informatika Handout)Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)33
Nama)Matakuliah :)Pemrograman)Berorientasi)Objek) Mulai)Berlaku :)2017J2

Latihan …
4. Buatlah+tampilkan+daftar+mahasiswa+dengan+tampilan+:
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
No++++NIP NAMA JURUSAN
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU

UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU

Versi+:+1 Revisi+:+0 Halaman+:+ 33 Dari+:+33


Fakultas :)TEKNOLOGI)INDUSTRI Pertemuan)Ke :)8
Jurusan/Prodi :)TEKNIK)INFORMATIKA/TEKNIK)INFORMATIKA Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)12
Nama)Matakuliah :)PEMROGRAMAN)BERORIENTASI)OBJEK Mulai)Berlaku :)2017J2

KONSTRUKTOR(DAN(OVERLOADING

Dosen:
Erma+Susanti,+S.Kom,+M.Cs

Versi+:+1 Revisi+: Halaman+:+1 Dari+:+12


Fakultas :)Teknologi)Industri Pertemuan)Ke :)8
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)12
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017J2

Tujuan
Setelah mengikuti mata kuliah ini mahasiswa dapat:
• Mendefinisikan konstruktor
• Menerapkan konsep overloading

Versi+:+1 Revisi+:+0 Halaman+:+ 2 Dari+:+12


Fakultas :)Teknologi)Industri Pertemuan)Ke :)8
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)12
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017J2

Pokok Bahasan
Dalam modul ini akan diuraikan beberapa topik bahasan yaitu :
1) Pengertian constructor+
2) Cara+mengoverloading constructor
3) Melakukan inheritance,+mendefinisikan subclass

Versi+:+1 Revisi+:+0 Halaman+:+ 3 Dari+:+12


Fakultas :)Teknologi)Industri Pertemuan)Ke :)8
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)12
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017J2

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)

Versi+:+1 Revisi+:+0 Halaman+:+ 4 Dari+:+12


Fakultas :)Teknologi)Industri Pertemuan)Ke :)8
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)12
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017J2

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);
}
}

public class Konstruktor {


public static void main(String [] args){
Mobil mobilku = new Mobil(“Merah”, 2003);
mobilku.info();
}
}

Versi+:+1 Revisi+:+0 Halaman+:+ 5 Dari+:+12


Fakultas :)Teknologi)Industri Pertemuan)Ke :)8
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)12
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017J2

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

Versi+:+1 Revisi+:+0 Halaman+:+ 6 Dari+:+12


Fakultas :)Teknologi)Industri Pertemuan)Ke :)8
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)12
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017J2

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);
}
}

public class Konstruktor {


public static void main(String [] args){
Mobil mobilku = new Mobil(“Merah”, 2003);
mobilku.info();

Mobil mobilmu = new Mobil();


mobilmu.info();
}
}
Versi+:+1 Revisi+:+0 Halaman+:+ 7 Dari+:+12
Fakultas :)Teknologi)Industri Pertemuan)Ke :)8
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)12
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017J2

3.)Overloading)terhadap Method
• Overloading+juga dapat dikenali pada method+nonOkonstruktor
class Matematika {
static public double kuadrat (double nilai) {
return nilai * nilai;
}

static public int kuadrat (int nilai) {


return nilai * nilai;
}

static public double kuadrat (String nilai) {


double bilangan;

bilangan = Double.valueOf(nilai).doubleValue();
return bilangan * bilangan;
}
}

public class OverloadingMethod {


public static void main(String [] args) {
System.out.println(Matematika.kuadrat(25.0));
625.0
System.out.println(Matematika.kuadrat(25)); 625
System.out.println(Matematika.kuadrat(“25”));
}
625.0
}

Versi+:+1 Revisi+:+0 Halaman+:+8 Dari+:+12


Fakultas :)Teknologi)Industri Pertemuan)Ke :)8
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)12
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017J2

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;

public Bilangan(int nilai) {


this.nilai = nilai;
this.pencacah++;
}

public void info() {


System.out.println(“Nilai : “ + this.nilai);
System.out.println(“Pencacah : “ + this.pencacah); Nilai :+55
System.out.println(“ “);
} Pencacah :+1
}

public class VariabelKelas { Nilai :+75


public static void main (String [] args) { Pencacah :+2
Bilangan b1 = new Bilangan(55);
b1.info();
Bilangan b2 = new Bilangan(75);
b2.info();
}
}
Versi+:+1 Revisi+:+0 Halaman+:+9 Dari+:+12
Fakultas :)Teknologi)Industri Pertemuan)Ke :)8
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)12
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017J2

Rangkuman
• Constructor+adalah metod khusus dengan nama sama dengan nama class+
dan bertugas membuat objek
• Constructor+dapat di+overloading dengan mendefinisikan beberapa nama
constructor

Versi+:+1 Revisi+:+0 Halaman+:+ 10 Dari+:+12


Fakultas :)Teknologi)Industri Pertemuan)Ke :)8
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)12
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017J2

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

Versi+:+1 Revisi+:+0 Halaman+:+ 11 Dari+:+12


Fakultas :)Teknologi)Industri Pertemuan)Ke :)8
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)12
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017J2

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

objek motormu,+ nama motor+YAMAHA+ ,+panggil metod nyalakan()+dan tampilkan()+,+


motor+ saat objek dibuat kondisi hidup (true)+ melalui construktor

objek motornya,+nama motor+ SUZUKU+,+panggil metod nyalakan()+dan tampilkan()+,+


gunakan construktor default

Versi+:+1 Revisi+:+0 Halaman+:+ 12 Dari+:+12


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)DAN)POLYMORPHISM

Dosen:
Erma+Susanti,+S.Kom,+M.Cs

Versi+:+1 Revisi+: Halaman+:+1 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

Tujuan
Setelah mengikuti mata kuliah ini mahasiswa dapat:
• Menerapkan konsep inheritance
• Menerapkan konsep polymorphism

Versi+:+1 Revisi+:+0 Halaman+:+ 2 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

Pokok Bahasan
Dalam modul ini akan diuraikan beberapa topik bahasan yaitu :
1) Melakukan inheritance,+mendefinisikan subclass
2) Polymorphism

Versi+:+1 Revisi+:+0 Halaman+:+ 3 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

1.)Inheritance
• Pengenalan inheritance+dimulai dari
• Struktur sebuah kelas dapat digambarkan dalam skema

Class+memiliki+2+hal+,+yaitu+:
Data+(Attribut)
Metod

Versi+:+1 Revisi+:+0 Halaman+:+ 4 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

Analogi konsep inheritance

• 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

Versi+:+1 Revisi+:+0 Halaman+:+ 6 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

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

Versi+:+1 Revisi+:+0 Halaman+:+ 7 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

Superclass)dan Subclass
• Inheritance+memungkinkan untuk mendefinisikan class+umum (superclass)+
dan kemudian memperluasnya menjadi kelas tertentu (subclass)

Subclass Superclass

public)class)Lingkaran extends)ObjekGeometri

Versi+:+1 Revisi+:+0 Halaman+:+ 8 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

Cara)Mewariskan Kelas:)Superclass) dan Subclass


Inheritance+memungkinkan untuk mendefinisikan class+umum (superclass)+ dan
kemudian memperluasnya menjadi kelas tertentu (subclass)
! KelasTurunan (Subclass)+menyatakan kelas turunan yang+akan dibuat berdasarkan
sebuah KelasDasar (Superclass)
! KelasDasar (Superclass)+yang+terletak sesudah kata+kunci extends+menyatakan
superkelas
class KelasTurunan extends KelasDasar {
//isikelas
}

//contoh Superclass/KelasDasar //contoh Subclass/KelasTurunan


1. class Alpha{ 1. class Bravo extends Alpha{
2. private int a = 5; 2. private int b = 7;
3. 3.
4. public void info() { 4. public static void main (String[] args){
5. { 5. Bravo obj = new Bravo();
6. System.out.println(“a = “+a); 6. obj.info();
7. System.out.println(“Dipanggil pada 7. }
“+this.getClass().getName()); 8. }
8. }
9. }

Versi+:+1 Revisi+:+0 Halaman+:+ 9 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

Contoh Inheritance)

Terlihat+bahwa+sebagai+objek+dari+class+
Anak,+objek+ a+dapat+memanggil+ metod+
dari+class++induk,+ yaitu+cetak1()+dan+
cerak2()

Versi+:+1 Revisi+:+0 Halaman+:+ 10 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

Penentu Akses Protected


! Selain penentu akses public+dan private,+juga terdapat penentu akses
protected
! penentu akses protected berguna untuk mengatur agar+suatu variabel
instan ataupun metode yang+terdapat pada sebuah kelas dapat diakses
pada kelas itu sendiri dan pada subkelas
1. class Beta{
2. private int a = 5;
3. protected int b = 7;
4.
5. public void info() {
6. {
7. System.out.println(“a = “+a);
8. System.out.println(“b = “+b);
9. System.out.println(“Dipanggil pada “+
10. this.getClass().getName());
11. }
12. }

Versi+:+1 Revisi+:+0 Halaman+:+ 11 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

Menggunakan Kata)Kunci super


! Kata+kunci super+mengacu kepada superclass+dan dapat digunakan untuk
memanggil method+dan konstruktor superclass
! Kata+kunci super+dapat digunakan untuk:
! Memanggil kontruktor superclass
! Memanggil method+ superclass

Versi+:+1 Revisi+:+0 Halaman+:+ 12 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

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. }

Versi+:+1 Revisi+:+0 Halaman+:+ 13 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

Memanggil Konstruktor Superclass


! Jika superkelas memiliki konstruktor maka menggunakan kata+kunci super
dengan bentuk super(argumen1,+ argumen2,+….+)
! Sintaks:+super()+ atau super(argumen1,+argumen2,+…)
1. class Pegawai extends Orang {
2. protected String noPeg;
1. class Orang { 3.
2. private String nama; 4. //konstruktor
3. private int usia; 5. public Pegwai (String noPeg, String nama, int usia) {
4. 6. super(nama, usia);
5. //konstruktor 7. this.noPeg = noPeg;
6. public Orang (String nama, int 8. }
usia) { 9.
7. this.nama = nama; 10. //metode
8. this.usia = usia; 11. public void info() {
9. } 12. System.out.println(“No Pegawai: “+noPeg);
10. 13. super.info();
11. //metode 14. }
12. public void info() { 15. }
13. System.out.println(“Nama :
“+this.nama); 16. Public class KonstruktorSuperkelas {
14. System.out.println(“Usia : 17. public static void main (String[] args){
“+this.usia); 18. Pegawai peg = new Pegawai(“123”,”Budi”,20);
15. } 19. peg.info();
16. } 20. }
21. }

Versi+:+1 Revisi+:+0 Halaman+:+ 14 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

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 {

2. //override method toString didefinisikan di dalam superclass


3. public String toString() {
4. return super.toString() + “jejari : “+jejari;
5. }
6. }

Versi+:+1 Revisi+:+0 Halaman+:+ 15 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

Overriding)vs.)Overloading
! overloading+berarti mendefinisikan method+multiple+dengan nama yang+
sama tetapi berbeda tanda
! Overriding+berarti menyediakan implementasi baru untuk method+dalam
subclass

public) class)Test+{ public) class)Test+{


public) static)void)main(String[]+args)+{+ public) static)void) main(String[]+args)+{+
A+a+=+new)A();+a.p(10);+a.p(10.0);+ A+a+=+new)A();+a.p(10);+a.p(10.0);+
}+ }+
}+ }+

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);+
} }
}+ }+

Versi+:+1 Revisi+:+0 Halaman+:+ 16 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

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. }

Versi+:+1 Revisi+:+0 Halaman+:+ 17 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

Penentu Akses Final


• Penentu akses final+dapat diterapkan pada variabel instan atau pada metode
! pada variabel instan,+final+akan membuat variabel menjadi suatu konstanta (tidak dapat diubah)
! pada metode,+final+akan membuat kelas tak dapat ditimpa (diNoverride)+pada subkelas
//contoh PenentuFinal
1. class Abc{
2. final public double PI = 3.14;
3. final void info() {
4. System.out.println(“PI = “+PI);
5. }
6. }

7. Class xyz extends Abc {


8. public void info() { //akan menimbulkan kesalahan karena info() tidak dapat ditimpa
9. }
10. }

11. Class PenentuFinal {


12. public static void main (String[] args) {
13. xyz obj = new xyz();
14. obj.info();
15. }
16. }

Versi+:+1 Revisi+:+0 Halaman+:+ 18 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

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+

Versi+:+1 Revisi+:+0 Halaman+:+ 19 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

Contoh Polymorphism)(mengoverride method)cetak1())

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

Versi+:+1 Revisi+:+0 Halaman+:+ 20 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

Memanfaatkan data)dan metod induk dengan kata)kunci


:)super

• Misalkan+dengan+ tidak+merubah+ definisi+ pada+class+Induk,+ kita+lakukan+perubahan+


definisi+ pada+class+Anak.
• Untuk+ases+data+induk+ digunakan+ super.NamaData,+dan+untuk+ menggunakan+ metod+
induk+ digunakan+ super.NamaMetod

Dengan+super.P+class+anak+dapat+mengakses+data+induk
Dengan+super.cetak2()+metod+ induk+dapat+dijalankan+dari+Anak

Versi+:+1 Revisi+:+0 Halaman+:+ 21 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

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

Versi+:+1 Revisi+:+0 Halaman+:+ 22 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

Contoh Polymorhism

1. public class PolymorphismDemo {


2. //main method
3. public static void main (String[] args) {
4. tampilObjek(new Lingkaran(1,”merah”, false));
5. tampilObjek(new Lingkaran(1, 1, “hitam”, true));
6. }
7.
8. public static void tampilObjek(GeometriObjek objek) {
9. System.out.println(“Dibuat pada “+object.getDateCreated() +
10. “. Warna adalah “+ object.getColor());
11. }
12. }

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

Versi+:+1 Revisi+:+0 Halaman+:+ 23 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

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+...

Testlah kemampuan+kelas+tesebut dengan+class TesTab simpan+dalam+file TesTab.java


Deklarasi+ objek+lingkaran+dan+objek+tabung+adalah+:
Lingkaran+L1=new Lingkaran(2);+///+lingkaran+jejari 2
Tabung+T1+=+new tabung(2,4);+//+tabung+Jejari alas+2+tinggi+4
Untuk+memanggil+ method Cetak()
L1.Cetak()
T1.Cetak()

Versi+:+1 Revisi+:+0 Halaman+:+ 25 Dari+:+25


Fakultas :)TEKNOLOGI)INDUSTRI Pertemuan)Ke :)10
Jurusan/Prodi :)TEKNIK)INFORMATIKA/TEKNIK)INFORMATIKA Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)23
Nama)Matakuliah :)PEMROGRAMAN)BERORIENTASI)OBJEK Mulai)Berlaku :)2017J2

ABSTRACT'CLASS'DAN'ABSTRACT'METHOD

Dosen:
Erma+Susanti,+S.Kom,+M.Cs

Versi+:+1 Revisi+: Halaman+:+1 Dari+:+23


Fakultas :)Teknologi)Industri Pertemuan)Ke :)10
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)23
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017J2

Tujuan
Setelah mengikuti mata kuliah ini mahasiswa dapat:
• Menjelaskan konsep abstract+class+dan penggunaannya
• Menjelaskan konsep abstract+method+dan penggunaannya

Versi+:+1 Revisi+:+0 Halaman+:+ 2 Dari+:+23


Fakultas :)Teknologi)Industri Pertemuan)Ke :)10
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)23
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017J2

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+

Versi+:+1 Revisi+:+0 Halaman+:+ 3 Dari+:+23


Fakultas :)Teknologi)Industri Pertemuan)Ke :)10
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)23
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017J2

1.)Pengertian abstract)class

• Suatu kelas sangat mungkin didefinisikan sebagai super class yang


darinya diturunkan subKklas subKklas turunannya
• Kita tidak bermaksud mendefinisikan objek dari super class tersebut.
• Super class tersebut didefinisikan semataKmata hanya sebagai
“payung” atau “induk” dari klasKklas turunannya.
• Dari klasKklas turunan ini lah objek yang sebenarnya akan diciptakan.
Suatu super klass yang didefinisikan seperti ini dinamakan sebagai
class abstract.

Versi+:+1 Revisi+:+0 Halaman+:+ 4 Dari+:+23


Fakultas :)Teknologi)Industri Pertemuan)Ke :)10
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)23
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017J2

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.

Versi+:+1 Revisi+:+0 Halaman+:+ 5 Dari+:+23


Fakultas :)Teknologi)Industri Pertemuan)Ke :)10
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)23
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017J2

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+

Versi+:+1 Revisi+:+0 Halaman+:+ 6 Dari+:+23


Fakultas :)Teknologi)Industri Pertemuan)Ke :)10
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)23
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017J2

Class)Message)

SatuKsatunya+
metod+abstract
Yang+
mengharuskan+
class+Message+
didefinisikan+
secara+abtract

Untuk+class+
turunan+
FaxMessage tidak+
didefinisikan

Versi+:+1 Revisi+:+0 Halaman+:+ 7 Dari+:+23


Fakultas :)Teknologi)Industri Pertemuan)Ke :)10
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)23
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017J2

class)Mailbox

Versi+:+1 Revisi+:+0 Halaman+:+ 8 Dari+:+23


Fakultas :)Teknologi)Industri Pertemuan)Ke :)10
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)23
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017J2

class)MailboxTest (class)utama)

berlanjut…

Versi+:+1 Revisi+:+0 Halaman+:+ 9 Dari+:+23


Fakultas :)Teknologi)Industri Pertemuan)Ke :)10
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)23
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017J2

class)MailboxTest …)lanjutan

Versi+:+1 Revisi+:+0 Halaman+:+ 10 Dari+:+23


Fakultas :)Teknologi)Industri Pertemuan)Ke :)10
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)23
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017J2

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

Versi+:+1 Revisi+:+0 Halaman+:+ 11 Dari+:+23


Fakultas :)Teknologi)Industri Pertemuan)Ke :)10
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)23
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017J2

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()

Versi+:+1 Revisi+:+0 Halaman+:+ 12 Dari+:+23


Fakultas :)Teknologi)Industri Pertemuan)Ke :)10
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)23
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017J2

4.)Class)Turunan Number)

• 4+class+didefnisikan+ secara+class+final
• Pada+setiap+class+turunan+ didefnisikan+ metodKmetod+ abstractnya
• Pada+setiap+class+turunan+ didefinisikan+ metod+toString()+

Versi+:+1 Revisi+:+0 Halaman+:+ 13 Dari+:+23


Fakultas :)Teknologi)Industri Pertemuan)Ke :)10
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)23
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017J2

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+nilaiKnilai+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+

Versi+:+1 Revisi+:+0 Halaman+:+ 14 Dari+:+23


Fakultas :)Teknologi)Industri Pertemuan)Ke :)10
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)23
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017J2

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…

Versi+:+1 Revisi+:+0 Halaman+:+ 15 Dari+:+23


Fakultas :)Teknologi)Industri Pertemuan)Ke :)10
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)23
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017J2

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

Versi+:+1 Revisi+:+0 Halaman+:+ 16 Dari+:+23


Fakultas :)Teknologi)Industri Pertemuan)Ke :)10
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)23
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017J2

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+

Versi+:+1 Revisi+:+0 Halaman+:+ 17 Dari+:+23


Fakultas :)Teknologi)Industri Pertemuan)Ke :)10
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)23
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017J2

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;
}

Versi+:+1 Revisi+:+0 Halaman+:+ 18 Dari+:+23


Fakultas :)Teknologi)Industri Pertemuan)Ke :)10
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)23
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017J2

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 metodKmetod tersebut ada dalam program+berikut :

Versi+:+1 Revisi+:+0 Halaman+:+ 19 Dari+:+23


Fakultas :)Teknologi)Industri Pertemuan)Ke :)10
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)23
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017J2

Program)lengkapnya…)

Hasilnya

Versi+:+1 Revisi+:+0 Halaman+:+ 20 Dari+:+23


Fakultas :)Teknologi)Industri Pertemuan)Ke :)10
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)23
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017J2

Rangkuman

• Class+abstract didefinisikan+untuk+suatu+class yang+tidak+dibaut+objeknya


• Class+abstract hanya+dijadikan+payung++bagi+classKclass+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+bolakKbalik+antara+int,+long,+float dan+double ke+dan+dari+string

Versi+:+1 Revisi+:+0 Halaman+:+ 21 Dari+:+23


Fakultas :)Teknologi)Industri Pertemuan)Ke :)10
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)23
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017J2

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.

Versi+:+1 Revisi+:+0 Halaman+:+ 22 Dari+:+23


Fakultas :)Teknologi)Industri Pertemuan)Ke :)10
Jurusan/Prodi :)Teknik)Informatika) /)Teknik) Informatika Handout) Ke :)1
Kode)Matakuliah :)MIP1202 Jumlah)Halaman :)23
Nama)Matakuliah :)Pemrograman)Berorientasi) Objek) Mulai)Berlaku :)2017J2

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.

Versi+:+1 Revisi+:+0 Halaman+:+ 23 Dari+:+23


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

Interface

Dosen:
Erma+Susanti,+S.Kom,+M.Cs

Versi+:+1 Revisi+: Halaman+:+1 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

Tujuan
Setelah mengikuti mata kuliah ini mahasiswa dapat:
• Menerapkan konsep interface+dalam Java

Versi+:+1 Revisi+:+0 Halaman+:+ 2 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

Pokok Bahasan
Dalam modul ini akan diuraikan beberapa topik bahasan yaitu :
1. Pengertian interface
2. Pewarisan interface

Versi+:+1 Revisi+:+0 Halaman+:+ 3 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

Pengertian Interface

! Interface+merupakan suatu mekanisme yang+disediakan oleh Java+


yang+memungkinkan berbagi konstanta atau menentukan bentuk
method+yang+dapat digunakan oleh sejumlah kelas
! Interface+hampir mirip dengan abstract+class,+karena abstract+class+
juga menentukan bentuk method+untuk subkelas
! Interface+dapat dibedakan dengan abstract+class+dalam hal:
! Abstract+class+dapat mengandung abstract+method+ maupun method+ tidak
abstract,+sedangkan hanya dapat mengandung abstract+method
! Abstract+class+dapat mendeklarasikan variabel instan,+sedangkan interface+
hanya dapat mendefinisikan konstanta
! Abstract+class+digunakan oleh class+lain+melalui pewarisan menggunakan kata+
kunci extends,+sedangkan interface+digunakan oleh class+tidak melalui
mekanisme itu

Versi+:+1 Revisi+:+0 Halaman+:+ 4 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

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
}

Versi+:+1 Revisi+:+0 Halaman+:+ 5 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

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. }

Versi+:+1 Revisi+:+0 Halaman+:+ 6 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

Pewarisan Interface
! Suatu interface+dapat mewarisi interface+yang+lain,+seperti subclass+
mewarisi superclass

public.interface.NamaInterface extends InterfaceA,+InterfaceB {


//tubuh interface
}

public.interface.WarnaLebihLengkap extends InterfaceWarna {


int ABU_ABU+=+128;
}

Versi+:+1 Revisi+:+0 Halaman+:+ 7 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

Menggunakan Interface

! Sebuah kelas dapat menggunakan interface+melalui kata+kunci implements


! Jika interface+yang+digunakan lebih dari satu,+antarTinterface+dipisahkan oleh
tanda koma.

class.NamaKelas1+extends NamaKelas2+implements NamaInterface1,+NamaInterface2+{


//tubuh kelas
}

Versi+:+1 Revisi+:+0 Halaman+:+ 8 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

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

Versi+:+1 Revisi+: Halaman+:+1 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

Tujuan
Setelah mengikuti mata kuliah ini mahasiswa dapat:
• Mengelola classCclass+dalam package
• Menjelaskan struktur package+dalam standard+java

Versi+:+1 Revisi+:+0 Halaman+:+ 2 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

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

Versi+:+1 Revisi+:+0 Halaman+:+ 3 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

Pengantar Package

! Sejumlah class+yang+terkait pada Java+biasa dikelompokkan dalam


sebuah unit+yang+disebut paket (package)
! Salah+satu kelebihan package+adalah memungkinkan penentu akses
bawaan (tanpa penyebutan private,+public+atau protected)+pada
variabel atau method+sehingga variabel atau method+tersebut dapat
diakses oleh semua kelas yang+terletak dalam satu package
! Pada java,+semua berkas .class+yang+terletak dalam satu direktori
dengan sendirinya membentuk sebuah paket yang+tidak bernama

Versi+:+1 Revisi+:+0 Halaman+:+ 4 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

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+{
....}

Versi+:+1 Revisi+:+0 Halaman+:+ 6 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 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)

Versi+:+1 Revisi+:+0 Halaman+:+ 7 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

Kode programnya
class)Lingkaran package)geometri

Versi+:+1 Revisi+:+0 Halaman+:+ 8 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

class)Epp package)geometri

Versi+:+1 Revisi+:+0 Halaman+:+ 9 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

Program)utama dan hasilnya


(mengimpor 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

Versi+:+1 Revisi+:+0 Halaman+:+ 10 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

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)

Versi+:+1 Revisi+:+0 Halaman+:+ 11 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

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+

Versi+:+1 Revisi+:+0 Halaman+:+ 12 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

Package)java.applet dan java.awt

java.applet1yang1penting1berisi1
• class1java.Applet
• class1java.AudioClip

java.awt1berisi1class;class:
• class+Font
• class+Frame
• class+Window
• class+Button
• class+Label
• class+TextField
• class+TextArea

Versi+:+1 Revisi+:+0 Halaman+:+ 13 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

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. }

Versi+:+1 Revisi+:+0 Halaman+:+ 14 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

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).

Versi+:+1 Revisi+:+0 Halaman+:+ 15 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

Menggunakan import
import1namapaket.namaberkas;
import1namapaket.*; *1menyatakan semua kelas pada paket namapaket
Contoh:11import1java.io.*; *1semua kelas yang1berada pada paket java.io

Contoh:11import1java.util.Date; Menggunakan class1bernama Date1yang1


berada dalam paket java.util
1. import kelasku.Alpha;
2. import kelasku.Beta;

3. public class TesPaket{


4. public static void main (String [] args) {
5. Alpha objek1 = new Alpha();
6. objek1.info();
7.
8. Beta objek2 = new Beta();
9. objek2.info();
10. }
11. }

Versi+:+1 Revisi+:+0 Halaman+:+ 16 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

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

Versi+:+1 Revisi+:+0 Halaman+:+ 17 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

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

Versi+:+1 Revisi+:+0 Halaman+:+ 18 Dari+:+18


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

PENANGANAN&KESALAHAN

Dosen:
Erma+Susanti,+S.Kom,+M.Cs

Versi+:+1 Revisi+:0 Halaman+:+1 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

Tujuan
Setelah mengikuti mata kuliah ini mahasiswa dapat:
• Memahami mengenai konsep penanganan kesalahan dalam Java

Versi+:+1 Revisi+:+0 Halaman+:+ 2 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

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

Versi+:+1 Revisi+:+0 Halaman+:+ 3 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

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)

Versi+:+1 Revisi+:+0 Halaman+:+ 4 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

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

Versi+:+1 Revisi+:+0 Halaman+:+ 5 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

Contoh Program:)Pembagian dengan 0


• Program+berikut mengandung kesalahan karena melakukan
pembagian dengan nol.+Program+jika dicompilasi tidak akan
mengalamai masalah,+tetapi jika dieksekusi akan mengalami masalah
• Kesalahan ditangani oleh exception+dari ArithmeticException:+/+by+
zero
public class BagiNol{
public static void main(String[] args)
{
System.out.println(5/0);
}
}

//contoh program tanpa penanganan kesalahan


public class Ex1{
public static void main(String[] args){
int a=5; int b=0; int c=0;
c = a/b;
System.out.println(“HASIL : “ + a +” “ + b + “ “ +c);
}
}

Versi+:+1 Revisi+:+0 Halaman+:+ 6 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

Menangkap Eksepsi:)Pernyataan try)..)catch


• Agar+kesalahan karena eksepsi dapat dikendalikan,+ karena eksepsi perlu
ditangkap
• Untuk mengantisipasi kesalahan sebelum program+dijalankan maka perlu untuk
menangkap eksepsi.+Java+menyediakan pernyataan try .. catch
try {
//blok yang akan ditangkap sekiranya terjadi eksepsi
}
catch (parameter) {
//blok yang akan dijalankan kalau terjadi eksepsi
}
• Pada pernyataan try+tersebut,+ parameter+berupa nama kelas yang+berhubungan
dengan penanganan eksepsi dan diikuti dengan nama parameter
• Perlu diketahui,+ kelas tertinggi yang+menangani eksepsi yaitu Throwable.+Kelas ini
terdapat pada paket java.lang.+kelas ini merupakan subkelas dari kelas Object+
(kelas tertinggi pada Java)

Versi+:+1 Revisi+:+0 Halaman+:+ 7 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

Contoh Penanganan Kesalahan dengan try..catch

• Jika program+dicompile dan dieksekusi,+haslnya berhenti dengan


normal
//contoh program tanpa penanganan kesalahan
public class Ex2{
public static void main(String[] args){
int a=5; int b=0; int c=0;
try {
c = a/b;
} catch (ArithmeticException e)
System.out.println(“HASIL : “ + a +” “ + b + “ “ +c);
}
}

HASIL+:+5+0+0

Versi+:+1 Revisi+:+0 Halaman+:+ 8 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

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

Versi+:+1 Revisi+:+0 Halaman+:+ 9 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

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

1. public class BagiNol2{


2. public static void main(String[] args) {
3. System.out.println(“Sebelum pembagian”);
4. try {
Sebelum pembagian
5. System.out.println(5/0); Terjadi pembagian nol
6. }
7. catch (Throwable t) {
Sesudah pembagian
8. System.err.println(“Terjadi pembagian nol”);
9. }
10. System.err.println(“Sesudah pembagian”);
11. }
12. }
13. }

Versi+:+1 Revisi+:+0 Halaman+:+ 10 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

Contoh:)Pembagian dengan 0
• Program+alternatif lain+pembagian dengan nol yang+menampilkan
pesan kesalahan yang+berasal dari parameter+t+(yang+berkelas
Throwable)

1. public class BagiNol3{


2. public static void main(String[] args) {
3. System.out.println(“Sebelum pembagian”);
4. try { Sebelum pembagian
5. System.out.println(5/0);
6. }
Pesan kesalahan:+/+by+zero
7. catch (Throwable t) { Sesudah pembagian
8. System.err.print(“Pesan Kealahan: ”);
9. System.err.println(t.getMessage());
10. }
11. System.err.println(“Sesudah pembagian”);
12. }
13. }
14. }

Versi+:+1 Revisi+:+0 Halaman+:+ 11 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

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).+

Versi+:+1 Revisi+:+0 Halaman+:+ 12 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

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

Versi+:+1 Revisi+:+0 Halaman+:+ 13 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

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

Versi+:+1 Revisi+:+0 Halaman+:+ 14 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 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

Versi+:+1 Revisi+:+0 Halaman+:+ 15 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

Contoh:)pelemparan exception)secara sengaja


dengan throw
Class TrDemo1 {
static void demo () {
try {
throw new NullPointerException(“nyoba”);
} catch (NullPointerException e) {
throw e;
}
}

public static void main (String [] arg) {


try {
demo();
} catch (NullPointerException e) {
System.out.println(“RE-caught: “+e);
}
}
}

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”);
}
}

public static void main (String [] args) {


try {
methodKU();
} catch (IllegalAccessException e) {
System.out.println(“TERTANGKAP : “+e);
}
}
}

ini isi methodKU


TERTANGKAP+:+java.lang.IllegalAccessException:+nyoba
Versi+:+1 Revisi+:+0 Halaman+:+ 17 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 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

Versi+:+1 Revisi+:+0 Halaman+:+ 18 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

Contoh:)try…finally
public class BagiNol4{
public static void main(String[] args) {
double BILANGAN = 100.0;

System.out.println(“Sebelum pembagian”);

for (int I = 5; i>= 0; i--) {


try {
System.out.print(BILANGAN + “/” + i + “ = “);
System.out.println((BILANGAN / i));
}
finally {
System.out.print(“Bagian finally dijalankan”);
}
}
System.out.println(“Selesai”);
}
}

Versi+:+1 Revisi+:+0 Halaman+:+ 19 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

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”);
}
}

public static void main (String [] arts) {


try {
prosedur_A();
} catch (Exception e) { };
prosedur_B();
}
}

Versi+:+1 Revisi+:+0 Halaman+:+ 20 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

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

Versi+:+1 Revisi+:+0 Halaman+:+ 21 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

Contoh:)mendefinisikan class)eksepsi sendiri


class ExceptionKU extends Exception {
private int detil;
ExceptionKU(int a) { detil=a; }
public String toString() {
return “ExceptionKU [ “+detil+” ] “;
}
}

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);
}
}
}

Versi+:+1 Revisi+:+0 Halaman+:+ 22 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

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

private static String bacaString() {


int n=0; String s = “”;
try {
} catch (IOException ioe) { int a=0; };
return s;
}

Versi+:+1 Revisi+:+0 Halaman+:+ 23 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

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);
}
}

a. Jika terjadi error,+jelaskan apa artinya


b. Kenapa terjadi error+tersebut dan bagaimana memperbaikinya?
c. Setelah diperbaiki bagaimana hasil program+yang+benar?

Versi+:+1 Revisi+:+0 Halaman+:+ 24 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

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]);
}
}

a. Apakah hasilnya jika dikompile dan dieksekusi?+Misalkan


diinputkan kata+“JONET”,+apakah hasilnya?+Kenapa demikian,+
jelaskan
b. Apa kesimpulan Anda ?

Versi+:+1 Revisi+:+0 Halaman+:+ 25 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

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));
}
}

a. Jelaskan kenapa error?


b. Jika diinginkan konversi array+byte+ke string,+bagaimana caranya?

Versi+:+1 Revisi+:+0 Halaman+:+ 26 Dari+:+26

Anda mungkin juga menyukai