object oriented

75
SISTEM KOMPUTER MODUL OOP 2014 Laboratorium Sistem Komputer

Upload: aria-prawiranagara

Post on 02-Oct-2015

321 views

Category:

Documents


7 download

DESCRIPTION

for java

TRANSCRIPT

MODUL OOP 2014

2014/2015 MODUL PRAKTIKUM

I. PEMROGRAMAN BERORIENTASI OBJEKA. 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.B. PERANGKAT

PC yang sudah terinstall JavaC. 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 OOPPemrograman 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 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 JAVA1. Tipe Dataa. 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 DataUkuran (bit)Range

Byte8-128 s.d. 127

Short16-32768 s.d. 32767

Int32-2147483648 s.d. 2147483647

Long64-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 DataUkuran (bit)Range

Float32+/- 3.4 x 1038

Double64+/- 1.8 x 10308

c. CharTipe data char merupakan tipe untuk menyatakan sebuah karakter.d. BooleanTipe 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. 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. ObjekSemua 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 bersangkutan. Kedua, kita perlu menginstansiasi class dengan menggunakan operator new dan memasukkan instance-nya ke dalam variabel referensi yang baru saja kita deklarasikan.//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); }}

5. MethodMethod 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 : class MahasiswaInformatika{public void berhitung(int, int l){//method ini menghitung luas persegi panjang dengan panjang = p dan lebar = l, tipe data keduanya adalah integerint luas;luas = p*l;//lalu mencetaknyaSystem.out.println("luas persegi panjang dengan panjang "+p+" dan lebar "+l+" adalah "+luas);}

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 :

Method dengan nilai balikan ://Format penulisan method dengan nilai balikan :

tipeVariabel namaMethod(){ return namaVariabel; }

6. ConstructorConstructor 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 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; } }

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)3. Polimorfisme (Polymorphism)

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.

JENIS JENIS JAVA1. J2SE (Java 2 Standard Edition) : Berbasis DesktopJ2SE adalah inti dari pemrograman Java. Digunakan untuk desktop.2. J2EE (Enterprise Edition) : Berbasis WebJava 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 MobileJava 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. JavascriptJavascript 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.

D. DAFTAR PUSTAKA

II. INHERITANCEA. TUJUAN

1. Mengenal dan memahami konsep Inheritance (pewarisan) pada Java.2. Mengenal macam-macam Inheritance.3. Memahami method override dan overload dalam pewarisan.4. 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.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 superclasspackage main; public class Senjata { public void tembak(){ System.out.println("Dor ... Dor ... Dor ..."); } }

Buat class baru dengan nama Pistol sebagai subclasspackage 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 subclasspackage 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 mainclasspackage 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 ...... TrrrrrrrrrrrrrtMACAM-MACAM INHERITANCE1. Single InheritanceKonsep inheritance yang ada di Java hanya memperkenankan adanya single inheritance, yaitu satu subclass hanya dapat mempunyai satu parentclass.2. Multilevel InheritanceKonsep multilevel inheritance yaitu suatu subclass perbolehkan untuk mempunyai subclass lagi. Jadi terdapat pewarisan bertingkat.3. Multple InheritanceMultiple 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.MODIFIERModifier 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 ModifierModifier Keterangan

