Anda di halaman 1dari 29

PEMROGRAMAN BERORIENTASI OBJEK

E - BOOK

Di susun oleh :
Shofia Hardi 05.04.111.00667

PROGRAM STUDI TEKNIK INFORMATIKA


FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA
BANGKALAN
2019 – 2020
PEMROGRAMAN BERORIENTASI OBJEK
TUGAS KE - 1

PEMROGRAMAN BERORIENTASI OBJEK

Disusun oleh :
Shofia Hardi 05.04.111.00667

PROGRAM STUDI TEKNIK INFORMATIKA


FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA
BANGKALAN
2019 – 2020
A. Definisi Pemrograman Berbasis Objek
Pemrograman Berorientasi Objek memiliki istlah lain dalam Bahasa Inggris
yang disebut Object Oriented Programing (OOP) merupakan suatu paradigm
atau sebuah teknik pemorgraman dimana program dimisalkan sebagai objek
sehari-hari. Dimana objek memiliki cirri dan aksi dan dalam pemrograma juga
terdapat atribut dan metod.
Jika dimisalkan sebagai sebuah ballpoint, ballpoint memiliki cirri bentuk
yang panjang dengan ujung runcing dimana itu akan menjadi jalan untuk tinta
keluar. Ballpoint juga memiliki aksi dimana jika bagian ujung yang runcing
ditempelkan pada suatu objek lain maka akan mengeluarkan tinta yang
menimbulkan bekas tinta pada objek tersebut.

B. Konsep Pada Pemrograman Berbasis Objek


1. Abstrak
Suatu deskripsi dari objek yang berisi informasi dan method dari objek
tersebut. Abstrak merupakan ilustrasi dar suatu objek atau prototype yang
digunakan untuk menciptakan objek.
2. Enkapsulasi
Kombinasi data dab fungsionalitas dalam sebuah objek untuk
menyembunyikan detail informasi. Proses enkapsulasi dapat mempermudah
dalam proses pemorgraman dikarenakan
3. Inherance
Sebuah sifat yang diwariskan dari sifat-sifat yang sudah ada.
Penurunannya dapat dilakukan secara bertingkat, dimana kelas yang terletak
palig bawah akan merupakan sifat paling spesifik. Dengan adanya penurunan
sifat ini dapat memudahkan programmer dalam pembuatan code. Sehingga
dia tidak perlu lagi menuliskan code yang telah ditulis pada kelas super ke
kelas-kelas lainnya.
4. Polimorfisme
Kemampuan dari objek yang berbeda kelas namun terkait dala pewarisan
sifat yang berfungsi untuk merespon suatu perintah namun dengan hasil
respon yang berbeda. Polimorfisme juga dapat diartikan sebagai kemampuan
objek untuk mengambil keputusan mengenai method mana yang akan
diterapkan namun bergantung pada letak objek pada jenjang pewarisan.
C. Istilah-Istilah dalam Pemrograman Berbasis Objek
1. Objrct
Object merupakan representasi nyata (instance) dari class. Object juga
dapat diartikan sebagai bagian dari sebuah aplikasi program (software)
dimana didalamnya terdapat variable-variabel dan methodyang saling
berkaitan satu sama lain.
2. Class
Suatu struktur umum dari object tertentu yang didalamnya terdapat data
kelas, prosedur atau fungsi kelas dan sifat kelas.
3. Method
Sebuah fungsi yang berada di dalam class dan dapat diakses dengan tiga
jenis akses user atau modifier. Dalam penerapannya di pemrograman objek
dapat menyimpan state dalam beberapa variable dan mengimplementasikan
behiviour-nya menggunakan method.
4. Property
Property merupakan variable yang dideklarasikan di dalam class, namun
tidak berbeda di dalam fungsi (method) dari suatu class. Pada penerapannya
property terdapat di dalam class yang memberikaninformasi. Property dapat
diakses dengan tiga jenis akses user (modifier), antara lain : public, prvate
dan protected.
5. Instance
Pembentukan dari class menjadi object dikenal dengan istilah Instance.
Dapat dijelaskan lebih lanjut bahwa, class tersebut belum dapat digunakan
jika hanya sekedar cetak biru dari sebuah object karena belum terbentuk, oleh
karena itu class harus dijadikan object agar dapat digunakan maka ini lah
penerapannya dalam pemrograman.
6. Overloading
Pengertian overloading dalam pemrograman dapat dimisalkan dalam
suatu class. Misalnya class Mobil terdapat method info, dalam class Truk juga
terdapat method dengan nama yang sama. Ini disebut overloading. Jika
sebuah mobil memanggil method info, maka yang dikerjakan adalah method
info yang berada di class Mobil.
Namun jika sebuah truk memanggil method info, ada dua pilihan,
method info di class Mobil atau method info di class Truk. Dalam hal ini
yang dikerjakan adalah method info yang berada di class Truk.
D. Pembuatan Class
Class dapat didefinisikan dengan mengetikan “class” dengan diikuti nama
dari class tersebut. Class memiliki docsting atau dokumentasi yang bersifat
opsional. Docstring bisa diakses menggunakan format
“ClassName_doc_class_body” terdiri dari semua pernyataan berupa atribut,
fungsi dan data dari class.

