modul pbo

32
Pemrograman Berorientasi Objek didan@umc Teknik Informatika 1 Universitas Muhammadiyah Cirebon Modul-1 Judul : Instalasi Java Prosedur Pelaksanaan : 1. Siapkan JDK yang telah disediakan, lalu installah seperti biasa, usahakan agar direktori tempat JDK ini mudah diakses, misalkan kita letakkan pada c:\ Java 2. Setelah terinstal lakukan setting classpath jika anda ingin menggunakan editor text seperti notepad, fungsi dari setting classpath ini agar program java yang anda buat dapat dijalankan dimana saja di seluruh partisi hardisk. Cara setting class path ini sebagai berikut a. Cari direktori bin yang ada terdapat pada direktori tempat Java anda terinstall b. Lalu catat alamat tempat diletakkan nya folder bin tersebut c. Setelah itu klik kanan pada MyComputer pilih properties, lalu klik pada tab advance d. Setelah itu pilih Environtment Variabel

Upload: didan-osman

Post on 02-Jul-2015

508 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Modul PBO

Pemrograman Berorientasi Objek

didan@umc Teknik Informatika 1 Universitas Muhammadiyah Cirebon

Modul-1

Judul : Instalasi Java

Prosedur Pelaksanaan :

1. Siapkan JDK yang telah disediakan, lalu installah seperti biasa, usahakan agar direktori tempat

JDK ini mudah diakses, misalkan kita letakkan pada c:\ Java

2. Setelah terinstal lakukan setting classpath jika anda ingin menggunakan editor text seperti notepad,

fungsi dari setting classpath ini agar program java yang anda buat dapat dijalankan dimana saja di

seluruh partisi hardisk. Cara setting class path ini sebagai berikut

a. Cari direktori bin yang ada terdapat pada direktori tempat Java anda terinstall

b. Lalu catat alamat tempat diletakkan nya folder bin tersebut

c. Setelah itu klik kanan pada MyComputer pilih properties, lalu klik pada tab advance

d. Setelah itu pilih Environtment Variabel

Page 2: Modul PBO

Pemrograman Berorientasi Objek

didan@umc Teknik Informatika 2 Universitas Muhammadiyah Cirebon

e. Lalu pada variable PATH pilih edit karena kita akan menambahkan classpath yang baru, maka

akan muncul jendela berikut

f. Tambahkan alamat terletaknya folder bin dalam hasil instalasi java.pada kolom Variable

Value. Setelah itu tekan OK.

3. Setelah di setting classpath restart komputer anda agar terjadi perubahan yang diinginkan

4. untuk mengecek apakah JDK yang anda install sudah terpasang dengan baik adalah dengan

menggunakan command prompt ketikan C:\> java, atau C:\> javac, jika melihat tulisan sebagai

berikut itu berarti JDK anda sudah terinstall dengan baik

Page 3: Modul PBO

Pemrograman Berorientasi Objek

didan@umc Teknik Informatika 3 Universitas Muhammadiyah Cirebon

5. sedangkan jika kita menggunakan IDE ( Integrated Development Environment) kita tinggal

menginstall nya setelah JDK terinstall, ada beberapa IDE yang bisa di pakai antara lain JBuilder

buatan Borland, Eclipse, NetBeans, dll

contoh tampilan IDE NetBeans

Page 4: Modul PBO

Pemrograman Berorientasi Objek

didan@umc Teknik Informatika 4 Universitas Muhammadiyah Cirebon

Modul-2

Judul : Membuat Class Sederhana

Teori :Seperti kita ketahui bahwa Java adalah bahasa yang murni 100% Object-

Oriented. Sehinggga mau tidak mau kita juga harus belajar tentang object-oriented programming, dan

kita juga harus belajar berfikir objek untuk mudah memahami bahasa Java.

Berbeda dengan teknik pemrograman secara struktural. Object-Oriented Programming adalah

suatu cara dalam memprogram, dimana kita melihat suatu program sebagai suatu benda hidup,

sehingga sebuah program komputer tidak bersifat pasif, tetapi ia akan terlihat „hidup‟. Hal ini

didasarkan pada paradigma dalam dunia nyata. Yaitu memandang data seperti memandang benda-

benda dalam kehidupan nyata, memiliki fleksibilitas dalam pendefinisian data, dll.

Ada tiga karakteristik utama dari sebuah pemrograman yang berorientasi Object, yaitu :

Abtraction

Encapsulation

Inheritance

Polymorphism

Sebelum kita masuk ke karakteristik OOP kita akan bahas sedikit beberapa konsep dasar dalam OOP

Class

Class adalah blueprint atau prototype dari objek-objek. kita misalkan sebagai berikut :

Class adalah blueprint / rancang bangun yang nantinya akan dibuat sebuah / beberapa object.

Class mengizinkan anda dalam mendeklarasikan tipe data baru

A Class is “ a mechanisme used to provide a description of one more similar objects that have

been abstracted from a real world things or concepts”.

Contoh lain dari analogi sebuah class dengan object adalah sebagai berikut :

Misalkan Ujang dari Class Mahasiswa

Dalam Java kita tidak dapat mendefinisikan objek secara langsung, melainkan kita bekerja

dengan kelas dari sebuah objek.

Page 5: Modul PBO

Pemrograman Berorientasi Objek

didan@umc Teknik Informatika 5 Universitas Muhammadiyah Cirebon

Sebuah class dalam Java dideklarasikan sebagai berikut :

[atribut_akses] class [Identifier] [super] [interface] [body]

Sebuah class harus mempunyai kata kunci class. Kata kunci ini dapat didahului oleh atribut_akses

yang bersifat opsional. Kata kunci class harus diikuti nama class berupa identifier. Baru kemudian

dapat diikuti dengan nama-nama dari superclass dan/ atau super interface. Baru kemudian diikuti

dengan block { } yang merupakan body dari class.

