II KAJIAN PUSTAKA 2! KAJIAN PUSTAKA
2.1!
Ejaan Bahasa Indonesia Ejaan menurut Kamus Besar Bahasa Indonesia (2016) adalah kaidah cara
menggambarkan bunyi-bunyi (kata, kalimat, dan sebagainya) dalam tulisan (hurufhuruf) serta penggunaan tanda baca. Penjelasan ini mengandung pengertian bahwa ejaan hanya terkait dengan tata tulis yang meliputi pemakaian huruf, penulisan kata—termasuk penulisan kata atau istilah serapan—dan pemakaian tanda baca. Dalam ejaan tidak terdapat kaidah pemilihan kata atau penyusunan kalimat (Sriyanto, 2015). Saat ini, ejaan yang berlaku dalam bahasa Indonesia sesuai dengan Permendikbud 50/2015 tentang Pedoman Umum Ejaan Bahasa Indonesia (PUEBI) yang diberlakukan pada 30 November 2015; menggantikan Permendiknas 46/2009 tentang Pedoman Umum Ejaan Bahasa Indonesia yang Disempurnakan (EYD) yang telah berlaku sejak 16 Agustus 1972. PUEBI mengatur hal-hal mengenai pemakaian huruf, penulisan kata, pemakaian tanda baca, dan penulisan unsur serapan.
2.2!
Algoritme Menurut Kamus Besar Bahasa Indonesia (2016), algoritme adalah
prosedur sistematis untuk memecahkan masalah matematis dalam langkah-langkah terbatas. Rogers (1987) berpendapat algoritme adalah metode efektif yang diekspresikan sebagai rangkaian terbatas dari instruksi-instruksi yang telah didefinisikan dengan baik untuk menghitung sebuah fungsi. Umumnya dimulai dari suatu kondisi awal berupa masukan (atau mungkin kosong), instruksi-instruksi tersebut menjelaskan sebuah komputasi, yang jika dieksekusi—diproses melalui sejumlah urutan kondisi terbatas yang terdefinisi dengan baik—pada akhirnya menghasilkan keluaran dan berhenti di kondisi akhir (Knuth, 1973).
5 http://digilib.mercubuana.ac.id/
6
2.2.1
Algoritme Pencocokan String (String Matching) Menurut Black (2016), string adalah susunan dari karakter-karakter
(angka, alfabet, atau karakter lainnya) yang membentuk kata, frasa, atau kalimat; dan biasanya direpresentasikan sebagai larik. Sedangkan pencocokan string (string matching) menurut Black (2016) diartikan sebagai sebuah permasalahan untuk menemukan pola susunan karakter string dalam string lain atau bagian dari isi teks. Algoritme pencocokan string—atau disebut juga dengan pencarian string—adalah algoritme untuk melakukan pencarian semua kemunculan string pendek yang disebut pola pada string yang lebih panjang, yang disebut teks (Charras, 2004). Munir (2004) mendefinisikan kerangka kerja pencocokan string sebagai berikut: diberikan suatu teks, yaitu string yang panjangnya n karakter, dan pola, yaitu string yang panjangnya m karakter. Dengan sebuah nilai karakter ((m < n) yang akan dicari dalam teks. Pada algoritme pencocokan string, teks diasumsikan berada di dalam memori, sehingga bila kita mencari string pada teks, maka seluruh isi teks perlu dibaca terlebih dahulu kemudian disimpan di dalam memori. Jika pola muncul lebih dari sekali di dalam teks, maka pencarian hanya akan memberikan keluaran berupa lokasi pola yang ditemukan pertama kali. Secara garis besar, Binstock & Rex (1995) membedakan pencocokan string menjadi dua, di antaranya: 1.!
Pencocokan string berdasarkan ketepatan (exact (exact string matching)—yang matching menyusun karakter dalam string yang dicocokkan memiliki jumlah maupun urutan karakter dalam string yang sama. Bagian algoritme ini bermanfaat jika pengguna ingin mencari string dalam teks yang sama persis dengan string masukan.
2.!
Pencocokan
string
berdasarkan
ketidaktepatan
(inexact
string
matching)—yang menyusun karakter dalam string yang dicocokkan memiliki jumlah maupun urutan karakter dalam string yang berbeda tetapi keduanya memiliki kemiripan baik kemiripan morfologis (approximate string matching) atau kemiripan fonetik (phonetic string matching).
http://digilib.mercubuana.ac.id/
7
2.2.1.1 Jaro-Winkler Distance Jaro-Winkler distance adalah varian dari Jaro distance, suatu algoritme untuk mengukur kemiripan antara dua string yang memiliki quadratic runtime complexity sangat efektif pada string pendek dan bekerja lebih cepat dibanding Levenshtein distance. Dasar dari algoritme ini memiliki 3 bagian: 1.!
Menghitung jumlah karakter yang sama pada jarak maksimum;
2.!
Menghitung jumlah transposisi yang harus dilakukan untuk membuat sama susunan karakter yang sama pada poin 1; dan
3.!
Memperbaiki hasil pengukuran berdasarkan banyaknya urutan huruf awal yang sama di antara kedua string. Bagian 1 dan bagian 2 adalah algoritme Jaro distance yang pertama kali
dikembangkan oleh Matthew A. Jaro pada 1989. Sedangkan William E. Winkler pada 1999 melakukan modifikasi terhadap Jaro distance dengan menambahkan langkah 3, dan menjadikannya Jaro-Winkler distance (Iskandar, 2010). Jaro distance didasarkan pada jumlah dan urutan karakter yang sama— dianggap sama apabila kedua karakter persis dan tidak melebihi ketentuan jarak teoritis—antara dua string yang dibandingkan (Jaro, 2010). Jarak teoritis yang dimaksud ditentukan dari nilai persamaan berikut:
! " #$%%&
'() *+ , -*. /
01
Untuk mendapatkan nilai Jaro distance (dj), setiap karakter pada string asal (s1) dibandingkan dengan karakter yang persis pada string rujukan (s2) untuk menentukan jumlah karakter yang sama (m). Transposisi (t) didapat dari jumlah karakter yang sama namun berbeda urutannya dibagi dengan 2. Nilai-nilai tersebut kemudian digunakan pada persamaan berikut:
!2 "
1 4 4 456 5 5 *. 3 *+ 4
http://digilib.mercubuana.ac.id/
8
Jaro-Winkler distance menambahkan nilai prefix length (l) yaitu setiap karakter yang sama pada awal string sampai ditemukan ketidaksamaan dengan batas nilai maksimum 4; dan nilai scaling factor (p) yaitu konstanta besarnya penyesuaian jika terdapat nilai prefix length dan biasanya bernilai 0.1 (Winkler, 2010). Nilai Jaro- Winkler distance ditunjukkan pada persamaan berikut:
!7 " !2 5 $8 1 0 !2 Sebagai alat ukur kemiripan string, algoritme Jaro-Winkler menghasilkan nilai antara 0 hingga 1, yang berarti 0 mengindikasikan kedua string yang dibandingkan sangat tidaklah mirip dan 1 mengindikasikan kedua string yang dibandingkan sama persis (Iskandar, 2010).
2.3!
Penambangan Teks (Text Text Mining Mining) Penambangan teks (text mining) adalah penambangan yang dilakukan oleh
komputer untuk mendapatkan sesuatu yang baru, sesuatu yang tidak diketahui sebelumnya atau menemukan kembali informasi yang tersirat secara implisit, yang berasal dari informasi yang diekstrak secara otomatis dari sumber-sumber data teks yang berbeda-beda (Feldman & Sanger, 2007). Penambangan teks merupakan teknik yang digunakan untuk menangani masalah klasifikasi, klusterisasi, ekstraksi informasi dan pemulihan informasi (Berry & Kogan, 2010). Pada dasarnya proses kerja dari penambangan teks banyak mengapdopsi dari penelitian penambangan data (data mining) namun yang menjadi perbedaan adalah pola yang digunakan oleh penambangan teks diambil dari sekumpulan bahasa alami yang tidak terstruktur sedangkan dalam penambangan data pola yang diambil dari basis data yang terstruktur (Han, Kamber and Pei, 2012)
2.3.1!
Pemrosesan Teks (Text Preprocessing) Salah satu langkah yang dilakukan dalam penambangan teks adalah
pemrosesan teks (text preprocessing). Tahap ini mencakup semua rutinitas, dan
http://digilib.mercubuana.ac.id/
9
proses untuk mempersiapkan data yang akan digunakan pada operasi knowledge discovery sistem text mining (Feldman & Sanger, 2007). Tindakan yang dilakukan pada tahap ini adalah toLowerCase, yaitu mengubah semua karakter huruf menjadi huruf kecil dan Tokenizing, yaitu proses penguraian deskripsi yang semula berupa kalimat-kalimat menjadi kata-kata dan menghilangkan delimiter-delimiter seperti tanda titik (.), koma (,), spasi dan karakter angka yang ada pada kata tersebut (Weiss et al, 2005).
2.4!
Proses Perangkat Lunak Proses perangkat lunak adalah serangkaian kegiatan dan hasil yang
berhubungan dengannya, yang menuju pada dihasilkannya produk perangkat lunak (Sommerville, 2016). Terdapat banyak proses perangkat lunak, namun dasar dari proses tersebut terdiri dari urutan tahapan seperti penspesifikasian perangkat lunak, perancangan dan penerapan perangkat lunak, pengujian perangkat lunak, dan pengembangan perangkat lunak.
2.4.1! Model Proses Perangkat Lunak Model proses perangkat lunak adalah representasi abstrak dari proses perangkat lunak. Setiap model proses merepresentasikan suatu proses dari sudut pandang tertentu sehingga hanya memberikan informasi parsial mengenai proses tersebut. Terdapat sejumlah model proses umum yang telah dipakai secara luas untuk pengembangan sistem yang praktis, di antaranya adalah: 1.!
Model air terjun (waterfall). Model ini mengambil kegiatan proses dasar seperti
spesifikasi,
pengembangan,
validasi,
dan
evolusi;
serta
merepresentasikannya sebagai fase-fase proses yang berbeda. 2.!
Pengembangan evolusioner. Pendekatan ini berhimpitan dengan kegiatan spesifikasi, pengembangan, dan validasi. Suatu sistem awal dikembangkan dengan cepat dari spesifikasi abstrak. Sistem ini kemudian diperbaiki dengan masukan dari pelanggan untuk menghasilkan sistem yang memuaskan bagi kebutuhan pelanggan.
http://digilib.mercubuana.ac.id/
10
3.
Pengembangan sistem formal. Pendekatan ini didasarkan atas pembuatan spesifikasi sistem matematis dan pentransformasian spesifikasi ini, dengan memakai metode matematis, untuk membangun program. Verifikasi komponen sistem dilakukan dengan membuat argumen matematis yang disesuaikan dengan spesifikasi.
4.!
Pengembangan berdasarkan pemakaian ulang. Pendekatan ini didasarkan atas adanya komponen yang dapat dipakai ulang dalam jumlah yang signifikan. Proses pengembangan sistem terfokus pada integrasi komponen-komponen
ini
ke
dalam
suatu
sistem,
dan
bukan
mengembangkannya dari awal.
2.4.1.1! Model Air Terjun (Waterfall) Waterfall Waterfall) Model air terjun adalah model pertama yang diterbitkan untuk proses pengembangan perangkat lunak diambil dari proses rekayasa lain (Sommerville, 2016). Berkat penurunannya dari satu fase ke fase lainnya, model ini dikenal sebagai “model air terjun” atau siklus hidup perangkat lunak.
Gambar 2.1 Fase proses model air terjun Pada prinsipnya, hasil dari setiap fase merupakan satu atau lebih dokumen yang disetujui (ditanda-tangani). Fase berikutnya tidak boleh dimulai sebelum fase sebelumnya selesai. Tahap-tahap utama dari model ini memetakan kegiatankegiatan pengembangan dasar, yaitu:
http://digilib.mercubuana.ac.id/
11
1.
Analisis dan definisi persyaratan—pelayanan, batasan, dan tujuan sistem ditentukan melalui konsultasi dengan pengguna sistem. Persyaratan ini kemudian didefinisikan secara rinci dan berfungsi sebagai spesifikasi sistem.
2.!
Perancangan sistem dan perangkat lunak—proses perancangan sistem membagi persyaratan dalam sistem perangkat keras atau perangkat lunak. Kegiatan
ini
menentukan
arsitektur
sistem
secara
keseluruhan.
Perancangan perangkat lunak melibatkan identifikasi dan deskripsi abstraksi sistem perangkat lunak yang mendasar dan hubunganhubungannya. 3.!
Penerapan dan pengujian unit—pada tahap ini, perancangan perangkat lunak direalisasikan sebagai serangkaian program atau unit program. Pengujian unit melibatkan verifikasi bahwa setiap unit telah memenuhi spesifikasinya.
4.!
Integrasi dan pengujian sistem—unit program atau program individual diintegrasikan dan diuji sebagai sistem yang lengkap untuk menjamin bahwa persyaratan sistem telah dipenuhi. Setelah pengujian sistem, perangkat lunak dikirim kepada pelanggan.
5.!
Operasi dan pemeliharaan—biasanya (walaupun tak seharusnya), ini adalah fase siklus hidup yang paling lama. Sistem dipasang dan dipakai. Pemeliharaan mencakup koreksi dari berbagai kesalahan yang tidak ditemukan pada tahap-tahap terdahulu, perbaikan atas penerapan unit sistem dan pengembangan pelayanan sistem, sementara persyaratanpersyaratan baru ditambahkan.
2.5!
Bahasa Pemodelan Obyek Standard (Unified Modeling Language) UML adalah himpunan struktur dan teknik untuk pemodelan rancangan
program berorientasi obyek (object-oriented program) yang dikembangkan oleh Object Management Group (OMG), suatu organisasi yang telah mengembangkan model, teknologi, dan standard program berorientasi obyek sejak 1980-an (Kronke, 2005). UML digunakan untuk menentukan, memvisualisasikan, membangun, dan
http://digilib.mercubuana.ac.id/
12
mendokumentasikan suatu aplikasi. UML dikembangkan sebagai suatu alat untuk analisis dan desain berorientasi obyek oleh Grady Booch, Jim Rumbaugh, dan Ivar Jacobson. Namun demikian, UML dapat digunakan untuk memahami dan mendokumentasikan setiap aplikasi. Terdapat 10 macam bagan dalam UML, namun hanya digunakan 2 bagan dalam penelitian ini, di antaranya:
2.5.1!
Bagan Kasus Penggunaan (Use Case Diagram) Bagan kasus penggunaan digunakan untuk memodelkan semua bisnis
proses berdasarkan perspektif pengguna aplikasi (Fowler, 2005). Bagan penggunaan kasus terdiri atas komponen seperti aktor, kasus, dan hubungannya. Aktor tor merepresentasikan pengguna yang akan mengoperasikan atau pengguna yang berinteraksi dengan aplikasi. Kasus merepresentasikan operasi-operasi yang dilakukan oleh aktor. Kasus digambarkan berbentuk elips dengan nama operasi dituliskan di dalamnya. Aktor yang melakukan operasi dihubungkan dengan garis lurus ke kasus.
2.5.2!
Diagram)) Bagan Aktivitas ((Activity Diagram Bagan aktivitas adalah teknik untuk menggambarkan logika prosedural,
proses bisnis, dan jalur kerja. Dalam beberapa hal, bagan ini memainkan peran mirip sebah bagan alir, tetapi perbedaan prinsip antara bagan ini dan notasi bagan alir adalah bagan ini mendukung perilaku paralel. Bagan aktivitas memungkinkan siapapun yang melakukan proses untuk memilih urutan dalam melakukannya. Dengan kata lain, bagan hanya menyebutkan aturan–aturan rangkaian dasar yang harus kita ikuti (Fowler, 2005).
2.6!
Penelitian Sejenis Adapun penelitian lainnya yang telah dilakukan dengan pendekatan
metode pencocokan string berdasarkan ketidaktepatan (inexact string matching) yang menerapkan algoritme Jaro-Winkler distance, dan dijadikan rujukan dalam
http://digilib.mercubuana.ac.id/
13
penelitian mengenai pemeriksaan ejaan secara komputatif ini adalah penelitian Ibnu Farid Iskandar (2010) yang berjudul “Analisa Tingkat Kecocokan Pencarian Nama Dalam Basis Data Dengan Menggunakan Algoritma Soundex dan Algoritma JaroWinkler.” Tujuan penelitiannya adalah menghasilkan aplikasi perbandingan pencarian nama menggunakan algoritme Soundex dan algoritme Jaro-Winkler distance untuk mengetahui apakah algoritme Jaro-Winkler distance dapat dijadikan sebagai solusi yang lebih baik dalam melakukan pencarian nama berdasarkan kemiripan kata dibandingkan dengan algoritma Soundex yang umum digunakan dalam sistem basis data. Hasil penelitiannya menunjukkan bahwa algoritme JaroWinkler distance lebih akurat dalam melakukan pencarian nama dan sangat cocok digunakan untuk membandingkan nama lengkap dengan urutan kata yang sama walaupun terdapat perbedaan bunyi pengucapan maupun kesalahan pengetikan.
http://digilib.mercubuana.ac.id/