Variabel “jumlah_karyawan” merupakan variabel kelas yang dibagi ke


semua instance/objek dari kelas ini. Variabel ini bisa diakses dari dalam atau luar
kelas dengan menggunakan notasi titik “Karyawan.jumlah_karyawan”.
“Metode_init_()” adalah metode konstruktor, yaitu metode khusus yang
digunakan Python untuk menginisialisasi pembuatan objek dari kelas tersebut.
Fungsi-fungsi di dalam class (method) pendefinisiannya sama dengan fungsi
pada umumnya. Hanya sajaharus ada argument pertama bernama self. Pada saat
pemanggilan fungsi, argument ini otomatis ditambahkan oleh Python sehingga
programmer tidak perlu menambahkan pada saat memanggil fungsi.

E. Instansiasi Objek
Unyuk membuat objek dari sebuah class, dapat dilakukan dengan
memanggil nama class dengan menggunakan argument sesuai dengan
“fungsi_init_()” pada saat kita mendefinisikannya.
F. Mengakses Atribut Objek
Objek dapat diakses dengan menggunakan operator titik dan variabel class dapat
diakses dengan menggunakan nama class-nya.
DAFTAR PUSTAKA
Idcloudhost.com, “Mengenal Pengertian dan Konsep OOP/Object Oriented
Programing” diakses pada https://idcloudhost.com/panduan/mengenal-pengertian-
dan-konsep-oop/), pada 27 Agustus 2019
PythonIndo, “Pemrograman Berorientasi Objek di Python”, diakses dari
https://www.pythonindo.com/pemrograman-berorientasi-objek-di-python/, pada
tanggal 27 Agustus 2019
SlidePlayer, “Istilah-Istilah Penting Pemrograman Berbasis Objek” diakses dari
https://slideplayer.info/slide/13923223/ pada 27 Agustus 2019
Technology, “Istilah-Istilah dalam OOP (Object Oriented Programing)” diakses dari
http://dyascharisma.blogspot.com/2013/10/istilah-istilah-dalam-oop-object.html pada
27 Agustus 2019
PEMROGRAMAN BERORIENTASI OBJEK
TUGAS KE - 2

KONSTRUKTOR DAN DESTRUKTOR

Disusun oleh :
Shofia Hardi 05.04.111.00667

PROGRAM STUDI TEKNIK INFORMATIKA


FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA
BANGKALAN
2019 – 2020
A. Pengertian Konstruktor
Konstruktor umumnya digunakan untuk instantiasi objek. Tugas konstruktor
adalah menginisialisasi (menetapkan nilai) ke anggota data kelas ketika objek
kelas dibuat. Dalam Python metode __init __ () disebut konstruktor dan selalu
disebut ketika suatu objek dibuat.

B. Bentuk Syntax
def __init__(self):
# body of the constructor

C. Tipe Konstruktor
1. konstruktor Default
Konstruktor default adalah konstruktor sederhana yang tidak menerima
argumen apa pun. Definisi ini hanya memiliki satu argumen yang merupakan
referensi ke instance yang sedang dibangun.

class GeekforGeeks:
geek = ""

# default constructor
def __init__(self):
self.geek = "GeekforGeeks"

# a method for printing data members


def print_Geek(self):
print(self.geek)

# creating object of the class


obj = GeekforGeeks()

# calling the instance method using the object obj


obj.print_Geek()

Output
GeekForGeeks

