• Tidak ada hasil yang ditemukan

SKRIPSI Ditujukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Jurusan Teknik Informatika

N/A
N/A
Protected

Academic year: 2019

Membagikan "SKRIPSI Ditujukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Jurusan Teknik Informatika"

Copied!
117
0
0

Teks penuh

(1)

i

SKRIPSI

Ditujukan Untuk Memenuhi Salah Satu Syarat

Memperoleh Gelar Sarjana Teknik

Jurusan Teknik Informatika

Oleh :

Andreas Agus Winarno

035314032

JURUSAN TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

(2)

ii

DATA MINING UTILIZING WITH

NAÏVE BAYESSIAN CLASSIFICATION

METHOD

FOR 2006/2007 SEASON ENGLISH PREMIER LEAGUE

A Thesis

Presented as Partial Fulfillment of the Requirements

To Obtain the Engineering Bachelor Degree

In Informatics Engineering

By :

Andreas Agus Winarno

035314032

DEPARTMENT OF INFORMATICS ENGINEERING

FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

YOGYAKARTA

(3)
(4)
(5)

v

memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam

kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.

Yogyakarta, 16 Desember 2007

Penulis

(6)

vi

HALAMAN MOTTO

Untuk segala sesuatu ada masanya, untuk

apapun di bawah langit ada waktunya.

(Pengkhotbah 3:1)

…

Jangan hanya menilai dari satu sudut pandang

…

Selalu ada pilihan dalam segala kondisi

…

(7)

vii

….

Yahwe Eloim, Yesus Kristus Tuhan pemilik jiwaku, Bunda Maria Ibuku, St.

Andreas Pelindungku,

….

Kedua orang tuaku yang telah membesarkan, membimbing dan

mendidikku dengan cinta, pengertian, dan kesabaran,

…

Kakak – kakakku, keluarga kecilku, yang akan selalu menyayangi dan

menerimaku apa adanya,

…

Astrisia Ratih Kusuma, my lily white,

…

All my friends in jogja city, we are no different each other, so we are

family,

…

(8)

viii

ABSTRAK

Pada setiap hasil pertandingan di liga sepakbola diduga dipengaruhi oleh

banyak faktor seperti pelatih dan pemain klub, tempat pertandingan, jadwal

pertandingan, sejarah pertemuan kedua klub yang bertanding, dan lain - lain.

Pada tugas akhir ini dibuat aplikasi untuk memprediksi juara liga Inggris

musim 2006/2007. Aplikasi ini akan melakukan proses prediksi terhadap setiap

pertandingan dari jadwal pada musim 2006/2007 berdasarkan data–data

pertandingan selama 5, 6, 7, 8, 9, dan 10 tahun sebelumnya. Algoritma yang akan

digunakan dalam proses prediksi yaitu algoritma

Naïve Bayessian, algoritma ini

menggunakan variabel-variabel yang ada pada data training untuk memprediksi

hasil pertandingan ke dalam sebuah kelas. Variabel-variabel yang digunakan pada

aplikasi ini yaitu, tempat pertandingan, waktu pertandingan, dan hasil

pertandingan sebelumnya antar kedua klub yang bertanding. Sedangkan kelas

yang digunakan pada aplikasi ini yaitu menang, seri, atau kalah.

(9)

ix

match from both clubs, etc.

On this thesis, I make application for predict champion of English premier

league season 2006/2007. This application will predict every match from schedule

on season 2006/2007 based on historical fact of match since five, six, seven, eight,

nine and ten years before season 2006/2007. Algorithm Naïve Bayessian has

choosed to perform that prediction. This algorithm use variables from data

training to predict result match in to a class. The variables are place of match, time

of match, and last result match from both clubs, and the class are win, draw, and

lose.

(10)

x

KATA PENGANTAR

Puji dan syukur saya haturkan kepada Tuhan Yesus Kristus, karena atas ijin

dan kehendak-Nya saya dapat menyelesaikan tugas akhir ini.

Dalam proses penulisan tugas akhir ini saya menyadari bahwa ada begitu

banyak pihak yang telah memberikan perhatian dan bantuan dengan caranya

masing-masing sehingga tugas akhir ini dapat selesai. Oleh karena itu saya ingin

mengucapkan terima kasih antara lain kepada :

1.

Bapak Ir. Gregorius Heliarko, S.J., S.S., B.S.T., M.A., M.Sc. selaku Dekan

Fakultas Sains dan Teknologi, Universitas Sanata Dharma.

2.

Ibu Ridowati Gunawan, S.Kom., M.T., selaku Dosen Pembimbing Tugas

Akhir dan Dosen Pembimbing Akademik, yang telah banyak memberikan

bimbingan,

dukungan,

motivasi

dan

fasilitas

yang

mendukung

terselesaikannya tugas akhir ini. Terima kasih juga atas kesempatan yang

diberikan kepada saya untuk kerja

part time

di Lab. Komputer Lanjut.

3.

Ibu Agnes Maria Polina, S.Kom., M.Sc., selaku Ketua Jurusan Teknik

Informatika.

4.

Bapak St. Wisnu Wijaya, S.T., M.T dan Bapak DS. Bambang Soelistijanto,

S.T., M.Sc. selaku panitia penguji yang telah memberikan banyak kritik dan

saran untuk tugas akhir saya.

(11)

xi

bantuan-bantuan dan informasinya, Mas Danang atas pinjaman obengnya,

Pak Dar atas doa, senyum, wejangan-wejangan tentang pengalaman hidup,

serta kesabarannya. Sekali lagi terima kasih atas kerja sama dan semua

bantuannya terutama selama kita menjadi

partner

sebagai laboran.

8.

Bapak dan Ibu tercinta. Terima kasih atas semua yang telah dilakukan

untukku, doa, semangat, dukungan dan cintanya sehingga saya bisa

menyelesaikan studi dengan lancar. Semoga saya bisa membalas cinta tulus

kalian.

9.

Kakak-kakakku. Walau kita sering berjauhan tapi aku selalu sayang pada

kalian, semoga kita sama-sama menjadi anak yang berbakti.

(12)

xii

12.

Teman-teman kost Ibu Siti : Gasong, S.T., Peteka, S.T., Gento, Mambu,

S.Pd., Natan, Gemblung, Kentung, Agus. Terima kasih atas hari–hari yang

selalu diisi dengan

WE9

. Keberadaan kalian telah memberikan warna-warni

dalam hidupku.

13.

Teman-temanku dari Bekasi yang kuliah di Jogja, Udhay, Benny, Bibir,

Oscar, Sudung, Kumis, Arbi, Sugeng, Otonx, Bayu, Lucy, Efran, Davied,

Babang dan semua yang tersebutkan namanya.

coz we’re all family,

remember us until the sun can’t shine anymore....

.

14.

Seluruh pihak yang telah ambil bagian dalam proses penulisan tugas akhir

ini yang tidak bisa saya sebutkan satu per satu.

Dengan rendah hati saya menyadari bahwa tugas akhir ini masih jauh dari

sempurna, oleh karena itu berbagai kritik dan saran untuk perbaikan tugas akhir

ini sangat saya harapkan. Akhir kata, semoga tugas akhir ini bermanfaat bagi

semua pihak. Terima kasih.

Yogyakarta, 16 Desember 2007

(13)

xiii

HALAMAN PERSETUJUAN ...

HALAMAN PENGESAHAN ...

PERNYATAAN KEASLIAN KARYA ...

HALAMAN MOTTO ...

HALAMAN PERSEMBAHAN ...

ABSTRAK...

ABSTRACT ...

KATA PENGANTAR ...

DAFTAR ISI ...

DAFTAR GAMBAR ...

DAFTAR TABEL ...

iii

iv

v

vi

vii

viii

ix

x

xiii

xvi

xviii

BAB I.

PENDAHULUAN

1.1

Latar Belakang Masalah ...

1.2

Rumusan Masalah ...

1.3

Batasan Masalah ...

1.4

Tujuan Penelitian ...

1.5

Manfaat Penelitian ...

1.6

Metodelogi Penelitian ...

1.7

Sistematika Penulisan ...

1

2

2

3

