• Tidak ada hasil yang ditemukan

ANALISIS DAN PERANCANGAN

3.4. Main process

Setelah seluruh tahapan pre processing dilakukan maka dihasilkan hex string yang yang disimpan pada file .txt, maka file tersebut dapat digunakan dalam proses pencarian pesan SMS dengan menggunakan fitur auto find. Pada tahap main process dijalankan fitur auto find sebagai proses utama dari sistem, pada implementasinya fitur auto find menggunakan algoritma Boyer-Moore dalam sistem kerjanya. Langkah- langkah yang dilakukan seperti metode string matching dan algoritma Boyer-Moore dapat dilihat pada bagian 2.3 dan bagian 2.4. Pada tahap ini juga dilakukan generallisasi input yang digunakan serta proses filtering yang dijalankan. Langkah - langkah pada main process akan dijelasakan secara terperinci pada bagian - bagian selanjutnya.

3.4.1 Generallisasi Input

Generalisasi input disini merupakan bentuk penyeragaman pattern yang akan dicari. Generalisasi dilakukan agar sistem mendapatkan hasil sesuai dengan yang diharapkan, kemudian agar pencarian terfokus pada pola yang sudah ditentukan sehingga hasil yang ingin didapat ditampilkan secara maksimal.

Generelalisasi dapat menbantu dalam merekapitulasi pesan SMS yang masih utuh maupun yang sudah terhapus. Dalam implementasinya sistem menggunakan beberapa bytes heksadesimal sebelum kelompok bytes nomor pesan SMS, bagian ini merupakan header dari data pesan SMS tersebut, hal ini didasari pada setiap dataset yang digunakan memliki susunan pola yang sama. Bytes yang digunakan adalah 08 08 08, selanjutnya bytes ini digunakan sebagai hex pattern dalam fitur auto find. Pola pesan SMS dapat dilihat pada Gambar 3.3. Pola pesan SMS membentuk suatu

39

rangkaian yang berupa header, nomor pesan SMS, tanggal pesan SMS dan isi pesan SMS.

nomor_pesanSMS tanggal_pesanSMS isi_pesanSMS header

Gambar 3.3. Pola pesan SMS

3.4.2 Perancangan fitur Auto Find

Fitur auto find merupakan fitur yang dirancang untuk menemukan kembali pesan SMS secara otomatis. Fitur ini melakukan pencarian hex pattern dalam hex string secara otomatis pada bytes heksadesimal dengan menggunakan algoritma Boyer- Moore, fitur ini mencari potongan pattern input 08 08 08, sebagaimana yang sudah dijelaskan pada bagian 3.4.1.

Hasil fitur auto find ini akan menampilkan seluruh atribut pesan SMS seperti: nomor pesan SMS, tanggal pesan SMS dan isi pesan SMS yang terdapat pada byte- byte heksadesimal hasil dari generate hex values. Pada fitur auto find dijalankan beberapa proses yaitu: pre processing algoritma Boyer-Moore dan search process algoritma Boyer-Moore. Proses ini akan dijelaskan secara terperinci pada bagian selanjutnya.

3.4.2.1 Pre Processing Algoritma Boyer-Moore

Hasil dari pre processing berupa rangkaian hex string dan hasil dari generalisasi input berupa hex pattern terlebih dahulu digunakan untuk menghitung nilai pergeseran selanjutnya berdasarkan fungsi bad-character shift dan good-suffix shift. Selanjutnya nilai pergeseran disimpan dalam dua tabel yaitu: tabel BmBc dan tabel BmGs. Tabel BmBc(Boyer-Moore Bad-Character Shift) merupakan tabel yang menyimpan nilai pergeseran bad-character shift, sedangkan tabel BmGs (Boyer-Moore Good-Suffix Shift) merupakan tabel yang menyimpan nilai pergeseran good-suffix shift. Nilai pergeseran BmBc dapat dilihat pada Tabel 3.4 dan nilai pergeseran BmGs dapat dilihat pada Tabel 3.5. Nilai pergeseran BmBc dan BmGs dihitung dengan asumsi seluruh karakter yang ada pada hex pattern terdapat pada hex string atau teks. Nilai pergeseran BmBc dihitung dengan menggunakan pseudocode yang ada pada bagian

2.5.2, sedangkan nilai pergeseran BmGs dihitung dengan menggunakan pseudocode yang ada pada bagian 2.5.3.

