• Tidak ada hasil yang ditemukan

Strategi Implementasi Peningkatan Waktu Proses Algoritma PrefixSpan untuk Sequential Pattern Mining

N/A
N/A
Protected

Academic year: 2021

Membagikan "Strategi Implementasi Peningkatan Waktu Proses Algoritma PrefixSpan untuk Sequential Pattern Mining"

Copied!
12
0
0

Teks penuh

(1)

Strategi Implementasi Peningkatan Waktu

Proses Algoritma PrefixSpan untuk Sequential

Pattern Mining

LAPORAN TUGAS AKHIR

Disusun sebagai syarat kelulusan tingkat sarjana

oleh :

Riza Ramadan / 13503037

PROGRAM STUDI TEKNIK INFORMATIKA

SEKOLAH TEKNIK ELEKTRO DAN INFORMATIKA

INSTITUT TEKNOLOGI BANDUNG

2007

(2)

LEMBAR PENGESAHAN

Program Studi Sarjana Teknik Informatika

Strategi Implementasi Peningkatan Waktu Proses

Algoritma PrefixSpan untuk Sequential Pattern Mining

Tugar Akhir

Program Studi Sarjana Teknik Informatika ITB

Oleh:

Riza Ramadan / 13503037

Telah disetujui dan disahkan sebagai Laporan Tugas Akhir Di Bandung, pada tanggal 21 September 2007

Pembimbing

Riza Satria Perdana, S.T., M.T. NIP. 132142232

(3)

ABSTRAKSI

Pada Tugas Akhir ini dibangun program PrefixSpan untuk sequential pattern mining. Program ini dibangun untuk mengimplementasi algoritma PrefixSpan dan meningkatkan kinerja waktu proses dari implementasi tersebut dengan strategi­ strategi implementasi yang tidak mengubah konsep dasar algoritma tersebut.

Algoritma PrefixSpan merupakan algoritma tercepat untuk sequential pattern mining, namun belum terdapat literatur yang membahas bagaimana mengubah algoritma PrefixSpan menjadi program yang dapat dijalankan. Karena sequential pattern mining seringkali melibatkan data yang besar, perlu diterapkan strategi implementasi agar dapat mengurangi waktu proses yang dibutuhkan algoritma ini. Faktor lainnya adalah PrefixSpan merupakan algoritma rekursif, sehingga akan terdapat kemungkinan untuk tidak dapat berjalan sampai proses selesai karena call stack komputer telah penuh. Selain itu, PrefixSpan menyimpan data yang diprosesnya pada main memory, sehingga besar kemungkinan main memory tersebut tidak dapat menampung data tersebut.

Agar dapat mengimplementasi PrefixSpan, terdapat 3 mekanisme dasar yang harus dipahami, yaitu mekanisme proyeksi, mekanisme penggabungan prefix dan postfix, dan mekanisme pencarian frequent sequence 1 elemen. Kemudian konsep algoritma perlu diubah dari rekursif menjadi iteratif untuk menangani kasus call stack penuh. Untuk dapat meningkatkan kinerja dari PrefixSpan, program dibangun dalam bentuk

multithreading dan mekanisme pencarian frequent sequence 1 elemen dibatasi hanya

melakukan pencarian pada elemen yang telah ditemukan pada pencarian sebelumnya. Penyimpanan data yang akan diproses dilakukan dengan menggunakan file.

Hasil dari Tugas Akhir ini adalah membuktikan penerapan strategi implementasi

multithreading, bentuk algoritma iteratif, pembatasan pencarian dan penyimpanan

menggunakan file dapat membuat PrefixSpan berjalan hingga selesai dan juga meningkatkan kinerjanya dari segi waktu proses.

(4)

KATA PENGANTAR

Puji syukur penulis panjatkan kepada Allah SWT atas berkat dan rahmat yang diberikan-Nya sehingga pengerjaan Tugas Akhir yang berjudul “Strategi Implementasi Peningkatan Waktu Proses Algoritma PrefixSpan untuk Sequential