2. Parameterized Constructor
Konstruktor dengan parameter dikenal sebagai parameter constructor.
Parameterized constructor mengambil argumen pertama sebagai acuan untuk
contoh yang sedang dibangun dikenal sebagai diri dan sisanya dari argumen
yang disediakan oleh programmer.
class Addition:
first = 0
second = 0
answer = 0

# parameterized constructor
def __init__(self, f, s):
self.first = f
self.second = s

def display(self):
print("First number = " + str(self.first))
print("Second number = " + str(self.second))
print("Addition of two numbers = " +
str(self.answer))

def calculate(self):
self.answer = self.first + self.second

# creating object of the class


# this will invoke parameterized constructor
obj = Addition(1000, 2000)

# perform Addition
obj.calculate()

# display result
obj.display()

Output
First number = 1000
Second number = 2000
Addition of two numbers = 3000

D. Pengertian Destructor
Destructors dipanggil ketika sebuah objek dihapus. Dalam Python,
destruktor tidak diperlukan sebanyak yang dibutuhkan di C ++ karena Python
memiliki pengumpul sampah yang menangani manajemen memori secara
otomatis.
Method __del __ () dikenal sebagai metode destruktor dengan Python.
Disebut ketika semua referensi ke objek telah dihapus yaitu ketika sebuah objek
dikumpulkan sampah.
E. Bentuk Syntax
def __del__(self):
# body of destructor

F. Contoh-Contoh
1. Berikut adalah contoh sederhana dari destructor. Dengan menggunakan kata
kunci del, akan menghapus semua referensi objek 'obj', oleh karena itu
destructor dipanggil secara otomatis.
# Python program to illustrate destructor
class Employee:

# Initializing
def __init__(self):
print('Employee created.')

# Deleting (Calling destructor)


def __del__(self):
print('Destructor called, Employee deleted.')

obj = Employee()
del obj

Output
Employee created.
Destructor called, Employee deleted.

Catatan:
Destructor dipanggil setelah program berakhir atau ketika semua referensi ke
objek dihapus yaitu ketika jumlah referensi menjadi nol, bukan ketika objek
keluar dari ruang lingkup.

2. Contoh ini memberikan penjelasan tentang catatan yang disebutkan di atas.


Di sini, perhatikan bahwa destruktor dipanggil setelah 'Program End…'
dicetak.

# Python program to illustrate destructor

class Employee:

# Initializing
def __init__(self):
print('Employee created')

# Calling destructor
def __del__(self):
print("Destructor called")

def Create_obj():
print('Making Object...')
obj = Employee()
print('function end...')
return obj

print('Calling Create_obj() function...')


obj = Create_obj()
print('Program End...')

Output
Calling Create_obj() function...
Making Object...
Employee created
function end...
Program End...
Destructor called

3. Contoh berikutnya
# Python program to illustrate destructor

class A:
def __init__(self, bb):
self.b = bb

class B:
def __init__(self):
self.a = A(self)
def __del__(self):
print("die")

def fun():
b = B()

fun()

Output
die
Dalam contoh ini ketika fungsi fun () dipanggil, ia menciptakan turunan
dari kelas B yang beralih sendiri ke kelas A, yang kemudian menetapkan
referensi ke kelas B dan menghasilkan referensi melingkar.

Secara umum, pengumpul sampah Python yang digunakan untuk


mendeteksi jenis referensi cyclic ini akan menghapusnya tetapi dalam contoh
ini penggunaan destruktor kustom menandai item ini sebagai "tidak dapat
dikumpulkan".
DAFTAR PUSTAKA
GeekForGeeks, “Constructors in Python” diakses dari
https://www.geeksforgeeks.org/constructors-in-python/, pada 13 Desember 2019
GeekForGeeks, “Destructors in Python” diakses dari
https://www.geeksforgeeks.org/destructors-in-python/, pada 13 Desember 2019
PEMROGRAMAN BERORIENTASI OBJEK
TUGAS KE - 3

INHERITANCE, ENKAPSULASI DAN


POLYMORPHISME

Disusun oleh :
Shofia Hardi 05.04.111.00667

PROGRAM STUDI TEKNIK INFORMATIKA


FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA
BANGKALAN
2019 – 2020
A. Pengertian Inheritance
Inheritance adalah kemampuan satu kelas untuk mendapatkan atau mewarisi
properti dari beberapa kelas lain. Inheritance adalah sebuah proses dimana
sebuah class mengambil semua properti dan semua metode dari kelas lain.