3

4

(14)

xiv

BAB II.

LANDASAN TEORI

2.1

Data Mining ...

2.2

Classification

dalam data mining...

2.3

Metode

Naive

Bayesian Classification

...

2.3.1

Sejarah Thomas Bayes

...

2.3.2

Teorema Bayes ...

2.3.3

Naive Bayesian ...

BAB III. ANALISIS DAN DESAIN SISTEM

3.1

Analisis Sistem ...

3.2

Use Case Diagram ...

3.3

Class Diagram ...

3.4

E-R Diagram ...

3.5

Desain Database ...

3.6

Perhitungan menggunakan algoritma

Naive Bayesian

...

3.7

Desain User Interface ...

3.8

Flowchart

yang diimplementasikan dalam sistem ...

BAB IV. IMPLEMENTASI SISTEM

4.1

Spesifikasi

Software

dan Hardware yang digunakan ...

4.2

Koneksi Basisdata dengan sistem ...

4.3

Pembuatan Antar Muka ...

6

10

12

12

13

14

16

17

18

19

20

25

35

45

49

50

(15)

xv

5.2

Kelebihan dan Kekurangan Sistem ...

5.2.1

Kelebihan Sistem ...

5.2.2

Kekurangan Sistem ...

BAB VI. PENUTUP

6.1

Kesimpulan ...

6.2

Saran ...

DAFTAR PUSTAKA

LAMPIRAN

77

77

77

78

79

(16)

xvi

DAFTAR GAMBAR

Gambar

Keterangan

Halaman

2.1

Tahap-Tahap Pada KDD

9

3.1

Use Case Diagram

17

3.2

Class Diagram

18

3.3

E-R Diagram

19

3.4

Form Menu Utama

35

3.5

Form Browse Data Musim

36

3.6

Form Browse Data Jadwal

37

3.7

Form Browse Data Hasil Pertandingan

38

3.8

Form Browse Data Klub

39

3.9

Form Load Data

40

3.10

Form Clean Data

41

3.11

Form Prediksi

42

3.12

Form Hasil Prediksi

43

3.13

Form Analisa Prediksi

44

3.14

Flowchart Sistem Proses Prediksi

45

3.15

Flowchart Proses Penghitungan Prior Probability

dan Likelihood

46

3.16

Flowchart Proses Prediksi Hasil

47

4.1

Form Menu Utama

58

(17)

xvii

4.5

Form Prediksi (Proses Prediksi)

63

4.6

Form Hasil Prediksi

64

4.7

Form Detil Prediksi

65

4.8

Form Analisa Prediksi

66

4.9

Form Detil Analisa Prediksi

67

4.10

Form Browse Data Klub

68

4.11

Form Browse Data Jadwal

69

4.12

Form Browse Data Musim

70

(18)

xviii

DAFTAR TABEL

Tabel

Keterangan

Halaman

3.1

Propertis dari tabel Musim

20

3.2

Propertis dari tabel Klub

20

3.3

Propertis dari tabel Stadion

21

3.4

Propertis dari tabel Hasil_Pertandingan

21

3.5

Propertis dari tabel Jadwal

21

3.6

Propertis dari tabel Training

22

3.7

Propertis dari tabel Cleaning

22

3.8

Propertis dari tabel naive_bayes

23

3.9

Propertis dari tabel Prediksi

24

3.10

Jadwal Arsenal vs Aston Villa Musim 2006/2007

25

3.11

Data Training Arsenal vs Aston Villa

dalam 5 tahun sebelum 2006/2007

26

3.12

Tabel Cleaning Arsenal vs Aston Villa

28

3.13

Tabel jadwal setelah di-cleaning

31

(19)

1

1.1

Latar Belakang Masalah

Saat musim 2006/2007 Liga Inggris (FA Premier League) akan bergulir,

pasar taruhan sepakbola di Eropa khususnya di Inggris memprediksi klub mana

yang akan menjadi juara di liga tersebut. Dengan adanya prediksi kita dapat

menjagokan suatu klub di bursa taruhan pada musim liga ini.

Variabel-variabel yang diduga dapat digunakan untuk memprediksi juara

Liga Inggris musim 2006/2007 yaitu, pemain dan pelatih klub, keletihan pemain,

pemain yang cidera, tempat pertandingan berlangsung (home/away), musim saat

pertandingan (summer,

autumn,

winter,

spring), hasil pertandingan sebelumnya

dan lainnya. Dalam tugas akhir ini, karena adanya keterbatasan dalam data, maka

tidak semua variabel digunakan, sehingga hanya beberapa variabel yang akan

digunakan yaitu, tempat pertandingan berlangsung (home/away), musim saat

pertandingan (summer,

autumn,

winter,

spring), dan hasil pertandingan

sebelumnya (win, draw, lose).

Setelah variabel-variabel penyusun prediksi ditentukan maka peran data

mining dengan metode

Naive Bayesian Classification

untuk menggali informasi

(20)

2

1.2

Rumusan Masalah

Dalam Tugas Akhir ini dapat dirumuskan beberapa rumusan masalah

sebagai berikut, yaitu

a.

Bagaimana mengimplementasikan

Naive Bayesian Classification untuk

memprediksi hasil dari setiap pertandingan sehingga juara liga utama

Inggris dapat diprediksi?

b.

Menganalisa keakuratan metode

Naive Bayesian Classification

dalam

memprediksi juara Liga Inggris musim 2006/2007.

1.3

Batasan Masalah

Permasalahan dalam tugas akhir ini dibatasi pada pembuatan program yang

dapat menyelesaikan masalah di atas, dengan batasan-batasan yaitu

a.

Variabel-variabel untuk memprediksi pertandingan yaitu, tempat

pertandingan berlangsung (home/away), musim saat pertandingan

(summer, autumn, winter, spring), dan hasil pertandingan sebelumnya

(win, draw, lose).

b.

Metode yang digunakan untuk melakukan prediksi nilai

class yaitu

Naive Bayesian Classification, dan dalam kasus ini yang menjadi

class

ialah hasil pertandingan yaitu menang, seri, atau kalah.

c.

Sedangkan sumber data yang digunakan ialah semua pertandingan pada

divisi utama Liga Inggris sejak musim 1904/1905 sampai dengan musim

2005/2006, ditambah dengan semua pertandingan pada divisi-divisi yang

(21)

dengan 2005/2006 yang mengandung 2 klub divisi utama musim

2006/2007 saling berlawanan.

d.

Untuk membandingkan hasil prediksi, maka prediksi dilakukan sebanyak

6 kali dengan kondisi 5, 6, 7, 8, 9, 10 tahun sebelum kompetisi musim

2006/2007, semua hasil prediksinya disimpan di dalam basis data.

1.4

Tujuan Penelitian

Tugas Akhir ini mempunyai tujuan penelitian, yaitu menerapkan algoritma

Naive Bayesian

sebagai salah satu metode

Classification Data Mining

untuk

menganalisis statistik pertandingan liga sepakbola Inggris agar dapat memprediksi

setiap pertandingan musim 2006/2007, sehingga juara Liga Inggris musim

2006/2007 dapat diprediksi.

1.5

Manfaat Penelitian

Adapun manfaat dari penelitian yang dilakukan adalah

a.

Membantu memprediksi hasil dari sebuah pertandingan di liga Inggris

pada musim 2006/2007.

b.

Membantu memprediksi hasil akhir dari liga Inggris pada musim

(22)

4

1.6

Metode Penelitian

Metode penelitian yang digunakan untuk membuat tugas akhir ini adalah:

a.

Penelitian pustaka, yaitu dengan mempelajari hal-hal yang berkaitan

dengan Data Mining

metode Naive Bayesian, dengan mengumpulkan dan

mempelajari informasi dari buku-buku, artikel dan website internet.

b.

Interview, yaitu dengan melakukan konsultasi atau tanya jawab dengan

orang-orang yang memiliki pengetahuan dan wawasan yang berhubungan

dengan topik tugas akhir ini.

c.

Penelitian dan pengumpulan data statistik liga sepakbola Inggris dari

internet.

d.

Melakukan proses

Selection, yaitu mencari sekumpulan target data dari