Pattern Mining” ini dapat diselesaikan dengan baik.

Pada kesempatan kali ini, penulis ingin mengucapkan terima kasih kepada:

1. Ibu Sri Purwanti , selaku pembimbing Tugas Akhir, atas segala dukungan dan bantuannya. Semoga Allah SWT memberikan yang terbaik buat Ibu.

2. Bapak Riza Satria Perdana, S.T., M.T., selaku pembimbing Tugas Akhir juga, atas segala arahan dan bimbingan yang sangat berharga dalam pengerjaan Tugas Akhir ini.

3. Ibu Ir. G.A Putri Saptawati, M.Comm, atas segala kritik dan saran yang diberikan selaku penguji pada presentasi proposal dan sidang Tugas Akhir. 4. Bapak Achmad Imam Kistijantoro, MSc., PhD., atas segala kritik, saran, dan

masukan yang diberikan selaku penguji pada seminar dan sidang Tugas Akhir. 5. Amudi Sebastian, Adistya Alindita, Aditya Nurcholis, Andoko Gunawan, Brahmasta Adipradana, Budiono, Eko Adi Wicaksono, Fajar Juang Ekaputra, Hardani Maulana, Ibrahim Arief, Miridhani Riani, M. Octamanullah , Rika Safrina, Simon Batara, Soni Indro Prabowo, Victor, Yoseph Kurniawan dan Yudi Rizkiadi atas bantuan, dukungan moral dan referensi yang telah diberikan.

6. Asisten-asisten Lab GAIB, atas bantuan dan referensi yang telah diberikan. 7. Seluruh teman seperjuangan IF 2003 atas kenangan yang diberikan.

8. Teman-teman Informatika ITB atas kesan yang diberikan. 9. HMIF, atas pendidikan informal yang diberikan.

10. Seluruh staf akademik dan non akademik Program Studi Teknik Informatika yang telah memberikan banyak hal.

11. Luthfi Kurniadi, Siti Nurani Fauziah dan Pecinta Alam Carvedium yang telah membuat penulis dapat berkuliah di Informatika ITB.

12. Para sahabat, Dewi Kusuma Indriani, Dian Adriani, Herlina Nasution, Cinintha Latief dan Asri Puji Lestari, atas waktu dan perhatian yang diberikan. 13. Teman-teman tim Aksara atas kemenangan yang diberikan.

(5)

14. Teman-teman SMUN 81 yang berkuliah di ITB atas waktu-waktu yang menyenangkan.

Tidak lupa penulis mengucapkan terima kasih kepada kedua orang tua, kedua kakak, saudara dan kerabat atas segala perhatian, dukungan, dan doa yang telah diberikan.

Semoga Tugas Akhir ini dapat memberikan manfaat bagi semua pihak yang membutuhkannya. Penulis menyadari bahwa Tugas Akhir ini masih memiliki banyak kekurangan. Oleh karena itu, kritik dan saran dari pembaca sangat diharapkan.

Bandung, September 2007

(6)

DAFTAR ISI

ABSTRAKSI... iii KATA PENGANTAR... iv DAFTAR ISI ... vi DAFTAR GAMBAR ... ix DAFTAR TABEL ... x DAFTAR ALGORITMA... xi

DAFTAR ISTILAH ... xii BAB I PENDAHULUAN...I-1 I.1 Latar Belakang ...I-1 I.2 Rumusan Masalah ...I-2 I.3 Tujuan...I-2 I.4 Batasan Masalah...I-3 I.5 Metodologi ...I-3 I.6 Sistematika Pembahasan ...I-4 BAB II LANDASAN TEORI ... II-1 II.1 KDD dan Data Mining ... II-1 II.2 Sequential Pattern... II-4 II.2.1 Sequence ... II-4 II.2.2 Subsequence dan Supersequence... II-5 II.2.3 Sequence Database ... II-5 II.2.4 Frequent Sequence... II-5 II.3 Sequential Pattern Mining ... II-6 II.4 PrefixSpan ... II-7 II.4.1 Definisi ... II-8 II.4.1.1 Pattern Growth ... II-8 II.4.1.2 Prefix... II-8 II.4.1.3 Projected Database... II-9 II.4.1.4 Karakter ‘_’ ... II-9 II.4.2 Konsep Algoritma PrefixSpan... II-9 II.5 Parameter Kinerja Program ... II-10 II.6 Multithreading ... II-10 BAB III ANALISIS... III-1