(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

Bentuk penggunaan modifier pada class : class NamaClass {...}Contoh Program :Public class Kendaraan{...}Contoh program dengan class modifier publicpackage 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.package main;

class Mobil {

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

Contoh program dengan class modifier defaultClass 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 ModifierModifier 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: 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.Modifier Class yang Sama Package yang Sama 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 : tipe-aksesor NamaAksesor;Contoh program aksesor dengan modifier staticclass Point {

int x; int y; //aksessor dengan modifier static

Public int getX () {Return x;}

Public int getY () {Return y;}

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 OVERLOADKonsep 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. OverrideOverriding 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"); } }

class Motor extends Kendaraan { //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. OverloadOverloading 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 :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 = -1Untuk 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 = 2Contoh 2 :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 SUPER1. Kata Kunci thisKata 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 superKata 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 . . .D. DAFTAR PUSTAKA

III. POLYMORPHISM

1. Mengenal dan memahami konsep Polymorphism pada Java.2. Mengimplementasikan konsep Polymorphism dalam program.PC yang sudah terinstall JavaKONSEP POLYMORPHISMPolymorphism 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. 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 PROGRAM1. Polymorphism Method OverloadingContoh 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 diprosesBuat 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 :

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

2. Polymorphism Method OverridingContoh 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() { 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*lebarLuas Segitiga = 0.5*alas*tinggiLuas Lingkaran 3.14*(jari-jari)2

Pembahasan :Class Shape dan class Segiempat :

Class Segitiga :

Class Lingkaran :

Class Polymorphism :

Sehingga pada saat program dijalankan akan menghasilkan tampilan sebagai berikut :

D. DAFTAR PUSTAKA

IV. ABSTRACT CLASS DAN INTERFACEA. 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.B. PERANGKAT

PC yang sudah terinstall JavaC. DASAR TEORI

ABSTRACT CLASSSecara 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 masingmasing 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}

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

INTERFACEInterface 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. Modifier.2. Keyword interface.3. Identifier : merupakan nama idenifier yang ditentukan oleh Programmer.4. 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 interface-interface 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.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 abstractContoh 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 Bangun2Dpublic interface Bangun2D{//membuat variabel yang diperlukan untuk methoddouble PHI = 3.14;//membuat method hitung_Luas dengan doublepublic double hitung_luas();//membuat method hitung_Keliling dengan doublepublic double hitung_keliling();}

//membuat class turunan dari Bangun2DClass Lingkaran implements Bangun2D{private double jari;public Lingkaran (double jari);{this. jari = jari;}public double hitung_Luas(){return (PHI * jari * jari);}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 INTERFACEPerbedaa abstract class dan interface adalah sebagai berikut : Abstract Class Interface

VariabelBebasHarus public static final

constructorObjek tidak bisa langsung dibuat melalui abstract class. Namun harus melalui class yang diturunkan dari abstract classTidak ada constructor

MethodBebasHarus public abstract

D. DAFTAR PUSTAKA

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

V. UML (USE CASE DAN CLASS DIAGRAM)C. 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.D. PERANGKAT

PC yang sudah terinstall dengan Java dan StarUMLE. 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 komponen-komponen 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.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 DiagramUSE CASE DIAGRAMUse 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. ActorActor 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 actorCiri-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 CASEUse 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

Ciri-ciri use case dari sebuah sistem : 1. Use case dibuat berdasarkan keperluan actor, merupakan apa yang dikerjakan sistem, bukan bagaimana sistem mengerjakannya.2. Diberi nama sesuai dengan hal yang dicapai dari hasil interaksi dengan actor.3. Dinotasikan dengan bentuk horizontal elips.4. Nama use case menggunakan kata kerja.5. Nama use case boleh terdiri dari beberapa kata dan tidak boleh ada 2 use case yang memiliki kesamaan nama.RELASI DALAM USE CASEAda beberapa relasi yang terdapat pada use case diagram, diantaranya : A. AssociationDitujukan 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 casea. 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 casea. Includeyaitu kelakuan yang harus terpenuhi agar sebuah event dapat terjadi. Contohnya adalah pemanggilan sebuah fungsi program. Dalam implementasinya pada use case diagram biasanya menggunakan kata .

Ciri-ciri include, yaitu : Pemanggilan use case oleh use case lain 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 includeContoh use case di atas menunjukkan bahwa pembeli, sebagai actor, bisa melakukan aktivitas pesan tiket, dengan syarat melakukan pembayaran tiket yang dipesannya terlebih dahulu.b. ExtendYaitu 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 .Ciri-ciri extend, yaitu : Tanda panah terbuka harus terarah ke parent / base case Gambarkan Association extend sebaiknya secara vertikalGambar 6. Contoh association antara case dengan Pada contoh use case di atas terdapat actor pembeli yang dapat memesan tiket, dengan pilihan pembayaran dengan Credit Card.B. GeneralizationDisebut 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 / inheritance1. Generalization / inheritance antar use casea. 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 casePada 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 actora. Gambarkan generalization / inheritance antar actor secara vertikal dengan inheriting actor di bawah base / parent actor.Gambar 9. Contoh generalization / inheritance antar actorPada gambar di atas ditunjukkan bahwa beberapa actor mempunyai beberapa persamaan, baik dari elemennya, deskripsi actor-nya, dsb. USE CASE SYSTEM BOUNDARY BOXESUse 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 boxesPada 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 KASUSAndaikan 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 : 1. Proses AbsensiPegawai 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 LaporanDaftar 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.

Maka use case diagramnya adalah sebagai berikut :

Dan boundary box-nya adalah sebagai berikut : CLASS DIAGRAMClass 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.

Class memiliki tiga area pokok, di antaranya : 1. Nama class2. Atribut3. Method / operasiAtribut 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 CLASS1. Generalisasi dan InheritanceGeneralisasi 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 diagram2. AsosiasiAsosiasi 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

3. AgregasiMemperlihatkan hubungan antar class di mana class yang satu (part class) adalah bagian dari class lainnya (whole class).Gambar 13. Agregasi pada class diagram4. CompositionComposition 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 diagram5. DepedencyMenyatakan hubungan antarnclass di mana sebuah class memiliki ketergantungan pada class lainnya tetapi tidak sebaliknya.Gambar 15. Depedency pada class diagram6. RealizationRealization adalah hubungan antar class di mana sebuah class memiliki keharusan untuk mengikuti aturan yang ditetapkan class lainnya.Gambar 16. Realization pada class diagram

MULTIPLICITYPada 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: MultiplicityArti

*Banyak

0Nol

1Satu, bisa ditulis atau tidak

0..*Nol sampai Banyak

1..*Satu sampai Banyak

0..1Nol atau Satu

1..1Satu ke Satu

CONTOH STUDI KASUSDi 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 :

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 PeminjamanPenyewa 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 PengembalianPada 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 LaporanDi akhir bulan petugas membuat laporan penyewaan berikut denda atas kerusakan atau keterlambatan yang terjadi dan laporan kendaraan. Laporan tersebut diserahkan ke kepala PT. OOP.

http://riski.ilearning.me/bab-ii/2-2-teori-khusus/2-2-1-unified-modelling-language-uml/D. DAFTAR PUSTAKA

http://books.txt.com/1_3Updates/Inheritance.htmhttp://sadchalis15.wordpress.com/2012/11/24/contoh-pembuatan-use-case-diagram/http://id.wikipedia.org/wiki/Unified_Modeling_Languagehttp://fadhlyashary.blogspot.com/2012/06/pengertian-uml-unified-modeling.htmlhttp://inginbisakomputer.blogspot.com/2013/04/use-case-diagram.htmlhttp://pccontrol.wordpress.com/2012/08/23/pengetahuan-dasardiagram-use-case/http://arian-tales.blogspot.com/2013/10/contoh-class-diagram-pada-pt-bendi-car.htmlhttp://adaapadipbo.blogspot.com/2011/07/class-diagram.html

VI. UML (SEQUENCE DAN ACTION DIAGRAM)B. 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.C. PERANGKAT

PC yang sudah terinstall Java dan starUMLD. DASAR TEORI

SEQUENCE DIAGRAMSequence 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 diagramGambar 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 actorBerikut contoh sederhana sequence diagram dengan starUML1. Pertama pilih model > Add diagram > sequence diagram.

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

3. Berikut adalah contoh dari sequence diagram.Class diagram

Dari class diagram tersebut diubah dalam bentuk sequence diagram.

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.

ACTIVITY DIAGRAMActivity 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.SimbolKeterangan

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 / TransitionMenunjukkan aliran kendali dari satu aksi ke aksi yang berikutnya lain.

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.

JoinDigunakan 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 :Contoh di atas merupakan activity diagram pendaftaran anggota perpustakaan.Contoh di atas merupakan activity diagram pengembalian buku tanpa swimlane.Langkah pembuatan :1. Menyiapkan activity diagram window.

2. Pilih menu Model > Add > Model.3. Kemudian pilih Model > Add Diagram > Activity Diagram.

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.E. DAFTAR PUSTAKA

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

22 | MODUL OOP