Contoh nama dari sebuah class :

public class Persegi

{

private int panjang;

private int lebar;

public Persegi()

{

}

}

“ ingat nama class harus sama dengan nama file “

Access Specifier

Access Spesifier Untuk Variable : Jenis variable Lingkup pengaksesan Daur hidup

Variabel instant Tunduk terhadap kondisi berikut :

1. private – hanya metode

dalam class yang dapatm

mengakses

2. public – sembarang class

dapat mengakses.

3. friendly – kelas atau

sembarang class dalam paket

4. protected – sembarang

subclass dari class dapat

mengakses

Saat instance diciptakan

hingga tidak ada lagi

referensi terhadap

instance.

Variabel class Tunduk terhadap lingkup yang sama

dengan variable instance

Saat kelas dimuat hingga

tidak ada lagi referensi

terhadap class tersebut.

Variabel lokal Kode didalam blok yang sama Saat kode blok masih

aktif.

Access Specifier untuk method :

Access

Specifier

Lingkup pengaksesan Pemakaian

Public Metode dapat diakses sembarang

class

Antarmuka eksternal class

anda

Private Metode dapat diakses oleh metode

dalam class yang sama

Metode untuk pemakaian

internal class (tidak

berhubungan dengan

pamakai class)

Page 6: Modul PBO

Pemrograman Berorientasi Objek

didan@umc Teknik Informatika 6 Universitas Muhammadiyah Cirebon

Tidak secara

eksplicit

disebutkan

(friendly)

Metode dapat diakses oleh metode

didalam class atau metode dalam

class lain yang berada pada paket

yang sama.

Metode yang anda

inginkan dapat diakses

oleh kelas yang berkaitan

Protected Metode dapat diakses oleh metode

dalam subclass dari class tersebut

Metode yang ingin diakses

oleh subclass dari class

tersebut.

Abstraction

Abstraction : cara kita melihat suatu sistem dalam bentuk yang lebih sederhana, yaitu sebagai

kumpulan subsistem (object) yang saling berinteraksi.

Object

Objek, adalah entiti yang memiliki keadaan, Behaviour dan identitas yang tugasnya dirumuskan

dalam suatu lingkup masalah dengan naik. Inilah instance yang sebenarnya dari sebuah class. Ini

juga dikenal sebagai instance.

Object adalah representasi nyata dari sebuah class.

Object is “a real world thing or concept that can be defined by descriptive attributes and behavior “

Kita dapat menyatakan sesuatu yang ada di sekitar kita sebagai suatu objek, dari yang nyata, seperti

Komputer, pohon, hewan, bangunan, dll. Hingga yang abstrak, seperti hutang, penjualan barang,

dll.

Dalam Java kita tidak dapat mendefinisikan objek secara langsung, melainkan kita bekerja dengan

kelas dari sebuah objek. kita dapat meng-instance sebuah class menjadi object dengan kata kunci

new.

Contoh :

public class hitungPersegi

{

public static void main(String[] args) {

// membuat objek

Persegi p = new persegi() ;

}

}

Perhatikan perbedaan antara class dan obyek yang dicontohkan dalam dunia nyata

Class Motor Object Motor A Object Motor B

Variabel

Instance

Nomor Plat E 1234 GB E 4569 GH

Warna Hitam Merah

Pabrikan Yamaha Honda

Page 7: Modul PBO

Pemrograman Berorientasi Objek

didan@umc Teknik Informatika 7 Universitas Muhammadiyah Cirebon

Kecepatan 40 km/ jam 50 km/jam

Method

Instance

Method Akslelerasi

Method Rem

Method standing up

Attribut / Field

menyatakan informasi yang dibawa kelas dan menjadi parameter dari objek dari kelas yang

bersangkutan. Misal ada kelas bangun geometri kubus, maka parameter bagi objek kubus itu

adalah panjang. Maka kita akan menulis field itu dalam java dengan format sebagai berikut :

Atribut_akses tipe_data Nama_field;

Maka kita tulis sebagai berikut :

private int panjang;

Dalam Java, istilah variable dipakai untuk menyatakan field, local-variable, parameter, dan

komponen array.

Istilah field sendiri dipakai untuk menyatakan variable yang merupakan bagian langsung dari

sebuah class atau interface

Method

Sebuah method menjelaskan behaviour dari sebuah object. Method juga dikenal sebagai fungsi

atau prosedur.

Secara sederhana method dapat dikatakan sebagai operasi yang dapat dilakukan oleh object dari

class. Operasi ini bisa berupa menerima dan menampilkan data, memanipulasi field, atau

mempengaruhi objek lain.

Berikut ini adalah format penulisan dalam mendeklarasikan method dalam body kelas.

Atribut_akses tipe_kembalian Nama_Method(arg1,arg2,...argn)

{

// body of method

}

Berikut ini adalah karakteristik dari sebuah method

1. Dapat mengembalikan satu nilai atau tidak sama sekali

2. Dapat diterima beberapa parameter yang dibutuhkan atau tidak ada parameter samasekali.

Parameter bisa juga disebut sebagai argumen dari fungsi

3. Setelah method telah selesai dieksekusi, dia akan kembali pada method yangmemanggilnya

1. Membuat Class mahasiswa

public class mahasiswa

Page 8: Modul PBO

Pemrograman Berorientasi Objek

didan@umc Teknik Informatika 8 Universitas Muhammadiyah Cirebon

{

private int nim;

private String nama;

prvate String alamat;

private String email;

public String getNama()

{

return nama;

}

public int getNim()

{

return nim;

}

public void setNama(String nama)

{

this.nama = nama;

}

public void setNim(int nim)

{

this.nim = nim;

}

}

Page 9: Modul PBO

Pemrograman Berorientasi Objek

didan@umc Teknik Informatika 9 Universitas Muhammadiyah Cirebon

2. Membuat Class mainMahasiswa public class mainMahasiswa

