SISTEM PENCARIAN PASAL-PASAL TINDAK PIDANA PELANGGARAN BERDASARKAN KUHP DENGAN METODE STRING MATCHING BOYER-MOORE.

(1)

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

SURABAYA 2010


(2)

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.


(3)

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.


(4)

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 memberikan kasih sayangnya serta berdo’a untuk buah hatinya setiap saat


(5)

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


(6)

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


(7)

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


(8)

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


(9)

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


(10)

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


(11)

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.5 Hasil Pencarian Berdasarkan M et ode Exact Phrase dengan Kat a Kunci “ Nakalan Terhadap” ... 73


(12)

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


(13)

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


(14)

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


(15)

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


(16)

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


(17)

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


(18)

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.


(19)

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


(20)

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


(21)

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


(22)

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


(23)

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.


(24)

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


(25)

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


(26)

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


(27)

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


(28)

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


(29)

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

kata kata (bila ada di kamus) atau undef (bila tidak ada)


(30)

awalan me- dan pe-.

BuangBelakang

Membuang akhiran kata, yaitu:

lah, kah, pun, tah, ku, -mu,

-nya, -i, -an, -kan.

kata,

awala n1, awala n2

kata | undef

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

1. D - ikat

2. D + AK -an ikat-an 3. AW + D me- meng-ikat 4. AW + D + AK me- + -kan meng-ikat-kan 5. AW + AW + D me- + per- mem-per-ikat 6. AW + AW + D + AK ke- + ter- + -an ke-ter-ikat-an

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


(31)

Tabel. 2.5 Proses Subrutin

Tahap Proses Kata Asal Hasil Potong Kata Akhir 1. Cek Kamus kebersamaan

nyalah

- kebersamaan

nyalah 2. Buang Belakang kebersamaan

nyalah

kebersama kebersamaan nyalah 3. Buang Depan kebersamaan

nyalah

bersamaan nyalah

bersamaan nyalah 4. Buang Belakang bersamaan

nyalah

bersama bersamaan nyalah 5. Buang Depan bersamaan

nyalah

samaan nyalah

samaan nyalah 6. Buang Belakang samaan

nyalah

sama sama

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


(32)

Table 2.6 Contoh subrutin

Jenis Kesalahan Contoh Hasil Stemmer Seharusnya Byk Nama orang, tempat,

istilah, singkatan

ryamizard, denpasar, puskesmas

didubeskan

-tetap- -sudah benar-

-

Bahasa asing conduct, trial, pressure -tetap- -sudah benar-

-

Kesalahan kata, susunan imbuhan, imbuhan kata asing

pernggantian, meingkatkan,

maasalah, penjelaskan, berkapitalisasi, ngejar

-tetap- ganti, tingkat, masalah, jelas, kapital, kejar -

Kata majemuk ketidakhadirannya, diperjualbelikan, diujicobakan

-tetap- tidakhadir, jualbeli, jualbeli

14

Aturan khusus mengetahui, belajar, perbaiki

-tetap- tahu, ajar, baik 3 Kesalahan peluluhan kata memintainya, pengakuannya, mengamati mengukur minta, kaku, kamat, kukur pinta, aku, amat, ukur 4

Kesalahan kata yang kata dasarnya ada di kamus

memada, alan, domi, terlah

pada, al, dom, ter

-tidak tahu- -

Kata dikenali sebagai bahasa Indonesia tapi tidak ada di kamus / tidak baku

rinciannya, milyaran, perijinan, resikonya, mengendor

-tetap- rinci, milyar, ijin, risiko, kendur

5

Kata terlalu banyak dipotong

(overstemming)

menahannya nah tahan 1

Kata terlalu sedikit dipotong

(understemming)

menempati empati tempat 1

Secara statistik, dari 2000 kata tersebut terdapat 28 kata yang mengalami

kesalahan pencarian kata dasar, sehingga tingkat keberhasilannya adalah 98,6 %


(33)

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


(34)

$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


(35)

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


(36)

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


(37)

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


(38)

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 Linux.


(39)

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:


(40)

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


(41)

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,


(42)

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


(43)

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


(44)

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])


(45)

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,


(46)

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


(47)

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


(48)

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


(49)

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


(50)

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


(51)

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


(52)

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


(53)

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


(54)

Proses Sub Sistem Pencarian Informasi dan Antarmuka Aplikasi Sistem