Inheritance atau Pewarisan/Penurunan adalah konsep pemrograman dimana


sebuah class dapat ‘menurunkan’ property dan method yang dimilikinya kepada
class lain. Konsep inheritance digunakan untuk memanfaatkan fitur ‘code reuse’
untuk menghindari duplikasi kode program.

Konsep inheritance membuat sebuah struktur atau ‘hierarchy’ class dalam


kode program. Class yang akan ‘diturunkan’ bisa disebut sebagai class induk
(parent class), super class, atau base class. Sedangkan class yang ‘menerima
penurunan’ bisa disebut sebagai class anak (child class), sub class, derived class
atauheir class.

Tidak semua property dan method dari class induk akan diturunkan.
Property dan method dengan hak akses private, tidak akan diturunkan kepada
class anak. Hanya property dan method dengan hak akses protected dan public
saja yang bisa diakses dari class anak.

uatu class yang mempunyai class turunan dinamakan parent class atau base
class. Sedangkan class turunan itu sendiri seringkali disebut subclass atau child
class. Suatu subclass dapat mewarisi apa-apa yang dipunyai oleh parent class.

Karena suatu subclass dapat mewarisi apa apa yang dipunyai oleh parent
class-nya, maka member dari suatu subclass adalah terdiri dari apa-apa yang ia
punyai dan juga apa-apa yang ia warisi dari class parent-nya.

Kesimpulannya, boleh dikatakan bahwa suatu subclass adalah tidak lain


hanya memperluas (extend) parent class-nya.

Dari hirarki diatas dapat dilihat bahwa, semakin kebawah, class akan
semakin bersifat spesifik. Class mamalia memiliki seluruh sifat yang dimiliki
oleh binatang, demikian halnya juga macan , kucing, Paus dan Monyet memiliki
seluruh sifat yang diturunkan dari class mamalia.

Dengan konsep ini, karakteristik yang dimiliki oleh class binatang cukup
didefinisikan didefinisikan dalam class binatang saja.

Class mamalia tidak perlu mendefinisikan ulang apa yang telah dimiliki
oleh class binatang, karena sebagai class turunannya, ia akan mendapatkan
karakteristik dari class binatang secara otomatis. Demikian juga dengan class
macan, kucing, Paus dan monyet, hanya perlu mendefinisikan karakteristik yang
spesifik dimiliki oleh class-nya masing-masing.

Dengan memanfaatkan konsep pewarisan ini dalam pemrograman, maka


hanya perlu mendefinisikan karakteristik yang lebih umum akan didapatkan dari
class darimana ia diturunkan.

B. Manfaat dari Inheritance


1. Subclass menyediakan state/behaviour yang spesifik yang membedakannya
dengan superclass, hal ini akan memungkinkan programmer Java untuk
menggunakan ulang source code dari superclass yang telah ada.
2. Programmer Java dapat mendefinisikan superclass khusus yang bersifat
generik, yang disebut abstract class, untuk mendefinisikan class dengan
behaviour dan state secara umum.

C. Istilah pada Inheritance


1. Extends
Keyword ini harus kita tambahkan pada definisi class yang menjadi subclass.

2. Superclass
Superclass digunakan untuk menunjukkan hirarki class yang berarti class
dasar dari subclass/class anak.

3. Subclass
Subclass adalah class anak atau turunan secara hirarki dari superclass.

4. Super
Keyword digunakan untuk memanggil konstruktor dari superclass atau
menjadi variabel yang mengacu pada superclass.

5. Methode Overriding
Pendefinisian ulang method yang sama pada subclass

D. Enkapsulasi
Enkapsulasi (encapsulation) adalah sebuah metoda untuk mengatur
component class dengan cara menyembunyikan alur kerja dari class tersebut.
Component class yang dimaksud adalah property dan method. Dengan
enkapsulasi, kita bisa membuat pembatasan akses kepada property dan method,
sehingga hanya property dan method tertentu saja yang bisa diakses dari luar
class. Enkapsulasi juga dikenal dengan istilah ‘information hiding’.
Pada konsep enkapsulasi semua property dalam bentuk private. Untuk
mengakses dan merubah property diperlukan method getter dan setter. Misalkan
kita buat contoh class Hero, sebagai berikut:
class Hero(object):
__jumlah = 0
def __init__(self, nama, jenis, kuat, serang, tahan):
# semua property dalam bentuk private
self.__nama = nama
self.__jenis = jenis
self.__kuat = kuat
self.__serang = serang
self.__tahan = tahan
Hero.__jumlah += 1