{

public static void main(String[] args)

{

Mahasiswa mhs1 = new Mahasiswa();

Mahasiswa mhs2 = new Mahasiswa();

mhs1.setNama("Joni");

mhs1.setNim("00123456");

mhs1.setEmail("[email protected]");

mhs1.setAlamat("Cirebon");

mhs2.setNim("00123457");

mhs2.setAlamat("Kutaraja");

mhs2.setEmail("[email protected]");

mhs2.setNim("ayu");

//Menampilkan Data

System.out.println("Nama : "+mhs1.getNama());

System.out.println("NIM : "+mhs1.getNim());

System.out.println("Email : "+mhs1.getEmail());

System.out.println("Alamat: "+mhs1.getAlamat());

}

}

3. Membuat Class Persegi Panjang public class PersegiPanjang

{

private int panjang;

private int lebar;

public PersegiPanjang(int panjang, int lebar)

{

this.panjang = panjang;

this.lebar = lebar;

}

public int getLebar()

{

return lebar;

}

public void setLebar(int lebar)

{

this.lebar = lebar;

}

Page 10: Modul PBO

Pemrograman Berorientasi Objek

didan@umc Teknik Informatika 10 Universitas Muhammadiyah Cirebon

public int getPanjang()

{

return panjang;

}

public void setPanjang(int panjang)

{

this.panjang = panjang;

}

public int Luas()

{

int Luas;

Luas = panjang * lebar;

return Luas;

}

}

4. Membuat Class mainPersegiPanjang public class mainPersegiPanjang

{

public static void main(String[] args)

{

PersegiPanjang kotak = new PersegiPanjang();

kotak.setLebar(10);

kotak.setPanjang(15);

//Menampilkan Luas Persegi Panjang

System.out.println("Luas : "+kotak.getLuas());

}

}

Page 11: Modul PBO

Pemrograman Berorientasi Objek

didan@umc Teknik Informatika 11 Universitas Muhammadiyah Cirebon

Modul-3

Judul : Membuat Class (Overloading Constructor, Overloading Method)

Teori :

Overloading Constructor adalah Membuat 2 Constructor atau lebih yang memiliki beberapa parameter

dalam sebuah class, seperti kita tahu bahwa construtor digunakan sebagai inisialisasi sebuah class,

dengan adanya overloading constructor kita dapat membuat beberapa objek yang serupa tapi tak sama

Contoh :

Pada class Mahasiswa yang kemarin telah kita buat kita tidak melihat adanya construtor, akan tetapi

pada saat kita meng-instance objek mahasiswa kita mendeklarasikan new Mahasiswa();hal itu terjadi

karena java secara otomatis membuat sendiri construtornya secara default.

Lat 1. Class Mahasiswa public class mahasiswa

{

private String nim;

private String nama;

private String alamat;

private String email;

private static int jumlah;

public Mahasiswa()

{

jumlah++;

}

public Mahasiswa(String nim)

{

this.nim = nim;

jumlah++;

}

public String getAlamat()

{

return alamat;

}

public void setAlamat(String alamat)

{

this.alamat = alamat;

}

public String getEmail()

{

return email;

}

public void setEmail(String email)

{

this.email = email;

}

public String getNama()

{

return nama;

}

Page 12: Modul PBO

Pemrograman Berorientasi Objek

didan@umc Teknik Informatika 12 Universitas Muhammadiyah Cirebon

public void setNama(String nama)

{

this.nama = nama;

}

public String getNim()

{

return nim;

}

public void setNim(String nim)

{

this.nim = nim;

}

public static int getJumlah()

{

return jumlah;

}

public void getData()

{

System.out.println("Nama : "+nama);

System.out.println("Nim : "+nim);

System.out.println("Email : "+email);

System.out.println("Alamat : "+alamat);

}

public void getData(int NilaiUts, int NilaiUas)

{

System.out.println("Nama : "+nama);

System.out.println("Nim : "+nim);

System.out.println("Nilai UTS : "+NilaiUts);

System.out.println("Nilai UAS : "+NilaiUas);

System.out.println("Nilai Akhir : "+((0.4 * NilaiUts) + (0.6 *

NilaiUas)));

}

}

Page 13: Modul PBO

Pemrograman Berorientasi Objek

didan@umc Teknik Informatika 13 Universitas Muhammadiyah Cirebon

public class mainMahasiswa

{

public static void main(String[] args)

{

Mahasiswa mhs1 = new Mahasiswa();

Mahasiswa mhs2 = new Mahasiswa();

Mahasiswa mhs3 = new Mahasiswa("0012399");

mhs1.setNama("Joni");

mhs1.setNim("00123456");

mhs1.setEmail("[email protected]");

mhs1.setAlamat("Cirebon");

mhs2.setNim("00123457");

mhs2.setAlamat("Kutaraja");

mhs2.setEmail("[email protected]");

mhs2.setNim("ayu");

//Menampilkan Data

System.out.println("Nama : "+mhs3.getNama());

System.out.println("NIM : "+mhs3.getNim());

System.out.println("Email : "+mhs3.getEmail());

System.out.println("Alamat: "+mhs3.getAlamat());

//Menampilkan Jumlah Data

System.out.println("Jumlah Mahasiswa : "+Mahasiswa.getJumlah());

//Menampilkan Data Mhs1

mhs1.getData();

System.out.println("");

//Menampilkan Data Mhs2

mhs2.getData(70, 90);

}

}

Page 14: Modul PBO

Pemrograman Berorientasi Objek

didan@umc Teknik Informatika 14 Universitas Muhammadiyah Cirebon

Modul-4

Judul : Inheritance (Penurunan Sifat / Pewarisan) & Polymorfisme

Teori : Inheritance dan Polymorfisme adalah kedua sifat yang dimiliki dalam Konsep OOP. Dalam

inheritance, method overriding berbeda dengan method overloading. Kalau method

