object oriented

Published on June 2017 | Categories: Documents | Downloads: 59 | Comments: 0 | Views: 466
of x
Download PDF   Embed   Report

Comments

Content

MODUL OOP 2014SISTEM KOMPUTER
Laboratorium Sistem Komputer

MODUL

2014/

I. PEMROGRAMAN BERORIENTASI OBJEK
TUJUAN
1. Memahami konsep umum OOP.
2. Mengetahui perbedaan antara pemrograman prosedural dengan OOP.
3. Memahami class, package, method, constructor, kata kunci “this”, dan akses pada
pemrograman Java.
4. Mengetahui jenis-jenis pada Java.

PERANGKAT
PC yang sudah terinstall Java
DASAR TEORI
PENGERTIAN OOP (OBJECT ORIENTED PROGRAMMING)
OOP (Object Oriented Programming) adalah metode pemrograman yang berorientasi kepada
objek. Tujuan dari OOP diciptakan adalah untuk mempermudah pengembangan program dengan cara
mengikuti model yang telah ada di kehidupan sehari-hari. Jadi setiap bagian dari suatu permasalahan
adalah objek. Sekumpulan dari objek akan membuat class. Di mana objek tersebtu adalah bagian dari
class. Sebagai contoh, ada sebuah ruangan yang diberi nama kamar tidur. Kamar
tidur bertindak sebagai class. Lalu di dalamnya terdapat tempat tidur dan lemari
yang bertindak sebagai objek. Di dalam sebuah kamar tidur (class) terdapat sebuah benda yang
mengisi ruangan tersebut (objek).
PERBEDAAN PEMROGRAMAN PROSEDURAL DENGAN OOP
Pemrograman terstruktur adalah suatu proses untuk mengimplementasikan urutan langkah
untuk menyelesaikan suatu masalah dalam bentuk program. Selain pengertian di atas, pemrograman
terstruktur adalah suatu aktivitas pemrograman dengan memperhatikan urutan langkah-langkah
perintah secara sistematis, logis, dan tersusun berdasarkan algoritma yang sederhana dan mudah
dipahami. Prinsip dari pemrograman terstruktur adalah jika suatu proses telah sampai pada satu titik /
langkah tertentu, maka proses selanjutnya tidak boleh mengeksekusi langkah sebelumnya / kembali
lagi ke baris sebelumnya, kecuali pada langkah-langkah untuk proses perulangan. Dengan
menggunakan OOP, maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana
1|MODUL OOP

MODUL

2014/

cara menyelesaikan suatu masalah tersebut (terstruktur), tetapi objek-objek apa yang dapat melakukan
pemecahan masalah tersebut. Sedangkan untuk pemrograman terstruktur menggunakan prosedur / tata
cara yang teratur untuk mengoperasikan dara struktur.
DASAR PEMROGRAMAN JAVA
1. Tipe Data
a. Integer (Bilangan Bulat)
Tipe data yang masuk menjadi bagian ini adalah byte, Short, int, long. Semua tipe data ini
bersifat signed, yaitu dapat mempresentasikan nilai positif dan negatif.
Tipe Data

Ukuran (bit)

Range

Byte

8

-128 s.d. 127

Short

16

-32768 s.d. 32767

Int

32

-2147483648 s.d. 2147483647

Long

64

-9223372036854775808 s.d. 9223372036854775807

b. Floating Point (Bilangan Pecahan)
Tipe floating point digunakan untuk merepresentasikan nilai-nilai yang mengandung pecahan
atau angka desimal di belakang koma, seperti 3.1416, 5.25, dan sebagainya.
Tipe Data

Ukuran (bit)

Range

Float

32

+/- 3.4 x 1038

Double

64

+/- 1.8 x 10308

c. Char
Tipe data char merupakan tipe untuk menyatakan sebuah karakter.
d. Boolean
Tipe boolean adalah tipe data yang digunakan untuk menampung nilai logika, yaitu nilai yang
hanya memiliki dua buah kemungkinan (benar atau salah). Tipe ini ditandai dengan kata kunci
Boolean. Dalam bahasa Java, nilai benar dipresentasikan dengan kata kunci true dan nilai salah
dengan kata kunci false.

2|MODUL OOP

MODUL

2014/

2. Paket (package)
Paket tersebut digunakan untuk mengelompokkan class yang mempunyai kemiripan fungsi
(related class).

3. Kelas (class)
Kelas merupakan inti dari pemrograman Java. Ini artinya setiap konsep atau kasus
pemrograman yang ingin implementasikan ke dalam Java, haruslah dibungkus ke dalam sebuah class.
Class dapat dikatakan sebagai blueprint atau kerangka yang mendefinisikan variabel-variabel dan
method dari objek tertentu.
//Cara mendeklarasikan sebuah class :
//1. Diawali dengan kata kunci "class",
//2. kemudian diikuti nama class
class namaKelas {
tipeData1 namaData1;
tipeData2 namaData2;
...
}
//Di bawah ini adalah contoh class dalam java :
class kucing {
String warna_bulu;
int jumlah_kaki;
}

4. Objek
Semua benda yang ada di dunia nyata dapat dianggap sebagai objek. Contoh: rumah, mobil,
dll. Setiap objek memiliki atribut sebagai status (state) dan memiliki tingkah laku (behavior). Contoh:
objek sepeda memiliki atribut (state) : pedal, roda, jeruji, warna, jumlah roda. Memiliki tingkah
laku (behavior) : kecepatannya menaik, kecepatannya menurun, perpindahan gigi sepeda.
Untuk membuat objek baru dari tipe class yang telah didefinisikan, perlu dilakukan dua tahap.
Pertama, mendeklarasikan variabel yang digunakan sebagai referensi ke objek dari class
3|MODUL OOP

MODUL

2014/

bersangkutan. Kedua, kita perlu menginstansiasi class dengan menggunakan operator new dan
memasukkan instance-nya ke dalam variabel referensi yang baru saja kita deklarasikan.

5. Method
//contoh membuat objek
class Kotak {
double panjang;
double lebar;
double tinggi;
}
class DemoKotak1 {
public static void main(String[] args) {
double volume;
Kotak k = new Kotak();

//Membuat objek kotak dengan nama k

// Mengisikan nilai ke dalam data-data class Kotak
k.panjang = 4;
k.lebar = 3;
k.tinggi = 2;
// Menghitung isi/volume kotak
volume = k.panjang * k.tinggi * k.lebar;
// Menampilkan nilai volume ke layar monitor
System.out.println("Volume kotak = " + volume);
}

}

Method merupakan suatu bagian dari objek, di mana method akan mendeklarasikan apa yang
bisa dilakukan oleh objek tersebut. Dengan kata lain, method berisi suatu fungsi dari objek. Method
dibedakan menjadi dua, yaitu method tanpa nilai balikan, dan method dengan nilai balikan. Untuk
mendeklarasikan method caranya mudah, method harus ada di dalam class. Sebagai contohnya
sebagai berikut :

4|MODUL OOP

MODUL

2014/