database untuk dikenai proses Knowledge Discovery.

e.

Melakukan proses

Preprocessing, yaitu membersihkan dan menyiapkan

data dengan cara menghilangkan noise jika ada, menentukan strategi untuk

menangani kolom data yang hilang.

f.

Melakukan proses

Transformation, yaitu mengurangi dimensi, jumlah

variabel pada training data sehingga dapat dilakukan metode

Naive

Bayesian.

g.

Melakukan proses

Data Mining, yaitu pencarian pola pada training data

menggunakan metode Naive Bayesian.

h.

Melakukan proses Interpretation/Evaluation, yaitu menafsirkan pola yang

(23)

1.7

Sistematika Penulisan

BAB I PENDAHULUAN

Bab ini berisi penjelasan latar belakang penulis mengambil topik,

rumusan masalah, batasan masalah, tujuan penelitian, metode

penelitian, serta sistematika penulisan laporan.

BAB II LANDASAN TEORI

Bab ini berisi penjelasan tentang prinsip dan konsep dasar yang

diperlukan untuk memecahkan masalah yang dibahas pada Bab I.

BAB III ANALISIS DAN PERANCANGAN SISTEM

Bab ini membahas mengenai sumber data, use case, perancangan

dimensional database, kamus data, contoh perhitungan metode

Naive Bayessian, perancangan antar muka, dan

flowchart

aplikasi

ini.

BAB IV IMPLEMENTASI SISTEM

Bab ini berisi tentang penjelasan mengenai proses implementasi

aplikasi sesuai dengan analisa dan rancangan yang telah dibuat.

BAB V

ANALISIS HASIL IMPLEMENTASI

Bab ini berisi analisa mengenai aplikasi perangkat lunak yang telah

dibuat, serta kelebihan dan kekurangan aplikasi.

BAB VI PENUTUP

Bab ini berisi kesimpulan yang diperoleh dari keseluruhan proses

pembuatan tugas akhir ini, serta beberapa saran untuk

(24)

6

BAB II

LANDASAN TEORI

2.1.

Data Mining

Data mining juga dikenal dengan sebutan

Knowledge Discovery in

Databases (KDD) didefinisikan sebagai proses pengekstraksian secara implisit

yang tidak mudah, yang sebelumnya tidak diketahui dan merupakan informasi

yang potensial dari data

1

.

Data mining adalah sekumpulan aktifitas yang dilakukan untuk menggali

pengetahuan dari kumpulan data agar didapatkan model yang berarti. Dua tujuan

utama yang diperoleh dari data mining yaitu uraian (description) dan prediksi

(prediction). Oleh karena itu ada kemungkinan aktifitas data mining diarahkan ke

dalam salah satu dari dua kategori berikut :

a.

Data mining yang bersifat prediksi menghasilkan pemodelan dari sistem yang

diuraikan oleh keadaan data.

b.

Data mining yang bersifat deskripsi menghasilkan informasi yang baru dan

bersifat penting berdasarkan pada data yang tersedia.

Tujuan-tujuan tersebut dapat tercapai dengan penggunaan teknik data

mining. Berdasarkan tugas data mining, metode-metode yang biasa dipakai terdiri

atas:

a.

Classification adalah proses penemuan model yang bersifat prediksi dan

menggolongkan data item ke dalam beberapa kelas yang sudah dikenal.

1
(25)

b.

Regression adalah proses penemuan model yang bersifat prediksi dan mampu

memetakan data item dengan sebuah angka nyata (real value) dari nilai

variabel ramalan.

c.

Clustering adalah suatu tugas deskriptif umum yang dipakai orang untuk

mencari serta mengidentifikasi suatu himpunan yang terbatas untuk

cluster

kategorial sehingga dapat menguraikan data.

d.

Summarization adalah suatu tugas deskriptif tambahan yang melibatkan

metode untuk penemuan sebuah uraian ringkas dari keseluruhan atau sebagian

data.

e.

Dependecy Modeling adalah menemukan perubahan dan penyimpangan yang

paling penting dalam data.

Proses KDD dapat dilihat pada gambar 2.1 dengan langkah-langkah

sebagai berikut :

1.

Pertama-tama ialah mengembangkan sebuah pemahaman dari daerah aplikasi

yang

bersangkut

paut

dengan

pengetahuan

terlebih

dahulu

dan

mengidentifikasi tujuan dari proses KDD dari sudut pandang konsumen.

2.

Langkah yang kedua ialah membuat himpunan target data, yaitu dengan cara

memilih sebuah himpunan data, atau memfokuskan pada sebuah himpunan

bagian dari variabel atau sample data, yang padanya proses

discovery

dilakukan.

3.

Langkah ketiga ialah

Data Cleaning and Preprocessing. Langkah dasarnya

meliputi menghilangkan derau bila tepat, mengumpulkan informasi yang

(26)

8

untuk menangani field data yang hilang, dan menghitung informasi

berdasarkan waktu dan perubahan.

4.

Langkah keempat yaitu Data Reduction and Projection. Mencari ciri-ciri yang

berguna untuk merepresentasikan ketergantungan data dengan tujuan dari

tugas. Dengan pengurangan dimensi atau perubahan metode, jumlah variabel

yang efektif dibawah pertimbangan apakah dapat di dikurangi atau

representasi yang tidak berbeda untuk data dapat ditemukan.

5.

Langkah kelima ialah mencocokan tujuan dari proses KDD (pada langkah 1)

untuk sebuah metode data mining yang khusus. Contohnya,

summarization,

classification, regression, clustering, dan yang lainnya, seperti yang dijelaskan

oleh Fayyad, Piatetsky-Shapiro, and Smyth (1996).

6.

Langkah yang keenam ialah

Exploratory Analysis, Modelling and Hypotesis

Selection:

memilih algoritma data-mining dan menentukan metode untuk

digunakan pada pencarian pola data. Proses ini meliputi menentukan model

mana dan parameter mungkin perlu (contohnya; pemodelan dari data

kategorial berbeda dengan pemodelan dari vektor dari yang nyata) dan

mencocokan metode data-mining yang khusus dengan seluruh kriteria dari

proses KDD (contohnya, end user mungkin akan lebih tertarik dalam

memahami model daripada kemampuan memprediksinya).

7.

Langkah ketujuh ialah data mining: proses pencarian pola dari kepentingan

dalam sebuah bentuk representasi yang khusus atau sebuah himpunan dari

(27)

clustering. Pengguna dapat sangat membantu metode data-mining dengan cara

melakukan langkah sebelumnya dengan tepat.

8.

Langkah kedelapan ialah menafsirkan pola yang telah digali, mungkin

kembali ke salah satu dari langkah 1 sampai 7 iterasi lebih jauh. Langkah ini

dapat juga melibatkan visualisasi dari pola yang sudah digali dan pemodelan

atau visualisasi dari data yang berasal dari model-model yang sudah digali.

9.

Langkah kesembilan ialah melakukan tindakan pada

discovered

knowledge:

menggunakan

knowledge secara langsung, menggabungkan

knowledge ke

dalam sistem yang lain untuk tindakan lebih lanjut, atau melakukan

dokumentasi sederhana dan membuat laporan untuk pihak yang tertarik.

Proses ini juga meliputi pengecekan untuk memecahkan konflik potensial

dengan sebelumnya mempercayai knowledge.

Gambar 2.1 Tahap-tahap pada

KDD

2

2
(28)

10

2.2.

Classification

dalam data mining

Classification adalah proses penemuan model yang bersifat prediksi yang

menggolongkan data item ke dalam beberapa kelas yang sudah dikenal.

Classification

didasarkan pada algoritma induktif yang memberikan inputan

berupa kumpulan sampel yang terdiri dari atribut–atribut dan kelas–kelas yang

sama. Classification mempunyai beberapa macam metode yang dapat disesuaikan

dengan kebutuhan aplikasi yang akan dibangun.

Beberapa metode

classification

yang sering digunakan adalah sebagai

berikut:

a.

Classification by decision tree induction

Decision tree ialah sebuah flow chart yang seperti struktur pohon dimana

setiap titik merupakan atribut yang telah diuji. Setiap cabang merupakan