overriding adalah mendefinisikan kembali method yang sama, baik nama method maupun

signature atau parameter yang diperlukan dalam subclass, kalau method overloading adalah

mendefinisikan method yang memiliki nama yang sama, tetapi dengan signature yang berbeda

dalam definisi class yang sama.

Inheritance is “The Concepts of creating classes that are specialization of the other class”.

A Super Class is “An class that is higher in the inheritance structure than another class”.

A Sub Class is “An class that is the descendant of another class”.

Example :

Class Mahasiswa is A Sub Class of the class person

Class Person is A Super Class from class Mahasiswa

Aturan-aturan dalam penurunan class

a. Sebuah Super Class mengandung attribut dan method yang bersifat umum untuk semua Sub

Class

b. Sebuah Sub Class menurunkan semua attribut dan method dari super class

c. Sebuah Sub Class memungkinkan untuk memiliki attribut atau method tersendiri

d. Sebuah Sub Class Memungkinkan untuk me-override atau memodifikasi attribut atau method

turunannya.

e.

Latihan 1 : abstract class Bentuk

{

protected int panjang;

protected int lebar;

public String getBentuk()

{

return "Dasar";

}

public abstract int hitungLuas();

}

class BujurSangkar extends Bentuk

{

public BujurSangkar(int panjang1, int lebar1)

{

this.panjang = panjang1;

this.lebar = lebar1;

}

@Override

public String getBentuk()

{

Page 15: Modul PBO

Pemrograman Berorientasi Objek

didan@umc Teknik Informatika 15 Universitas Muhammadiyah Cirebon

return "Bujur Sangkar";

}

@Override

public int hitungLuas()

{

return panjang * lebar;

}

}

class segitiga extends Bentuk

{

public segitiga(int panjang2, int lebar2)

{

this.panjang = panjang2;

this.lebar = lebar2;

}

@Override

public String getBentuk()

{

return "Segitiga";

}

@Override

public int hitungLuas()

{

return (panjang * lebar )/2;

}

}

Latihan 2 : public class Hewan

{

private String tipe;

public Hewan(String tipe)

{

this.tipe = tipe;

}

public String toString()

{

return "Ini adalah "+tipe;

}

public void bersuara()

{

}

}

public class Anjing extends Hewan

{

private String nama;

private String jenis;

public Anjing(String nama)

{

super("Anjing");

this.nama = nama;

Page 16: Modul PBO

Pemrograman Berorientasi Objek

didan@umc Teknik Informatika 16 Universitas Muhammadiyah Cirebon

jenis = "tidak diketahui";

}

public Anjing(String nama, String jenis)

{

super("Anjing");

this.nama = nama;

this.jenis = jenis;

}

public void bersuara()

{

System.out.println("Guk guk guk");

}

public String toString()

{

return super.toString()+"\nIni adalah "+jenis+" bernama "+nama;

}

}

public class Ayam extends Hewan

{

private String nama;

private String jenis;

public Ayam(String nama)

{

super("Ayam");

this.nama = nama;

this.jenis = "Tidak diketahui";

}

public Ayam(String nama, String jenis)

{

super("Ayam");

this.nama = nama;

this.jenis = jenis;

}

public String toString()

{

return super.toString()+"\nIni adalah "+jenis+" bernama "+nama;

}

public void bersuara()

{

System.out.println("Kukuruyuk petok petok");

}

}

public class Kucing extends Hewan

{

private String nama;

private String jenis;

public Kucing(String tipe, String nama)

{

super("Kucing");

this.nama = nama;

this.jenis = "Tidak Diketahui";

}

public Kucing(String tipe, String nama, String jenis)

{

Page 17: Modul PBO

Pemrograman Berorientasi Objek

didan@umc Teknik Informatika 17 Universitas Muhammadiyah Cirebon

super("Kucing");

this.nama = nama;

this.jenis = jenis;

}

@Override

public void bersuara()

{

System.out.println("Meong...Meong...");

}

@Override

public String toString()

{

return super.toString()+"\nIni adalah "+jenis+" bernama "+nama;

}

}

public class polymorfisme

