SKRIPSI
Diajukan Untuk Memenuhi Sebagai Persyaratan Dalam Memperoleh Gelar Sarjana Komputer Progdi Teknik Informatika
Disusun Oleh :
Ikhwanul Dawam Sutawijaya
NPM 0634010258
JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN” JAWA TIMUR
Pembimbing 2 : Nurcahyo Wibowo, S.Kom, M.Kom Penyusun : Ikhwanul Dawam S
ABSTRAK
Perubahan dan Pembaharuan yang telah dicapai dalam bidang teknologi informasi seperti otomatisasi dan komputerisasi telah berkembang dengan cepat dan menuntut kalangan industri dan praktisi yang berkecimpung di dalamnya untuk lebih siap menghadapi kemajuan yang ada, dengan selalu mencari inovasi – inovasi baru sebagai solusi pemecahan dari setiap persoalan yang dihadapi.
Information Retrieval adalah suatu bidang ilmu yang mempelajari
cara-cara temu kembali dan penelusuran dokumen. Dalam information retrieval, proses untuk menggabungkan atau memecahkan dari setiap varian-varian suatu kata menjadi kata dasar disebut stemming. Algoritma Boyer-Moore merupakan algoritma pembanding kalimat yang sistematika kerjanya membandingkan karakter-karakter antara karakter teks paragraf dengan karakter acuan pencarian, ketika karakter yang dibandingkan tidak sama maka pencarian karakter akan dilanjutkan ke pencarian karakter berikutnya.
Dengan memanfaatkan teknologi PHP, memasukkan referensi KUHP dan memproses masukkan tersebut. Untuk pencarian pasal menggunakan metode
string matching boyer moore.
Dari hasil uji coba pencarian data pasal yang telah dilakukan, maka didapatkan hasil bahwa algoritma Boyer-Moore yang diaplikasikan ke dalam aplikasi sistem pendukung keputusan penyidik kepolisian tindak pidana pelanggaran berdasarkan KUHP dengan menggunakan metode string matching
Boyer-Moore ini cukup memberikan hasil yang efisien. Hal ini dibuktikan pada
saat proses pencarian yang cukup singkat. pada fase pencarian, algoritma ini membutuhkan waktu kurang dari 1 menit, pada kasus terburuk, algoritma ini akan melakukan pencocokkan karakter, namun pada performa terbaiknya algoritma ini hanya akan melakukan kurang dari 1 menit proses pencocokkan.
ABSTRAK
Perubahan dan Pembaharuan yang telah dicapai dalam bidang teknologi informasi seperti otomatisasi dan komputerisasi telah berkembang dengan cepat dan menuntut kalangan industri dan praktisi yang berkecimpung di dalamnya untuk lebih siap menghadapi kemajuan yang ada, dengan selalu mencari inovasi – inovasi baru sebagai solusi pemecahan dari setiap persoalan yang dihadapi.
Information Retrieval adalah suatu bidang ilmu yang mempelajari cara-cara temu kembali dan penelusuran dokumen. Dalam information retrieval, proses untuk menggabungkan atau memecahkan dari setiap varian-varian suatu kata menjadi kata dasar disebut stemming. Algoritma Boyer-Moore merupakan algoritma pembanding kalimat yang sistematika kerjanya membandingkan karakter-karakter antara karakter teks paragraf dengan karakter acuan pencarian, ketika karakter yang dibandingkan tidak sama maka pencarian karakter akan dilanjutkan ke pencarian karakter berikutnya.
Dengan memanfaatkan teknologi PHP, memasukkan referensi KUHP dan memproses masukkan tersebut. Untuk pencarian pasal menggunakan metode string matching boyer moore.
Dari hasil uji coba pencarian data pasal yang telah dilakukan, maka didapatkan hasil bahwa algoritma Boyer-Moore yang diaplikasikan ke dalam aplikasi sistem pendukung keputusan penyidik kepolisian tindak pidana pelanggaran berdasarkan KUHP dengan menggunakan metode string matching Boyer-Moore ini cukup memberikan hasil yang efisien. Hal ini dibuktikan pada saat proses pencarian yang cukup singkat. pada fase pencarian, algoritma ini membutuhkan waktu kurang dari 1 menit, pada kasus terburuk, algoritma ini akan melakukan pencocokkan karakter, namun pada performa terbaiknya algoritma ini hanya akan melakukan kurang dari 1 menit proses pencocokkan.
Syukur Alhamdulillaahi rabbil ‘alamin terucap kehadirat Allah SWT atas segala
limpahan Kekuatan-Nya sehingga dengan segala keterbatasan waktu, tenaga, pikiran dan
keberuntungan yang dimiliki penyusun, akhirnya penyusun dapat menyelesaikan Skripsi
yang berjudul “Sistem Pencarian Pasal-Pasal Tindak Pidana Pelanggaran Berdasarkan
KUHP Dengan Metode String Matching Boyer-Moore”.
Skripsi ini disusun guna diajukan sebagai salah satu syarat untuk
menyelesaikan program Strata Satu (S1) Sarjana Komputer pada jurusan Teknik
Informatika, Fakultas Teknologi Industri, UPN ”VETERAN” Jawa Timur.
Tugas Akhir ini takkan pernah terwujud tanpa dukungan, saran, dan bantuan
dari berbagai pihak baik secara langsung maupun tidak langsung, materiil maupun
moral. Untuk itu, penulis menyampaikan rasa terima kasih dan penghargaan
setinggi-tingginya kepada:
1. Bpk. Ir. Sutiyono, MT Selaku Dekan Fakultas Teknologi Industri
Universitas Pembangunan Nasional ”Veteran” Jawa Timur
2. Bpk. Ir. Mutasim, MT Selaku Wakil Dekan Fakultas Teknologi Industri
Universitas Pembangunan Nasional ”Veteran” Jawa Timur
3. Bpk. Basuki Rachmat, S.Si, MT Selaku Ketua Program Studi Teknik
Informatika
4. Prof. Dr. Ir. Akhmad Fauzi, MMT serta Nurcahyo Wibowo, S.Kom,
M.Kom selaku Dosen Pembimbing I dan II Tugas Akhir.
5. Kedua orang tua penulis yang selama ini tulus ikhlas membimbing dan
kawan2 WA dan lainnya yang telah membantu memberikan ide, saran,
kritik dan fasilitas.
Penulis sangat menyadari bahwa Skripsi ini masih jauh dari kesempurnaan,
sehingga penulis mengharapkan komentar, kritik, dan saran dari berbagai pihak.
Semoga komentar, kritik, dan saran tersebut menjadi modal berharga bagi penulis
dan bagi proses pengembangan Skripsi ini di masa mendatang.
Akhirnya, inilah sedikit karya yang dapat penulis berikan dalam Skripsi ini.
Selanjutnya, penulis berharap keberadaan Skripsi ini bermanfaat banyak bagi
berbagai pihak, dan bisa digunakan pada jalan yang semestinya.
Surabaya, 21 juni 2010
ABSTRAK .... ... i
KATA PENGANTAR ... ii
DAFTAR ISI ... iv
DAFTAR TABEL ... vii
DAFTAR GAMBAR ... viii
BAB I PENDAHULUAN ... 1
1.1. Latar Belakang ... 1
1.2. Perumusan masalah ……….. .. 3
1.3. Batasan Permasalahan ... 4
1.4. Tujuan Penelitian ... 4
1.5. Manfaat Penelitian ... 4
1.6. Metodologi Pembuatan Skripsi ... 5
1.7. Sistematika Pembahasan... 6
BAB II TINJAUAN PUSTAKA ... 8
2.1 KUHP ... 8
2.2 Algoritma Boyer-Moore ... 11
2.5 Stemmer Indonesia ... ... 16
2.6 PHP ... 21
2.6.1 Dasar-dasar PHP …... ... 22
2.6.2 Kelebihan PHP ... 23
2.6.3 Struktur Program PHP ... 26
2.7 MySQL ... 26
2.7.1 Kelebihan MySQL ... ... 30
2.7.2 Konektivitas PHP-MySQL.... ... 34
2.8 Kebutuhan-kebutuhan Sistem ... 35
2.8.1 Alir Dokumen (Document Flow) ... 35
2.8.2 Sistem Flowchart (Flowchart System) ... 36
BAB III PERANCANGAN SISTEM ... 39
3.1 Gambaran sistem ... 39
3.2 Desain dan Perancangan Proses …… ... 42
3.3 Pseudocode Algortima Boyer-Moore …… ... 45
3.4 Perancangan Desain Basis Data …… ... 51
4.2 Implementasi Basis Data …… ... 57
4.3 Implementasi Antarmuka ... 66
4.3.1 Form Utama ... 66
4.3.2 Form Login ... 67
4.3.3 Form Insert dan update data Pasal ... 68
BAB V UJI COBA DAN EVALUASI ... 70
5.1 Uji Coba Pencarian Data Pasal ... 70
5.2 Evaluasi Halaman Admin ... 74
5.2.1 Uji Coba Pencarian Data Pasal ……….. 74
5.2.2 Uji Coba Pengelolahan Halaman Admin ……….. 76
5.3 Evaluasi ……… 79
BAB VI PENUTUP ... 80
6.1 Kesimpulan ... 80
6.2 Saran ... ... 80
2.1.
2.2. Table Contoh Imbuhan yang tidak diperbolehkan ……….. 17
2.3. Table Daftar Sub rutin ………. 17
2.4. Table Contoh Sub Rutin Buang Depan ………...… 18
2.5. Table Proses Sub Rutin ………. 19
2.6. Table Contoh sub Rutin ……… 20
3.1 Tabel Pasal ……… 52
2.1 Bagan Tahapan Teks Pre-Processing ...
2.2 Hasil Dari File Coba1.PHP ... 23
3.1 Gambaran Sistem ... 39
3.2 Sistem Flow Proses Input Pasal ... 41
3.3 Sistem Flow Proses Pencarian Informasi dan Antarmuka ... 42
3.4 Context Diagram ... 43
3.5 Data Flow Diagram Level 0 ... 44
3.6 Data Flow Diagram Sub Proses Input Pasal ... 45
3.7 Data Flow Diagram Sub Proses Pencarian ... 45
3.8 Pseudocode Prosedur Function Stoplist ... 47
3.9 Flowchart Fungsi Boyer-Moore ... 48
3.10 Pseudocode Prosedur Fungsi Cari_bm ... 49
3.11 Pseudocode Prosedur Prosedur Pada Fase Pencarian ... 51
3.12 Conceptual Data Model ... 51
3.13 Physical Data Model ... 52
3.14 Desain Antarmuka User ... 53
3.15 Desain Form Hasil Penelusuran ... 54
3.16 Desain Login... 55
4.2 Potongan Source Code Function Highlightwords ... 59
4.3 Potongan Source Code Function Stoplist ... 60
4.4 Potongan Source Code Function Stemming Step1 ... 60
4.5 Potongan Source Code Function Stemming Step2 ... 61
4.6 Potongan Source Code Function Stemming Step3 ... 63
4.7 Potongan Source Code Function Stem ... 63
4.8 Potongan Source Code Function Cari Boyer-Moore ... 65
4.9 Potongan Source Code Function Stemming ... 66
4.10 Form Utama dan Form Pencarian ... 67
4.11 Form login ... 67
4.12 Form Insert dan Edit Data Pasal ... 68
4.13 Form Data Pasal... 69
5.1 Form Pencarian Pasal Berdasarkan Boyer Moore & Stemming dengan kata kunci “Nakalan Terhadap” ... 70
5.2 Form Hasil Penulusuran Kata Kunci “Nakalan Terhadap” ... 71
5.3 Rincian Pasal 490 ... 72
5.4 Pencarian Pasal Berdasarkan M et ode Exact Phrase Dengan Kat a Kunci “ Nakalan Terhadap” ... 72
5.8 Halaman Admin ... 75
5.9 Form Tambah Data ... 76
5.10 Form Lihat Data Pasal 489 ... 77
5.11 Halaman Edit Data ... 78
1.1. Latar Belakang
Seiring perkembangan zaman dan teknologi yang semakin lama
berkembang dengan pesat sejalan dengan ditemukannya teknologi dan alat-alat
canggih, hal ini mengakibatkan semakin tingginya tingkat persaingan dalam dunia
usaha dan ini merupakan sebuah tantangan yang harus dihadapi oleh semua pihak.
Perubahan dan pembaharuan yang telah dicapai dalam bidang teknologi informasi
seperti otomatisasi dan komputerisasi telah berkembang dengan cepat dan
menuntut kalangan industri dan praktisi yang berkecimpung di dalamnya untuk
lebih siap menghadapi kemajuan yang ada, dengan selalu mencari inovasi –
inovasi baru sebagai solusi pemecahan dari setiap persoalan yang dihadapi.
Dalam suatu lembaga pendidikan atau perkantoran telah banyak sekali
sistem informasi atau aplikasi yang di gunakan untuk membantu kelancaran suatu
pekerjaan, khususnya dalam hal ini di bidang penyidikan kepolisian yang selama
ini di kerjakan secara manual dalam mendukung keputusan untuk memecahkan
suatu kasus penyidikan pelanggaran.
Dalam melakukan penyidikan kepolisian dibutuhkan kinerja yang efektif
dan efisien, sehingga dapat membantu mempercepat dalam pengambilan
keputusan di kepolisian.
Untuk memecahkan masalah ini tentu saja diperlukan sebuah teknologi
Dalam hal ini teknologi yang dikedepankan adalah teknologi Sistem Pendukung
Keputusan, teknologi ini adalah sebuah teknologi yang dapat mengatur pencarian
berdasarkan keywords yang dimasukkan kemudian dengan teknologi ini pencarian
akan menghasilkan relasi antar pasal, tiap-tiap relasi divisualisasikan dalam
bentuk sebuah nilai. Dimana nilai ini akan menunjukkan seberapa dekat pasal
yang muncul tersebut dengan keywords yang dimasukkan, dan diasumsikan
bahwa keywords yang dimasukkan mewakili apa yang akan dicari oleh user.
Teknologi ini juga dikembangkan hingga membuat index dan
mengklasifikasikannya ke dalam beberapa kelas yang relevan dengan isi dari
pasal yang diinginkan (clustering) dan kemudian menyajikannya secara berantai
satu pasal dengan pasal yang lainnya (Text Mining Tools on the Internet An
overview, Jan van Gemert, 2000). Yang dimaksudkan berantai dalam pengertian
ini adalah antara satu pasal dengan pasal yang lainnya saling mendukung baik
fisik informasi ataupun hubungan yang mengacu pada salah satu aspek di antara
kedua pasal tersebut.
Dalam tugas akhir ini penulis hendak menyajikan, menulis, merinci, dan
meneliti teknologi ini serta membuatnya agar mampu membantu parapenyidik
kepolisian agar dapat menggunakan teknologi ini dalam rangka pencapaian
harapan yang dimaksud.
Untuk mendukung hal tersebut perlu digunakan suatu sistem sebagai
pendukung penyidikan.Dengan memanfaatkan teknologi PHP, memasukkan
referensi KUHP dan memproses masukkan tersebut. Untuk pencarian pasal
adalah algoritma pencarian string yang paling efektif saat ini. Algoritma yang
ditemukan oleh Bob Boyer dan J. Strother Moore ini telah menjadi standar untuk
berbagai literatur pencarian string. Algoritma Boyer-Moore akan menyimpan
informasi pergeseran untuk melakukan pencarian string. Karakteristik utama dari
algoritma Boyer-Moore adalah algoritma ini melakukan pencocokan string mulai
dari kanan (belakang). Dengan karakteristik tersebut, ketidakcocokan saat terjadi
perbandingan string akan membuat pergerakan pattern melompat lebih jauh untuk
menghindari perbandingan karakter pada string yang diperkirakan gagal.
Aplikasi ini di buat dengan menggunakan metode string matching dan
algoritma boyer moore, yang di harapkan bisa membantu dalam sistem
pendukung keputusan untuk penyidikan kepolisian.
1.2. Perumusan Permasalahan
Berdasarkan latar belakang yang telah dijelaskan diatas, maka dapat
dirumuskan masalah dalam Tugas Akhir ini, yaitu :
1. Bagaimana membuat aplikasi pencocokan kata dengan menggunakan
algoritma boyer-moore pada sistem pendukung keputusan di tingkat penyidik
kepolisian?
2. Bagaimana membuat aplikasi sistem pendukung keputusan di tingkat penyidik
kepolisian secara efisien dan efektif untuk penyidikan suatu kasus pada proses
1.3. Batasan Permasalahan
Pada pembuatan aplikasi ini perlu didefinisikan batasan masalah mengenai
sejauh mana pembuatan aplikasi ini akan dikerjakan. Beberapa batasan masalah
tersebut antara lain:
a. Aplikasi ini dibuat menggunakan bahasa pemrograman PHP dan MY SQL
sebagai penyimpanan data atau database.
b. Aplikasi yang dibuat ini hanya mengenai kasus pelanggaran saja.
c. Aplikasi yang dibuat ini hanya mendukung suatu keputusan dari
penyidikan kasus pelanggaran.
d. Aplikasi yang di buat hanya bisa melakukan aktivitas pencarian.
1.4. Tujuan Penelitian
Tujuan dari membuat aplikasi sistem pendukung keputusan di tingkat
penyidik kepolisian dengan mengimplementasikan metode String Matching Boyer
Moore.
1.5. Manfaat Penelitian
Adanya tugas akhir ini diharapkan dapat bermanfaat bagi:
a. Mempermudah untuk penyidikan kepolisian dalam suatu kasus.
b. Mempercepat efisiensi waktu dalam penyidikan kepolisian dalam
1.6. Metodologi Pembuatan Skripsi
Pembuatan skripsi terbagi menjadi beberapa tahapan sebagai berikut :
a) Survey Lapangan
Pada tahap ini dilakukakan survey terhadap aplikasi database Perpustakaan
yang berhubungan dengan sirkulasi dan koleksi buku.Tujuan dari diadakan
survey ini adalah untuk mengetahui proses bisnis serta perancangan
database yang sudah ada.
b) Studi Literatur
Pada tahap ini dikumpulkan dokummen-dokumen, referensi-referensi,
buku-buku, sumber dari internet, atau sumber-sumber lain yang diperlukan
untuk merancang dan mengimplementasikan aplikasi.
c) Analisa dan Perancangan Aplikasi
Dari hasil studi leteratur dan hasil survey lapangan akan dibuat deskripsi
umum sistem perancangan data warehouse serta dilakukan analisa
kebutuhan sistem, selain itu juga dilakukan perancangan awal aplikasi
yang akan dibuat, sehingga akan dihasilkan desain antar muka dan proses
yang siap untuk diimplementasikan.
d) Pembuatan Aplikasi.
Tahapan dimana model dan perancangan aplikasi yang telah dibuat
diimplementasikan dalam tampilan web.
e) Uji coba dan evaluasi aplikasi
Pada tahap ini aplikasi yang telah dibuat ini akan dilakukan beberapa
f) Penyusunan Buku Skripsi
Pada tahap ini merupakan tahap terakhir dari pengerjaan skripsi. Buku ini
disusun sebagai laporan seluruh proses pengerjaan skripsi. Dari
penyusunan buku ini diharapkan dapat memudahkan pembaca yang ingin
menyempurnakan dan mengembangkan aplikasi lebih lanjut.
1.7. Sistematika Pembahasan
Sistematika pembahasan yang dibuat dalam skripsi ini disusun dalam
beberapa bab, yang dijelaskan sebagai berikut :
BAB I PENDAHULUAN
Bab ini berisi tentang deskripsi umum skripsi yang meliputi
latar belakang, perumusan masalah, batasan masalah, tujuan,
manfaat, serta metodelogi dan sistematika pembahasan.
BAB II TINJAUAN PUSTAKA
Bab ini berisi mengenai konsep dan teori pembelajaran yang
menjadi landasan pembuatan skripsi.
BAB III ANALISA DAN PERANCANGAN SISTEM
Bab ini membahas tentang perancangan data warehouse yang
akan dibangun dengan menggunakan fact constellations. Serta
perancangan tampilan program.
Bab ini membahas tentang tampilan-tampilan dari program
yang telah dibuat, dan juga cara menjalankan aplikasi serta
ujicoba dari program yang telah dibuat tersebut.
BAB V UJI COBA DAN EVALUASI
Bab ini menjelaskan tentang proses pengujian terhadap sistem
yang telah dibuat dan melakukan evaluasi terhadap hasil
pengujian tersebut.
BAB VI PENUTUP
Bab ini berisi tentang kesimpulan yang dapat diambil dari
keuntungan sistem serta berisi tentang saran-saran yang
diambil dari kelemahan sistem untuk perbaikan guna
2.1. KUHP
Penyusunan kitab undang-undang Hukum Pidana Nasional yang baru
untuk menggantikan kitab Undang-Undang Hukum Pidana peninggalan
pemerintah kolonial Belanda dengan segala perubahannya merupakan salah satu
usaha dalam rangka pembangunan hukum nasional. Usaha tersebut dilakukan
secara terarah dan terpadu agar dapat mendukung pembangunan nasional di
berbagai bidang, sesuai dengan tuntutan pembangunan serta tingkat kesadaran
hukum dan dinamika yang berkembang dalam masyarakat.
Menelusuri sejarah hukum pidana di Indonesia, dapat diketahui bahwa
Kitab Undang-Undang Hukum Pidana yang berlaku di Indonesia terbagi atas 3
buku :
1. Buku Pertama – Aturan Umum
a. Bab I - Batas-batas berlakunya Aturan Pidana dalam
Perundang-undangan
b. Bab II - Pidana
c. Bab III - Hal-hal yang Menghapuskan, Mengurangi atau
Memberatkan Pidana
d. Bab IV - Percobaan
e. Bab V - Penyertaan Dalam Tindak Pidana
g. Bab VII - Mengajukan dan Menarik Kembali Pengaduan dalam
Hal Kejahatan-kejahatan yang Hanya Dituntut atas Pengaduan
h. Bab VIII - Hapusnya Kewenangan Menuntut Pidana dan
Menjalankan Pidana
i. Bab IX - Arti Beberapa Istilah yang Dipakai dalam Kitab
Undang-undang
j. Aturan Penutup
2. Buku Kedua – Kejahatan
a. Bab - I Kejahatan Terhadap Keamanan Negara
b. Bab - II Kejahatan-kejahatan Terhadap Martabat Presiden dan
Wakil Presiden
c. Bab - III Kejahatan-kejahatan Terhadap Negara Sahabat dan
Terhadap Kepala Negara Sahabat Serta Wakilnya
d. Bab - IV Kejahatan Terhadap Melakukan Kewajiban dan Hak
Kenegaraan
e. Bab - V Kejahatan Terhadap Ketertiban Umum
f. Bab - VI Perkelahian Tanding
g. Bab - VII Kejahatan yang Membahayakan Keamanan Umum bagi
Orang atau Barang
h. Bab - VIII Kejahatan Terhadap Penguasa Umum
i. Bab - IX Sumpah Palsu dan Keterangan Palsu
j. Bab - X Pemalsuan Mata Uang dan Uang Kertas
l. Bab - XII Pemalsuan Surat
m. Bab - XIII Kejahatan Terhadap Asal-Usul dan Perkawinan
n. Bab - XIV Kejahatan Terhadap Kesusilaan
o. Bab - XV Meninggalkan Orang yang Perlu Ditolong
p. Bab - XVI Penghinaan
q. Bab - XVII Membuka Rahasia
r. Bab - XVIII Kejahatan Terhadap Kemerdekaan Orang
s. Bab - XIX Kejahatan Terhadap Nyawa
t. Bab - XX Penganiayaan
u. Bab - XXI Menyebabkan Mati atau Luka-luka Karena Kealpaan
v. Bab - XXII Pencurian
w. Bab - XXIII Pemerasan dan Pengancaman
x. Bab - XXIV Penggelapan
y. Bab - XXV Perbuatan Curang
z. Bab - XXVI Perbuatan Merugikan Pemiutang atau Orang yang
Mempunyai Hak
aa. Bab - XXVII Menghancurkan atau Merusakkan Barang
bb.Bab - XXVIII Kejahatan Jabatan
cc. Bab - XXIX Kejahatan Pelayaran
dd.Bab - XXIX A Kejahatan Penerbangan dan Kejahatan Terhadap
Sarana/Prasarana Penerbangan
3. Buku Ketiga – Pelanggaran
a. Bab I - Tentang Pelanggaran Keamanan Umum bagi Orang atau
Barang dan Kesehatan
b. Bab II - Pelanggaran Ketertiban Umum
c. Bab III - Pelanggaran Terhadap Penguasa Umum
d. Bab IV - Pelanggaran Mengenai Asal-Usul dan Perkawinan
e. Bab V - Pelanggaran Terhadap Orang yang Memerlukan Pertolongan
f. Bab VI - Pelanggaran Kesusilaan
g. Bab VII - Pelanggaran Mengenai Tanah, Tanaman dan Pekarangan
h. Bab VIII - Pelanggaran Jabatan
i. Bab IX - Pelanggaran Pelayaran
2.2. Algoritma Boyer-Moore
Pada pencarian kalimat yang berhubungan atau beruntut di dalam
aplikasi tugas akhir ini menggunakan algoritma Boyer-Moore. Algoritma ini
ditemukan oleh dua orang ahli matematika dari Inggris yaitu Mr. Boyer dan Mr.
Moore, mereka menemukan algoritma ini pertma kali sebagai sebuah algoritma
pencarian kalimat di dalam sebuah teks paragraf dari sebuah tabloid berbahasa
inggris. Kemudian seiring dengan kemajuan teknologi dan jaman algoritma ini
dikembangkan dan diberi nama sesuai dengan nama penemunya yaitu algoritma
Boyer-Moore. Algoritma ini merupakan salah satu algoritma tercepat di dalam
mencari kata-kata yang terkandung di dalam sebuah teks paragraf.
sistematika kerjanya membandingkan karakter-karakter antara karakter teks
paragraf dengan karakter acuan pencarian, ketika karakter yang dibandingkan
tidak sama maka pencarian karakter akan dilanjutkan ke pencarian karakter
berikutnya. Di dalam melakukan pembandingan algoritma ini tidak menggunakan
pembanding kata seperti dulu penemunya menemukannya, namun menggunakan
pembanding Knuth-Morris-Pratt Algorithms.
Secara khusus algoritma ini melakukan perbandinagn satu karakter
terdepan hingga yang terakhir dari kalimat teks paragraf yang dicari dan kemudian
pencarian juga dilakukan pada kalimat acuan sehingga kira-kira gambaran dari
proses pencarian ini seperti yang terlihat dibawah ini :
Misalkan teks yang dicari adalah : aplikasi search engine menggunakan data
mining.
Dan sedangkan untuk kalimat yang akan dicari adalah search engine
Maka prosesnya seperti ini :
Search engine …... teks acuan
Aplikasi search engine menggunakan data mining ... teks p1
Plikasi search engine menggunakan data mining ... teks p2
Likasi search engine menggunakan data mining ... teks p3
...
I search engine menggunakan data mining... teks p8
Search engine menggunakan data mining... teks p9
Search engine menggunakan data mining... teks p10
Search engine menggunakan data mining... teks p12
Search engine menggunakan data mining... teks p13
...
Search engine menggunakan data mining... teks p21
Search enginemenggunakan data mining... teks p22
Break;
*) lihat pada tulisan yang bercetak miring
Pada proses diatas terlihat jelas pencarian karakter dimulai dari karakter
tterdepan dan kemudian karakter yang cocok akan dipertahankan sedangkan yang
tidak cocok langsung akan dibuang. Proses ini akan terus berulang hingga
karakter acuan sudah habis dibandingkan. Proses akan langsung keluar dari
rekursif dan kemudian akan memberikan respon positif sebagai respon bahwa
kalimat yang dimaksud ditemukan. Secara matematis pada langkah-langkah yang
terdapat pada proses diatas maka beberapa hal yang harus diperhatikan adalah :
1. Untuk pergeseran yang baru, diharuskan untuk melakukan perulangan
secara keseluruhan pada kalimat acuan meski pergeseran sebelumnya
berlangsung sukses. Selain itu, semua karaketer harus dibandingkan
dengan semua kalimat acuan yang sudah kita bandingkan (karena selain
itu, semua ketidakcocokan akan dihapuskan). Dalam kasus biasanya,
karakter yang menyebabkan terjadinya ketidakcocokan dengan pergeseran
saat ini harus segeranya dibuang, untuk melakukannya maka diperlukan
right) satu kali. (Pergeseran itu dilakukan karena jika terjadi
ketidakcocokan karakter dan tidak dibuang maka yang terjadi adalah
bagian yang tidak cocok dianggap sebagai bagian yang cocok dan kalimat
acuan akan terus bergeser ke kanan ).
Jika d > j, maka kita akan melakukan pergeseran sebelumnya dari bagian kalimat
acuan yang sudah kita bandingkan. Setelah itu kalimat acuan terus bergerak ke
kanan dan bagian sebelumnya tidak dihilangkan supaya tidak terjadi kerancuan
(ingat perulangan dilakukan terus dari awal).
2.3. Information Retrieval
Information Retrieval adalah suatu bidang ilmu yang mempelajari
cara-cara temu kembali dan penelusuran dokumen. Temuan kembali informasi (IR) ini
sendiri telah dilakukan lebih dari 4000 tahun yang lalu. Orang telah
mengorganisasikan informasi pada masa itu walaupun masih sangat sederhana.
Pada tahun 1940 permasalahan dalam hal media penyimpanan dokumen
telah menarik banyak orang. Jumlah dokumen yang tumbuh dengan besar dan
cepat mengakibatkan kebutuhan yang semakin besar pula terhadap efisiensi dalam
penyimpanan dan retrieval informasi, akurasi, serta kecepatan akses. Jika hal ini
tidak dilakukan, maka akan berakibat sulitnya temu kembali informasi serta
banyaknya informasi yang terjadi. Selanjutnya hal ini akan berakibat pada
duplikasi pekerjaan yang sudah pernah dilakukan sebelumnya.
Teknik IR banyak digunakan dalam tiga fase pengklasifikasian teks yang
a. Persiapan dokumen (tahap preprocessing) termasuk proses indexing.
b. Pembuatan pengklasifikasi melalui proses pembelajaran, dalam tugas akhir
ini menggunakan decision tree classifier.
c. Evaluasi unjuk kerja pengklasifikasi.
2.4. Pre-Processing
Tahap ini merupakan tahap dimana dokumen tekstual ditangani dan
disiapkan untuk membuat dokumen-dokumen tersebut siap diproses oleh decision
tree classifier. Dibawah ini merupakan bagan tahapan teks preprocessing yang
dilakukan tahapan dokumen sebelum bisa dilakukan proses training didalamnya.
Gambar 2.1 Bagan Tahapan Teks Pre-Processing
Ada 5 tahapan prosedur teks preprocessing (Baeza-Yates dan
Ribeiro-Neto, 1999) yaitu :
1. stoplist.
2. Konstruksi struktur kategorisasi kata.
2.4.1. Stoplist
Stoplist merupakan proses menghilangkan kata-kata umum. Misalkan
pada bahasa indonesia saja.
2.5. Stemmer Indonesia
Struktur pembentukan kata dalam Bahasa Indonesia adalah sebagai berikut:
[awalan-1] + [awalan-2] + dasar + [akhiran] + [kepunyaan] + [sandang]
Masing-masing bagian tersebut (yang dalam kotak bisa ada atau tidak),
digabungkan dengan kata dasar membentuk kata berimbuhan. Di bawah ini
imbuhan yang banyak digunakan dalam Bahasa Indonesia :
1. Kata sandang: -lah, -kah, -pun, -tah.
2. Kata kepunyaan: -ku, -mu, -nya.
3. Akhiran: -i, -an, -kan.
4. Awalan: me-, ber-, pe-, di-, ke-, ter-, se-.
Dalam proses penggabungan awalan, terdapat aturan-aturan berikut:
Table 2.1 Daftar Imbuhan Indonesia
Awalan Perubahan
Bentuk Aturan
me | pe meng | peng + V | k | g | h | q … Misal: mengambil = meng + ambil
V = Vokal (a, i, u, e, o)
meny | peny + s … Misal: penyakit = peny + sakit
mem | pem + b | f | p | v … Misal: membuat = mem + buat men | pen + c | d | j | s | z … Misal: mencari = men + cari me | pe + m | n | r | l | y | w | x | + V … Misal: melukis = me
ber | per | ter be | pe | te + r + V …
Untuk mencari r yang luluh dengan mencoba kombinasi ‘r + V …’ atau ‘V …’. Misal: peramal = pe + ramal
ber | per | ter + K | V …, Misal: terambil = ter + ambil
K = Konsonan (selain Vokal)
Dalam pasangan awalan dan akhiran, terdapat pasangan yang tidak diperbolehkan, yaitu:
Table 2.2 Contoh Imbuhan yang tidak diperbolehkan
Awalan Akhiran Tidak Sah
ber- | ke- | se- | per- -i, Misal: ber-tanyai-i
di- | me- | ter- -an, Misal: di-tinggal-an
ke- | se- | pe- -kan, Misal: pen-dapat-kan
Dalam program stemmer, aturan susunan awalan dan akhiran mengesampingkan
pengecualian yang jarang. Misalnya untuk kata ajar, yang digabung dengan per-
menjadi pelajar. Juga seperti pasangan ke- -i untuk ke-tahu-i, ini akan dianggap
tidak sah.
Terdapat 4 subrutin inti dalam proses mencari kata dasar, yaitu:
Table 2.3 Daftar Subrutin
Subrutin Fungsi Input Output BuangLuluh Melakukan penyesuaian
kata yang luluh terhadap
awalan me- dan pe-.
BuangDepan Membuang awalan kata, yaitu:
me-, ber-, pe-, di-, ke-, ter-, se-.
kata kata | undef, awalan
BuangImbuhan Membuang imbuhan kata, merupakan subrutin induk dari proses pemotongan kata.
kata kata | undef
Dalam subrutin BuangImbuhan terdapat proses pembuangan awalan (AW),
akhiran (AK), kata kepunyaan (KK), kata sandang (KS) dan kata dasar (D) seperti
di bawah. Pada tiap tahap pembuangan dilakukan pengecekan ke kamus untuk
mengakhiri pemotongan.
Table 2.4 Contoh subrutin buang depan
Tahap Kombinasi Imbuhan Contoh
Contoh pencarian kata dasar untuk kata ‘kebersamaannyalah’ ada di bawah ini.
Kata asal akan berubah bentuk (dicetak tebal bila berbeda dari sebelumnya) pada
proses Buang Depan yang selanjutnya diperiksa hasil potongnya pada Buang
Tabel. 2.5 Proses Subrutin
kebersama kebersamaan nyalah
Untuk mengetahui ketepatan hasil stemming perlu dilakukan analisa secara
manual. Mengingat jumlah kata yang cukup besar (11515 kata), pengamatan
mencakup sebagian saja, yaitu masing-masing 1000 kata teratas dari Berhasil dan
Gagal. Hasil analisa dari kata dasar yang salah seperti tabel di bawah ini. Hasil
stemmer dianggap salah dengan aturan berikut:
1. Terjadi pengubahan kata tetapi kata tersebut dianggap tidak tepat, misal:
mengakui (aku, bukan kaku).
2. Tidak terjadi pengubahan kata meskipun kata dasarnya ada dalam kamus,
misal: mengetahui (tahu).
3. Imbuhan tidak berhasil dipisahkan, meskipun kata tersebut sah sebagai
Bahasa Indonesia, misal: rinciannya (rinci), diujicobakan (ujicoba).
Kata-kata yang asalnya sudah salah, seperti pernggantian (harusnya pergantian),
penjelaskan (harusnya penjelasan) atau tidak terdapat di kamus, bila tidak didapat
Table 2.6 Contoh subrutin imbuhan kata asing
pernggantian,
Kata majemuk ketidakhadirannya, diperjualbelikan, diujicobakan
-tetap- tidakhadir, jualbeli, jualbeli
14
Aturan khusus mengetahui, belajar, perbaiki kata dasarnya ada di kamus
Secara statistik, dari 2000 kata tersebut terdapat 28 kata yang mengalami
kesalahan pencarian kata dasar, sehingga tingkat keberhasilannya adalah 98,6 %
2.6. PHP
PHP (Hypertext Preprocessor) merupakan bahasa pemrograman yang file
php diletakkan di server dan seluruh prosesnya dikerjakan di server, kemudian
hasilnyalah yang dikirimkan ke client, tempat pemakai menggunakan browser
(lebih dikenal dengan istilah server-side scripting). PHP bekerja didalam sebuah
dokumen HTML (Hypertext Markup Language) untuk menghasilkan isi dari
sebuah halaman web sesuai permintaan.
Kelebihan PHP adalah bersifat tidak memiliki ketergantungan terhadap
berbagai platform, jadi PHP dapat dijalankan dalam platform apapun, baik itu
Unix, Windows ataupun Macintosh. Kelebihan lain dari PHP adalah kemudahan
melakukan pengkodean, karena perintah PHP mirip dengan
perintah-perintah bahasa C selain itu kemudahan dari PHP adalah dapat dengan mudah
dihubungkan dengan aplikasi database (melakukan query), seperti MySQL. PHP
bersifat free (bebas dipakai). Pengguna tidak perlu membayar apapun untuk
menggunakan perangkat lunak ini.
Yang membedakan PHP dengan bahasa pemrograman lain adalah adanya tag
penentu, yaitu diawali dengan “<?” atau “<?php” dan diakhiri dengan “?>”.
Variabel dalam program PHP sangat penting karena akan menyimpan data
sementara baik jenis string, interger, maupun array. Variabel dinyatakan dengan
tanda $ dibelakang nama variable harus di awali dengan huruf atau (_) garis
bawah, kemudian diikuti dengan huruf atau angka. Pengunaan variabel dengan
$var=”coba variabel”;
$_var=”caba variabel lagi”;
$var32=”coba lagi variable”;
$var_var=”coba lagi variable”;
$var_var32=”coba lagi variabel’;
Pendeklarasian variabel selalu diikuti suatu nilai variabel tersebut, baik
nilai variabel berupa teks/string maupun angka. Apabila variabel tersebut belum
memiliki nilai, maka tidak perlu di deklarasikan. Perlu diperhatikan bahwa
variabel bersifat case sensitive, artinya penulisan nama variabel membedakan
bentuk penulisan antara huruf kecil dan huruf besar. Pemberian nilai pada variabel
juga dapat mengacu pada variabel yang lain. Pemberian nilai referensi ini
dinyatakan dengan memberikan tanda & di depan sebuah variabel sebagai
nilainya.
PHP adalah bahasa pemrograman script yang paling banyak dipakai saat
ini. PHP banyak dipakai untuk memprogram situs web dinamis, walaupun tidak
tertutup kemungkinan digunakan untuk pemakaian lain. Contoh terkenal dari
aplikasi PHP adalah phpBB dan MediaWiki (software di belakang Wikipedia).
PHP juga dapat dilihat sebagai pilihan lain dari ASP.NET/C#/VB.NET Microsoft,
ColdFusion Macromedia, JSP/Java Sun Microsystems, dan CGI/Perl. Contoh
aplikasi lain yang lebih kompleks berupa CMS yang dibangun menggunakan PHP
adalah Mambo, Joomla!, Postnuke, Xaraya, dan lain-lain.
2.6.1 Dasar-dasar PHP
umum ekstensi file PHP adalah (.PHP). Kode PHP menyatu dengan tag HTML
dalam satu file. Kode PHP diawali dengan tag<? atau <?PHP dan ditutup dengan
?>.
PHP diawali sebagai berikut :
Gambar 2.2 Hasil Dari File coba1.PHP
2.6.2Kelebihan PHP
PHP mempunyai 4 kelebihan yaitu 4P (Four Pee) :
1) Practical / Praktis
PHP adalah bahasa pemrograman yang sangat longgar
dalam penulisan, dan ini meningkatkan kepraktisan buat para
penggunanya. Misalnya saja programmer tidak diharuskan untuk
menuliskan atau menghapus variabel.
Walaupun kadang mereka juga tidak bisa mengatakan
dengan mudah yang kemudian dipanggil dalam sebuah skrip, menebak
formula terbaik dalam penetapan variabel secara otomatis kemudian
menghapus variabel dan dan mengembalikan resource ke sistem
membuat programmer lebih berpikir pada tujuan akhir dari project
yang akan dibuat.
2) Power
Sudah menjadi rahasia umum kalau PHP mampu membuat
halaman dinamis, memanipulasi form, dan dapat dihubungkan dengan
database. Selain yang disebutkan tadi, ternyata PHP juga dapat
melakukan hal – hal di bawah ini :
1 Membuat dan memanipulasi file Macromedia Flash, gambar, dan
Portable Document Format PDF.
2 Berkomunikasi dengan LDAP.
3 Berkomunikasi dengan banyak protocol, termasuk IMAP, POP3
dan NNTP.
4 Berkomunikasi dengan credit-card processing solution.
3) Possibility
Jarang ada developer PHP yang terikat pada suatu
implementasi pemecahan masalah. Dilain sisi, ada banyak pilihan yang
ditawarkan oleh PHP. Contohnya ada pada database yang didukung
oleh PHP. Kurang lebih semuanya ada 25 database, termasuk Adabas
D, dBase, FrontBase, Hyperwave, IBM DB2, Informix, Ingres,
Interbase, mSQL, direct MS-SQL, MySQL, Oracle, Oyrimos,
PostgreSQL, Solid, Sybase, Unix dbm dan Velocis.
Kemampuan sting – parsing juga bisa dianggap sebagai
PHP memiliki lebih dari 85 function untuk memanipulasi string.
Kelebihan ini tak hanya akan menawarkan keleluasaan untuk
melakukan operasi string yang kompleks, namun juga menjembatani
program yang memiliki functionalitas yang sama (seperti Python dan
Perl) lewat PHP.
4) Price
PHP merupakan salah satu open source software, yang dapat diartikan
sebagai berikut :
• PHP dapat dimodifikasi, didistribusikan, dan diintegrasikan dengan
produk lain oleh penggunanya,
• Pengembangan dan auditing yang dilakukan secara terbuka, semua
orang bebas berpartisipasi.
Dapat diartikan pula :
a. Bahasa pemrograman PHP adalah sebuah bahasa script yang tidak
melakukan sebuah kompilasi dalam penggunaanya.
b. Dalam sisi pemahaman, PHP adalah bahasa scripting yang paling mudah
karena memiliki referensi yang banyak.
c. PHP adalah bahasa open source yang dapat digunakan di berbagai mesin
(Linux, Unix, Macintosh, Windows), dan dapat dijalankan secara run time
2.6.3 Struktur Program PHP
Kode program PHP menyatu dengan tag-tag HTML (Hypertext Markup
Language) dalam satu file. Kode PHP diawali dengan tag <? Atau <?php dan
ditutup dengan tag ?>. Berikut struktur penulisan sintaks PHP dalam HTML
(Hypertext Markup Language) :
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<?
…
- dokumen PHP-
…
?>
</BODY>
</HTML>
2.7.MySQL
MySQL adalah sebuah program pembuat database yang bersifat open
source, artinya siapa saja boleh menggunakannya dan tidak dicekal. MySQL
sebenarnya produk yang berjalan pada platform Linux. Karena sifatnya yang open
source, MySQL dapat dijalankan pada semua platform baik Windows maupun
SQL adalah suatu bahasa permintaan yang telah distandarkan untuk semua
program pengakses database seperti Oracle, PostgreSQL, SQL Server, dan
lain-lain. Ada beberapa fungsi yang digunakan dalam pembuatan aplikasi antara PHP
dan MySQL. Fungsi tersebut sangat erat kaitannya dengan query SQL. Di dalam
MySQL tersedia query untuk membuat fungsi search, jumlah, update, ataupun
edit data dari database, namun pada script PHP dapat langsung ditulis melalui
script query Mysql dengan code select, insert, delete, update, dan sintax-sintax
lainnya. Dengan kata lain MySQL adalah sebuah sistem manajemen database.
Database adalah merupakan sekumpulan data yang terstruktur untuk menambah,
mengakses, dan memproses data yang tersimpan dalam database komputer,
dibutuhkan sebuah sistem database manajemen seperti MySQL. Sejak komputer
menjadi alat yang sangat bagus untuk menangani sejumlah besar data, sebagai
utility yang stand-alone atau sebagai bagian dari suatu aplikasi.
DDL merupakan kelompok perintah yang berfungsi untuk mendefinisikan
atribut-atribut database, table, atribut (kolom), batasan-batasan terhadap suatu
atribut serta hubungan antar table. Yang termasuk kelompok DDL ini adalah:
1) CREATE untuk menciptakan table ataupun indeks,
2) ALTER untuk mengubah struktur table
3) DROP untuk menghapus table ataupun indeks
DML ( Data Manipulation Language ) adalah kelompok perintah yang
berfungsi untuk memanipulasi data, misalnya untuk pengambilan, penyisipan
pengubahan dan penghapusan data. Yang termasuk DML adalah:
2) INSERT menambah data
3) DELETE menghapus data
4) UPDATE mengubah data
DCL ( Data Control Language ) berisi perintah-perintah untuk
mngendalikan pengaksesan data. Yang termasuk DCL adalah:
1) GRANT, memberikan kendali pada pengaksesan data.
2) REVOKE, mencabut kemampuan pengaksesan data
3) LOCK TABLE, mengunci table
Pengendali transaksi adalah perintah-perintah yang berfungsi untuk
mengendalikan pengeksekusian transaksi. Yang termasuk kelompok ini adalah :
1) COMMIT menyetujui rangkaian perintah yang berhubungan erat yang telah
berhasil dilakukan
2) ROLLBACK membatalkan transaksi yang dilakukan karena adanya
kesalahan atau kegagalan pada salah satu rangkaian perintah.
Pengendali programatik adalah perintah perintah yang berada di level
client side untuk menampilkan data kedalam bentuk informasi yang berguna.
Yang termasuk bahasa pemrograman. Berikut adalah contoh penggunaan SQL
query :
1) Mengambil data dari database
Select [nama_kolom] from [nama_table] [Condition Statement]
Contoh ;
Select Nama from mahasiswa order by nama
Contoh :
Insert into Mahasiswa values(‘Anas’,’7298030004’,’Sem 3’);
3) Melakukan update atau perubahan pada isi table.
Update [nama_table] set [Nama_Kolom] = [isi] [condition
Statement]
Contoh:
Update Mahasiswa set Nama=’Anas’ where nrp=’001’.
4) Membuat table
Create table [table_name], [kolom/field tabel dan attributnya]
Contoh :
Create table mahasiswa (nama varchar(30),nrp
varchar(15),semester varchar(10))
5) Menghapus isi table
Delete from [table_name][condition statement].
Contoh:
Delete from mahasiswa where nrp=’001’
MySQL adalah sebuah perangkat lunak sistem manajemen berbasis data
SQL (Database Management System) atau DBMS yang multi thread, multi user.
Berbeda dengan proyek-proyek seperti Apache, dimana MySQL dimiliki
dan disponsori oleh sebuah perusahaan komersial Swedia MySQL AB, yang
memegang hak cipta hampir atas semua kode sumbernya. Kedua orang Swedia
dan satu orang Finlandia yang mendirikan MySQL AB adalah David Axmark,
2.7.1 Kelebihan MySQL
MySQL adalah sebuah program pembuat database yang bersifat open
source, artinya siapa saja boleh menggunakannya dan tidak dicekal. MySQL
sebenarnya produk yang berjalan pada platform Linux. Karena sifatnya yang open
source, MySQL dapat dijalankan pada semua platform baik Windows maupun
Linux.
MySQL termasuk jenis RDBMS (Relational Database Management
System). Selain itu, MySQL juga merupakan program pengakses database yang
bersifat jaringan sehingga dapat digunakan untuk aplikasi multi user (banyak
pengguna). Saat ini database MySQL telah digunakan hampir oleh semua
programmer database, apalagi dalam pemrograman web. Kelebihan lain dari
MySQL adalah dapat menggunakan bahasa Query standar yang dimiliki SQL.
SQL adalah suatu bahasa permintaan yang telah distandarkan untuk semua
program pengakses database seperti Oracle, PostgreSQL, SQL Server, dan
lain-lain. Ada beberapa fungsi yang digunakan dalam pembuatan aplikasi antara PHP
dan MySQL. Fungsi tersebut sangat erat kaitannya dengan query SQL. Di dalam
MySQL tersedia query untuk membuat fungsi search, jumlah, update, ataupun
edit data dari database, namun pada script PHP dapat langsung ditulis melalui
script query Mysql dengan code select, insert, delete, update, dan sintax-sintax
lainnya. Dengan kata lain MySQL adalah sebuah sistem manajemen database.
Database adalah merupakan sekumpulan data yang terstruktur untuk
menambah, mengakses, dan memproses data yang tersimpan dalam database
komputer menjadi alat yang sangat bagus untuk menangani sejumlah besar data,
sebagai utility yang stand-alone atau sebagai bagian dari suatu aplikasi.
DDL merupakan kelompok perintah yang berfungsi untuk mendefinisikan
atribut-atribut database, table, atribut (kolom), batasan-batasan terhadap suatu
atribut serta hubungan antar table. Yang termasuk kelompok DDL ini adalah:
1) CREATEuntuk menciptakan table ataupun indeks,
2) ALTERuntuk mengubah struktur table,
3) DROPuntuk menghapus table ataupun indeks.
DML ( Data Manipulation Language )adalah kelompok perintah yang
berfungsi untuk memanipulasi data, misalnya untuk pengambilan, penyisipan
pengubahan dan penghapusan data. Yang termasuk DML adalah:
1) SELECTmemilih data
2) INSERTmenambah data
3) DELETEmenghapus data
4) UPDATEmengubah data
DCL ( Data Control Language ) berisi perintah-perintah untuk
mngendalikan pengaksesan data. Yang termasuk DCL adalah:
1) GRANT memberikan kendali pada pengaksesan data.
2) REVOKE mencabut kemampuan pengaksesan data
3) LOCKTABLE mengunci table
Pengendali transaksi adalah perintah-perintah yang berfungsi untuk
1) COMMIT menyetujui rangkaian perintah yang berhubungan erat yang telah
berhasil dilakukan
2) ROLLBACK membatalkan transaksi yang dilakukan karena adanya kesalahan
atau kegagalan pada salah satu rangkaian perintah.
Pengendali programatik adalah perintah perintah yang berada di level
client side untuk menampilkan data kedalam bentuk informasi yang berguna.
Yang termasuk bahasa pemrograman.
Berikut adalah contoh penggunaan SQL query :
1) Mengambil data dari database
Select [nama_kolom] from [nama_table] [Condition Statement]
Contoh ;
Select Nama from mahasiswa order by nama
2) Mengisikan data ke database.
Insert into [nama_table] values ([isi data pada tiap kolom])
Contoh :
Insert into Mahasiswa values(‘Anas’,’7298030004’,’Sem 3’);
3) Melakukan update atau perubahan pada isi table.
Update [nama_table] set [Nama_Kolom] = [isi] [condition
Statement]
Contoh:
Update Mahasiswa set Nama=’Anas’ where nrp=’001’.
4) Membuat table
Create table [table_name] ([kolom/field tabel dan
attributnya])
Create table mahasiswa (nama varchar(30),nrp
varchar(15),semester varchar(10))
5) Menghapus isi table
Delete from [table_name][condition statement].
Contoh:
Delete from mahasiswa where nrp=’001’
SQL (Structured Query Language) adalah sebuah konsep operasi
database, terutama untuk pemilihan atau seleksi dan pemasukan data, yang
memungkinkan operasi data dikerjakan dengan mudah secara otomatis.
Kehandalan suatu sistem database (DBMS) diketahui dari cara kerja optimizer
-nya dalam melakukan proses perintah SQL (Structured Query Language), yang
dibuat oleh user maupun program aplikasinya.
Sebagai database server, MySQL dikatakan lebih unggul dibandingkan
database server lainnya dalam query data. Hal ini terbukti untuk query yang
dilakukan oleh single user, kecepatan query MySQL bisa sepuluh kali lebih cepat
dari PostgreSQL dan lima kali lebih cepat dibandingkan Interbase. Selain itu
MySQL memiliki keistimewaan, antara lain :
a. Open Source. MySQL didistribusikan secara open source (gratis), di bawah
lisensi GPL (General Public License).
b. Multi user. MySQL dapat digunakan oleh beberapa user dalam waktu yang
bersamaan tanpa mengalami masalah atau konflik.
c. Column types. MySQL memiliki tipe kolom, seperti signed/unsigned integer,
d. Command dan functions. MySQL memiliki operator dan fungsi secara penuh
yang mendukung perintah Select dan Where dalam query.
e. Clients dan tools. MySQL dilengkapi dengan tools yang dapat digunakan untuk
administrasi database.
f. Struktur tabel. MySQL memiliki struktur tabel yang lebih fleksibel dalam
menangani alter table.
2.7.2 Konektivitas PHP-MySQL
Pembahasan mengenai MySQL secara khusus tidak akan dilakukan. Sebab
pada penulisan ini, penulis ingin memfokuskan penggunaan MySQL melalui
PHP. Dan untuk menjalankan perintah -perintah MySQL dari dalam script PHP
dibutuhkan fungsi koneksi tersendiri. Yaitu :
1. mysql_connect( )
PHP menyediakan fungsi ini untuk membuat koneksi ke MySQL server.
Fungsi ini membutuhkan tiga buah argumen : hostname, database username, dan
database user password.
mysql_connect (“hostname”, ”database user name”, ”database user password”) ;
2. mysql_select_db( )
Fungsi ini digunakan untuk memilih database yang akan digunakan.
Fungsi ini membutuhkan dua buah argumen : nama database dan variabel link.
mysql_select_db(“nama_database”).
3. mysql_query( )
Fungsi ini digunakan untuk melakukan query terhadap database yang
dapat dilakukan jika user telah melakukan koneksi ke MySQL dan memilih
database yang akan digunakan.
$hasil=mysql_query(”select * from nama_tabel”).
2.8 Kebutuhan-Kebutuhan Sistem
2.8.1 Alir Dokumen ( Document Flow )
Bagan alir dokumen (Document flowchart) atau disebut juga bagan alir
formulir (Form flowchart) atau paperwork flowchart merupakan bagan alir yang
menunjukkan arus dari laporan dan formulir termasuk tembusan-tembusannya.
Formulir adalah suatu dokumen yang memuat informasi konstan yang
tercetak dan mempunyai bagian luang untuk diisi dengan variabel. Bagi
perusahaan tentunya harus mencatat transaksi setiap harinya, yang mana semua ini
harus dikonversikan dari satu media ke media lainnya dan dimanipulasi
berulang-ulang yang pada akhirnya berakhir pada suatu formulir yang berguna bagi manajer
di dalam mengambil keputusan. Sehingga dapat dikatakan bahwa keberhasilan
atau kegagalan suatu perusahaan juga tergantung dari formulir-formulir yang
digunakan.
Dari uraian diatas maka dapat kita ambil kesimpulan bahwa alasan
pemakaian formulir adalah untuk memudahkan suatu arus, proses dan analisa,
yaitu berupa :
1) Penyusunan data.
2) Meminimumkan waktu pencatatan dan penghapusan penulisan data
3) Memungkinkan kontrol terhadap kegiatan.
4) Mengurangi terjadinya kesalahan tulis menulis.
5) Menyampaikan informasi penting dari satu orang ke orang lain baik
dalam suatu organisasi maupun antar organisasi.
2.8.2 Sistem Flowchart ( Flowchart System )
Sistem flowchart merupakan alat bantu yang banyak digunakan untuk
menggambarkan sistem secara phisik dengan simbol-simbol bagan alir yang
menunjukkan secara tepat arti phisiknya seperti simbol : terminal, hard disk,
laporan dan lain-lainnya.
Adapun simbol-simbol standar yang digunakan untuk membuat bagan alir
adalah sebagai berikut :
Simbol Dokumen
Simbol ini digunakan untuk menggambarkan semua
jenis dokument input dan output baik untuk proses
manual, mekanik maupun komputer.
Simbol Kegiatan Manual
Simbol ini digunakan untuk menggambarkan kegiatan
manual.
Simbol Operasi Luar
Simbol ini menunjukkan operasi yang dilakukan
Simbol Arsip Sementara
Simbol ini digunakan untuk menggambarkan tempat
penyimpanan dokumen yang dokumennya akan
diambil kembali dari arsip tersebut dimasa yang akan
datang untuk keperluan pengolahan lebih lanjut
terhadap dokumen tersebut urutan pengarsipan
dokumen digunakan simbol berikut :
A : menurut Abjad
N : menurut Nomor Urut
T : menurut Tanggal
Simbol Penghubung
Penghubung pada halaman yang sama. Dalam
menggambarkan bagan alir dokumen dibuat mengalir
dari atas ke bawah dan dari kiri kekanan. Karena
keterbatasan ruang halaman kertas untuk
menggambarkan maka diperlukan simbol penghubung
yang memungkinkan aliran dokumen berhenti disuatu
lokasi pada halaman tertentu dan kembali berjalan
dilokasi lain pada halaman yang sama.
Simbol Penghubung
Penghubung pada halaman yang berbeda. Dalam
menggambarkan bagan alir dokumen dibuat mengalir
keterbatasan ruang halaman kertas untuk
menggambarkan maka diperlukan simbol penghubung
yang memungkinkan aliran dokumen berhenti disuatu
lokasi pada halaman tertentu dan kembali berjalan
dilokasi lain pada halaman yang berbeda.
Simbol Terminal
Simbol ini digunakan untuk menggambarkan awal
dan akhir suatu sistem.
Simbol Keputusan
Simbol ini menggambarkan keputusan yang harus
Pada tugas akhir ini akan dibangun sebuah perangkat lunak search engine
untuk mencari informasi pada pasal hukum terstruktur. Sistem yang akan dibuat
terdiri dari tiga sub sistem utama yaitu sub sistem input pasal, sub sistem
pre-processing dan sub sistem antar muka. Gambaran sistem dalam tugas akhir ini
tampak seperti Gambar 3.1 dibawah ini.
Gambar 3.1. Gambaran Sistem
Gambar 3.1 diatas menunjukkan kinerja dari perancangan sistem aplikasi
pada tugas akhir ini. data pasal yang memiliki format teks dipersiapkan terlebih
dahulu sehingga kriteria-kriteria yang jelas sesuai dengan aturan yang dimainkan
pada sistem ini. Kemudian data pasal ini diinputkan kedalam proses input pasal
Input pasal
Operasi dat abase
dat abase
Input keyw ord
Operasi query
Ant ar m uka dan visualisasi dokum en
dan disimpan ke dalam database yang telah disediakan. Setelah proses input pasal
selesai dilanjutkan ke dalam proses checking. Di dalam proses ini pasal yang
akan diperiksa apakah susunan dan style yang digunakan telah memenuhi syarat,
jika memenuhi syarat, pasal akan diproses untuk di ambil informasi di dalamnya.
Setelah selesai dengan proses checking pasal di atas kemudian hasil dari
proses tersebut di ambil dan kemudian pasal disimpan ke dalam basis data sesuai
dengan abstraksi style yang digunakan pada saat dilakukan proses query di dalam
sistem basis data. Selain dilakukan operasi query tersebut, informasi pasal tersebut
juga dilakukan indexing dimana proses ini bertujuan untuk memisahkan sebuah
informasi menjadi subyek-subyek kecil agar dapat dilakukan proses yang lebih
lanjut.
Proses selanjutnya adalah proses antarmuka dan visualisasi pasal
terstruktur. Proses ini adalah proses pada web engine yang digunakan untuk
sarana pencarian bagi user. Pada proses ini, user hanya perlu menginputkan data
kasus yang ingin dicari dan secara otomatis akan melakukan proses pencarian
berdasarkan inputan user dengan pembandingan pasal yang telah disimpan dalam
database. Setelah data ditemukan, maka user akan menerima hasilnya.
Pada sub proses preprocess dilakukan proses pengecekan dan
pengambilan isi (teks) dan struktur pasal (proses checking dan parsing), proses
indexing, serta proses pemetaan kata (index term) pada pasal dan pengertian
pasalnya. Jika digambarkan, maka preprocesss akan tampak pada Gambar 3.2
Gambar 3.2. Sistem Flow proses input pasal
Indexing yang dilakukan pada input pasal terdiri dari proses Login, proses
simpan. Proses-proses tersebut dibangun dengan menggunakan fitur-fitur yang
dimiliki oleh mySQL.
Dalam proses pemetakan kata dalam pasal, hasil proses indexing pada
setiap pasal yang diambil data berupa array. Data-data tersebut digunakan pada
sub proses pencarian informasi dan antarmuka. Yang mana tampak pada Gambar
3.3 dibawah ini :
st art
User dan passw ord
Cek login
Aut h = t rue?
Input pasal
Proses input pasal
Proses Sub Sistem Pencarian Informasi dan Antarmuka Aplikasi dari struktur pasal yang
dipilih
Gambar 3.3. Sistem Flow Proses Pencarian Informasi dan Antarmuka
Antarmuka grafis yang digunakan adalah bentuk visualisasi yang
diletakkan pada basis web yang akan menampilkan semua artikel dan pasal hasil
pencarian informasi. Antarmuka grafis dibangun dengan menggunakan bahasa
pemrograman PHP.
3.2. Desain dan Perancangan Proses
Untuk pembuatan sistem secara keseluruhan dilakukan beberapa proses,
secara utuh. Proses-proses yang dilakukan direpresentasikan dalam bentuk bagan
alir data atau yang biasa disebut Data Flow Diagram (DFD). Representasi ini
dimulai dari DFD Level 0 atau yang sering disebut Context Diagram, kemudian
dilanjutkan hingga ke level yang diinginkan sesuai kebutuhan sistem.
Context diagram pada sistem ini menggambarkan hubungan antara entitas
luar ( dalam hal ini adalah user dan admin ) dengan sistem ( aplikasi ).
Pertama-tama sistem akan menerima inputan pasal-pasal dari admin, dan di sisi lain user
memberikan inputan ke dalam sistem berupa data pencarian pasal. Dari data
pencarian tersebut selanjutnya sistem memberikan output berupa data hasil
pencarian pasal sesuai dengan data pencarian yang dicari. Yang mana tampak
pada Gambar 3.4 dibawah ini.
admin
user Aplikasi KUHP online
Data pasal
keyword
Hasil pencarian
Gambar 3.4. Context Diagram
Sedangkan alur proses secara umum dapat dilihat pada DFD level 0 yang
merupakan hasil decompose dari Context diagram yang dikembangkan menjadi
sub proses dari aplikasi yang dibuat. Pada DFD level 0 ini terdiri da ri tiga sub
proses antara lain sub proses input pasal, sub proses parsing dan sub proses
admin
Dari Gambar 3.5 diatas dapat dijelaskan bahwa pada sub pr oses yang
pertama yaitu proses input pasal, mendapatkan inputan dari admin yang nantinya
data-data pasal dan data-data pengertian pasal ini disimpan pada data store.
Selanjutnnya proses kedua adalah proses interface yang merupakan perantara
antara user dengan sistem yang merupakan proses pencarian data pasal yang ingin
dicari oleh user dan akan dilakukan pencarian oleh sistem dengan proses parsing,
yang mana merupakan proses penting dari sistem ini. dan user akan mendapatkan
hasil dari pencarian yang dilakukan oleh sistem tersebut.
Pada proses input pasal jika di decompose, maka akan menghasilkan sub
proses yang berisi sebuah proses entry data pasal yang diinputkan oleh admin dan
data-data tersebut disimpan pada data store tabel pasal dan data store tabel
pengertian pasal. Data pasal yang ada pada proses entry data pasal juga akan
admin User dan password login Konfirmasi login
Input pasal Data pasal
pasal Data pasal
Edit pasal
Data pasal Data pasal
Gambar 3.6. DFD Sub Proses Input Pasal
user pencarian
Parsing pasal
Data pasal Data pasal pasal
Data pasal Data pasal
Gambar 3.7. DFD Sub Proses Pencarian
3.3. Pseudocode Algortima Boyer-Moore
Algoritma ini dianggap sebagai algoritma yang paling efisien pada aplikasi
umum. Tidak seperti algoritma pencarian string yang ditemukan sebelumnya,
algoritma Boyer-Moore mulai mencocokkan karakter dari sebelah kanan pattern.
Ide dibalik algoritma ini adalah bahwa dengan memulai pencocokkan karakter
dari kanan, dan bukan dari kiri, maka akan lebih banyak informasi yang didapat.
Adapun cara kerja dari Algortima Boyer-Moore adalah Misalnya ada
ketidakcocokan pertama terjadi diantara teks[i + j] dan pattern[j], dengan 0 < j <
n. Berarti, teks[i + j + 1..i + n − 1] = pattern[j + 1..n− 1] dan a = teks[i + j] tidak
sama dengan b = pattern[j]. Jika u adalah akhiran dari pattern sebelum b dan v
adalah sebuah awalan dari pattern, maka penggeseran-penggeseran yang mungkin
adalah:
1. Penggeseran good-suffix yang terdiri dari mensejajarkan potongan teks[i +
j + 1..i + n − 1] = pattern[j + 1..n − 1] dengan kemunculannya paling
kanan di pattern yang didahului oleh karakter yang berbeda dengan
pattern[j]. Jika tidak ada potongan seperti itu, maka algoritma akan
mensejajarkan akhiran v dari teks[i + j + 1..i + n − 1] dengan awalan dari
pattern yang sama.
2. Penggeseran bad-character yang terdiri dari mensejajarkan teks[i + j]
dengan kemunculan paling kanan karakter tersebut di pattern. Bila
karakter tersebut tidak ada di pattern, maka pattern akan disejajarkan
dengan teks[i + n + 1].
Secara sistematis, langkah-langkah yang dilakukan algoritma Boyer-Moore pada
saat mencocokkan string adalah:
1. Algoritma Boyer-Moore mulai mencocokkan pattern pada awal teks.
2. Dari kanan ke kiri, algoritma ini akan mencocokkan karakter per karakter
pattern dengan karakter di teks yang bersesuaian, sampai salah satu
1. Karakter di pattern dan di teks yang dibandingkan tidak cocok
(mismatch).
2. Semua karakter di pattern cocok. Kemudian algoritma akan
memberitahukan penemuan di posisi ini.
3. Algoritma kemudian menggeser pattern dengan memaksimalkan nilai
penggeseran good-suffix dan penggeseran bad-character, lalu mengulangi
langkah 2 sampai pattern berada di ujung teks.
Berikut adalah flowchart dan pseudocode algoritma Boyer-Moore pada fase
pra-pencarian :
function stoplist(parameter kata){
input kata : preg_replace("/[^a-zA-Z\s]/", "", kata);
input kata : str_replace(" "," ",kata);
if(substr(kata,0,1)==' ')
kata=lefttrim(righttrim(kata));
else
kata=righttrim(kata);
return kata;
}
Berikut adalah flowchart algoritma Boyer-Moore pada fase pencarian :
function cari_bm(parameter idx, string, cari){ input word = strtolower(string);
input word = stoplist(word); input word = split(" ",word);
inisialisasi s=0;
cari = split(" ",cari);
for(i=0;i<count(cari);i++){ for(j=0;j<count(word);j++){
for(k=0;k<=strlen(word[j])-strlen(cari[i]);k++){
if(cari[i]==substr(word[j],k,strlen(cari[i]))){ maka input word_list[s]=word[j]; word_idx[s]=j; s++;
Gambar 3.10 Pseudocode Prosedur Fungsi Cari_bm
Dan berikut adalah pseudocode algoritma Boyer-Moore pada fase pencarian:
function select(kata){
query sql = "select * from pasal order by id_pasal"; compile run = mysql_query(sql);
if(count(val_id)>0 or count(vst_id)>0){
tampilkan '<p>Hasil dari pencarian boyer moore : '; if(count(val_id)>0) tampilkan count(val_id).' pasal'; else tampilkan '0 pasal';
if(count(vst_id)>0) echo ' - dengan bantuan stemming '.count(vst_id).' pasal';
get $sql = "select isi_pasal from pasal where id_pasal=".$val_id[$i];
compile run = mysql_query(sql); run r=mysql_fetch_array($run);
<tr><td> </td></tr>
echo '<tr><td>Tidak Ada Hasil Pencarian Yang Cocok</td></tr>';
echo '</table>'; }
}
Gambar 3.11 Pseudocode Prosedur Pada Fase Pencarian
3.4. Perancangan Desain Basis Data
Sistem informasi yang dirancang di dalam tugas akhir ini, dibuat dalam
bentuk basis data dan disimpan di dalam MySQL. Database digunakan untuk
menyimpan data-data yang dibutuhkan oleh sistem seperti data pasal dan data
pengertian pasal. Pemodelan data ini direpresentasikan dengan entitas beserta
atribut dan hubungan antara entitas-entitas tersebut. Entitas adalah suatu obyek
yang ada dan dapat dibedakan antara satu dengan lainnya. Berikut adalah
entitas-entitas yang digunakan pada sistem ini, yang mana tampak pada Gambar 3.8
berikut.
PASAL
id_pasal isi_pasal pengertian
Gambar 3.12 Conceptual Data Model
Berikut adalah Physical Data Model yang merupakan hasil generate dari