Download - Bab 2 (Landasan Teori)
BAB 2
LANDASAN TEORI
2.1. Pemrograman Berorientasi Objek
Object-Oriented Programming (OOP) adalah sebuah pendekatan untuk pengembangan /
development suatu software dimana dalam struktur software tersebut didasarkan kepada
interaksi object dalam penyelesaian suatu proses/tugas.
Merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data
dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Model data
berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih, kemudahan mengubah
program, dan digunakan luas dalam teknik piranti lunak dalam sekala besar.
2.1.1. Objek
Dalam ilmu komputer, sebuah obyek adalah entitas apapun yang dapat dimanipulasi
oleh perintah dari sebuah bahasa pemrograman, seperti nilai (ilmu komputer), variabel,
fungsi, atau struktur data. (Dengan kemudian pengenalan pemrograman berorientasi objek
kata yang sama, "objek", mengacu pada contoh tertentu dari suatu kelas
Konsep modern "objek" dan pendekatan berorientasi objek untuk pemrograman
diperkenalkan oleh bahasa pemrograman Simula awalnya dirilis pada 1967, yang
dipopulerkan oleh Smalltalk merilis dua tahun kemudian pada tahun 1969, dan menjadi alat
standar perdagangan dengan penyebaran C + + awalnya dirilis pada tahun 1983.
2.1.2. Class
Dalam pemrograman berorientasi obyek, sebuah kelas adalah suatu konstruksi yang
digunakan sebagai cetak biru (atau template) untuk membuat objek dari kelas itu. Kumpuklan
atras definisi data dalam suatu unit untuk tujuan tertentu. Cetak biru ini menjelaskan negara
dan perilaku bahwa objek dari kelas semua berbagi. Objek dari suatu kelas tertentu disebut
sebuah instance dari kelas. Kelas yang mengandung (dan digunakan untuk menciptakan)
yang misalnya dapat dianggap sebagai jenis objek, misalnya contoh objek dari "Buah" kelas
akan menjadi tipe "Buah".
Bahasa pemrograman yang mendukung halus kelas berbeda dalam dukungan mereka
untuk berbagai kelas-fitur terkait. Kebanyakan mendukung berbagai bentuk warisan kelas.
Banyak bahasa juga mendukung enkapsulasi menyediakan fitur, seperti akses specifiers.
Kelas dapat mempercepat pembangunan dengan mengurangi mubazir kode program,
testing dan bug fixing. Jika sebuah kelas telah benar-benar teruji dan dikenal sebagai 'padat
karya', biasanya benar bahwa dengan menggunakan atau memperluas kelas diuji dengan baik
akan mengurangi jumlah bug - dibandingkan dengan penggunaan baru yang dikembangkan
atau ad hoc kode - di final output. Selain itu, menggunakan kembali kelas efisien berarti
bahwa banyak bug yang perlu diperbaiki dan hanya satu tempat ketika masalah yang
ditemukan.
2.1.3. Enkapsulasi
Enkapsulasi adalah menyembunyikan detail implementasi sementara memusatkan
pada antarmuka. Tujuannya adalah membuat sebuah abstraksi yang memaksa programmer
berpikir secara konseptual. Biasanya, anggota – anggota data dari sebuah kelas terlihat oleh
penggunanya. Jika sebuah anggota data harus dibuat agar dapat diakses oleh client kelas,
maka kelas tersebut menyediakan sebuah metode yang memeriksanya dan mengembalikan
nilainya. Saat sebuah kelas mengekspos anggota data, ia dikatakan memecahkan enkapsulasi.
2.1.4. Inheritansi
Dalam Pemrograman Berbasi Objek, inheritance atau pewarisan adalah suatu keadaan
dimana suatu kelas baru mewarisi seluruh variabel atau data dan method yang dimiliki oleh
kelas yang menjadi induknya (parents). Suatu kelas bisa dikatakan mewarisi sebuah kelas lain
apabila kelas tersebut memliki semua variabel dan method yang dimiliki kelas induknya dan
dia sendiri mememiliki variabel dan atau method sendiri yang tidak dimiliki olek kelas induk.
2.1.1. Polimorfisme
Polimorfisme, yang berarti satu objek dengan banyak bentuk, adalah konsep
sederhana yang memperbolehkan method memiliki beberapa implementasi yang dipilih
berdasarkan tipe objek yang dilewatkan pada pengerjaan metode. Ini dikenal sebagai
overloading method. Ini akan memungkinkan method yang sama untuk Anjing, misalkan
memperlihatkan perilaku yang benar-benar berbeda.
Jadi secara objek, Polimorfisme adalah suatu bentuk fungsi dalam orientasi objek
yang digunakan secara bersama-sama untuk berbagai objek dan berbagai tujuan. Contoh
polimorfisme yang digunakan oleh berbagai objek adalah fungsi penjumlahan. Fungsi
penjumlahan dapat digunakan oleh objek integer maupun objek real.
2.2. UML (Unified Modeling Language)
Unified Modeling Language (UML) adalah bahasa spesifikasi standar untuk
mendokumentasikan, menspesifikasikan, dan membangun sistem perangkat lunak. UML
tidak berdasarkan pada bahasa pemrograman tertentu. Standar spesifikasi UML dijadikan
standar defacto oleh OMG (Object Management Group) pada tahun 1997. UML yang
berorientasikan object mempunyai beberapa notasi standar. Spesifikasi ini menjadi populer
dan standar karena sebelum adanya UML, telah ada berbagai macam spesifikasi yang
berbeda. Hal ini menyulitkan komunikasi antar pengembang perangkat lunak. Untuk itu
beberapa pengembang spesifikasi yang sangat berpengaruh berkumpul untuk membuat
standar baru. UML dirintis oleh Grady Booch, James Rumbaugh dan Ivar Jacobson. UML
mendeskripsikan OOP (Object Oriented Programming) dengan beberapa diagram,
diantaranya:
Diagram struktur:
2.2.1. Diagram Kelas
Class 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, sekaligus menawarkan layanan
untuk memanipulasi keadaan tersebut (metoda/fungsi). Class diagram menggambarkan
struktur dan deskripsi class package dan objek beserta hubungan satu sama lain seperti
containment, pewarisan, asosiasi, dan lain-lain.
Class memiliki tiga area pokok :
1. Nama (dan stereotype)
2. Atribut
3. Metoda
Atribut dan metoda dapat memiliki salah satu sifat berikut :
Private, tidak dapat dipanggil dari luar class yang bersangkutan
Protected, hanya dapat dipanggil oleh class yang bersangkutan dan anak-anak yang
mewarisinya
Public, dapat dipanggil oleh siapa saja
Gambar 2.1 Diagram Class Mahasiswa
Class dapat merupakan implementasi dari sebuah interface, yaitu class abstrak yang
hanya memiliki metoda. Interface tidak dapat langsung diinstansiasikan, tetapi harus
diimplementasikan dahulu menjadi sebuah class. Dengan demikian interface mendukung
resolusi metoda pada saat run-time. Sesuai dengan perkembangan class model, class dapat
dikelompokkan menjadi package. Kita juga dapat membuat diagram yang terdiri atas
package.
Gambar 2.2 Contoh Diagram Kelas
2.2.2. Diagram Obyek
Sebuah diagram obyek dalam Unified Modeling Language (UML), adalah
diagram yang menunjukkan suatu pandangan lengkap atau sebagian dari struktur
system dimodelkan pada waktu tertentu. Sebuah diagram obyek berfokus pada
beberapa set tertentu variabel dan atribut, dan hubungan antara variabel. Satu set
berkorelasi diagram objek memberikan wawasan tentang bagaimana pandangan
sewenang-wenang sistem diharapkan berkembang dari waktu ke waktu. Obyek
diagram lebih konkret dari diagram kelas, dan sering digunakan untuk memberikan
contoh-contoh, atau bertindak sebagai uji kasus untuk diagram kelas. Hanya aspek-
aspek dari model yang menarik saat ini perlu ditunjukkan pada diagram objek.
Gambar 2.3 Contoh Diagram Objek
2.2.3. Diagram Komponen
Komponen diagram menggambarkan struktur dan hubungan antar komponen
piranti lunak, termasuk ketergantungan (dependency) di antaranya. Komponen piranti
lunak adalah modul berisi code, baik berisi source code maupun binary code, baik
library maupun executable, baik yang muncul pada compile time, link time, maupun
runtime. Umumnya komponen terbentuk dari beberapa class dan/atau package, tapi
dapat juga dari komponen-komponen yang lebih kecil. Komponen dapat juga berupa
interface, yaitu kumpulan layanan yang disediakan sebuah komponen untuk
komponen lain.
Gambar 2.4 Contoh Diagram Komponen
2.2.4. Diagram Deployment
Deployment/physical diagram menggambarkan detail bagaimana komponen
di-deploy dalam infrastruktur sistem, di mana komponen akan terletak (pada mesin,
server atau piranti keras apa), bagaimana kemampuan jaringan pada lokasi tersebut,
spesifikasi server, dan hal-hal lain yang bersifat fisikal. Sebuah node adalah server,
workstation, atau piranti keras lain yang digunakan untuk men-deploy komponen
dalam lingkungan sebenarnya. Hubungan antar node (misalnya TCP/IP) dan
requirement dapat juga didefinisikan dalam diagram ini.
Gambar 2.5 Contoh Diagram Deployment
Diagram perilaku:
2.2.5. Diagram use-case
Use case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah
sistem. Yang ditekankan adalah “apa” yang diperbuat sistem, dan bukan
“bagaimana”. Sebuah use case merepresentasikan sebuah interaksi antara aktor
dengan sistem. Use case merupakan sebuah pekerjaan tertentu, misalnya login ke
sistem, meng-create sebuah daftar belanja, dan sebagainya. Seorang/sebuah aktor
adalah sebuah entitas manusia atau mesin yang berinteraksi dengan sistem untuk
melakukan pekerjaan-pekerjaan tertentu.
Use case diagram dapat sangat membantu bila kita sedang menyusun
requirement sebuah sistem, mengkomunikasikan rancangan dengan klien, dan
merancang test case untuk semua fitur yang ada pada sistem. Sebuah use case dapat
meng-include fungsionalitas use case lain sebagai bagian dari proses dalam dirinya.
Secara umum diasumsikan bahwa use case yang di-include akan dipanggil setiap kali
use case yang meng-include dieksekusi secara normal. Sebuah use case dapat di-
include oleh lebih dari satu use case lain, sehingga duplikasi fungsionalitas dapat
dihindari dengan cara menarik keluar fungsionalitas yang common.
Sebuah use case juga dapat meng-extend use case lain dengan behaviour-nya
sendiri. Sementara hubungan generalisasi antar use case menunjukkan bahwa use
case yang satu merupakan spesialisasi dari yang lain.
2.2.6. Diagram Urutan / Sekuen
Sequence diagram menggambarkan interaksi antar objek di dalam dan di sekitar
sistem (termasuk pengguna, display, dan sebagainya) berupa message yang
digambarkan terhadap waktu. Sequence diagram terdiri atas dimensi vertikal (waktu)
dan dimensi horizontal (objek-objek yang terkait).
Sequence diagram biasa digunakan untuk menggambarkan skenario atau
rangkaian langkah-langkah yang dilakukan sebagai respon dari sebuah event untuk
menghasilkan output tertentu. Diawali dari apa yang men-trigger aktivitas tersebut,
proses dan perubahan apa saja yang terjadi secara internal dan output apa yang
dihasilkan. Masing-masing objek, termasuk aktor, memiliki lifeline vertikal. Message
digambarkan sebagai garis berpanah dari satu objek ke objek lainnya. Pada fase
desain berikutnya, message akan dipetakan menjadi operasi/metoda dari class.
Activation bar menunjukkan lamanya eksekusi sebuah proses, biasanya diawal
dengan diterimanya sebuah message. Untuk objek-objek yang memiliki sifat khusus,
standar UML mendefinisikan ikon khusus untuk objek boundary, controller dan
persistent entity.
2.2.7. Diagram kolaborasi
Collaboration diagram juga menggambarkan interaksi antar objek seperti
sequence diagram, tetapi lebih menekankan pada peran masing-masing objek dan
bukan pada waktu penyampaian message. Setiap message memiliki sequence number,
di mana message dari level tertinggi memiliki nomor 1. Messages dari level yang
sama memiliki prefiks yang sama.
1. Diagram statechart
2. Diagram aktivitas
2.3. Teknologi Java
Java adalah bahasa pemrograman komputer yang berorientasi objek, yang dapat
dijalankan di berbagai komputer termasuk telepon genggam yang diciptakan oleh satu tim
dari perusahaan Sun Microsystem, perusahan workstation UNIX (Spare) yang cukup
terkenal. Java diciptakan berdasarkan bahasa C++, dengan tujuan platform independent
(dapat drjalankan pada berbagai jenis hardware tanpa kompilasi ulang), dengan slogan Write
Once Run Anywhere (WORA). Dibanding bahasa C++, Java pada hakikatnya lebih sederhana
dan memakai objek secara murni. Java adalah bahasa pemrograman yang simple, object-
oriented, distributed, interpreted, robust, secure, architecture, neutral, portable, high-
perfomance, multithreaded dan dynamic
2.4. Game
Game atau Permainan adalah kegiatan terstruktur, yang biasanya dilakukan untuk
kesenangan dan kadang-kadang digunakan sebagai alat pendidikan. Game berbeda dengan
pekerjaan, yang biasanya dilakukan untuk remunerasi, dan dari seni, yang lebih peduli
dengan ekspresi ide. Namun, perbedaan tersebut tidak jelas, dan banyak permainan juga
dianggap bekerja (seperti pemain professional, penonton olahraga / permainan) atau seni
(seperti puzzle jigsaw atau permainan yang melibatkan layout artistik seperti Solitaire).
Komponen kunci dari permainan adalah tujuan, aturan, tantangan, dan interaksi.
Permainan biasanya melibatkan stimulasi mental atau fisik, dan terkadang kedua-duanya.
Banyak permainan membantu mengembangkan keterampilan praktis, berfungsi sebagai
bentuk latihan, atau melakukan suatu peran, pendidikan simulational atau psikologis.
Menurut Chris Crawford, syarat untuk interaksi pemain menempatkan kegiatan seperti teka-
teki Jigsaw dan Solitaire "permainan" ke dalam kategori teka-teki, bukan permainan.
2.4.1. Mini Game
Mini Game adalah permainan video yang dimainkan di komputer. Ini tidak termasuk
permainan yang dimainkan pada sistem video game genggam seperti PlayStation Portable
atau Nintendo DS. Game mini dapat digunakan dengan spesifikasi computer yang sangat
rendah.