pembagian berdasarkan hasil uji dan titik akhir merupakan pembagian kelas

yang dihasilkan. Bagian awal dari pohon keputusan ini adalah titik akar. Pada

umumnya proses dari setiap pohon keputusan adalah mengadopsi strategi

pencarian

top down

untuk solusi ruang pencariannya. Pada proses

mengklasifikasikan sampel yang tidak diketahui, nilai atribut akar akan diuji

pada pohon keputusan dengan cara melacak jalur dari akar sampai titik akhir

dan kemudian akan diprediksikan kelas yang ditempati sampel baru itu.

b.

Naive Bayesian Classification

(29)

Naive Bayesian adalah klasifikasi model secara statistik.

Naive Bayesian

memprediksi dengan cara menghitung probabilitas tiap nilai pada atribut untuk

kelas tertentu, prediksi dilakukan dengan penghitungan secara statistik dengan

sumber nilai pada atribut dari data-data yang ingin diprediksi.

c.

Associative Classification Model

Dalam penelitian data mining aturan

associative

adalah sebuah aturan yang

sangat penting untuk memecahkan berbagai masalah dalam klasfikasi dan

memiliki aktivitas tinggi dan pengembangannya.

Associative Classification

Model

memiliki algoritma yang banyak dan masing–masing algoritma

memiliki kelebihan dan kekurangan maupun kecocokan untuk diterapkan pada

suatu kasus.

d.

Classification by neural network

Dasar dari neural network aslinya dikembangkan oleh ahli psikologis dan ahli

neurobiologist. Mereka menguji dan mengkomputasikan analogi dari saraf–

saraf. Secara garis besar

neural network

dikondisikan sekumpulan input

output yang berhubungan dan setiap hubungan telah memiliki nilainya

masing–masing. Ketika dalam prosesnya

neural network

menguji kesamaan

bobot–bobot nilai dengan tujuan memprediksikan label kelas yang benar untuk

sampel yang baru.

e.

K–Nearest Neighbour Classifiers

K–Nearest Neighbour Classifiers

didasarkan pada analogi. Sampel uji

digambarkan dengan atribut numerik n-dimensional. Tiap sampel mewakili

(30)

12

diberikan maka sebuah klasifier k–nearest neighbour

mencari bentuk untuk k

sampel uji yang paling dekat dengan sampel baru.

K–Nearest Neighbour

Classifiers

dapat

digunakan

untuk

memprediksi

sampel

uji dan

mengklasifikasikan ke dalam kelas dari titik didekatnya.

2.3.

Metode

Naive

Bayesian Classification

2.3.1.

Sejarah Thomas Bayes

Pendeta Thomas Bayes (1702-1761) adalah seorang ahli theologi dan

matematika. Dimotivasi oleh kepercayaan religiusnya, dia menggagas argumen

mengenai keberadaan Tuhan yang dikenal dengan

argument by design. Pada

dasarnya, isi argumen tersebut ialah : “tanpa mengasumsikan keberadaan akan

Tuhan, operasi dalam jagat raya adalah tidak sangat tidak mungkin, oleh karena

itu, selama operasi dalam jagat raya merupakan sebuah fakta, sangatlah mungkin

bahwa Tuhan memang ada”. Untuk mendukung argumen ini, Bayes menghasilkan

sebuah teori matematika umum yang memperkenalkan kemungkinan probabilistic

inferences (frekuensi yang muncul pada percobaan awal). Pusat dari teori ini ialah

teorema yang sekarang lebih dikenal sebagai Teorema Bayes (1764) yang

mengatakan bahwa fakta dari seorang mengkonfirmasi kemungkinan dari

hipotesis hanyalah tingkat kemunculan dari fakta tersebut dapat lebih mungkin

terjadi dengan asumsi dari hipotesis dibandingkan tanpa asumsi.

(31)

Statement umum dari Teorema Bayes adalah fakta dari seorang

mengkonfirmasi kemungkinan dari hipotesis hanyalah tingkat kemunculan dari

fakta tersebut dapat lebih mungkin terjadi dengan asumsi dari hipotesis

dibandingkan tanpa asumsi. Secara khusus didapatkan sebagai berikut :

)

(

)

(

)

|

(

)

|

(

D

P

h

P

h

D

P

D

h

P

=

...

Rumus 2.1

dimana :

D adalah himpunan training data.

h adalah hipotesis.

P(h | D) adalah posterior probability, Contoh : kondisi kemungkinan dari

hipotesis h setelah training data (evidence) muncul.

P(h) adalah

prior probability dari hipotesis

h. Kuantitas non-klassikal ini

sering ditemukan dengan melihat data dari masa lampau (atau dalam training

data).

P(D) adalah prior probability dari training data D. Kuantitas ini sering berupa

nilai yang konstan,

P

(

D

)

=

P

(

D

|

h

)

P

(

h

)

+

P

(

D

|

¬

h

)

P

(

¬

h

)

, dimana dapat

dikomputasi dengan mudah ketika kita menemukan bahwa

P

(

h

|

D

)

dan

)

|

(

h

D

P

¬

adalah 1.

P(D|h) adalah probabilitas dari D yang berasal dari hipotesis h, dan biasa

disebut dengan likelihood. Kuantitas ini mudah untuk dihitung selama

memberikan nilai 1 ketika D dan h konsisten, dan memberikan nilai 0 ketika

(32)

14

2.3.3.

Naive Bayesian

Dengan asumsi Naive Bayesian dimana atribut – atribut dari training data

dianggap terpisah dan independen maka rumus 2.1 berubah menjadi seperti

dibawah ini.

)

(

)

(

)

|

(

)...

|

(

)

|

(

)

|

(

1 2

D

P

h

P

h

D

P

h

D

P

h

D

P

D

h

P

=

n

...

Rumus 2.2

D adalah himpunan training data

h adalah hipotesis

P(h | D) adalah probabilitas dari hipotesis h setelah

evidence

D muncul atau

sering disebut posterior probability.

P(h) adalah probabilitas dari hipotesis

h sebelum

evidence

D muncul atau

sering disebut prior probability.

P(D) adalah probabilitas dari evidence D, dimana P(D) bernilai irrelevant atau

sama dengan kelas yang lain.

P(D1|h), P(D2|h),P(Dn|h) adalah probabilitas dari setiap D1,D2,Dn

untuk

hipotesis h biasa disebut dengan likelihood.

Oleh karena

P(D)

bernilai

irrelevant

maka hanya persamaan

)

(

)

|

(

)...

|

(

)

|

(

)

|