(7)

III.1 Analisis Algoritma PrefixSpan [PEI01] ... III-1 III.1.1 Mekanisme Penyimpanan dan Pengambilan Sequence... III-1 III.1.2 Mekanisme Proyeksi Sequence terhadap suatu Prefix ... III-2 III.1.3 Mekanisme Penggabungan Prefix dengan Postfix ... III-4 III.1.3.1 Elemen terakhir prefix satu objek ... III-4 III.1.3.2 Elemen terakhir prefix lebih dari satu objek ... III-5 III.1.4 Mekanisme Pencarian 1-Sequence yang Frequent ... III-5 III.2 Analisis Rancangan Implementasi PrefixSpan [PEI01] ... III-8 III.3 Analisis Implementasi PrefixSpan Rekursif... III-11 III.3.1 Kelas Sequence... III-12 III.3.2 Kelas Data... III-12 III.3.3 Kelas FSequence... III-13 III.3.4 Kelas PTree... III-13 III.4 Evaluasi Implementasi PrefixSpan... III-14 III.5 Strategi Implementasi untuk Peningkatan Kinerja ... III-15 III.5.1 Alternatif Strategi Implementasi ... III-15 III.5.2 Analisis terhadap Alternatif... III-16 III.6 Analisis Penggunaan Multithreading ... III-17 BAB IV PERANCANGAN... IV-1 IV.1 Evaluasi Usulan untuk Perancangan Iteratif ... IV-1 IV.2 Rancangan Implementasi Alternatif yang Digunakan... IV-2 IV.3 Rancangan Multithread ... IV-5 IV.4 Rancangan Kelas ... IV-6 IV.4.1 Sequence ... IV-6 IV.4.2 Data... IV-7 IV.4.3 Job... IV-9 IV.4.4 SP... IV-9 IV.4.5 PrefixSpan ... IV-9 BAB V IMPLEMENTASI DAN PENGUJIAN... V-1 V.1 Implementasi ... V-1 V.1.1 Lingkungan Pengembangan ... V-1 V.1.2 Penyesuaian Implementasi ... V-1 V.1.3 Batasan Implementasi... V-1 V.1.4 Implementasi Kelas ... V-2

(8)

V.2 Pengujian ... V-3 V.2.1 Tujuan Pengujian ... V-3 V.2.2 Lingkungan Pengujian ... V-3 V.2.3 Skenario Pengujian ... V-3 V.2.4 Data Pengujian... V-3 V.2.5 Tabel Hasil Pengujian... V-4 V.2.6 Kesimpulan Hasil Pengujian ... V-5 BAB VI KESIMPULAN DAN SARAN ... VI-1 VI.1 Kesimpulan... VI-1 VI.2 Saran ... VI-1 DAFTAR REFERENSI... xiii LAMPIRAN A. PERCOBAAN ALTERNATIF USULAN... A-1 LAMPIRAN B. PERCOBAAN BENTUK MULTITHREAD ... B-1

(9)

DAFTAR GAMBAR

Gambar II-1 Knowledge Discovery from Database (KDD)... II-1 Gambar III-1 Contoh Penggunaan Pohon n-ary untuk Sequential Pattern ... III-10 Gambar III-2 Use Case program... III-11 Gambar III-3 Sequence Diagram program... III-12 Gambar III-4 Gambar Class Diagram implementasi PrefixSpan... III-13 Gambar IV-1 Alur Konsep algoritma PrefixSpan iteratif ... IV-3 Gambar IV-2 Diagram Kelas perancangan ... IV-4 Gambar IV-3 Sequence Diagram perancangan... IV-4

