Mobile Forensic Dalam Menemukan Sms Yang Telah Dihapus Pada Handphone Android Dengan Menggunakan Algoritma Boyer-Moore
MOBILE FORENSIC DALAM MENEMUKAN SMS YANG TELAH DIHAPUS PADA HANDPHONE ANDROID DENGAN MENGGUNAKAN
ALGORITMA BOYER-MOORE
SKRIPSI
DIAN FAJAR PRAYOGA 101402094
PROGRAM STUDI S1 TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
MEDAN 2015
(2)
MOBILE FORENSIC DALAM MENEMUKAN SMS YANG TELAH DIHAPUS PADA HANDPHONE ANDROID DENGAN MENGGUNAKAN
ALGORITMA BOYER-MOORE
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Teknologi Informasi
DIAN FAJAR PRAYOGA 101402094
PROGRAM STUDI S1 TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
MEDAN 2015
(3)
iii
PERSETUJUAN
Judul : MOBILE FORENSIC DALAM MENEMUKAN SMS
YANG TELAH DIHAPUS PADA HANDPHONE ANDROID DENGAN MENGGUNAKAN
ALGORITMA BOYER-MOORE
Kategori : SKRIPSI
Nama : DIAN FAJAR PRAYOGA
Nomor Induk Mahasiswa : 101402094
Program Studi : SARJANA (S1) TEKNOLOGI INFORMASI
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Dani Gunawan, S.T, M.T Prof. Dr. Opim Salim Sitompul, M.Sc
NIP 19820915 201212 1002 NIP 19610817 198701 1001
Diketahui oleh
Program Studi S1 Teknologi Informasi Ketua,
Muhammad Anggia Muchtar, S.T, MM.I.T NIP 19800110 200801 1010
(4)
PERNYATAAN
MOBILE FORENSIC DALAM MENEMUKAN SMS YANG TELAH DIHAPUS PADA HANDPHONE ANDROID DENGAN MENGGUNAKAN
ALGORITMA BOYER-MOORE
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan, 29 Oktober 2015
Dian Fajar Prayoga 101402094
(5)
v
PENGHARGAAN
Alhamdulillah, segala puji dan syukur kehadirat Allah SWT yang telah memberikan rahmat, karunia, taufik dan hidayah-Nya kepada penulis sehingga penulis dapat menyelesaikan skripsi ini dengan baik. Penulis menyadari bahwa banyak pihak yang turut membantu penulis dalam menyelesaikan skripsi ini. Dalam kesempatan ini, penulis mengucapkan terima kasih kepada:
1. Bapak Prof. Dr. Opim Salim Sitompul, M.Sc dan Bapak Dani Gunawan, S.T, M.T selaku Dosen Pembimbing I dan Dosen Pembimbing II yang telah memberikan banyak arahan, kritik, saran serta motivasi kepada penulis dalam pengerjaan skripsi ini.
2. Bapak Romi Fadillah Rahmat, B.Comp.Sc., M.Sc dan Ibu Dr. Erna Budhiarti Nababan, M.IT selaku Dosen Pembanding I dan Dosen Pembanding II yang telah bersedia menguji dan memberikan kritik serta saran yang sangat berharga kepada penulis.
3. Bapak Prof. Dr. Muhammad Zarlis, M.Sc selaku Dekan Fakultas Ilmu
Komputer dan Teknologi Informasi Universitas Sumatera Utara.
4. Bapak Muhammad Anggia Muchtar, S.T., MM.IT selaku Ketua Program Studi (S1) Teknologi Informasi serta seluruh Bapak dan Ibu Dosen Program Studi (S1) Teknologi Informasi yang telah senantiasa memberikan ilmu kepada penulis selama masa perkuliahan.
5. Seluruh staff TU (Tata Usaha) Program Studi Teknologi Informasi dan
Fakultas Ilmu Komputer dan Teknologi Informasi yang telah banyak membantu segala kegiatan administrasi penulis.
6. Penghargaan dan ucapan terima kasih yang teristimewa untuk kedua orang tua penulis Ayahanda Drs. Sariono dan Ibunda Sumiati yang selalu mendoakan, mendukung dan senantiasa memberikan kasih sayang kepada penulis sepanjang masa.
(6)
7. Terkhusus kepada Abanganda Doddy Satriawan Putra dan Kakanda Diana Hartika Sari S.Pd yang telah bersedia menjadi motivasi penulis dalam menyelesaikan skripsi ini.
8. Terima kasih kepada Nadya, Nia, Reza, Sintong yang telah menjadi partner setia penulis dalam menyelesaikan tugas-tugas selama kuliah. Kepada Wisnu, Bagus, Alfon, Iqbal, Farid, Ilda serta rekan-rekan sejawat program studi Teknologi Informasi khususnya angkatan 2010 terima kasih atas segala dukunganya kepada penulis sehingga penulis dapat menyelesaikan skripsi ini. 9. Terima kasih kepada para sahabat penulis Affan, Akbar, Aditya, Ica, Billa,
Deana, Lia, Kharani, Bang Fadly, Bang Irfan, Kak Bela, Kak Dinda, serta teman-teman ‘The Wek’ dan sahabat-sahabat penulis lainnya yang selalu membantu dan memberikan dukungan serta motivasi kepada penulis dalam menyelesaikan skripsi ini.
Semoga Allah SWT memberikan berkah serta nikmat yang berlimpah kepada semua pihak yang telah memberikan bantuan, perhatian, serta dukungan kepada penulis dalam menyelesaikan skripsi ini.
(7)
vii
ABSTRAK
Pesan SMS dapat dijadikan sebagai barang bukti digital dalam pengungkapan kasus tindak kejahatan, bukti digital pesan SMS dapat menguatkan dakwaan terhadap pelaku tindak kejahatan. Berbagai cara dilakukan oleh pelaku tindak kejahatan untuk menghilangkan barang bukti, termasuk dengan menghapus pesan SMS. Pada sistem operasi Android pesan SMS tersimpan dalam sebuah file database berjenis SQLite, penghapusan data pesan SMS tidak dibarengi dengan penghapusan bit pada memori, sehingga memungkinkan untuk menemukan kembali pesan SMS yang telah dihapus. Atas dasar hal ini, mobile forensic sangat perlu dilakukan untuk menemukan kembali pesan SMS tersebut. Metode yang diajukan pada penelitian ini adalah metode pencarian string matching dengan menggunakan algoritma Boyer-Moore. Pada penelitian ini dirancang suatu fitur auto find untuk menemukan kembali pesan SMS dengan cara melakukan pencarian menggunakan pattern yang sudah ditentukan untuk dicocokan kembali dengan teks hasil dari konversi nilai hex pada file database. Sistem akan menampilkan kembali pesan SMS setiap terjadi kecocokan. Pada penelitian ini ditunjukan bahwa metode yang diajukan memiliki akurasi yang baik dalam menemukan kembali pesan SMS tersebut dengan menggunakan dataset yang digunakan. Hasil pencarian untuk menemukan kembali pesan SMS yang telah dihapus bergantung pada adanya kemungkinan telah terjadi proses overwriting dan prosedur vacuum pada file database tersebut.
Kata kunci : Forensik digital dan mobile, Pesan SMS, Android, Database SQLite, String matching, Algoritma Boyer-Moore, Auto find
(8)
MOBILE FORENSIC FINDING THE SMS THAT HAS BEEN DELETED ON ANDROID PHONE USING BOYER-MOORE ALGORITHM
ABSTRACT
Short messages service (SMS) can be used as digital evidence in the case of disclosure of crime, digital evidence of short messages service can strengthen the charges against offenders. Various methods are used by criminals to destroy evidence, including by deleting short messages service. On the Android operating system short messages service are stored in a SQLite database file manifold, data erasure short messages service is not accompanied by the elimination of bits in the memory, making it possible to rediscover the short messages service that have been deleted. On the basis of this case, On the basis of this case, the mobile forensic needs to be done to rediscover the short messages service. The method proposed in this study is the search string matching method using the Boyer-Moore algorithm. On this research, auto find features designed to rediscover the short messages service by doing a search using predefined pattern to match a text back with the result of the conversion of the hex value in the database file. The system will show any return short messages service occurs a match. In this study demonstrated that the proposed method has good accuracy in rediscovering the short messages service using the dataset used. The search results to find back the short messages service that have been deleted depend on the possibility of overwriting process has taken place and the vacuum procedure on the database file.
Key word : Digital and mobile forensic, Short messages service (SMS), Android, SQLite database, String matching, Boyer-Moore algorithm, Auto find
(9)
ix
DAFTAR ISI
Hal.
Persetujuan iii
Pernyataan iv
Penghargaan v
Abstrak vii
Abstract viii
Daftar Isi ix
Daftar Tabel xii
Daftar Gambar xiv
BAB I Pendahuluan 1
1.1 Latar Belakang 1
1.2 Rumusan Masalah 3
1.3 Batasan Masalah 4
1.4 Tujuan Penelitian 4
1.5 Manfaat Pemelitian 4
1.6 Metodologi Penelitian 5
1.7 Sistematika Penulisan 6
BAB II Landasan Teori 7
2.1 Mobile Forensic 7
2.2 Android 9
2.2.1 Architecture 10
2.2.2 Library Layer 12
2.2.3 Database Architecture 14
2.3 Short Message Service 16
2.3.1 Deleted Message 17
(10)
2.4 String Matching 22
2.4.1 Exact String Matching 22
2.4.2 Approximate String Matching 23
2.4.3 Window Sliding 23
2.5 Algoritma Boyer-Moore 24
2.5.1 Deskripsi Kerja Algoritma Boyer-Moore 25
2.5.2 Bad-Character Shift 25
2.5.3 Good-Suffix Shift 27
2.5.4 Cara Kerja Algoritma Boyer-Moore 29
2.6 Penelitian Terdahulu 30
BAB III Analisis dan Perancangan 31
3.1 Arsitektur Umum 31
3.2 Dataset 32
3.3 Pre Processing 34
3.3.1 Image Making 35
3.3.2 Extract Image File 35
3.3.3 Generate Hex Values 37
3.4 Main Process 38
3.4.1 Generallisasi input 38
3.4.2 Perancangan Auto Find 39
3.4.2.1 Pre Processing Algoritma Boyer-Moore 39
3.4.2.2 Searching Process 40
3.4.3 Filtering 45
3.4.4 Target Output 46
BAB IV Implementasi dan Pengujian 47
4.1 Implementasi Generate Hex Values 47
4.2 Implementasi fitur Auto Find 55
(11)
xi
BAB V Kesimpulan dan Saran 68
5.1 Kesimpulan 68
5.2 Saran 69
(12)
DAFTAR TABEL
Hal.
Tabel 2.1 Daftar bukti digital yang dapat ditemukan 9
Tabel 2.2 Data pengguna mobile phone di dunia 10
Tabel 2.3 Data market share OS smartphone di dunia tahun 2014 10
Tabel 2.4 Subdirektori /data/data/<packageName> 15
Tabel 2.5 Arsitektur tabel sms 16
Tabel 2.6 Aktivitas pengguna smartphone 17
Tabel 3.1 Properti dataset file database 34
Tabel 3.2 Properti hasil backup 35
Tabel 3.3 Hasil ekstraksi file image data.yaffs2.img 36
Tabel 3.4 Nilai pergeseran BmBc pada fitur auto find 40
Tabel 3.5 Nilai pergeseran BmGs pada fitur auto find 40
Tabel 4.1 Tabel BFD untuk file mmssms1.db 48
Tabel 4.2 Tabel BFD untuk file mmssms2.db 49
Tabel 4.3 Tabel BFD untuk file mmssms3.db 50
Tabel 4.4 Tabel BFD untuk file mmssms4.db 50
Tabel 4.5 Tabel BFD untuk file mmssms5.db 51
Tabel 4.6 Tabel BFD untuk file mmssms6.db 52
Tabel 4.7 Tabel BFD untuk file mmssms7.db 52
Tabel 4.8 Tabel BFD untuk file mmssms8.db 53
Tabel 4.9 Tabel BFD untuk file mmssms9.db 54
Tabel 4.10 Tabel BFD untuk file mmssms10.db 55
Tabel 4.11 Hasil auto find file mmssms1.db 57
Tabel 4.12 Hasil auto find file mmssms2.db 58
Tabel 4.13 Hasil auto find file mmssms3.db 59
Tabel 4.14 Hasil auto find file mmssms4.db 60
Tabel 4.15 Hasil auto find file mmssms5.db 60
(13)
xiii
Tabel 4.17 Hasil auto find file mmssms7.db 62
Tabel 4.18 Hasil auto find file mmssms8.db 63
Tabel 4.19 Hasil auto find file mmssms9.db 64
Tabel 4.20 Hasil auto find file mmssms10.db 65
Tabel 4.21 Hasil pencarian untuk setiap dataset utuh 66
Tabel 4.22 Hasil pencarian untuk setiap dataset terhapus 67
(14)
DAFTAR GAMBAR
Hal.
Gambar 2.1 Arsitektur sistem operasi Android 12
Gambar 2.2 Tabel database file mmssms.db 15
Gambar 2.3 Ilustrasi insert dan delete record 19
Gambar 2.4 Pola pesan SMS 20
Gambar 2.5 Struktur database yang tidak berisi pesan SMS 21
Gambar 2.6 Struktur database yang berisi pesan SMS 22
Gambar 2.7 Ilustrasi windows sliding 24
Gambar 2.8 Bad-character shift, b terdapat di pattern x 25
Gambar 2.9 Bad-character shift, b tidak ada di pattern x 26
Gambar 2.10 Good-suffix shift, u terjadi lagi didahului karakter c berbeda dari a 27 Gambar 2.11 Good-suffix shift, hanya suffix dari u yang terjadi ladi di pattern x 27
Gambar 3.1 Arsitektur Umum 32
Gambar 3.2 Proses pengambilan file database 33
Gambar 3.3 Pola pesan SMS 39
Gambar 3.4 Flowchart proses pencarian algoritma Boyer-Moore 41
Gambar 3.5 Perancangan pola fitur auto find 44
Gambar 3.6 Flowchart proses filtering 45
Gambar 3.7 Perancangan tampilan target output 46
Gambar 4.1 Hasil Generate Hex Values 48
Gambar 4.2 Contoh hasil fitur auto find 56
Gambar 4.3 Tabel pesan SMS file database mmssms1.db 57
Gambar 4.4 Tabel pesan SMS file database mmssms2.db 58
Gambar 4.5 Tabel pesan SMS file database mmssms3.db 59
Gambar 4.6 Tabel pesan SMS file database mmssms7.db 62
Gambar 4.7 Tabel pesan SMS file database mmssms8.db 63
Gambar 4.8 Tabel pesan SMS file database mmssms9.db 64
(15)
vii
ABSTRAK
Pesan SMS dapat dijadikan sebagai barang bukti digital dalam pengungkapan kasus tindak kejahatan, bukti digital pesan SMS dapat menguatkan dakwaan terhadap pelaku tindak kejahatan. Berbagai cara dilakukan oleh pelaku tindak kejahatan untuk menghilangkan barang bukti, termasuk dengan menghapus pesan SMS. Pada sistem operasi Android pesan SMS tersimpan dalam sebuah file database berjenis SQLite, penghapusan data pesan SMS tidak dibarengi dengan penghapusan bit pada memori, sehingga memungkinkan untuk menemukan kembali pesan SMS yang telah dihapus. Atas dasar hal ini, mobile forensic sangat perlu dilakukan untuk menemukan kembali pesan SMS tersebut. Metode yang diajukan pada penelitian ini adalah metode pencarian string matching dengan menggunakan algoritma Boyer-Moore. Pada penelitian ini dirancang suatu fitur auto find untuk menemukan kembali pesan SMS dengan cara melakukan pencarian menggunakan pattern yang sudah ditentukan untuk dicocokan kembali dengan teks hasil dari konversi nilai hex pada file database. Sistem akan menampilkan kembali pesan SMS setiap terjadi kecocokan. Pada penelitian ini ditunjukan bahwa metode yang diajukan memiliki akurasi yang baik dalam menemukan kembali pesan SMS tersebut dengan menggunakan dataset yang digunakan. Hasil pencarian untuk menemukan kembali pesan SMS yang telah dihapus bergantung pada adanya kemungkinan telah terjadi proses overwriting dan prosedur vacuum pada file database tersebut.
Kata kunci : Forensik digital dan mobile, Pesan SMS, Android, Database SQLite, String matching, Algoritma Boyer-Moore, Auto find
(16)
MOBILE FORENSIC FINDING THE SMS THAT HAS BEEN DELETED ON ANDROID PHONE USING BOYER-MOORE ALGORITHM
ABSTRACT
Short messages service (SMS) can be used as digital evidence in the case of disclosure of crime, digital evidence of short messages service can strengthen the charges against offenders. Various methods are used by criminals to destroy evidence, including by deleting short messages service. On the Android operating system short messages service are stored in a SQLite database file manifold, data erasure short messages service is not accompanied by the elimination of bits in the memory, making it possible to rediscover the short messages service that have been deleted. On the basis of this case, On the basis of this case, the mobile forensic needs to be done to rediscover the short messages service. The method proposed in this study is the search string matching method using the Boyer-Moore algorithm. On this research, auto find features designed to rediscover the short messages service by doing a search using predefined pattern to match a text back with the result of the conversion of the hex value in the database file. The system will show any return short messages service occurs a match. In this study demonstrated that the proposed method has good accuracy in rediscovering the short messages service using the dataset used. The search results to find back the short messages service that have been deleted depend on the possibility of overwriting process has taken place and the vacuum procedure on the database file.
Key word : Digital and mobile forensic, Short messages service (SMS), Android, SQLite database, String matching, Boyer-Moore algorithm, Auto find
(17)
BAB 1
PENDAHULUAN
1.1. Latar Belakang
Pesan SMS dapat dijadikan sebagai barang bukti digital dalam kasus tindak kejahatan. Di Indonesia sendiri barang bukti digital dalam pengungkapan tindak kejahatan diatur dalam undang - undang nomor 11 tahun 2008 pasal 5 tentang informasi dan transaksi elektronik. Bukti digital memiliki peranan yang sangat penting dalam mengungkapkan sebuah tindak kejahatan digital. Terdapat empat tahapan dalam pembuktian bukti digital, yaitu identifikasi bukti digital, penyimpanan bukti digital, analisa bukti digital dan presentasi bukti digital (Casey, 2011). Keempat tahapan tersebut memiliki tugas dan fungsi masing - masing dalam pengungkapan bukti digital.
Pada sistem operasi android terdapat beberapa layanan atau fitur yang dapat dijadikan sebagai barang bukti digital seperti short message service (SMS), daftar panggilan, daftar kontak ataupun beberapa file media lainnya seperti file suara, gambar atau video. Pesan SMS pada sistem operasi android tersimpan dalam sebuah file database yang disimpan pada memori internal. File database ini berjenis SQLite. Namun permasalahan yang sering terjadi pelaku tindak kejahatan biasanya mencoba menghapus beberapa atau keseluruhan pesan SMS yang dianggap penting dengan tujuan untuk menghilangkan atau membuang barang bukti. Tetapi biasanya seorang penyidik kasus tindak kejahatan akan meminta data pesan SMS pelaku tindak kejahatan kepada pihak operator telekomunikasi untuk mendapatkan barang bukti. Namun biasanya hal ini memakan proses yang lama untuk memperoleh data tersebut dari pihak operator telekomunikasi.
(18)
Pada banyak kasus penyidik hanya mendapatkan barang bukti berupa sebuah handphone tanpa sim card dan nomor pelaku. Disinilah peranan mobile forensic dilakukan untuk mendapatkan sebuah barang bukti digital yang akan digunakan dalam mengungkapkan kasus tindak kejahatan dengan menganalisa isi dari handphone tersebut. Mobile forensic merupakan ilmu turunan dari ilmu pengetahuan digital forensic atau yang lebih dikenal sebagai forensik komputer. Digital forensic merupakan metode ilmiah yang mempelajari tentang cara pemeliharaan, pengumpulan, validasi, identifikasi, analisis, interpretasi, dokumentasi dan presentasi bukti digital yang berasal dari sumber - sumber digital untuk tujuan memfasilitasi rekrontruksi peristiwa pidana, atau membantu untuk mengantisipasi tindakan yang terbukti melanggar prosedur yang telah ditentukan (Carrier, 2003).
Pada sistem operasi android file database pesan SMS terdiri dari table storage dan record, data pesan SMS tersimpan dalam record pada table storage. Pada kasus penghapusan pesan SMS, penghapusan pesan SMS tidak dibarengi dengan penghapusan bit pada memori, pesan SMS yang telah dihapus dipindahkan ke bagian ruang kosong pada memori, proses ini disebut juga dengan istilah vacuum procedure (Stahlberg et al, 2007), sehingga pesan SMS yang telah dihapus sangat mungkin untuk dicari kembali. Pesan SMS yang telah dihapus akan dihapus secara permanent jika terjadi proses overwriting pada pesan SMS tersebut, proses overwriting ini merupakan proses penambahan pesan SMS baru pada tempat yang digunakan oleh pesan SMS yang telah dihapus sebelumnya (Hoog, 2010). Keberadaan pesan SMS yang telah dihapus juga bergantung pada seberapa sering file database tersebut melakukan vacuum procedure. Pesan SMS yang telah dihapus dapat dilihat dalam bentuk bytes heksadesimal. Hal ini akan sangat menyulitkan jika harus menemukan pesan SMS yang telah dihapus secara manual, sehingga perlu adanya sebuah sistem yang dapat menemukan pesan SMS yang telah dihapus, lalu menampilkannya kembali. Fitur auto find dirancang untuk menemukan kembali pesan SMS tersebut dengan cara melakukan pencocokan pattern pada string, proses ini biasa disebut dengan istilah string matching.
String matching merupakan sebuah metode pencocokan yang mencoba untuk menemukan suatu atau beberapa pattern (kata) dalam string (teks) (Lecroq, 1992). Metode string matching sudah banyak diterapkan dalam menyeselesaikan berbagai
(19)
3
masalah, seperti dalam melakukan pencocokan kata pada dokumen teks dengan menggunakan algoritma Knuth-Morris-Pratt (KMP) (Tenlima, 2009), translator bahasa Pascal ke C dengan menggunakan algoritma Boyer-Moore (Effendi et al, 2011).
Algoritma Boyer-Moore memiliki kinerja yang lebih baik dalam melakukan string matching daripada algoritma yang lain khususnya dalam jenis data ASCII, biner dan heksadesimal (Dermawan, 2001). Algoritma Boyer-Moore merupakan algoritma pencarian string berdasarkan postfix, algoritma Boyer-Moore terbukti memliki kinerja yang baik, algoritma ini melakukan pencocokan pattern dari kanan ke kiri, karakter paling kanan pada pattern merupakan karakter pertama yang akan dicocokan dengan teks atau string (Boyer et al, 1977). Pencarian pesan SMS yang telah dihapus sudah pernah dilakukan sebelumnya, Hoog (2011) menggunakan perintah grep pada sistem operasi Linux/UNIX dalam melakukan pencarian pesan SMS yang telah dihapus pada handphone android, perintah grep dalam implementasinya menggunakan algoritma Aho-Corasick.
Pada penelitian ini penulis akan menggunakan algortima Boyer-Moore untuk melakukan pencarian pesan SMS yang telah dihapus pada bytes heksadesimal file database pesan SMS. Pengunaan algoritma Booyer-Moore diharapkan mampu melakukan pencarian string sehingga dapat menemukan kembali pesan SMS yang telah dihapus agar dapat dijadikan sebagai barang bukti digital.
1.2. Rumusan Masalah
Pesan SMS dapat dijadikan sebagai barang bukti digital dalam pengungkapan kasus tindak kejahatan, bukti digital pesan SMS dapat menguatkan dakwaan terhadap pelaku tindak kejahatan. Namun pesan - pesan SMS dapat dengan mudah dihapus untuk menghilangkan barang bukti oleh pelaku kejahatan tersebut. Mobile forensic diperlukan agar pesan SMS yang telah dihapus dapat ditemukan kembali.
(20)
1.3. Batasan Masalah
Untuk mencegah meluasnya lingkup permasalahan yang akan dibahas dalam penelitian ini dan untuk membuat penelitian ini lebih terarah, maka dilakukan pembatasan masalah sebagai berikut :
1. Database yang akan diperiksa dalam melakukan string matching bertipe SQLite
2. Record dalam database tidak mengalami proses overwriting 3. File database tidak mengalami vacuum procedure
4. Pesan SMS yang akan dicari memiliki atribut yang lengkap
1.4. Tujuan Penelitian
Adapun tujuan penelitian ini yaitu menemukan kembali pesan SMS yang telah dihapus dengan menggunakan algoritma Boyer-Moore sebagai alat bantu dalam pencarian.
1.5. Manfaat Penelitian
Manfaat yang dapat diperoleh dari penelitian ini adalah :
1. Memberi pengetahuan terhadap kemampuan algoritma Boyer-Moore (BM) untuk melakukan pencarian pada string atau string matching.
2. Sebagai referensi untuk penelitian yang lain dalam membahas algoritma Boyer-Moore (BM) dan digital forensic.
3. Membantu penyidik kasus tindak kejahatan dalam mendapatkan barang bukti digital secepat mungkin melalui digital forensic.
(21)
5
1.6. Metodologi Penelitian
Langkah - langkah yang akan dilakukan pada pelaksanaan penelitian ini adalah sebagai berikut :
a. Studi Literatur
Pada tahap ini dilakukan studi literatur atau studi kepustakaan yaitu proses pengumpulan bahan rujukan atau referensi mengenai digital forensic, mobile forensic, database, string matching dan algoritma Boyer-Moore dari berbagai buku, jurnal, artikel dan lainnya.
b. Analisis
Pada tahap ini dilakukan analisis permasalahan terhadap studi literatur yang telah dikumpulkan untuk mendapatkan pemahaman mengenai metode pencocokan string yang diterapkan dalam algoritma Boyer-Moore untuk menyelesaikan masalah pencarian string.
c. Perancangan
Pada tahap perancangan dilakukan perancangan sistem dan pengumpulan data. Sistem dirancang menjadi dua bagian yaitu pre processing dan main processing/searching process. Proses perancangan dilakukan berdasarkan hasil analisis studi literatur yang telah didapatkan.
d. Implementasi
Pada tahap implementasi sistem akan dilakukan pengkodean program dengan menggunakan bahasa pemrograman Java.
e. Pengujian
Pada tahap ini dilakukan pengujian aplikasi pencarian pesan SMS yang telah dihapus pada handphone Android yang sudah dibuat untuk memastikan aplikasi telah berjalan sesuai dengan yang diharapkan
(22)
f. Dokumentasi dan Penyusunan Pelaporan
Pada tahap ini dilakukan dokumentasi dan penyusunan laporan hasil dalam implementasi algoritma Boyer-Moore dalam peroses pencocokan string untuk menemukan kembali pesan SMS yang telah dihapus.
1.7. Sistematika Penulisan
Sistematika penulisan dari penelitian ini terdiri dari lima bagian sebagai berikut :
Bab 1: Pendahuluan
Bab ini berisi latar belakang, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodologi penelitian, dan sistematika penulisan
Bab 2: Landasan Teori
Bab ini berisi teori-teori yang digunakan untuk memahami permasalahan yang dibahas pada penelitian ini. Pada bab ini dijelaskan tentang penerapan algoritma boyer-moore untuk melakukan pencarian string pada pesan SMS yang telah dihapus.
Bab 3 : Analisis dan Perancangan
Bab ini berisi analisis dan perancangan fitur auto find dengan menggunakan algoritma boyer-moore untuk melakukan pencarian pesan SMS yang telah dihapus pada handphone Android, serta perancangan dalam bentuk arsitektur umum, dataset dan process.
Bab 4: Implementasi dan Pengujian
Bab ini berisi pembahasan tentang hasil implementasi dari analisis dan perancangan yang disusun pada Bab 3 dan hasil pengujian apakah hasil yang didapat sesuai dengan yang diharapkan.
Bab 5: Kesimpulan Dan Saran
Bab ini berisi kesimpulan dari keseluruhan uraian bab-bab sebelumnya dan saran-saran yang diajukan untuk pengembangan penelitian selanjutnya.
(23)
BAB 2
LANDASAN TEORI
Pada bab ini membahas tentang teori penunjang dan penelitian sebelumnya yang berhubungan dengan penerapan algoritma Boyer-Moore untuk menemukan kembali pesan SMS yang telah dihapus pada handphone Android.
2.1. Mobile Forensic
Mobile forensic merupakan bagian dari ilmu yang mempelajari tentang forensik digital namun dalam lingkup yang lebih kecil. Digital forensic mempelajari bagaimana caranya mengidentifikasi, mengumpulkan bahkan menganalisis suatu barang bukti digital untuk dijadikan sebagai alat bukti (Carrier, 2003). Terdapat empat tahapan dalam pembuktian bukti digital (Casey, 2011), sebagai berikut:
1. Identifikasi bukti digital
Identifikasi bukti digital merupakan tahapan pertama dalam proses digital forensic. Identifikasi bukti digital bertujuan untuk mengidentifikasi bukti digital yang berasal dari perangkat digital. Sumber bukti digital menjadi fokus utama pada tahap ini.
(24)
2. Penyimpanan bukti digital
Penyimpanan bukti digital dilakukan untuk mendapatkan bukti digital yang utuh, hal ini dilakukan untuk menghindari kerusakan, perubahan atau hilangnya barang bukti digital. Bukti digital yang utuh menentukan tingkat keberhasilan dalam melakukan digital forensic. Penyimpanan bukti digital dilakukan secara bitstream image untuk menjaga keaslian bukti digital.
3. Analisa bukti digital
Analisa bukti digital merupakan hal yang utama dalam digital forensic. Hal ini dilakukan untuk mencari atau menganalisis keberadaan bukti digital yang mungkin ditemukan.
4. Presentasi bukti digital
Bukti digital yang sudah ditemukan akan ditampilkan untuk dijadikan barang bukti digital yang sah menurut hukum.
Proses forensik digital bergantung pada sistem operasi yang digunakan. Sebagai contoh, kebanyakan pengguna komputer dekstop menggunakan sistem operasi Microsoft Windows, atau pengguna smartphone yang lebih banyak menggunakan sistem operasi Android. Oleh karena itu, diperlukan kemampuan untuk melakukan identifikasi pada perangkat digital tertentu yang menggunakan sistem operasi tertentu, karena banyaknya jenis perangkat digital mengakibatkan identifikasi terhadap perangkat digital sulit dilakukan (Raharjo, 2013).
Mobile forensic memeberikan pemahaman tentang bagaimana barang bukti digital diperoleh dari mobile phone. Di dalam mobile phone ada banyak layanan atau fitur yang dapat dijadikan sebagai bukti digital seperti Subscriber Identity Module (SIM), internal memory, memory card dan network service providers (Zareen & Baig 2010). Adapun beberapa bukti digital yang kemungkinan besar dapat didapatkan pada mobile phone seperti pada Tabel 2.1.
(25)
9
Tabel 2.1. Daftar bukti digital yang dapat ditemukan (Zareen & Baig, 2010)
No. Bukti Digital Sumber
1 Name of Service Provider Dicetak dibelakang SIM Card 2 Unique Id Number Dicetak dibelakang SIM Card 3 Location Area Identity (LAI) Disimpan pada SIM Card 4 International Mobile Equipment
Identity (IMEI)
Disimpan dan dicetak pada mobile phone
5 Text Message Data (SMS) Disimpan pada SIM Card atau memory 6 Contact Disimpan pada SIM Card atau memory 7 Call Logs Disimpan pada SIM Card atau memory 8 Images/Sound/Videos Disimpan pada memory
2.2. Android
Android merupakan sistem operasi yang di kembangkan oleh Open Handset Alliance (OHA). Gabungan ini berisikan lebih dari 50 perusahaan mobile technology, mulai dari handset manufactures dan service provider sampai semiconductor manufacture dan software developers, seperti Acer, ARM, Google, eBay, HTC, Intel, LG Electronics, Qualcomm, Sprint and T-Mobile. Tujuan utama OHA adalah mempercepat innovasi terhadap perkembangan perangkat mobile dengan memberikan susuatu yang lebih murah namun memiliki kemampuan yang lebh baik (Lessard et al, 2010).
Sejak dirilis hingga sekarang pengguna smartphone terus meningkat, hal ini disebabkan oleh migarasi dari feature phone ke smartphone. Menurut data yang dikeluarkan eMarketer sebuah perusahaan peneliti pasar, pengguna smartphone di seluruh dunia akan menyentuh 4,55 milliar pada 2014 sebagaimana terlihat pada Tabel 2.2. Dan data yang dikeluarkan oleh International Data Corporation (IDC) pada tahun 2015 sistem operasi Android menjadi sistem operasi mobile yang paling banyak digunakan pada smartphone dengan market share sekitar 84,8% pada tahun 2014 sebagaimana terlihat pada Tabel 2.3.
(26)
Tabel 2.2. Data pengguna mobile phone di dunia (eMarkerter, Dec 2013) Tahun Jumlah(milliar) Populasi(%)
2012 4,08 58,2
2013 4,33 61,1
2014 4,55 63,5
2015 4,77 65,8
2016 4,95 67,7
2017 5,13 69,4
Tabel 2.3. Data market share OS smartphone di dunia tahun 2014 (IDC, Aug 2015)
Operating System Market Share
Android 84,8%
iOS 11,6%
Windows Phone 2,5%
BlackBerry OS 0,5%
Others 0,7%
2.2.1. Architecture
Sangat penting untuk mengenal lebih jauh lagi mengenai sistem operasi Android khusunya bagaimana arsitektur sistem operasi tersebut bekerja, hal ini dapat berguna untuk melakukan prosedur keamanan maupun dalam melakukan analisis forensik (Hoog, 2010). Secara umum arsitektur Android dibedakan menjadi lima bagian atau lapisan yaitu (Yoon, 2012) :
1. Linux Kernel
Sistem operasi Android dibuat dengan menggunakan kernel Linux 2.6, bagian ini berfungsi sebagai penghubung yang berguna untuk membantu dan mengatur hardware dan software secara bersamaan. Kenel Linux menyediakan
(27)
11
driver layar, kamera, keypad, WiFi, flash memory, audio dan IPC untuk menyediakan proses pada sumber daya aplikasi.
2. Libraries
Libraries merupakan sebuah paket pustaka yang berisi fitur - fitur yang digunakan untuk menjalankan aplikasi. Pustaka hanya dapat digunakan oleh program yang berada di level atasnya. Beberapa library yang terdapat adalah libraries media untuk memutar video atau audio, libraries SQLite untuk menggunakan database pada perangkat Android.
3. Android Runtime
Android runtime merupakan layer di mana aplikasi Android dijalankan. Core libraries merupakan sabuah paket inti yang berfungsi sebagai penerjemah bahasa C atau Java, sedangkan Dalvik Virtual Machine merupakan mesin virtual berbasis register yang digunakan untuk pengoptimalan dalam menjalankan fungsi - fungsi Android secara efisien.
4. Application Framework
Dalam membangun aplikasi, Android menggunakan kerangka aplikasi yang menyediakan kelas - kelas tersendiri. Selain itu, juga menyediakan abstraksi generik untuk mengakses, serta mengatur tampilan user interface dan sumber daya aplikasi.
5. Applications Layer
Top-level dari arsitektur Android adalah lapisan aplikasi. Lapisan ini yang pertama kali tampak ketika pengguna mengoperasikan perangkat Android, tanpa mengetahui proses apa saja yang sedang berlangsung di balik lapisan ini. Program berjalan dalam Android runtime dengan menggunakan kelas dan service dari framework application.
(28)
Bagian - bagian tersebut bekerja secara bersamaan dan saling bergantung dengan yang lain. Rangkuman bagian arsitektur Android dapat dilihat pada Gambar 2.1.
Gambar 2.1. Arsitektur sistem operasi Android (Yoon, 2012)
2.2.2. Library Layer
Bagian terpenting dalam melakukan analisis forensik adalah tempat di mana data tersebut disimpan. Bagian ini berada pada lapisan libraries. Pada perangkat Android semua data disimpan dalam database file berjenis SQLite. Beberapa data seperti pesan
APPLICATIONS
Home Contact Phone Browser ...
APPLICATION FRAMEWORK Activity Manager Window Manager Content
Provider View System
Telephony Manager Resource Manager Location Manager Notification Manager Package Manager
LIBRARIES ANDROID RUNTIME
Core Libraries
Dalvik Virtual Machine Surface
Manager
OpenGL | ES
SGL Media Framework Free Type SSL SQLite WebKit libc LINUX KERNEL Display Driver Keypad Driver Camera Driver WiFi Driver Flash Memory Driver Audio Driver Binder (IPC) Driver Power Management
(29)
13
SMS, call history, browser history, password dan lainnya disimpan dalam sebuah file database SQLite. SQLite yang memiliki sifat removable sangat membantu dalam melakukan analisis forensik.
SQLite merupakan sebuah embedded database yang bersifat open source, yang dibuat dengan menggunakan bahasa C oleh D. Richard Hipp, jika dibandingkan dengan database lainnya seperti SQL Server, Oracle, MySQL dan lainnya, SQLite merupakan database yang ringan digunakan dalam prosesnya, selain itu SQLite menjadi embedded database yang mempunyai engine yang lengkap sehingga tidak membutuhkan komponen yang lain, ada delapan keunggulan yang dimiliki SQLite antara lain (Bi, 2009) :
1. Open Source Embedded Database
SQLite merupakan embedded database yang bersifat open source. Terdiri kurang dari 30.000 baris ANSI C, yang mana ini dapat digunakan secara bebas untuk tujuan tertentu.
2. Practical Database
SQLite tidak memerlukan proses instalasi dan konfigurasi, tidak memerlukan proses start dan stop, dan tidak membutuhkan wewenang seorang administrator. Seperti pada kasus system collapse atau lose of power, SQLite dapat mengembalikan keadaan seperti semula secara otomatis.
3. Easily Database
File database SQLite dapat dibaca dan ditulis pada media penyimpanan secara langusng tanpa membutuhkan proses tambahan. File database yang sama dapat digunakan pada perangkat yang berbeda.
(30)
4. No Data Type
Perbedaan yang mencolok pada SQLite terletak pada tidak ada tipe datanya. SQLite dapat memasukan data apapun ke tabel apapun, tanpa mengetahui atribut data tersebut.
5. Many Support
SQLite mendukung ACID dan SQL92 serta multiple tables dan indexes, transactions, views, triggers seperti database umumnya.
6. Multi Platform
SQLite memiliki kinerja yang cepat, efisien dan terukur, yang tidak bergantung pada sistem operasi yang sedang digunakan. SQLite dapat digunakan pada sistem operasi yang beragam.
7. Supports API
SQLite menyediakan banyak dukungan untuk terhadap API, dan mendukung bahasa pemrograman yang umum seperti C/C++, PHP, Perl dan lainnya. API berguna sebagai penghubung antara programming language dengan database file.
8. Good reliability
SQLite memiliki ketahanan yang bagus dalam melakukan sebuah proses data. Dan telah memenuhi dari 90% cakupan uji.
2.2.3. Database Architecture
Data yang tersimpan dalam smartphone Android memiliki aturan yang baku dalam penyimpanan datanya, walaupun ada aplikasi yang tidak membutuhkan media
(31)
15
penyimpanan (Hoog, 2010). Secara umum file database yang digunakan pada smartphone Android berada pada direktori data/data/<packagaName>/databases seperti pada Tabel 2.4 .
Tabel 2.4. Subdirektori /data/data/<packageName> (Hoog, 2010) shared_prefs Directory Storing
lib Custom library files an application requires files Files the developer saves to internal storage cache Files cached by the application
databases SQLite database and journal files
File database yang menyimpan data pesan SMS berada pada direktori /data/data/com.android.providers.telephony/databases/mmssms.db. File mmssms.db memliki beberapa tabel seperti pada Gambar 2.2. Pesan SMS tersimpan dalam tabel sms pada database tersebut. Adapun arsitektur tabel sms seperti pada Tabel 2.5.
Android_metadata locale
pdu canonical_addresses
sqlite_sequences Pending_msgs threads
Words_contentc Words_segment Words_segdir
Pdu_recipient_threads Semc_threads addr
Semc_metadata part rate drm
sms raw attachment Sr_pending
(32)
Tabel 2.5. Arsitektur tabel sms (Hoog, 2010)
Name Type
_id INTEGER PRIMARY KEY
thread_id INTEGER
address TEXT
person INTEGER
date INTEGER
date_sent INTEGER
protocol INTEGER
read INTEGER
status INTEGER
type INTEGER
reply_path_present INTEGER
subject TEXT
body TEXT
service_center TEXT
locked INTEGER
error_code INTEGER
seen INTEGER
semc_message_priority INTEGER
parent_id INTEGER
delivery_status INTEGER
star_status INTEGER
2.3. Short Message Service
Short Message Service (SMS) merupakan layanan yang berbentuk Instant Messaging (IM) yang memungkinkan user untuk bertukar pesan singkat kapanpun dan dimanapun. Pesan SMS dikirim menggunakan jaringan GSM (Global System for Mobile Comunication). Sebuah pesan SMS maksimal terdiri dari 140 bytes, dengan
(33)
17
kata lain sebuah pesan bisa memuat 140 karakter 8-bit, 160 karakter 7-bit atau 70 karakter 16-bit.
Dengan perkembangan teknologi yang semakin pesat, layanan text messages sudah sesuatu yang tidak asing lagi bagi user. Konsep yang user friendly memberikan kemudahan bagi pengguna sehingga layanan ini menjadi sangat disukai. Menurut data yang dikeluarkan oleh Pew Research Center pada tahun 2012 pengguna smartphone sangat aktif menggunakan layanan text messages sebesar 61% per hari dan 80% per minggu, hal ini membuat layanan text messages menjadi layanan favorit pada pengguna smartphone, sebagaimana terlihat pada Tabel 2.6.
Tabel 2.6. Aktivitas pengguna smartphone (Pew Research Center, Oct 2012) Activity Weekly (%) Daily (%)
Text Messages 80 61
Internet Browsing 62 36
Played Games 54 31
Social Networking Site 62 46
Music/Videos 31 8
Read books 15 7
Shop 24 5
Read magazines 11 4
2.3.1. Deleted Message
Penggunaan yang mudah, cepat dan efisien membuat layanan ini menjadi pilihan utama dalam melakukan komunikasi. Baik penggunaan secara pribadi maupun untuk keperluan umum. Bahkan tidak jarang pesan SMS berisikan sebuah pesan rahasia yang ingin ditunjukan pengirim kepada penerima untuk maksud dan tujuan tertentu. Di era modernisasi ini tidak jarang pesan SMS menjadi alat bukti dalam penyidikan kasus tindak kejahatan, sebagaimana yang diatur dalam Undang - Undang No 11 Tahun 2008 tentang Informasi dan Transkasi Elektronik. Penghapusan, penghilangan atau penyembunyian pesan SMS sama saja dengan melakukan tindak kejahatan. Pada perangkat Android penghapusan pesan SMS dapat dibedakan menjadi empat jenis yaitu :
(34)
1. Delete Message
Delete message merupakan salah satu pilihan untuk menghapus satu item pesan SMS yang dikirim atau yang diterima.
2. Delete Conversation
Delete conversation merupakan pilihan untuk menghapus seluruh percakapan pesan SMS berdasarkan satu nomor pengirim.
3. Delete Several
Delete several memiliki fungsi yang sama dengan delete conversation, namun memiliki pilihan item nomor pengirim lebih dari satu.
4. Delete All
Delete all memeiliki fungsi menghapus seluruh percakapan pesan SMS yang ada pada smartphone Android tersebut, baik itu pesan SMS keluar atau masuk.
Pesan SMS tersimpan dalam sebuah file database berjenis SQLite, pesan SMS yang dihapus kemungkinan tidak dihapus secara permanen atau ditimpa dengan pesan SMS yang lain, pesan SMS yang sudah dihapus tersebut masih disimpan dalam file database. Pesan SMS yang telah dihapus masih mungkin untuk ditemukan selama pesan SMS tersebut belum ditimpa oleh pesan SMS yang baru. Pesan SMS yang telah dihapus tersebut bisa dilihat dalam bentuk hexadecimal dengan pola yang mudah dipahami (Hoog, 2010). Pada banyak kasus, penghapusan pesan SMS dalam file database SQLite tidak disempurnakan dengan penghapusan bit nya, sehingga pesan SMS tersebut tidak benar - benar terhapus secara bersih, kondisi ini dapat digunakan untuk menemukan kembali pesan SMS yang telah dihapus (Stahlberg at al, 2007).
Record pesan SMS yang dihapus akan dipindahkan ke ruang yang tidak terisi pada memori, sedangkan ruang yang kosong akan digunakan kembali dengan record
(35)
19
yang baru, dengan mempertimbangkan dua faktor: apakah record yang baru akan cocok dengan ruang yang diberikan dan apakah record yang baru memenuhi tata aturan pada tabel tersebut. Proses penghapusan dan pemasukan record dapat dilihat pada Gambar 2.3. Proses ini dibagi menjadi empat tahapan, yaitu :
1. Tahap pertama terdapat enam record yang aktif, yang menempati sebagian ruang yang sudah dialokasikan untuk table storage.
2. Tahap kedua, setelah penghapusan record t3 dan t5, ruang yang ditempati akan dibebaskan, tetapi data tersebut masih dapat dipulihkan.
3. Selanjutnya pada tahap ketiga, record t7 dimasukan, menggunakan ruang bebas yang ada sehingga menimpa record t3. Dilain sisi terdapat proses penghapusan record t1 dan t4.
4. Pada tahap selanjutnya prosedur vacuum dijalankan, untuk mengatur kembali active records (t2,t7,t6), dan mengurangi ruang yang dialokasikan pada database file. Record t5 akan dibuang dan menduplikat record t6 pada ruang yang tidak terisi di file system.
Gambar 2.3. Ilustrasi insert dan delete record (Stahlberg at al, 2007)
2.3.2. Message Pattern
Pesan SMS yang telah dihapus dapat dilihat ketika proses generate sudah dilakukan. Proses generate ini mengubah file database SQLite ke dalam bentuk hexadecimal. Pola hexadecimal ini yang akan diteliti untuk mendapatkan pesan SMS yang sudah
(36)
dihapus. Secara garis besar pola yang berasal dari proses generate ini dibagi menjadi empat bagian seperti pada Gambar 2.5 dan Gambar 2.6, yaitu :
1. File Info
Pada bagian ini terdapat informasi tentang identifikasi jenis file. Pada 16 bytes pertama maka akan ditemukan pola hexadecimal 53 51 4C 69 74 65 20 66 6F 72 6D 61 74 20 33 00 , jika diubah ke dalam bentuk ASCII menjadi “SQLite format 3.”, ini menunjukan file tersebut berjenis database SQLite.
2. Struktur Tabel Database
Selanjutnya setelah bagian file info, terdapat bagian struktur tabel database. Pada bagian ini seluruh tabel dan strukturnya yang ada pada database akan direpresentasikan dalam hexadecimal. Setiap tabel yang ada akan ditandai dengan pola 43 52 45 41 54 45 20 54 41 42 4C 45 jika diubah ke dalam karakter ASCII menjadi “CREATE TABLE”.
3. Pesan SMS
Pola pesan SMS baik itu yang masih tersimpan atau yang sudah dihapus selalu diawali oleh header pesan SMS tersebut, kemudian nomor pesan sms, tanggal dan isi pesan SMS. Selengkapnya dapat dilihat pada Gambar 2.4.
Gambar 2.4. Pola pesan SMS (Hoog, 2010)
Keempat bagian dalam Gambar 2.4 terdiri dalam pola heksadesimal. Header pesan SMS terdeiri dari rangkaian bytes 08 08 08. Nomor pesan SMS umumnya diawali dengan +62 untuk standart nomor negara Indonesia atau 2B 36 32 kemudian diikuti digit nomor selanjutnya. Sama seperti no_id, isi_pesan juga dapat dengan mudah dibaca dengan cara mengkonversi kedalam karakter ASCII. Namun 6 bytes setelah no_id merupakan waktu pesan SMS tersebut
(37)
21
dikirim atau diterima. Untuk mengetahui waktu pesan SMS tersebut 6 bytes pola akan diubah terlebih dahulu dalam bentuk decimal, kemudian didapatkan pola waktu berdasarkan Unix Epoch in milliseconds (Hoog, 2010). Contoh : 01 41 30 74 FF DA diubah kedalam desimal menghasilkan 13799497476058 ini merupakan bentuk waktu dalam bentuk Unix Epoch dan ketika diubah kedalam bentuk waktu biasa maka akan didapatkan Rabu, 18 September 2013 09:44:36.
4. Trigger Database
Kemudian pada bagian terakhir terdapat kumpulan trigger yang digunakan pada file database tersebut. Seperti trigger insert, trigger update atau trigger delete.
(38)
Gambar 2.6. Struktur file database yang berisi pesan SMS (Hoog, 2010)
2.4. String Matching
String matching atau pencocokan string merupakan sebuah metode pencarian sebuah pattern P [1...m] pada teks T [1...n] dimana m<=n (Lecroq, 1992). Terdapat dua teknik yang biasa digunakan pada string matching, yang pertama adalah exact matching, teknik ini digunakan pada algoritma Needleman Wunsch, Smith Waterman, Knuth–Morris–Pratt, Dynamic Programming, maupun Boyer-Moor, selain exact matching terdapat teknik lainnya yaitu approximate matching, teknik ini digunakan pada algoritma fuzzy string, Rabin Karp, Brute Force (Singla et al, 2012).
2.4.1. Exact String Matching
Exact string matching merupakan pencocokan string secara tepat dengan susunan karakter yang ada pada pattern P dan teks T (Knuth et al, 1977), string yang dicocokan memiliki jumlah maupun urutan karakter yang sama.
(39)
23
Teks T = t1, t2, t3 ... tn dimana n adalah panjang teks sedangkan pattern P = p1, p2, p3 ... pm m adalah panjang pattern. Exact string matching membandingkan karakter yang ada teks T dengan karakter yang pada pattern P dengan berdasarkan kecocokan karakter (Bhandari et al, 2013). Sebagai contoh : algorithm dengan alggrithm, memiliki jumlah karakter yang sama namun ada satu karakter yang berbeda maka dianggap tidak cocok.
2.4.2 Approximate String Matching
Approximate string matching merupakan pencocokan string berdasarkan kemiripan karakter dari segi penulisannya yang ada pada pattern P dan teks T (Patrick et al, 1980). Tingkat kemiripan ditentukan oleh jumlah karakter dan susunan karakter, serta kemiripan antara dua buah string yang dibandingkan. Contoh : a goritna dengan algoritma, memilki jumlah karakter yang sama namun terdapat dua karakter yang berbeda. Jika perbedaan ini dianggap sebagai kesalahan dalam penulisan, maka dua string tersebut dapat dikatakan cocok.
Approximate string matching secara umum dapat diasumsikan dengan T1...n
dimana T adalah teks dan n panjang teks, kemudian P1...m dimana P adalah pattern dan m panjang pattern yang relatif lebih singkat dari n. Kemiripan atau kecocokan ditentukan oleh jumlah karakter alfabet ∑ dan urutan alfabet σ . Dan k yang menyatakan ketidakcocokan diantara dua buah string (Navarro, 2001).
2.4.3. Window Sliding
Window sliding merupakan teknik yang diterapkan pada exact matching, teknik ini menggunakan bantuan window sebagai poros pergeseran pattern untuk kemudian dicocokan pada teks seperti pada Gambar 2.7. Prinsip kerja metode ini adalah sebagai berikut :
1. Melakukan pencocokan teks dengan bantuan window yang memiliki ukuran yang sama dengan panjang pattern.
2. Meletakan karakter pattern pada window 3. Menempatkan window pada awal teks
4. Mencocokan karakter pada window dengan karakter pada teks. Setelah
(40)
shift ke kanan teks. Prosedur ini dilakukan secara berulang - ulang sampai window berada pada akhir teks, atau pada posisi terkanan teks.
Gambar 2.7. Ilustarsi windows sliding
Algoritma string matching mempunyai tiga komponen utama (Crochemore et al, 1996), sebagai berikut :
1. Pattern, yaitu deretan karakter yang akan dicocokan dengan teks, pattern diasumsikan dengan x = x[0...m-1], dengan m adalah panjang pattern.
2. Teks, yaitu deretan karakter yang akan dicoba kecocokannya dengan pattern, teks diasumsikan dengan y=y[0...n-1], dengan y adalah panjang teks.
3. Alfabet, berisi semua simbol yang digunakan pada teks dan pattern, diasumsikan dengan ∑ , dan ASIZE sebagai ukurannya.
2.5. Algoritma Boyer-Moore
Algoritma Boyer Moore termasuk salah satu algoritma yang memiliki kinerja yang lebih baik dalam melakukan pencarian string khususnya dalam jenis data ASCII, biner dan heksadesimal (Dermawan, 2001).
Algoritma ini melakukan pencocokan string dari kanan ke kiri, karakter yang berada paling kanan pada string merupakan karakter pertama yang akan dicocokan dengan teks atau pattern (Boyer et al, 1977). Algoritma ini menggunakan dua fungsi shift untuk mengambil jumlah langkah pergeseran berikutnya ketika terjadi
Teks
(41)
25
ketidakcocokan, dua fungsi shift tersebut adalah bad-character shift atau occurrence shift dan good-suffix shift atau heuristic shift (Choudhary et al, 2012).
2.5.1. Deskripsi kerja algoritma Boyer-Moore
Deskripsi kerja algoritma boyer moore dapat dijelaskan dengan membuat sebuah contoh kasus ketidakcocokan pada saat pencocokan karakter pada teks dan pattern berlangsung. Karakter pattern x[i]=a tidak cocok dengan karakter teks y[i+j]=b saat pencocokan pada posisi j. Maka x[i+l .. m-1]= y[i+j+1 .. j+m-1]=u dan x[i] ≠ y[i+j] (Choudhary et al, 2012). Maka dari kasus ketidakcocokan tersebut diambil langkah pergeseran selanjutnya dengan memilih jumlah pergeseran yang paling besar antara bad-character shift dan good-suffix shift, hingga karakter pada teks y[i+j] memenuhi karakter yang ada pada pattern x[i].
2.5.2 Bad-Character Shift
Bad-character adalah karakter yang ada pada teks y[i+j] yang tidak cocok dengan karakter pada pattern x (Crochemore et al, 1996). Sehingga jumlah pergeseran maksimum bad-character shift dapat diambil dari jumlah pattern x[i]. Konsep dari fungsi bad-character shift adalah sebagai berikut :
1. Jika bad-character y[i+j] terdapat pada pattern di posisi terkanan k yang lebih kiri dari x[i] maka pattern digeser ke kanan sejauh i-k. Seperti diberikan pada Gambar 2.8.
y b u
x a u shift
x b Contains no b
(42)
2. Jika bad-character y[i+j] tidak ada pada pattern sama sekali, maka pattern dapat digeser ke kanan sejauh jumlah i. Hal ini ditunjukan pada Gambar 2.9.
y b u
x a u shift
x Contains no b
Gambar 2.9. Bad-character shift, b tidak ada di pattern x
3. Jika bad-character y[i+j] terdapat pada pattern di posisi terkanan k yang lebih kanan dari x[i] maka pattern seharusnya digeser sejauh i-k yang hasilnya negatif. Maka bila kasus ini terjadi akan diabaikan, karena pergeseran selanjutnya dari algoritma boyer-moore akan diambil jumlah pergeseran yang baling besar (Cantone et al, 2010).
Pada tabel bad-character, setiap karakter pada pattern diberi nilai sesuai dengan ukuran jauhnya karakter tersebut dari karakter paling kanan dari pattern dan untuk karakter yang tidak terdapat pada pattern akan diberi nilai sejumlah karakter pada pattern. Adapun pseudocode untuk pergeseran bad-character ini adalah sebagai berikut :
Procedure preBmBc(
input y : array[0..n-1]of char, input n : integer,
input/output bmBc : array of integer )
Deklarasi
i:integer
Algoritma
for (i=0; i<ASIZE; ++i) bmBc[i] ← n
for (i=0; i< n - 1; ++i) bmBc[y[i]] ← n – i – 1;
(43)
27
2.5.3. Good-suffix shift
Good-suffix merupakan jumlah pergeseran yang dihitung berdasarkan posisi di mana ketidakcocokan terjadi. Aturan pada good-suffix shift dijelaskan sebagai berikut :
1. Good-suffix shift merupakan pergeseran yang dibutuhkan dari x[i]=a ke karakter lain yang letaknya lebih kiri dari x[i] dan terlektak di sebelah kiri segmen u seperti pada Gambar 2.10.
y b u
x a u shift
x c u
Gambar 2.10. Good-suffix shift, u terjadi lagi didahului karakter c berbeda dari a
2. Jika tidak ada segmen yang sama dengan u, maka cari u yang merupakan suffiks terpanjang u. Dalam hal ini ditunjukan pada Gambar 2.11.
y b u
x a u shift
x v
Gambar 2.11. Good-suffix shift, hanya suffix dari u yang terjadi ladi di pattern x
Pada tabel pergeseran good-suffix, nilai pergeseran digunakan ketika ketidakcocokan ditemukan berdasarkan karakter pada posisi keberapa yang menyebabkan ketidakcocokan. Nilai dari setiap karakter yang ada pada pattern bergantung terhadap ada atau tidaknya perulangan akhiran(suffix) v dari text pada pattern. Semakin banyak
(44)
perulangan, maka akan semakin kecil nilai pergeseran. Untuk menentukan nilai-nilai tersebut, lebih dahulu menghitung nilai tabel suffix yang bertujuan untuk memberi tanda adanya perulangan akhiran. Dari tabel suffix inilah tabel good-suffix akan didapat.
Pada tabel suffix, berisi nilai dari tiap karakter yang ada pada pattern yang menunjukkan ada atau tidaknya perulangan akhiran (suffix) dan dimana posisi perulangan tersebut sehingga ketika proses perhitungan tabel good-suffix dapat diketahui seberapa banyak pergeseran yang akan dilakukan untuk pencocokan selanjutnya.
Adapaun pseudocode untuk pergeseran good-suffix adalah sebagai berikut :
Procedure suffixes(
input y: array[0..n-1] of char, input n: integer,
input/output suff: array of integer )
Deklarasi
f, g, i : integer
Algoritma
suff[n-1] ← n; g ← n-1
for (i = n-2; i >= 0; --i)
if(i > g and suff[i + n – 1 - f] < i-g)do suff[i] ← suff[i + n – 1 - f]; else
if(i<g)do g ← i; f = i
while(g >= 0 and y[g] == y[g + n – 1 - f])do --g;
suff[i] ← f-g; endif
endfor
Procedure preBmG
(
input y: array of char, input n:integer,
input/output bmGs: array of integer )
Deklarasi
i, j : integer
suff : array [0..YSIZE] of integer
Algoritma
suffixes(y, n, suff) for (i=0; i < n; ++i)do
(45)
29
bmGs [i] ← n
for (i= n-1; i >= -1; --1)
if(i == -1 or suff[i] == i+1) for(j=0; j < n-1-i; ++j)
if(bmGs[j] == n) bmGs[j] ← n-1-i for (i=0; i <= n-2; ++i)
bmGs[n-1-suff[i]] ← n-1-i
2.5.4. Cara kerja algoritma Boyer-Moore
Pada kasus ketidakcocokan terjadi, algoritma akan membandingkan nilai pergeseran yang dimiliki oleh bad-character shift dan good-suffix shift, di mana nilai pergeseran yang memiliki nilai yang paling besar yang akan digunakan untuk melakukan pergeseran selanjutnya. Cara kerja dari algoritma Boyer-Moore dapat dijabarkan sebagai berikut :
1. Manjalankan terlebih dahulu prosedur preBmBc dan preBmGs untuk
mendapatkan jumlah pergeseran.
a. Menjalankan prosedur preprocessing Boyer-Moore bad-character (preBmBc). Prosedur ini untuk menjalankan fungsi menentukan berapa jumlah pergeseran yang dibutuhkan untuk mencapai karakter tertentu pada teks dari karakter pattern terakhir atau terkanan. Hasil dari prosedur preBmBc disimpan pada tebel BmBc.
b. Menjalankan prosedur suffix, prosesdur suffix dijalankan untuk memeriksa kecocokan sejumlah karakter yang berada di posisi terakhir atau terkanan dengan sejumlah karakter yang dimulai dari setiap karakter yang lebih kiri dari karakter yang terkanan tadi. Hasil dari prosedur disimpan dalam tabel suffix. Suffix[i] mencatat panjang dari suffix yang cocok dengan segmen dari pattern yang diakhiri karakter ke-i.
c. Menjalankan prosedur preprocessing Boyer-Moore good-suffix
(preBmGs). Prosedur ini dijalankan untuk mengetahui berapa banyak langkah pada pattern dari sebuah segmen ke segmen yang lain yang
(46)
sama yang letaknya lebih kiri dengan karakter di sebelah kiri segmen yang berbeda. Prosedur preBmGs menggunakan tabel hasil dari prosedur suffix untuk mengetahui pasangan segmen yang sama.
2. Melakukan proses pencarian string dengan menggunakan hasil dari prosedur BmBc dan BmGs yaitu tabel BmBc dan BmGs. Dan melakukan perbandingan untuk menentukan jumlah pergeseran selanjutnya.
2.6. Penelitian Terdahulu
Metode string matching telah banyak diimplementasikan pada algoritma pencarian baik itu dengan metode exact string macthing maupun approximate string matching. Metode tersebut digunakan untuk melakukan pencarian string di dalam pattern.
Tenlima (2009) menggunakan salah satu algoritma string matching dalam melakukan pencocokan string pada dokumen teks dengan menggunakan algoritma Knuth-Morris-Pratt (KMP). Pada penelitian ini Tenlima berusaha untuk membantu mencari, mencocokan dan melakukan pengeditan string pada teks dengan menggunakan algoritma KMP.
Hoog (2011) menggunakan perintah grep dalam melakukan pencarian pesan SMS yang telah dihapus. Grep merupakan perintah dalam sistem operasi Linux/UNIX yang berguna untuk melakukan pencarian kata atau frase pada sebuah file. Grep menggunakan algoritma Aho-Corasick dalam implementasinya. Pencarian dilakukan dengan menggunakan perintah-perintah lainnya agar hasil pencarian lebih efektif. Perintah ini yang digunakan Hoog dalam mencari pesan SMS yang sudah dihapus berdasarkan id nomor pesan SMS tersebut.
Stahlberg (2007) melakukan penelitian tentang karakteristik file database SQLite, menerangkan bahwa penghapusan record atau data dalam file database SQLite tidak dibarengi dengan penghapusan bit pada memori, data yang telah dihapus masih tersimpan dalam file database, sehingga menemukan kembali data tersebut sangat mungkin dilakukan selama data tersebut belum ditimpa dengan data yang baru.
(47)
BAB 3
ANALISIS DAN PERANCANGAN
Bab ini membahas tentang analisis dan perancangan metode pencarian dengan menggunakan algortima Boyer-Moore sebagai alat bantu proses pencarian pesan SMS. Bab ini juga membahas tentang generallisasi input, perancangan fitur auto find, filtering, dataset serta pre-processing yang dilakukan sebelum melakukan pencarian untuk menemukan kembali pesan SMS tersebut.
3.1. Arsitektur Umum
Metode yang digunakan pada penelitian ini dapat dilihat pada Gambar 3.1 yang menunjukan arsitektur umum dari langkah-langkah yang digunakan untuk menemukan kembali pesan SMS yang telah dihapus. Langkah-langkah tersebut dibagi menjadi dua tahap yaitu: pre processing dan main process. Tahap pre processing dilakukan untuk mendapatkan file database pesan SMS pada handphone Android kemudian mengubahnya menjadi bytes heksadesimal untuk dijadikan sebagai hex string dalam proses pencarian. Pada tahap pre processing dilakukan langkah-langkah sebagai berikut: handphone yang ingin diperiksa dilakukan image making untuk mendapatkan copy data secara utuh dari handphone tersebut; melakukan ekstraksi file image dari hasil image making untuk mendapatkan file database pesan SMS pada direktori root Android; file database pesan SMS yang ditemukan dilakukan proses generate hex values untuk diubah menjadi susunan bytes heksadesimal, output pada tahap pre processing berupa file .txt yang berisi rangkaian bytes heksadesimal yang tersimpan pada file tersebut, file ini digunakan sebagai hex string dalam proses
(48)
pencarian. Pada tahap main process dijalankan fitur auto find sebagai proses utama dalam proses pencarian. Langkah-langkah yang dijalankan pada fitur auto find sebagai berikut: melakukan proses generalisasi input yang akan digunakan sebagai hex pattern dalam proses pencarian, input yang digunakan ialah header pesan SMS; hex string dan hex pattern yang sudah didapatkan digunakan kembali untuk melakukan prosedur pre processing algoritma Boyer-Moore, prosedur ini dilakukan untuk menghitungan nilai pergeseran selanjutnya pada proses pencarian dengan menggunakan fungsi bad-character shift dan good-suffix shift; melakukan proses pencarian dengan menggunakan algoritma Boyer-Moore; melakukan proses filtering hasil dari proses pencarian. Setelah langkah - langkah diatas dilakukan maka diharapkan fitur auto find yang dirancang dapat menemukan kembali pesan SMS yang telah dihapus. Setiap tahap dan proses yang dilakukan akan dijelaskan kembali dengan lebih terperinci pada bagian-bagian selanjutnya.
Gambar 3.1. Arsitektur Umum
3.2. Dataset
Dataset yang digunakan pada penelitian ini dibagi menjadi tiga yaitu: dataset utuh, dataset terhapus dan dataset test yang ketiganya merupakan file database mmssms.db
(49)
33
yang berjenis SQLite (db), file ini merupakan file database yang diambil dari direktori /data/data/com.android.providers.telephony/databases/ sebagaimana yang telah dijelaskan pada bagian 2.2.3, dengan berbagai kondisi yang dapat dilihat pada Tabel 3.1. Dataset utuh merupakan file database yang diketahui memiliki pesan SMS utuh sedangkan dataset terhapus merupakan file database yang diambil setelah dilakukan penghapusan pada dataset utuh, proses pengambilan dataset ini dapat dilihat pada Gambar 3.2. Sedangkan dataset test merupakan file database yang diambil secara langung dari pengguna handphone android, sehingga jumlah pesan SMS yang utuh maupun yang sudah terhapus tidak diketahui. Secara umum ketiga dataset digunakan dengan tujuan untuk melakukan pengujian terhadap metode yang sudah diterapkan, apakah mampu menampilkan hasil sesuai yang diinginkan. Sedangkan pada dataset utuh dan dataset terhapus digunakan untuk mendapatkan nilai akurasi dari hasil proses pengujian.
File mmssms1.db merupakan file database yang memiliki 10 pesan SMS utuh, begitu juga dengan file mmssms2.db dan file mmssms3.db yang masing-masing memiliki 20 dan 30 pesan SMS utuh, sedangkan untuk file mmssms4.db didapat setelah terjadi penghapusan seluruh pesan SMS pada file mmssms1.db, sehingga diketahui bahwa pada database tersebut tidak memiliki pesan SMS utuh lagi, namun belum diketahui jumlah pasti pesan SMS terhapus pada file database tersebut, begitu juga dengan file mmssms5.db dan file mmssms6.db. Untuk file database mmssms7.db, mmssms8.db, mmssms9.db dan mmssms10.db belum diketahui properti file tersebut, karena file database tersebut diambil langsung dari pengguna handphone Android.
(50)
Tabel 3.1. Properti dataset file database
File Pesan Utuh Pesan Terhapus Jenis Dataset
mmssms1.db 10 0 Utuh
mmssms2.db 20 0 Utuh
mmssms3.db 30 0 Utuh
mmssms4.db 0 Unknown Terhapus
mmssms5.db 0 Unknown Terhapus
mmssms6.db 0 Unknown Terhapus
mmssms7.db Unknown Unknown Test
mmssms8.db Unknown Unknown Test
mmssms9.db Unknown Unknown Test
mmssms10.db Unknown Unknown Test
Pada dataset utuh, terhapus dan test, hasil yang ditemukan akan ditampilkan berdasarkan dengan nomor pesan SMS tersebut, hasil proses ini bergantung pada proses yang terjadi sebelumnya pada file database tersebut seperti: proses overwriting atau vacuum procedure. File database yang sudah melakukan proses overwriting maupun vacuum procedure akan sangat sulit untuk menemukan pesan SMS yang telah dihapus karena kemungkinan sudah memiliki pola yang berbeda.
3.3. Pre Processing
Sebelum pencarian dilakukan, terlebih dahulu file database harus dapat ditemukan dalam keadaan utuh, sesuai dengan yang sudah dibahas sebelumnya file database yang berisi pesan SMS yang telah dihapus dapat dilihat dalam susunan bytes heksadesimal. Sehingga perlu untuk merubah data pesan SMS yang ada pada file database tersebut dalam bytes heksadesimal. Output pada tahap pre processing adalah file .txt yang menyimpan bytes heksadesimal file database. Proses pencarian dilakukan dengan menggunakan rangkaian string bytes heksadesimal yang disimpan pada file .txt tersebut untuk kemduain dijadikan sebagai hex string.
(51)
35
3.3.1. Image Making
Image making dilakukan dengan tujuan untuk melakukan copy data secara keseluruhan dan menghindari kerusakan, perubahan atau hilangnya barang bukti. Data yang di copy berupa data yang ada pada direktori root. Image making dilakukan dengan menggunakan Nandroid Backup, Nandroid Backup merupakan fasilitas yang ada pada ClockWorkMod (CWM), ClockWorkMod ini merupakan recovery mode yang sudah diatur sedemikian rupa dengan berbagai fungsi tambahan seperti backup/restore, instalasi dan lainnya yang tidak ada di recovery mode standar pada handphone Android.
Nandroid Backup digunakan untuk membackup sistem ponsel, internal memori dan termasuk seluruh partisi penyimpanan dan menyimpannya ke dalam sdcard. Hasil backup berupa folder dengan nama sesuai tgl-bln-thn-jam saat melakukakn backup. File hasil backup dapat dilihat pada Tabel 3.2. File hasil backup tergantung pada partisi yang digunakan pada handphone Android. Output yang digunakan pada tahap selanjuntya adalah file image data.yaffs2.img yang berisi backup partisi data.
Tabel 3.2. Properti hasil backup
Nama File Jenis Keterangan
.android_secure.vfat.tar File Tar File yang berisi backup aplikasi yang dipindahkan ke sdcard
cache.yaffs2.img File Image File yang berisi backup partisi cache data.yaffs2.img File Image File yang berisi backup partisi data
nandroid.md5 File MD5 File yang berisikan md5sum dari file image
sd-ext.vfat.tar File Tar File yang berisi backup partisi sd-ext pada
sdcard
system.yaffs2.img File Image File yang berisi backup partisi file system
3.3.2. Extract Image File
Ekstraksi file image dilakukan setelah melakukan proses backup terhadap file system. Ekstraksi dilakukan dengan menggunakan tool yang bernama unyaffs. Unyaffs merupakan sebuah program yang berfungsi untuk melakukan ekstraksi file dari sebuah yaffs file system image. Program ini menggunakan code license GNU GPL v2 yang
(52)
dikembangkan oleh Kai.Wei.cn. Program ini cukup mudah untuk dijalankan, untuk sistem operasi linux program ini dijalankan dengan perintah: gcc -o unyaffs unyaffs.c untuk melakukan compile, sedangkan pada windows program ini dijalankan dengan perintah: unyaffs <filename>.img.
Berdasarkan hasil backup terdapat tiga file yang berjenis yaffs file system image, yaitu: cache.yaffs2.img, data.yaffs2.img dan system.yaffs2.img, namun pada penelitian ini file yang digunakan hanya file image data.yaffs2.img untuk dilakukan ekstarksi. Karena pada file inilah tersimpan backup file database, partisi ini yang menyimpan seluruh data-data aplikasi yang ada handphone Android, seperti call logs, contact phone, browser history dan tentunya pesan SMS. Partisi yang dihasilkan dari data.yaffs2.img ini merupakan partisi data yang berisi data-data yang selalu berubah-ubah. Hasil direktori yang didapatkan setelah melakukan ekstarkasi dapat dilihat pada Tabel 3.3. Output pada tahap ini adalah file database mmssms.db yang menyimpan data pesan SMS, file ini tersimpan pada direktori data.
Tabel 3.3. Hasil ekstraksi file image data.yaffs2.img
Nama Keterangan
anr Berisi stack traces (debugging) dari sistem
app Berisi file apk yang diinstal dari market atau manual
app-private Tempat penyimpanan protected apps dari Android Market
backup Tempat untuk mengatur dan antrian backup
crashsms Direktori yang menyimpan pesan SMS yang mengalami crash
dalvik-cache Tempat penyimpanan file dex untuk dijalankan dalvik virtual machine. data Berisi file data aplikasi system maupun user. Seperti database (sqlite). dontpanic Tempat untuk menyimpan beberapa erorr log file dari sistem
drm Berisi file pengaturan terhadap anti-consumer copy
etc Berisi file pengaturan terhadap system
idd Berisi file pengaturan terhadap device
local Tempat dimana pertama kali aplikasi diinstall dicopi lost+found Direktori yang muncul di beberapa tempat di YAFFS2
(53)
37
3.3.3. Generate Hex Values
File database yang sudah didapat selanjutnya akan dilakukan proses generate hex values untuk mendapatkan nilai bytes heksadesimal. Hal ini berguna karena, pesan SMS yang dihapus tidak bisa dilihat kembali pada handphone maupun pada SQLite browser, pesan SMS yang telah dihapus hanya dapat dilihat melalui representasi dalam bentuk byte heksadesimal. Berikut contoh pesan SMS pada bentuk byte-byte heksadesimal:
09 08 00 81 03 27 08 08 08 00 00 00 00 1F 2B 36 32 38 33 31 39 34 33 37 38 34 38 37 01 41 53 E0 02 9D FF 44 69 61 6E 2E 20 42 73 61 20 73 6D 61 20 6B 74 61 20 62 72 61 6E 67 6B 74 20 6D 61 69 6E 20 66 74 73 61 6C 3F 20 41 6B 20 67 6B 20 64 61 20 6B 65 6E 64 61 72 61 61 6E 20 6E 69 2B 36 32 38 33 31 35 30 30 30 30 33 32 48 82 50 16 00 01 29 00 05 08 08 09 01 09 08 00 2B 27 08 08 08 00 00 00 00 1F 2B 36 32 38 33 31 39 34 33 37 38 34 38 37 01 41 53 DB 63 31 FF 44 69 61 6E 2E 20 4B 77 20 64 6D 61 6E 61 3F 2B 36 32 38 33 31 35 30 30 30 30 33 32 50 82 4F 16 00 01 29 00 05 08 08 09 01 09 08 00 3D 25 08 08 08 00 00
Sebagaimana yang sudah dijelaskan pada bagian 2.3.2 pesan SMS yang masih utuh maupun yang sudah dihapus membentuk sebuah pola dalam representasinya dalam bentuk byte heksadesimal. Pola tersebut dikelompokan menjadi empat bagian, yaitu : bagian pertama adalah header, nomor pesan SMS, diikuti dengan waktu pesan SMS selanjutnya isi pesan SMS tersebut. Jika dilihat 08 08 08 merupakan header dari pesan SMS tersebut kemudian diikuti bytes acak 00 00 00 00 1F, selanjutnya 2B 36 32 38 33 31 39 34 33 37 38 34 38 37 ini merupakan nomor pesan SMS yang jika diubah dalam karakter ASCII menjadi +6283194378487, kemudian diikuti dengan 01 41 53 E0 02 9D, bagian ini merepresentasikan waktu pesan SMS, namun dengan apa yang sudah dijelaskan sebelumnya, bentuk ini harus diubah terlebih dahulu dalam bentuk desimal menjadi 1380091691677, pola ini merupakan pola waktu dalam bentuk Unix Epoch in milliseconds, jika diubah dalam pola waktu biasa maka didapatkan Rabu, 25 September 2013 13.48.11. Kemudian setelah itu diikuti dengan isi pesan SMS, jika dilihat maka byte heksadesimalnya adalah 44 69 61 6E 2E 20 42 73 61 20 73 6D 61 20 6B 74 61 20 62 72 61 6E 67 6B 74 20 6D 61 69 6E 20 66 74 73 61 6C 3F 20 41 6B 20 67 6B 20 64 61 20 6B 65 6E 64 61 72 61 61 6E 20 6E 69 dan jika diubah menjadi karakter ASCII adalah Dian. Bsa sma kta brangkt main ftsal? Ak gk da kendaraan ni. Begitu juga dengan seterusnya, pesan SMS yang masih utuh maupun yang sudah
(54)
terhapus memiliki pola yang sama dalam representasi bytes heksadesimal. Ketika terdapat potongan ataupun bagian pesan SMS yang tidak memiliki pola yang dimaksud maka hal itu dapat diabaikan atau dihilangkan, karena mungkin saja database pesan SMS tersebut sudah melakukan prosedur vacuum. Rangkaian bytes heksadesimal inilah yang selanjutnya digunakan sebagai hex string dalam proses pencarian untuk dicocokan dengan hex pattern input generalisasi.
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
(55)
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
(56)
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 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)
(57)
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)
(1)
67
Tabel 4.21. Hasil pencarian untuk setiap dataset terhapus File Jumlah awal
pesan SMS
Jumlah pesan SMS yang ditemukan
Jumlah pesan SMS loss
Akurasi
mmssms4.db 10 10 0 100%
mmssms5.db 20 12 8 60%
mmssms6.db 30 14 16 46,66%
Jumlah 60 36 24 60%
Tabel 4.22. Hasil pencarian untuk setiap dataset test
File Jumlah pesan SMS utuh
Jumlah pesan
SMS terhapus Jumlah
mmssms7.db 22 6 28
mmssms8.db 20 4 24
mmssms9.db 31 5 36
mmssms10.db 14 5 19
(2)
BAB 5
KESIMPULAN DAN SARAN
Bab ini membahas tentang kesimpulan dari metode yang diajukan dalam menemukan kembali pesan SMS yang telah dihapus pada handphone Android yang akan dibahas pada bagian 5.1, serta pada bagian 5.2 akan membahas saran-saran untuk pengembangan penelitian selanjutnya.
5.1 Kesimpulan
Berdasarkan penerapan metode yang digunakan yaitu string matching dengan menggunakan algoritma Boyer-Moore untuk menemukan kembali pesan SMS yang telah dihapus pada handphone Android berdasarkan metode tersebut, didapat beberapa kesimpulan, yaitu:
1. Penerapan metode yang digunakan mampu menampilkan kembali pesan SMS yang
telah dihapus dengan menggunakan hasil generate hex values pada masing-masing file database yang digunakan, 100% pada dataset utuh dan 60% pada dataset terhapus, pada dataset test sistem dapat menemukan 87 pesan SMS utuh dan 20 pesan SMS terhapus. Sehingga dapat disimpulkan metode yang digunakan mampu menemukan kembali pesan SMS yang telah dihapus dari sebuah file database sehingga pesan SMS tersebut dapat ditampilkan.
2. Metode exact string matching yang digunakan bergantung sepenuhnya kepada isi keseluruhan file database, jika file database tersebut sudah dilakukan vacuum
(3)
69
procedure maka proses dalam menemukan pesan SMS yang telah dihapus akan sulit dilakukan, karena file database tersebut kemungkinan sudah memilki pola yang berbeda.
3. Metode yang digunakan tidak bisa mengembalikan pesan SMS yang telah dihapus secara permanen yang dihasilkan melalui proses overwriting dan vacuum procedure.
4. Pada penelitian ini, metode pencarian dilakukan berdasarkan dengan menggunakan pattern dari hasil generalisasi. Selanjutnya metode pencarian malakukan pencarian dengan pola yang sudah ditentukan sebelumnya.
5. Diperlukan kemampuan untuk melakukan identifikasi pada perangkat digital
tertentu yang menggunakan platform tertentu, karena banyaknya jenis perangkat digital mengakibatkan identifikasi terhadap perangkat digital sulit dilakukan walaupun memiliki platform yang sama.
5.2 Saran
Pada penelitian selanjutnya, untuk meningkatkan hasil pencarian dalam menemukan kembali pesan SMS yang telah dihapus dapat dilakukan recovery dengan metode record recover. Dengan metode record recover diharapkan pesan SMS yang telah dihapus secara permanen melalui proses overwriting dapat dikembalikan seperti semula, sehingga pesan SMS yang telah dihapus secara permanen dapat ditampilkan kembali. Untuk meningkatkan kepastian dari hasil yang didapatkan pada penilitian dapat dilakukan pengumpulan file database untuk setiap dataset lebih banyak dan lebih variatif. Melakukan pencarian pesan SMS yang telah dihapus dengan menggunakan potongan pola yang berbeda dapat meningkatkan akurasi serta memberikan pilihan lain dalam menemukan kembali pesan SMS yang telah dihapus. Metode penelitian ini juga dapat diaplikasikan untuk menemukan kembali call history log pada handphone Android.
(4)
DAFTAR PUSTAKA
Bhandari, J. & Kumar,A. 2013. Analysis of Various Rules of Exact String Matching Algorithms. International Journal of Applied Research and Studies (iJARS) 2(10): 1 - 25.
Bi, C. 2009.Research and Application of SQLite Embedded Database Technology. WSEAS Transactions on Computers 8(1): 83 - 92.
Boyer,R.S. & Moore,J.S. 1977. A Fast String Searching Algorithm. Communications of the ACM 20(10): 762 - 772.
Cantone, D., Cristofaro, S. & Faro, S. 2010. A Space-Efficient Implementation of The Good- Suffix Heuristic. Proceedings of PSC 2010, pp. 63 - 75
Carrier, B. 2003. Defining Digital Forensic Examination and Analysis Tools Using Abstraction Layers. International Journal of Digital Evidance 1(4): 1 - 12.
Casey, E. 2011. Digital Evidence and Computer Crime: Forensic Science, Computers and the Internet. 3rd Edition. Elsevier: Waltham.
Choudhary, R., Rasool, A. & Khare, N. 2012. Variation of Boyer-Moore String Matching Algorithm : A Comparative Analysis. International Journal of Computer Science dan Information Security 10(2): 95 - 101.
Crochemore, M. & Lecroq, T. 1996. Pattern Matching and Text Compression Algorithms. ACM Computing Surveys (CSUR) 28(1): 39 - 41.
Dermawan, H. 2001. Membandingkan Kecepatan Algoritma Brute-Force(BF), Algoritma Knuth-Morris-Pratt(KMP) dan Algoritma Boyer-Moore(BM). Skripsi. Universitas Kristen Duta Wacana.
(5)
71
Effendi, D., Hartono, T. & Kurnaedi, A. 2011. Penerapan string matching menggunakan algoritma Boyer-Moore pada translator bahasa Pascal ke bahasa C. Majalah Ilmiah UNIKOM, 11(2): 262 - 275.
Hoog, A. 2011. Android Forensic: Investigation, Analysis, and Mobile Security for Google Android. Elsevier: Waltham.
Knuth, D.E., Morris, JR.J.H. & Pratt, V.R. 1977. Fast Pattern Matching in Strings. SIAM Journal on Computing 6(1): 323 - 350.
Lecroq, T. 1992. A variation on the Boyer-Moore algorithm. Theoritical Computer Science 92(1): 119 - 144.
Lessard, J. & Kessler, G.C. 2010. Android Forensic: Simplifying Cell Phone Examinations. Journal of Small Scale Digital Evidance Forensics Journal 4(1): 1 - 2
Marshall, A.M. 2008. Digital Forensic, Digital Evidance in Criminal Investigation. John Wiley & Sons, Ltd.: West Sussex.
Navarro, G. 2001. A Guided Tour to Approximate String Matching. Journal of ACM Computing Surveys (CSUR) 33(1): 31 - 88.
Patrick, A.V.H. & Geoff, R.D. 1980. Approximate String Matching. Journal ACM Computing Surveys (CSUR) 12(4): 381 - 402
Raharjo, B. 2013. Sekilas Mengenai Forensika Digital. Jurnal Sosioteknologi 29(12): 384 - 387.
Singla, N. & Garg, D. 2012. String Matching Algorithms and their Applicability in various Applications. International Journal of Soft Computing and Engineering (IJSCE). 1(6): 218 - 222
(6)
Stahlberg, P., Miklau, G. & Levine, B.N. 2007. Threats to Privacy in the Forensic
Analysis of Database Systems. Proceedings of the 2007 ACM SIGMOD
International Conference on Management of Data, pp. 91 - 102.
Tenlima, Y.A. 2009. Pencocokan string Pada Dokumen Teks Menggunakan Algoritma Knuth Morris Pratt. Skripsi. Universitas Kristen Duta Wacana.
Undang - undang nomor 11 tahun 2008, tentang informasi dan transaksi elektronik. 2008. Departement Komunikasi dan Informasi: Jakarta.
Yoon, H. 2012. A Study on the Performance of Android Platform. International Journal on Computer Science and Engineering (IJCSE) 4(4): 532 - 537
Zareen, A. & Baig, S. 2010. Mobile Phone Forensics: Challenges, Analysis and Tools Classification. Proceedings of the 2010 International Workshop on Systematic Approaches to Digital Forensic Engineering, pp. 47-55.