(

h

D

P

D

1

h

P

D

2

H

P

D

h

P

D

P

=

n

yang perlu digunakan untuk mencari

suatu peluang.

Jika ada

P(D

n

|h) yang memiliki nilai = 0, maka

P(h | D) = 0. Untuk

mencegah hal itu maka dilakukan penambahan nilai 1 ke setiap

evidence

dalam

perhitungan sehingga probabilitas tidak akan bernilai 0. Langkah ini sering

(33)

Jika dalam memprediksi ada evidence pada test data yang tidak diketahui,

(34)

16

BAB III

ANALISIS DAN PERANCANGAN SISTEM

3.1. Analisis Sistem

Sistem yang dibuat akan memiliki kemampuan untuk memprediksi

menggunakan metode Naive Bayesian Classification. Sistem ini tidak

memerlukan inputan sumber data dari user, karena diasumsikan sumber data

untuk memprediksi sudah tersimpan pada database. Sehingga user hanya perlu

memasukkan inputan berupa lamanya sumber data yang akan digunakan untuk

memprediksi dalam tahun. Pilihan inputan tersebut hanya ada lima, yaitu 5, 6, 7,

8, 9, 10 tahun sebelum musim 2006/2007. Selanjutnya program yang akan

meneruskan proses prediksi dengan bantuan dari user yang berupa inputan

penekanan tombol.

Sumber data yang digunakan dalam pembuatan sistem ini bersumber dari

internet, yaitu :

a.

Data hasil pertandingan liga utama Inggris dari musim 1904/1905

sampai dengan 2005/2006, ditambah dengan semua pertandingan pada

divisi-divisi yang lain dan kompetisi piala Liga dan FA sejak musim

1989/1990 sampai dengan 2005/2006 yang mengandung 2 klub divisi

utama musim 2006/2007 saling berlawanan. Data ini diambil dari

http://www.esportsdata.com

, format data aslinya berupa

image gif yang

(35)

maka data harus direkap secara manual ke dalam file dengan format

CSV, agar dapat dimigrasikan ke database.

b.

Data

keadaan

iklim/musim

di

Inggris

diambil

dari

http://www.woodlands-junior.kent.sch.uk/customs/questions/weather/seasons.htm.

c.

Data

jadwal

musim

2006/2007

yang

diambil

dari

http://www.premierleague.com

d.

Data

klub

diambil

dari

http://www.premierleague.com

dan

http://www.4thegame.com/football-statistics/

3.2. Use Case Diagram

(36)

18

3.3. Class Diagram

(37)

3.4. E-R Diagram

(38)

20

3.5. Desain Database

Sistem ini dirancang dengan 9 tabel, yaitu tabel Musim, Klub, Stadion,

Hasil_Pertandingan, Jadwal, Training, Cleaning, Naive_Bayes, Prediksi.

Tabel 3.1 Propertis dari tabel Musim

!

Tabel 3.2 Propertis dari tabel Klub

"

#

"

$

#

%

#

&

!

'

(39)

Tabel 3.3 Propertis dari tabel Stadion

'

Tabel 3.4 Propertis dari tabel Hasil_Pertandingan

(

$

(

$

Tabel 3.5 Propertis dari tabel Jadwal

(40)

22

Tabel 3.6 Propertis dari tabel Training

Tabel 3.7 Propertis dari tabel Cleaning

(41)

Tabel 3.8 Propertis dari tabel naive_bayes

+

)

!

,

-!

)

)

)

)

)

)

)

) )

)

)

)

)

)

)

)

) ! )

) !

)

) !

(42)

24

)

)

)

)

)

)

)

)

)

)

Tabel 3.9 Propertis dari tabel Prediksi

!

# )

(43)

-3.6.

Perhitungan menggunakan algoritma

Naive Bayesian

Contoh penerapan algoritma Naïve Bayesian untuk memprediksi hasil

pertandingan antara dua klub Arsenal dan Aston Villa dari salah satu sisi klub

yaitu Arsenal, ialah sebagai berikut.

Pada musim 2006/2007 kedua klub tersebut dijadwalkan dua kali bertemu

yaitu seperti pada tabel 3.10.

Tabel 3.10 Jadwal Arsenal vs Aston Villa Musim 2006/2007

$ )

.

/ 0

1

2

!

0

0

3

4 %

4

3

*

0

3

0

Langkah selanjutnya ialah :

1.

Proses Seleksi

Untuk dapat memprediksi, kita harus melakukan proses seleksi

terhadap data dari seluruh data hasil pertandingan yang ada di basis

data. Misalnya kita seleksi data berdasarkan 5 tahun sebelum musim

2006/2007, berarti awal seleksi kita mulai dari tanggal 1 Agustus 2001

karena kompetisi selalu dimulai setelah tanggal tersebut. Sampai

dengan tanggal 31 Mei 2006, sebab kompetisi selalu berakhir sebelum

tanggal tersebut.

Data training yang didapatkan dari proses seleksi diatas ialah

(44)

26

Tabel 3.11 Data Training Arsenal vs Aston Villa

dalam 5 tahun sebelum 2006/2007

*

.

5

5

/

2

!

0

0

3

"

4 %

3

*

0

3

0

/

2

!

0

0

3

"

& 0

"

3

*

0

3

0

4 0

"

2

!

0

0

3

6 $

&

3

*

0

3

0

1 7

&

2

!

0

0

3

"

8

8

3

*

0

3

0

"

"

8

3

*

0

3

0

0

1

2

!

0

0

3

8

2.

Proses Cleaning

Data training perlu di-cleaning agar dapat diproses pada tahap

selanjutnya. Untuk itu diperlukan sumber data yang lain untuk

membantu proses ini, sumber data itu ialah :

a.

Tabel Musim

Tabel ini berisi data-data musim yang terjadi di Inggris, hal yang

terpenting dari tabel ini ialah untuk mengetahui musim saat

pertandingan tersebut terjadi. Tabel ini sudah dijelaskan pada

(45)

b.

Tabel Klub

Tabel ini berisi data-data klub yang bersangkutan, hal yang

terpenting dari tabel ini ialah untuk mengetahui stadion tempat

bermarkasnya klub tersebut. Tabel ini sudah dijelaskan pada bagian

3.5.

Dengan bantuan kedua tabel itu, maka proses cleaning dapat

dilaksanakan. Langkahnya selanjutnya ialah sebagai berikut, untuk

setiap barisnya ulangi keempat langkah dibawah ini.

a.

Lakukan pencocokan isi field stadion dengan stadion milik klub

yang akan diprediksi, bila cocok maka field tempat pada tabel

clean diisi dengan Home, bila tidak cocok isi dengan Away.

b.

Lakukan pencocokan isi field tanggal_pertemuan dengan isi field

bulan_mulai dan bulan_selesai pada tabel musim, bila isi field

tanggal_ pertemuan berada diantara isi field bulan_mulai dan

bulan_selesai maka field musim pada tabel clean diisi dengan

nama_musim pada tabel musim sesuai dengan hasil pencocokan

tersebut.

c.

Lakukan perhitungan mencari selisih antara gol milik klub yang

akan diprediksi dengan gol milik klub lawannya berdasarkan pada

hasil pertandingan sebelumnya. Bila selisih lebih dari 0 maka isi

field hasil_sebelumnya dengan WIN, bila selisih sama dengan 0

maka isi field hasil_sebelumnya dengan DRAW, bila kurang dari 0

(46)

28

d.

Lakukan perhitungan mencari selisih antara gol milik klub yang

akan diprediksi dengan gol milik klub lawannya pada baris

tersebut. Bila selisih lebih dari 0 maka isi field hasil dengan WIN,

bila selisih sama dengan 0 maka isi field hasil dengan DRAW, bila

kurang dari 0 maka isi field hasil dengan LOSE.

Setelah proses cleaning selesai dilakukan maka terbentuklah

tabel cleaning antara Arsenal vs Aston Villa seperti pada tabel 3.12.

Tabel 3.12 Tabel Cleaning Arsenal vs Aston Villa

%

,%-

, -

2

.

! ,2.-

2

,2-9+

