BAB 3 ANALISIS DAN PERANCANGAN SISTEM
3.1. Analisis Sistem
Analisis sistem bertujuan untuk melakukan identifikasi persoalan-persoalan yang akan muncul dalam pembuatan sistem, hal ini dilakukan agar pada saat proses perancangan
aplikasi tidak terjadi kesalahan yang berarti, sehingga sistem yang dirancang dapat berjalan dengan baik, tepat guna dan ketahanan dari sistem tersebut akan lebih terjaga
serta selesai tepat pada waktu yang telah ditentukan. Ada dua tahapan analisis dalam tugas akhir ini yaitu: analisis masalah dan analisis persyaratan.
Sistem ini akan melakukan perhitungan dan memberikan informasi dalam penentuan posisi ideal pemain dalam sepak bola. Sistem ini dirancang dengan
menggunakan metode Naive Bayes.
3.1.1. Analisis Masalah
Analisis masalah merupakan proses mengidentifikasi sebab dan akibat dibangunnya sebuah sistem agar sistem yang akan dibangun tersebut dapat berjalan sebagaimana
mestinya sesuai dengan tujuan dari sistem itu. Dalam sepak bola, terdapat beberapa posisi yang diperankan oleh pemainnya. Saat ini masih banyak pelatih yang merasa
kesulitan dalam menentukan posisi ideal pemainnya. Sehingga banyak pemain yang tidak dapat mengeluarkan kemampuan terbaiknya dikarenakan penempatan posisi
yang kurang ideal bagi pemain tersebut. Oleh karena itu dibutuhkan sebuah sistem untuk memberikan informasi yang tepat dalam proses penentuan posisi ideal pemain
dalam sepak bola berdasarkan kemiripan data sebelumnya yang dipenuhi dengan atribut pemain dan juga posisinya dengan menggunakan metode Naive Bayes.
Diagram Ishikawa adalah diagram yang menunjukkan penyebab-penyebab dari sebuah event yang spesifik. Diagram ini juga disebut dengan diagram tulang ikan atau
Universitas Sumatera Utara
cause-and-effect diagram. Pemakaian diagram Ishikawa yang paling umum adalah untuk mencegah efek serta mengembangkan kualitas produk. Analisa masalah lebih
jelas melalui diagram Ishikawa yang dapat dilihat pada Gambar 3.1.
Gambar 3.1 Diagram Ishikawa
Berdasarkan Gambar 3.1 dapat diketahui bahwa permasalahan penentuan posisi ideal pemain dalam sepak bola dikarenakan banyaknya posisi pemain dan atribut pemain
yang ada dan juga belum adanya sebuah sistem informasi yang ditujukan untuk menyelesaikan masalah tersebut. Untuk itu dibuatlah Sistem Pendukung Keputusan
dengan menggunakan metode Naive Bayes pada platform Android.
3.1.2. Analisis Persyaratan
Analisis persyaratan terbagi dua bagian, yaitu persyaratan fungsional dan persyaratan nonfungsional. Persyaratan fungsional mendeskripsikan aktivitas yang disediakan
suatu sistem. Sedangkan persyaratan nonfungsional mendeskripsikan fitur, karakteristik dan batasan lainnya.
3.1.2.1. Persyaratan Fungsional
Kebutuhan fungsional yang harus dimiliki oleh sistem dalam menentukan posisi ideal pemain dalam sepak bola adalah :
1. Sistem dapat menerima inputan data pemain dan atribut.
2. Sistem dapat menampilkan informasi posisi ideal pemain yang sesuai
dengan atribut yang dimasukkan user, berdasarkan metode Naive Bayes.
Universitas Sumatera Utara
3.1.2.2. Persyaratan Nonfungsional
Kebutuhan nonfungsional mencakup karakteristik berikut: 1.
Performa Sistem yang akan dibangun harus dapat menampilkan hasil pemilihan
yang sesuai dengan apa yang dipilih. 2.
Mudah dipelajari dan digunakan Sistem yang akan dibangun harus memiliki tampilan yang user friendly
sehingga pengguna dapat mengakses sistem dengan mudah. 3.
Hemat biaya Sistem yang dibangun tidak memerlukan perangkat tambahan ataupun
perangkat pendukung lainnya yang dapat mengeluarkan biaya.
3.1.3. Pemodelan
Pemodelan sistem dilakukan untuk memperoleh gambaran yang lebih jelas tentang objek apa saja yang akan berinteraksi dengan sistem, serta hal-hal apa saja yang harus
dilakukan oleh sebuah sistem sehingga sistem dapat berfungsi dengan baik sesuai dengan kegunaannya.
Pada penelitian ini digunakan UML Unified Modeling Language sebagai bahasa pemodelan untuk mendesain dan merancang Sistem Pendukung Keputusan
penentuan posisi ideal pemain dengan metode Naive Bayes. Model UML yang digunakan antara lain use case diagram, activity diagram, dan sequence diagram.
3.1.3.1. Use Case Diagram
Use Case Diagram adalah sebuah diagram yang dapat merepresentasikan interaksi yang terjadi antara user dengan sistem. Use Case Diagram mendeskripsikan interaksi
tipikal antara pengguna sistem dengan sistem itu sendiri, dengan member sebuah narasi tentang bagaimana sistem tersebut digunakan. Use Case Diagram dari sistem
yang akan dibangun dapat ditunjukkan pada Gambar 3.2.
Universitas Sumatera Utara
Gambar 3.2 Use Case Diagram sistem
Berikut ini merupakan tabel dokumen naratif use case yang dapat dilihat pada tabel 3.1, tabel 3.2 dan tabel 3.3.
Tabel 3.1 Dokumentasi Naratif Use Case Database
Nama Use Case Database
Actor Pengguna
Description Use case ini menampilkan database pemain yang menjadi
patokan dalam perhitungan metode Naive Bayes. Pre-Condition
Aplikasi siap menerima inputan. Typical course
of Event Kegiatan Pengguna
Respon Sistem 1.
Menekan tombol
database. 2.
Menampilkan database
pemain. Alternatecourse
Aksi Actor Respon sistem
Post Condition Sistem telah melakukan proses pemilihan menu database.
Universitas Sumatera Utara
Tabel 3.2 Dokumentasi Naratif Use Case Proses Naive Bayes
Nama Use Case Proses Naive Bayes
Actor Pengguna
Description Use case ini menjelaskan proses penentuan posisi ideal
pemain yang akan digunakan dari sistem ini. Pre-Condition
Aplikasi siap menerima inputan.
Typical course of Event
Kegiatan Pengguna Respon Sistem
1. Menekan
tombol Proses Naive Bayes.
2. Menampilkan isi dari pilihan
proses Naive Bayes. 3.
Memasukkan data
untuk tiap-tiap atribut pemain.
4. Sistem
akan merespon
inputan yang diberi.
5. Menekan
tombol proses.
6. Sistem
akan melakukan
perhitungan dengan metode Naive Bayes.
7. Sistem akan menampilkan
hasil perhitungan metode Naive Bayes.
Alternatecourse Aksi Actor
Respon sistem Post Condition
Sistem telah melakukan proses penentuan posisi ideal pemain.
Tabel 3.3 Dokumentasi Naratif Use Case Help
Nama Use Case Help
Actor Pengguna
Description Use case ini menjelaskan cara penggunaan dari sistem ini
Pre-Condition Aplikasi siap menerima inputan.
Typical course of Event
Kegiatan Pengguna Respon Sistem
1. Menekan tombol Help. 2.
Menampilkan isi dari menu Help tersebut.
Alternatecourse Aksi Actor
Respon sistem Post Condition
Sistem telah melakukan proses pemilihan menu Help.
Universitas Sumatera Utara
3.1.3.2. Activity Diagram
Activity Diagram adalah teknik untuk menggambarkan logika procedural, jalur kerja sistem. Diagram ini menggambarkan berbagai alur kerja dalam sistem yang sedang
dirancang, bagaimana masing-masing alur kerja berawal, decision yang mungkin terjadi, dan bagaimana mereka aktifitas atau alur kerja berakhir. Proses penentuan
dengan metode Naive Bayes, dapat dilihat Activity Diagram pada Gambar 3.3.
Gambar 3.3 Activity Diagram
3.1.3.3. Sequence Diagram
Sequence Diagram merupakan diagram yang menunjukkan bagaimana kelompok- kelompok objek saling berkolaborasi dalam beberapa behavior. Sequence diagram
secara khusus, menjabarkan behavior sebuah skenario tunggal. Diagram tersebut menunjukkan sejumlah objek contoh dan pesan-pesan yang melewat objek-objek
tersebut didalam use case. Sequence diagram untuk proses penentuan posisi ideal pemain dengan metode Naive Bayes diperlihatkan pada Gambar 3.4.
Universitas Sumatera Utara
Gambar 3.4 Sequence Diagram
Pada tahap ini, yang dilakukan adalah membuka form penentuan posisi pemain, kemudian memasukkan data-data atribut pemain, yaitu Dribbling, Passing, Crossing,
Shooting, Accelaration, Agility, Stamina, Jumping, Aggression, Composure, Creativity, Decisioning, Positioning, Marking, dan Teamwork. Lalu sistem akan
mengakses ke database pemain yang telah dimasukkan kemudian melakukan perhitungan dengan metode Naive Bayes. Kemudian hasil perhitungan akan
ditampilkan secara berurutan dengan nilai terbaik dari beberapa posisi yang ada.
3.1.3.4. Kamus Data
Kamus data merupakan sebuah daftar yang mengatur semua komponen data yang berhubungan terhadap sistem dengan definisi singkat dan sejelas-jelasnya sehingga
pengguna dan analisis sistem dapat sama-sama mengerti tentang data masukan, keluaran, komponen penyimpanan dan kalkulasi lanjutan. Kamus data pada sistem
diperlihatkan pada Tabel 3.4.
Universitas Sumatera Utara
Tabel 3.4 Kamus Data Data
Field Type
Deskripsi
Tb_Pemain Id
Integer primary key No Id pemain
Nama Varchar 20
Nama pemain Dribbling
String Nilai Dribbling pemain
Passing String
Nilai Passing pemain Crossing
String Nilai Crossing pemain
Shooting String
Nilai Shooting pemain Accelaration
String Nilai Accelaration pemain
Agility String
Nilai Agility pemain Stamina
String Nilai Stamina pemain
Jumping String
Nilai Jumping pemain Aggression
String Nilai Aggression pemain
Composure String
Nilai Composure pemain Creativity
String Nilai Creativity pemain
Decisioning String
Nilai Decisioning pemain Positioning
String Nilai Positioning pemain
Marking String
Nilai Marking pemain Teamwork
String Nilai Teamwork pemain
Posisi String
Posisi pemain
3.1.3.5. Flowchart Sistem
Flowchart atau bagan alir adalah bagan chart yang menunjukkan alir flow didalam program atau prosedur sistem secara logika. Flowchart merupakan gambar atau bagan
yang memperlihatkan urutan dan hubungan antar proses beserta pernyataannya. Gambaran ini dinyatakan dengan simbol. Dengan demikian setiap simbol
menggambarkan proses tertentu. Sedangkan antara proses digambarkan dengan garis penghubung. Flowchart digunakan terutama untuk alat bantu komunikasi dan untuk
dokumentasi. Gambar 3.5 berikut ini merupakan Flowchart dari sistem yang akan dibangun.
Universitas Sumatera Utara
Gambar 3.5 Flowchart Sistem
Mulai
Insert, Update dan Delete Data
Pemain Data Pemain
Input Data Integer
Pemain
Proses Naive Bayes Hitung Jumlah dan
Probabilitas
Bandingkan hasil tiap class Probabilitas
P.Kiper P.Bek
P.Kiper P.Gelandang
P.Kiper P.Penyerang
P.Bek P.Gelandang
P.Bek P.Penyerang
P.Gelandang P.Penyerang
Kiper Bek
Gelandan
Penyeran Tidak
Tidak Tidak
Selesai Ya
Ya Ya
Konversi Data Integer
Input Data String
Pemain
Universitas Sumatera Utara
3.1.3.6. Pseudecode Program
Pseudecode adalah suatu algoritma yang untuk dapat menjelaskannya harus menggunakan bahasa tingkat tinggi. Bahasa tingkat tinggi adalah bahasa yang
dimengerti manusia dan dapat digambarkan dengan mudah sehingga dapat dipahami oleh manusia itu sendiri. Pseudecode dari Naive Bayes pada sistem ini dapat dilihat
pada Tabel. 3.5.
Tabel 3.5 Pseudecode Naive Bayes
1. double dri,pas,cro,sho,acc,agi,sta,jum,agg,com,cre,dec,pos,mar,tea
String dribbling, passing, crossing, shooting, accelaration, agility, stamina, jumping, aggression, composure, creativity, decisioning, positioning, marking,
teamwork String kategori,gambarprio
double sort[] String prioritas[]= new String[4]
String cari,s_tring,nilaikiper,nilaibek,nilaigelandang,nilaipenyerang,kesatu double nKiper,nBek,nGelandang,nPenyerang
double bykdatabase double hKiper,hBek,hGelandang,hPenyerang
Cursor cursor double swap
2. for i - 0 to 14
if i==0 cursor - db.rawQuerySELECT FROM tabel_biodata where
dribbling=+dribbling+ AND posisi=+kategori+, null if cursor=nullcursor.getCount0
dri - cursor.getCount else if cursor==null
dri - 0 end if
Universitas Sumatera Utara
else if i==1 cursor - db.rawQuerySELECT FROM tabel_biodata where
passing=+passing+ AND posisi=+kategori+, null if cursor=nullcursor.getCount0
pas - cursor.getCount else if cursor==null
pas - 0 end if
else if i==2 cursor - db.rawQuerySELECT FROM tabel_biodata where
crossing=+crossing+ AND posisi=+kategori+, null if cursor=nullcursor.getCount0
cro - cursor.getCount else if cursor==null
cro - 0 end if
else if i==3 cursor - db.rawQuerySELECT FROM tabel_biodata where
shooting=+shooting+ AND posisi=+kategori+, null if cursor=nullcursor.getCount0
sho - cursor.getCount else if cursor==null
sho - 0 end if
else if i==4 cursor - db.rawQuerySELECT FROM tabel_biodata where
accelaration=+accelaration+ AND posisi=+kategori+, null
if cursor=nullcursor.getCount0 acc - cursor.getCount
Universitas Sumatera Utara
else if cursor==null acc - 0
end if
else if i==5 cursor - db.rawQuerySELECT FROM tabel_biodata where
agility=+agility+ AND posisi=+kategori+, null if cursor=nullcursor.getCount0
agi - cursor.getCount else if cursor==null
agi - 0 end if
else if i==6 cursor - db.rawQuerySELECT FROM tabel_biodata where
stamina=+stamina+ AND posisi=+kategori+, null if cursor=nullcursor.getCount0
sta - cursor.getCount else if cursor==null
sta - 0 end if
else if i==7 cursor - db.rawQuerySELECT FROM tabel_biodata where
jumping=+jumping+ AND posisi=+kategori+, null if cursor=nullcursor.getCount0
jum - cursor.getCount else if cursor==null
jum - 0 end if
Universitas Sumatera Utara
else if i==8 cursor - db.rawQuerySELECT FROM tabel_biodata where
aggression=+aggression+ AND posisi=+kategori+, null if cursor=nullcursor.getCount0
agg - cursor.getCount else if cursor==null
agg - 0 end if
else if i==9 cursor - db.rawQuerySELECT FROM tabel_biodata where
composure=+composure+ AND posisi=+kategori+, null if cursor=nullcursor.getCount0
com - cursor.getCount else if cursor==null
com - 0 end if
else if i==10 cursor - db.rawQuerySELECT FROM tabel_biodata where
creativity=+creativity+ AND posisi=+kategori+, null if cursor=nullcursor.getCount0
cre - cursor.getCount else if cursor==null
cre - 0 end if
else if i==11 cursor - db.rawQuerySELECT FROM tabel_biodata where
decisioning=+decisioning+ AND
posisi=+kategori+, null
if cursor=nullcursor.getCount0 dec - cursor.getCount
Universitas Sumatera Utara
else if cursor==null dec - 0
end if
else if i==12 cursor - db.rawQuerySELECT FROM tabel_biodata where
positioning=+positioning+ AND
posisi=+kategori+, null
if cursor=nullcursor.getCount0 pos - cursor.getCount
else if cursor==null pos - 0
end if
else if i==13 cursor - db.rawQuerySELECT FROM tabel_biodata where
marking=+marking+ AND posisi=+kategori+, null if cursor=nullcursor.getCount0
mar - cursor.getCount else if cursor==null
mar=0 end if
else cursor - db.rawQuerySELECT FROM tabel_biodata where
teamork=+teamwork+ AND posisi=+kategori+, null if cursor=nullcursor.getCount0
tea - cursor.getCount else if cursor==null
tea - 0 end if
end if end for
Universitas Sumatera Utara
3. for i - 0 to 3
if i==0 kategori - kiper
cursor - db.rawQuerySELECT FROM tabel_biodata where posisi=+kategori+, null
if cursor=nullcursor.getCount0 nKiper - cursor.getCount
else if cursor==null nKiper - 0
end if hKiper - drinKiperpasnKipercronKipershonKiperaccnKiper
aginKiperstanKiperjumnKiperaggnKipercomnKiper crenKiperdecnKiperposnKipermarnKiperteanKiper
nKiperbykdatabase sort[0] - hKiper
darikiper - Skor Kiper= +df.formathKiper
else if i==1 kategori - bek
cursor - db.rawQuerySELECT FROM tabel_biodata where posisi=+kategori+, null
if cursor=nullcursor.getCount0 nBek - cursor.getCount
else if cursor==null nBek - 0
end if hBek
- drinBekpasnBekcronBekshonBekaccnBek
aginBekstanBekjumnBekaggnBekcomnBekcrenBek decnBekposnBekmarnBekteanBeknBekbykdatabase
sort[1] - hBek daribek - Skor Bek= +df.formathBek
Universitas Sumatera Utara
else if i==2 kategori - gelandang
cursor - db.rawQuerySELECT FROM tabel_biodata where posisi=+kategori+, null
if cursor=nullcursor.getCount0 nGelandang - cursor.getCount
else if cursor==null nGelandang - 0
end if hGelandang
- drinGelandangpasnGelandangcronGelandang
shonGelandangaccnGelandangaginGelandangstanGelandang jumnGelandangaggnGelandangcomnGelandangcrenGelandang
decnGelandangposnGelandangmarnGelandangteanGelandang nGelandangbykdatabase
sort[2] - hGelandang darigelandang - Skor Gelandang = +df.formathGelandang
else kategori - penyerang
cursor - db.rawQuerySELECT FROM tabel_biodata where posisi=+kategori+, null
if cursor=nullcursor.getCount0 nPenyerang - cursor.getCount
else if cursor==null nPenyerang - 0
end if
hPenyerang -
drinPenyerangpasnPenyerangcronPenyerang shonPenyerangaccnPenyerangaginPenyerangstanPenyerang
jumnPenyerangaggnPenyerangcomnPenyerangcrenPenyerang decnPenyerangposnPenyerangmarnPenyerangteanPenyerang
nPenyerangbykdatabase
Universitas Sumatera Utara
sort[3] - hPenyerang daripenyerang - Skor Penyerang= +df.formathPenyerang
end if end for
4. for c - 0 to 3
for d - 0 to 4-c-1 if sort[d] sort[d+1]
swap - sort[d] sort[d] - sort[d+1]
sort[d+1] - swap end if
end for end for
5. for j - 0 to 3
ifsort[j]==hKiper nilaikiper - kiper
prioritas[j] - kiper dengan skor +df.formathKiper else if sort[j]==hBek
nilaibek - bek prioritas[j] - bek dengan skor +df.formathBek
else if sort[j]==hGelandang nilaigelandang - gelandang
prioritas[j] - gelandang dengan skor +df.formathGelandang else
nilaipenyerang - penyerang prioritas[j] - penyerang dengan skor +df.formathPenyerang
end if end for
Universitas Sumatera Utara
6. if sort[0]==hKiper
gambarprio - kiper else if sort[0]==hBek
gambarprio - bek else if sort[0]==hGelandang
gambarprio - gelandang else if sort[0]==hPenyerang
gambarprio - penyerang end if
Keterangan : 1.
Inisialisasi variabel. 2.
Pengambilan nilai untuk setiap atribut-atribut pemain berdasarkan posisinya. 3.
Pengambilan jumlah pemain untuk setiap posisi Kiper, Bek, Gelandang dan Penyerang. Dan melakukan perhitungan skor untuk masing-masing posisi.
4. Pengurutan berdasarkan skor tertinggi hingga terendah.
5. Pengembalian skor ke tiap-tiap posisi.
6. Pengambilan gambar berdasarkan posisi dengan skor tertinggi.
3.2. Perancangan Sistem
Proses perancangan antarmuka interface sebuah sistem adalah proses yang cukup penting dalam perancangan sebuah sistem. Merancang antarmuka merupakan bagian
yang paling penting dari merancang sebuah sistem. Sebuah antarmuka harus dirancang dengan memperhatikan faktor pengguna sehingga sistem yang dibangun
dapat memberikan kenyamanan dan kemudahan untuk digunakan oleh pengguna.
Universitas Sumatera Utara
3.2.1. Menu Utama
Perancangan Menu Utama dapat dilihat pada gambar 3.6.
Gambar 3.6 Rancangan Menu Utama
Tabel 3.6 Keterangan gambar rancangan Menu Utama
No. Keterangan
1. Imagebutton untuk menampilkan menu Database
2. Imagebutton untuk menampilkan menu Proses Naive Bayes
3. Imagebutton untuk menampilkan menu Help
4. Imagebutton untuk menampilkan menu About
Universitas Sumatera Utara
3.2.2. Menu Database