3.1
Konsep Algoritma
3.1.1
Definisi Algoritma
Menurut Munir (2011)
Algoritma adalah urutan langkah-langkah untuk memecahkan suatu masalah.
Kata algoritma
sendiri diadaptasi dari nama ilmuwan muslim, yaitu Abu Ja’far Muhammad ibn Musa
Al-Khawarizmi (780-847 M) yang banyak menghasilkan karya dalam bidang
matematika, disamping karya-karyanya dalam bidang lainnya seperti geografi dan
musik.
Terdapat beberapa
definisi lain dari algoritma, tetapi pada prinsipnya senada dengan difinisi
yang diungkapkan di atas, antara lain:
1.
Algoritma adalah deretan
langkah-langkah komputasi yang men-transformasikan data masukan menjadi
keluaran.
2.
Algoritma adalah deretan intruksi
yang jelas untuk memecahkan masalah, yaitu untuk memperoleh keluaran yang
diinginkan dari suatu masukan dalam jumah waktu terbaras.
3.
Algoritma adalah prosedur
komputasi yang terdefinisi dengan baik yang menggunakan beberapa nilai sebagai
masukan dan menghasilkan beberapa nilai yang disebut keluaran. Jadi, algoritma
adalah deretan langkah komputasi yang mentransformasikan masukan menjadi
keluaran.
3.1.2
Ciri-ciri dan sifat Algoritma
Donald E. Knuth (1997),
menyatakan bahwa ada beberapa ciri-ciri algoritma, yaitu:
a.
Algoritma mempunyai awal dan
akhir. Suatu algoritma harus berhenti setelah mengerjakan serangkaian tugas
atau dengan kata lain suatu algoritma harus memiliki langkah yang terbatas.
b.
Setiap langkah harus didefinisikan
dengan tepat sehingga tidak memiliki arti ganda.
c.
Memiliki masukan atau kondisi
awal.
d.
Memiliki keluaran atau kondisi
akhir.
e.
Algoritma harus efektif, bila
diikuti dengan benar-benar akan menyelesaikan persoalan.
Berdasarkan ciri
algoritma dapat disimpulkan sifat utama suatu algoritma, yaitu:
a.
Input : suatu algoritma memiliki input atau
kondisi awal sebelum algoritma dilaksanakan dan bisa berupa nilai-nilai
pengubah yang diambil dari himpunan khusus.
b.
Output : suatu algoritma akan menghasilkan
output setelah dilaksanakan, atau algoritma akan mengubah kondisi awal menjadi
kondisi akhir, dimana nilai output diperoleh dari nilai input yang telah
diproses melalui algoritma.
c.
Definiteness : langkah-langkah yang dituliskan
dalam algoritma terdefinisi dengan jelas sehingga mudah dilaksanakan oleh
pengguna algoritma.
d.
Finiteness : suatu algoritma harus memberi
kondisi akhir atau output setelah melakukan sejumlah langkah yang terbatas
jumlahnya untuk setiap kondisi awal atau input yang diberikan.
e.
Effectiveness : setiap langkah dalam algoritma
bisa dilaksanakan dalam suatu selang waktu tertentu sehingga pada akhirnya
memberi solusi sesuai yang diharapkan.
f.
Generality : langkah-langkah algoritma berlaku
untuk setiap himpunan input yang sesuai dengan persoalan yang akan diberikan,
tidak hanya untuk himpunan tertentu.
3.2
Pencocokan String (String Matching)
3.2.1
Definisi String Matching
Menurut Syaroni dan
Munir (2011) string adalah susunan
dari karakter-karakter (angka, alphabet, atau karakter yang lain) dan biasanya
dipresentasikan sebagai stuktur data array.
String dapat berupa kata, frase, atau kalimat. Sedangkan String matching menurut Syaroni dan
Munir (2004:1), diartikan sebagai sebuah permasalahan untuk menemukan pola
susunan karakter string di dalam string lain atau bagian dari isi teks. String matching dalam bahasa Indonesia
dikenal dengan istilah pencocokan string
(Munir, 2007:1).
3.2.2
Kerangka Kerja String Matching
Persoalan pencarian string menurut Munir (2011) dirumuskan
sebagai berikut.
1.
Sebuah teks (text), yaitu sebuah (long)
string yang panjang n karakter.
2.
Pattern, yaitu sebuah string
dengan panjang m.
Dengan sebuah nilai karakter (m < n) yang akan dicari dalam teks.
Dalam algoritma pencocokan string, teks diasumsikan berada di dalam memori,
sehingga bila kita mencari string di dalam sebuah arsip, maka semua arsip perlu
dibaca terlebih dahulu kemudian disimpan di dalam memori. Jika pattern muncul
lebih dari sekali di dalam teks, maka pencarian hanya akan memberikan keluaran
berupa lokasi pattern ditemukan pertama kali.
3.2.3
Kerangka Pikir String Matching
Menurut Charras
(1997:12) algoritma string matching dapat diklasifikasi-kan menjadi 3 bagian
menurut arah pencariannya, yaitu :
1.
From left right
Dari arah yang paling
alami, dari kiri ke kanan, yang merupakan arah untuk membaca.
2.
From right to left
Dari arah kanan ke
kiri, arah yang biasanya menghasilkan hasil terbaik secara partikal.
3.
In a specific order
Dari arah yang ditentukan
secara spesifik oleh algoritma tersebut, arah ini menghasilkan hasil terbaik
secara teoritis.
Beberapa konsep string
matching antara lain:
a)
Approximate string matching, yaitu sebuah
pencarian terhadap pola-pola string (mengandung beberapa proses yaitu
menghitung jumlah karakter yang berbeda, penyisipan dan penghapusan karakter)
sehingga mendekati pola atau pattern dari string yang dicari. Dari wikepedia
didefinisikan sebagai sebuah teknik untuk mencari sebuah pola yang mendekati
string dari sebuah teks.
b)
Algoritma pencarian string adalah
sebuah proses pencarian tempat dari suatu atau beberapa string yang ditemukan
dalam sebuah kumpulan string atau teks. Jalan paling sederhana adalah dengan
cara membaca karakter satu persatu dan melakukan perhitungan kesalahan posisi
yang ada dari string yang dicari.
3.3
Definisi Data
Menurut Agus (2011), data merupakan kenyataan yang
menggambarkan suatu kejadian-kejadian dan kesatuan nyata. Data juga merupakan
suatu file ataupun field yang berupa karakter atau tulisan
dan gambar yang terdiri dari fakta-fakta dan dapat diolah menjadi suatu
informasi.
3.4
Definisi Pelanggan
Definisi pelanggan menurut Dwi (2003:31) adalah
seseorang yang menjadi terbiasa untuk membeli. Kebiasaan itu terbentuk melalui
pembelian dan interaksi yang sering selama periode waktu tertentu.
Pelanggan juga merupakan orang yang menjadi
pembeli produk yang telah dibuat dan dipasarkan oleh sebuah perusahaan, dimana
orang ini bukan hanya sekali membeli produk tersebut tetapi berulang-ulang.
3.5
Basis Data
Menurut Nugroho
(2005) basis data adalah sebuah cara mendokumentasikan berbagai macam data yang
kemudian dimanajemen dengan sebuah sistem untuk kemudian disimpan dalam sebuah
media penyimpanan. Dengan demikian data-data tersebut dapat di akses dengan
mudah dan cepat.
Basis data atau database juga merupakan kumpulan informasi yang disimpan di dalam
komputer secara sistematik dan terstruktur sehingga dapat diperiksa menggunakan
suatu program komputer untuk memperoleh informasi dari basis data tersebut.
3.6
Unifield Modelling Language (UML)
3.6.1
Pemodelan
Menurut Wiranto
(2010), pemodelan adalah suatu bentuk abstraksi. Model diperlukan jika akan
membangun sesuatu. Abstraksi adalah proses memfokuskan pada fitur tertentu yang
sangat esensial untuk menyelesaikan tugas dan menghindarkan beberapa fitur yang
tidak diperlukan.
Pemodelan juga
merupakan gambaran
dari realita yang simpel yang dituangkan dalam bentuk
pemetaan dengan aturan
tertentu. Sama halnya dengan pemodelan
sebuah gedung
dengan menggunakan maket, pemodelan
pada pembangunan
perangkat lunak dilakukan untuk
memvisualisasikan perangkat
lunak yang akan dibuat. Pemodelan perangkat lunak digunakan untuk mempermudah langkah berikutnya dari pengembangan sebuah
sistem
informasi sehingga lebih terencana. Perangkat pemodelan merupakan suatu model yang
digunakan untuk
menguraikan sistem menjadi bagian-bagian yang dapat diatur dan
mengomunikasikan ciri konseptual dan fungsional kepada
pengamat. Peran perangkat permodelan ini adalah sebagai komunikasi, ekspresimentasi dan prediksi. Salah satu perangkat permodelan perangkat untuk
perangkat lunak adalah
Unified Modeling
Language (UML).
3.6.2
Pengenalan Unifield Language (UML)
Menurut Munawar (2005), Unifield
Language (UML) adalah adalah
salah satu alat bantu yang sangat handal di dunia pengembangan sistem yang
berorientasi obyek. Hal ini disebabkan karena UML menyediakan bahasa pemodelan
visual yang memungkinkan bagi pengembang sistem untuk membuat cetak biru atau
visi mereka dalam bentuk yang baku, mudah dimengerti serta dilengkapi dengan
mekanisme yang efektif untuk berbagi (sharing)
dan mengkomunikasikan rancangan mereka dengan yang lain.
3.6.3
Diagram UML
Adapun UML yang digunakan oleh
penulis dalam Laporan Kerja Praktik ini adalah sebagai berikut.
a.
Class Diagram
Rosa dan M. Shalahudin
(2014), diagram kelas atau class diagram
menggambarkan struktur sistem dari segi pendefinisian kelas-kelas yang akan
dibuat untuk membangun sistem. Kelas memiliki apa yang disebut atribut dan method atau operasi. Berikut penjelasan
atribut dan method :
1.
Atribut merupakan variable-variabel yang dimiliki oleh suatu
kelas.
2.
Operasi atau method
adalah fungsi-fungsi yang dimiliki oleh suatu kelas.