7
BAB II LANDASAN TEORI
Pada bab ini akan dijelaskan beberapa teori yang berhubungan dengan perangkat lunak yang dibangun serta metodologi pengembangan yang digunakan sebagai tolak ukur dalam pembuatan perangkat lunak.
2.1 Pengenalan Karakter Huruf Hijaiyah Huruf hijaiyah adalah huruf-huruf yang digunakan dalam Al-Quran. Huruf hijaiyah jumlahnya 29 karena alif ( )ﺍdan hamzah ( )ﺀtidak disatukan, yaitu : Tabel 2.1 Daftar Huruf Hijaiyah No Huruf Arab 1 ﺍ 2 ﺏ 3 ﺕ 4 ﺙ 5 ﺝ 6 ﺡ 7 ﺥ 8 ﺩ 9 ﺫ 10 ﺭ 11 ﺯ 12 ﺱ 13 ﺵ 14 ﺹ 15 ﺽ 16 ﻁ 17 ﻅ 18 ﻉ 19 ﻍ 20 ﻑ
Huruf Latin alif ba’ ta’ tsa’ jim ha’ kha’ dal dzal ra’ zay sin syin shad dhad tha’ zha’ ‘ain ghain fa’
Simbol dalam Latin a b t ts j h kh d dz r z s sy sh dh th zh ‘a gh f
8
21 22 23 24 25 26 27 28 29
ﻕ ﻙ ﻝ ﻡ ﻥ ﻭ ﻫ ﻱ ﺀ
qaf kaf lam mim nun wau ha’ ya’ hamzah
q k l m n w h y
2.2 Pengolahan Citra 2.2.1 Definisi Citra dan Pengolahan Citra Secara harfiah, citra (image) adalah gambar pada bidang dwimatra (dua dimensi). Ditinjau dari sudut pandang matematis, citra merupakan fungsi menerus (continue) dari intensitas cahaya pada bidang dwimatra. Sumber cahaya menerangi objek, objek memantulkan kembali sebagian dari berkas cahaya tersebut. Pantulan cahaya ini ditangkap oleh alat-alat optik, misalnya mata pada manusia, kamera, pemindai (scanner), dan sebagainya, sehingga bayangan objek yang disebut citra tersebut terekam. Citra digital merupakan suatu larik dua dimensi atau suatu matriks yang elemen-elemennya menyatakan tingkat keabuan dari elemen gambar. Jadi informasi yang terkandung bersifat diskret. Citra digital tidak selalu merupakan hasil langsung data rekaman suatu sistem. Kadang-kadang hasil rekaman data bersifat kontinu seperti gambar pada monitor televisi, foto sinar-X, dan lain sebagainya. Dengan demikian untuk mendapatkan suatu citra digital diperlukan suatu proses konversi, sehingga citra tersebut selanjutnya dapat diproses dengan komputer.
9
Pengolahan
citra
adalah
pemrosesan
citra,
khususnya
dengan
menggunakan komputer, menjadi citra yang kualitasnya menjadi lebih baik. Umumnya, operasi-operasi pada pengolahan citra diterapkan pada citra bila : 1. Perbaikan atau memodifikasi citra perlu dilakukan untuk meningkatkan kualitas penampakan atau menonjolkan beberapa aspek informasi yang terkandung di dalam citra, 2. Elemen di dalam citra perlu dikelompokkan, dicocokkan atau diukur, 3. Sebagian citra perlu digabung dengan bagian citra lain. Pengolahan citra bertujuan memperbaiki kualitas citra agar mudah diinterpretasi oleh manusia atau mesin (dalam hal ini komputer). Teknik-teknik pengolahan citra mentransformasikan citra menjadi citra lain. Jadi, masukannya adalah citra dan keluarannya juga citra, namun citra keluaran mempunyai kualitas lebih baik daripada citra masukan. 2.2.2 Operasi Pengolahan Citra Operasi-operasi yang dilakukan di dalam pemgolahan citra banyak ragamnya. Namun, secara umum, operasi pengolahan citra dapat diklasifikasikan dalam beberapa jenis sebagai berikut : 1. Perbaikan kualitas citra (image enhancement). Jenis operasi ini bertujuan untuk memperbaiki kualitas citra dengan cara memanipulasi parameter-parameter citra. Dengan operasi ini, ciri-ciri khusus yang terdapat didalam citra ditonjolkan. Contoh-contoh operasi perbaikan citra :
10
a. perbaikan kontras gelap/terang b. perbaikan tepian objek c. penajaman 2. Pemugaran citra (image restoration). Operasi ini bertujuan menghilangkan/meminimumkan cacat pada citra. Tujuan pemugaran citra hampir sama dengan operasi perbaikan citra. Bedanya, pada pemugaran citra penyebab degradasi gambar diketahui. Contoh-contoh operasi pemugaran citra : a. penghilangan kesamaran (deblurring) b. penghilangan derau (noise) 3. Pemampatan citra (image compression). Jenis operasi ini dilakukan agar citra dapat direpresentasikan dalam bentuk yang lebih kompak sehingga memerlukan memori yang lebih sedikit. 4. Segmentasi citra (image segmentation). Jenis operasi ini bertujuan untuk memecah suatu citra ke dalam beberapa segmen dengan suatu kriteria tertentu. Jenis operasi ini berkaitan erat dengan pengenalan pola. 5. Analisis citra (image analysis) Jenis operasi ini bertujuan menghitung besaran kuantitatif dari citra untuk menghasilkan deskripsinya. Teknik pengorakan citra mengekstraksi ciri-ciri tertentu yang membantu dalam identifikasi objek. Proses segmentasi kadangkala diperlukan untuk melokalisasi objek yang diinginkan dari sekelilingnya.
11
6. Rekonstruksi citra (image reconstruction) Jenis operasi ini bertujuan untuk membentuk ulang objek dari beberapa citra hasil proyeksi. Operasi rekonstruksi citra banyak digunakan dalam bidang medis. Misalnya beberapa foto rontgen dengan sinar X digunakan untuk membentuk ulang gambar organ tubuh. 2.2.3 Elemen-elemen Citra Digital Citra digital mengandung sejumlah elemen-elemen dasar. elemen-elemen dasar yangpentng diantaranya adalah : 1. Kecerahan (brightness) Kecerahan adalah kata lain untuk intensitas cahaya. Kecerahan pada sebuah titik (pixel) dalam citra bukanlah intensitas yang riil, tetapi sebenarnya adalah intensitas rata-rata dari suatu area yang melingkupinya. 2. Kontras (contrast) Kontras menyatakan sebaran terang (lightness) dan gelap (darkness) di dalam sebuah gambar. Citra dengan kontras rendah dicirikan oleh sebagian besar komposisi citranya adalah terang atau sebagian besar gelap. Pada citra dengan kontras yang baik, komposisi gelap dan terang tersebar secara merata. 3. Kontur (contour) Kontur adalah keadaan yang ditimbulkan oleh perubahan intensitas pada pixelpixel yang bertetangga. Karena adanya perubahan intensitas inilah mata kita mampu mendeteksi tepi-tepi (edge) objek di dalam citra.
12
4. Warna (color) Warna adalah persepsi yang dirasakan oleh sistem visual manusia terhadap panjang gelombang cahaya yang dipantulkan oleh objek. Setiap warna mempunyai panjang gelombang yang berbeda. 5. Bentuk (shape) Shape adalah properti intrinsik dari objek tiga dimensi, dengan pengertian bahwa shape merupakan properti intrinsik utama untuk sistem visual manusia. 6. Tekstur (texture) Tekstur dicirikan sebagai distribusi spasial dari derajat keabuan di dalam sekumpulan pixel-pixel
yang bertetangga. Jadi, tekstur tidak dapat
didefinisikan untuk sebuah pixel. Sistem visual manusia pada hakikatnya tidak menerima informasi citra secara independen pada setiap pixel, melainkan suatu citra dianggap sebagai suatu kesatuan. Resolusi citra yang diamati ditentukan oleh skala pada mana tekstur tersebut dipersepsi. 2.2.4 Citra Biner Citra biner adalah citra yang hanya mempunyai dua nilai derajat keabuan yaitu hitam dan putih. Pixel-pixel objek bernilai 1 dan pixel-pixel latar belakang bernilai 0. jadi, pada citra biner, latar belakang berwarna putih sedangkan objek berwarna hitam. 2.2.5 Citra Skala Keabuan Citra skala keabuan mempunyai kemungkinan warna antara hitam (minimal) dan putih (maksimal). Jumlah maksimum warna sesuai dengan bit penyimpanan yang digunakan.
13
2.2.6 Citra Warna Setiap titik (pixel) pada citra warna mewakili warna yang merupakan kombinasi dari tiga warna dasar yaitu merah hijau biru atau citra RGB (Red Green Blue). Setiap warna dasar mempunyai intensitas sendiri dengan nilai maksimum 255 (8 bit) : Red = warna minimal putih, warna maksimal merah Green = warna minimal putih, warna maksimal hijau Blue = warna minimal putih, warna maksimal biru 2.2.7 Citra Warna Berindeks Setiap titik (pixel) pada citra warna berindeks mewakili indeks dari suatu tabel warna yang tersedia (biasanya disebut palet warna). Keuntungan pemakaian palet warna adalah kita dapat dengan cepat memanipulasi warna tanpa harus mengubah informasi pada setiap titik dalam citra. Keuntungan yang lain, penyimpanan lebih kecil. Setting warna display pada MS Window biasanya format 16 colors, 256 colors, high color, true color, yang merupakan citra warna berindeks dengan ukuran palet masing-masing 4 bit, 8 bit, 16 bit dan 24 bit. 2.2.8 Pengambangan Tunggal Operasi pengambangan digunakan untuk mengubah citra dengan format skala keabuan, yang mempunyai kemungkinan nilai lebih dari 2 ke citra biner yang memiliki 2 buah nilai (yaitu 0 dan 1). Pengambangan tunggal memiliki sebuah nilai batas ambang. fungsi grayscale transformation (GST)-nya 0, jika Ki < ambang (0 = hitam) dan Ko = 1, jika Ki ≥ ambang (1 = putih) atau 0, jika Ki ≥
14
ambang dan Ko = 1, jika Ki < ambang. GST function adalah fungsi yang memetakan tingkat keabuan input (Ki) ke citra keabuan citra output (Ko), Ko = f (Ki).
2.3 Jaringan Syaraf Tiruan 2.3.1 Jaringan Syaraf Biologi Otak manusia memiliki struktur yang sangat kompleks dan memiliki kemampuan yang luar biasa. Otak terdiri dari neuron-neuron dan penghubung yang disebut sinapsis. Neuron bekerja berdasarkan impuls/sinyal yang diberikan pada neuron. Neuron meneruskannya pada neuron lainnya. Diperkirakan manusia memiliki 1012 neuron dan 6.1018 sinapsis. Dengan jumlah yang begitu banyak, otak mampu mengenali pola, melakukan perhitungan, dan mengontrol organorgan tubuh dengan kecepatan yang lebih tinggi dibandingkan komputer digital. Sebagai perbandingan, pengenalan wajah seseorang yang sedikit berubah (misal memakai topi, memiliki jenggot tambahan, dan lain-lain) akan lebih cepat dilakukan manusia dibandingkan komputer.
Gambar 2.1 Sebuah Sel Syaraf Sederhana
15
Pada waktu lahir, otak mempunyai struktur yang menakjubkan karena kemampuannya membentuk sendiri aturan-aturan/pola berdasarkan pengalaman yang diterima. Jumlah dan kemampuan neuron berkembang seiring dengan pertumbuhan fisik manusia, terutama pada usia 0-2 tahun. Pada 2 tahun pertama umur manusia, terbentuk 1 juta sinapsis perdetik. Neuron memiliki 3 komponen penting yaitu dendrit, soma dan axon. Dendrit menerima sinyal dari neuron lain. Sinyal tersebut berupa impuls elektrik yang dikirim melalui celah sinaptik melalui proses kimiawi. Sinyal tersebut dimodifikasi
(diperkuat/diperlemah)
dicelah
sinaptik.
Berikutnya,
soma
menjumlahkan semua sinyal-sinyal yang masuk. Kalau jumlahan tersebut cukup kuat dan melebihi batas ambang (threshold), maka sinyal tersebut akan diteruskan ke sel lain melalui axon. Frekuensi penerusan sinyal berbeda-beda antara satu sel dengan yang lainnya. Neuron biologi merupakan sistem yang “fault tolerant” dalam dua hal. Pertama, manusia dapat mengenali sinyal input yang agak berbeda dari yang pernah kita terima sebelumnya. Sebagai contoh, manusia sering dapat mengenali seseorang yang wajahnya pernah dilihat dari foto, atau dapat mengenali seseorang yang wajahnya agak berbeda karena sudah lama tidak dijumpainya. Kedua, otak manusia tetap mampu bekerja meskipun beberapa neuron-nya tidak mampu bekerja dengan baik. Jika sebuah neuron rusak, neuron lain kadangkadang dapat dilatih untuk menggantikan fungsi sel yang rusak tersebut.
16
2.3.2 Sejarah Jaringan Syaraf Tiruan Jaringan Syaraf Tiruan sederhana pertama kali diperkenalkan oleh McCulloch dan Pitts di tahun 1943. McCulloch dan Pitts menyimpulkan bahwa kombinasi beberapa neuron sederhana menjadi sebuah sistem neural akan meningkatkan kemampuan komputasinya. Bobot dalam jaringan yang diusulkan oleh McCulloch dan Pitts diatur untuk melakukan fungsi logika sederhana. Fungsi aktivasi yang dipakai adalah fungsi threshold. Tahun 1958 Rosenblatt memperkenalkan dan mulai mengembangkan model jaringan yang disebut perceptron. Metode pelatihan diperkenalkan untuk mengoptimalkan hasil iterasinya. Widrow dan Hoff pada tahun 1960 mengembangkan perceptron dengan memperkenalkan aturan pelatihan jaringan, yang dikenalkan sebagai aturan delta (atau sering disebut kuadrat rata-rata terkecil). Aturan ini akan mengubah bobot perceptron apabila keluaran yang dihasilkan tidak sesuai dengan target yang diinginkan. Apa yang dilakukan peneliti terdahulu hanya menggunakan jaringan dengan layer tunggal (single layer). Rumelhart pada tahun 1986 mengembangkan perceptron menjadi backpropagation, yang memungkinkan jaringan diproses melalui beberapa layer. Selain itu beberapa model jaringan syaraf tiruan lain juga dikembangkan oleh kohonen pada tahun 1972, Hopfield pada tahun 1982 dan lain-lain. (Jek Siang, 2005, h.4)
17
Pengembangan yang ramai dibicarakan sejak tahun 1990-an adalah aplikasi model-model jaringan syaraf tiruan untuk menyelesaikan berbagai masalah di dunia nyata. 2.3.3 Jaringan Syaraf Tiruan Jaringan syaraf tiruan (JST) adalah sistem pemrosesan informasi yang memiliki karakteristik mirip dengan jaringan syaraf biologi. JST dibentuk sebagai generalisasi model matematika dari jaringan syaraf biologi, dengan asumsi bahwa : 1. Pemrosesan informasi terjadi pada banyak elemen sederhana (neuron) 2. Sinyal dikirimkan diantara neuron-neuron melalui penghubung-penghubung 3. Penghubung antar neuron memiliki bobot yang akan memperkuat atau memperlemah sinyal 4. Untuk menentukan output, setiap neuron menggunakan fungsi aktivasi (biasanya bukan fungsi linier) yang dikenakan pada jumlahan input yang diterima. Besarnya output ini selanjutnya dibandingkan dengan suatu batas ambang. JST ditentukan oleh 3 hal : 1. Pola hubungan antar neuron (disebut arsitektur jaringan) 2. Metode
untuk
menentukan
training/learning/algoritma) 3. Fungsi aktivasi
bobot
penghubung
(disebut
metode
18
Gambar 2.2 Model Matematika yang Merupakan Penyederhanaan dari Struktur Sel Saraf yang Sebenarnya
Y menerima input dari neuron X1, X2 dan X3 dengan bobot hubungan masingmasing adalah W1, W2 dan W3. ketiga impuls neuron yang ada dijumlahkan net = X1W1 + X2W2 + X3W3 Besarnya impuls yang diterima oleh Y mengikuti fungsi aktivasi Y = f(net). Apabila nilai fungsi aktivasi cukup kuat, maka sinyal akan diteruskan. Nilai fungsi aktivasi (keluaran model jaringan) juga dapat dipakai sebagai dasar untuk merubah bobot. Adapun kompunen-komponen yang digunakan dalam jaringan syaraf tiruan, diantaranya : 1.
Bias dan Threshold Kadang-kadang dalam jaringan ditambahkan sebuah unit masukan yang nilainya selalu 1. Unit yang demikian itu disebut bias. Bias dapat dipandang sebagai sebuah input yang nilainya 1. Bias berfungsi merubah nilai threshold menjadi 0.
2.
Fungsi aktivasi Pada setiap layer pada jaringan syaraf tiruan terdapat fungsi aktivasi. fungsi ini adalah fungsi umum yang akan digunakan untuk membawa input menuju
19
output yang diinginkan. Fungsi aktivasi inilah yang akan menentukan besarnya bobot.dalam backpropagation, fungsi aktivasi yang dipakai harus memenuhi beberapa syarat yaitu : kontinu, terdiferensial dengan mudah dan merupakan fungsi yang tidak turun. Salah satu fungsi yang memenuhi ketga syarat tersebut sehingga sering dipakai adalah : a. Fungsi sigmoid biner, memiliki range (0,1)
.................................. (2.1) dengan turunan ............................... (2.2)
Gambar 2.3 Grafik Fungsi Sigmoid Biner
b. Fungsi sigmoid bipolar, memiliki range (-1,1)
.................................... (2.3) dengan turunan
................................... (2.4)
20
Gambar 2.4 Grafik Fungsi Sigmoid Bipolar
3.
Momentum Momentum nilai yang dapa merubah bobot yang didasarkan atas arah gradien pola terakhir dan pola sebelumnya. Penambahan momentum dimaksudkan untuk menghindari perubahan bobot yang mencolok akibat adanya data yang sangat berbeda dengan yang lain.
2.3.4 Backpropagation Kelemahan JST yang terdiri dari layer tunggal membuat perkembangan JST menjadi terhenti pada sekitar tahun 1970-an. Penemuan backpropagation yang terdiri dari beberapa layer membuka kembali cakrawala. JST dengan layer tunggal memiliki keterbatasan dalam pengenalan pola. Kelemahan ini bisa ditanggulangi dengan menambahkan satu atau beberapa layer tersembunyi diantara layer masukan dan layer keluaran. Berikut adalah gambar arsitektur backpropagation :
21
Gambar 2.5 Arsitektur Backpropagation
Algoritma backpropagation Langkah 0 : Inisialisasi semua bobot dengan bilangan acak kecil Langkah 1 : Jika kondisi penghentian belum terpenuhi, lakukan langkah 2-9 Langkah 2 : Untuk setiap pasang data pelatihan, lakukan langkah 3-8 Fase I : Propagasi maju (feedfordward) Langkah 3 : Tiap unit masukan menerima sinyal dan meneruskannya ke unit tersembunyi di atasnya. Langkah 4 : Hitung semua keluaran di unit tersembunyi (zj, j = 1, 2, ..., p)
.................................... (2.5) ................................................. (2.6) Langkah 5 : Hitung semua keluaran jaringan di unit yk(k = 1, 2, ..., m)
................................... (2.7)
22
............................................... (2.8) Fase II : Propagasi mundur Langkah 6 : Hitung faktor δ unit keluaran berdasarkan kesalahan di setiap unit keluaran yk (k = 1, 2, ..., m) ................................ (2.9) Δk merupakan unit kesalahan yang akan dipakai dalam perubahan bobot layar dibawahnya (langkah 7) Hitung suku perubahan bobot wjk dan bias w0k ............................................ (2.10) ............................................... (2.11) Langkah 7 : Hitung faktor δ unit tersembunyi berdasarkan kesalahan di setiap unit tersembunyi zj (j = 1, 2, ..., p)
......................................... (2.12) Faktor δ unit tersembunyi :
................................... (2.13) Hitung suku perubahan bobot vij dan bias v0j ............................................... (2.14) .................................................. (2.15) Fase III : Perubahan bobot Langkah 8 : Hitung semua perubahan bobot Perubahan bobot garis yang menuju ke unit keluaran : .......................... (2.16) Perubahan bobot garis yang menuju ke unit tersembunyi : ......................... (2.17)
23
Langkah 9 : Test kondisi penghentian.
2.4 Rekayasa Perangkat Lunak 2.4.1 Model Proses Perangkat Lunak Merupakan deskripsi yang disederhanakan dari proses perangkat lunak di presentasikan dengan sudut pandang tertentu. Bisa mencakup kegiatan yang merupakan bagian dari proses perangkat lunak, produk perangkat lunak, dan peran orang yang terlibat pada rekayasa perangkat lunak (Perekayasa PL). Model yang dipakai dalam pengembangan aplikasi ini adalah Waterfall Model. Nama model ini sebenarnya adalah “Linear Sequential Model”. Model ini sering disebut dengan “classic life cycle” atau model waterfall. Model ini adalah model yang muncul pertama kali yaitu sekitar tahun 1970 sehingga sering dianggap kuno, tetapi merupakan model yang paling banyak dipakai didalam Software Engineering (SE). Model ini melakukan pendekatan secara sistematis dan urut mulai dari level kebutuhan sistem lalu menuju ke tahap analisis, desain, coding, testing / verification, dan maintenance. Disebut dengan waterfall karena tahap demi tahap yang dilalui harus menunggu selesainya tahap sebelumnya dan berjalan berurutan. Sebagai contoh tahap desain harus menunggu selesainya tahap sebelumnya yaitu tahap requirement. Secara umum tahapan pada model waterfall dapat dilihat pada gambar berikut :
24
Gambar 2.6 Model Waterfall Gambar di atas adalah tahapan umum dari model proses ini. Akan tetapi Roger S. Pressman memecah model ini menjadi 6 tahapan meskipun secara garis besar sama dengan tahapan-tahapan model waterfall pada umumnya. Berikut adalah penjelasan dari tahap-tahap yang dilakukan di dalam model ini :
1. System / Information Engineering and Modeling. Permodelan ini diawali dengan mencari kebutuhan dari keseluruhan sistem yang akan diaplikasikan ke dalam bentuk software. Hal ini sangat penting, mengingat software harus dapat berinteraksi dengan elemen-elemen yang lain seperti hardware, database, dsb. Tahap ini sering disebut dengan Project Definition. 2. Software Requirements Analysis. Proses pencarian kebutuhan diintensifkan dan difokuskan pada software. Untuk mengetahui sifat dari program yang akan dibuat, maka para software engineer harus mengerti tentang domain informasi dari software, misalnya fungsi yang dibutuhkan, user interface, dsb. Dari 2 aktivitas tersebut (pencarian kebutuhan sistem dan software) harus didokumentasikan dan ditunjukkan kepada pelanggan.
25
3. Design. Proses ini digunakan untuk mengubah kebutuhan-kebutuhan diatas menjadi representasi ke dalam bentuk “blueprint” software sebelum coding dimulai. Desain harus dapat mengimplementasikan kebutuhan yang telah disebutkan pada tahap sebelumnya. Seperti 2 aktivitas sebelumnya, maka proses ini juga harus didokumentasikan sebagai konfigurasi dari software. 4. Coding. Untuk dapat dimengerti oleh mesin, dalam hal ini adalah komputer, maka desain tadi harus diubah bentuknya menjadi bentuk yang dapat dimengerti oleh mesin, yaitu ke dalam bahasa pemrograman melalui proses coding. Tahap ini merupakan implementasi dari tahap design yang secara teknis nantinya dikerjakan oleh programmer. 5. Testing / Verification. Sesuatu yang dibuat haruslah diujicobakan. Demikian juga dengan software. Semua fungsi-fungsi software harus diujicobakan, agar software bebas dari error, dan hasilnya harus benar-benar sesuai dengan kebutuhan yang sudah didefinisikan sebelumnya. 6. Maintenance. Pemeliharaan suatu software diperlukan, termasuk di dalamnya adalah pengembangan, karena software yang dibuat tidak selamanya hanya seperti itu. Ketika dijalankan mungkin saja masih ada errors kecil yang tidak ditemukan sebelumnya, atau ada penambahan fitur-fitur yang belum ada pada software tersebut. Pengembangan diperlukan ketika adanya perubahan dari eksternal perusahaan seperti ketika ada pergantian sistem operasi, atau perangkat lainnya.
26
2.4.1 Structure Chart Fungsi
dari
structure
chart
digunakan
untuk
mendefinisikan
dan
mengilustrasikan dari sistem secara berjenjang dalam bentuk modul dan sub modul. Structure chart juga menunjukkan hubungan elemen data dan elemen kontrol serta hubungan antar modulnya, sehingga structure chart dapat memberikan penjelasan yang lengkap dari sistem dipandang dari elemen data, elemen kontrol, modul dan hubungan antar modulnya. Dalam menggambarkan struktur organisasi sistem secara berjenjang digunakan beberapa macam simbol. Simbol-simbol ini merupakan simbol-simbol standar yang paling banyak digunakan.
2.5 Unified Modeling Language (UML) 2.5.1 Pengertian UML Unified Modeling Language (UML) adalah keluarga notasi grafis yang didukung oleh meta model tunggal, yang nenbantu pendeskripsian dan desain sistem perangkat lunak, khususya sistem yang dibangun menggunakan pemrograman berorientasi objek. Definisi ini merupakan merupakn definisi yang sederhana. Pada kenyataannya, pendapat orang-orang tentang UML berbeda satu sama lain. Hal ini dikarenakan oleh sejarahnya sendiri dan oleh perbedaan persepsi tentang apa yang membuat sebuah proses rancang bangun perangkat lunak efektif. Bahasa pemodelan grafis telah ada di industri perangkat lunak sejak lama. Pemicu utama dibalik semuanya adalah bahwa bahasa pemrograman berada pada
27
tingkat abstraksi yang tidak terlalu tinggi untuk memfasilitasi diskusi tentang desain. Meskipun faktanya adalah bahasa pemodelan grafis telah ada sejak lama, masih terdapat banya pertentangan di dalam industri perangkat lunak tentang perannya. Pertentangan-pertentangan ini berpengaruh langsung pada bagaimana orang-orang memandang peran UML itu sendiri. UML merupakan standard yang relatif terbuka yang dikontrol oleh Object Management Group (OMG), sebuah konsorsium terbuka yang terdiri dari banyak perusahaan. OMG dibentuk untuk membuat standard-standar yang mendukung interoperabilitas, khususnya interoperabilitas sistem berorientasi objek. OMG mungkin lebih dikenal dengan standar-standar CORBA (Common Object Request Broker Arcitecture). UML lahir dari penggabungan banyak bahasa pemodelan grafis berorientasi objek yang berkembang pesat pada akhir 1980-an dan awal tahun 1990-an. Sejak kehadirannya pada tahun 1997, UML menghancurkan menara Babel tersebut menjadi sejarah. 2.5.2 Use Case Diagram 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.
28
Use case diagram dapat sangat membantu bila kita sedang menyusun requirement sebuah sistem, mengkomunikasikan rancangan dengan klien, dan merancang test case untuk semua feature yang ada pada sistem. 2.5.3 Class Diagram 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 : 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 Hubungan Antar Class :
29
1. Asosiasi, yaitu 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 query antar class. 2. Agregasi, yaitu hubungan yang menyatakan bagian (“terdiri atas..”). 3. Pewarisan, yaitu hubungan hirarkis antar class. Class dapat diturunkan dari class lain dan mewarisi semua atribut dan metoda class asalnya dan menambahkan fungsionalitas baru, sehingga ia disebut anak dari class yang diwarisinya. Kebalikan dari pewarisan adalah generalisasi. 4. Hubungan dinamis, yaitu rangkaian pesan (message) yang di-passing dari satu class kepada class lain. Hubungan dinamis dapat digambarkan dengan menggunakan sequence diagram yang akan dijelaskan kemudian.
Gambar 2.7 Contoh Class Diagram
2.5.4 Activity Diagram Activity diagrams menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang
30
mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi. Activity diagram merupakan state diagram khusus, di mana sebagian besar state adalah action dan sebagian besar transisi di-trigger oleh selesainya state sebelumnya (internal processing). Oleh karena itu activity diagram tidak menggambarkan behaviour internal sebuah sistem (dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level atas secara umum. 2.5.5 Sequence Diagram 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 atar 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.
2.6 Delphi Delphi merupakan sebuah peranti pengembangan aplikasi berbasis Windows yang dikeluarkan oleh Borland International. Perangkat lunak ini sangat terkenal di lingkungan pengembang aplikasi karena mudah untuk dipelajari dan
31
dapat digunakan untuk menangani berbagai hal dari aplikasi matematika, permainan hingga database. Pada penanganan database, Delphi menyediakan fasilitas yang memungkinkan pemrogram dapat berinteraksi dengan database seperti dBase, Paradox, Oracle, MySQL dan Access. Umumnya delphi lebih banyak digunakan untuk pengembangan aplikasi desktop dan enterprise berbasis database, tapi sebagai perangkat pengembangan yang bersifat general-purpose ia juga mampu dan digunakan dalam berbagai jenis proyek pengembangan software. Ia juga yang dikenal sebagai salah satu yang membawa istilah RAD tool, kepanjangan dari Rapid Application Development, saat dirilis tahun 1995 untuk windows 16-bit. Delphi 2, dirilis setahun kemudian, mendukung lingkungan windows 32-bit, dan versi c++, C++Builder, dirilis beberapa tahun kemudian. Pada tahun 2001 sebuah versi linux yang dikenal sebagai Kylix tersedia. Dengan satu rilis baru setiap tahunnya, pada tahun 2002 dukungan untuk Linux (melalui Kylix dan CLX component library) ditambahkan dan tahun 2003 .NET mulai didukung dengan munculnya Delphi.Net (Delphi 8). Delphi membawa keuntungan-keuntungan berikut: 1.
Dapat mengkompilasi menjadi single executable, memudahkan distribusi dan meminimalisir masalah yang terkait dengan versioning .
2.
Banyaknya dukungan dari pihak ketiga terhadap VCL (biasanya tersedia berikut source code-nya) ataupun tools pendukung lainnya (dokumentasi, tool debugging) .
3.
Optimasi kompiler yang cukup cepat .
4.
Mendukung multiple platform dari source code yang sama.