Jika kita ingin membuat method dengan sifat akses public, tipe kembalian void, dan nama
method adalah berhitung. Lalu parameter atau inputannya adalah nilai yang ingin dihitung, maka cara
pendeklarasiannya adalah sebagai berikut :
class MahasiswaInformatika{
public void berhitung(int, int l){
//method ini menghitung luas persegi panjang dengan panjang
p dan lebar = l, tipe data keduanya adalah integer

=

int luas;
luas = p*l;
//lalu mencetaknya
System.out.println("luas persegi panjang dengan panjang "+p+"
dan lebar "+l+" adalah "+luas);
}

Method dengan nilai balikan :
//Format penulisan method dengan nilai balikan :
tipeVariabel namaMethod(){
return namaVariabel;
}

6. Constructor
Constructor merupakan method khusus yang dideklarasikan di dalam class. Yang
membedakan constructor dengan method biasa adalah nama constructor sama dengan nama class.
Selain itu, constructor tidak mengembalikan data, dan tidak juga diawali dengan kata kunci “void”.
Fungsi dari constructor sendiri yaitu untuk menginisialisasi nilai data-data yang ada di dalam class

5|MODUL OOP

MODUL

2014/

tersebut. Constructor akan dipanggil secara otomatis, saat kita melakukan instansiasi objek. Jika
constructor tidak dibuat, maka saat Java Runtime akan secara otomatis membuat constructor kosong.
Class login
{
Private string nama, paswd ;
Login() {
This.nama

= “”;

This.Paswd=

“”;

}
}

7. Kata Kunci “This”
Dalam pemrograman Java diperbolehkan menggunakan variabel atau parameter dengan nama
yang sama, selama tidak berada dalam satu blok tertentu. Sedangkan kata kunci this ini sendiri
digunakan untuk menegaskan referensi parameter mana yang dituju, saat ada dua parameter yang
memiliki nama yang sama.

public class Aritmatik {
int a = 0;
int b = 0;
int c = 0;
void isiData(int a, int b) {
this.a = a;
this.b = b;
}
int tambah() {
return c = a + b;
}
}

KONSEP OOP (OBJECT ORIENTED PROGRAMMING)
1. Enkapsulasi (Encapsulation)
2. Pewarisan (Inheritance)

6|MODUL OOP

MODUL

2014/

3. Polimorfisme (Polymorphism)

7|MODUL OOP

MODUL

2014/

1. Enkapsulasi (Encapsulation)
a. Istilah enkapsulasi sebenarnya adalah kombinasi atribut dan method dalam
sebuah unit tunggal sebagai bentuk untuk menyembunyikan detail informasi.
b. Proses enkapsulasi memudahkan untuk menggunakan sebuah objek dari suatu
class karena kita tidak perlu mengetahui segala hal secara rinci.
c. Contoh : class mobil menyediakan antarmuka fungsi untuk menjalankan mobil
tersebut, tanpa kita perlu tahu komposisi bahan bakar, udara dan kalor yang
diperlukan untuk proses tersebut.
2. Pewarisan (Inheritance)
a. Dapat mendefinisikan suatu class baru dengan mewarisi sifat dari class lain yang
sudah ada.
b. Dalam pembahasan tentang pewarisan, akan menemukan kata-kata seperti
superclass dan subclass. Superclass bisa dianalogikan sebagai induk dari class
yang nantinya akan mewariskan sesuatu untuk class berikutnya. Sedangkan
subclass adalah class yang menerima warisan dari superclass.
c. Dengan konsep pewarisan, seorang programmer dapat menggunakan kode yang
telah ditulisnya pada superclass berulang kali pada subclass tanpa harus menulis
ulang semua kode tersebut.
d. Contoh : terdapat class sepeda dan sepeda gunung. Sepeda termasuk superclass.
Sepeda gunung termasuk subclass. Hal ini dikarenakan sepeda gunung memiliki
variabel dan method yang dimiliki oleh sepeda.
3. Polimorfisme (Polymorphism)
a. Polymorphism merupakan kemampuan objek yang berbeda class namun terkait
dalam pewarisan untuk merespon secara berbeda terhadap suatu pesan yang
sama.
b. Polymorphism

juga

dapat

dikatakan

kemampuan

sebuah

objek

untuk

memutuskan method mana yang akan diterapkan padanya, tergantung letak objek
tersebut pada jenjang pewarisan.
c. Contoh : ada empat ekor hewan berbeda, yaitu burung, ular, katak, dan singa.
Kemudian ketika dminta untuk bergerak, maka burung akan terbang, ular akan
melata, kata melompat, singa mungkin akan berlari.

8|MODUL OOP

MODUL

2014/

JENIS JENIS JAVA
1. J2SE (Java 2 Standard Edition) : Berbasis Desktop
J2SE adalah inti dari pemrograman Java. Digunakan untuk desktop.
2. J2EE (Enterprise Edition) : Berbasis Web
Java 2 Platform Enterprise Edition (J2EE) adalah salah satu Java Family Suite, yang menjadi
standar penting untuk mengembangkan Enterprises aplikasi multitier berbasis komponen. Diantaranya
adalah aplikasi untuk e-bussiness, e-commerce, dan web base application.
3. J2ME (Mobile Edition) : Berbasis Mobile
Java 2 Mobile Edition adalah salah satu standar penting untuk mengembangkan mobile
application, seperti aplikasi perangkat lunak di handphone yang banyak sekali kita lihat dan gunakan.
4. Javascript
Javascript adalah bahasa skrip yang populer di internet dan dapat bekerja di sebagian besar
penjelajah web populer seperti Internet Explorer, Mozilla Firefox, Netscape, dan Opera. Kode
Javascript dapat disisipkan dalam halaman web menggunakan tag SCRIPT.

DAFTAR PUSTAKA
9|MODUL OOP

MODUL

2014/

II. INHERITANCE
TUJUAN
1.
2.
3.
4.

Mengenal dan memahami konsep Inheritance (pewarisan) pada Java.
Mengenal macam-macam Inheritance.
Memahami method override dan overload dalam pewarisan.
Mengenal macam-macam modifier class, method dan access modifier dalam Inheritance.

Sebuah PC dengan aplikasi Java di dalamnya

KONSEP INHERITANCE (PEWARISAN)
OOP mempunyai tiga konsep dasar yaitu, Encapsulation, Inheritance dan Polymorphism.
Pada modul ini akan dipelajari salah satu konsep dasar OOP yaitu Inheritance (Pewarisan).
Inheritance merupakan kemampuan suatu objek untuk dapat mengambil seluruh properti yang
terdapat pada objek lain atau pewarisan atribut dan method-method dari class ke class lainnya.
Dalam inheritance terdapat istilah superclass atau parentclass dan subclass. Superclass atau
parentclass merupakan class yang memberikan warisan. Sedangkan subclass merupakan class yang
menerima warisan. Sehingga atribut-atribut dan sifat method yang didefinisikan dan terdapat dalam
superclass secara otomatis akan diwariskan ke semua subclass-nya.
Contoh diagram pewarisan :

Untuk mendeklarasikan inheriance, digunakan kata kunci “extends”. Kata kunci extends
tersebut memberitahu compiler Java bahwa akan terjadi perluasan class. Dengan cara menambahkan
kata kunci extends setelah deklarasi nama class, kemudian diikuti dengan nama parentclass-nya.
10 | M O D U L O O P

MODUL

2014/

Contoh mendeklarasikan inheritance :

Dari potongan program di atas “B extends A” menunjukkan bahwa class B mewarisi sifat dari
class A. Class A merupakan parentclass dan class B merupakan subclass.
Contoh implementasi inheritance


Buat class dengan nama Senjata sebagai superclass

package main;
public class Senjata {
public void tembak(){
System.out.println("Dor ... Dor ... Dor ...");
}
}



Buat class baru dengan nama Pistol sebagai subclass

package main;
public class Pistol extends Senjata {
//dikosongkan karena class Pistol Langsung mewarisi seluruh atribut dan
method yang terdapat pada Class Senjata
}



Buat class baru dengan nama M16 sebagai subclass

package main;
public class M16 extends Senjata {
@override
public void tembak(){
System.out.println("Trrrrt ..... Trrrrrrt..... Trrrrrrrrrrrrrt");
}
}

Pada class Pistol tidak terdapat method apapun, karena class Pistol langsung mewarisi
method dari class Senjata yang menjadi parentclass. Sementara pada class M16 juga mewarisi seluruh
atribut dan method dari class Senjata tapi memiliki deklarasi output yang berbeda dengan class
Senjata sehingga mendeklarasikan method-nya sendiri.


Buat class Senjata sehingga nama Tester sebagai mainclass

11 | M O D U L O O P

MODUL

2014/

package main;
public class Tester {
public static void main(String[] args) {
//membuat objek
Senjata senjata= new Senjata();
Pistol pistol= new Pistol();
M16 m16= new M16();
//memanggil method
pistol.tembak();
m16.tembak();
}
}

Maka outputnya :
Dor ... Dor ... Dor ...
Trrrrt ..... Trrrrrrt ...... Trrrrrrrrrrrrrt
MACAM-MACAM INHERITANCE
1. Single Inheritance
Konsep inheritance yang ada di Java hanya memperkenankan adanya single inheritance,
yaitu satu subclass hanya dapat mempunyai satu parentclass.
2. Multilevel Inheritance
Konsep multilevel inheritance yaitu suatu subclass perbolehkan untuk mempunyai subclass
lagi. Jadi terdapat pewarisan bertingkat.
3. Multple Inheritance
Multiple inheritance adalah pewarisan ganda, di mana suatu class dapat mewarisi berbagai
class. Tetapi Java tidak mendukung multiple inheritance karena bisa menimbulkan ambiguitas,
(diamond problem). C++ mendukung multiple inheritance.
MODIFIER
Modifier merupakan salah satu fasilitas yang digunakan untuk menentukan hak akses suatu
atribut ataupun method yang ada pada Java. Penggunaan modifier ini juga berfungsi untuk melakukan
langkah enkapsulasi (membungkus data) pada objek. Dengan menggunakan modifier kita dapat
menentukan siapa saja yang boleh menggunakan atau mengakses ember dari suatu objek.
Pada modul 2 akan dijelaskan tentang penggunaan kontrol akses atau modifier pada class,
method, dan sebagai aksesor.
1. Class Modifier
12 | M O D U L O O P

MODUL
package main;

Modifier

2014/

Keterangan

class Mobil {

(default)

Class visible atau dapat digunakan hanya pada package yang sama

Public

Class visible terhadap semua package yang berbeda-beda

Final

Class tidak dapat diturunkan lagi/extends

public void jenis(){
System.out.println("Jenis-jenis mobil");
}
}

Bentuk penggunaan modifier pada class :
<modifier> class NamaClass {
...
}

Contoh Program :
Public class Kendaraan{
...
}

Contoh program dengan class modifier public
package main;
public class Senjata {
public void tembak(){
System.out.println("Dor ... Dor ... Dor ...");
}
}

Class dengan modifier public dapat diakses (import) oleh seluruh class – class yang berada
pada package yang sama maupun pada package yang berbeda. Intinya, class dengan
modifier default bersifat general, sehingga dapat diakses oleh seluruh class yang
berada di mana saja.

Contoh program dengan class modifier default

13 | M O D U L O O P

MODUL

2014/

Class dengan modifier default biasanya tipe modifiernya tidak ditulis / dideklarasikan pada
saat membuat class. Modifier ini hanya dapa diakses oleh class- class yang berada di package yang
sama saja dan tidak visibel untuk class-class yang berada di package yang lain.
2. Method Modifier
Modifier

Keterangan

(default)

Method visible atau dapat digunakan hanya pada package yang sama

Public

Method visible pada semua package

Private

Method visible hanya di dalam class itu sendiri

Protected

Method visible didalam package dan subclassnya

Static

Method visible hanya dengan method yang static juga

Final

Method tidak dapat diubah/dioverride pada subclass

Abstract

Method harus dioverride/didefinisikan pada subclassnya

Bentuk penggunaan modifier pada method:
<modifier> tipe-data namaMethod(parameter) {
...
}

Contoh program dengan method modifier protected :
package main;
public class Pisang {
int ambon;
int lilin;
Protected int Harga () {
ambon = 7000;
lilin = 6000;
}
}

3. Aksesor (Variabel atau Parameter)
Aksesor adalah atribut atau variabel atau parameter yang digunakan suatu class atau method.

14 | M O D U L O O P

MODUL
Modifier

Class yang

Package yang

Sama

Sama

2014/
Subclass Package Lain

Class
Manapun

Private



Default





Protected







Public









Keterangan :
a. Private :

variabel atau atribut yang dideklarasikan Private hanya bisa diakses

oleh class yang mendeklarasikan variabel atau atribut tersebut.
b. Default : merupakan jenis akses kontrol jika kita tidak menuliskan akses
kontrol secara eksplisit. Semua fitur class yang ada dalam satu package bisa
diakes oleh semua yang ada dalam package tersebut. Class di luar package boleh
melakukan subclass, tetapi subclass tersebut tidak bisa mengakses fitur
superclass.
c. Protected: mempunyai kemampuan akses yang lebih besar daripada Private dan
default. Fitur protected dari suatu class bisa diakses oleh semua class dalam suatu
package. Class diluar package boleh melakukan subclass, dan subclass tersebut
bisa mengakses fitur superclass.
d. Public: dapat diakses oleh semua class dalam package yang sama maupun
berbeda.
Bentuk penggunakan modifier pada aksesor :
<modifier> tipe-aksesor NamaAksesor;

Contoh program aksesor dengan modifier static

class Point {
int x;
int y;
//aksessor dengan modifier static
Public int getX () {
Return x;
}
Public int getY () {
Return y;
}

15 | M O D U L O O P

MODUL

2014/

Public Point(int x, int y){
//nama method dengan modifier public dan parameter int x dan int y
this.x = x;

this.y = y;

}
Point() { //method tanpa parameter
x = -1;
y = -1;
}
}

OVERRIDE DAN OVERLOAD
Konsep override dan overload merupakan implementasi dari inheritance. Selain itu konsep
ini juga merupakan implementasi dari polymorphism. Overload dan override, keduanya merupakan
suatu method yang terdapat dalam suatu class yang memiliki nama method yang sama. Namun pada
overload dan override memiliki kesamaan dan perbedaan yang dapat dilihat dari parameternya.
1. Override
Overriding adalah sebutan untuk suatu method yang nama method-nya sama tetapi berada di
class yang berbeda. Method pertama adalah method yang berasal dari parentclass dengan parameter
yang sama dengan method pada subclass. Pada overriding nama method dan parameternya pada
kedua class-nya harus sama.
Poin-poin penting dari override adalah sebagai berikut :
a. Override mendefinisikan method dengan nama yang sama, namu pada class yang
berbeda.
b. Konsep ini dapat dimanfaatkan dalam beberapa kasus inheritance (pewarisan),
ketika menginginkan nama method yang sama dengan superclass, namun berbeda
dalam implementasinya dalam subclass.
c. Ketika kita memanggil method tersebut dari objek subclass-nya maka yang akan
dijalankan adalah method yang berbeda di subclass tersebut.
Contoh :
class Kendaraan {
public void getJenis() {
System.out.println("Harga BBM naik");
}
}

16 | M O D U L O O P

MODUL
class Motor extends Kendaraan {

2014/

//class Motor merupakan subclass dari

class Kendaraan
public void getJenis() { //method yang di-override dari class
Kendaraan
System.out.println("Harga BBM premium 4500 rupiah");
}
}

Kesimpulan :


Override method merupakan method yang nama method-nya sama persis dengan method
yang sudah ada di superclass-nya, biasanya perbedaannya adalah pada implementasi




(program body).
Overriding tidak bisa dilakukan dalam class itu sendiri.
Jadi overriding erat kaitannya dengan inheritance (pewarisan).

2. Overload
Overloading merupakan sebutan untuk method yang memiliki nama method yang sama dan
berada di dalam satu class yang sama. Method-nya hampir sama seperti constructor yaitu
memiliki nama yang sama dengan nama class-nya. Namun pada overloading terdapat 2 method yang
memiliki nama yang sama tetapi berbeda parameternya.
a. Overload mendefinisikan method dengan nama yang sama dalam satu class.
b. Konsep ini sering digunakan dalam penggunaan constructor.
c. Overload mendeklarasikan method yang berulang dengan mengubah parameter
masukan. Jadi dapat mendeklarasikan method yang sama berulang-ulang dengan
parameter masukan yang berbeda-beda dengan syarat nilai kembalian sama,
nama sama, dan parameter masukan berbeda.
Contoh berikut ini adalah versi class point yang menggunakan overloading method untuk
menghasilkan constructor alternatif yang membuat beberapa nilai default untuk koordinat x dan y.
Contoh 1 :

17 | M O D U L O O P

MODUL

2014/

class Point {
int x;
int y;
Point(int x, int y){
//nama method dengan parameter int x dan int y
this.x = x;

this.y = y;

}
Point() { //method tanpa parameter
x = -1; y = -1;
}
}

class PointCreateAlt {
public static void main(String args[] ) {
Point p = new Point();
System.out.println("x = " + p.x +" y =" + p.y);
}
}

Maka outputnya :
X = -1, Y = -1
Untuk method yang menggunakan parameter :
class PointCreateAlt {
public static void main(String args[] ) {
Point p = new Point(1,2);
System.out.println("x = " + p.x +" y =" + p.y);
}
}

Maka outputnya :
X = 1, Y = 2
Contoh 2 :

18 | M O D U L O O P

MODUL

2014/

class Segitiga {
public Segitiga(double panjang) {
System.out.println (“\nVariabel = segitiganya sama sisi “);
System.out.println (“Panjang = “ +panjang);
Keliling(panjang);
Public Segitiga(double sisiMiring){
System.out.println
(“\n2Variabel
=
segitiganya
sama
kaki”);
System.out.println (“Panjang = “ +panjang+ “sisi miring =
“ +sisiMiring);
Keliling (panjang, sisiMiring);

Dapat dilihat pada contoh di atas bahwa terdapat 2 method dengan nama sama yaitu contoh
1 : “point” dan contoh 2 : “segitiga”, tetapi memiliki parameter terbuka. Inilah yang disebut
overloading.
KATA KUNCI ”THIS” DAN “SUPER”
1. Kata Kunci “this”
Kata kunci “this” digunakan untuk membedakan nama variabel antara variabel class dengan
variabel method atau parameter. Jika terdapat nama variabel yang sama antara variabel class dan
variabel parameter, maka “this” berfungsi untuk membedakan variabel mana yang akan digunakan.
Contoh :
class Mobil{
String namaMobil;
String tahunKeluar;
void isiData ( String namaMobil, String tahunKeluar) {
this.namaMobil = namaMobil; this.tahunKeluar =
tahunKeluar;
}
public static void main ( String [ ] args){
Mobil mobilku = new Mobil( );
mobilku.isiData ("Taruna","2007");
System.out.println( "Nama Mobil : "+ mobilku.namaMobil);
System.out.println( "Tahun Keluar"+mobilku.tahunKeluar);
}
}

2. Kata Kunci “super”
19 | M O D U L O O P

MODUL

2014/

Kata kunci “super” dapat digunakan untuk memanggil constructor yang ada pada superclass.
Penggunaan super dilakukan saat inisialisasi di dalam sebuah constructor pada subclass. Kita dapat
mengakses method class induk yang bersifat public / protected dengan super. Kita juga dapat
mengakses atribut class induk yang bersifat public / protected dengan super.
Contoh berikut berdasarkan class Senjata pada contoh inheritance di bagian sebelumnya.
package main;
public class Pistol extends Senjata {
public Pistol (){
System.out.println("Bunyinya adalah:");
super.tembak();
}
}

Maka outputnya adalah :
Bunyinya adalah :
Dor . . . Dor . . . Dor . . .
DAFTAR PUSTAKA
20 | M O D U L O O P

MODUL

2014/

III. POLYMORPHISM
1. Mengenal dan memahami konsep Polymorphism pada Java.
2. Mengimplementasikan konsep Polymorphism dalam program.
PC yang sudah terinstall Java

KONSEP POLYMORPHISM
Polymorphism merupakan salah satu konsep penting dalam Object Oriented Programming
(OOP) khususnya dalam bahasa Java. Polymorphism berarti banyak bentuk, yang memungkinkan
sebuah method mempunyai nama yang sama, namun memiliki aksi yang berbeda. Polymorphism
sering dikaitkan dengan penggunaan lebih dari satu method dengan nama sama. Penggunaan method
dengan nama sama dapat diterapkan dengan method overloading dan method overriding. Peran
polymorphism sebenarnya tidak terbatas hanya pada hal tersebut. Ada keterkaitan antara
polymorphism dan inheritance (turunan).

Analogi konsep Polymorphism :
Terdapat dua jenis hewan, yaitu anjing dan kucing. Kedua jenis hewan tersebut
sama-sama memiliki mulut, telinga, 4 buah kaki, dsb. Ketika kita meminta anjing untuk
bersuara, maka yang terdengar adalah suara menggonggong. Sedangkan pada saat kita
minta kucing untuk bersuara, maka yang terdengar adalah suara mengeong. Berarti
kedua jenis hewan tersebut sama-sama memiliki mulut, hanya saja suara yang dihasilkan
kedua jenis hewan tersebut berbeda.
Keuntungan pemrograman dengan menggunakan polymorphism adalah dapat menggunakan
class yang dibuat sebagai superclass, dan membuat class baru berdasarkan superclass tersebut dengan
karakteristik yang lebih khusus dari behavior umum yang dimiliki superclass, sehingga tidak perlu
menuliskan kode dari nol ataupun mengulangnya, namun tetap bisa menambahkan atribut dan atau
method unik dari class itu sendiri. Dalam konsep yang lebih umum sering kali polymorphism disebut
dalam istilah satu interface banyak aksi.
21 | M O D U L O O P

MODUL

2014/



Overloading adalah penggunaan method lebih dari satu dalam sebuah class dengan nama



method yang sama tetapi memiliki perbedaan parameter.
Overriding adalah penggunaan method dari suatu parent / class dengan nama sama
namun memiliki isi program script method yang berbeda dari method aslinya.

CONTOH PROGRAM
1. Polymorphism Method Overloading
Contoh implementasi program polymorphism dengan method overloading di mana di dalam
sebauh class terdapat beberapa method dengan nama method sama :
Sebuah method bernama Data() yang misalnya berfungsi menampilkan data
String, tentu tidak bisa menangani masukan berupa data numerik, boolean,
ataupun karakter, demikian juga sebaliknya. Solusi yang bisa dilakukan adalah
dengan menyediakan beberapa Method Data() yang akan menangani setiap tipe
data, sehingga data apapun yang diberikan sebagai parameter tetap bisa
diproses
Buat program dan simpan dengan nama TipeData.java, kemudian inputkan code seperti di
bawah ini :

Kemudian buat class dan simpan dengan nama polymorphism.java, dan
masukkan code seperti di bawah ini :

22 | M O D U L O O P

MODUL

2014/

Kemudian compile dan run program tersebut sehingga output dari program
tersebut adalah seperti ini :

2. Polymorphism Method Overriding
Contoh implementasi program polymorphsim dengan method overriding. Pada method ini,
subclass memiliki method yang sama dengan superclass-nya, namun memiliki isi program script
method yang berbeda dari method aslinya :

class Kendaraan {
..............
public String getJenis() {
System.out.println(“Harga BBM
turun”);
}
}
class Motor extends Kendaraan {
..............
public String getJenis() {

23 | M O D U L O O P

MODUL

2014/

System.out.println(“Harga BBM
premium 4000 rupiah”);
}
}

Dari contoh program di atas dapat dijelaskan sebagai berikut :



Class kotor meng-extends class kendaraan.
Class motor melakukan override method di kendaraan, namun berbeda implementasi.

Kesimpulan :


Override method merupakan method yang sama persis dengan method yang sudah ada di




superclass-nya, biasanya perbedaannya adalah pada implementasi (program body).
Overriding tidak bisa dilakukan dalam class itu sendiri.
Jadi overriding erat kaitannya dengan inheritance (pewarisan).

Dengan ketentuan :
Luas Segiempat = panjang*lebar
Luas Segitiga = 0.5*alas*tinggi
Luas Lingkaran – 3.14*(jari-jari)2

24 | M O D U L O O P

MODUL

2014/

Pembahasan :
Class Shape dan class Segiempat :

Class Segitiga :

25 | M O D U L O O P

MODUL

2014/

Class Lingkaran :

Class Polymorphism :

Sehingga pada saat program dijalankan akan menghasilkan tampilan sebagai berikut :

26 | M O D U L O O P

MODUL

2014/

DAFTAR PUSTAKA
27 | M O D U L O O P

MODUL

2014/

IV. ABSTRACT CLASS DAN INTERFACE
TUJUAN
1. Mengenal dan memahami konsep abstract class dan interface pada Java.
2. Mengimplementasikan konsep abstract class dan interface dalam program.
3. Memahami perbedaan abstract class dan interface.

PERANGKAT
PC yang sudah terinstall Java

DASAR TEORI
ABSTRACT CLASS
Secara umum, abstract class adalah class yang tidak dapat diinstansiasi menjadi objek.
Abstract class dalam Java digunakan untuk mendeklarasikan karakteristik umum dari subclass.
Abstract class tidak bisa diinstansiasi menjadi objek sama halnya dengan class interface. Abstract
class tidak hanya bisa digunakan sebagai superclass, tetapi juga bisa diturunkan dari abstract class
lainnya. Biasanya abstract class berada dalam hierarki tertinggi dalam PBO. Sebuah class disebut
abstract class jika memiliki method abstract. Suatu method abstract didefinisikan dengan
mendeklarasikan namanya pada abstract class dan meng-override pada masing–masing class
turunannya dengan menyesuaikan dengan kebutuhan class turunannya tersebut.
Analogi :
Bila class mobil ini mempunyai method injakPedalGas, maka tidak dapat ditentukan mobil manakah
yang akan di-injakPedalGas-nya (bisa Kijang, BMW, Avanza, Panther, dll), method seperti inilah
yang disebut method abstract. Dibutuhkan class turunan yang khusus dan method override dari
method yang abstract.
Bentuk umum :
[modifier abstract class namaKelas {
//deklarasi attribute
//definisi/prototype method
}

28 | M O D U L O O P

MODUL

2014/

Method di dalam abstract class yang tidak berisi kode program adalah abstract method.
Nantinya method ini harus di-override oleh subclass-nya. Jadi, kita hanya menulis deklarasi method
tanpa tubuh metode dan memakai keyword abstract. Contohnya :
public abstract void someMethod();

Deklarasi method ini disebut sebagai prototipe method. Jadi, fungsi abstract class tak lain
adalah untuk membuat prototipe bagi class di tingkatan paling atas dalam hierarki class dan subclassnya yang menyediakan detail implementasi dari abstract class tersebut.
Beberapa hal yang perlu diperhatikan adalah sebagai berikut :
1. Abstract class tidak dapat dibuatkan instan atau objeknya menggunakan keyword new.
2. Sebuah class dapat dideklarasikan sebagai abstract class walaupun tidak memiliki
method abstract.
3. Objek dengan tipe abstract class tetap bisa diciptakan, tetapi harus refer ke subclass dari
abstrac class tersebut yang tentunya tidak abstract.
Contoh kasus :
Dibuatkan sebuah superclass yang bernama Mobil. Class ini memiliki method untuk menginjak pedal
gas dari mobil. Akan tetapi method tersebut tidak bisa digeneralisasi karena tidak dingetahui mobil
apa yang akan diinjak pedal gasnya. Diperlukan subclass untuk mengimplementasikan
method yang ada pada superclass tersebut. Untuk membuat superclass yang
umum, bisa dengan cara membuat suatu superclass yang memiliki method
dengan implementasi dan juga tidak. Class ini disebut abstract class.

Contoh program :
// membuat class abstract dengan nama mobil//
public abstract class Mobil {
//sebuah abstract method yang tidak memiliki body
//method ini di inisialisasi nantinya pada subclass yang
mewarisi class abstract Mobil
//semua abstract method yang ada pada class abstract harus
di implementasikan semua oleh subclass//

29 | M O D U L O O P

MODUL

2014/

public abstract void injakPedalGas();
}
// membuat class turunan dengan nama Kijang untuk mengimplementasikan
method abstract pada class Mobil //
public class Kijang extends Mobil {
// implementasi method abstract injakPedalGas yang ada di class Mobil
//
public void injakPedalGas() {
System.out.println (“Mobil melaju dengan kecepatan 40
km/jam....”);
}
// membuat class turunan dengan nama Avanza untuk
mengimplementasikan method abstract pada class Mobil //
public class Avanza extends Mobil {
// implementasi method abstract injakPedalGas yang ada di class
Mobil //
public void injakPedalGas() {
System.out.println (“Mobil melaju dengan kecepatan 100
km/jam....”);
}
// membuat class utama TestMobil untuk proses eksekusi //
public class TestMobil {
/**
*@param args
*/
public static void main (String[] args) {
// TODO Auto-generated method stub
Mobil mobil = new Mobil() {
public void injakPedalGas () {
System.out.println(“Mobil melaju....”);
}
};
Kijang kijang = new Kijang();
Avanza avanza = new Avanza();
mobil.injakPedalGas();
mobil.Kijang;
mobil.injakPedalGas();
mobil.Avanza;
mobil.injakPedalGas();
}
}

30 | M O D U L O O P

MODUL

2014/

INTERFACE
Interface adalah class yang hanya mengandung deklarasi method implementasi dan semua
properti yang dimilikinya bersifat final. Interface merupakan konstruksi seperti class, namun hanya
bisa menampung konstanta dan method absract. Interface mirip dengan abstract class, tetapi
interface tidak terikat dengan class hierarki.
Analogi :
Semua mobil mempunyai interface yang mirip, walaupun masing-masing mobil mempunyai
mekanisme dan cara kerja yang berbeda. Interface pada mobil umumnya yaitu; kemudi, pedal, gas,
rem, tuas persneling, dengan itu mobil dapat dikemudikan. Seorang pengguna mobil mungkin tidak
tahu cara kerja dan jenis mesin yang menggerakkan mobil tersebut. Ada beberapa jenis mobil yang
berbeda, dengan mesin yang berbeda-beda, tetapi menggunakan interface yang sama. Sehingga
pengguna mobil dapat menggunakannya.
Komponen pembentuk interface :
1.
2.
3.
4.

Modifier.
Keyword “interface”.
Identifier : merupakan nama idenifier yang ditentukan oleh Programmer.
Body interface : berisi abstract method atau bis juga ditambahkan abstract.

Contoh syntax :
public interface [InterfaceName] {
// beberapa konstanta
// beberapa method tanpa body
}

Aturan pendeklarasian interface :
1. Modifier yang digunakan hanya public atau tidak sama sekali. Jika tidak menggunakan
modifier maka interface tersebut hanya dapat diakses dalam package yang sama.
2. Semua variabel yang dideklarasikan dalam interface secara otomatis adalah static final.
Karena itu waktu pendeklarasian harus diberikan nilai.
3. Semua method adalah abstract. Bedanya dengan abstract class adalah tidak perlu
menuliskan keyword absract pada saat mendeklarasikan method dalam interface.
4. Dapat mengimplementasikan lebih dari satu interface (multiple inheritance) dengan
memisahkan nama dari setiap interface dengan tanda koma.
5. Dapat terjadi saat mengimplementasikan lebih dari satu interface ternyata interfaceinterface tersebut memiliki method yang sama. Dalam hal ini method yang akan
diimplementasi adalah method yang berada pada posisi pertama.
6. Jika tidak mengimplementasikan semua method yang ada pada interface, maka class
tersebut harus dideklarasikan sebagai abstract class.
7. Semua method yang diimplementasi harus public.

31 | M O D U L O O P

MODUL

2014/

Implementasi interface :
1. Dapat mengimplementasi lebih dari satu interface dalam sebuah class dengan
memisahkan nama dari setiap interface dengan tanda koma.
2. Dapat terjadi lebih dari satu interface yang diimplementasikan dalam suatu class,
memiliki method yang sama, dalam hal ini semua akses dari interface manapun akan
menggunakan implementasi dari method yang sama pula.
3. Semua method yang diimplementasikan harus dideklarasi sebagai public.
4. Jika tidak semua dari method yang dideklarasikan di dalam interface diimplementasikan
oleh class implementasinya, maka class tersebut harus dideklarasikan sebagai abstract
menggunakan keyword abstract
Contoh syntax :
public class [className] implement [ interfaceName ]
{
//overriding abstract method
//dan beberapa kode yang lain
}




Implementasi interface menggunakan keyword “implements”.
Syarat : seluruh method abstract yang ada pada interface harus dideklarasi ulang di dalam
class yang mengimplementasikannya.

Contoh program :
package Praktikum;
//membuat class interface Bangun2D
public interface Bangun2D
{
//membuat variabel yang diperlukan untuk method
double PHI = 3.14;
//membuat method hitung_Luas dengan double
public double hitung_luas();
//membuat method hitung_Keliling dengan double
public double hitung_keliling();
}
//membuat class turunan dari Bangun2D
Class Lingkaran implements Bangun2D
{
private double jari;
public Lingkaran (double jari);
{
this. jari = jari;
}
public double hitung_Luas()
{
return (PHI * jari * jari);
}

32 | M O D U L O O P

MODUL

2014/

public double hitung_Keliling()
{
return (2 * PHI * jari);
}
}
package Praktikum;
// membuat class utama
public class Bangun2D {
public static void main (String[] args) {
Lingkaran lngkrn = new Lingkaran();
lingkrn.hitung_Luas();
lingkrn.hitung_Keliling();
}
}

ABSTRACT CLASS VS INTERFACE
Perbedaa abstract class dan interface adalah sebagai berikut :

Variabel
constructor

Method

Abstract Class
Bebas
Objek tidak bisa langsung dibuat melalui abstract class.
Namun harus melalui class yang diturunkan dari abstract
class
Bebas

Interface
Harus public static
final
Tidak ada
constructor
Harus public
abstract

DAFTAR PUSTAKA
http://awdie.blogspot.com/2012/06/java-interface.html
http://lastblogdotorg.wordpress.com/2012/10/15/interfaceclassobject/
Hakim, Rachmad., Sutarto. 2009. Mastering Java, Jakarta: Penerbit PT Elec Media Komputindo

33 | M O D U L O O P

MODUL

2014/

V. UML (USE CASE DAN CLASS DIAGRAM)
TUJUAN
1. Mengenal dan memahami konsep pemodelan menggunakan Unified Modeling Language.
2. Mengidentifikasi kebutuhan sistem dan memodelkannya menggunakan Unified Modeling
Language.
3. Mengenal dan dapat membuat Use case Diagram.

PERANGKAT
PC yang sudah terinstall dengan Java dan StarUML

DASAR TEORI
Pemodelan (modeling) adalah proses merancang perangkat lunak sebelum melakukan
pengkodean (coding) dengan tujuan menggambarkan fitur atau spesifikasi yang tersedia pada
perangkat lunak. Model perangkat lunak dapat dianalogikan seperti pembuatan blueprint pada
pembangunan gedung. Membuat model dari sebuah sistem sangatlah penting, karena tidak semua
orang dapat memahami sistem secara menyeluruh. Semakin kompleks sebuah sistem, semakin penting
pula penggunaan teknik pemodelan yang baik.
Tujuan Pemodelan :
1. Merancang perangkat lunak dengan menggabungkan teks, notasi / diagram dan grafik.
2. Mempermudah dalam memahami dan me-review persyaratan perangkat lunak.
3. Jembatan penghubung antara gambaran sistem dan model desain.
Dengan pemodelan ini diharapkan menjadi salah satu cara yang digunakan agar dalam
pembuatan perangkat lunak lebih mudah dan efisien.
UNIFIED MODELING LANGUAGE (UML)
Unified Modeling Language (UML) adalah bahasa pemodelan standar berdasarkan grafik atau
gambar untuk melakukan spesifikasi, visualisasi, instruksi, dan dokumentasi dari komponenkomponen perangkat lunak dan digunakan untuk penyederhanaan permasalahan kompleks sedemikian
sehingga lebih mudah dipelajari dan dipahami. UML menggunakan notasi grafis untuk menyatakan
desain. Pemodelan dengan UML berarti menggambarkan yang ada dalam dunia nyata ke dalam
bentuk yang dapat dipahami dengan menggunakan notasi standar UML. Karena UML juga
menggunakan class dan operation dalam konsep dasarnya, maka UML lebih cocok untuk pemodelan
perangkat lunak dalam bahasa berorientasi objek seperti C++, Java, C#, atau VB.NET.
34 | M O D U L O O P

MODUL

2014/

UML sendiri terdiri atas pengelompokan diagram-diagram sistem meniru aspek atau sudut
pandang tertentu. Diagram adalah notasi grafis yang menggambarkan permasalahan maupun solusi
dari satu pemodelan. UML mempunyai 10 diagram, diantaranya :











Use Case Diagram
Class Diagram
Package Diagram
Sequence Diagram
Collaboration Diagram
State Chart Diagram
Activity Diagram
Deployment Diagram
Component Diagram
Conceptual Diagram

USE CASE DIAGRAM
Use case adalah abstraksi dari interaksi antara sistem dengan actor. Use case bekerja dengan
cara mendeskripsikan tipe interaksi antara user sebuah sistem dengan sistemnya sendiri melalui
sebuah cerita bagaimana sebuah sistem dipakai. Use case merupakan konstruksi untuk
mendeskripsikan bagaimana sistem akan terlihat di mata user. Sedangkan bagi para analis, use case
memberikan kemudahan komunikasi antara analis dengan pengguna serta antara analis dengan
pembuat sistem. Singkatnya use case memberikan gambaran layanan atau fungsi-fungsi yang
disediakan oleh sistem untuk user. Di sisi lain, use case memberikan gambaran yang menunjukkan
kelakuan atau kebiasaan sistem.
Komponen Pembentuk Use Case Diagram :
A. Actor
Actor adalah segala hal di luar sistem yang akan menggunakan sistem tersebut untuk
melakukan sesuatu. Actor bisa berupa manusia, sistem, atau service yang memiliki peranan dalam
keberhasilan operasi dari sistem. Actor dapat digambarkan secara umum atau spesifik, di mana dalam
membedakannya dapat menggunakan relationship (hubungan).

Gambar 1. Simbol actor
35 | M O D U L O O P

MODUL

2014/

Ciri-ciri actor :
1. Actor memberi masukan atau menerima informasi dari sistem.
2. Penamaan actor menggunakan kata benda.
3. Posisi actor umumnya berada pada bagian kiri atas.
Ada beberapa kemungkinan yang menyebabkan actor tersebut terkait dengan sistem antara
lain :
1. Yang berkepentingan terhadap sistem di mana adanya arus informasi, baik yang
diterimanya maupun yang dimasukkan ke sistem.
2. Orang ataupun pihak yang akan mengelola sistem tersebut.
3. External Resources yang digunakan oleh sistem.
4. Adanya sistem lain yang berinteraksi dengan sistem yang akan dibuat.

B. USE CASE
Use case adalah gambaran fungsionalitas dari sistem (bukan gambaran alur kejadian sistem),
sehingga pengguna sistem paham dan mengerti mengenai kegunaan sistem yang akan dibangun. Use
case digunakan untuk merepresentasikan unit fungsionalitas atau pelayanan yang diberikan oleh
sebuah sistem / bagian sistem. Use case dinotasikan dengan simbol elips atau oval.

Gambar 2. Simbol use case

36 | M O D U L O O P

MODUL

2014/

Ciri-ciri use case dari sebuah sistem :
1. Use case dibuat berdasarkan keperluan actor, merupakan “apa” yang dikerjakan sistem,
2.
3.
4.
5.

bukan “bagaimana” sistem mengerjakannya.
Diberi nama sesuai dengan hal yang dicapai dari hasil interaksi dengan actor.
Dinotasikan dengan bentuk horizontal elips.
Nama use case menggunakan kata kerja.
Nama use case boleh terdiri dari beberapa kata dan tidak boleh ada 2 use case yang
memiliki kesamaan nama.

RELASI DALAM USE CASE
Ada beberapa relasi yang terdapat pada use case diagram, diantaranya :
A. Association
Ditujukan untuk menghubungkan Link antar elemen, bukan menggambarkan aliran data /
informasi. Association digunakan untuk menggambarkan bagaimana actor terlibat dalam use case
tersebut.
Ada 2 jenis Association, yaitu :
1. Association antara actor dengan use case
a. Ujung panah pada Association antara actor dan use case mengindikasikan siapa /
apa yang meminta interaksi dan bukan mengindikasikan aliran data.
b. Sebaiknya gunakan garis tanpa panah untuk association antara actor dan use
case.

Gambar 3. Simbol association (1)
c. bila actor berinteraksi secara pasif (biasanya berupa sistem eksternal atau
perangkat tambahan) dengan sistem, Association antara actor dan use case yang
menggunakan panah terbuka.
Gambar 4. Simbol association (2)
2. Association antar use case
a. Include
yaitu kelakuan yang harus terpenuhi agar sebuah event dapat terjadi. Contohnya adalah
pemanggilan sebuah fungsi program. Dalam implementasinya pada use case diagram biasanya
menggunakan kata <<include>>.

Ciri-ciri include, yaitu :


Pemanggilan use case oleh use case lain
37 | M O D U L O O P

MODUL





2014/

Tanda panah terbuka harus terarah ke sub case
garis yang digunakan adalah garis putus-putus
arah mata panah sesuai dengan arah pemanggilan
gambarkan association include sebaiknya secara horizontal

Gambar 5. Contoh association antar use case dengan include
Contoh use case di atas menunjukkan bahwa pembeli, sebagai actor, bisa melakukan aktivitas
pesan tiket, dengan syarat melakukan pembayaran tiket yang dipesannya terlebih dahulu.
b. Extend
Yaitu suatu perlakuan tambahan atau optimal yang hanya berjalan di bawah kondisi tertentu.
Extend merupakan perluasan dari use case lain jika kondisi syarat terpenuhi. Dalam implementasinya
pada use case diagram biasanya menggunakan kata-kata <<extend>>.
Ciri-ciri extend, yaitu :



Tanda panah terbuka harus terarah ke parent / base case
Gambarkan Association extend sebaiknya secara vertikal

Gambar 6. Contoh association antara case dengan <<extend>>
Pada contoh use case di atas terdapat actor pembeli yang dapat memesan tiket, dengan pilihan
pembayaran dengan Credit Card.
B. Generalization

38 | M O D U L O O P

MODUL

2014/

Disebut juga inheritance (pewarisan), sebuah elemen merupakan spesialisasi dari elemen
lainnya. Generalization /inheritance digambarkan dengan sebuah garis panah tertutup pada salah satu
ujungnya yang menunjukkan lebih umum.

Gambar 7. Simbol generalization / inheritance
1. Generalization / inheritance antar use case
a. Gambarkan generalizaion / inheritance antara use case secara vertikal dengan
inheriting use case di bawah base / parent case.
b. Generalization / inheritance dipakai ketika ada sebuah keadaan yang lain sendiri /
perlakuan khusus.

Gambar 8. Contoh generalization / inheritance antar use case
Pada gambar di atas costumer sebagai actor dapat melakukan kegiatan pesan barang. Web
order dan phone order adalah cara yang dapat dilakukan untuk memesan barang. Karena use case
pesan barang terhubung langsung dengan costumer, maka use case Web order dan phone order pun
secara tidak langsung terhubung dengan costumer.
Perlu dipahami bahwa contoh di atas bisa saja mengecoh kita, karena bisa saja
diimplementasikan pada contoh penerapan extends. Yang ditekankan pada contoh di atas bukanlah
option yang dapat dipilih dalam melakukan kegiatan pesan barang, melainkan dalam melakukan Web
order ataupun phone order memiliki kesamaan atribut seperti pada use case pesan barang, sehingga
use case web order dan phone order menjadi bagian dari use case pesan barang.

2. Generalization / inheritance antar actor
a. Gambarkan generalization / inheritance antar actor secara vertikal dengan inheriting
actor di bawah base / parent actor.
Gambar 9. Contoh generalization / inheritance antar actor
39 | M O D U L O O P

MODUL

2014/

Pada gambar di atas ditunjukkan bahwa beberapa actor mempunyai beberapa persamaan, baik
dari elemennya, deskripsi actor-nya, dsb.
USE CASE SYSTEM BOUNDARY BOXES
Use case System boundary boxes digambarkan dengan kotak di sekitar use case untuk
menggambarkan jangkauan sistem. Biasanya digunakan apabila terdapat alternatif system yang dapat
dijadikan pilihan. System boundary boxes dalam penggunaannya bersifat optional.

Gambar 10. Contoh use case system boundary boxes
Pada gambar di atas jangkauan satu actor kepada use case memiliki batasan sistem (scoope).
Pada sistem pembayaran memiliki batasan pada setiap case-nya, yaitu mencari barang dan memesan
tempat.

CONTOH STUDI KASUS
Andaikan anda sebagai seorang manager IT. Anda diminta membuat aplikasi Sistem
Penggajian pada sekolah “X”. Adapun prosedur proses pembuatan Daftar Data Pegawai dan Gaji pada
sekolah “X” adalah sebagai berikut :
40 | M O D U L O O P

MODUL

2014/

1. Proses Absensi
Pegawai melakukan absensi harian melalui form daftar hadir pegawai. Berdasarkan form
daftar hadir pegawai tersebut bagian Tata Usaha (TU) akan membuat Rekap Absensi (RA) harian
untuk diserahkan kepada Administrasi.
2. Proses Pemberian Rekap Biodata Pegawai (RBP)
Pegawai memberikan data pribadi pegawai, data pendidikan, data keluarga yang dijadikan
satu menjadi data pegawai kepada bagian Tata Usaha yang kemudian diarsipkan menjadi Rekap
Biodata Pegawai (RBP). Lalu Rekap Biodata Pegawai (RBP) diserahkan kepada bagian administrasi
untuk proses pengolahan Daftar Data Pegawai dan Gaji Pegawai (DDPG).
3. Proses Pengolahan Daftar Data Pegawai dan Gaji (DDPG)
Setelah bagian administrasi menerima Rekap Biodata Pegawai (RBP) dan Rekap Absensi
(RA) akan mengolah kedua data tersebut untuk dibuatkan menjadi Daftar Data Pegawai dan Gaji
(DDPG) yang kemudian diserahkan Kepala Sekolah untuk ditandatangani.
4. Proses Pembuatan Laporan
Daftar Data Pegawai dan Gaji (DDPG) yang sudah diterima dan ditandatangani oleh Kepala
Sekolah akan diserahkan kembali kepada bagian Administrasi untuk dibuatkan Laporan Data Pegawai
(LDP) dan Laporan Gaji Pegawai (LGP).
Setelah bagian administrasi menerima Daftar Data Pegawai dan Gaji yang sudah di acu akan
membuatkan Laporan Data Pegawai (LDP) dan Laporan Gaji Pegawai (LGP) yang nantinya akan
diserahkan kepada Kepala Sekolah. Selain itu bagian Administrasi akan membuatkan slip gaji untuk
diserahkan kepada pegawai.

41 | M O D U L O O P

MODUL

2014/

Maka use case diagramnya adalah sebagai berikut :

Dan boundary box-nya adalah sebagai berikut :

CLASS DIAGRAM
Class diagram adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah
objek dan merupakan inti dari pengembangan dan desain berorientasi objek. Class menggambarkan
keadaan (atribut / properti) suatu sistem, dan menawarkan layanan untuk memanipulasi keadaan
tersebut (method / fungsi). Class diagram menggambarkan struktur dan deskripsi class, package, dan
objek beserta hubungan satu sama lain.

42 | M O D U L O O P

MODUL

2014/

Class memiliki tiga area pokok, di antaranya :
1. Nama class
2. Atribut
3. Method / operasi
Atribut dan method dapat memiliki salah satu sifat berikut :
(-) Private, hanya dapat dipanggil di class itu sendiri
(#) Protected, dapat dipanggil di package yang sama dan subclass-nya
(+) Public, dapat dipanggil di semua package (siapa saja)
HUBUNGAN ANTAR CLASS
1. Generalisasi dan Inheritance
Generalisasi digunakan untuk menjelaskan hubungan logis elemen-elemen yang memiliki
karakteristik yang sama antar class. Sebuah class (subclass) dapat mewarisi atribut-atribut dan
operasi-operasi dari class lainnya (superclass). Sedangkan inheritance adalah mekanisme
pengimplementasian generalisasi dan spesialisasi.

Gambar 11. Inheritance pada class diagram
2. Asosiasi
Asosiasi merupakan hubungan statis antar class. Umumnya menggambarkan class yang
memiliki atribut berupa class lain, atau class yang harus mengetahui eksistensi class lain. Panah
navigability menunjukkan arah querry antar class.
Gambar 12. Asosiasi pada class diagram

43 | M O D U L O O P

MODUL

2014/

3. Agregasi
Memperlihatkan hubungan antar class di mana class yang satu (part class) adalah bagian dari
class lainnya (whole class).

Gambar 13. Agregasi pada class diagram
4. Composition
Composition adalah sebuah tipe agregasi yang kuat di mana bagian dari objek tergantung
penuh terhadap objeknya, sehingga bila sebuah objek komposit dibuang, maka bagian yang
tergantung pada komponen tersebut akan terbuang juga pada saat yang bersamaan.

Gambar 14. Composition pada class diagram
5. Depedency
Menyatakan hubungan antarnclass di mana sebuah class memiliki ketergantungan pada class
lainnya tetapi tidak sebaliknya.

Gambar 15. Depedency pada class diagram
6. Realization
Realization adalah hubungan antar class di mana sebuah class memiliki keharusan untuk
mengikuti aturan yang ditetapkan class lainnya.

Gambar 16. Realization pada class diagram

44 | M O D U L O O P

MODUL

2014/

MULTIPLICITY
Pada relasi terdapat satu penanda yang disebut multiplicity. Multiplicity ini akan
mengindikasikan berapa banyak objek dari class berelasi dengan objek lain. Notasi UML untuk
multiplicity ini adalah sebagai berikut:
Multiplicity

Arti

*

Banyak

0

Nol

1

Satu, bisa ditulis atau tidak

0..*

Nol sampai Banyak

1..*

Satu sampai Banyak

0..1

Nol atau Satu

1..1

Satu ke Satu

CONTOH STUDI KASUS
Di PT. BARAGAZOEL terdapat pegawai yang terdiri dari pegawai tetap dan pegawai part
time. Kompensasi gaji pokok pegawai tetap adalah Rp 2.000.000,00. Adapun total kompensasi yang
diperoleh untuk pegawai tetap adalah gaji pokok + bonus tahunan (jika ada) – Pajak (10% dari
gaji pokok). Sedangkan kompensasi yang diberikan untuk pegawai part time adalah upah per jam
x jumlah jam kerja. Baik pegawai tetap dan pegawai part time memilik data diri sebagai berikut:
NIP Karyawan, Nama Depan karyawan, Nama belakang karyawan, dan Jenis Kelamin karyawan.
Maka class diagram-nya adalah sebagai berikut :

45 | M O D U L O O P

MODUL

2014/

CONTOH STUDI KASUS (2)
PT. OOP adalah sebuah perusahaan yang bergerak di bidang penyewaan mobil. Semua transaksi di
perusahaan masih dilakukan secara manual. Berikut ini adalah kegiatan yang dilakukan oleh petugas
dalam melaksanakan transaksi penyewaan mobil di dalam perusahaan.
1. Prosedur Peminjaman
Penyewa mobil yang ingin melakukan peminjaman dapat melihat harga sewa mobil pada
daftar harga sewa mobil. Penyewa dapat menggunakan jasa supir atau tidak, sesuai dengan keinginan
penyewa. Setiap jenis kendaraan memiliki harga sewa yang berbeda-beda, begitu juga harga sewa jasa
sopir untuk daerah Jabodetabek dan luar Jabodetabek. Setelah itu penyewa mengisi Formulir
Penyewaan (FS) disertai fotokopi identitas diri. Kemudian formulir penyewaan yang telah diisi
beserta pelunasan pembayaran diserahkan kepada petugas, kemudian petugas membuatkan kwitansi
pembayaran sebagai bukti pembayaran.
2. Prosedur Pengembalian
Pada saat pengembalian kendaraan oleh penyewa, petugas membawa

Formulir

Pengembalian (FK) dan memeriksa kendaraan, apakah terdapat kerusakan atau tidak. Bila terdapat
kerusakan (misal spion pecah, body penyok, cat tergores, dll), maka diperhitungkan penggantiannya
dan dibebankan kepada penyewa. Bila tidak rusak / terlambat maka tidak perlu mengisi formulir
pengembalian. Namun bila penyewa terlambat dalam pengembalian, maka jumlah keterlambatan
mobil dan sopir akan dibebankan kepada penyewa. Setelah membayar kerusakan dan keterlambatan,
maka petugas membuatkan kwitansi sebagai tanda bukti pembayaran denda.
3. Prosedur Laporan
Di akhir bulan petugas membuat laporan penyewaan berikut denda atas kerusakan atau
keterlambatan yang terjadi dan laporan kendaraan. Laporan tersebut diserahkan ke kepala PT. OOP.

46 | M O D U L O O P

MODUL

2014/

DAFTAR PUSTAKA

http://riski.ilearning.me/bab-ii/2-2-teori-khusus/2-2-1-unified-modelling-language-uml/
http://books.txt.com/1_3Updates/Inheritance.htm
http://sadchalis15.wordpress.com/2012/11/24/contoh-pembuatan-use-case-diagram/
http://id.wikipedia.org/wiki/Unified_Modeling_Language
http://fadhlyashary.blogspot.com/2012/06/pengertian-uml-unified-modeling.html
http://inginbisakomputer.blogspot.com/2013/04/use-case-diagram.html
http://pccontrol.wordpress.com/2012/08/23/pengetahuan-dasardiagram-use-case/
http://arian-tales.blogspot.com/2013/10/contoh-class-diagram-pada-pt-bendi-car.html
http://adaapadipbo.blogspot.com/2011/07/class-diagram.html

47 | M O D U L O O P

MODUL

2014/

VI. UML (SEQUENCE DAN ACTION DIAGRAM)
TUJUAN
1. Praktikan dapat membuat dan memahami dalam pembutan activity dan sequence diagram.
2. Mengenal dan dapat membuat sequence diagram dalam starUML.
3. Mengenal dan dapat membuat activity diagram dalam starUML.
PERANGKAT
PC yang sudah terinstall Java dan starUML
DASAR TEORI
SEQUENCE DIAGRAM
Sequence diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem
(termasuk pengguna, display, dsb) berupa message yang digambarkan terhadap waktu.
Sequence diagram terdiri antar dimensi vertikal (waktu) dan dimensi horizontal
(objek-objek

terkait).

Sequence

diagram

dapat

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 actor, memiliki lifeline vertikal. Message digambarkan sebagai
garis berpanah dari suatu objek ke objek lainnya. Pada fase desain berikutnya,
message akan dipetakan menjadi operasi/method dari class.
Berikut beberapa komponen yang terdapat di dalam sequence diagram,
yaitu :


Object. Komponen yang digunakan sebagai objek-objek yang akan
digunakan dalam membuat diagram

48 | M O D U L O O P

MODUL

2014/

Gambar 1. Notasi Objek


Stimulus. Komponen ini menandakan hubungan komunikasi antara dua buah objek.
Komunikasi yang terjadi berupa pengiriman pesan (message).

Gambar 2. Stimulus


SelfStimulus. Komponen ini memiliki fungsi yang sama dengan Stimulus, hanya saja
pengiriman pesan dilakukan kepada dirinya sendiri (objek itu sendiri), bukan antar objek.

Gambar 3. Notasi SelfStimulus


Actor. Perwakilan dari orang luar, proses atau hal yang berinteraksi dengan sistem,

subsistem ataupun class.
Gambar 7. Notasi actor
Berikut contoh sederhana sequence diagram dengan starUML
1. Pertama pilih model > Add diagram > sequence diagram.

49 | M O D U L O O P

MODUL

2014/

2. Selanjutnya pada toolbox sequence diagram terdapat simbol untuk membuat alur
diagram.

3. Berikut adalah contoh dari sequence diagram.
Class diagram

50 | M O D U L O O P

MODUL

2014/

Dari class diagram tersebut diubah dalam bentuk sequence diagram.

51 | M O D U L O O P

MODUL

2014/

Contoh sequence diagram restaurant :
Logika :




Pelayan memberikan daftar menu ke pelanggan.
Setelah pelanggan menerima daftar menu, pelanggan memesan menu ke pelayan.
Kemudian pesanan pelanggan diberikan pelayan kepada koki. Koki memasak pesanan



pelanggan.
Setelah makanan selesai dimasak, makanan diberikan lagi kepada pelayan yang kemudian



diserahkan kepada pelanggan.
Ketika pelanggan memakan pesanan, pelayan memberikan daftar pesanan ke kasir, kasir
langsung menghitung jumlah pembayaran. Setelah selesai menghitung, kasir memberikan



tagihan ke pelayan.
Setelah pelanggan selesa makan, pelanggan meminta tagihan ke pelayan dan kemudian



langsung diberikan.
Setelah diterima oleh pelanggan, langsung menuju kasir untuk membayar.

52 | M O D U L O O P

MODUL

2014/

ACTIVITY DIAGRAM
Activity diagram adalah salah satu cara untuk memodelkan event-event yang terjadi dalam
suatu use case. Activity diagram juga menggambarkan aliran perilaku dari sebuah sistem dan activity
diagram digunakan untuk memodelkan aspek dinamis dari sistem. Activity diagram juga dapat
menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi. Diagram ini secara
esensial mirip diagram alir (flowchart) yang memperlihatkan aliran kendali atau menggambarkan
proses yang berjalan dari suatu aktivitas ke aktivitas lainnya.
Activity diagram memungkinkan :






Menvisualisasikan.
Menspesifikasikan.
Mengkonstruksi.
Mendokumentasikan sifat dinamis dari sekumpulan objek.
Memodelkan aliran kendali dari suatu operasi.

Simbol

Keterangan

Activites

Aktivitas yang terjadi pada system dan biasanya
diawali kata kerja .

Start Node/Initial Node

Untuk
menggambarkan
di mana aliran
berawal atau status awal aktivitas diagram. Semua
diagram aktivitas memiliki sebuah status awal.

Activity Final Node

Untuk menggambarkan
status akhir yang
dilakukan system. Semua diagram aktivitas
memiliki sebuah status akhir

Control Flow / Transition

Menunjukkan aliran kendali dari satu aksi ke
aksi yang berikutnya lain.

53 | M O D U L O O P

MODUL

2014/

Swimlane

Untuk mengelompokkan activity berdasarkan actor.
( menggambarkan actor yang bertanggung jawab
terhadap activity yang terjadi)

Decision Node

Digunakan untuk merepresentasikan keputusan
dalam alur kendali dan menggambarkan
percabangan dimana ada pilihan activity lebih
dari 1.

Dibaca
:
Pada proses memverifikasi calon anggota terdapat 2
kondisi yang akan menghasilkan sebuah keputusan .
Jika pilihannya tidak maka melengkapi data tetapi
jika ya maka data disimpan.
Synchronization
(Fork Node/Join Node)



Fork
Digunakan untuk memecah alur yang
terjadi secara bersamaan atau kegiatan yang
dilakukan secara parallel.



Join
Digunakan untuk menggabungkan alur
yang terjadi secara bersamaan. (parallel)

Dibaca :
Pada proses validasi peminjaman terdapat 2
kondisi paralel, yaitu mengupdate data dan
notifikasi peminjaman dan pada proses itu
menggunakan Synchronization fork dan join.

Contoh activity diagram :

54 | M O D U L O O P

MODUL

2014/

Contoh di atas merupakan activity diagram pendaftaran anggota perpustakaan.
Contoh di atas merupakan activity diagram pengembalian buku tanpa swimlane.

55 | M O D U L O O P

MODUL

2014/

Langkah pembuatan :
1. Menyiapkan activity diagram window.

56 | M O D U L O O P

MODUL

2014/

2. Pilih menu Model > Add > Model.

3. Kemudian pilih Model > Add Diagram > Activity Diagram.

57 | M O D U L O O P

MODUL

2014/

4. Pilih nama komponen yang ingin digunakan dengan cara diklik pada Toolbox.

5. Klik pada activity diagram window untuk menempatkan komponen yang telah dipilih.
6. Untuk menambahkan transition, klik transition kemudian Dag pada komponen yang akan
dihubungkan.

DAFTAR PUSTAKA
http://education2525.blogspot.com/2013/05/diagram-activity.html

58 | M O D U L O O P

Sponsor Documents

Or use your account on DocShare.tips

Hide

Forgot your password?

Or register your new account on DocShare.tips

Hide

Lost your password? Please enter your email address. You will receive a link to create a new password.

Back to log-in

Close