User

start

Kata kunci

Menerima data pasal yang ingin dicari

Data pasal

Proses searching pasal

Data pasal hasil pencarian

Proses menampilkan daftar pasal hasil pencarian

Proses pembacaan pasal yang dipilih user

Menampilkan isi pasal dari struktur pasal yang

dipilih

Showterm window

end List of pasal

window

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,


(55)

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


(56)

admin

Proses manajemen

data pasal admin User dan password

data pasal

user Proses

pencarian

keyword

Data pasal Data pasal

Cek pasal

Gambar 3.5. DFD Level 0

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


(57)

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


(58)

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


(59)

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;

}


(60)

Berikut adalah flowchart algoritma Boyer-Moore pada fase pencarian : start Input data string stoplist split(" ",$word) A=0 split(" ",$cari) i=0 i<count($cari T j=0 j<count($word) T k=0 $k<=strlen($word[$j]) ($cari[$i]==substr($word[$j], $k,strlen($cari[$i]))) T $word_list[$s]=$word[$j]; K++ J++ i++

(is_array($word_idx)) T array_unique($word_idx) array_unique($word_list)

(count($word_idx)>0) F T return $val End F

val['id'] = $idx

val['rank'] = count($word_

idx)

val['word'] = $word_list

val = NULL


(61)

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++; } } } } if(is_array(word_idx)) { array_unique(word_idx); array_unique(word_list); } if(count(word_idx)>0) { val['id'] = idx;

val['rank'] = count($word_idx); val['word'] = word_list;

}

else val = NULL; return val; }

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);

inisialisasi i=0; while(run r=mysql_fetch_array(run)){ input a=cari_bm(r['id_pasal'],strip_tags(r['isi_pasal']),$kata); if($a!=NULL) {val_id[i]=a['id'];val_rank[i]=a['rank'];val_word[i]=a['word'];} else if(a==NULL){ inisialisasi b=cari_stem(r['id_pasal'],strip_tags(r['isi_pasal']),$kata); if(b!=NULL) {vst_id[i]=b['id'];vst_rank[i]=b['rank'];vst_word[i]=b['word'];} } i++; }


(62)

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';

tampilkan '</p>'; }

if(count(val_id)>0){

array_multisort(val_rank, SORT_DESC, SORT_NUMERIC, val_id, SORT_NUMERIC,

val_word, SORT_STRING); tampilkan '<table>';

for(i=0;i<count(val_id);$i++){

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><b>Pasal <?=$val_id[$i]?></b></td></tr> <tr><td> <? For(j=0;j<count(val_word[i]);j++){ r['isi_pasal']= highlightWords(val_word[i]][$j],r['isi_pasal'])1;35 } tsmpilkan r['isi_pasal']; </td></tr> <tr><td>&nbsp;</td></tr> <? } //echo '</table>'; } if(count(vst_id)>0){

array_multisort(vst_rank, SORT_DESC, SORT_NUMERIC, vst_id, SORT_NUMERIC, vst_word, SORT_STRING); if(count(val_id)==0) echo '<table>';

for(i=0;i<count($vst_id);$i++){

$sql = "select isi_pasal from pasal where id_pasal=".$vst_id[$i];

$run = mysql_query($sql); $r=mysql_fetch_array($run); ?> <tr><td><span style="text-decoration:underline"><b>Pasal <?=$vst_id[$i]?></b></span></td></tr> <tr><td> <? for($j=0;$j<count($vst_word[$i]);$j++){

$r['isi_pasal'] =

highlightWords($vst_word[$i][$j],$r['isi_pasal']); }

echo $r['isi_pasal']; ?>


(63)

<tr><td>&nbsp;</td></tr> <?

}

echo '</table>'; }