# method getter
def getNama(self):
return self.__nama

def getJenis(self):
return self.__jenis

def getKuat(self):
return self.__kuat

def getSerang(self):
return self.__serang

def getTahan(self):
return self.__tahan

# method setter
def setNama(self, nama):
self.__nama = nama

def setJenis(self, jenis):


self.__jenis = jenis

def setKuat(self, kuat):


self.__kuat = kuat

def setSerang(self, serang):


self.__serang = serang

def setTahan(self, tahan):


self.__tahan = tahan
semar = Hero("Semar", "Hulubalang", 100, 15, 5)
cepot = Hero("Cepot", "Prajurit", 100, 8, 3)

print(semar.getNama())
print(semar.getKuat())
semar.setKuat(90)
print(semar.getKuat())

Untuk penanganan enkapsulasi dengan cara python maka bisa


menggunakan decorator. Adapun decorator yang digunakan property, getter,
setter dan deleter. Berikut ini contoh kode penggunaan decorator property, getter,
setter dan deleter:

class Hero(object):

def __init__(self, nama, jenis, kuat):


self.__nama = nama
self.__jenis = jenis
self.__kuat = kuat

@property
def info(self):
return (self.__nama + " - " + self.__jenis + " - " +
str(self.__kuat))

@property
def nama(self):
pass

@nama.getter
def nama(self):
return self.__nama

@nama.setter
def nama(self, input):
self.__nama = input

@property
def jenis(self):
pass

@jenis.getter
def jenis(self):
return self.__jenis

@jenis.setter
def jenis(self, input):
self.__jenis = input

@property
def kuat(self):
pass

@kuat.getter
def kuat(self):
return self.__kuat

@kuat.setter
def kuat(self, input):
self.__kuat = input

semar = Hero("Semar", "Penyihir", 100)


print(semar.info)
semar.nama = "Semar Mendem"
semar.jenis = "Jawara"
semar.kuat = 150
print(semar.info)

E. Polymorphisme
Polymorphism berasal dari bahasa Yunani yang berarti banyak bentuk.
Dalam PBO, konsep ini memungkinkan digunakannya suatu interface yang
sama untuk memerintah objek agar melakukan aksi atau tindakan yang mungkin
secara prinsip sama namun secara proses berbeda.
Polymorphism merupakan kemampuan suatu method untuk bekerja
dengan lebih dari satu tipe argumen. Pada bahasa lain (khususnya C++), konsep
ini sering disebut dengan method overloading. Pada dasarnya, Python tidak
menangani hal ini secara khusus. Hal ini disebabkan karena Python merupakan
suatu bahasa pemrograman yang bersifat dynamic typing yaitu tidak
memerlukan deklarasi tipe.
F. Keuntungan menggunakan Polymorphisme
1. Dapat menggunakan kelas-kelas yang kita buat (sebagai super kelas)
dan membuat kelas kelas baru berdasar superkelas tersebut dengan
karakteristik yang lebih khusus dari behaviour umum yang dimiliki
superkelas.
2. Dapat membuat super kelas yang hanya mendefinisikan behaviuor
namun tidak memberikan implementasidari metode-metode yang ada.
Hal ini berguna jika ingin membuat template kelas, kelas ini disebut
dalam istilah satu interface banyak aksi.kelas abstrak karena
behaviournya masih abstrak dan belum diimplementasikan. Subkelas-
subkelas dari kelas ini yang disebut kelas konkret,
mengimplementasikan behaviuor abstrak tersebut sesuai dengan
kebutuhan masing-masing.
3. Menghindari duplikasi object, yang dapat menciptakan class baru dari
class yang sudah ada, sehingga tidak perlu menuliskan code dari nol
ataupun mengulangnya, namun tetap bisa menambahkan attribute dan
atau method unik dari class itu sendiri. Dalam konsep yang lebih
umum sering kali polymorphism disebut dalam istilah satu interface
banyak aksi.

G. Tipe - tipe Polymorphisme