Tabel 3.4. Nilai pergeseran BmBc pada fitur auto find char BmBc[char] 0 1 8 2 0 1 8 2 0 1 8 2 * 6

Tabel 3.5. Nilai pergeseran BmGs pada fitur auto find i char[i] BmGs[i] 0 0 2 1 8 2 2 0 4 3 8 4 4 0 6 5 8 1 3.4.2.2 Searching Process

Sistem akan melakukan pencarian hex pattern pada hex string dengan menggunakan dua buah tabel pergeseran yaitu bad-character shift dan good-suffix shift, dimana ketika terjadi ketidakcocokan sistem akan memilih nilai pergeseran terbesar dari kedua tabel tersebut untuk pergeseran selanjutnya. Flowchart untuk proses pencarian algoritma Boyer-Moore dapat dilihat pada Gambar 3.4. Pseudocode algoritma Boyer- Moore dalam proses pencarian ditunjukan sebagai berikut :

procedure BM(input pattern, text: array of char)

41

i, j : integer

bmGs : array [0..XSIZE] of integer bmBc : array [0..ASIZE] of integer

Algoritma /* Preprocessing */ preBmGs(pattern, BmGs) preBmBc(pattern, BmBc) /* Searching */ i = 0

while (i <= text.Length - pattern.Length);

for (j = pattern.Length - 1; j >= 0 and pattern[j]=text[i+j]; --i) if (j < 0) arr.Add(i); i ← i + BmGs[0]; else i ← i + MAX(BmGs[j],BmBc[text[i+j]]-pattern.Length+1+j)

Seperti yang sudah dijelaskan sebelumnya rangkaian bytes hasil dari generate hex values file database dapat dijadikan sebagai rangkaian string, maka pencarian pattern generalisasi input pada string tidak lain merupakan pencocokan string. Berikut ini contoh pencocokan pattern di dalam string dengan menggunakan algoritma Boyer- Moore:

Suatu potongan rangkaian string(R)

0 0 8 8 0 0 1 1 0 8 0 8 8 8 0 8 0 8 0 8 0 0 8 8

Akan dicocokan dengan pattern(P) 0 8 0 8 0 8

Tahapan-tahapan yang terjadi:

Tahap 1.

0 0 8 8 0 0 1 1 0 8 0 8 8 8 0 8 0 8 0 8 0 0 8 8

0 8 0 8 0 8

Pada proses pencocokan tahap 1 terjadi ketidakcocokan pattern dengan teks pada karakter 0 dan posisi 5, kemudian diambil nilai pergeseran terbesar antara BmGs[5] = 1 dan BmBc[0] = 1 maka pergeseran selanjutnya adalah 1.

BmGs[5] = BmBc[0] = 1 Shift by 1

Tahap 2.

0 0 8 8 0 0 1 1 0 8 0 8 8 8 0 8 0 8 0 8 0 0 8 8

0 8 0 8 0 8

Pada proses pencocokan tahap 2 terjadi ketidakcocokan pattern dengan teks pada karakter 1 dan posisi 5, kemudian diambil nilai pergeseran terbesar antara BmGs[5] = 1 dan BmBc[1] = 6 maka pergeseran selanjutnya adalah 6.

BmGs[5] = 1 , BmBc[1] = 6 Shift by 6

43

Tahap 3.

0 0 8 8 0 0 1 1 0 8 0 8 8 8 0 8 0 8 0 8 0 0 8 8

0 8 0 8 0 8

Pada proses pencocokan tahap 3 terjadi ketidakcocokan pattern dengan teks pada karakter 8 dan posisi 4, kemudian diambil nilai pergeseran terbesar antara BmGs[4] = 6 dan BmBc[8] = 2 maka pergeseran selanjutnya adalah 6.

BmGs[4] = 6 , BmBc[8] = 2 Shift by 6

Tahap 4.

0 0 8 8 0 0 1 1 0 8 0 8 8 8 0 8 0 8 0 8 0 0 8 8

0 8 0 8 0 8

Pada proses pencocokan tahap 4 terjadi ketidakcocokan pattern dengan teks pada karakter 0 dan posisi 5, kemudian diambil nilai pergeseran terbesar antara BmGs[5] = 1 dan BmBc[0] = 1 maka pergeseran selanjutnya adalah 1.