(10)

DAFTAR TABEL

Tabel II-1 Contoh Basis Data Transaksi ... II-6 Tabel II-2 Contoh Sequence database ... II-6 Tabel III-1 Contoh Proyeksi 1... III-2 Tabel III-2 Tabel Kemungkinan Penggabungan ... III-4 Tabel III-3 Contoh Proyeksi 2... III-6 Tabel III-4 Contoh Proyeksi 3... III-6 Tabel IV-1 Pemetaan Program dengan Alternatif... IV-5 Tabel V-1 Tabel kelas implementasi... V-2 Tabel V-2 Data satu pengujian kebenaran ... V-4 Tabel V-3 Hasil pengujian dengan data [PEI01] dan nilai threshold 2... V-4 Tabel V-4 Hasil pengujian dengan data buatan dan nilai threshold 2... V-5 Tabel V-5 Hasil pengujian dengan data foodmart dan nilai threshold... V-5

(11)

DAFTAR ALGORITMA

Algoritma III-1 PrefixSpan ... III-9 Algoritma IV-1 Algoritma PrefixSpan iteratif ... IV-1 Algoritma IV-2 Algoritma Proyeksi ... IV-7 Algoritma IV-3 Algoritma pencarian frequent sequence satu elemen ... IV-8

(12)

DAFTAR ISTILAH

Istilah Definisi

Cluster Group atau Kelompok

Error stack overflow Error yang diakibatkan terlalu banyak proses yang menunggu untuk dieksekusi

Extract Mendapatkan sesuatu dari suatu objek File external Arsip yang tersimpan di dalam harddisk

Frequent Sequence Sequence yang memiliki frekuensi kemunculan melebihi threshold

Instance Satu datum dari kumpulan data dalam tabel Length Panjang atau jumlah elemen

List Senarai

Multi-threading Proses yang menjalankan banyak thread di satu waktu

Sequence Deretan huruf atau kata yang melambangkan keteruturan dari suatu objek

Subset Himpunan bagian Task Pekerjaan, fungsionalitas

Thread Pekerjaan kecil yang merupakan bagian dari proses pada komputer Threshold Nilai batasan suatu sequence mengenai jumlah kemunculan pada

data

Traverse Memeriksa satu-per-satu dari awal sampai akhir larik suatu data Tuple Satuan satu baris pada basis data

Referensi

Dokumen terkait

Penelitian ini adalah penelitian kualitatif deskriptif dengan kajian pembelajaran sastra, peneletian ini mengkaji tentang pembelajaran sastra dan pendidikan karakter pada

teori absurditas Camus adalah mengenai pemberontakan dan hasil dari penelitian ini memperlihatkan bahwa pemberontakan yang terdapat pada karakter tokoh dalam novel Cara Berbahagia

Metode yang digunakan dalam penelitian ini adalah metode deskriptif kualitatif karena metode dan teknik penelitian ini mencerminkan kenyataan berdasarkan fakta-fakta (fact

Objek penelitian ini untuk memprediksi perubahan lingkungan saat sedimen terendapkan berdasarkan dari parameter besar butir, material organik dan inorganik, dan

Cadangan Pembelajaran Teradun melalui Pendekatan Modular dilaksanakan seperti SK 2.0 Geografi Fizikal: Cuaca, Iklim, Tumbuh-Tumbuhan Semula Jadi dan Hidupan Liar iaitu SP 2.3.1,

Melalui drama Lautan Jilbab yang dipentaskan pada tahun 1988.

Simpulan pada penelitian ini adalah Terdapat hubungan bermakna antara kemampuan petugas pendaftaran rawat jalan terhadap pelayanan prima RSUD Sultan Thaha Saifuddin

Dengan menggunakan data time series periode 2000-2014 dan metode Ordinary Least Square untuk mengestimasi fungsi permintaan maka diperoleh hasil analisis yang