{

public static void main(String[] args)

{

Hewan[] hewannya = {new Anjing("Broni","Herder"),

new Kucing("Kiti","Persia"),

new Ayam("Toki", "Buras")};

Hewan pilihHewan;

Random pilih = new Random();

for(int i = 0; i < 5; i++)

{

pilihHewan = hewannya[pilih.nextInt(hewannya.length)];

System.out.println("\nPilihan Anda:\n" + pilihHewan);

pilihHewan.bersuara();

}

}

Page 18: Modul PBO

Pemrograman Berorientasi Objek

didan@umc Teknik Informatika 18 Universitas Muhammadiyah Cirebon

Modul-5

Judul : UML

Teori : Dalam suatu proses pengembangan software, analisa dan rancangan telah merupakan

terminologi yang sangat tua. Pada saat masalah ditelusuri dan spesifikasi dinegoisasikan, dapat

dikatakan kita berada pada tahap rancangan. Merancang adalah menemukan suatu cara untuk

menyelesaikan masalah, salah satu tool / model untuk merancang pengembangan software yang

berbasis object oriented adalah UML.

Konsep Objek

Obyek dalam „software analysis & design‟ adalah sesuatu berupa konsep (concept), benda (thing), dan

sesuatu yang membedakannya dengan lingkungannya. Secara sederhana obyek adalah mobil, manusia,

alarm dan lainlainnya. Tapi obyek dapat pula merupakan sesuatu yang abstrak yang hidup didalam

sistem seperti tabel, database, event, system messages. Obyek dikenali dari keadaannya dan juga

operasinya. Sebagai contoh sebuah mobil dikenali dari warnanya, bentuknya, sedangkan manusia dari

suaranya. Ciriciri ini yang akan membedakan obyek tersebut dari obyek lainnya. Alasan mengapa saat

ini pendekatan dalam pengembangan software dengan object oriented, pertama adalah scalability

dimana obyek lebih mudah dipakai untuk menggambarkan sistem yang besar dan komplek. Kedua

dynamic modeling, adalah dapat dipakai untuk permodelan sistem dinamis dan realtime.

Keuntungan permodelan berorientasi objek yaitu :

1. Titik berat pengembangan perangkat lunak ada di tahap analisis tetapi mudah di bagian

implementasi karena model-model yang dihasilkan mudah diadaptasi ke dalam program.

2. Mengorganisasikan system berdasarkan objek dan bukan fungsi menghasilkan model yang lebih

stabil dari perubahan yang terjadi kemudian dan pada tahap implementasi menghasilkan

program yang lebih modular.

3. Merupakan proses pengembangan yang berkesinambungan. Model-model yang dihasilkan pada

tahap analisis digunakan pada tahap perancangan dan implementasi. Tahap perancangan dan

implementasi mengkonsentrasikan pada memperbaiki model dan tidak mentransformasi model-

model tersebut ke dalam diagram lain yang berbeda notasi. Oleh karena itu, model-model yang

dihasilkan cukup konsisten, error, dan diskontinuitas dapat model dapat diminimasi.

Teknik Dasar OOA/D (Object-Oriented Analysis/Design)

Dalam dunia pemodelan, metodologi implementasi obyek walaupun terikat kaidah-kaidah standar,

namun teknik pemilihan obyek tidak terlepas pada subyektifitas software analyst & designer. Beberapa

Page 19: Modul PBO

Pemrograman Berorientasi Objek

didan@umc Teknik Informatika 19 Universitas Muhammadiyah Cirebon

obyek akan diabaikan dan beberapa obyek menjadi perhatian untuk diimplementasikan di dalam

sistem. Hal ini sah-sah saja karena kenyataan bahwa suatu permasalahan sudah tentu memiliki lebih

dari satu solusi. Ada 3 (tiga) teknik/konsep dasar dalam OOA/D, yaitu pemodulan (encapsulation),

penurunan (inheritance) dan polymorphism.

a. Pemodulan (Encapsulation)

Pada dunia nyata, seorang ibu rumah tangga menanak nasi dengan menggunakan rice cooker,

ibu tersebut menggunakannya hanya dengan menekan tombol. Tanpa harus tahu bagaimana

proses itu sebenarnya terjadi. Disini terdapat penyembunyian informasi milik rice cooker,

sehingga tidak perlu diketahui seorang ibu. Dengan demikian menanak nasi oleh si ibu menjadi

sesuatu yang menjadi dasar bagi konsep information hiding.

b. Penurunan (Inheritance)

Obyek-obyek memiliki banyak persamaan, namun ada sedikit perbedan. Contoh dengan

beberapa buah mobil yang mempunyai kegunaan yang berbeda-beda. Ada mobil bak terbuka

seperti truk, bak tertutup seperti sedan dan minibus. Walaupun demikian obyek-obyek ini

memiliki kesamaan yaitu teridentifikasi sebagai obyek mobil, obyek ini dapat dikatakan sebagai

obyek induk (parent). Sedangkan minibus dikatakan sebagai obyek anak (child), hal ini juga

berarti semua operasi yang berlaku pada mobil berlaku juga pada minibus.

c. Polymorphism

Pada obyek mobil, walaupun minibus dan truk merupakan jenis obyek mobil yang sama, namun

memiliki juga perbedaan. Misalnya suara truk lebih keras dari pada minibus, hal ini juga

berlaku pada obyek anak (child) melakukan metoda yang sama dengan algoritma berbeda dari

obyek induknya. Hal ini yang disebut polymorphism, teknik atau konsep dasar lainnya adalah

ruang lingkup / pembatasan. Artinya setiap obyek mempunyai ruang lingkup kelas, atribut, dan

metoda yang dibatasi.

Perbandingan Antara Object Oriented dengan Struktural

Object Oriented Struktural

1. Systems decomposed into collections of

data objects;

1. Systems decomposed into functions;

2. function + data in one place 2. functions and data modelled separately

3. System components more independent =>

more resilient to requirements and

maintenance changes

3. System components are more dependent

on each other => requirements and

maintenance changes more difficult

Page 20: Modul PBO

Pemrograman Berorientasi Objek

didan@umc Teknik Informatika 20 Universitas Muhammadiyah Cirebon

4. Inheritance and Polymorphisme are

possible => reuse; extension and tailoring

of software / designs is possible

4. Inheritance and polymorphisme not

possible => limited reuse possible

5. Closely mirror how humans decompose

and complex

5. System component do not map closely to

real world entities => difficult to manage

complexity

Diagram Dalam UML

Ada beberapa diagram yang digunakan pada UML yaitu :

use case diagram

conceptual Diagram

class diagram

object diagram

state chart diagram

activity diagram

sequence diagram

collaboration diagram

component diagram

deployment diagram

Relasi dalam UML

Berikut ini relasi yang biasa digunakan dalam UML

Dependency

Adalah hubungan antara 2 buah benda (things) yang mana sebuah benda berubah akan

mengakibatkan benda lainnya berubah pula

Association

Adalah hubungan antara benda struktural yang terhubung diantara objek Kesatuan obyek yang

terhubung merupakan hubungan khusus, yang menggambarkan sebuah hubungan struktural

diantara seluruh atau sebagian.

Page 21: Modul PBO

Pemrograman Berorientasi Objek

didan@umc Teknik Informatika 21 Universitas Muhammadiyah Cirebon

Generalization

Generalization adalah hubungan yang menggambarkan hubungan antara class induk dan class

anak/antara super class dan sub class

Use Case Diagram

Sebuah use case menggambarkan suatu urutan interaksi antara satu atau lebih aktor dan sistem. Dalam

fase requirements, model use case mengambarkan sistem sebagai sebuah kotak hitam dan interaksi

antara aktor dan sistem dalam suatu bentuk naratif, yang terdiri dari input user dan respon-respon

sistem. Setiap use case menggambarkan perilaku sejumlah aspek sistem, tanpa mengurangi struktur

internalnya. Selama pembuatan model use case secara pararel juga harus ditetapkan obyek-obyek yang

terlibat dalam setiap use case.

Sebuah Use Case menggambarkan suatu urutan interaksi antara satu atau lebih aktor dan

sistem.

Menekankan pada “apa” yang diperbuat sistem, bukan “bagaimana”.

Model elements : Use Case dan Actor.

Use Case menggambarkan kebutuhan sistem dari sudut pandang di luar sistem.

Use Cases hanya menetapkan apa yang seharusnya dikerjakan oleh sistem, yaitu kebutuhan

fungsional sistem.

Use Cases adalah interaksi atau dialog antara sistem dan actor, termasuk pertukaran pesan

dan tindakan yang dilakukan oleh sistem.

Actor

Actor menggambarkan segala pengguna software aplikasi (user). Actor memberikan suatu gambaran

jelas tentang apa yang harus dikerjakan software aplikasi. Sebagai contoh sebuah actor dapat

memberikan input kedalam dan menerima informasi dari software aplikasi, perlu dicatat bahwa sebuah

actor berinteraksi dengan use case, tetapi tidak memiliki kontrol atas use case. Sebuah actor mungkin

seorang manusia, satu device, hardware atau sistem informasi lainnya.

Langkah pertama untuk analisa kebutuhan adalah mencari sesuatu yang berinteraksi dengan sistem

Anda.

Dalam Use Cases, sesuatu diluar sistem yang berinteraksi dengan sistem disebut actor.

Actor class digunakan untuk memodelkan dan menyatakan peran untuk “pemakai” dari sistem,

termasuk manusia dan sistem lain.

Page 22: Modul PBO

Pemrograman Berorientasi Objek

didan@umc Teknik Informatika 22 Universitas Muhammadiyah Cirebon

Actor disimbolkan sebagai berikut :

Sistem Boundaries

Sistem boundaries adalah batasan sistem terhadap lingkungan luar, pada use case, sistem boundaries

digunakan untuk memisahkan antara sistem dengan actor karena hanya actor lah yang berada di luar

sistem

Pada use case sistem boundaries digambarkan dengan kotak

System

Use Case

Sebuah use case dimulai dengan masukan/input dari seorang aktor. Use case merupakan suatu

urutan lengkap kejadian-kejadian yang diajukan oleh seorang aktor, dan spesifikasi interaksi antara

aktor dengan sistem. Use case yang sederhana hanya melibatkan satu interaksi/hubungan dengan

sebuah aktor, dan use case yang lebih kompleks melibatkan beberapa interaksi dengan aktor. Use cases

yang lebih kompleks juga melibatkan lebih dari satu aktor.

Use case menjelaskan urutan kegiatan yang dilakukan actor dan sistem untuk mencapai suatu

tujuan tertentu. Walaupun menjelaskan kegiatan, namun use case hanya menjelaskan apa yang

dilakukan oleh actor dan sistem bukan bagaimana actor dan sistem melakukan kegiatan tersebut.

Untuk menggambarkannya dalam use case model biasanya digunakan association relationship

yang memiliki stereotype include, extend atau generalization relationship. Hubungan include

menggambarkan bahwa suatu use case seluruhnya meliputi fungsionalitas dari use case lainnya.

Page 23: Modul PBO

Pemrograman Berorientasi Objek

didan@umc Teknik Informatika 23 Universitas Muhammadiyah Cirebon

Hubungan extend antar use case berarti bahwa satu use case merupakan tambahan fungsionalitas dari

use case yang lain jika kondisi atau syarat tertentu terpenuhi.

Use Case digambarkan sebagai berikut :

UseCase

Contoh gambar diagram use case

Relasi dalam Use Case

1. Association antara actor dan use case

a. Ujung panah pada association antara Use Case dan actor mengindikasikan siapa/apa yang

meminta interkasi dan bukannya yang mengindikasikan aliran data.

b. Sebaiknya gunakan garis tanpa panah untuk association antara Use Case dan actor.

c. Associaton antara Use Case dan actor yang menggunakan panah terbuka untuk

mengindikasikan bila actor berinteraksi secara pasif dengan sistem anda.

2. Association antar use case

a. Include

Ketika sebuah Use Case memerlukan /membutuhkan pemakaian fungsionalitas lain di

dalam sistem, maka hubungan antara Use case tersebut dapat dikatakan sebagai include

relationship. Untuk mengidentifikasi include relationship maka dalam penulisannya adalah

“<<include>>”.

Termasuk di dalam Use Case lain (required/diharuskan)

Pemanggilan Use Case oleh Use Case lain

Contonya adalah pemanggilan sebuah fungsi program

Gambarkan association <<include>> secara horizontal

Tanda panah terbuka harus terarah ke sub Use Case

Tidak boleh actor dihubungkan pada Use Case <<include>>

Page 24: Modul PBO

Pemrograman Berorientasi Objek

didan@umc Teknik Informatika 24 Universitas Muhammadiyah Cirebon

b. Extends

Extend relationship pada Use Case adalah suatu hubungan sebab akibat. Jika fungsi induk

mempunyai extend relationship maka dapat diartikan bahwa fungsi Use Case induk tersebut

dapat dilakukan jika fungsi extend dilakukan terlebih dahulu. Bentuk penulisan extend

relationship adalah “<<extend>>”.

Perluasan dari Use Case lain jika kondisi atau syarat terpenuhi

Kurangi penggunaan association Extend ini, terlalu banyak penggunaan association ini

membuat diagram sulit dipahami

Tanda panah terbuka harus terarah ke parent/base Use Case

Gambarkan association extend secara vertikal (picture extending Use Case below than

base/parent Use case)

Tidak boleh actor dihubungkan pada Use Case <<extend>>

3. Generalization antar use case

Dibuat ketika ada sebuah keadaan yang lain/perlakuan khusus

Inheriting Use Case di bawah parent/base Use Case

Activity Diagram

Activity diagrams menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang,

bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana mereka

berakhir. Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada

beberapa eksekusi.

Activity diagram merupakan state diagram khusus, di mana sebagian besar state adalah action dan

sebagian besar transisi di-trigger oleh selesainya state sebelumnya (internal processing). Oleh karena

itu activity diagram tidak menggambarkan behaviour internal sebuah sistem (dan interaksi antar

subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level

atas secara umum.

Sebuah aktivitas dapat direalisasikan oleh satu use case atau lebih. Aktivitas menggambarkan proses

yang berjalan, sementara use case menggambarkan bagaimana aktor menggunakan sistem untuk

melakukan aktivitas.

Simbol simbol pada activity diagram hampir mirip dengan flowchart, berikut daftar simbol

Page 25: Modul PBO

Pemrograman Berorientasi Objek

didan@umc Teknik Informatika 25 Universitas Muhammadiyah Cirebon

Simbol Keterangan

Init state (inisialisasi awal)

Control Flow

State1

State (proses)

*

*

*

**

*

Transisition

Decision

Final State

Sequence Diagram

Sequence diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem (termasuk

pengguna, display, dan sebagainya) berupa message yang digambarkan terhadap waktu. Sequence

diagram terdiri atar dimensi vertikal (waktu) dan dimensi horizontal (objek-objek yang terkait).

Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah

yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu. Diawali dari apa

yang men-trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan

output apa yang dihasilkan.

Masing-masing objek, termasuk aktor, memiliki lifeline vertikal. Message digambarkan sebagai garis

berpanah dari satu objek ke objek lainnya. Pada fase desain berikutnya, message akan dipetakan

menjadi operasi/metoda dari class. Activation bar menunjukkan lamanya eksekusi sebuah proses,

biasanya diawali dengan diterimanya sebuah message.

Page 26: Modul PBO

Pemrograman Berorientasi Objek

didan@umc Teknik Informatika 26 Universitas Muhammadiyah Cirebon

Berikut daftar simbol pada sequence diagram

Simbol Keterangan

Object1

Object Timeline

Aktivasi

Message

Page 27: Modul PBO

Pemrograman Berorientasi Objek

didan@umc Teknik Informatika 27 Universitas Muhammadiyah Cirebon

Modul-6

Judul : MVC (Model – View – Controller)

Materi : Arsitektur Model-View-Controller adalah sebuah pola yang terbukti membangun proyek

secara lebih efektif. Hal itu dilakukan dengan memilah komponen antara Model, View dan Controller

pada bagian – bagian dalam proyek.

Aplikasi apapun, bagian dalam kode yang sering mengalami perubahan adalah bagian user interface.

User interface adalah bagian yang paling terlihat oleh user dan bagaimana ia berinteraksi dengan

aplikasi, membuatnya menjadi titik fokus pengubahan berdasar kemudahan penggunaan.

Business-logic yang rumit pada user-interface membuat pengubahan pada user interface menjadi lebih

kompleks dan mudah terjadi kesalahan. Perubahan pada satu bagian memiliki potensi keterkaitan

dengan keseluruhan aplikasi.

Pola MVC menyediakan sebuah solosi terhadap permasalahan tersebut dengan membagi aplikasi

menjadi bagian – bagian tersendiri, Model, View dan Controller, memisahkan antar bagian tersebut dan

membuat tata interaksi diantaranya.

Diagram di atas menunjukkan 3 komponen yang terdapat dalam pola MVC dan interaksi yang terjadi.

Page 28: Modul PBO

Pemrograman Berorientasi Objek

didan@umc Teknik Informatika 28 Universitas Muhammadiyah Cirebon

Model

Pola MVC memiliki layer yang disebut dengan Model yang merepresentasikan data yang digunakan

oleh aplikasi sebagaimana proses bisnis yang diasosiasikan terhadapnya. Dengan memilahnya sebagai

bagian terpisah, seperti penampungan data, persistence, serta proses manipulasi, terpisah dari bagian

lain aplikasi.

Terdapat beberapa kelebihan dalam pendekatan ini. Pertama, membuat detail dari data dan operasinya

dapat ditempatkan pada area yang ditentukan (Model) dibanding tersebar dalam keseluruhan lingkup

aplikasi. Hal ini memberikan keuntungan dalam proses maintenance aplikasi.

Kedua, dengan pemisahan total antara data dengan implementasi interface, komponen model dapat

digunakan kembali oleh aplikasi lain yang memiliki kegunaan yang hampir sama.

View

Layer ini mengandung keseluruhan detail dari implementasi user interface. Disini, komponen grafis

menyediakan representasi proses internal aplikasi dan menuntun alur interaksi user terhadap aplikasi.

Tidak ada layer lain yang berinteraksi dengan user, hanya View.

Penggunaan layer View memiliki beberapa kelebihan : Pertama, memudahkan pengabungan divisi

desain dalam development team. Divisi desain dapat berkonsentrasi pada style, look & feel, dan

sebagainya, dalam aplikasi tanpa harus memperhatikan lebih pada detail yang lain.

Dan juga, memiliki layer View yang terpisah memungkinkan ketersediaan multiple interface dalam

aplikasi. Jika inti dari aplikasi terletak pada bagian lain (dalam Model), multiple interfaces dapat

dibuat (Swing, Web, Console), secara keseluruhan memiliki tampilan yang berbeda namun

mengeksekusi komponen Model sesuai fungsionalitas yang diharapkan.

Controller

Terakhir, arsitektur MVC memiliki layer Controller. Layer ini menyediakan detail alur program dan

transisi layer, dan juga bertanggung jawab akan penampungan events yang dibuat oleh user dari View

dan melakukan update terhadap komponen Model menggunakan data yang dimasukkan oleh user.

Kelebihan dalam penggunaan layer Controller secara terpisah : Pertama, dengan menggunakan

komponen terpisah untuk menampung detail dari transisi layer, komponen view dapat didesain tanpa

harus memperhatikan bagian lain secara berlebih. Hal ini memudahkan team pengembang multiple

interface bekerja secara terpisah dari yang lain secara simultan. Interaksi antar komponen View

terabstraksi dalam Controller.

Page 29: Modul PBO

Pemrograman Berorientasi Objek

didan@umc Teknik Informatika 29 Universitas Muhammadiyah Cirebon

Kedua, dengan menggunakan layer terpisah yang melakukan update terhadap komponen Model, detail

tersebut dihapus dari layer presentasi. Layer presentasi kembali pada fungsi utamanya untuk

menampilkan data kepada user. Detail tentang bagaimana data dari user mengubah ketetapan aplikasi

disembunyikan oleh Controller. Hal ini memisahkan dengan jelas antara presentation logic dengan

business logic.

Tidak dapat disimpulkan bahwa pola MVC hadir dengan kelebihan – kelebihan tanpa ada efek

samping. Pembagian aplikasi dalam 3 bagian terpisah meningkatkan kompleksivitas. Pada aplikasi

kecil yang tidak membutuhkan loose coupling pada Model, hal ini dapat menjadi blok penghalang

dalam penggunaan pola ini. Bagaimanapun, yang terbaik adalah untuk meyakini bahwa sebuah aplikasi

umumnya dimulai dari aplikasi sederhana, dan berkembang menjadi sistem yang kompleks., sehingga

factor loose coupling harus selalu diutamakan dan diperhatikan.

Dalam java ada beberapa component swing yang menggunakan konsep mvc, diantaranya adalah

JTable, pada beberapa kasus penggunaan JTable ini terasa sulit karena kita harus belajar menggunakan

konsep MVC, tetapi jika sudah memahami konsep ini justru penggunaan JTable ini terasa lebih mudah.

Contoh : Menampilkan data Mahasiswa dalam JTable

1. Buat Domain Model

public class Mahasiswa

{

private String nim;

private String nama;

private String prodi;

public String getNama()

{

return nama;

}

public void setNama(String nama)

{

this.nama = nama;

}

public String getNim()

{

return nim;

}

Page 30: Modul PBO

Pemrograman Berorientasi Objek

didan@umc Teknik Informatika 30 Universitas Muhammadiyah Cirebon

public void setNim(String nim)

{

this.nim = nim;

}

public String getProdi()

{

return prodi;

}

public void setProdi(String prodi)

{

this.prodi = prodi;

}

}

import java.util.Vector;

import javax.swing.table.AbstractTableModel;

public class tabelModelMahasiswa extends AbstractTableModel

{

public String[] colomName = {"NIM","Nama","Prodi"};

private String data[][];

public tabelModelMahasiswa(Vector v)

{

int jmlBaris = v.size();

data = new String[jmlBaris][];

for(int i = 0; i < jmlBaris; i++)

{

Mahasiswa mhs = (Mahasiswa)v.elementAt(i);

data[i] = new String[3];

data[i][0] = mhs.getNim();

data[i][1] = mhs.getNama();

data[i][2] = mhs.getProdi();

}

}

public int getRowCount()

{

return this.data.length;

}

public int getColumnCount()

{

return colomName.length;

}

public Object getValueAt(int rowIndex, int columnIndex)

{

return data[rowIndex][columnIndex];

Page 31: Modul PBO

Pemrograman Berorientasi Objek

didan@umc Teknik Informatika 31 Universitas Muhammadiyah Cirebon

}

public String getColumnName(int columnIndex)

{

return colomName[columnIndex];

}

}

2. Buat Controller

import java.sql.*;

import java.util.Vector;

public class mahasiswaDb

{

Connection con;

Statement stmt;

ResultSet rs ;

public mahasiswaDb()

{

koneksi konek = new koneksi();

con = konek.getCon();

stmt = konek.getStmt();

}

public Vector getDataMahasiswa(String sql)

{

Vector v = new Vector();

rs = null;

try

{

rs = stmt.executeQuery(sql);

while(rs.next())

{

String nim = rs.getString("nim");

String nama = rs.getString("nama");

String prodi = rs.getString("prodi");

Mahasiswa mhs = new Mahasiswa();

mhs.setNim(nim);

mhs.setNama(nama);

mhs.setProdi(prodi);

v.addElement(mhs);

}

}

catch(SQLException e)

{

System.err.println("Error SQL : " + e.getMessage());

}

finally

{

try

Page 32: Modul PBO

Pemrograman Berorientasi Objek

didan@umc Teknik Informatika 32 Universitas Muhammadiyah Cirebon

{

if (stmt != null) stmt.close();

if (con != null) con.close();

}

catch (SQLException sqle)

{

sqle.getMessage();

}

}

return v;

}

}

3. Buat View Component

public class tampilMahasiswa

{

private tabelModelMahasiswa model;

private Container contentPane;

public void run()

{

JFrame frame = new JFrame();

mahasiswaDb mhs = new mahasiswaDb();

Vector mahas = mhs.getDataMahasiswa("SELECT * FROM mahasiswa");

model = new tabelModelMahasiswa(mahas);

JTable tabel = new JTable(model);

JScrollPane panel = new JScrollPane(tabel);

contentPane = frame.getContentPane();

contentPane.add(panel);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.pack();

frame.setSize(300, 400);

frame.setLocation(150, 50);

frame.setVisible(true);

}

public static void main(String[] args)

{

tampilMahasiswa tampil = new tampilMahasiswa();

tampil.run();

}

}