BmGs[5] = BmBc[0] = 1 Shift by 1 Tahap 5. 0 0 8 8 0 0 1 1 0 8 0 8 8 8 0 8 0 8 0 8 0 0 8 8 0 8 0 8 0 8

Pada proses pencocokan tahap 5 terjadi kecocokan pattern dengan teks maka sesuai algoritma yang digunakan pergeseran selanjutnya mangambil nilai dari BmGs[0] sejauh 2 pergeseran. BmGs[0] = 2 Shift by 2 Tahap 6. 0 0 8 8 0 0 1 1 0 8 0 8 8 8 0 8 0 8 0 8 0 0 8 8 0 8 0 8 0 8

Pada proses pencocokan tahap 6 terjadi ketidakcocokan pattern dengan teks pada karakter 0 dan posisi 5, kemudian diambil nilai pergeseran terbesar antara BmGs[5] = 1 dan BmBc[0] = 1 maka pergeseran selanjutnya adalah 1.

BmGs[5] = BmBc[0] = 1 Shift by 1

Tahap 7.

0 0 8 8 0 0 1 1 0 8 0 8 8 8 0 8 0 8 0 8 0 0 8 8

0 8 0 8 0 8 Pada proses pencocokan tahap 7 terjadi ketidakcocokan pattern dengan teks pada karakter 0 dan posisi 3, kemudian diambil nilai pergeseran terbesear antara BmGs[3] = 4 dan BmBc[0] = 1 maka pergeseran selanjutnya adalah 4.

BmGs[3] = 4 , BmBc[0] = 1 Shift by 4

Ketika terjadi kecocokan sistem akan mencatat posisi di mana string ditemukan, kemudian sistem akan mengambil beberapa bytes setelahnya yang berisi pola nomor pesan SMS, tanggal pesan SMS dan isi pesan SMS begitu seterusnya. Hal ini didasari oleh setiap pesan SMS yang masih utuh maupun yang terhapus memliki bentuk pola yang sama dalam representasinya dalam bentuk bytes heksadesimal. Pola perancangan fitur auto find dapat dilihat pada Gambar 3.5.

45

3.4.3 Filtering

Pada proses auto find ada kemungkinan sistem menampilkan hasil proses data pesan SMS secara berulang - ulang, oleh sebab itu diperlukan suatu proses tambahan agar hal ini tidak terjadi. Proses filtering dirancang untuk menghilangkan data ganda yang berulang pada hasil proses auto find.

Pada proses penemuan tanggal pesan SMS dibuat variabel date yang gunanya untuk menampung nilai tanggal pesan SMS, kemudian nilai variabel date dimasukan pada variabel dateCollection yang nantinya akan berisi kumpulan dari nilai tanggal pesan SMS yang sudah ditemukan sebelumnya. Variabel ada digunakan sebagai inisiasi status date pada dateCollection, secara default variabel ada bernilai 0. Kemudian dibuat perulangan untuk mengecek tanggal pesan SMS sudah ada atau belum. Jika ditemukan maka variabel ada ditambah 1. Jika tanggal sudah ada maka kemungkinan nilai variabel ada bisa lebih dari 1, jika belum ada maka variabel ada menjadi 1. Jika variabel ada bernilai 1 maka proses pencarian pesan SMS dilanjutkan. Jika tidak maka akan kembali ke proses pencarian pattern. Flowchart pada proses filtering dapat dilihat pada Gambar 3.6.

3.4.4. Target Output

Target output pada implementasi metode ini adalah sistem diharapkan mampu merekapitulasi dan menampilkan kembali pesan SMS serta dapat mengidentifikasi apakah pesan SMS tersebut masih utuh atau sudah terhapus. Hasil yang ditampilkan oleh sistem adalah nomor pesan SMS, tanggal pesan SMS, isi pesan SMS serta status pesan SMS tersebut, apakah masih utuh atau sudah terhapus.

Perancangan tampilan dari target ouput dapat dilhat pada Gambar 3.7. Untuk pesan SMS yang ditemukan pada sistem dan masih terdapat dalam file database maka pesan SMS tersebut masih utuh, dan sebaliknya jika pesan SMS yang ditemukan pada sistem dan sudah tidak terdapat lagi di file database maka pesan SMS tersebut sudah terhapus. Sistem menggunakan bagian tanggal pesan SMS dalam bentuk epoch time untuk dicocokan kembali pada file database untuk mendapatkan status pesan SMS tersebut.

BAB 4

Dokumen terkait