PENDAHULUAN Latar Belakang Perkembangan teknologi informasi yang sangat pesat yang terjadi dewasa ini menuntut manusia untuk mampu beradaptasi dengan perkembangan tersebut. Upaya adaptasi yang dilakukan manusia dapat dilihat dari banyaknya kegiatan yang dilakukan secara komputerisasi sehingga menghasilkan data dalam jumlah yang besar. Dengan ketersediaan data yang semakin melimpah tersebut, penemuan pengetahuan yang berguna dari suatu database yang besar semakin populer dan menarik perhatian. Penemuan pengetahuan yang berguna tersebut dapat dilakukan menggunakan teknik data mining. Data mining merupakan proses ekstraksi informasi atau pola dalam database yang berukuran besar (Han & Kamber 2006). Salah satu teknik data mining adalah sequential pattern mining yang berguna untuk menemukan pola sekuensial yang terdapat pada database yang pertama kali diperkenalkan oleh Agrawal dan Srikant pada tahun 1995. Pada database, salah satu data yang sering dijumpai adalah data transaksi. Data transaksi merupakan data konsumen atau pelanggan pada sebuah lembaga komersil maupun non-komersil yang berisi id konsumen, waktu transaksi, dan item transaksi. Dari data transaksi seperti halnya transaksi supermarket, dapat ditemukan pola sekuensial untuk mengetahui keterkaitan antarbarang atau item. Salah satu algoritme yang dapat digunakan untuk mengetahui pola sekuensial dari suatu data transaksi yaitu Sequential PAttern Discovery using Equivalence classes (SPADE). Algoritme SPADE merupakan algoritme berbasis candidate generation and test dan merupakan penyempurnaan dari algoritme penentuan pola sekuensial terdahulu yakni Apriori. Pada perkembangannya, algoritme SPADE masih jarang diimplementasikan sehingga diperlukan kajian yang lebih dalam dengan harapan bahwa apabila implementasi algoritme SPADE berhasil, maka penerapan algoritme berbasis patterrn growth akan semakin menarik untuk dilakukan. Dengan mengadopsi fungsi-fungsi pada algoritme SPADE, akan dilihat kecenderungan pembelian barang oleh customer dalam kurun waktu tertentu. Sebagai contoh, customer biasa membeli kebutuhan pokok di awal bulan karena sebagian besar mendapatkan gaji pada periode tersebut. Kejadian seperti ini sebenarnya terekam dalam database, hanya saja belum
tergali informasi tentang itu. Dengan mencari pola-pola dari database menggunakan algoritme SPADE, akan terlihat keterkaitan jenis barang yang dibeli oleh pembeli pada waktu tertentu (Zaki 2001). Hal ini dapat dimanfaatkan oleh pemilik supermarket dalam pengambilan keputusan terkait dengan penjualan barang. Tujuan Penelitian Penelitian ini bertujuan untuk mengimplementasikan algoritme SPADE untuk melihat keterkaitan antara beberapa item dari suatu data transaksi pembelian. Ruang Lingkup Penelitian Ruang lingkup penelitian ini dibatasi pada penerapan algoritme SPADE dengan menggunakan data transaksi pembelian Sinar Mart Swalayan selama periode 1 bulan terhitung sejak 1 Maret hingga 31 Maret 2004. Data transaksi pembelian tersebut berisi id pembeli, waktu pembelian berdasarkan tanggal, dan juga jenis barang atau item yang dibeli. Analisis dilakukan terhadap kelompok data tersebut sehingga menghasilkan informasi mengenai pola pembelian barang atau item yang digambarkan dalam bentuk frequent sequences dan juga association rule. Manfaat Penelitian Hasil penelitian ini diharapkan mampu melihat keterkaitan antarbarang yang dibeli oleh pembeli pada data transaksi pembelian. Keterkaitan antara barang atau item tersebut dapat digunakan sebagai bahan pertimbangan dalam pengambilan keputusan yang berhubungan dengan penjualan barang atau item pada periode berikutnya. Selain itu, penelitian ini juga diharapkan dapat menjadi dasar penelitian selanjutnya yang terkait dengan penentuan pola sekuensial sehingga didapatkan algoritme yang memiliki kinerja yang lebih efektif dan efisien. TINJAUAN PUSTAKA Knowledge Discovery from Data (KDD) Knowledge Discovery from Data (KDD) adalah suatu proses mengekstrak ilmu pengetahuan atau informasi yang berasal dari kumpulan data dalam jumlah besar (Han & Kamber 2006). Data mining adalah proses penemuan pengetahuan yang menarik dari kumpulan data yang tersimpan pada database, data warehouse, dan media penyimpanan informasi lainnya. Tahapan-tahapan proses KDD dapat diilustrasikan pada Gambar 1.
1
Knowledge
Data Mining
Association Rule Mining Aturan asosiasi (association rule) atau analisis afinitas (affinity analysis) berkenaan dengan studi „apa bersama apa‟. Pada dasarnya aturan ini digunakan untuk menggambarkan keterkaitan antara item pada sekumpulan data (Santoso 2007). Secara umum, aturan asosiasi dapat dipandang sebagai proses yang terdiri atas dua tahap (Han & Kamber 2006), yaitu : 1 Menemukan kumpulan frequent item. Sebuah itemset dikatakan frequent item jika memiliki frekuensi kemunculan minimal sama dengan nilai minimum support.
Gambar 1 Tahapan proses KDD (Han & Kamber 2006). Deskripsi mengenai tahapan-tahapan proses KDD pada gambar di atas adalah sebagai berikut : 1 Pembersihan data (Data cleaning) Pembersihan data dilakukan untuk menghilangkan noise dan data yang tidak konsisten. 2 Integrasi data (Data integration) Integrasi data dilakukan untuk menggabungkan data yang berasal dari berbagai sumber. 3 Seleksi data (Data selection) Proses seleksi data merupakan proses pengambilan data yang relevan dengan proses analisis yang dilakukan. 4 Transformasi data (Data transformation) Data ditransformasikan atau digabungkan ke dalam bentuk yang sesuai untuk dilakukan proses mining dengan cara melakukan peringkasan atau operasi agregasi. 5
Data mining Data mining merupakan proses yang penting dan merupakan tahapan ketika metodemetode cerdas diaplikasikan untuk mengekstrak pola-pola dari kumpulan data.
6 Evaluasi pola (Pattern evaluation) Merupakan suatu proses untuk mengidentifikasi pola-pola tertentu pada data yang menarik dan merepresentasikan pengetahuan. 7 Representasi pengetahuan (Knowledge Representation) Penggunaan visualisasi dan teknik representasi untuk menunjukkan penemuan pengetahuan hasil proses mining kepada pengguna.
2 Membangkitkan aturan asosiasi dari itemset yang dikatakan frequent item. Aturan ini harus memenuhi nilai minimum support. Support Misalkan α merupakan sebuah sequence dan D sebuah sequence database. Support atau frequency yang dinotasikan sebagai σ(α, D) merupakan jumlah total dari sequence di dalam database D yang berisi α sebagai sebuah subsequence (Zaki 2001). Confidence Confidence untuk suatu aturan asosiasi XY, adalah ukuran keakuratan dari aturan tersebut yang dihitung dari persentase transaksi dalam database yang mengandung X dan juga mengandung Y. Definisi formal dari confidence adalah sebagai berikut: 𝐶𝑜𝑛𝑓𝑖𝑑𝑒𝑛𝑐𝑒 =
𝑃(𝑋 ∩ 𝑌) 𝑃(𝑋)
Pola Sekuensial Pola sekuensial adalah daftar urutan dari sekumpulan item. Sebuah pola sekuensial dikatakan maksimum apabila tidak mengandung pola sekuensial lainnya (Zaki 2001). Sebuah pola sekuensial dengan k-item disebut ksequence. Sebagai contoh, (A →BC) merupakan sebuah sequence dengan 3-sequence. Panjang sebuah pola sekuensial adalah jumlah item yang terdapat pada pola sekuensial tersebut yang dilambangkan dengan |s|. Sebuah subsequence s’ dari s dilambangkan dengan s’ ⊆ s. Misalkan, sebuah pola sekuensial a = (a1,a2,...an) merupakan subsequence dari b = (b1,b2,...bm) dengan integer i1 < i2 < ...in, 1 ≤ ik ≤ m, sehingga a1 ⊆ b1, a2 ⊆ b2, ..., an ⊆ bm. Sebagai contoh, (A→BC) merupakan subsequence dari (A→DE→BC) atau
2
(D→AB→BC) tetapi bukan subsequence dari (ABC) atau (BC→A). Misalkan α merupakan sebuah sequence dan D merupakan sebuah database. Apabila diberikan sebuah user-specified threshold σ yang disebut dengan minimum support, maka sebuah sequence dikatakan frequent jika σ (α, D) ≥ minimum support. Misalkan D merupakan sebuah database dan Ƒ merupakan kumpulan dari semua frequent sequences dalam database D. Sebuah frequent sequence α ∈ Ƒ disebut maximal frequent sequence jika untuk masing-masing β ∈ Ƒ , α ≠ β, dan α bukan merupakan ⊆ β. Pendekatan Hyper-lattice Hyper-lattice merupakan pendekatan dasar yang digunakan untuk menguraikan mining frequent sequences menjadi submasalah yang lebih kecil (Zaki 2001). Setiap kumpulan dari semua sequences disebut struktur hyper-lattice. Dalam struktur ini, sequences menjadi berlapis yang berarti bahwa setiap sequences dibentuk dengan menambah sebuah item baru ke sequences dari layer sebelumnya. Adapun dasar dari teori hyper-lattice sebagai berikut (Davey & Priestley 1990): 1. Join Misalkan P himpunan terurut dari S ⊆ P. Sebuah elemen X ∈ P adalah sebuah upper bound dari S jika untuk semua s ∈ S, s ≤ X. Minimum upper bound dari S disebut join yang dinotasikan dengan ⋁ S. 2. Meet Misalkan P himpunan terurut dari S ⊆ P. Sebuah elemen X ∈ P adalah sebuah lower bound dari S jika untuk semua s ∈ S, s ≥ X. Maximum lower bound dari S disebut meet yang dinotasikan dengan ⋀ S. 3. Lattice Misalkan L merupakan himpunan terurut. L disebut sebuah join (meet) semilattice jika dan hanya jika x ⋁ y (x ⋀ y) ada untuk setiap x, y ∈ L. L disebut sebuah lattice jika terdapat sebuah join dan meet semilattice. Sebuah himpunan terurut M ⊂ L adalah sebuah sublattice dari L jika x, y ∈ M mengimplikasikan x ⋁ y ∈ M ⋀ x ⋀ y ∈ M. Setiap lattice harus memiliki minimal satu minimum upper bound dan maximum lower bound, sementara semilattice hanya harus memiliki minimum upper bound atau maximum lower bound. Masing-masing himpunan terurut memiliki elemen terbesar yang disebut top
element yang dinotasikan dengan ┬ dan juga elemen terkecil yang disebut bottom element yang dinotasikan dengan ┴. Atom Sebuah lattice dimisalkan dengan L, dengan x, y, z ∈ L. x dikatakan dicakup oleh y jika x < y ⋀ x ≤ z < y, menyiratkan bahwa z = y. ┴ dimisalkan sebagai bottom element dari lattice L, x ∈ L disebut sebuah atom apabila ┴ dicakup oleh x. Equivalence Class Equivalence Class merupakan sebuah kumpulan dari sequences yang membagi prefix yang sama dengan panjang k. Setiap equivalence class dibentuk dari relasi equvalence ⊖k yang merupakan sebuah subhyper-lattice. Contoh Struktur hyper-lattice yang dibentuk berdasakan equivalence class dapat dilihat pada Lampiran 1. Prefix Misalkan s = (s1 → s2 → ∙ ∙ ∙ → sn) dan b = (b1 → b2 → ∙ ∙ ∙ → bm) merupakan dua buah sequences. Sequence b disebut prefix dari s jika dan hanya jika bi = si untuk (i ≤ m - 1) dan bm ⊆ sm. Sebagai contoh, sequences (A→B) dan (A→BC→A) merupakan prefix dari sequence (A→BC→ABC→C). SPADE Algorithm Algoritme SPADE merupakan algoritme untuk mencari pola sekensial yang menggunakan equivalence class untuk menguraikan masalah utama menjadi submasalah yang dapat diselesaikan secara terpisah menggunakan operasi join (Zaki 2001). Algoritme ini menggunakan representasi dari database vertikal di mana masing-masing baris berisi customer id (sid), waktu transaksi (eid), dan koleksi dari item transaksi seperti yang ditunjukkan pada Tabel 1. Tabel 1 Sampel database vertikal sid 1 1 1 1 2 2 3 4 4 4
eid (date) 10 15 20 25 15 20 10 10 20 25
items CD ABC ABF ACDF ABF E ABF DGH BF AGH
3
Pasangan (sid, eid) dari suatu item transaksi x disebut dengan id-list yang dinotasikan dengan L(x) = {(sid, eid)}. Contoh id-list dari item A yang terdapat pada Tabel 1 dapat dilihat pada Gambar 2. A SID 1 1 1 2 3 4
EID 15 20 25 15 10 25
Gambar 2 Id-list item A. Fungsi utama dalam algoritme SPADE adalah memindai database D dan menemukan frequent 1-sequences yang mengacu pada atom dari sequence hyper-lattice. Sekumpulan atomatom akan dibangkitkan dari frequent 1sequences dengan assign sebuah id-list ke semua frequent 1- sequences. Kumpulan dari atom-atom ini merepresentasikan parent class untuk hyper-lattice yang diinduksi oleh [{}]⊖1. Ringkasan algaoritme SPADE adalah sebagai berikut : SPADE(min_sup, D , Ƒ): Ƒ1 ← {Frequent 1-sequences} ɛ ← {parent classes [{}]Ɵ1} Enumerate-Frequent-Sequences Ƒ ← Ƒ ⋃ Ƒ1 Fungsi Enumerate-Frequent-Sequences merupakan fungsi untuk membentuk semua frequent sequences. Tahapan EnumerateFrequent-Sequences diawali dengan memproses masing-masing atom Ai dengan Aj yang lain. Proses ini merupakan sebuah temporal join dari atom-atom di mana atom α yang baru diperoleh merepresentasikan sequence. Setelah proses join, akan dilakukan pengecekan frequency dari hasil id-list atom-atom untuk menentukan apakah sequence yang terbentuk frequent atau tidak. Jika sequence tersebut frequent, maka atom α ditambahkan ke dalam kumpulan atom-atom Ti yang merepresentasikan parent class untuk hyper-lattice berikutnya yang diinduksi oleh [Ai ]⊖1. Setelah Ai selesai, fungsi secara rekursif dipanggil dengan Ti sebagai parameter. Sebagai ilustrasi, data yang terdapat pada Tabel 1 akan menghasilkan sekumpulan frequent atoms J = {A, B, D, F}. Semua frequent atoms yang dihasilkan akan mengalami proses temporal join untuk membentuk semua frequent 2-sequences hingga frequent k-
sequences yang bisa terbentuk. Proses temporal join dimulai dari atom A sebagai parent class pertama. Atom A akan dilakukan proses join dengan sisa frequent atoms J yang lain, yaitu B, D, dan F. Proses temporal join atom A dengan atom yang lain akan menghasilkan kumpulan atom yang merepresentasikan frequent sequences K = {AB, AF}. Algoritme kemudian pindah ke kumpulan atom K dan mengambil atom (AB) untuk dilakukan temporal join dengan sisa dari kumpulan atom K yang lain yakni (AF). Proses temporal join (AB) dengan sisa kumpulan atom K yang lain hanya akan menghasilkan sebuah atom yang merepresentasikan sequence yaitu L = {(ABF)}. Algoritme kemudian berpindah secara rekursif ke kumpulan atom L dan setelah diketahui bahwa tidak ada lagi frequent sequence yang lain yang bisa dibangkitkan dari kumpulan L, maka algoritme akan tracks back ke kumpulan atom K sebelumnya dan mengambil atom selanjutnya yakni (AF). Atom (AF) ini akan di-join dengan sisa dari kumpulan atom K yang lain, dan berhubung tidak ada sisa dari kumpulan atom K yang lain, maka tidak ada frequent sequence lain yang bisa dibangkitkan sehingga algoritme tracks back ke kumpulan atom J sebelumnya dan mengambil atom selanjutnya yakni B. Atom B ini akan dijoin dengan sisa dari kumpulan atom J yang lain yakni A, D dan F dan akan menghasilkan kumpulan atom yang merepresentasikan frequent sequence K2 = {(BF),(B→A)}. Algoritme kemudian pindah ke kumpulan atom K2 dan mengambil atom (BF) untuk dilakukan temporal join dengan sisa kumpulan atom K2 yang lain yakni (B→A). Proses temporal join (BF) dengan sisa kumpulan atom K2 yang lain hanya akan menghasilkan sebuah atom yang merepresentasikan sequence yaitu L2 = {(BF→A)}. Algoritme kemudian berpindah secara rekursif ke kumpulan atom L2 dan setelah diketahui bahwa tidak ada lagi frequent sequence yang lain yang bisa dibangkitkan dari kumpulan L2, maka algoritme akan tracks back ke kumpulan atom K2 sebelumnya dan mengambil atom selanjutnya yakni (B→A). Atom (B→A) ini akan dilakukan proses join dengan sisa dari kumpulan atom K yang lain, dan berhubung tidak ada sisa dari kumpulan atom K2 yang lain, maka tidak ada frequent sequence lain yang bisa dibangkitkan sehingga algoritme tracks back ke kumpulan atom J sebelumnya. Proses ini akan berlangsung terusmenerus dengan pola yang sama hingga semua kumpulan atom selesai diproses. Fungsi
4
Enumerate-Frequent-Sequences adalah sebagai berikut: Enumerate-Frequent-Sequences (Atomset, min_supp, Set Ƒ): for all atoms Ai ϵ ɛ do Ti ← {} for all atoms Aj ϵ ɛ, j ≥ i do α = Ai ⋁ Aj L(α) = L(Ai) ∩ L(Aj) if σ(α) ≥ min_supp then Ti ← Ti ⋃{α} Ƒ = Ƒ ⋃ α end if end for Enumerate-Frequent-Sequences (Ti,min_supp, Ƒ) end for Rule Generation Rule Generation merupakan tahap pembentukan rule dari semua maximal frequent sequences yang terbentuk. Semua sequences yang merupakan subsequence dari sebuah maximal frequent sequences yang terbentuk akan dilakukan pembentukan rule dengan maximal frequence sequence itu sendiri. Dari semua kandidat rule yang ada akan dilakukan pengecekan apakah kandidat rule yang terbentuk tersebut memiliki confidence yang lebih besar atau sama dengan minimum confidence yang diberikan. Apabila kandidat rule tersebut memiliiki nilai confidence lebih besar atau sama dengan minimum confidence yang diberikan maka kandidat rule tersebut merupakan output rule yang diinginkan algoritme. Sebagai ilustrasi, data yang terdapat pada Tabel 1 akan menghasilkan 2 maximal frequent sequences yaitu (ABF) dan (D→BF→A). Semua subsequences dari masing-masing maximal frequent sequences tersebut akan dicari untuk selanjutnya dilakukan pembentukan rule. Sequence (ABF) memiliki enam subsequences, yaitu (A), (B), (F), (AB), (AF), dan (BF). Dari keseluruhan subsequences tersebut, akan terbentuk sebanyak enam kemungkinan rule yaitu, (A)⇒(ABF), (B)⇒(ABF), (F)⇒(ABF), (AB)⇒(ABF), (AF)⇒(ABF), dan (BF)⇒(ABF). Penghitungan confidence setiap kemungkinan rule dilakukan dengan membagi support dari maximal frequence sequences dengan support dari subsequences. Sebagai contoh, penghitungan confidence untuk rule (A)⇒(ABF) dilakukan dengan membagi
support (ABF) dengan support (A). Apabila nilai confidence dari kemungkinan rule lebih besar atau sama dengan minimum confidence yang diberikan maka rule tersebut merupakan rule yang sesuai dengan output algoritme Rule Generation. Algoritme Rule Generation adalah sebagai berikut : RuleGen( Ƒ, min_conf): for all maximal frequent sequence β ϵ Ƒ do for all subsequence atoms α≺β do conf = fr (β) / fr (α) if (conf ≥ min_conf)then output the rule α ⇒ β Temporal join of id-lists Temporal join adalah operasi dasar yang digunakan ketika proses enumerating-fequentsequences (Zaki 2001). Misalkan [A→B] merupakan sebuah equivalence class dengan atom {(A→BC), (A→BD), (A→B→A), (A→B→C)}. Misalkan P mewakili prefix (A→B) sehingga [P] dapat ditulis ulang sebagai {(PC), (PD), (P→A), (P→C)}. Penulisan ulang tersebut akan menghasilkan dua jenis atom, yaitu : Event atoms {PC, PD} Sequence atoms {(P→A), (P→C)} Operasi join dari atom di atas akan menghasilkan minimal tiga kemungkinan, antara lain sebagai berikut : 1. Event Atom dengan Event Atom Jika operasi join antara PC dengan PD dilakukan, maka hanya akan menghasilkan event atom yang baru yaitu PCD. 2. Event Atom dengan Sequence Atom Jika operasi join dilakukan antara (PC) dengan (P→A), maka hanya akan menghasilkan sequences atom yang baru yaitu (PC→A). 3. Sequence Atom dengan Sequence Atom Jika operasi join dilakukan antara (P→A) dengan (P→C), maka akan menghasilkan tiga kemungkinan keluaran: sebuah event atom (P→AC), dua sequences atoms (P→A→C) dan (P→C→A). Kasus khusus akan timbul apabila operasi join dilakukan antara (P→A) dengan dirinya sendiri yang akan menghasilkan sequences atom yang baru yaitu (P→A→A). Penghitungan support dari sequences hasil temporal join dilakukan untuk mengetahui
5
apakah sequences tersebut frequent atau tidak. Perhitungan support ini didasarkan pada jumlah sid yang berbeda yang terdapat pada id-list dari sequences yang terbentuk dari hasil temporal join tersebut. Sebagai contoh, dari data hypothetical id-list atom sequence (P→A) dan (P→C) yang terdapat pada Lampiran 2 dilakukan temporal join id-list untuk semua sequences yang mungkin terbentuk yakni (P→AC), (P→A→C), dan (P→C→A). Penghitungan support dari id-list sequence (P→AC) dilakukan dengan memeriksa pasangan (sid,eid) yang sama antara (P→A) dan (P→C). Pasangan (sid,eid) yang memenuhi syarat dari data tersebut hanya ((8,30), (8,50), (8,80)) sehingga diperoleh id-list sequence (P→AC) adalah L(P→AC) = {(8,30), (8,50), (8,80)}. Penghitungan support dari id-list sequence (P→A→C) dilakukan dengan memisalkan (sid, eid1) pada L(P→A) dan kemudian memeriksa apakah terdapat pasangan (sid, eid2) pada L(P→C) dengan sid yang sama tetapi eid2 > eid1, dan apabila terdapat pasangan yang memenuhi kriteria tersebut, ini berarti bahwa item C mengikuti item A untuk sequence yang diidentifikasi berdasarkan sid. Sequence (P→C→A) dikonstruksi dengan cara yang sama dengan membalik peran P→A dan P→C.
3 Transformasi data Data diubah ke dalam bentuk yang sesuai sebagai masukan bagi algoritme SPADE. Data diubah ke dalam bentuk numerik dan diurutkan secara menaik berdasarkan id customer (sid) dan waktu transaksi (eid). 4 Data mining Tahap ini merupakan inti dari analisis data. Pada tahap ini diterapkan penggunaan algoritme SPADE yang diperkenalkan oleh Mohammed J. Zaki (2001). Tahapan-tahapan yang akan digunakan pada metode tersebut, yaitu: a Pemberian nilai minimum support Pemberian nilai minimum support terhadap data merupakan syarat awal berjalannya algoritme. Nilai minimum support digunakan untuk menyaring nilai support bagi masingmasing frequent sequences setelah dilakukan proses komputasi menggunakan algoritme SPADE. Nilai support yang lebih kecil dari nilai minimum support yang diberikan tidak akan diperhitungkan. b Penentuan frequent 1-sequences
Proses dasar sistem mengacu pada proses dalam Knowledge Discovery from Data (KDD). Algoritme SPADE diterapkan pada tahap data mining. Diagram alur metode penelitian dapat dilihat pada Gambar 3. Tahapan KDD tersebut dapat diuraikan sebagai berikut :
Penentuan frequent 1-sequences merupakan langkah pertama dalam tahapan algoritme SPADE. Pembentukan frequent 1-sequences ditentukan berdasarkan nilai minimum support σ yang diberikan terhadap data. Semua item yang memiliki support lebih besar atau sama dengan nilai minimum support merupakan frequent items yang disebut juga frequent 1-sequences. Perhitungan support dari item didasarkan pada jumlah sid yang berbeda yang terdapat pada pasangan (sid, eid) atau yang disebut juga sebagai id-list dari item tersebut.
1 Pembersihan data
c Pembentukan frequent sequences
Pembersihan data merupakan tahap yang dilakukan untuk menghilangkan noise dan data yang tidak konsisten. Pada tahap ini, transaksi yang terjadi pada waktu yang sama yang tercatat lebih dari satu kali akan dianggap sebagai satu transaksi. Selain itu, data yang tidak lengkap akan dibuang.
Pembentukan frequent sequences merupakan tahap akhir dari algoritme SPADE. Pada tahap ini, semua frequent sequences mulai dari frequent 2-sequences hingga frequent k-sequences dibangkitkan dengan menggunakan fungsi Enumerate-Frequent-Sequences.
METODE PENELITIAN Proses Dasar Sistem
2 Seleksi data Proses seleksi data merupakan proses pengambilan data yang relevan dengan proses analisis yang dilakukan. Pada tahap ini, akan dipilih atribut yang sesuai dengan kebutuhan algoritme, yaitu sid, eid, dan items.
5 Evaluasi Pola Pada tahap ini akan dievaluasi pola sekuensial mana yang dikatakan frequent sequence dan mewakili pola pembelian items. Evaluasi dilakukan dengan mencari maximal frequent sequences dari seluruh frequent sequences yang ada.
6