bab 2 landasan teori - thesis.binus.ac.idthesis.binus.ac.id/doc/bab2/2007-2-00060-if_bab 2.pdf10...
TRANSCRIPT
9
Bab 2
LANDASAN TEORI
2.1 Plat Nomor Kendaraan Bermotor
Plat nomor adalah salah satu jenis identifikasi kendaraan bermotor
(http://id.wikipedia.org/wiki/Plat_nomor). Plat nomor juga disebut plat registrasi
kendaraan, atau di Amerika Serikat dikenal sebagai plat izin (license plate).
Bentuknya berupa potongan plat logam atau plastik yang dipasang pada
kendaraan bermotor sebagai identifikasi resmi. Biasanya plat nomor jumlahnya
sepasang, untuk dipasang di depan dan belakang kendaraan. Namun ada jurisdiksi
tertentu atau jenis kendaraan tertentu yang hanya membutuhkan satu plat nomor,
biasanya untuk dipasang di bagian belakang. Plat nomor memiliki nomor seri
yakni susunan huruf dan angka yang dikhususkan bagi kendaraan tersebut. Nomor
ini di Indonesia disebut nomor polisi, dan biasa dipadukan dengan informasi lain
mengenai kendaraan bersangkutan, seperti warna, merk, model, tahun pembuatan,
nomor identifikasi kendaraan dan tentu saja nama dan alamat pemilikinya. Semua
data ini juga tertera dalam Surat Tanda Nomor Kendaraan Bermotor atau STNK
yang merupakan surat bukti bahwa nomor polisi itu memang ditetapkan bagi
kendaraan tersebut.
Karena wujudnya yang spesifik, plat nomor juga digunakan sebagai
identifikasi kendaraan oleh banyak lembaga, seperti kepolisian, perusahaan
asuransi mobil, bengkel, tempat parkir, dan juga armada kendaraan bermotor. Di
beberapa wilayah jurisdiksi, plat nomor juga dipakai sebagai bukti bahwa
9
10
kendaraan tersebut sudah memiliki 'izin' untuk beroperasi di jalan raya umum,
atau juga sebagai bukti pembayaran pajak kendaraan bermotor.
Namun di beberapa negara, seperti Inggris misalnya, mobil selalu
menggunakan plat nomor yang sama sejak saat pertama dijual hingga akhir masa
operasinya, dengan pertimbangan semua informasi yang ada di plat nomor dan
kendaraan bersangkutan juga tidak pernah berubah.
Sementara di tempat lain, seperti Amerika Serikat, plat nomor perlu
diganti secara berkala yakni saat habis masa berlakunya, atau karena dijual atau
berpindah tangan. Ini yang dikenal dengan kebijakan "plate-to-owner" atau plat
nomor yang terkait dengan kepemilikan. Artinya, ketika mobil dijual, penjual
harus melepas plat nomornya sementara pembeli harus meminta plat nomor baru
dari pihak berwenang sesuai wilayah tempat tinggalnya dan mendaftarkan
kembali atas namanya (balik nama). Bila orang yang menjual mobil tersebut
membeli mobil baru, ia dapat meminta agar plat nomornya yang lama dipasang di
mobilnya yang baru. Bila tidak, ia harus mengembalikan plat nomor ke pihak
berwenang, menghancurkannya, atau menyimpannya sebagai barang kenangan.
Di banyak negara, plat nomor dikeluarkan oleh badan pemerintahan
nasional, kecuali di Kanada, Mexico, Australia, Jerman, Pakistan, dan Amerika
Serikat, karena plat nomor diterbitkan oleh lembaga pemerintah provinsi, wilayah,
atau negara bagian.
2.1.1 Sejarah Plat Nomor Kendaraan Bermotor
Plat nomor usianya hampir sama dengan mobil, dan muncul saat periode
awal transisi dari kendaraan berkuda yakni antara 1890 hingga 1910. Negara
11
bagian New York di Amerika Serikat mengharuskan penggunaan plat nomor
sejak tahun 1901. Awalnya plat nomor tidak dikeluarkan pemerintah, dan di
banyak wilayah Amerika, para para pengendara diharuskan membuat plat nomor
sendiri. Negara bagian Massachusetts dan West Virginia adalah yang pertama
menerbitkan plat nomor pada tahun 1903. Plat nomor awal dibuat dari porselin
yang dibakar menjadi besi, atau keramik biasa yang tidak dibakar, sehingga
mudah pecah dan tidak praktis. Bahan-bahan plat nomor yang kemudian termasuk
karton, kulit, plastik, bahkan juga tembaga dan kedele.
Plat nomor awal memiliki bermacam bentuk dan ukuran, sehingga kalau
dipindahkan antar kendaraan harus dibuat lobang baru untuk memasukkan baut ke
bumper. Standarisasi plat nomor baru dimulai tahun 1957 saat pabrik mobil
sepakat dengan berbagai pemerintahan dan organisasi standar internasional.
Meski masih ada variasi lokal, plat nomor umumnya mengikuti tiga standar dunia:
• pertama yang dipakai di negara-negara di belahan Barat bumi, yakni
berukuran 15 kali 30 sentimeter (6 x 12 inci)
• yang kedua memiliki standar Uni Eropa, yakni 11 x 52 sentimeter
• bentuk ketiga dipakai di Australia and banyak negara Asia-Pasifik, yakni
lebih panjang dibanding model negara belahan Barat bumi, namun lebih
tinggi dari plat Uni Eropa.
2.1.2 Nomor Polisi
Nomor polisi adalah nomor registrasi yang diberikan oleh pihak
Kepolisian bagi kendaraan bermotor. Nomor ini tertera pada plat nomor dan juga
dalam Surat Tanda Nomor Kendaraan Bermotor atau yang dikenal sebagai STNK.
12
Sistem penomoran kendaraan di Indonesia merupakan warisan zaman
penjajahan Belanda jadi masih menggunakan kode wilayah yang didasarkan pada
pembagian wilayah Karesidenan, dan bukan sesuai Kabupaten atau Propinsi.
Umumnya penomoran menggunakan pola AB 1234 CD, yakni satu atau dua huruf
pertama merupakan kode wilayah, kemudian angka mulai dari 1 hingga 9999
merupakan nomor seri, diakhiri dengan satu atau dua huruf seri yang bisa juga
merupakan kode wilayah yang lebih kecil atau identifikasi kendaraan.
2.2 Computer Vision
Computer vision (Machine vision) adalah ilmu pengetahuan yang
mengembangkan teori-teori dan algoritma dimana informasi yang berguna
mengenai dunia dapat secara otomatis diekstrasi dan dianalisis dari sebuah atau
sekumpulan citra, atau citra yang berturutan dari sebuah komputasi yang dibuat
oleh komputer (http://www.personal.umd.umich.edu/~mpastore/sights.html).
Computer Vision mempunyai tujuan utama yaitu untuk membuat keputusan yang
berguna tentang objek fisik berdasarkan image yang didapat dari sensor.
Computer Vision ingin membangun sebuah mesin pandai yang dapat melihat.
Tentunya hal ini bukanlah hal mustahil. Ada berbagai contoh dari aplikasi
Computer Vision seperti Human Computer Interaction (HCI), Object
Identification, Segmentation dan Recognition.
Dalam pengambilan keputusan tentang objek nyata, ternyata selalu
dibutuhkan untuk membangun beberapa deskripsi atau model dari objek-objek
tersebut dari gambar yang ada. Karena ini, banyak ahli akan berkata bahwa tujuan
13
dari computer vision adalah konstruksi dari deskripsi pemandangan yang diambil
dari gambar yang diperoleh.
2.3 Pengolahan Citra (Image Processing)
Pengertian sederhana dari image processing adalah manipulasi dan
analisis suatu informasi gambar oleh komputer. Yang dimaksud dengan informasi
gambar disini adalah gambar visual dalam dua dimensi. Segala operasi untuk
memperbaiki, analisa atau pengubahan suatu gambar disebut image processing.
Konsep dasar dari sistem image processing diambil dari kemampuan indera
penglihatan manusia yang selanjutnya dihubungkan dengan kemampuan otak
manusia. Dalam sejarahnya, image processing telah diaplikasikan dalam berbagai
bentuk, Dengan tingkat kesuksesan yang cukup besar. Seperti berbagai cabang
ilmu lainnya, image processing menyangkut pula berbagai gabungan cabang-
cabang ilmu. Seperti danataranya optik, elektronik, matematika, fotografi, dan
teknologi komputer.
Berbagai bidang telah banyak menggunakan aplikasi dari image
processing baik di bidang komersial, industri dan medik. Bahkan bidang militer
telah menggunakan perkembangan dunia digital image processing ini. Pada
umumnya, objektif dari image processing adalah mentransformasikan atau
menganalisis suatu gambar segingga informasi baru tentang gambar dibuat lebih
jelas.
2.3.1 Citra Digital
Istilah “Citra Monokrom” (monochrome image) atau “citra” saja (image)
merujuk kepada fungsi dua dimensi dari intensitas kecerahan f(x,y), dimana x dan
14
y menunjukkan posisi koordinat dan nilai f pada posisi manapun menunjukkan
kecerahan gambar pada posisi tersebut. Sedangkan, sebuah citra digital (digital
image) adalah sebuah citra dengan fungsi f(x,y) yang nilai kecerahan maupun
posisi koordinatnya telah didiskritkan, sehingga nilainya bukan merupakan nilai
yang tak berhingga, melainkan berada didalam jangkauan tertentu. Gambar digital
dapat direpresentasikan sebagai sebuah matriks, yang baris dan kolomnya
merepresentasikan sebuah posisi dari gambar tersebut, dan nilai dari posisi yang
bersangkutan merupakan tingkat kecerahan dari posisi tersebut di citra. Masing –
masing dari array digital tersebut disebut image elements, picture elements, pixels
atau pels.
2.3.2 Konversi Citra Abu–abu Menjadi Citra Biner (Thresholding / Binerisasi)
Citra pada umumnya terdiri dari pixel – pixel dengan berbagai variasi nilai
RGB (komponen warna merah/red, hijau/green, dan biru/blue). Citra jenis ini
disebut sebagai citra berwarna. Citra abu – abu (grayscale) adalah citra dengan
satu macam warna yakni abu – abu, dengan variasi gradiasi keabuannya.
Tresholding atau binerisasi adalah proses konversi citra abu – abu menjadi citra
hitam putih. Proses ini disebut juga binerisasi citra (image binarization). Proses
konversi citra abu – abu menjadi citra hitam putih ini dilakukan dengan
menggunakan nilai ambang (threshold value) tertentu. Kemudian berdasarkan
nilai ambang ini, maka ditentukan apakah suatu piksel akan diubah menjadi
berwarna putih (dengan intensitas pencahayaan tertinggi yakni 0). Jika nilai
keabuan suatu piksel lebih besar daripada nilai ambang, piksel akan diubah
menjadi warna putih. Sebaliknya, jika nilainya lebih kecil daripada nilai ambang,
15
piksel akan diubah menjadi berwarna hitam. Proses ini membantu menghilangkan
noise pada citra. Tidak terdapat ketentuan pasti mengenai berapa batas nilai
ambang. Batas nilai ambang ini dapat diubah – ubah sesuai dengan kebutuhan kita
agar proses konversi citra abu – abu menjadi citra hitam putih menghasilkan citra
yang sesuai dengan yang diinginkan.
2.3.3 Penyekalaan (Scaling)
Berdasarkan pandangan Hearn dan baker (1986) penyekalaan merupakan
proses pengolahan citra yang bertujuan untuk mengubah ukuran (dimensi) dari
suatu citra. Perubahan citra yang terjadi akibat proses penyekalaan akan
menyebabkan citra berubah menjadi citra baru yang ukurannya sesuai dengan
skala perubahan yang ditetapkan, umumnya dikenal dengan sebutan faktor skala.
Terdapat 3 macam perubahan yang dapat terjadi akibat proses penyekalaan, yaitu:
1. Perubahan lebar citra, terjadi ketika citra hanya dikalikan oleh faktor skala
dengan arah sumbu x saja.
2. Perubahan tinggi citra, terjadi ketika citra hanya dikalikan oleh faktor skala
dengan arah sumbu y saja.
3. Perubahan lebar dan tinggi citra, hal ini terjadi ketika citra dikalikan oleh
faktor skala baik ke arah sumbu x maupun ke arah sumbu y.
2.3.4 Pemotongan (Cropping)
Di dalam bahasa Inggris pemotongan selain disebut sebagai cropping juga
dapat disebut sebagai trimming. Definisi pemotongan
(http://desktoppub.about.com/library/glossary/bldef-crop.htm) adalah suatu
kegiatan memotong bagian yang tidak perlu dari sebuah citra. Pemotongan dapat
16
dilakukan dengan menentukan kordinat awal, lebar, dan tinggi dari citra yang
ingin kita potong. Pemotongan akan menciptakan suatu citra baru yang berasal
dari citra asalnya. Pemotongan juga menyebabkan ukuran dari suatu citra berubah
lebih kecil, entah lebarnya saja, tingginya saja, atau bahkan keduanya.
2.4 Ekstraksi Fitur
Menurut Devijver dan Kittler (1982,p12) ekstraksi fitur merupakan sebuah
proses mengekstrak informasi – informasi yang paling relevan untuk
dikategorikan dengan meminimalkan variasi antar pola dalam suatu kategori dan
sekaligus memaksimalkan variasi antar pola dalam suatu kategori data – data
mentah yang tersedia.
Dengan demikian tujuan utama dari dilakukannya ekstraksi fitur pada citra
adalah untuk mengurangi jumlah data dari suatu citra dengan tanpa
menghilangkan fitur – fitur dan properti yang penting dari citra tersebut. Untuk
mendasari pemilihan fitur, hal yang utama harus dilakukan adalah mencari bagian
yang unik dari suatu citra sehingga dapat benar-benar mendefinisikan suatu
bentuk dari karakter tersebut.
Ekstraksi fitur yang baik dapat mengekstrak hanya data yang penting saja
dari sebuah citra tanpa memasukkan data lain yang tidak penting. Dalam
pengekstraksian fitur didalam topik skripsi ini digunakan nilai rata-rata piksel
hitam dengan piksel keseluruhan didalam suatu bagian dari citra yang utuh,
dimana sebelumnya sebuah citra akan dibagi menjadi 5x5 atau 25 bagian dan
dihitung nilai rata-rata disetiap bagiannya.
17
2.5 Pengenalan Pola (Pattern Recognition)
Pattern Recognition yang berarti pengenalan pola, dimana dalam hal ini
komputer dapat mengetahui atau mengenali suatu bentuk pola (pattern). Ada dua
macam pola, yaitu : abstrak dan konkrit. Contoh dari pola abstrak adalah ide – ide
dan argumen – argumen, conceptual recognition yang digunakan dalam artificial
intelligence, sedangkan contoh pola yang termasuk pola konkrit adalah karakter,
simbol, gambar, gambar-gambar dari biomedical, objek tiga dimensi, tanda
tangan, suara, dan lain-lain.
Dewasa ini orang – orang lebih banyak memfokuskan pada dua macam
masalah pengenalan pola :
1. Sistem mekanisme dari pengenalan pola yang dimiliki oleh makhluk hidup,
seperti phychologists, physiologists, dan semua yang mempengaruhi
bagaimana makhluk hidup menerima suatu objek.
2. Perkembangan dari teori dan teknik untuk implementasi komputer. Masalah
ini yang banyak memberikan tantangan bagi para engineer dan para ahli
matematika menerima suatu objek. Tidak ada satupun teori yang dapat
diaplikasikan untuk semua masalah pengenalan pola. Kebanyakan dari teknik
adalah problem oriented.
Gambar 2.1 Tahapan dalam pengenalan pola
18
Ada 3 fase dalam pengenalan pola :
1. Data acquisition, yaitu analog yang sudah dikumpulkan dilewatkan ke
transducer dan dikonversi menjadi format digital untuk diproses oleh
komputer. Pada tahap ini physical variables dikonversikan menjadi sebuah
data set oleh electric signal.
2. Data processing, input fase ini adalah data set dari hasil data acquisition,
kemudian dibuat menjadi sebuah kelompok karakteristik set sebagai output.
3. Decision classification, sebagai pengklasifikasian dalam bentuk decision
function set. Dengan menggunakan set ini, sebuah objek dapat
diklasifikasikan.
Menurut Finlay (1991) ada 2 metode untuk pengenalan pola yang telah
diselidiki, yaitu :
1. Neural Based Systems, yang disebut ADAM (Advanced Distributed
Associative Memory).
2. Inductive ID3_Based Classifier, yang disebut Class
Seperti yang sudah diterangkan dalam bab 1 bahwa untuk pengenalan pola
pada skripsi ini dipakai metode yang pertama, yaitu sistem yang berdasarkan
neural network.
2.6 Jaringan Saraf Tiruan (Artificial Neural Network)
Neural berasal dari kata neuron yang artinya saraf, seperti sistem saraf
pada otak manusia. Neural network adalah sistem jaringan yang saling terhubung
serta memiliki kemampuan bekerja seperti sistem saraf pada otak manusia.
19
Model Artificial Neural Network (ANN) dipakai untuk membuat komputer
yang memiliki arsitektur seperti otak maanusia karena ide dasar dari model ANN
ini terinspirasi oleh cara kerja otak manusia yang berupa jaringan saraf. Neural
network merupakan jaringan elemen-elemen parallel yang saling terhubung dan
dibuat dengan karakteristik tertentu. Secara, teknis, ANN mempunyai node
characteristics, topology (struktur rangkaian node – node) dan learning rules
tertentu. ANN sudah banyak diterapkan pada berbagai macam aplikasi, seperti
pengenalan pola, optimasi, kompresi data dan sebagainya.
2.6.1 Jaringan Saraf Manusia
Walaupun cara kerja otak manusia lebih lambat daripada komputer dan
tidak dapat mengingat banyak data atau kejadian secara pasti, otak manusia tetap
dapat melakukan tugas-tugas tertentu yang tidak dapat dilakukan oleh komputer.
Sel-sel penyusun sistem saraf disebut badan neuron. Badan neuron yang
terdiri dari plasma dan inti sel ini terhubung oleh serabut penghubung yang
disebut neurit atau axon. Impuls saraf dibangkitkan oleh serabut yang bercabang
pendek, yaitu dendrit. Pertemuan ujung-ujung saraf membentuk sinapsis yang
terhubung akibat titik temu antara terminal axon salah satu neuron dengan neuron
lainnya. Otak manusia mengandung kurang lebih 1011 atau 100 milyar neuron dan
terdapat 1.000 sampai dengan 10.000 sambungan sinapsis dalam satu neuron
yang terkoneksi ke neuron-neuron lainnya sehingga akan memberikan 1015
sinapsis pada otak manusia (Kosko, 1992, p13).
20
Gambar 2.2 Sistem Saraf Otak Manusia
Secara garis besar, cara kerja neuron dapat digambarkan sebagai berikut :
sinyal masukan atau impuls yang diterima oleh suatu neuron akan ditransmisikan
secara kimiawi melalui sinapsis menuju dendrit. Dendrit membawa sinyal ini ke
soma yang terdapat pada badan sel. Soma menghitung jumlah dari sinyal-sinyal
tersebut. Jika jumlah sinyal lebih tinggi dari kemampuan sel dari axon maka
neuron akan memberikan respon. Respon tersebut dikirim oleh axon ke sinapsis
selanjutnya (Ojala, 1994, p11-12).
2.6.2 Perkembangan Artificial Neural Netwok (ANN)
Menurut Hinton dan Anderson (1989) model ANN mulai dikembangkan
sejak tahun 1943 dengan penemuan Perceptron oleh MCCulloch dan Pitts. Pada
tahun 1969, Minsky dan Papert membuat buku tentang Perceptron yang memuat
kelemahan dari Perceptron. Salah satunya adalah tidak dapat melaksanakan
perintah XOR dan menghitung parity bit. Sehingga penelitian terhadap neural
network sempat tidak diterima sampai pada tahun 1982. ketika John Hopfield
21
mempublikasikan paper-nya yang berjudul Neural Network and Physical Systems
with Emergent Collective Computational Abilities.
Hopfield membuat suatu kontribusi yang penting untuk aplikasi pada
sistem yang berkembang saat itu. Hopfield menggunakan fungsi energi untuk
menganalisa dan mengontrol kerja pada neural network yang dinamik. Model
yang dikembangkan oleh Hopfield ini dikenal sebagai Hopfield Net atau Hopfield
Model.
Kebangkitan ANN terjadi pada tahun 1987 dengan diselenggarakannya
Conference on Neural Networks di San Diego, USA. Sejak saat itulah mulai
bermunculan model-model ANN seperti Backpropagation, Bidirectional
Associative Memory (BAM), Self Organizing Maps (SOM), dan lain-lain. BAM
pertama kali dikembangkan oleh Kosko (Kosko, 1988).
2.6.3 Aspek-aspek dari ANN
Sistem neural network mempunyai 3 bagian penting, yaitu:
1. Adaptivity, ialah kemampuan untuk mengolah transformasi secara berarti
sesuai dengan aturan adaptive yang paling cocok.
2. Fault-Tolerance, ialah kemampuan untuk bekerja secara sempurna dengan
adanya noise yang dihasilkan oleh kesalahan hardware atau input. Untuk
Kasus Pattern Recognition, kesalahan yang ada dianggap sebagai pengenalan
pola yang tidak sempurna.
3. Parallel processing, berasosiasi dengan Neural Network, dikarenakan parallel
processing memiliki kemampuan untuk mengoperasikan sistem distribusi
secara murni.
22
Menurut Rumelhart dan McClelland (1986) ada beberapa aspek utama
dari ANN yang harus diperhatikan, yaitu:
1. Himpunan Unit Pemroses
Unit-unit pemroses ini berupa neuron-neuron buatan, pertama kali
dikemukakan oleh McCulloch dan Pitts pada tahun 1940 yang
mendeskripsikan neuron tersebut dengan model matematika:
⎟⎠
⎞⎜⎝
⎛= ∑=
N
i
WiiXgy0
(2.1)
Dimana y adalah keluaran dari sebuah neuron, N adalah jumlah
masukan dari xi adalah variable masukan. Wi adalah bobot sinaptik dan
fungsi g adalah fungsi non linear (Ojala, 1994, p113).
Gambar 2.3 Contoh Neuron
Masing-masing unit pemroses menerima masukan dari sumber luar
atau dari unit lain dan menghitung suatu sinyal keluaran yang kemudian
disebarkan ke unit-unit yang lain. Tugas lain dari unit pemroses ini adalah
menyesuaikan bobot. Hal tersebut berlangsung secara paralel dimana
banyak unit melakukan perhitungan pada saat yang bersamaan.
23
Ada tiga jenis unit pemroses, yaitu:
• Input Unit, data masukkan untuk proses pembelajaran dan
pengenalan suatu objek.
• Output Unit, keluaran dari hasil pengenalan objek.
• Hidden Unit, tempat input unit dan output unit berada dalam suatu
jaringan.
Gambar 2.4 Model Umum Unit Pemroses
2. Keadaan Aktivasi (State Of Activation)
Keadaan dari jaringan saat t direpresentasikan oleh sebuah vektor
yang terdiri dari N bilangan nyata a(t). Elemen-elemen dari vektor tersebut
merupakan nilai aktivasi dari sebuah unit. Nilai aktivasi dari unit ui pada
saat t adalah ai(t) = [a1(t) a2(t) a3(t) .... aN(t)]. Nilai ini dapat berupa
biner (0,1) atau bipolar (-1,1). Vektor tersebut disebut sebagai short term
memory dari jaringan.
3. Fungsi Keluaran (Output Function)
24
fi(ai(t)) adalah fungsi keluaran untuk unit ke-i yang memetakan
keadaan aktivasi pada saat t, ai(t) ke sinyal keluaran outi(t). Ada tiga
kemungkinan dari fungsi keluaran ini, yaitu:
• Fungsi linear atau semi-linear:
Outi = gain * ai, gain adalah sebuah nilai
• Fungsi threshold (sgn):
If ai>threshold then outi = 1 else outi = 0
• Fungsi sigmoid:
Outi = 1/(1+ exp (-a1))
Gambar 2.5 Fungsi Keluaran / Aktivasi
4. Pola penyebaran (Pattern of Connectivity)
Pola hubungan dari seluruh jaringan dengan N unit dapat
direpresentasikan oleh matriks bobot W dengan dimensi N X N. Dalam
matriks bobot inilah knowledge disimpan dalam jaringan. Oleh karena itu,
matris W dapat disebut sebagai long-term memory dari jaringan.
Berdasarkan pola jaringan atau topologi jaringan, neural network dapat
diklasifikasikan menjadi feedforward network dan feedback network. Pada
feedforward network, unit-unit pemroses diatur dalam lapisan-lapisan
25
(layers) yang menghubungkan unit-unit pada layer selanjutnya secara
berurutan. Feedforward mengimplementasikan pemetaan statis dari
himpunan unit masukan ke himpunan unit keluaran. Sedangkan pemetaan
pada feedback adalah nonlinear dynamical system dan terdapat putaran
balik antara unit keluaran dengan unit masukan.
Gambar 2.6 FeedForward (a) dan Feedback (b) Network
5. Aturan Penyebaran (Propagation Rule)
Aturan penyebaran menentukan bagaimana nilai-nilai keluaran dari
unit-unit dikombinasikan menjadi himpunan nilai yang lebih kecil,
umumnya berupa nilai tunggal yang disebut combining function.
Combining function mendefinisikan sebuah nilai net input untuk setiap
unit sebagai sebuah weighted summation atau net(t)=W(t)out(t), dimana
net(t) adalah net input dan out(t) adalah vektor keluaran.
6. Aturan aktivasi (Activation Rule)
Aturan aktivasi menentukan nilai aktivasi baru dari unit untuk
tahap berikutnya. Secara umum didefinisikan :
26
a(t+1) = F (a(t), net(t)1,net(t)2, …) (2.2)
7. Aturan belajar (Learning Rule)
Digunakan untuk mengubah elemen-elemen dari matriks W dan
parameter lainnya yang dimiliki oleh jaringan selama proses learning dan
training. Lingkungan luar biasanya menyediakan vektor-vektor masukan
untuk learning. Selama proses learning, bobot jaringan secara bertahap
mencapai keadaan yang konvergen ke suatu nilai sehingga setiap masukan
dapat menghasilkan keluaran yang diinginkan.
Ada 2 jenis learning, yaitu:
a. Supervised learning
Diperlukan pasangan untuk setiap masukan dengan
keluaran yang diinginkan. Pasangan tersebut disebut training pair.
Satu vektor masukan diberikan lalu dihitung keluarannya dan
dibandingkan dengan target keluaran yang sebenarnya. Hasil
perbandingan tersebut dikembalikan ke dalam jaringan dan
bobotnya disesuaikan berdasarkan suatu algoritma learning.
b. Unsupervised learning
Pertama kali dikembangkan oleh Kohonen (1984) dan
dianggap lebih mendekati konsep otak manusia. Pada unsupervised
learning tidak diperlukan target keluaran. Himpunan training hanya
terdiri dari vektor-vektor masukan tanpa pasangan keluaran.
Vektor-vektor yang mirip akan menghasilkan pola keluaran yang
sama sehingga proses learning akan menghasilkan sifat-sifat
27
statistik dalam bentuk pengelompokan vektor-vektor ke dalam
kelas-kelas. Sebagian besar algoritma learning saat ini
dikembangkan berdasarkan atas konsep Hebbian Learning dari
Donald O.Hebb (1961).
8. Lingkungan luar (External Environment)
Lingkungan luar adalah suatu lingkungan yang berinteraksi dengan
jaringan. Lingkungan ini dapat memberi masukan untuk jaringan dan
menerima keluaran dari jaringan.
2.6.4 Backpropagation
Backpropagation adalah suatu model neural network yang sering dipakai
dalam proses pengenalan indentifikasi suatu pola. Backpropagation juga dapat
diistilahkan suatu prosesor yang melakukan pendistribusian secara besar-besaran,
yang memiliki kecenderungan alami untuk menyimpan suatu pengenalan yang
pernah dialaminya, dengan kata lain neural network ini memiliki kemampuan
untuk dapat melakukan pembelajaran dan pendeteksian terhadap sesuatu objek.
Secara mendasar, sistem pembelajaran merupakan proses penambahan
pengetahuan pada neural network yang sifatnya kontinuitas sehingga pada saat
digunakan pengetahuan tersebut akan dieksploitasikan secara maksimal dalam
mengenali suatu objek. Dalam proses pembelajaran tersebut akan dihitung nilai-
nilai weight dari suatu neuron didalam suatu layer yang terhubung dengan neuron
lainnya di layer selanjutnya, nilai weight tersebut digunakan untuk menyesuaikan
28
nilai output dengan nilai target yang ingin dikenali. Neuron adalah bagian dasar
dari pemrosesan suatu neural network. Dibawah ini merupakan bentuk dasar dari
suatu neuron.
Gambar 2.7 Bentuk dasar neuron
Input merupakan masukan yang digunakan baik saat pembelajaran maupun
dalam mengenali suatu objek.
Weight, beban yang selalu berubah setiap kali diberikan input sebagai proses
pembelajaran.
Processing Unit merupakan tempat berlangsungnya proses pengenalan suatu
objek berdasarkan pembebanan yang diberikan.
Output, keluaran dari hasil pengenalan suatu objek.
Keuntungan penggunaan backpropagation neural network :
Perangkat yang mampu untuk mengenali suatu objek secara non-linier.
Mempermudah pemetaan input menjadi suatu hasil tanpa mengetahui proses
sebenarnya.
Mampu melakukan pengadaptasian terhadap pengenalan suatu objek
Perangkat yang memiliki toleransi terhadap suatu kesalahan dalam pengenalan
suatu objek.
29
Neural Network mampu diimplementasikan pada suatu Hardware atau
perangkat keras.
Perangkat yang mampu diimplementasikan secara parallel.
a. Arsitektur Jaringan Backpropagation
Bentuk dasar arsitektur suatu Backpropagation adalah sebagai berikut :
Gambar 2.8 Arsitektur dasar Backpropagation
Secara umum, terdapat tiga jenis neural network yang sering digunakan
berdasarkan jenis network-nya, yaitu :
Single-Layer Neural Network
Multilayer Perceptron Neural Network
Recurrent Neural Networks
• Single-Layer Neural Network
Neural network jenis ini memiliki koneksi pada inputnya secara langsung
ke jaringan output.
30
Gambar 2.9 Single-Layer Neural Netwok
Jenis neural network ini sangatlah terbatas, hanya digunakan pada kasus - kasus
yang sederhana.
• Multilayer Perceptron Neural Network
Jenis neural network ini memiliki layer yang dinamakan “hidden”,
ditengah layer input dan output. Hidden ini bersifat variable, dapat digunakan
lebih dari satu hidden layer. Jumlah input layer dan output layer yang digunakan
ditentukan berdasarkan dari masalah yang sedang dihadapi. Sedangkan untuk
jumlah hidden layer biasanya hanya digunakan 1 buah, namun dibeberapa kasus
dapat pula tidak digunakan hidden layer karena biasanya jumlah hidden layer
yang banyak dapat memperlambat proses pembelajaran.
(http://www.research.ibm.com/able/doc/reference/com/ibm/able/beans/doc-
files/BackPropagation.html).
31
Gambar 2.10 Multilayer Perceptron Neural Network
• Recurrent Neural Networks
Neural network jenis ini memiliki ciri, yaitu adanya koneksi umpan balik
dari output ke input.
Gambar 2.11 Recurrent Neural Networks
Kelemahan dari jenis ini adalah Time Delay akibat proses umpan balik
dari output ke titik input.
b. Perhitungan Metode Backpropagation
32
Dalam metode Backpropagation terdapat 3 buah tahap perhitungan yang
digunakan dalam proses sistem pembelajaran (training) untuk mendapatkan nilai-
nilai weight yang sesuai. Ketiga tahap perhitungan tersebut adalah :
1. Forward Propagation
2. Backward Propagation
3. Update Weight
1) Forward Propagation
Forward Propagation bertujuan untuk menentukan nilai output dari suatu
node atau neuron dalam hidden layer dan output layer. Rumus perhitungannya
adalah sebagai berikut :
acceOutput −+
=1
1 (2.3)
Sedangkan Acc merupakan bilangan Accumulator, yaitu jumlah perkalian
dari weight hidden layer dengan output dari input layer atau dari weight output
layer dengan output dari hidden layer.
ii OutWeightAcc ∑ ×= j (2.4)
2) Backward Propagation
Inti dari backward propagation adalah untuk mencari Error suatu Node.
Dari hasil forward propagation pastilah akan dihasilkan suatu Output, dari output
tersebut, pastilah tidak sesuai target yang kita inginkan, maka dari itu,
perbandingan kesalahan dari target yang kita inginkan dengan output yang
dihasilkan tersebut kita sebut dengan Error.
33
Dalam Backward Propagation juga dikenal dengan yang disebut
Inisialisasi output. Inisialisasi Output pada dasarnya adalah menentukan error di
suatu node dengan sebuah target yang diinginkan. Untuk mencari error di output
layer dapat menggunakan rumus :
(2.5)
Untuk mencari error di tahap selanjutnya :
AccOutputOutputError *)1( −×= (2.6) Untuk mencari Acc dapat menggunakan rumus :
ji ErrorWeightAcc ∑ ×= j (2.7) 3) Update Weight
Inti dari Backpropagation adalah mencari nilai weight yang sesuai dari
input yang dimasukkan menjadi output yang diinginkan. Nilai weight ini nantinya
akan didapatkan setelah mendapatkan output dan error dari setiap node. Rumus
untuk mencari nilai weight baru adalah :
(2.8)
Alpha di atas dapat diartikan sebagai tahap belajar suatu sistem, semakin
tinggi nilainya, maka semakin tinggi kecepatan belajarnya, namun dengan
demikian akan berdampak kurang baik, karena akan mendapatkan error yang
tidak merata.
Sehingga dengan demikian, lebih baik kita menggunakan Alpha yang
kecil, walaupun tahap belajarnya lambat, tetapi hasil keakuratannya tinggi.
34
2.7 Unified Modelling Language (UML)
Unified Modelling Language (UML) adalah bahasa visual
modeling yang digunakan untuk menentukan, memberi gambaran, gagasan
dan dokumentasi dari sebuah sistem software, juga untuk mengambil
keputusan dan mengerti mengenai sistem yang akan dibangun. Digunakan
agar sistem yang dibuat dapat dimengerti, dirancang, dibentuk, dipelihara,
dan dikontrol informasinya (Booch et. al., 1999, p3).
Unified Modelling Language (UML) merupakan suatu bahasa
untuk memvisualisasikan, menspesifikasi, mengkonstruksikan dan
mendokumentasikan artifacts dari suatu sistem software. UML
menyediakan standard yang dapat digunakan untuk mendokumentasikan
blueprint dari sistem yang akan dibuat yang mencakup conceptual items
yang meliputi proses bisnis dan fungsi-fungsi sistem seperti bahasa,
schema database dan komponen-komponen software. UML digunakan
mengekspresikan model-model dari sistem yang akan dibuat dan tidak
mengajarkan bagaimana cara mengembangkan suatu software.
2.7.1 Use Case Diagram
Use case diagram menjelaskan apa yang akan dilakukan oleh
sistem yang akan dibangun dan siapa yang berinteraksi dengan sistem.
Use case diagram menjadi dokumen kesepakatan antara user dan
developer. User menggunakan dokumen Use case diagram ini untuk
memahami sistem dan mengevaluasi bahwa benar yang dilakukan sistem
adalah untuk memecahkan masalah yang user ajukan atau sedang hadapi.
35
Developer menggunakan dokumen Use Case diagram ini sebagai rujukan
yang benar dalam pengembangan sistem (Hermawan, 2004, p23-24).
Use case diagram mengilustrasikan sekumpulan use case, actor
dan interaksi antara actor dan use case dalam suatu sistem boundary
(Booch et. al., 1999, p63-66).
1. Use Case
Use case adalah urutan event dari actor dalam memakai suatu
sistem untuk menyelesaikan suatu proses (Bennett, 2002, p134-135).
Use case menggambarkan suatu proses bisnis yang meliputi urutan
event, action dan transaksi yang dibutuhkan untuk memproduksi atau
menghasilkan informasi yang berguna bagi actor.
UseCase1
Gambar 2.12 Notasi Use Case
2. Actor
Actor adalah suatu external entity dari suatu sistem yang
berinteraksi dengan use case (Bennett, 2002, p135). Actor adalah
penggambaran seorang user atau sistem lain yang berhubungan dengan
suatu sistem.
36
Actor1
Gambar 2.13 Notasi Actor
3. Dependency
Dependency merupakan relasi yang menunjukkan bahwa
perubahan pada salah satu elemen memberi pengaruh pada elemen
yang lain (Hermawan, 2004, p20). Terdapat dua bentuk dari
dependency, yaitu :
a. Extend
Extend menunjukkan bahwa suatu bagian dari
elemen di garis tanpa panah dapat disisipkan ke dalam
elemen yang ada di garis dengan panah. Misalnya adalah
notasi A B suatu fungsi dari use case A bisa disisipkan
ke dalam use case B atau dengan kata lain A optional untuk
B (Hermawan, 2004, p20).
b. Include
Include menunjukkan bahwa suatu bagian dari
elemen (yang ada di garis tanpa panah) memicu eksekusi
bagian dari elemen lain (yang ada di garis dengan panah).
Misalnya adalah notasi A B operasi yang ada di class A
memicu dieksekusinya operasi yang ada di class B
(Hermawan, 2004, p20).
37
4. System Boundary
System Boundary adalah sebagai ruang lingkup batasan yang
dibahas dalam sistem.
System
Gambar 2.14 Notasi System Boundary
Gambar 2.15 Contoh Use Case Diagram
2.7.2 Class Diagram
Class diagram adalah penggambaran struktur relasi antara class-
class dan object-object dalam suatu model (Mathiassen, 2000, pp69-70).
1. Class
Class merupakan pembentuk utama dari sistem berorientasi
object yang digambarkan dalam bentuk segi empat yang terbagi-bagi
menjadi tiga bagian, dimana bagian paling atas merupakan nama dari
38
class, bagian tengah berisi attribute dari class, dan bagian bawah
berisi behavior dari class (Booch et. al., 1999, pp42-45). Class
menunjukkan kumpulan object yang memiliki attribute dan
operation yang sama. Object adalah sebuah entitas yang mempunyai
identity, state, dan behavior (Mathiassen, 2000, p4). Class adalah
sekumpulan object yang memiliki behavior, attribute, dan method
yang sama (Mathiassen, 2000, p53). Attribute adalah suatu isi yang
mendeskripsikan sebuah class atau event. Method adalah suatu
tindakan yang dapat mengubah status dari suatu object.
Class digunakan untuk mengabstraksikan elemen-elemen
dari sistem yang sedang dibangun. Class juga dapat digunakan untuk
merepresentasikan baik perangkat lunak maupun perangkat keras,
baik konsep maupun benda nyata (Hermawan, 2004, p14).
+MengikutiUjian()
-Nim : String-Nama : String-Alamat : String-TglLahir : Date
Mahasiswa
Gambar 2.16 Notasi Class
2. Multiplicity
Multiplicity dinotasikan dengan menambahkan teks 1, *, 0..1,
0..*, 1..1, 1..* atau bilangan tertentu, di masing-masing ujung garis
association. Misalnya terdapat hubungan sebagai berikut :
39
OrangTua Anak1 0..*
Gambar 2.17 Notasi Multiplicity pada Class
Cara membacanya adalah bahwa untuk setiap object Anak
harus berhubungan dengan 1 object Orang tua dan untuk object
Orang tua dapat berhubungan dengan banyak object Anak atau
tidak sama sekali.
3. Relationship
Relationship adalah hubungan yang terdapat di antara class-
class (Booch et. al., 1999, pp45-52), yang dapat digambarkan dalam
bentuk :
a. Association
Assosiation menjelaskan hubungan antara object-object
yang berlainan dalam suatu sistem. Bentuk yang paling umum
dari association adalah binary association yang
menghubungkan pasangan class. Instance dari suatu
association adalah link.
-End1
*
-End2
*
Gambar 2.18 Notasi Association
40
b. Generalization
Generalization adalah hubungan antara class yang
mempunyai deskripsi lebih umum dengan class yang
mempunyai deskripsi yang lebih spesifik. Generalization
memungkinkan operasi polymorphic dan inheritance.
Gambar 2.19 Notasi Generalization
c. Aggregation
Aggregation adalah suatu association yang
mewakili hubungan ‘bagian dari’. Hubungan ini
ditunjukkan dalam bentuk belah ketupat yang bagian
tengahnya berlubang yang terhubung dari class yang
merupakan bagian dari ke class yang merupakan class
aggregate.
-End5
*
-End6
*
Gambar 2.20 Notasi Aggregation
d. Composition
Composition merupakan suatu association dimana
hubungan yang terjalin antara class-class lebih erat.
Hubungan ini ditunjukkan dalam bentuk belah ketupat yang
bagian tengahnya berisi.
41
-End3
*
-End4
*
Gambar 2.21 Notasi Composition
Menurut Mathiassen (2000, p72), hubungan antar class terdiri dari
tiga jenis hubungan yaitu :
a. Generalization
Generalization adalah class induk atau superclass yang
menggambarkan property yang sama dari class anak atau subclass.
Kain
Katun Wool Sutra
Gambar 2.22 Class Diagram Dengan Hubungan Generalization
b. Aggregation
Aggregation adalah class induk (superclass) terdiri dari
beberapa class lainnya atau hubungan terdiri dari.
Kain
Benang Motif Warna
1
1
1
1
1
1
Gambar 2.23 Class Diagram Dengan Hubungan Aggregation
42
c. Association
Association adalah hubungan erat antara dua class yang
dihubungkan oleh sebuah event. Event adalah peristiwa yang
terjadi, yang melibatkan satu atau lebih object.
Pembeli
Kain
1
1
Gambar 2.24 Class Diagram Dengan Hubungan Association
Gambar 2.25 Contoh Class Diagram
2.7.3 Sequence Diagram
Menurut Larman (2004, p176), System sequence diagram
merupakan gambar yang menunjukkan, untuk suatu skenario khusus dari
sebuah use case, event yang di-generate oleh external actor, urutan nya,
dan event didalam sistem. Semua sistem diperlakukan sebagai black box;
43
penekanan pada diagramnya adalah events yang berlangsung pada system
boundary dari actors ke sistem.
Use case mengambarkan bagaimana aktor berinteraksi dengan
sistem software yang telah diciptakan. Selama interaksi ini, aktor meng-
generate system events ke sistem, biasanya meminta beberapa system
operation untuk meng-handle event.
Sequence diagram menjelaskan secara detil urutan proses yang
dilakukan dalam sistem untuk mencapai tujuan dari use case: interaksi
yang terjadi antar class, operasi apa saja yang terlibat, urutan antar
operasi, dan informasi yang diperlukan oleh masing-masing operasi
(Hermawan, 2004, p24).
Object1
Gambar 2.26 Notasi Obejct Lifeline dan Activation
Gambar 2.27 Contoh Sequence Diagram
44
2.8 Perancangan Program Aplikasi Komputer
Sebuah teknologi yang meliputi sebuah proses, serangkaian metode, dan
seperangkat alat.
Karakteristik Perangkat Lunak:
• Perangkat lunak dibangun dan dikembangkan, tidak dibuat dalam bentuk yang
klasik
• Perangkat lunak tidak pernah usang.
• Sebagian besar perangkat lunak dibuat secara custom-build, serta tidak dapat
dirakit dari komponen yang sudah ada.
Elemen – elemen Perangkat Lunak:
a. Proses
Proses-proses membatasi kerangka kerja untuk serangkaian area proses kunci
yang harus dibangun demi keefektifan penyampaian teknologi pengembangan
perangkat lunak.
b. Metode
Metode-metode rekayasa perangkat lunak memberikan teknik untuk
membangun perangkat lunak. Metode-metode itu menyangkut serangkaian
tugas yang luas yang menyangkut analisis kebutuhan, konstruksi program,
desain, pengujian dan pemeliharaan.
c. Alat Bantu
Tool-tool rekayasa perangkat lunak memberikan topangan yang otomatis
ataupun semi otomatis pada proses-proses dan metode-metode yang ada. Ketika
tool-tool diintegrasikan sehingga informasi yang diciptakan oleh satu tool bisa
45
digunakan oleh yang lain, sistem untuk menopang perkembangan perangkat lunak
disebut Computer-Aided Software Engineering (CASE).
Model proses yang dipergunakan dalam penulisan skripsi ini adalah model
sekuensial linier. Model ini biasa disebut juga model “air terjun” (waterfall).
Model ini mengusulkan sebuah pendekatan kepada perkembangan perangkat
lunak yang sistematik dan sekuensial yang mulai pada tingkat dan kemajuan
sistem pada seluruh perancangan sistem, analisis, desain, kode, pengujian dan
pemeliharaan.
Urutan kerjanya disajikan dalam gambar dibawah:
Gambar 2.31 Daur hidup rekayasa software (Waterfall Model)
46
1. Perancangan Sistem
Merupakan langkah awal yang diambil. Dalam prosesnya terjadi
persiapan untuk persyaratan sistem yang akan berjalan.
Dipertimbangkan lebih lanjut jenis interface-nya, hardware-nya,
brainware-nya, dan basis datanya.
2. Analisis
Proses pengumpulan kebutuhan diintensifkan dan difokuskan,
khususnya pada perangkat lunak. Kebutuhan baik untuk sistem
maupun perangkat lunak didokumentasikan dan dilihat lagi dengan
pelanggan.
3. Desain
Proses desain menerjemahkan syarat/kebutuhan ke dalam sebuah
representasi perangkat lunak yang dapat riperkirakan demi kualitas
sebelum dimulai pemunculan kode.
4. Pengkodean dan Pengembangan
Desain harus dapat diterjemahkan ke dalam bentuk bahasa mesin yang
bisa dibaca.
5. Implementasi dan Pengujian
Sekali kode dibuat, pengujian program dimulai. Proses pengujian
berfokus pada logika internal perangkat lunak, memastikan bahwa
semua pernyataan sudah diuji, dan pada eksternal fungsional yaitu
mengarahkan pengujian untuk menemukan kesalahan-kesalayan dan
47
memastikan bahwa input yang dibatasi akan memebrikan hasil aktual
yang sesuai dengan hasil yang dibutuhkan.
6. Pemeliharaan
Perangkat lunak akan mengalami perubahan setelah disampaikan
kepada pelanggan. Pemeliharaan perangkat lunak mengaplikasikan
lagi setiap fase program sebelumnya dan tidak membuat yang baru
lagi.
2.9 Teori State Transition Diagram (STD)
Menurut Roger Pressman (2001, p317) State Transition Diagram
merupakan sebuah modelling tool yang digunakan untuk mendeskripsikan sistem
yang memiliki ketergantungan terhadap waktu STD merupakan suatu kumpulan
keadaan atau atribut yang mencirikan suatu keadaan pada waktu
tertentu.Komponen-komponen utama STD adalah :
1. State, disimbolkan dengan
Gambar 2.32 Notasi State
State merepresentasikan reaksi yang ditampilkan ketika suatu tindakan
dilakukan. Ada dua jenis state yaitu : state awal dan state akhir. State akhir dapat
berupa beberapa state, sedangkan state awal tidak boleh lebih dari satu.
2. Arrow, disimbolkan dengan
Gambar 2.33 Notasi Arrow
48
Arrow sering disebut juga dengan transisi state yang diberi label dengan
ekspresi aturan, label tersebut menunjukkan kejadian yang menyebabkan transisi
terjadi.
3. Condition dan Action, disimbolkan dengan
Gambar 2.34 Notasi Condition dan Action
Untuk melengkapi STD diperlukan 2 hal lagi yaitu condition dan action.
Condition adalah suatu event pada lingkungan eksternal yang dapat dideteksi oleh
sistem, sedangkan Action adalah yang dilakukan oleh sistem bila terjadi
perubahan state atau merupakan reaksi terhadap kondisi. Aksi akan menghasilkan
keluaran atau tampilan.
2.10 Borland Delphi
Delphi adalah sebuah bahasa pemrograman dan lingkungan
pengembangan perangkat lunak. Produk ini dikembangkan oleh Borland
(sebelumnya dikenal sebagai Inprise). Bahasa Delphi, yang sebelumnya dikenal
sebagai object pascal (pascal dengan ekstensi pemrograman berorientasi objek
(PBO/OOP)) pada mulanya ditujukan hanya untuk Microsoft Windows, namun
saat ini telah mampu digunakan untuk mengembangkan aplikasi untuk Linux dan
Microsoft .NET framework (lihat di bawah). Dengan menggunakan Free Pascal
yang merupakan proyek opensource, bahasa ini dapat pula digunakan untuk
membuat program yang berjalan di sistem operasi Mac OS X dan Windows CE
49
Pada tanggal 8 Februari 2006, Borland mengumumkan akan melepas
seluruh jajaran produk pengembangan aplikasi komputernya termasuk di
antaranya Delphi.
2.10.1 Lingkungan pengembangan
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).
Chief Architect yang membidani Delphi, dan pendahulunya Turbo Pascal,
adalah Anders Hejlsberg sampai kemudian ia pindah ke Microsoft tahun 1996 di
mana ia sebagai chief designer C# dan termasuk orang kunci dalam perancangan
Microsoft .Net Framework. Dukungan penuh untuk .Net ditambahkan pada
Delphi 8 (dirilis pada bulan Desember 2003) dengan penampilan user interface
(look and feel) mirip dengan Microsoft Visual Studio .NET.
50
Delphi 2005 (nama lain dari Delphi 9) mendukung code generation baik
untuk win32 maupun .NET, dan seperti yang telah dikenal, fitur-fitur manipulasi
data secara live dari database secara design-time. Ia juga membawa banyak
pembaruan pada IDE secara signifikan. Para penganjur delphi mengklaim dengan
bahasa pemrograman Delphi, IDE dan component library (VCL/CLX) yang
disediakan oleh vendor tunggal memungkinkan satu paket yang lebih konsisten
dan mudah dikenali. Produk delphi ini didistribusikan dalam beberapa rancangan:
Personal, Professional, Enterprise (sebelumnya Client/Server) dan Architect.
2.10.2 Bahasa pemrograman
Perbedaan fitur yang utama antara Delphi, Kylix dengan IDE-IDE yang
lain adalah keberadaan bahasanya (Bahasa pemrograman delphi), VCL/CLX
(Visual Component Library), Penekanan konektifitas database yang sangat baik,
dan banyaknya komponen-komponen pihak ketiga yang mendukungnya.
Aspek penting yang perlu dicatat tentang Bahasa pemrograman Delphi
termasuk:
• Penanganan object sebagai reference / pointer secara transparan
• Properti sebagai bagian dari bahasa tersebut; benar, sebagai getter dan setter
(atau accessor and mutator), yang secara transparan mengenkapsulasi akses
pada field-field anggota dalam kelas tersebut.
• Property index dan Default yang menyediakan akses pada data kolektif
• Pendelegasian (type safe method pointer) yang digunakan untuk memproses
event yang dipicu oleh component
• Pendelegasian implementasi interface pada Field ataupun property dari class.
51
• Implementasi penanganan windows message dengan cara membuat method
dalam class dengan nomer/nama dari windows message yang akan dihandle.
• COM bersifat sebagai interface yang independen dengan implementasi class
sebagai reference counted
• Kompilasi yang dapat menghasilkan kode yang berjalan secara native x86
ataupun managed code pada arsitektur framework .NET.
2.10.3 Pro and kontra
Delphi membawa keuntungan-keuntungan berikut:
• Dapat mengkompilasi menjadi single executable, memudahkan distribusi
dan meminimalisir masalah yang terkait dengan versioning
• Banyaknya dukungan dari pihak ketiga terhadap VCL (biasanya tersedia
berikut source codenya) ataupun tools pendukung lainnya (dokumentasi,
tool debugging)
• Optimasi kompiler yang cukup cepat
• Mendukung multiple platform dari source code yang sama
Berikut ini kerugiannya:
• Partial single vendor lock-in (Borland dapat menetapkan standar bahasa,
kompatibilitas yang harus mengikutinya)
• Terbatasnya kamampuan portabilitas antar-platform OS
• Akses pada platform dan library pihak ketiga membutuhkan file-file
header yang diterjemahkan ke dalam bahasa pascal
52
• Dokumentasi atas platform dan tehnik-tehnik yang menyertainya sulit
ditemukan dalam bahasa pascal (contoh akses COM dan Win32)
2.11 Basis Data (Database)
Menurut Turban (2001, p17), “Data are raw facts or elementary
descriptions of things, events, activities, and transactions, that are captured,
recorded, stored, and classified, but not organized to convey any specific
meaning”, yang artinya Data adalah fakta atau gambaran dasar benda, kejadian,
kegiatan, dan transaksi, yang ditangkap, dicatat, disimpan, dan dikelompokkan,
tetapi tidak diatur untuk menyampaikan arti khusus.
Menurut Connolly dan Begg (2002, p14), “Database a shared collection
of logically related data, designed to meet the information needs of an
organization”, yang artinya Database adalah suatu kumpulan data yang
berhubungan secara logik, dan gambaran dari data ini didesain untuk memenuhi
kebutuhan dari sebuah organisasi.
Menurut O’Brien (1997, p166), “Database is an integrated collection of
logically related record of file”’, yang artinya bahwa Database merupakan suatu
koleksi yang terintegrasi dimana secara logika berhubungan dengan record dari
file.
Database dapat diartikan sebagai kumpulan dari data-data yang saling
berhubungan dan disimpan bersama-sama serta mempunyai kelebihan yaitu dapat
melayani satu atau lebih aplikasi secara optimal. Bagian terkecil dari database
yang mempunyai arti bagi tiap pengguna disebut data. Kumpulan dari data disebut
53
field, kumpulan dari field disebut record, kumpulan dari record disebut file,
sedangkan kumpulan dari file disebut database.
Adapun tujuan utama dari konsep database adalah meminimumkan
pengulangan dan mencapai independensi data. Independensi data adalah
kemampuan untuk membuat perubahan dalam struktur data tanpa membuat
perubahan pada program yang memproses data. Independensi data dapat dicapai
dengan menempatkan spesifikasi dalam tabel dan kamus yang terpisah secara
fisik dari program. Program mengacu pada tabel yang mengakses data. Perubahan
pada struktur data hanya dilakukan sekali, yaitu dalam tabel.
Saat instansi mengadopsi konsep database , hirarki data menjadi :
Database
• File
Record
• Elemen data
File-file tersendiri dapat tetap ada, mewakili komponen-komponen utama
dari database , namun organisasi fisik dari data tidak menghambat pemakai.