bab 2 (landasan teori)

9
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".

Upload: guntur-sulaeman

Post on 20-Jun-2015

1.082 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 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".

Page 2: Bab 2 (Landasan Teori)

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

Page 3: Bab 2 (Landasan Teori)

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

Page 4: Bab 2 (Landasan Teori)

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

Page 5: Bab 2 (Landasan Teori)

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.

Page 6: Bab 2 (Landasan Teori)

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

Page 7: Bab 2 (Landasan Teori)

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.

Page 8: Bab 2 (Landasan Teori)

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).

Page 9: Bab 2 (Landasan Teori)

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.