if(count($val_id)==0 and count($vst_id)==0){ echo '<table>';

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


(64)

many yang ada di tiap tabel yang berelasi. Tabel pasal memiliki relasi one to many

dengan tabel pengertian pasal, sehingga primary key dari tabel pasal masuk ke

dalam tabel pengertian pasal sebagai foreign key. Yang mana tampak pada

Gambar 3.13 berikut.

PASAL id_pasal isi_pasal pengertian

Gambar 3.13 Physical Data Model

Dari hasil conceptual data model dan physical data model, maka didapatkan

tabel-tabel yang akan digunakan untuk sistem. Tabel-tabel yang digunakan antara

lain tabel admin, tabel pasal dan tabel pengertian pasal. Adapun tabel-tabel

berikut jika dijabarkan akan tampak pada penjelasan dibawah ini.

1. Tabel Pasal

Tabel ini digunakan untuk menyimpan data-data pasal yang diinputkan

oleh admin. Adapun detail dari tabel pasal adalah sebagai berikut.

Tabel 3.1. Tabel Pasal

Nama Field Tipe Keterangan Id_pasal Int Primary key


(65)

2. Tabel Pengertian Pasal

Tabel ini digunakan untuk menyimpan data-data pasal yang diinputkan

oleh admin. Adapun detail dari tabel pengertian pasal adalah sebagai

berikut.

Tabel 3.2. Tabel Pengertian Pasal

Nama Field Tipe Keterangan Isi_pengertian Varchar 255

Id_pasal Int Foreign key

3.5. Perancangan Desain Antar Muka

Perancangan desain antar muka dimaksudkan untuk memudahkan user

dalam menjalankan perangkat lunak. Dalam aplikasi ini diperuntukkan bagi

pengguna yaitu polisi maupun praktisi hukum. Adapun tampilan desain antar

muka untuk user tampak seperti Gambar 3.14 berikut.

HEADER KUHP INDONESIA

FOOTER

Gambar 3.14 Desain Antarmuka User ---- Teks pencarian ----


(66)

Disini user hanya diminta kata kunci yang berhubungan dengan kasus

yang terjadi. Setelah penginputan kata kunci, user dapat langsung menekan enter

atau menekan tombol penelusuran. Maka akan tampil form baru yang berisi

pasal-pasal yang berhubungan dengan kata kunci. Yang mana rancangan desain form

hasil penelusuran tampak seperti dibawah ini.

HEADER KUHP INDONESIA

Hasil penelusuran kata kunci : pembunuhan sebanyak 1000 penelusuran Pasal 245.

Bla...bla....bla.... Pasal 456. Bla....bla...bla...

Pasal 498. Bla....bla...bla...

FOOTER

Gambar 3.15 Desain Form Hasil Penelusuran

Gambar 3.16 merupakan rancangan halaman Login ketika memasukkan username

dan password sebelum masuk ke halaman insert atau edit, racngan dibawah ini

menggunakan text box dan text field, seperti tampak dibawah ini. --- Teks Pencarian ---- Penelusuran


(67)

Gambar 3.16 Desain Login

Sedangkan untuk pengisian pasal-pasal diinputkan oleh user sendiri yaitu polisi

ataupun praktisi hukum. Disini user menginputkan pasal dan isinya beserta

keterangan dari pasal itu sendiri. Berikut adalah rancangan desain antarmuka

insert data pasal, yang tampak pada Gambar 3.17

Gambar 3.17 Desain Form Insert dan Edit Data Pasal

Dari Gambar 3.17 di atas, terdapat tombol edit, tombol ini digunakan untuk

melakukan edit pada pasal-pasal yang ada. Untuk melakukan edit, user

menginputkan kode pasal yang akan di edit, kemudian klik tombol edit. Dan isi

Username

Password

Login-KUHP Data

Reset

Submit

HEADER Kode Pasal

Isi Pasal Isi Pengertian

FOOTER Edit


(68)

beserta pengertian pasal akan keluar. Disini user melakukan editing data. Setelah

selesai melakukan editing, klik tombol sumbit dan data ter-edit.

Gambar 3.18 Desain Form Data Pasal

Dari Gambar 3.18 di atas, untuk menampilkan data pasal yang sudah tersimpan di

database, juga terdapat tombol edit, tombol ini digunakan untuk melakukan link

ke form insert dan edit data yang ada. Untuk melakukan delete, user kemudian

klik tombol delete. Untuk melihat pasal. User kemudian klik tombol pasal. KUHP INDONESIA

P

HEADER

FOOTER

PASAL ISI PASAL PILIHAN

489 500 600 700 800

Bla..bla…bla… Bla..bla…bla… Bla..bla…bla… Bla..bla…bla… Bla..bla…bla…

Edit # Delet e Edit # Delet e Edit # Delet e Edit # Delet e Edit # Delet e


(69)

4.1Kebutuhan Sistem

Sebelum melakukan implementasi dan menjalankan aplikasi untuk pencarian pasal-pasal hukum, dibutuhkan spesifikasi perangkat keras dan perangkat lunak dengan kondisi tertentu agar dapat berjalan dengan baik. Berikut ini adalah kebutuhan minimal perangkat keras untuk menjalankan aplikasi untuk pencarian pasal-pasal hukum:

a. Komputer dengan prosesor Pentium 4. b. Memori minimal 1 GB.

Kebutuhan perangkat lunak digunakan untuk menjalankan aplikasi untuk pencarian pasal-pasal hukum ini adalah sebagai berikut :

a. Sistem Operasi Microsoft Windows XP Profesional SP2. b. Microsoft .NET Framework SDK versi 2.0.

4.2 Implementasi Basis Data

Pada tahap ini akan dibahas mengenai implementasi basis data dari perancangan yang telah dibahas sebelumnya. Pada pemrograman berbasis web

mengenal adanya penyimpanan data ke dalam file. Yaitu semua data yang ada dilakukan penyimpanan ke dalam basis data sesuai dengan tabel yang bersangkutan. Implementasi basis data pada aplikasi ini menggunakan aplikasi


(70)

aplikasi terbuka. Aplikasi terbuka digunakan untuk melakukan proses insert dan

update.

Pada perancangan yang telah dibuat sebelumnya, terdapat 2 tabel yang akan digunakan dalam aplikasi ini, yaitu tabel pasal dan pengertian pasal. Tabel pasal ini berisi pasal-pasal yang ada dalam KUHP dan tabel pengertian pasal berisi penjelasan-penjelasan dari tabel pasal tersebut. Proses yang berjalan pada aplikasi ini adalah suatu proses pencarian pasal hukum KUHP berdasarkan algoritma Boyer – Moore. Untuk proses insert data pasal dilakukan proses insert query yang dilakukan oleh admin itu sendiri. Berikut penjelasan dari script yang digunakan untuk proses insert data pasal.

<?

include("../conn.php"); $id=$_GET['id'];

$sql1 = "select isi_pasal from pasal where id_pasal='".$id."'"; $run1 = mysql_query($sql1);

if(mysql_num_rows($run1)>0) $res1 = mysql_fetch_array($run1);

$sql2 = "select isi_pengertian from pengertian where id_pasal='".$id."'";

$run2 = mysql_query($sql2);

if(mysql_num_rows($run2)>0) $res2 = mysql_fetch_array($run2); if(mysql_num_rows($run1)>0){

echo $res1['isi_pasal']."###".$res2['isi_pengertian']; } else echo '0';

?>

Gambar 4.1 Fungsi Select

Dari script di atas dapat dijelaskan adanya proses koneksi ke database. Selanjutnya proses queryinsert pada tabel pasal. Dilakukan eksekusi query insert

pada tabel pasal. Setelah itu terdapat proses kondisi jika data pasal lebih dari 1 maka dilakukan proses query insert tabel pengertian pasal yang mana id pasal


(71)

pengertian pasal. Setelah itu hasil pengisian tabel pasal dan tabel pengertian pasaml ditampilkan pada aplikasi.

Untuk proses algoritma Boyer – Moore itu sendiri melalui beberapa tahapan, antara lain pengambilan data dari tabel pasal, kemudian dilakukan proses

stoplist, sorting dan penyimpanan ke dalam array yang dilakukan dalam suatu

query. jika dari pencarian menggunakan Boyer-Moore tidak dapat memberikan hasil, maka dilanjutkan dengan proses stemming. Berikut penjelasan dari script-script yang digunakan untuk implementasi proses pencarian dengan Boyer-Moore

dan Stemming.

function highlightWords($string,$word){

$new=str_ireplace($string,'<spanclass="highlight_word">'.$string.' </span>', $word);

/*** return the highlighted string ***/ return $new;

}

Gambar 4.2 Potongan Source Code Function Highlightwords

Stoplist merupakan proses menghilangkan kata-kata umum. Misalkan

dalam, dan, karena, mana, untuk dan lainnya. Dalam pembahasan ini hanya batasi pada bahasa indonesia saja. Dalam function stoplist ini menggunakan fungsi-fungsi string yang ada, misalnya substr yaitu sebuah fungsi php yang berguna untuk memotong atau mengambil karakter. Ltrim dan rtrim yaitu sebuah fungsi penangambilan karakter berdasarkan string yang ada. Dari function dibawah ini dapat dijelaskan proses yang terjadi pertama kali pengenalan karakter dari kata kunci, selanjutnya dilakukan replace karakter. Selanjutnya terdapat pengkondisian jika string pada posisi pertama bernilai spasi maka yang dilakukan adalah


(1)

77

Pada form dalam Gambar 5.9. di atas dapat ditambahkan sejumlah pasal berikut isi dan penjelasannya. Fitur data pasal di ujung kanan atas dari halaman ini dapat digunakan untuk kembali ke halaman admin.

Untuk melakukan modifikasi atau mengedit beberapa isi pasal yang mungkin salah, dsb. Dapat dilakukan dengan tahapan membuka data pasal yang akan di edit. Seperti pada gambar 5.10 di bawah ini.

Gambar 5.10. Lihat Data Pasal 489

Setelah dibuka dan dirasa ada kekeliruan serta akan dilakukan revisi atas data tersebut, maka admin dapat menggunakan fitur edit sehingga akan muncul form edit pasal 489 seperti pada Gambar 5.11 di bawah ini.


(2)

Gambar 5.11. Halaman Edit Data

Selain mengedit data, halaman ini juga menyediakan fitur penghapusan data, sehingga ketika terjadi amandemen atas isi dari KUHP maka akan secara mudah dilakukan pergantian atau penghapusan data pasal. Seperti yang dapat dilihat pada gambar 5.12. di bawah ini. Uji coba hapus dilakukan pada data pasal 489. Sehingga setelah ditekan tombl hapus, maka akan muncul pesan konfirmasi untuk menghapus data, sebagai berikut.


(3)

79

Gambar 5.12. Uji Coba Hapus Data Pasal 489

5.3. Evaluasi

Dari hasil uji coba pencarian data pasal yang telah dilakukan, maka dapat dilakukan evaluasi 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.


(4)

6.1. KESIMPULAN

Kesimpulan yang dapat diambil dari pembuatan Aplikasi sistem pendukung keputusan penyidik kepolisian tindak pidana pelanggaran berdasarkan

KUHP dengan menggunakan metode string matching Boyer-Moore adalah

sebagai berikut:

a. Dengan menggunakan algoritma Boyer-Moore maka Proses pencocokan string

berjalan dengan cukup baik.

b. Dari hasil uji coba didapatkan bahwa untuk mencari pasal dengan kata kunci yang diinputkan oleh user tidak memerlukan banyak waktu, hal ini dibuktikan dengan cepatnya proses dari pencarian yang dilakukan.

c. Proses algoritma Boyer-Moore maupun stemming yang ada dalam aplikasi ini dapat dilihat pada hasil penelusuran dengan kata kunci yang bercetak tebal dan berwarna biru.

6.2. SARAN

Adapun saran-saran yang dapat digunakan untuk mengembangkan aplikasi yang telah dibuat adalah sebagai berikut :

a. Aplikasi sistem pendukung keputusan penyidik kepolisian tindak pidana


(5)

81

matching Boyer-Moore dapat dikembangkan menjadi Sistem Informasi,

sehingga aplikasi lebih kompleks keakuratannya.

b. Untuk Aplikasi sistem pendukung keputusan penyidik kepolisian tindak

pidana pelanggaran berdasarkan KUHP dengan menggunakan metode string matching Boyer-Moore dapat digunakan pada semua kepolisian dan praktisi hukum yang ada di Indonesia.


(6)

Anggota IKAPI, (2007) PHP & MYSQL dengan Dreamweaver, Maxicom, Palembang

Petra. 2004. Algoritma boyer-moore. Diakses online Maret 2010 dari

ht t p:/ / digilib.pet ra.ac.id/ view er.php?subm it .x=16& subm it .y=12& subm it =prev

& page=40& qual=high& subm it val=prev& fnam e=%2Fjiunkpe%2Fs1%2Finfo%2F

2004%2Fjiunkpe-ns-s1-2004-26400081-5477-t ext _m ining-chapt er2.pdf.

Wordpress. 2007. Algoritma stemmer. Diakses online April 2010 dari .ht t p:/ / oguds.w ordpress.com/ 2007/ 10/ 20/ algorit m a-st em

mer-bahasa-indonesia.