Pemrograman Berorientasi Objek
STMIK
BANISALEH
PEMROGRAMAN
BERORIENTASI
OBJEK
( DENGAN JAVA )
Pemrograman Berorientasi Objek
STMIK
BANISALEH
1. OOP Concepts:
Konsep dan Paradigma Object-Oriented
2. Java Fundamentals:
Memahami Sintaks dan Grammar Bahasa Java
3. Java Advanced:
Eksepsi, Thread, Java API
4. Java GUI:
Swing, GUI Component, Event Handling
5. Java GUI with Netbeans:
Mengembangkan Aplikasi Berbasis GUI dengan Java
Pemrograman Berorientasi Objek
STMIK
BANISALEH
OOP
Concept
Konsep Pemrograman dan
Paradigmanya
3
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Bahasa Pemrograman?
Komputer bekerja seperti switching dan
hanya mengenali 0 dan 1
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
4
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Compiler or Interpreter?
Compiler:
Mengkompilasi source code
menjadi bentuk file yang bisa
dieksekusi
Interpreter:
Mengkompilasi dan
menjalankan source code
secara langsung
5
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Assembly Language
LDA #47
STA $570
DEX
JSR $817
CPX #0
BNE #14
ssembly language program
Translation
program
(Assembler)
0001010
0001100
1010000
1000100
1001010
1010101
010010
Machine language program
(executable file)
Pemrograman Berorientasi Objek
STMIK
BANISALEH
C Language
#include
<stdio.h>
main()
{
printf(Hallo);
}
C Program
C Compiler
00010100
00110010
10000100
01001001
01010101
01010010
Machine language program
(executable .exe file)
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Java Language
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Tingkat Bahasa Pemrograman
Bahasa Pemrograman Tingkat
Rendah (Assembler)
Bahasa Pemrograman Tingkat
Sedang
(C, Pascal, Fortran)
Bahasa Pemrograman Tingkat
Tinggi
(Java, C++, C#)
9
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Paradigma Pemrograman
Sudut pandang dan style pemrograman
berhubungan dengan bagaimana sebuah
masalah diformulasikan dalam bahasa
pemrograman
Functional Programming: Urutan fungsi secara
sekuensial (Scheme, Lisp)
Procedural Programming: Pemecahan masalah
berdasarkan prosedural kerja yg terkumpul
dalam unit pemrograman bernama fungsi (C,
Pascal)
Object-Oriented Programming: Koleksi object
yang saling berinteraksi . Class adalah unit
pemrograman (Java, C#, C++)
10
Pemrograman Berorientasi Objek
STMIK
BANISALEH
How Java Works?
public class Hello
public static void
main(String[] args){
[Link]("Hello
[Link]
World!");
}
javac (java compiler)
}
Interpreter
Interpreter
Interpreter
Interpreter
Kompiler memproduksi
Bytecode (Class)
[Link]
Write Once Run Everywhere !
Web Server
11
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Compile and Run Java Applet
import [Link].*;
import [Link].*;
public class HelloWorld extends Applet {
public void paint(Graphics g) {
[Link]("Hello
world!",50,25);
}
}
C:\appletviewer [Link]
C:\javac [Link]
<HTML>
<HEAD>
<TITLE>A Simple Program</TITLE>
</HEAD>
<BODY>
Here is the output of my program:
<APPLET CODE="[Link]" WIDTH=150
HEIGHT=25>
</APPLET>
</BODY>
</HTML>
12
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Menulis Java Program
Class bisa dieksekusi karena method
main
public static void main(String[] args)
Program Java mulai dari sini!
Bentuk program:
1. GUI Application public class biasanya
menggunakan Frame (AWT), Jframe(Swing)
2. Text-Based Console Application public class
adalah class yang sederhana
13
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Latihan: Membuat Program dg Netbeans
public class HelloWorld{
public static void
main(String[] args){
[Link](Halo
Semarang);
}
}
14
Pemrograman Berorientasi Objek
STMIK
BANISALEH
15
Pemrograman Berorientasi Objek
STMIK
BANISALEH
16
Pemrograman Berorientasi Objek
STMIK
BANISALEH
17
Pemrograman Berorientasi Objek
STMIK
BANISALEH
18
Pemrograman Berorientasi Objek
STMIK
BANISALEH
19
Pemrograman Berorientasi Objek
STMIK
BANISALEH
20
Pemrograman Berorientasi Objek
STMIK
BANISALEH
21
Pemrograman Berorientasi Objek
STMIK
BANISALEH
22
Pemrograman Berorientasi Objek
STMIK
BANISALEH
23
Pemrograman Berorientasi Objek
STMIK
BANISALEH
24
Pemrograman Berorientasi Objek
STMIK
BANISALEH
25
Pemrograman Berorientasi Objek
STMIK
BANISALEH
26
Pemrograman Berorientasi Objek
STMIK
BANISALEH
27
Pemrograman Berorientasi Objek
STMIK
BANISALEH
28
Pemrograman Berorientasi Objek
STMIK
BANISALEH
OOP
Concept
Konsep Dasar
Pemrograman
Berorientasi Objek
29
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Berorientasi Objek?
Attribute:
Topi, Baju, Tas
Punggung,
Jaket,
Tangan, Kaki,
Mata
Behavior:
Cara Jalan ke
Depan
Cara Jalan
Mundur
Cara Belok ke
30
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Berorientasi Objek?
Attribute (State):
Ban, Stir, Pedal
Kopling/Gas/Rem,
Warna, Tahun Produksi
Behavior:
Cara Menghidupkan Mesin
Cara Manjalankan Mobil
Cara Memundurkan Mobil
Attribute
31
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Latihan
1. Lakukan kegiatan berorientasi objek
dengan target Sepeda
2. Pikirkan apa atribut dan behavior yang
dimiliki oleh Sepeda tersebut
32
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Karakteristik OOP -1Abstraction:Cara kita melihat suatu sistem
dalam bentuk yang lebih sederhana, yaitu
sebagai suatu kumpulan subsistem
(object) yang saling berinteraksi.
Mobil adalah kumpulan sistem pengapian,
sistem kemudi, sistem pengereman
Modularity: Sifat object adalah modular.
Object dapat ditulis dan dimaintain
terpisah (independen) dari object lain
33
Pemrograman Berorientasi Objek
STMIK
BANISALEH
34
Pemrograman Berorientasi Objek
STMIK
BANISALEH
35
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Karakteristik OOP -2Encapsulation: Mekanisme
menyembunyikan suatu proses dalam
sistem untuk menghindari interferensi dan
menyederhanakan penggunaan sistem itu
sendiri
Tongkat transmisi (gigi) pada mobil
Tombol on/off/pengaturan suhu pada AC
36
Pemrograman Berorientasi Objek
STMIK
BANISALEH
37
Pemrograman Berorientasi Objek
STMIK
BANISALEH
38
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Karakteristik OOP -3Inheritance: Suatu class dapat mewariskan
atribut dan method kepada class lain
(subclass), serta membentuk class
hierarchy
39
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Karakteristik OOP -4Polymorphism: Suatu object dapat
memiliki berbagai bentuk, sebagai object
dari classnya sendiri atau object dari
superclassnya
Overloading: Penggunaan satu nama untuk
beberapa method yang berbeda (beda
parameter)
Overriding: Terjadi ketika deklarasi method
subclass dengan nama dan parameter yang
sama dengan method dari superclassnya
40
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Perbedaan Class dan Object
Class: mobil
Object: mobilnya pak Joko, mobilku
Class seperti cetakan kue, dimana kue yg
dihasilkan dari cetakan kue itu adalah object
Warna kue bisa bermacam-macam
meskipun berasal dari cetakan yang sama
(object memiliki sifat independen)
Object adalah instance dari Class
41
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Class = Method + Variable
42
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Object = Variabel dan Method Bernilai
Bicycle dimodelkan sebagai sebuah object:
10 mph, 90 rpm, 5th gear adalah instance variable
changegears, brake, changecadence adalah instance method
43
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Attribute
Berbagai variable yang mengitari class,
dengan nilai datanya bisa ditentukan di
object. Name, age, dan weight adalah
atribute dari class Person
44
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Membuat Class, Object dan Memanggil Atribut
class Mobil {
String warna;
int tahunProduksi;
}
class MobilBeraksi{
public static void main(String[] args){
// Membuat object
Mobil mobilku = new Mobil();
/* memanggil atribut dan memberi nilai */
[Link] = "Hitam";
[Link] = 2006;
[Link]("Warna: " + [Link]);
[Link]("Tahun: " +
[Link]);
45
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Latihan: Membuat Program dg Netbeans
1. Buka Netbeans IDE
2. Ikuti langkah berikut
46
Pemrograman Berorientasi Objek
STMIK
BANISALEH
47
Pemrograman Berorientasi Objek
STMIK
BANISALEH
48
Pemrograman Berorientasi Objek
STMIK
BANISALEH
49
Pemrograman Berorientasi Objek
STMIK
BANISALEH
50
Pemrograman Berorientasi Objek
STMIK
BANISALEH
51
Pemrograman Berorientasi Objek
STMIK
BANISALEH
52
Pemrograman Berorientasi Objek
STMIK
BANISALEH
53
Pemrograman Berorientasi Objek
STMIK
BANISALEH
54
Pemrograman Berorientasi Objek
STMIK
BANISALEH
55
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Method
Method adalah implementasi
dari bagaimana bekerjanya
sebuah class
Method melakukan:
[Link] data
[Link] matematika
[Link] kejadian dari suatu event
56
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Membuat dan Memanggil Method
class Mobil2{
String warna;
int tahunProduksi;
void printMobil(){
[Link]("Warna: " + warna);
[Link]("Tahun: " + tahunProduksi);
}
}
public class Mobil2Beraksi{
public static void main(String[] args){
// Membuat object
Mobil2 mobilku = new Mobil2();
/* memanggil atribut dan memberi nilai */
[Link] = "Hitam";
[Link] = 2006;
[Link]();
}}
57
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Latihan
Buat class MobilLengkap dan buat tiga
method:
hidupkanMobil()
matikanMobil()
ubahGigi()
Isi masing-masing method dengan
tampilan status menggunakan
[Link]()
Panggil method-method diatas dari
MobilLengkapBeraksi
58
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Message dan Parameter -1Bicycle akan berguna apabila ada object lain
(misalnya anda) yang berinterasi dengan
Bicycle tersebut
Object software berinteraksi dan
berkomunikasi dengan object lain dengan
cara mengirimkan message . Informasi dalam
message ini dikenal dengan nama Parameter
59
Pemrograman Berorientasi Objek
STMIK
BANISALEH
60
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Membuat Class ([Link])
class Sepeda{
int kecepatan = 0;
int gir = 0;
// method
void ubahGir(int pertambahanGir) {
gir= gir+ pertambahanGir;
[Link](" Gir:" + gir);
}
void tambahKecepatan(int pertambahanKecepatan) {
kecepatan = kecepatan+ pertambahanKecepatan;
[Link](" Kecepatan:" + kecepatan);
}
}
61
Pemrograman Berorientasi Objek
BANISALEH
Membuat
dan Memanggil Object
([Link])
STMIK
class SepedaBeraksi{
public static void main(String[] args) {
// Membuat object
Sepeda sepedaku = new Sepeda();
//memanggil atribut dan memberi nilai
[Link]=10;
[Link]=2;
// Memanggil method dan menunjuk nilai parameter
[Link](30);
[Link](3);
}}
62
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Latihan
Buat Class bernama Matematika, yang berisi
method dengan dua parameter:
pertambahan(int a, int b)
pengurangan(int a, int b)
perkalian(int a, int b)
pembagian(int a, int b)
Buat Class bernama MatematikaBeraksi, yang
mengeksekusi method dan menampilkan:
Pertambahan: 20 + 20 = 40
Pengurangan: 10-5 = 5
Perkalian: 10x20 = 200
Pembagian: 21/2 = 10
pertambahan(20,20)
63
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Tips Membuat Class
1 file bisa berisi lebih dari satu
class. Tapi lebih baik dan mudah
dipahami apabila satu file berisi
hanya satu class
1 file hanya dapat berisi 1 public
class. Nama file harus sama
dengan nama public class
Java menganut case-sensitive
64
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Konstruktor -1-
Method yang digunakan untuk memberi
nilai awal pada saat object diciptakan
Dipanggil secara otomatis ketika new
digunakan untuk membuat instan class
Sifat konstruktor:
Nama konstruktor sama dengan nama
class
Tidak memiliki nilai balik dan tidak boleh
ada kata kunci void
65
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Konstruktor -2class Mobil {
String warna;
int tahunProduksi;
public Mobil(String warna, int tahunProduksi){
[Link] = warna;
[Link] = tahunProduksi;
}
public void info(){
[Link]("Warna: " + [Link]);
[Link]("Tahun: " + [Link]);
}
}
class MobilKonstruktor{
public static void main(String[] args){
Mobil mobilku = new Mobil(Merah, 2003);
[Link]();
}
}
66
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Kata Kunci this
Digunakan pada pembuatan class dan
digunakan untuk menyatakan object
sekarang
class Mobil{
String warna;
Int tahunProduksi;
class Mobil{
String warna;
Int tahunProduksi;
void isiData(String
warnaMobil, int
tahunProduksiMobil){
void isiData(String warna,
int tahunProduksi){
warna = warnaMobil;
tahunProduksi =
tahunProduksiMobil;
}
[Link] = warna;
[Link] =
tahunProduksi;
}
67
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Class Acces Level
Specifier
Class
Package SubClass World
private
no specifier
protected
public
68
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Latihan
1. Buat class Buku
2. Tentukan variable buku: Judul, Pengarang,
Penerbit dan Tahun
3. Buat konstruktor class Buku dengan
parameter: Judul, Pengarang, Penerbit dan
Tahun
4. Buat method cetakBuku
5. Buat class BukuBeraksi dan tampilkan 2 buku:
Pemrograman Berbasis Objek dengan Java,
Indrajani, Elexmedia Komputindo, 2007
Dasar Pemrograman Java, Abdul Kadir, Andi
Offset, 2006
69
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Inheritance (Pewarisan)
Reusability
Top down:
Being more
specific
Bottom Up:
Find similiarity
Java Keyword:
extends
70
Pemrograman Berorientasi Objek
STMIK
BANISALEH
[Link]
class Sepeda{
int kecepatan = 0;
int gir = 0;
// method
void ubahGir(int pertambahanGir) {
gir= gir+ pertambahanGir;
[Link]("Gir:" + gir);
}
void tambahKecepatan(int pertambahanKecepatan) {
kecepatan = kecepatan+ pertambahanKecepatan;
[Link]("Kecepatan:" + kecepatan);
}
}
71
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Class SepedaGunung Mewarisi Class
Sepeda
class SepedaGunung extends
class SepedaGunung extends
Sepeda{
public void setSadel(int nilaiSadel) {
class SepedaGunungBeraksi {
public static void main(String[]
args) {
// Membuat object
SepedaGunung sepedaku = new
sepedaGunung();
[Link](Tinggi Sadel:+
nilaiSadel);
}
}
// Memanggil method di object
[Link](10)
;
[Link](2);
[Link](20);
}
}
72
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Latihan
Buat class MatematikaCanggih yang
merupakan inherit dari class Matematika
Tambahkan method modulus(int a, int b)
yang menghitung modulus dari a dan b.
Operator modulus adalah %
Buat class MatematikaCanggihBeraksi
yang memanggil method pertambahan,
parkalian dan modulus
73
Pemrograman Berorientasi Objek
STMIK
BANISALEH
OOP
Concept
Konsep Lanjut
Pemrograman
Berorientasi Objek
74
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Polymorphism
Polymorphism: Suatu object dapat
memiliki berbagai bentuk, sebagai
object dari classnya sendiri atau
object dari superclassnya
[Link]: Penggunaan satu nama
untuk beberapa method yang berbeda
parameter
[Link]: Terjadi ketika deklarasi
method subclass sama dengan
method dari superclassnya
75
Pemrograman Berorientasi Objek
STMIK
BANISALEH
public class MobilKonstruktor{
Polymorphism Overloading
class Mobil {
String warna;
int tahunProduksi;
public static void
main(String[] args){
Mobil mobilku = new
Mobil(Merah, 2003);
[Link]();
public Mobil(String warna, int
tahunProduksi){
[Link] = warna;
[Link] =
tahunProduksi;
}
Mobil mobilmu = new
Mobil();
[Link]();
}
public Mobil(){
}
}
void info(){
[Link]("Warna: " +
[Link]);
[Link]("Tahun: " +
[Link]);
}
}
76
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Contoh Lain Overloading
class Lingkaran{
public buatLingkaran(int diameter){
...
}
public buatLingkaran(int diameter, int x, int y) {
...
}
public buatLingkaran(int diameter, int x, int y,
int warna, String namaLingkaran) {
...
}
}
77
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Polymorphism - Overriding
class Sepeda{
int kecepatan = 0;
int gir = 0;
// method
void ubahGir(int pertambahanGir) {
gir= gir+ pertambahanGir;
[Link]("Gir:" + gir);
}
void tambahKecepatan(int pertambahanKecepatan) {
kecepatan = kecepatan+ pertambahanKecepatan;
[Link]("Kecepatan:" + kecepatan);
}
}
78
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Class SepedaGunung Mewarisi Class
Sepeda
class SepedaGunung extends
class SepedaGunung extends
Sepeda {
void ubahGir(int
pertambahanGir) {
int gir= 2*(gir+
pertambahanGir );
[Link]("Gir:" +
gir);
}
class SepedaGunungBeraksi {
public static void main(String[]
args) {
// Membuat object
SepedaGunung sepedaku = new
sepedaGunung();
// Memanggil method di object
[Link](10)
;
[Link](2);
[Link](20);
[Link]
}
[Link]
}
}
79
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Latihan
1. Kembangkan class Matematika dan
MatematikaBeraksi
2. Lakukan overloading pada Method yang ada
(pertambahan, pengurangan, perkalian,
pembagian) . Method baru adalah bertipe
data double (pecahan) dan memiliki 3
parameter
3. Uji di kelas MatematikaBeraksi dengan
parameter pecahan: 12.5, 28.7, 14.2
4. Misalnya:
pertambahan(12.5, 28.7, 14.2)
pertambahan(23, 34)
80
Pemrograman Berorientasi Objek
STMIK
BANISALEH
[Link]
class Matematika{
int hasilPertambahanBulat;
double hasilPertambahanPecahan;
public void pertambahan (int a, int b){
hasilPertambahanBulat = a + b;
[Link](hasil: + hasilPertambahanBulat);
}
public void pertambahan (double a, double b, double c) {
hasilPertambahanPecahan = a + b + c;
[Link](hasil: + hasilPertambahanPecahan);
}
...
}
81
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Packages
Package adalah koleksi dari beberapa class
dan interface yang berhubungan, dan
menyediakan proteksi akses dan
pengelolaan namespace
1 package adalah 1 subfolder di file system
Package sangat berguna untuk
mengorganisir file dalam suatu project
atau library
Nama package menggunakan lowercase
Keyword: package name;
82
Pemrograman Berorientasi Objek
STMIK
BANISALEH
[Link]
package kelasku;
public class Budi{
public void info(){
[Link](Kelas Budi);
}
}
83
Pemrograman Berorientasi Objek
STMIK
BANISALEH
[Link]
package kelasku;
public class Joko{
public void info(){
[Link](Kelas Joko);
}
}
84
Pemrograman Berorientasi Objek
STMIK
BANISALEH
[Link]
import kelasku.*;
public class PaketBeraksi{
public static void main(String[] args){
Budi objectBudi = new Budi();
[Link]();
Joko objectJoko = new Joko();
[Link]();
}
}
85
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Struktur Direktori
[Link]
kelasku
[Link]
[Link]
86
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Interface
Interface digunakan apabila kita
ingin menentukan apa yang harus
dilakukan oleh suatu class tapi
tidak menentukan bagaimana cara
untuk melakukannya
Interface sebenarnya sama dengan
class, tapi hanya memiliki deklarasi
method tanpa implementasi
87
Pemrograman Berorientasi Objek
STMIK
BANISALEH
[Link]
class Lampu implements IntLampu{
int statusLampu=0;
public void hidupkan(){
if ([Link] == KeadaanMati){
[Link] = KeadaanHidup;
[Link]("Hidupkan Lampu! --> Lampu Hidup");
}else{
[Link]("Hidupkan Lampu! --> Lampu Sudah
Hidup Kok");}
}
public void matikan(){
if ([Link] == KeadaanHidup){
[Link] = KeadaanMati;
[Link]("Matikan Lampu! --> Lampu Mati");
}else{
[Link]("Matikan Lampu! --> Lampu Sudah Mati
Kok");
}}}
88
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Class InterfaceBeraksi
public class InterfaceBeraksi{
public static void main(String[] args){
Lampu lampuKamar = new Lampu();
[Link]("Status Lampu Saat Ini: Mati");
[Link](); //Hidupkan Lampu
[Link](); //Matikan Lampu
[Link](); //Matikan Lampu
[Link](); //Hidupkan Lampu
[Link](); //Hidupkan Lampu
}
89
Pemrograman Berorientasi Objek
STMIK
BANISALEH
Latihan
Buat program serupa dengan
[Link] tapi untuk
[Link]
Masukkan method-method di
bawah ke dalam [Link]
matikanAC() dan hidupkanAC()
dinginkanAC() dan panaskanAC ()
90