:(

27%:

(09

9+

.*(+ 5

090;

9+

9+

0

%

27%:

9+

9+

.*(+ 5

090;

9+

(09

. %%:(

27%:

(09

9+

9+

:(

090;

9+

9+

0

%

27%:

9+

9+

9+

:(

090;

9+

9+

9+

:(

090;

9+

(09

.*(+ 5

27%:

(09

9+

3.

Proses Penghitungan Prior Probability dan Likelihood

Berdasarkan pada tabel 3.12, kita dapat menghitung nilai prior

probability dan

likelihood. Dan hasil akhir penghitungannya ialah

(47)

a.

Prior Probability :

i.

Class (Hasil)

*,2<9+ - < 6=

*,2< (09- < =

*,2<'7.:- < =

b.

Likelihood :

i.

Tempat

*, <27%:>2 < 9+ - < 8=6

*, <090;>2 < 9+ - < "=6

*, <27%:>2 < (09- < =

*, <090;>2< (09- < =

*, <27%:>2 < '7.:- < =

*, <090;>2<'7.:- < =

ii.

Musim

*,%<.*(+ 5>2<9+ - < =6

*,%<9+

:(>2<9+ - < "=6

*,%<.*(+ 5 >2< (09- < =

*,%<9+

:(>2< (09- < =

*,%<.*(+ 5 >2<'7.:- < =

*,%<9+

:(>2<'7.:- < =

*,%<0

% >2<9+ - < =6

*,%<. %%:(>2<9+ - < =6

*,%<0

% >2< (09- < =

*,%<. %%:(>2< (09- < =

*,%<0

% >2<'7.:- < =

*,%<. %%:(>2<'7.:- < =

iii.

Hasil Sebelumnya

*,2.<9+ >2<9+ - < 8=6

*,2.<9+ >2< (09- < =

*,2.<9+ >2<'7.:- < =

*,2.< (09>2<9+ - < "=6

*,2.< (09>2< (09- < =

*,2.< (09>2<'7.:- < =

*,2.<'7.:>2<9+ - < =6

*,2.<'7.:>2< (09- < =

(48)

30

LAPLACE ESTIMATOR

Bila ada nilai yang bernilai 0, maka dilakukan penambahan

nilai satu pada setiap evidence sehingga tidak ada yang akan bernilai 0.

Berikut ialah nilai

prior probability

dan

likelihood

setelah laplace

estimator.

a.

Prior Probability :

i.

Class (Hasil)

*,2<9+ - < /= "

*,2< (09- < "= "

*,2<'7.:- < = "

b.

Likelihood :

i.

Tempat

*, <27%:>2 < 9+ - < 1=

*, <090;>2 < 9+ - < &=

*, <27%:>2 < (09- < =&

*, <090;>2< (09- < "=&

*, <27%:>2 < '7.:- < =

*, <090;>2<'7.:- < =

ii.

Musim

*,%<.*(+ 5>2<9+ - < "=

*,%<9+

:(>2<9+ - < &=

*,%<.*(+ 5 >2< (09- < =1

*,%<9+

:(>2< (09- < =1

*,%<.*(+ 5 >2<'7.:- < =&

*,%<9+

:(>2<'7.:- < =&

*,%<0

% >2<9+ - < "=

*,%<. %%:(>2<9+ - < =

*,%<0

% >2< (09- < =1

*,%<. %%:(>2< (09- < =1

*,%<0

% >2<'7.:- < =&

*,%<. %%:(>2<'7.:- < =&

iii.

Hasil Sebelumnya

*,2.<9+ >2<9+ - < 1=

*,2.<9+ >2< (09- < "=8

*,2.<9+ >2<'7.:- < ="

(49)

*,2.< (09>2< (09- < =8

*,2.< (09>2<'7.:- < ="

*,2.<'7.:>2<9+ - < =

*,2.<'7.:>2< (09- < =8

*,2.<'7.:>2<'7.:- < ="

4.

Proses Prediksi

Setelah mendapatkan nilai-nilai

prior probability

dan

likelihood, kita dapat memprediksi hasil pertandingan dari jadwal pada

tabel 3.10.

a.

Lakukan langkah-langkah seperti pada proses cleaning pada tabel

3.10 sehingga didapatkan bentuk jadwal seperti berikut :

Tabel 3.13 Tabel jadwal setelah di-

cleaning

$ )

%

,%-

, -

2

.

! ,2.-

2

,2-?

. %%:(

27%:

9+

@

;

.*(+ 5

090;

(09

@

b.

Kemudian hitunglah setiap kemungkinan sesuai dengan kondisi

terhadap class-nya untuk jadwal X.

i.

P(WIN|X)

= P(X|WIN) * P(H=WIN)

= P(M=SUMMER|H=WIN) * P(T=HOME|H=WIN) *

P(HS=WIN|H=WIN) * P(H=WIN)

(50)

32

= 27/715

≈

0.03776

ii.

P(DRAW|X)

= P(X|DRAW) * P(H=DRAW)

= P(M=SUMMER|H=DRAW) * P(T=HOME|H=DRAW) *

P(HS=WIN|H=DRAW) * P(H=DRAW)

= 1/6 * 1/4 * 3/5 * 3/13

= 3/520

≈

0.00577

iii.

P(LOSE|X)

= P(X|LOSE) * P(H=LOSE)

= P(M=SUMMER|H=LOSE) * P(T=HOME|H=LOSE) *

P(HS=WIN|H=LOSE) * P(H=LOSE)

= 1/4 * 1/2 * 1/3 * 1/13

= 1/312

≈

0.00321

Jadi prediksi untuk jadwal X ialah :

Prosentase prediksi WIN =

0.03776/(0.03776+0.00577+0.00321) *

100%

=

80.79 %.

Prosentase prediksi DRAW =

0.00577/(0.03776+0.00577+0.00321) *

100%

=

12.34 %.

(51)

c.

Ulangi langkah b untuk jadwal Y.

i.

P(WIN|Y)

= P(Y|WIN) * P(H=WIN)

= P(M=SPRING|H=WIN) * P(T=AWAY|H=WIN) *

P(HS=DRAW|H=WIN) * P(H=WIN)

= 3/12 * 4/10 * 4/11 * 9/13

= 18/715

≈

0.02517

ii.

P(DRAW|Y)

= P(Y|DRAW) * P(H=DRAW)

= P(M=SPRING|H=DRAW) * P(T=AWAY|H=DRAW) *

P(HS=DRAW|H=DRAW) * P(H=DRAW)

= 2/6 * 3/4 * 1/5 * 3/13

= 3/260

≈

0.01154

iii.

P(LOSE|Y)

= P(Y|LOSE) * P(H=LOSE)

= P(M=SPRING|H=LOSE) * P(T=AWAY|H=LOSE) *

P(HS=DRAW|H=LOSE) * P(H=LOSE)

= 1/4 * 1/2 * 1/3 * 1/13

(52)

34

Jadi prediksi untuk jadwal Y ialah :

Prosentase prediksi WIN =

0.02517/(0.02517+0.01154+0.00321) *

100%

=

63.07 %,

Prosentase prediksi DRAW =

0.01154/(0.02517+0.01154+0.00321)

* 100%

=

28.90 %,

Prosentase prediksi LOSE =

0.00321/(0.02517+0.01154+0.00321) *

100%

=

8.03 %,

Maka, Arsenal diprediksikan akan menang saat melawan Aston Villa

(53)

3.7. Desain User Interface

Dalam analisis sistem ini, user dapat melihat isi data-data pada tabel klub,

musim, jadwal dan hasil pertandingan. Pada program utama, user dapat

melakukan prediksi berdasarkan lama data yang dipilih untuk melakukan

prediksi.

a.

Form Menu Utama

(54)

36

b.

Form Browse Data Musim

(55)

c.

Form Browse Data Jadwal

(56)

38

d.

Form Browse Data Hasil Pertandingan

(57)

e.

Form Browse Data Klub

(58)

40

f.

Form Load Data

(59)

g.

Form Clean Data

(60)

42

h.

Form Prediksi

(61)

i.

Form Hasil Prediksi

(62)

44

j.

Form Analisa Prediksi

(63)

3.8.

Flowchart

yang diimplementasikan dalam sistem

(64)

46

Gambar 3.15

Flowchart

Proses Penghitungan

Prior Probability

(65)
(66)

48

Cara kerja sistem ini dapat digambarkan seperti pada gambar 3.14, yaitu

diawali dengan

user memilih lama data untuk menyaring sumber data untuk

memprediksi. Kemudian proses load data mentah dari basisdata akan dilakukan,

setelah itu dilakukan proses pembentukan data training, dan dilanjutkan dengan

proses cleaning untuk memudahkan pada proses selanjutnya.

Setelah data training sudah di-cleaning, maka proses penghitungan

prior

probability dan likelihood untuk setiap atribut dan kelas dapat dilakukan. Apabila

dalam proses ini ditemukan kemungkinan pada attribut atau class yang bernilai 0

maka dilakukan proses Laplace Estimator, seperti terlihat pada gambar 3.15.

Untuk memulai proses prediksi, diperlukan jadwal yang telah disesuaikan

bentuknya seperti data training yang disebut

data test. Selanjutnya tinggal

menghitung setiap kemungkinan menang, seri, atau kalah. Dari proses ini dapat

diperkirakan kemungkinan hasil akhir sebuah pertandingan. Hal tersebut terlihat

pada gambar 3.16.

Untuk memperkirakan klub mana yang peluangnya paling besar untuk juara,

harus dilakukan prediksi pada setiap jadwal pertandingan dari semua sisi klub.

Setelah setiap jadwal pada musim 2006/2007 selesai diprediksi maka dapat

disimpulkan klasemen akhir dari liga utama Inggris, dengan acuan jumlah poin

berdasarkan pada; jika menang maka poin = 3, jika seri maka point = 1, atau jika

kalah maka point = 0. Besar peluang sebuah klub juara dihitung dari jumlah poin

(67)

49

Pada bab ini akan dibahas bagaimana pengimplementasian sistem dari

tahap analisis dan desain ke dalam bahasa pemrograman, serta proses ilustrasi

pengujian sistem.

4.1.

Spesifikasi

Software

dan Hardware yang digunakan

Sistem ini dibuat dengan spesifikasi

Software

dan

Hardware

sebagai

berikut.

1.

Spesifikasi

Software

a.

Sistem Operasi Microsoft Windows XP Professional SP 2.

b.

IDE NetBeans 5.5.

c.

Basisdata MySQL 5.0.

d.

Bahasa Pemrograman J2SE, Persistence API.

2.

Spesifikasi

Hardware

a.

Processor AMD Athlon 64.

b.

Memori 768 MB.

(68)

50

4.2.

Koneksi Basisdata dengan sistem

Koneksi pada sistem ini menggunakan teknologi persistence dengan

library TopLink dari Oracle, namun sistem ini menggunakan MySQL 5.0 sebagai

basisdata. Tabel-tabel yang dibutuhkan untuk membangun sistem ini ialah sebagai

berikut.

1.

Tabel Klub

Tabel klub digunakan untuk menyimpan data-data setiap klub. Tabel

klub dibuat dengan sintaks SQL sebagai berikut:

CREATE TABLE `klub` ( `kode_klub` varchar(10) NOT NULL, `nama_klub` varchar(30) NOT NULL, `peringkat` int(2) NOT NULL default '0', `julukan` varchar(30) NOT NULL, `manajer` varchar(100) NOT NULL, `tahun_berdiri` varchar(4) NOT NULL default '0000', `divisi` varchar(100) NOT NULL, `logo` longblob NOT NULL, `kode_stadion` varchar(10) NOT NULL, PRIMARY KEY (`kode_klub`), KEY `FK_klub_1` (`kode_stadion`),

CONSTRAINT `FK_klub_1` FOREIGN KEY (`kode_stadion`) REFERENCES `stadion` (`kode_stadion`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1

2.

Tabel Stadion

Tabel stadion digunakan untuk menyimpan data-data setiap stadion.

Tabel stadion dibuat dengan sintaks SQL sebagai berikut:

(69)

3.

Tabel Musim

Tabel musim digunakan untuk menyimpan data-data musim yang

terjadi di Inggris. Tabel musim dibuat dengan sintaks SQL sebagai

berikut:

CREATE TABLE `musim` ( `kode_musim` varchar(10) NOT NULL, `nama_musim` varchar(10) NOT NULL, `bulan_mulai` varchar(20) NOT NULL, `bulan_selesai` varchar(20) NOT NULL, PRIMARY KEY (`kode_musim`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1

4.

Tabel Jadwal

Tabel jadwal digunakan untuk menyimpan data-data jadwal

pertandingan pada musim 2006/2007. Tabel jadwal dibuat dengan

sintaks SQL sebagai berikut:

CREATE TABLE `jadwal` ( `kode_jadwal` varchar(10) NOT NULL, `tanggal_pertandingan` date NOT NULL, `kode_stadion` varchar(10) NOT NULL, `kode_klub1` varchar(10) NOT NULL, `kode_klub2` varchar(10) NOT NULL, PRIMARY KEY (`kode_jadwal`), KEY `FK_jadwal_1` (`kode_klub1`), KEY `FK_jadwal_3` (`kode_stadion`), KEY `FK_jadwal_2` (`kode_klub2`),

CONSTRAINT `FK_jadwal_1` FOREIGN KEY (`kode_klub1`) REFERENCES `klub` (`kode_klub`),

CONSTRAINT `FK_jadwal_2` FOREIGN KEY (`kode_klub2`) REFERENCES `klub` (`kode_klub`),

CONSTRAINT `FK_jadwal_3` FOREIGN KEY (`kode_stadion`) REFERENCES `stadion` (`kode_stadion`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1

5.

Tabel Hasil Pertandingan

Tabel hasil pertandingan digunakan untuk menyimpan data-data hasil

pertandingan sebagai sumber data untuk memprediksi. Tabel hasil

pertandingan dibuat dengan sintaks SQL sebagai berikut:

CREATE TABLE `hasil_pertandingan` (

(70)

52

`kode_stadion` varchar(10) NOT NULL, `kode_klub1` varchar(10) NOT NULL, `kode_klub2` varchar(10) NOT NULL, `gol1` int(2) unsigned NOT NULL, `gol2` int(2) unsigned NOT NULL, PRIMARY KEY (`kode_pertandingan`), KEY `FK_hasil_pertandingan_1` (`kode_klub1`), KEY `FK_hasil_pertandingan_3` (`kode_stadion`), KEY `FK_hasil_pertandingan_2` (`kode_klub2`), CONSTRAINT `FK_hasil_pertandingan_1` FOREIGN KEY (`kode_klub1`) REFERENCES `klub` (`kode_klub`),

CONSTRAINT `FK_hasil_pertandingan_2` FOREIGN KEY (`kode_klub2`) REFERENCES `klub` (`kode_klub`),

CONSTRAINT `FK_hasil_pertandingan_3` FOREIGN KEY (`kode_stadion`) REFERENCES `stadion` (`kode_stadion`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1

6.

Tabel Training

Tabel training digunakan untuk menyimpan data traning yang

digunakan satu kali untuk satu proses prediksi. Tabel training dibuat

dengan sintaks SQL sebagai berikut:

CREATE TABLE `training` (

`id_training` int(10) unsigned NOT NULL, `tanggal_pertandingan` date NOT NULL, `kode_stadion` varchar(10) NOT NULL, `kode_klub1` varchar(10) NOT NULL, `kode_klub2` varchar(10) NOT NULL, `gol1` int(2) unsigned NOT NULL, `gol2` int(2) unsigned NOT NULL, PRIMARY KEY (`id_training`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1

7.

Tabel Cleaning

Tabel cleaning digunakan untuk menyimpan data dari proses cleaning

dari data training. Tabel ini digunakan satu kali untuk satu proses

prediksi. Tabel cleaning dibuat dengan sintaks SQL sebagai berikut:

CREATE TABLE `cleaning` (

`id_cleaning` int(11) unsigned NOT NULL auto_increment, `klub1` varchar(10) NOT NULL,

(71)

8.

Tabel Naïve Bayes

Tabel naïve bayes digunakan untuk menyimpan semua data dari proses

perhitungan

prior probability

dan

likelihood

dari data cleaning. Tabel

naïve bayes dibuat dengan sintaks SQL sebagai berikut:

CREATE TABLE `naive_bayes` (

`id` int(11) unsigned NOT NULL auto_increment, `kode_klub_prediksi` varchar(10) NOT NULL, `kode_klub_lawan` varchar(10) NOT NULL, `laplace_estimator` tinyint(1) NOT NULL,

`lama_data` int(11) NOT NULL, `banyak_sample` int(11) NOT NULL, `kelas_win` int(11) NOT NULL, `kelas_draw` int(11) NOT NULL, `kelas_lose` int(11) NOT NULL, `win_win` int(11) NOT NULL, `win_draw` int(11) NOT NULL, `win_lose` int(11) NOT NULL, `draw_win` int(11) NOT NULL, `draw_draw` int(11) NOT NULL, `draw_lose` int(11) NOT NULL, `lose_win` int(11) NOT NULL, `lose_draw` int(11) NOT NULL, `lose_lose` int(11) NOT NULL, `home_win` int(11) NOT NULL, `home_draw` int(11) NOT NULL, `home_lose` int(11) NOT NULL, `away_win` int(11) NOT NULL, `away_draw` int(11) NOT NULL, `away_lose` int(11) NOT NULL, `autumn_win` int(11) NOT NULL, `autumn_draw` int(11) NOT NULL, `autumn_lose` int(11) NOT NULL, `spring_win` int(11) NOT NULL, `spring_draw` int(11) NOT NULL, `spring_lose` int(11) NOT NULL, `summer_win` int(11) NOT NULL, `summer_draw` int(11) NOT NULL, `summer_lose` int(11) NOT NULL, `winter_win` int(11) NOT NULL, `winter_draw` int(11) NOT NULL, `winter_lose` int(11) NOT NULL, PRIMARY KEY (`id`),

KEY `FK_naive_bayes_1` (`kode_klub_prediksi`), KEY `FK_naive_bayes_2` (`kode_klub_lawan`), CONSTRAINT `FK_naive_bayes_1` FOREIGN KEY (`kode_klub_prediksi`) REFERENCES `klub` (`kode_klub`) ON UPDATE CASCADE,

CONSTRAINT `FK_naive_bayes_2` FOREIGN KEY (`kode_klub_lawan`) REFERENCES `klub` (`kode_klub`) ON UPDATE CASCADE

(72)

54

9.

Tabel Prediksi

Tabel prediksi digunakan untuk menyimpan semua hasil prediksi dari

semua jadwal. Tabel prediksi dibuat dengan sintaks SQL sebagai

berikut:

CREATE TABLE `prediksi` (

`kode_prediksi` varchar(10) NOT NULL, `kode_naive_bayesian` int(11) unsigned NOT NULL, `kode_jadwal` varchar(10) NOT NULL, `kode_klub` varchar(10) NOT NULL, `laplace_estimator` tinyint(1) NOT NULL, `prediksi_hasil` varchar(10) NOT NULL, `prediksi_poin` int(1) unsigned NOT NULL, PRIMARY KEY (`kode_prediksi`), KEY `FK_prediksi_1` (`kode_jadwal`), KEY `FK_prediksi_2` (`kode_klub`), KEY `FK_prediksi_naive` (`kode_naive_bayesian`), CONSTRAINT `FK_prediksi_1` FOREIGN KEY (`kode_jadwal`) REFERENCES `jadwal` (`kode_jadwal`),

CONSTRAINT `FK_prediksi_2` FOREIGN KEY (`kode_klub`) REFERENCES `klub` (`kode_klub`),

CONSTRAINT `FK_prediksi_naive` FOREIGN KEY (`kode_naive_bayesian`) REFERENCES `naive_bayes` (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1

Untuk menerapkan teknologi persistence, maka hal-hal yang dibutuhkan

ialah sebagai berikut.

1.

Persistence API

Bagian yang terpenting dalam pengimplementasian teknologi

persistence ini ialah adanya file persistence.xml di dalam package

(folder) META-INF dan file berekstensi dbschema.

Adapun file persistence.xml berisi sebagai berikut :

<?xml version="1.0" encoding="UTF-8"?>

<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">

<persistence-unit name="Persistence_SAPU" transaction-type="RESOURCE_LOCAL"> <provider>oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider</provider> <class>my.entity.Stadion</class>

(73)

<class>my.entity.Musim</class> <class>my.entity.NaiveBayes</class> <properties>

<property name="toplink.jdbc.user" value="agus"/> <property name="toplink.jdbc.password" value="agus"/>

<property name="toplink.jdbc.url" value="jdbc:mysql://localhost:3306/ta"/> <property name="toplink.jdbc.driver" value="com.mysql.jdbc.Driver"/> </properties>

</persistence-unit> </persistence>

File ini berfungsi sebagai deskriptor dari persistence itu sendiri,

file ini mencatat class yang berfungsi sebagai

mapping table

dari

tabel-tabel pada basis data. Selain itu juga mencatat nama user, password,

dan host dari basisdatanya, dan juga mencatat class yang digunakan

sebagai konektor dari Java ke MySQL.

Sedangkan file yang berekstensi dbschema dicatat dengan nama

Persistence_SAPU, tetapi dalam package META-INF file tersebut bernama

Persistence_SA.dbschema.

2.

Entity Class

Entity Class berfungsi sebagai

mapping table

dari tabel-tabel

pada basisdata. Contoh entity class ialah sebagai berikut :

package my.entity;

import java.io.Serializable; import java.util.Collection;

import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id;

import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.OneToMany; import javax.persistence.Table;

@Entity

@Table(name = "stadion")

public class Stadion implements Serializable {

@Id

@Column(name = "kode_stadion", nullable = false) private String kodeStadion;

@Column(name = "nama_stadion", nullable = false) private String namaStadion;

(74)

56

@Column(name = "lokasi") private String lokasi;

@OneToMany(cascade = CascadeType.ALL, mappedBy = "kodeStadion") private Collection<Klub> klubCollection;

public Stadion() { }

public Stadion(String kodeStadion) { this.kodeStadion = kodeStadion; }

public Stadion(String kodeStadion, String namaStadion) { this.kodeStadion = kodeStadion;

this.namaStadion = namaStadion; }

public String getKodeStadion() { return this.kodeStadion; }

public void setKodeStadion(String kodeStadion) { this.kodeStadion = kodeStadion;

}

public String getNamaStadion() { return this.namaStadion; }

public void setNamaStadion(String namaStadion) { this.namaStadion = namaStadion;

}

public Integer getKapasitas() { return this.kapasitas; }

public void setKapasitas(Integer kapasitas) { this.kapasitas = kapasitas;

}

public String getLokasi() { return this.lokasi; }

public void setLokasi(String lokasi) { this.lokasi = lokasi;

}

public Collection<Klub> getKlubCollection() { return this.klubCollection;

}

public void setKlubCollection(Collection<Klub> klubCollection) { this.klubCollection = klubCollection;

}

}

Class ini terbentuk dengan bantuan IDE NetBeans 5.5. Class ini

memiliki sifat yang mirip dengan tabel pada basisdata, karena pada

(75)

di tabel stadion. Bandingkan dengan perintah DDL untuk tabel stadion

dibawah ini.

CREATE TABLE `stadion` ( `kode_stadion` varchar(10) NOT NULL, `nama_stadion` varchar(100) NOT NULL, `kapasitas` int(10) unsigned default NULL, `lokasi` varchar(100) default NULL, PRIMARY KEY (`kode_stadion`) )

4.3.

Pembuatan Antar Muka

Antar muka atau lebih dikenal dengan sebutan GUI merupakan tampilan

yang langsung

Gambar

Gambar 3.1 Use Case Diagram
Gambar 3.2 Class Diagram
Gambar 3.3 E-R Diagram
Tabel 3.9 Propertis dari tabel Prediksi
+7

Referensi

Dokumen terkait

Pada penelitian ini partikel nano CaOZnO dengan perbandingan atom Ca/Zn 0,08 dan 0,25 telah berhasil disintesis dengan metode kopresipitasi dari campuran kalsium asetat

Pada penelitian ini akan menggunakan Template matching adalah salah satu teknik dalam pengolahan citra digital yang berfungsi untuk mencocokan tiap-tiap bagian

Penahanan di tempat asal dalam ayat ini merupakan penahanan di tempat pengumpulan, pengolahan, dan atau pengawetan antara lain seperti di rumah potong hewan pada waktu

Dengan berlakunya Peraturan Daerah ini, maka Peraturan Daerah Kota Yogyakarta Nomor 34 Tahun 2000 tentang Pembentukan, Susunan Organisasi dan Tata Kerja Badan Pengelolaan

Barangsiapa dengan sengaja melakukan penelitian dan pengembangan kesehatan dan penerapannya terhadap manusia, keluarga, atau masyarakat tanpa memperhatikan norma

Pengelolaan Wilayah Pesisir dan Pulau-Pulau Kecil terpadu merupakan pendekatan yang memberikan arah bagi pemanfaatan Sumber Daya Pesisir dan Pulau-Pulau Kecil secara

(1) Pelaksana Kegiatan Usaha Hulu dan Kegiatan Usaha Hilir yang telah diberikan Wilayah Kerja dan melakukan perolehan hak atas tanah sebagaimana dimaksud dalam

Tanpa menempatkan manusia dan takdirnya di bawah kesewenang-wenangan Tuhan tak dikenal dan membuat mereka takluk terhadap kekuatan tertinggi, agama ini meningkatkan kedudukan