BAB 2 LANDASAN TEORI
Pada penelitian ini, penulis menggunakan beberapa teori yang dijadikan acuan untuk menyelesaikan penelitian. Berikut ini teori yang akan digunakan penulis dalam penyelesaian penelitian.
2.1
Sistem Sistem adalah sekelompok elemen yang terintegrasi dengan maksud sama untuk
mencapai suatu tujuan (McLeod, 2001, p.11).
2.1.1
Analisis Sistem Menurut Steward (1998, p.19), analisis suatu sistem merupakan proses
mempelajari suatu sistem untuk menetapkan apa yang dilakukan sistem dalam berbagai keadaan dan apa akibat yang didapatkan dari sistem tersebut. Analisis sistem merupakan bagian dari SDLC (System Developmet Life Cycle) di mana sistem analisis menentukan bagaimana suatu sistem informasi yang sudah ada dalam suatu perusahaan berfungsi, kemudian memperkirakan apa saja keinginan pemakai pada sistem yang baru. Tujuan utama dari analisis sistem adalah untuk mendapatkan gambaran yang lengkap, tidak ambigu, dan konsisten mengenai kebutuhan suatu sistem dan apa yang diperlukan oleh sistem tersebut untuk memenuhi kebutuhan pemakai.
7
8
Ada tiga bagian analisis sistem yaitu : a.
Determining Requirements Determining Requirements digunakan untuk menentukan kebutuhan-kebutuhan akan sistem yang baru perlu dilakukan pengumpulan informasi mengenai apa saja yang perlu dilakukan oleh sistem yang baru dari semua sumber yang mungkin dapat dimintai keterangan/informasi, seperti para pengguna dari sistem yang ada, laporan-laporan, formulir, dan prosedur-prosedur.
b.
Structuring Requirements Process modeling merupakan salah satu cara untuk menstrukturisasi kebutuhankebutuhan. Process modeling berupa representasi grafis yang menggambarkan proses memperoleh, memanipulasi, menyimpan, dan menyalurkan data antara suatu sistem dengan lingkungannya serta antar komponen dalam suatu sistem.Bentuk umum penggambaran proses adalah dengan Data Flow Diagram (DFD).
c.
Selecting the best alternative design strategy Untuk mengetahui alternatif strategi perancangan terbaik, setidaknya ada dua hal yang harus dilakukan, yaitu mengembangkan serangkaian alternatif strategi perancangan dan memilih salah satu hasil terbaik dari sistem informasi yang diinginkan.
9
2.1.2
Perancangan Sistem Menurut Valaich et.al. (2004, p.23), perancangan sistem adalah suatu tahap
dalam siklus perkembangan sistem (System Development Life Cycle) di mana sistem yang dipilih untuk pengembangan dalam analisis sistem pertama kali dijabarkan secara tersendiri dari semua platform komputer (desain logika) dan kemudian diubah menjadi detil-detil teknologi secara spesifik (desain fisik) dari semua rancangan pemprograman sistem yang dapat diselesaikan.
2.2
Interaksi Manusia dan Komputer Interaksi Manusia dan Komputer adalah suatu ilmu yang berhubungan dengan
perancangan, evaluasi, dan implementasi sistem komputer interaktif untuk digunakan oleh
manusia,
serta
studi
fenomena-fenomena
besar
yang
berhubungan
dengannya.Interaksi antara pengguna dan komputer terjadi pada antarmuka pengguna meliputi perangkat lunak dan perangkat keras, misalnya karakter atau objek dari suatu aplikasi ditampilkan oleh perangkat lunak pada monitor (Shneiderman, p.4). Interaksi manusia dan komputer didefinisikan sebagai “suatu disiplin yang berkaitan dengan desain, evaluasi dan implementasi sistem komputer interaktif untuk digunakan oleh manusia dan dengan studi fenomena utama yang mengelilingi mereka” oleh Asosiasi Mesin Komputasi (The Association of Computing Machinery). Sebuah aspek penting interaksi manusia dan komputer adalah menjamin kepuasan pengguna. Tujuan dasar dari interaksi manusia dan komputer adalah untuk meningkatkan interaksi antara pengguna dan komputer dengan membuat komputer lebih berguna dan mau menerima kebutuhan pengguna,khusunya berkaitan dengan metodologi dan proses untuk merancang antarmuka, metode untuk mengimplementasikan interface, teknik
10
untuk mengevaluasi dan membandingkan antarmuka, mengembangkan antarmuka baru dan teknik interaksi, mengembangkan model deskriptif dan prediktif dan teori interaksi. Tujuan dari desain antarmuka atau lebih dikenal dengan desain user interface pengguna adalah membuat interaksi pengguna sesederhana dan seefisien mungkin, dalam hal pengguna mencapai tujuan apa yang sering disebut desain yang berpusat pada pengguna. Desain antarmuka pengguna yang baik memfasilitasi, menyelesaikan tugas yang ada tanpa menarik perhatian yang berlebih. Desain grafis dapat dimanfaatkan untuk mendukung kegunaan. Proses desain harus menyeimbangkan fungsi teknis dan elemen visual untuk menciptakan sebuah sistem yang tidak hanya operasional, tetapi juga bermanfaat serta beradaptasi terhadap perubahan kebutuhan pengguna. Shneiderman (1998, p74-p75) juga memberikan pedoman yang sering dipakai oleh para perancang dalam merancang antarmuka pemakai, yaitu delapan aturan emas perancangan dialog (The Eight Golden Rules of Dialog Design), antara lain: a. Berusaha untuk konsisten Kekonsistenan dalam warna, tipe dan cara penulisan, pembuatan menu. b. Adanya penggunaan shortcuts Adanya tombol-tombol dan perintah khusus yang dapat dipakai oleh pemakai untuk mendapatkan waktu respon dan penampilan informasi ke layar lebih cepat. c. Adanya umpan balik yang inovatif Untuk setiap tindakan pemakai, maka sistem akan merespon dengan umpan balik yang sesuai. d. Merancang dialog untuk memberikan keadaan akhir Supaya menghindari penyelesaian otomatis dan memungkinkan pemakai memberi tanda bahwa pekerjaan telah selesai.
11
e. Memberikan pencegahan dan penanganan kesalahan yang sederhana Desain sistem sebaik mungkin tidak membiarkan pemakai membuat kesalahan yang serius. Untuk setiap kesalahan, maka setiap sistem dapat memperbaiki sendiri kesalahan tersebut. f. Memungkinkan pembalikan aksi yang mudah Seluruh tindakan yang mempengaruhi sistem secara keseluruhan dapat dibatalkan atau di-undo. g. Mendukung pusat kendali internal Pemakai ingin supaya sistem dapat merespons terhadap aksi yang telah dilakukannya. h. Mendukung beban ingatan jangka pendek Karena terbatasnya kemampuan manusia, maka manusia memerlukan tampilan yang sederhana, tidak memerlukan pelatihan secara terus-menerus, frekuensi pergerakan jendela harus dikurangi. Menurut Shneiderman (1998, p.68-p.69) pengguna interaksi manusia dan komputer dibagi menjadi tiga jenis yaitu: a. Novice or First-Time User Pada tingkat pemula ini, user diasumsikan hanya mengetahui sedikit tentang konsep antarmuka. Perancangan antarmuka yang diperlukan oleh tingkat pemula ini dengan adanya umpan balik yang inovatif, pesan kesalahan harus bersifat membangun atau spesifik, terdapat fasilitas menu help dan tutorial. b. Knowledgeable Intermittent User Pada tingkat menengah, user sudah mempunyai sedikit pengetahuan tentang sistem berjalan, tetapi masih sulit untuk mengenal struktur menu dan lokasi menu pada
12
sistem. Perancangan antarmuka yang sesuai untuk tingkat menengah ini adalah desain dari sistem harus sederhana dan konsisten, perlu adanya pengembalian aksi yang mudah. c. Expert Frequent User Pada tingkat mahir, user sudah mengenal dengan baik konsep antarmuka di dalam sistem. Perancangan antarmuka yang sesuai adalah umpan balik yang singkat penyediaan fasilitas shortcuts untuk mempercepat kerjaan.
2.3
Multitouch Multitouch adalah perangkat tambahan pada teknologi layar sentuh, yang
menyediakan pengguna dengan kemampuan untuk menerapkan beberapa gerakan jari secara bersamaan ke tampilan visual elektronik kompleks untuk mengirim perintah ke perangkat. Multitouch sebenarnya adalah nama dagang yang diterapkan oleh Apple karena sifatnya yang mendeteksi banyak sentuhan. Multitouch telah diterapkan dengan berbagai cara berbeda, tergantung pada ukuran dan jenis antarmuka. Prinsip kerja suatu meja multitouch memproyeksikan melalui kaca acrylic atau kaca, dan lampu latar belakang dengan LED. Ketika sebuah jari atau benda menyentuh permukaan menyebabkan cahaya terpecah, refleksi tertangkap dengan sensor atau lampu kamera yang mengirim data ke perangkat lunak yang merespon terhadap sentuhan. Perangkat multitouch dapat berbeda tergantung dari bahan dan alat yang digunakan, bahan utama yang umum digunakan adalah infrared dan kamera optik. Poin penting yang mempengaruhi hasil sentuhan adalah rata-rata penangkapan gambar per detik pada kamera dan kualitas kamera (nuigroup ; 2009).
13
Gambar 2.1 Metode FTIR
Ada beberapa macam pembuatan dalam multitouch yakni Frustrated Total Internal Reflection (FTIR), seperti yang terlihat pada Gambar 2.1. FTIR adalah nama yang digunakan oleh suatu komunitas multitouch untuk mendiskripsikan metode yang dikembangkan oleh Jeff Han (2005). Metode yang digunakan adalah dengan meletakkan kamera-IR di bawah layar yang dapat berupa acrylic atau kaca yang dilapisi oleh karet silikon dan dibatasi oleh IR-LED yang berfungsi sebagai sensor. IR-LED memantulkan sinar sensor ke dalam lapisan layar dan berefek ketika tangan menyentuh layar.
14
Gambar 2.2 Metode DI
Metode lain yakni Diffused Illumination (DI) seperti yang terlihat pada Gambar 2.2, terbagi menjadi dua yakni Rear-DI dan Front-DI di mana keduanya berprinsip dasar yang sama yang menjadi pembeda adalah IR yang ditembakkan berposisi di bawah layar pada Rear-DI sedangkan untuk Front-DI, IR ditembakkan pada atas layar
15
Gambar 2.3 Metode LLP
Berbeda dengan FTIR dan DI, Laser Light Plane (LLP), seperti yang terlihat pada Gambar 2.3 menggunakan laser-IR sebagai pengganti IR-LED. Prinsip yang digunakan lebih sederhana yakni hanya dengan menembakkan laser-IR di atas permukaan layar seperti jaring dan apabila jaring menerima sentuhan, jaring akan terputus dan mengirimkan suatu perintah ke perangkat lunak.
16
Gambar 2.4 Metode DSI
Lain halnya dengan Diffused Surface Illumination (DSI), seperti yang terlihat pada Gambar 2.4. DSI memakai suatu jenis acrylic yang istimewa di mana acrylic menyebarkan sensor ke atas dan ke bawah secara vertikal. Hal tersebut yang menjadi pembeda DSI dengan FTIR. Sensor yang tersebar ini bila bergesekan dengan tangan akan menjadi bentuk inputan dalam multitouch.
17
Gambar 2.5 Metode LED Light Plane
Metode yang umum digunakan sekarang adalah LED Light Plane (LED-LP) seperti yang terlihat pada Gambar 2.5 yakni metode di mana dasar penginstalasian mirip dengan FTIR yang menjadi pembeda adalah penambahan LED pada lapisan atas layar. Pada dasarnya prinsip kerja semua metode adalah sama. Pertanyaan yang sering keluar adalah teknik apa yang paling baik, dan tidak ada jawaban yang mudah. Tiap teknik memiliki kelebihan sendiri dan kekurangan sendiri. Pada Tabel 2.1 hingga Tabel 2.5 adalah tabel singkat perbandingan metode yang ada.
18
Tabel 2.1 Tabel Kelebihan dan Kekurangan Metode FTIR Kelebihan •
Kekurangan
Tidak
memerlukan
suatu
box
•
tertutup
pemasangan beberapa tipe LED
•
Deteksi memiliki kontras tinggi
•
Memperbolehkan
jenis
•
Dengan
permukaan
Membutuhkan permukaan khusus (karet silikon) untuk penggunaan
deteksi
maksimal
yang bervariasi tinggi •
Keahlian khusus dibutuhkan untuk
yang
•
Tidak dapat mengenal objek atau marker khusus
mendukung dapat digunakan pada suatu alat kecil seperti pena
Tabel 2.2 Tabel Kelebihan dan Kekurangan Metode DI Kelebihan •
Tidak membutuhkan permukaan
Kekurangan •
yang khusus •
Susah
untuk
mendapat
hasil
deteksi yang bagus
Dapat menggunakan permukaan
•
Deteksi memiliki kontras rendah
transparant seperti kaca (tidak
•
Lebih
harus acrylic) •
Tidak membutuhkan bingkai LED
•
Tidak perlu proses menyolder
•
Dapat mendeteksi objek, tangan, titik atau gerakan
berpeluang
kesalahan
deteksi •
Kotak tertutup diperlukan (untuk rear-DI)
19
Tabel 2.3 Tabel Kelebihan dan Kekurangan Metode LLP Kelebihan •
Kekurangan
Tidak membutuhkan permukaan
•
yang khusus (silikon) •
Tidak dapat mendeteksi object dan titik
Dapat menggunakan permukaan
•
Tidak sensitif
transparant seperti kaca (tidak
•
Lebih
harus acrylic) •
Tidak membutuhkan bingkai LED
•
Pemasangan yang mudah
•
Lebih murah dari teknik lain
berpeluang
kesalahan
deteksi
Tabel 2.4 Tabel Kelebihan dan Kekurangan Metode DSI Kelebihan •
Tidak membutuhkan permukaan
Kekurangan •
Acrylic yang dibutuhkan lebih
yang khusus (silikon)
mahal
•
Dapat diahlikan ke metode FTIR
permukaan silikon
•
Dapat mendeteksi objek
•
Deteksi sensitif
•
Tidak ada hotspots
•
Memungkinkan penerangan objek
•
bila
ingin
memakai
Memiliki deteksi dengan kontras rendah
•
Ada
batasan
ukuran
deteksi
pengaruh kelembutan permukaan
20
Tabel 2.5 Tabel Kelebihan dan Kekurangan Metode LED-LP Kelebihan • •
Kekurangan
Tidak membutuhkan permukaan
•
Pendekatan deteksi yang kurang
yang khusus (silikon)
•
Tidak dapat mendeteksi objek
Dapat menggunakan permukaan
•
Hanya narrow-beam LED yang
transparant seperti kaca (tidak
dapat dipakai
harus acrylic) •
Tidak membutuhkan bingkai LED
•
Sebuah
kotak
tertutup
tidak
dibutuhkan •
2.4
Dapat lebih murah dari teknik lain
Pattern Recognition Pattern Recognition atau pengenalan pola adalah tindakan mengambil data
mentah dan mengambil tindakan berdasarkan pola. Sebagian besar metode tentang pengenalan pola adalah metode untuk supervised learning dan unsupervised learning. Pengenalan pola bertujuan untuk mengelompokkan data (pola) berdasarkan pada pariori pengetahuan atau pada statistik informasi yang diambil dari pola-pola. Pola secara spesifik adalah kelompok pengukuran atau pengamatan dan menentukan titik-titik dengan ruang dimensi yang tepat.
2.5
Algoritma Ramer-Douglas-Peucker Ramer-Douglas-Peucker atau yang lebih dikenal dengan Douglas-Peucker
adalah algoritma untuk mengurangi jumlah titik dalam kurva yang diperkirakan dengan serangkaian poin. Bentuk awal algoritma secara independen diusulkan pada tahun 1972 oleh Urs Ramer dan 1973 oleh David Douglas dan Thomas Peucker.
21
Tujuan dari algoritma ini adalah bahwa untuk sebuah kurva yang terdiri dari segmen garis dapat ditemukan sebuah kurva serupa dengan sedikit poin. Mendefinisikan algortima berbeda didasarkan pada jarak maksimum antara kurva asli dan kurva yang disederhanakan. Kurva yang disederhanakan terdiri dari subset dari titik-titik yang didefinisikan kurva asli. Algoritma secara rekursif membagi garis. Awalnya semua titik ditandai, dan penandaan dilanjutkan pada penandaan titik awal dan akhir. Kemudian menemukan titik yang terjauh dari segmen garis dengan poin pertama dan terakhir. Jika titik lebih dekat daripada ε ke segmen garis maka setiap poin saat ini tidak ditandai untuk tetap dapat dibuang tanpa merapikan kurva yang lebih buruk dari ε. Jika titik terjauh dari segmen garis lebih besar dari ε dari perkiraan maka titik itu harus dijaga. Algoritma dilakukan secara rekursif hingga mencapai titik terakhir.
2.6
Rekayasa Piranti Lunak Piranti lunak menurut Pressman dapat didefinisikan sebagai beikut :
1. Instruksi-instruksi atau program komputer yang bila dieksekusi akan memberikan fungsi dan unjuk kerja yang diinginkan. 2. Struktur data yang mampu memanipulasi suatu informasi. 3. Dokumen-dokumen yang menjelaskan operasi dan pemakaian suatu propaganda. RPL menurut Pressman adalah suatu pembentukan dan penggunaan prinsipprinsip rekayasa dengan tujuan menghasilkan suatu perangkat lunak yang ekonomis dan dapat diandalkan serta dapat bekerja lebih efisien pada mesin yang sesungguhnya. Pada dasarnya RPL meliputi tiga elemen kunci yaitu : 1. Method (metode)
22
Mengenai bagaimana membangun suatu perangkat lunak, di mana metode terdiri dari beberapa tugas yaitu perencanaan proyek dan estimasi, analisis kebutuhan perangkat lunak, perancangan struktur data, arsitektur program, prosedur algoritma, pengkodean, testing dan pemeliharaan. 2. Tools Tools menyediakan dukungan baik secara otomatis maupun semi otomatis untuk metode. Tools diintegrasikan dengan tujuan informasi yang dihasilkan oleh suatu tool dapat digunakan oleh tools lainnya. 3. Procedure Procedure merupakan perekat antara metode. Tools dan procedure juga memungkinkan pembangunan perangkat lunak secara rasional dan berkala. Ruang lingkup dari RPL dapat dilihat pada Gambar 2.6.
23
Gambar 2.6 Bagan ruang lingkup RPL
•
Software requirements berhubungan dengan spesifikasi kebutuhan dan persyaratan perangkat lunak.
•
Software design mencakup proses penentuan arsitektur, komponen, antarmuka dan karakteristik lain dari perangkat lunak.
•
Software construction berhubungan dengan detil pengembangan perangkat lunak, termasuk algoritma, pengkodean, pengujian dan pencarian kesalahan.
•
Software testing meliputi pengujian pada keseluruhan perilaku perangkat lunak.
•
Software maintenance mencakup upaya-upaya perawatan ketika perangkat lunak telah dioperasikan.
•
Software configuration management berhubungan dengan usaha perubahan konfigurasi perangkat lunak untuk memenuhi kebutuhan tertentu.
24
•
Software engineering management berkaitan dengan pengelolaan dan pengukuran RPL, termasuk perencanaan proyek perangkat lunak.
•
Software engineering tools and methods mencakup kajian teoritis tentang alat bantu dan metode RPL.
•
Software engineering process berhubungan dengan definisi, implementasi, pengukuran, pengelolaan, perubahan dan perbaikan proses RPL.
•
Software quality menitikberatkan pada kualitas dan daur hidup perangkat lunak.
System Development Life Cycle(SDLC) adalah tahapan operasi terstruktur yang dibutuhkan untuk menyusun, membangun dan membuat beroperasinya sebuah sistem informasi baru. SDLC dapat dipecah menjadi 4 tahap utama, yaitu analisis, disain, implementasi dan perawatan. Model siklus hidup (life cycle model) adalah model utama dan dasar dari banyak model. Salah satu model yang cukup dikenal dalam dunia rekayasa perangkat lunak adalah The Waterfall Model. Ada 5 tahapan utama. Disebut waterfall (berarti air terjun) karena memang diagram tahapan prosesnya mirip dengan air terjun yang bertingkat.
25
Untuk mempermudah pengertian, gambar dari alur perancangan waterfall dapat dilihat pada Gambar 2.7.
Gambar 2.7 Alur Waterfall Mode
Tahapan-tahapan dalam The Waterfall Model secara ringkas terlihat pada Gambar 2.7 sebagai berikut: •
Tahap investigasi dilakukan untuk menentukan apakah terjadi suatu masalah atau adakah peluang suatu sistem informasi dikembangkan. Pada tahapan ini studi kelayakan perlu dilakukan untuk menentukan apakah sistem informasi yang akan dikembangkan merupakan solusi yang layak
•
Tahap analisis bertujuan untuk mencari kebutuhan pengguna dan organisasi serta menganalisis kondisi yang ada (sebelum diterapkan sistem informasi yang baru).
26
•
Tahap disain bertujuan menentukan spesifikasi detil dari komponenkomponen sistem informasi (manusia, hardware, software, network dan data) dan produk-produk informasi yang sesuai dengan hasil tahap analisis.
•
Tahap implementasi merupakan tahapan untuk mendapatkan atau mengembangkan hardware dan software (pengkodean program), melakukan pengujian, pelatihan dan perpindahan ke sistem baru.
•
Tahapan perawatan (maintenance) dilakukan ketika sistem informasi sudah dioperasikan. Pada tahapan ini dilakukan monitoring proses, evaluasi dan perubahan (perbaikan) bila diperlukan.
2.6.1
Pemrograman Berorientasi Objek Pemrograman berorientasi objek merupakan paradigma pemprograman yang
berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Bandingkan dengan logika pemprograman terstruktur. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya.( Kay, 2007, p. 109) Model data berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih, kemudahan mengubah program, dan digunakan luas dalam teknik piranti lunak skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan pendekatan OOP lebih mudah dikembangkan dan dirawat. Pemrograman orientasi-objek menekankan konsep berikut:
27 •
kelas - kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Sebagai contoh 'class of tools' adalah suatu unit yang terdiri atas definisi-definisi data dan fungsi-fungsi yang menunjuk pada berbagai macam dari alat. Sebuah class adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi object. Sebuah class secara tipikal sebaiknya dapat dikenali oleh seorang non-programmer sekalipun terkait dengan domain permasalahan yang ada, dan kode yang terdapat dalam sebuah class sebaiknya (relatif) bersifat mandiri dan independen (sebagaimana kode tersebut digunakan jika tidak menggunakan OOP). Dengan modularitas, struktur dari sebuah program akan terkait dengan aspek-aspek dalam masalah yang akan diselesaikan melalui program tersebut. Cara seperti ini akan menyederhanakan pemetaan dari masalah ke sebuah program ataupun sebaliknya.
•
Objek - membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah program komputer; objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek.
•
Abstraksi - Kemampuan sebuah program untuk melewati aspek informasi yang diproses olehnya, yaitu kemampuan untuk memfokus pada inti. Setiap objek dalam sistem melayani sebagai model dari "pelaku" abstrak yang dapat melakukan kerja, laporan dan perubahan keadaannya, dan berkomunikasi dengan objek lainnya dalam sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan. Proses, fungsi atau metode dapat juga dibuat abstrak, dan beberapa teknik digunakan untuk mengembangkan sebuah pengabstrakan.
•
Enkapsulasi - Memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak; hanya metode
28
dalam objek tersebut yang diberi ijin untuk mengakses keadaannya. Setiap objek mengakses interface yang menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnya tidak akan mengetahui dan tergantung kepada representasi dalam objek tersebut. •
Polimorfisme ‐ melalui
pengiriman
pesan.
Tidak
bergantung
kepada
pemanggilan subrutin, bahasa orientasi objek dapat mengirim pesan; metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesan tersebut dikirim. Contohnya, bila sebuah burung menerima pesan "gerak cepat", dia akan menggerakan sayapnya dan terbang. Bila seekor singa menerima pesan yang sama, dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah pesan yang sama, namun yang sesuai dengan kemampuan hewan tersebut. Ini disebut polimorfisme karena sebuah variabel tunggal dalam program dapat memegang berbagai jenis objek yang berbeda selagi program berjalan, dan teks program yang sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa fungsional yang mencapai polimorfisme melalui penggunaan fungsi kelas-pertama. •
Inheritas - Mengatur polimorfisme dan enkapsulasi dengan mengijinkan objek didefinisikan dan diciptakan dengan jenis khusus dari objek yang sudah ada objek-objek ini dapat membagi (dan memperluas) perilaku mereka tanpa haru mengimplementasi ulang perilaku tersebut (bahasa berbasis-objek tidak selalu memiliki inheritas.) Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah
di mana tidak terlihat bagaimana cara menyelesaikan suatu masalah tersebut
29
(terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut. Sebagai contoh memiliki sebuah departemen yang memiliki manager, sekretaris, petugas administrasi data dan lainnya. Misal manager tersebut ingin memperoleh data dari bag administrasi maka manager tersebut tidak harus mengambilnya langsung tetapi dapat menyuruh petugas bagian administrasi untuk mengambilnya. Pada kasus tersebut seorang manager tidak harus mengetahui bagaimana cara mengambil data tersebut tetapi manager dapat mendapatkan data tersebut melalui objek petugas administrasi. Jadi untuk menyelesaikan suatu masalah dengan kolaborasi antar objek-objek yang ada karena setiap objek memiliki deskripsi tugasnya sendiri.
2.6.2
UML ( Unified Modeling Language) UML (Unified Modeling Language) adalah sebuah bahasa yang berdasarkan
grafik/gambar
untuk
menvisualisasi,
menspesifikasikan,
membangun,
dan
pendokumentasian dari sebuah sistem pengembangan software berbasis OO(ObjectOriented). UML sendiri juga memberikan standar penulisan sebuah sistem blue print, yang meliputi konsep bisnis proses, penulisan kelas-kelas dalam bahasa program yang spesifik, skema database, dan komponen-komponen yang diperlukan dalam sistem software (http://www.omg.org ; 2006). Pendekatan analisis dan rancangan dengan menggunakan model OO mulai diperkenalkan sekitar pertengahan 1970 hingga akhir 1980 dikarenakan pada saat itu aplikasi software sudah meningkat dan mulai komplek. Jumlah yang menggunakaan metoda OO mulai diuji cobakan dan diaplikasikan antara 1989 hingga 1994, seperti halnya oleh Grady Booch dari Rational Software Co., dikenal dengan OOSE (ObjectOriented Software Engineering), serta James Rumbaugh dari General Electric, dikenal
30
dengan OMT (Object Modelling Technique). Kelemahan saat itu disadari oleh Booch maupun Rumbaugh adalah tidak adanya standar penggunaan model yang berbasis OO, ketika mereka bertemu ditemani rekan lainnya Ivar Jacobson dari Objectory mulai mendiskusikan untuk mengadopsi masing-masing pendekatan metoda OO untuk membuat suatu model bahasa yang uniform / seragam yang disebut UML (Unified Modeling Language) dan dapat digunakan oleh seluruh dunia. Secara resmi bahasa UML dimulai pada bulan oktober 1994, ketika Rumbaugh bergabung Booch untuk membuat sebuah project pendekatan metoda yang uniform/seragam dari masing-masing metoda mereka. Saat itu baru dikembangkan draft metoda UML version 0.8 dan diselesaikan serta di release pada bulan oktober 1995. Bersamaan dengan saat itu, Jacobson bergabung dan UML tersebut diperkaya ruang lingkupnya dengan metoda OOSE sehingga muncul release version 0.9 pada bulan Juni 1996. Hingga saat ini sejak Juni 1998 UML version 1.3 telah diperkaya dan direspons oleh OMG (Object Management Group), Anderson Consulting, Ericsson, Platinum Technology, ObjectTime Limited, dll , serta dipelihara oleh OMG yang dipimpin oleh Cris Kobryn. UML adalah standar dunia yang dibuat oleh Object Management Group (OMG), sebuah badan yang bertugas mengeluarkan standar-standar teknologi objectoriented dan software component.
Dalam aplikasinya, UML dapat dimodelkan dengan beberapa variasi diagram
yaitu sebagai berikut. •
Class Diagram(Diagram kelas) Class diagram adalah sebuah diagram tetap yang menunjukkan struktur program dengan menampilkan sistem class, atribut, hubungan antar class dan juga operasi yang dimiliki masing-masing class.(Alan Kay, 2007).
31
Class memiliki tiga area pokok yaitu nama, atribut dan operasi. Atribut dan operasi dapat memiliki salah satu sifat berikut 1) Private, tidak dapat dipanggil dari luar class yang bersangkutan. 2) Protected, hanya dapat dipanggil oleh class yang bersangkutan dan anak-anak yang mewarisinya. 3) Public, dapat dipanggil oleh siapa saja. Class diagram digunakan untuk memperlihatkan struktur statis dari class yang ada di dalam sistem, dan hubungan antar class tersebut. Class diagram memiliki atribut, operasi dan juga berbagai macam tipe peran dan asosiasi. Class diagram menggambarkan struktur dan deskripsi class, package dan objek beserta hubungan satu sama lain seperti containment, pewarisan, asosiasi dan lain-lain. Contoh dari class diagram dapat dilihat pada Gambar 2.8.
32
Gam mbar 2.8 Claass Diagram m
Sesuai dengan d perkkembangan class modeel, class dappat dikelom mpokkan menjadi package. Hubungan--hubungan antar a class anntara lain addalah 1) Asosiasi A yaittu hubungann statis antar class. Umuumnya mengggambarkan class yang y memiliiki atribut beerupa class lain, atau class c yang harus h mengetahui keberadaan k d class laiin, panah navigability menunjukkan dari m arah query antar class. c 2) Agregasi, A yaiitu hubungann yang menyyatakan bagiian. 3) Pewarisan, P y yaitu hubunggan hirarki antar a class. Class dapatt diturunkann dari class c lain dan d mewarissi semua attribut dan metoda class awalnya dan
33
menambahka m an fungsionaalitas baru, sehingga s ia disebut d anakk dari class yang diwarisinya,K d Kebalikan daari pewarisan adalah genneralisasi. 4) Hubungan H diinamis, yaituu rangkaian pesan yang dihubungkaan dari satu class kepada k class lain. •
Use Case Diagram Use Casse Diagram adalah diaggram UML yang dapatt menunjukkkan kerja siistem secara horizontal. h U Case Diiagram mennunjukkan baagaimana siistem itu bekerja Use secara fu ungsional.(Fowler ; 20000) Simbol-ssimbol yangg digunakan dalam use case c diagram m dapat dilihhat pada Gam mbar 2.9. Sedaangkan conttoh dari use case c diagram m dapat dilihhat pada Gam mbar 2.10.
Gam mbar 2.9 Sim mbol-simbol Use Case Diagram D
34
Gambar 2.10 Use Case Diagram
•
Activity Diagram Activity Diagram adalah diagram yang menggambarkan urutan persitiwa dalam suatu proses (Schmuller, 1999, p.134). Activity diagram biasa digunakan untuk menggambarkan aktivitas bisnis yang rumit sehingga membantu mengidentifikasi use case atau di antara dan di dalam use case. Contoh dari activity diagram dapat dilihat pada Gambar 2.11.
35
Gambar 2.11 Activity Diagram
•
Sequence Diagram Sequence diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem berupa message yang digambarkan terhadap waktu. Sequence diagram terdiri atas
dimensi
vertikal(waktu)
terkait).(Fowler ; 2000)
dan
dimensi
horisontal(objek-objek
yang
36
Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu. Diawali dari apa yang merespon aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa yang dihasilkan. Contoh dari sequence diagram dapat dilihat pada Gambar 2.12.
Gambar 2.12 Sequence Diagram
37
•
Object Diagram Object Diagram adalah contoh dari class yang mempunyai nilai khusus dan atribut yang khusus (Schmuller, 1999, p.9). Menurut Jason T Roff objek diagram hampir sama dengan class diagram kecuali pada bagian di mana objek tersebut berhubungan dengan class. Objek diagram biasa digunakan untuk menggambarkan bagaimana komponen-komponen dari sebuah sistem berhubungan satu dengan lainnya (2003, p.11). Contoh dari object diagram dapat terlihat pada Gambar 2.13.
Gambar 2.13 Object Diagram
38
•
Deployment Diagram Menurut Jason T Ruff, Deployment Diagram adalah diagram yang memperlihatkan arsitektur fiisik dari hardware dan software pada sistem.(Roff, 2003, p.11). Pada Gambar 2.14 dapat dilihat contoh dari suatu deployment diagram.
Gambar 2.14 Deployment Diagram
•
Collaboration Diagram Collaboration diagram digunakan untuk membaca class diagram ke tahap selanjutnya. Diagram ini menggambarkan interaksi dan hubungan antar objek yang dibuat sebelumnya dengan proses model utama (Roff, 2003, p13). Collaboration diagram memperlihatkan kolaborasi dinamik antar objek tanpa memperhatikan
39
aspek waktu. Collaboration diagram juga menggambarkan interaksi antar objek seperti sequence diagram, tetapi lebih menekankan pada peran masing-masing objek dan bukan pada waktu penyampaian pesan. Setiap pesan memiliki sequence number, di mana pesan dari level tertinggi memiliki nomor satu. Pesan dari level yang sama memiliki prefiks yang sama. Contoh dari collaboration diagram dapat dlihat pada Gambar 2.15.
Gambar 2.15 Collaboration Diagram
•
Componet Diagram Component diagram adalah diagram yang memperlihatkan struktur fisik dari source code dalam teknologi code components. Komponen berisi informasi tentang logical class, dapat berupa komponen source code, komponen library, atau komponen yang dapat dieksekusi. Umumnya komponen terbentuk dari beberapa class atau package,
40
tapi juga dapat dari komponen yang lebih kecil. Komponen dapat juga berupa interface, yaitu kumpulan layanan yang disediakan sebuah komponen untuk komponen lain. Contoh dari component diagram dapat terlihat pada Gambar 2.16.
Gambar 2.16 Component Diagram
•
Statechart Diagram Statechart diagram digunakan untuk memodelkan tingkah laku dari sebuah sub sistem dan juga untuk memodelkan interaksi antar class dengan sistem untuk menggambarkan sebuah use case. Contoh dari statechart diagram dapat dilihat pada Gambar 2.17.
41
Gambar 2.17 Statechart Diagram
Simbol-simbol atau properti dari Statechart diagram adalah 1) State State adalah kumpulan keadaan dan atribut yang mencirikan seseorang atau suatu benda pada waktu atau kondisi tertentu. Disimbolkan dengan segi empat.
42
2) Transition state Transition state disimbolkan dengan anak panah yang menjelaskan perubahan suatu keadaan yang menghubungkan suatu state ke suatu kondisi tertentu. 3) Condition Condition adalah suatu keadaan pada lingkungan eksternal yang dapat di deteksi oleh sistem. 4) Action Action adalah suatu tindakan yang dilakukan oleh sistem bila terjadi perubahan keadaan awal atau merupakan reaksi terhadap kondisi.