1. Static atau trivialmerupakan, function overloading (penggunaan
kembali nama fungi yang sama tapi dengan argumen yang berbeda)
yang terbagi dalam 3 signature yaitu :
Jenis Array
Letak Array
Type Array
Contoh function overloading :
Void tambah (int a, int b);
Void tambag (float d, float c);
2. Dynamic atau trueMerupakan function overriding (sebuah fungsi
dalam class turunan yang memiliki nama, return type argumen
function yang sama dengan fungsi dalam class induk). Menggunakan
virtual method.
Pure virtual method (tanpa function body)
Contoh : virtual void jalan() = 0;
Squasi virtual method (ada function body)
Contoh : virtual void info() {;}
DAFTAR PUSTAKA
BINUS University, “Polymorphism”, diakses dari
https://sis.binus.ac.id/2017/08/30/polymorphism/, pada 13 Desember 2019
BINUS University, “Inheritance” diakses dari
https://sis.binus.ac.id/2017/09/07/inheritance/, pada 13 Desember 2019
OneString Lab, “OOP Python: Encapsulation Pada Python Ternyata Berbeda”
diakses dari http://onestringlab.com/oop-python-encapsulation-pada-python-ternyata-berbeda/ ,
pada 13 Desember 2019
OneString Lab, “OOP Python: Encapsulation Pada Python Ternyata Berbeda”
diakses dari http://onestringlab.com/oop-python-encapsulation-pada-python-ternyata-berbeda/ ,
pada 13 Desember 2019
PEMROGRAMAN BERORIENTASI OBJEK
TUGAS KE - 4

EXTEND DAN ICLUDE PADA RASIONAL


ROSE 2000

Disusun oleh :
Shofia Hardi 05.04.111.00667

PROGRAM STUDI TEKNIK INFORMATIKA


FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA
BANGKALAN
2019 – 2020
A. Pengertian Extend dan Iclude Pada Rasional Rose 2000
Rational Rose merupakan sebuah perangkat pemodelan secara visual yang
memiliki banyak kemampuan (powerful) untuk pembentukan sistem berorientasi
obyek yang menggunakan Unified Modeling Language (UML). UML
merupakan bahasa pemodelan yang dapat digunakan secara luas dalam
pemodelan bisnis, pemodelan perangkat lunak dari semua fase pembentukan dan
semua tipe sistem, dan pemodelan secara umum dari berbagai pembentukan
konstruksi yang memiliki dua perilaku yaitu baik statis maupun dinamis. Unified
Modeling Language (UML) adalah himpunan struktur dan teknik untuk
pemodelan desain program berorientasi objek (OOP) serta aplikasinya. Extend
pada Rasional Rose 2000 adalah Relasi use case tambahan ke sebuah use case
dimana use case yang ditambahkan dapat berdiri sendiri walau tanpa use case
tambahan itu. Include pada Rasional Rose 2000 adalah Relasi use case tambahan
ke sebuah use case dimana use case yang ditambahkan memerlukan use case ini
untuk menjalankan fungsinya.

H. Komponen Rational Rose 2000


1. Aktor
Aktor mewakili peran orang dan sistem yang lain atau alat ketika
berkomunikasi dengan use case.
2. Use Case
Use Case merupakan sebuah abstraksi dan interaksi antara sistem dan
aktor.
3. Association
Association merupakan abstraksi dari penghubung antara aktor dengan use
case.
4. Generalisasi
Generalisasi menunjukkan spesialisasi aktor untuk dapat berpartisipasi
dengan use case.
5. Include
Include menunjukkan bahwa suatu use case seluruhnya merupakan
fungsionalitas dari use case lainnya.
6. Extende
Extende menunjukkan bahwa suatu use case merupakan tambahan
fungsional dari use case lainnya jika suatu kondisi terpenuhi.
I. Notasi dalam UML
1. 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.
2. Use Case
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.
Use-case Konkret adalah use case yang dibuat langsung karena keperluan
actor. Actor dapat melihat dan berinisiatif terhadapnya. Use-case Abstrak
adalah use case yang tidak pernah berdiri sendiri. Use case abstrak senantiasa
termasuk didalam (include), diperluas dari (extend) atau
memperumum (generalize) use case lainnya. 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. Hubungan extend antar use case berarti
bahwa satu use case merupakan tambahan fungsionalitas dari use case yang
lain jika kondisi atau syarat tertentu terpenuhi.
3. Class
Class merupakan pembentuk utama dari sistem berorientasi obyek,
karena class menunjukkan kumpulan obyek yang memiliki atribut dan operasi
yang sama.
Class digunakan untuk mengimplementasikan interface. Class digunakan
untuk mengabstraksikan elemen-elemen dari sistem yang sedang dibangun. C
lass bisa merepresentasikan baik perangkat lunak maupun perangkat keras,
baik konsep maupun benda nyata.
Notasi class berbentuk persegi panjang berisi 3 bagian: persegi panjang
paling atas untuk nama class, persegi panjang paling bawah untuk operasi,
dan persegi panjang ditengah untuk atribut. Atribut digunakan untuk
menyimpan informasi. Nama atribut menggunakan kata benda yang bisa
dengan jelas merepresentasikan informasi yang tersimpan didalamnya.
Operasi menunjukkan sesuatu yang bisa dilakukan oleh obyek dan
menggunakan kata kerja.
4. Interface
Interface merupakan kumpulan operasi tanpa implementasi dari suatu class.
Implementasi operasi dalam interface dijabarkan oleh operasi didalam class.
leh karena itu keberadaan interface selalu disertai oleh class yang
mengimplementasikan operasinya. Interface ini merupakan salah satu cara
mewujudkan prinsip enkapsulasi dalam obyek.
5. Interaction
Interaction digunakan untuk menunjukkan baik aliran pesan atau
informasi antar obyek maupun hubungan antar obyek. Biasanya interaction
ini dilengkapi juga dengan teks bernama operation signature yang tersusun
dari nama operasi, parameter yang dikirim dan tipe parameter yang
dikembalikan.
6. Note
Note digunakan untuk memberikan keterangan atau komentar tambahan
dari suatu elemen sehingga bisa langsung terlampir dalam model. Note ini
bisa disertakan ke semua elemen notasi yang lain.
7. Dependency
Dependency merupakan relasi yang menunjukan bahwa perubahan pada
salah satu elemen memberi pengaruh pada elemen lain. Elemen yang ada di
bagian tanda panah adalah elemen yang tergantung pada elemen yang ada
dibagian tanpa tanda panah. Terdapat 2 stereotype dari dependency, yaitu
include dan extend. Include menunjukkan bahwa suatu bagian dari elemen
(yang ada digaris tanpa panah) memicu eksekusi bagian dari elemen lain
(yang ada di garis dengan panah). Extend menunjukkan bahwa suatu bagian
dari elemen di garis tanpa panah bisa disisipkan kedalam elemen yang ada di
garis dengan panah.
8. Association
Association menggambarkan navigasi antar class (navigation), berapa
banyak obyek lain yang bisa berhubungan dengan satu obyek (multiplicity
antar class) dan apakah suatu class menjadi bagian dari class lainnya
(aggregation). Navigation dilambangkan dengan penambahan tanda panah di
akhir garis. Bidirectional navigation menunjukkan bahwa dengan mengetahui
salah satu class bisa didapatkan informasi dari class lainnya. Sementara
UniDirectional navigation hanya dengan mengetahui class diujung garis
association tanpa panah kita bisa mendapatkan informasi dari class di ujung
dengan panah, tetapi tidak sebaliknya. Aggregation mengacu pada hubungan
has-a , yaitu bahwa suatu class memiliki class lain, misalnya Rumah memiliki
class Kamar.
9. Generalization
Generalization menunjukkan hubungan antara elemen yang lebih umum
ke elemen yang lebih spesifik. Dengan generalization, class yang lebih
spesifik (subclass) akan menurunkan atribut dan operasi dari class yang lebih
umum (superclass) atau subclass is superclass . Dengan menggunakan notasi
generalization ini, konsep inheritance dari prinsip hirarki dapat dimodelkan.
Realization
10. Notasi Realization
Realization menunjukkan hubungan bahwa elemen yang ada di bagian
tanpa panah akan merealisasikan apa yang dinyatakan oleh elemen yang ada
di bagian dengan panah. Misalnya class merealisasikan package, component
merealisasikan class atau interface.
DAFTAR PUSTAKA
OCW UI, “UML dengan Rational Rose”, diakses dari
http://ocw.ui.ac.id/mod/resource/view.php?id=162 , pada 13 Desember 2019

Anda mungkin juga menyukai