Bab 4 Hasil dan Pembahasan 5.1
Implementasi Sistem ini berjalan pada sistem komputer dengan kebutuhan
berupa perangkat keras dan perangkat lunak, untuk perangkat keras tidak dibatasi batas minimum kecuali komputer tersebut dijadikan sebagai server karena perlu ada pertimbangan kebutuhan minimal agar SQL Sever 2008 bisa berjalan dengan baik. Dalam pengujian sistem ini penulis menggunakan spesifikasi perangkat keras sebagai berikut : 1. Netbook dengan prosesor Intel Atom 1.6 Ghz 2. RAM 1 GB 3. Hardisk 160 GB 4. Monitor dengan resolusi 1024 x 600 pixels Sedangkan untuk kebutuhan perangkat lunak adalah sebagai berikut : 1. Sistem Operasi Sistem Operasi yang digunakan untuk uji sebagai server adalah Microsoft XP Profesional SP 2. 2. Database Basis data yang digunakan adalah SQL Server 2008 XE sebagai tempat penyimpanan data dari sistem yang dibangun. 3. Web Server XAMPP-Win32-1.7.4 for Windows sebagai web server yang dapat berjalan di sistem operasi Windows. 46
47
4. Power Design 12 Digunakan untuk mendesain PDM serta menggenerate PDM ke kode SQL Server 2008. 5. Macromedia Dreamweaver MX 2004 Digunakan sebagai editor kode program dan tampilan sistem. 6. Microsoft Office Visio 2003 Digunakan untuk mendesain DFD 4.1.1 Implementasi Sistem Sistem ini memiliki banyak form, view, dan procces sehingga dalam pembahasan implementasi sistem hanya beberapa form, view, dan procces yang akan dibahas oleh penulis. 1. Implementasi Promethee Promethee disederhanakan dalam bentuk proses-proses yang spesifik berupa fungsi, yang dimaksud fungsi disini merupakan kode program yang dikhususkan untuk mengolah data dengan tujuan spesifik berdasarkan pemberian nilai yang dipicu oleh sistem itu sendiri berdasarkan pemodelan tertentu atau juga dipicu oleh user. a. Implementasi Fungis Preferensi Fungsi preferensi digunakan untuk membandingkan nilai dari 1 (satu) alternatif terhadap alternatif yang lain hingga tidak ada lagi alternatif yang tidak dibandingkan kecuali alternatif itu sendiri, perbandingan ini dilakukan untuk setiap kriteria, dimana setiap kriteria sekurang-kurangnya memiliki tipe preferensi dan nilai max
48
atau min, selebihnya nilai kriteria sangat tergantung pada kasus yang dimodelkan. Nilai perbandingan antar kriteria akan dijumlahkan dan membentuk metriks Promethee. Kode Program 4.1 merupakan potongan program dari Fungsi Preferensi. Kode Program 4.1 Fungsi Preferensi function PREFERENSI($id_alternatif1, $ab){ $id_session=session_id();
$id_alternatif2,
if($id_alternatif1==$id_alternatif2){ return 0; } else{ $q=mssql_query("select * from kriteria where status='Aktif'"); if(mssql_num_rows($q)>0){ $n=mssql_num_rows($q); while($h=mssql_fetch_array($q)){ $k[]=$h['ID_KRITERIA']; $minmax[]=$h['MINMAX']; $t[]=$h['TYPE_PREFERENSI']; $nilai_p[]=$h['NILAI_P']; $nilai_q[]=$h['NILAI_Q']; $nilai_gausian[]=$h['NILAI_QUASIAN']; } } for($i=0;$i<$n;$i++){ $q=mssql_query("select MASTER_NILAI.NILAI from MASTER_NILAI inner join NILAI on MASTER_NILAI.ID_MASTER_NILAI= NILAI.ID_MASTER_NILAI inner join MASTER_CATATAN on MASTER_CATATAN.ID_CATATAN= MASTER_NILAI.ID_CATATAN inner join SEKOLAH on SEKOLAH.NO_SEKOLAH=MASTER_CATATAN.NO_SEKOLAH inner join KRITERIA on KRITERIA.ID_KRITERIA= MASTER_NILAI.ID_KRITERIA where kriteria.status= 'Aktif' and SEKOLAH.NO_SEKOLAH= '".$id_alternatif1."'and kriteria.id_kriteria= ".$k[$i].""); if(mssql_num_rows($q)>0){ $h=mssql_fetch_array($q); $a1=$h[0]; }else{ $a1=0; }
49
$q=mssql_query("select MASTER_NILAI.NILAI from MASTER_NILAI inner join NILAI on MASTER_NILAI.ID_MASTER_NILAI= NILAI.ID_MASTER_NILAI inner join MASTER_CATATAN on MASTER_CATATAN.ID_CATATAN= MASTER_NILAI.ID_CATATAN inner join SEKOLAH on SEKOLAH.NO_SEKOLAH=MASTER_CATATAN.NO_SEKOLAH inner join KRITERIA on KRITERIA.ID_KRITERIA= MASTER_NILAI.ID_KRITERIA where kriteria.status= 'Aktif'and SEKOLAH.NO_SEKOLAH= '".$id_alternatif2."' and kriteria.id_kriteria= ".$k[$i].""); if(mssql_num_rows($q)>0){ $h=mssql_fetch_array($q); $a2=$h[0]; }else{ $a2=0; } $cal=false; if($minmax[$i]=='min'){ if($a2 <= $a1){ $pref1=0; $cal=true; }else{ $pref1=1; $pref2=0; $cal=false; } }else{ if($a2 >= $a1){ $pref1=0; $cal=true; }else{ $pref1=1; $pref2=0; $cal=false; } } if($cal==true){ $d=$a1 - $a2; //echo "Hasil : $a1 - $a2 = ".$d."
"; switch($t[$i]){ case 1: if($d==0){$pref2=0;}else{$pref2=1;} break; case 2: if($d >= ($nilai_q[$i] * -1) and $d <= $nilai_q[$i]){$pref2=0;} else {$pref2=1;} break; case 3:
50
if($d >= ($nilai_p[$i] * -1) and $d <= $nilai_p[$i]){$pref2=$d/$nilai_p[$i];} else{$pref2=1;} break; case 4: if($d >= $nilai_q[$i] and $d <= $nilai_p[$i] ){ $pref2=0.5; }elseif($d <= $nilai_q[$i]){ $pref2=0; }else{ $pref2=1; } break; case 5: if($d > $nilai_q[$i] and $d <= $nilai_p[$i]){$pref2=($d-$nilai_q[$i]) /($nilai_p[$i]-$nilai_q[$i]); }elseif($d <= $nilai_q[$i]){ $pref2=0; }else{ $pref2=1; } break; case 6: $pref2=1-( pow(-1*$d,2) / 2*pow($nilai_gausian[$i],2)); break; } } $tot_pref1=$tot_pref1 + $pref1; $tot_pref2=$tot_pref2 + $pref2; } } if($ab==true){ return $tot_pref1/$n; }else{ return $tot_pref2/$n; } }
b. Implementasi LF Fungsi LF digunakan untuk menghitung hasil perbandingan antara suatu
alternatif terhadap alternatif yang lain untuk semua
kriteria. Kode Program 4.2 merupakan potongan kode program LF.
51
Kode Program 4.2 Fungsi Leafing Flow function LF($id_alternatif){ $q=mssql_query("select * from sekolah order by nama_sekolah"); if(mssql_num_rows($q) > 0){ $j=mssql_num_rows($q); while($h=mssql_fetch_array($q)){ $arr_alternatif_id[]=$h['NO_SEKOLAH']; } } for($i=0;$i
$ii){ $n=PREFERENSI($arr_alternatif_id[$ii] ,$arr_alternatif_id[$i],false); }else{$n=0;} $tot_n=$tot_n + $n; } } } return $tot_n; }
c. Implementasi EF Fungsi EF merupakan kebalikan dari LF, EF digunakan untuk menghitung hasil perbadingan antara alternatif lainya terhadap suatu alternatif untuk semua kriteria. Kode Program 4.3 merupakan potongan kode program EF. Kode Program 4.3 Fungsi Entering Flow function EF($id_alternatif){ $q="select * from sekolah order by nama_sekolah"; $q=mssql_query($q); if(mssql_num_rows($q) > 0){ $j=mssql_num_rows($q); while($h=mssql_fetch_array($q)){ $arr_alternatif_id[]=$h['NO_SEKOLAH'];
52
} } for($i=0;$i$ii){ $n=PREFERENSI($arr_alternatif_id [$ii],$arr_alternatif_id[$i],false); }else{ $n=0; } $tot_n=$tot_n + $n; } } } return $tot_n; }
d. Implementasi NF Fungsi NF merupakan pengurangan antara nilai LF dengan EF. NF merupakan urutan lengkap dari metode Promethee dan urutan ini akan dijadikan sebagai acuan dalam pengambilan keputusan dengan menggunakan metode Promethee. Kode Program 4.4 merupakan potongan kode program NF. Kode Program 4.4 Fungsi Net Flow function NF($id_alternatif){ $q="select * from sekolah order by nama_sekolah"; $q=mssql_query($q); if(mssql_num_rows($q) > 0){ $j=mssql_num_rows($q); while($h=mssql_fetch_array($q)){ $arr_alternatif_id[]=$h['NO_SEKOLAH']; } } for($i=0;$i
53
2. Form dan kode Form Form merupakan fasilitas inputan yang disediakan kepada user agar user dapat memberikan nilai tertentu sesuai dengan format dan tujuan yang telah ditentukan. a. Form Login Sistem ini hanya yang memiliki hak akses saja yang dapat menggunakannya, karena sifatnya proteksi hak akses maka bukan hanya admin saja yang wajib login tetapi semua user untuk dapat menggunakan sistem ini diharuskan login. Hak akses dalam sistem ini ada 2(dua) yaitu admin dan Staf Bidang Pendidikan, admin dapat melakukan apa saja terhadap sistem sedangkan Staf Bidang Pendidikan terbatas pada job description.
Gambar 4.1 Form Login
Gambar 4.1 merupakan tampilan pertama dari sistem jika session belum ada. Untuk mulai menggunakan sistem ini, user harus login terlebih dahulu dengan cara memasukan username dan password. Jika login valid, maka sistem akan menampilkan halaman utama berdasarkan hak akses user. Meskipun memiliki 2(dua) user dengan hak akses berbeda namun dalam Form Login tidak tersedia pilihan hak
54
akses, hal ini dikarenakan hak akses user sudah ditentukan ketika data user diciptakan. Penanganan login dibuat untuk melakukan validasi user. Adapun penanganan login dapat dilihat sepeti pada Kode Program 4.5. Pertama-tama sistem melakukan pengecekan username dan password sudah diisi atau belum, jika belum maka akan ada pesan bahwa username dan password masih kosong, jika sudah diisi maka data tersebut akan dicocokan ke database, jika hasil pencocokan salah maka akan muncul pesan username atau password tidak cocok seperti pada Gambar 4.2.
Gambar 4.2 Pesan Kesalahan username dan password
Jika cocok maka akan tampil halaman utama user sesuai dengan otoritas user yang bersangkutan. Kode Program 4.5 Kode Program Aksi Login
MAAF! Username anda masih
55
kosong "; } elseif($b=="") { echo "
MAAF! Password anda masih kosong
"; } else { $query=mssql_query("select * from user_sistem where NIP='$a' and password='$b'"); $cek_admin=mssql_num_rows($query); $hs=mssql_fetch_array($query); if($cek_admin > 0) { session_start(); session_register("password"); session_register("id"); $_SESSION[password]=$hs[PASSWORD]; $_SESSION[id]=$hs[NIP]; echo"<script>window.location='index.php' "; } else { echo"
Username dan Password tidak cocok
"; } } } ?> echo "
MAAF! Password anda masih kosong
"; } else { $query=mssql_query("select * from user_sistem where NIP='$a' and password='$b'"); $cek_admin=mssql_num_rows($query); $hs=mssql_fetch_array($query); if($cek_admin > 0) { session_start(); session_register("password"); session_register("id"); $_SESSION[password]=$hs[PASSWORD];
56
$_SESSION[id]=$hs[NIP]; echo"<script>window.location='index.php' "; } else { echo"
Username dan Password tidak cocok
"; } } } ?>
b. Form Input Catatan Form Input Catatan digunakan untuk menginputkan nilai dari kondisi sekolah berdasarkan hasil survei. Form Input Catatan dapat dilihat pada Gambar 4.3.
Gambar 4.3 Form Input Catatan
57
Dalam form ini semua data harus diisi, jika ada data inputan yang kosong maka akan tampil pesan kesalahan seperti pada Gambar 4.4.
Gambar 4.4 Pesan Kesalahan Input Nilai
Untuk nama sekolah dilakukan validasi ke database apakah nama sekolah tersebut sudah ada dalam tabel Sekolah atau belum, jika belum maka akan muncul pesan kesalahan seperti pada Gambar 4.5.
Gambar 4.5 Pesan Kesalahan Sekolah Belum Terdaftar
Jika semua data inputan telah diisi dengan benar maka datadata tersebut akan disimpan di tabel Master_catatan, tabel Master_nilai, dan tabel Nilai. Kode Program 4.6 merupakan kode dari validasi dan aksi Form Input Catatan. Untuk penyimpanan data di
58
tabel Nilai sistem terlebih dahulu melakukan pengecekan apakah data dengan No_Sekolah berdasarkan query antara tabel Master_catatan, Master_nilai, dan Nilai lebih besar dari nol atau dinyatakan ada, jika sudah ada maka sistem akan menghapus terlebih dahulu nilai tersebut kemudian menambahkan dengan data yang baru sehingga hanya data terbaru dari masing-masing sekolah yan tersedia di tabel Nilai. Data yang terdapat dalam tabel Nilai akan menjadi sumber data dalam pemodelan Promethee sedangkan data yang diinputkan pada Tabel Master_catatan akan menjadi data history dari masingmasing sekolah. Kode Program 4.6 Aksi Input Catatan 0) { if($c!="" && $d!="" && $e!="" && $f!="" && $g!="" && $h!="") { $aray=array($id_cat,$b,$_SESSION[id], $_POST[c],$d,$e,$f,$g,$h,$i,$w,$j); tambah_data($aray,$y); $c="c"; $q=mssql_query("select * from kriteria"); $q1=mssql_query("select * from nilai where no_sekolah='$b'"); $c_q1=mssql_num_rows($q1); if($c_q1>0) {
59
$del_nilai=mssql_query("delete from nilai where no_sekolah='$b'"); if($del_nilai) { for($i=1; $i<=mssql_num_rows($q); $i++) { $m=mssql_query("select max(id_nilai) from nilai"); $h=mssql_fetch_array($m); $id_nilai=$h[0]+1; $nilai=KONVERSI($_POST[$c]); $array=array($id_nilai,$b,$i,$nilai, $id_session); tambah_data($array,$x); $c++; echo "<script>location='index.php?page= Promethee';"; } } } for($i=1; $i<=mssql_num_rows($q); $i++){ $m=mssql_query("select max(id_nilai) from nilai"); $h=mssql_fetch_array($m); $id_nilai=$h[0]+1; $nilai=KONVERSI($_POST[$c]); $array=array($id_nilai,$b,$i,$nilai, $id_session); tambah_data($array,$x); $c++; echo "<script>location='index.php?page= Promethee';"; } } else{ echo "
"; } } else{ echo "
Sekolah tersebut tidak terdaftar!.
"; } } ?>
60
c. Form Update Kriteria Form Update Kriteria merupakan form untuk melakukan pengaturan tipe preferensi, minimum atau maksimum, penentuan nilai P atau Q maupun nilai guasian. Pengaturan ini dilakukan berdasarkan suatu kriteria, misalkan kriteria Ruang Kelas dimana fungsi max atau min adalah maksimum sehingga semakin besar nilainya maka semakin baik namun jika fungsi max atau min adalah minimum maka semakin kecil nilai dari suatu alternatif maka semakin baik. Form untuk dapat mengatur nilai kriteria seperti pada Gambar 4.6.
Gambar 4.6 Form Update Kriteria
Kode program dari Form Update Kriteria dapat dilihat pada Kode Program 4.7. Kode Program 4.7 Kode Program Aksi Update Kriteria
61
$b=$_POST[b]; $c=$_POST[c]; $d=$_POST[d]; $e=$_POST[e]; $f=$_POST[f]; $ket=""; $id=$_POST[id]; if($a!="" || $b!="" || $c!=""){ $sql=mssql_query("update kriteria set nama_kriteria='$a', minmax='$b', type_preferensi =$c, nilai_p=$d, nilai_q=$e, NILAI_QUASIAN=$f where id_kriteria=$id"); if($sql){ echo "<script>alert('Sukses update'); location='?page=kriteria';"; } else{ echo "
"; } } else{ echo "
Data wajib tidak bisa kosong
"; } } ?>
3. View a. Halaman Catatan Sekolah Halaman Catatan Sekolah menampilkan seluruh data catatan sekolah yang pernah diinputkan oleh user kecuali yang telah dihapus. Pada halaman ini juga kita dapat melihat secara umum kondisi masing-masing sekolah dari tahun ke-tahun. Untuk melihat pencatatan sekolah secara detail user dapat memilih link nama sekolah yang akan dilihat. Halaman Catatan Sekolah dapat dilihat pada Gambar 4.7. Dalam Halaman Catatan Sekolah juga disediakan link untuk update dan delete. Untuk link delete hanya akan tampil jika user yang
62
memiliki hak akses sebagai admin sedangkan untuk link update staf bidang akan ditampilkan untuk semua user sistem.
Gambar 4.7 Halaman Catatan Sekolah
b. Halaman Kriteria
Gambar 4.8 Halaman Kriteria
Halaman Kriteria menampilkan data setiap kriteria dan nilai dari
masing-masing
kriteria.
Halaman
Kriteria
hanya
dapat
63
ditampilkan ke user yang hak aksesnya sebagai admin, dalam halaman ini juga terdapat link untuk update dan delete kriteria. Halaman Kriteria dapat dilihat pada Gambar 4.8. c. Halaman Nilai Halaman Nilai menampilkan data nilai terbaru dari masingmasing sekolah yang diambil dari hasil query antara tabel Master_catatan, Master_nilai, dan Nilai. Dalam halaman ini juga terdapat hasil perhitungan dengan metode Promethee diantaranya nilai LF, nilai EF, dan nilai NF. Halaman Nilai dapat dilihat pada Gambar 4.9.
Gambar 4.9 Halaman Nilai
64
d. Halaman Ranking Halaman Ranking menampilkan hasil dari LF, EF, dan NF beserta rankingnya, pada halaman ini ranking dari masing-masing alternatif sudah jelas. Meskipun dalam Promethee terdapat 2 (dua) tahapan perankingan namun untuk mendapatkan hasil maksimal maka Promethee II (urutan lengkap) yang digunakan, dimana urutan lengkap adalaha hasil perankingan oleh fungsi NF. Halaman Ranking dapat dilihat pada Gambar 4.10.
Gambar 4.10 Halaman Ranking
4.1.2 Implementasi Basis Data Sistem
ini
membutuhkan
database
sebagai
media
penyimpanan data, agar dapat terkoneksi antara aplikasi yang dibuat dengan database maka dibutuhkan sebuah koneksi selama sistem berjalan. Kode Program 4.8 merupakan koneksi antara PHP dan SQL Server 2008.
65
Kode Program 4.8 Koneksi Sistem
Kode program 4.8 merupakan kode pengatur koneksi antara PHP dan SQL Server. Kode tersebut berisi host/drive database, username, password, dan database. Jika koneksi sukses maka database dengan nama “dikpora_db” sudah dapat digunakan. Dalam database “dikpora_db” terdapat beberapa tabel sebagai media penyimpaan data seperti yang telah dijelaskan dalam Bab 3. Desain database menggunakan aplikasi Powerdesign 12, aplikasi tersebut telah menyediakan fungsi untuk menggenerate diagram PDM menjadi kode SQL sesuai dengan database yang diinginkan. Kode Program 4.9 merupakan hasil generate. Kode Program 4.9 Kode SQL Database Sistem /*================================================*/ /* Table: AKSES_MENU */ /*================================================*/ create table AKSES_MENU ( ID_MENU int not null, ID_AKSES char(2) not null ) go /*================================================*/ /* Index: RELATIONSHIP_11_FK */ /*================================================*/ create index RELATIONSHIP_11_FK on AKSES_MENU ( ID_AKSES ASC )
66
go /*================================================*/ /* Index: RELATIONSHIP_12_FK */ /*================================================*/ create index RELATIONSHIP_12_FK on AKSES_MENU ( ID_MENU ASC ) go /*================================================*/ /* Table: BOBOT */ /*================================================*/ create table BOBOT ( ID_BOBOT int not null, NAMA_BOBOT varchar(35) null, TYPE_INPUT varchar(10) null, constraint PK_BOBOT primary key nonclustered (ID_BOBOT) ) go /*================================================*/ /* Table: HAKAKSES */ /*================================================*/ create table HAKAKSES ( ID_AKSES char(2) not null, AKSES varchar(15) not null, constraint PK_HAKAKSES primary key nonclustered (ID_AKSES) ) go /*================================================*/ /* Table: KRITERIA */ /*================================================*/ create table KRITERIA ( ID_KRITERIA int not null, ID_BOBOT int not null, NAMA_KRITERIA varchar(100) null, KETERANGAN text null, MINMAX char(5) null, TYPE_PREFERENSI float null, NILAI_P float null, NILAI_Q float null, NILAI_QUASIAN float null, STATUS varchar(15) null, constraint PK_KRITERIA primary key nonclustered (ID_KRITERIA) ) go
67
/*================================================*/ /* Index: PEMBOBOTAN_FK */ /*================================================*/ create index PEMBOBOTAN_FK on KRITERIA ( ID_BOBOT ASC ) go /*================================================*/ /* Table: MASTER_CATATAN */ /*================================================*/ create table MASTER_CATATAN ( ID_CATATAN int not null, NIP varchar(20) not null, NO_SEKOLAH varchar(20) not null, TGL_SURVEI date null, TGL_INSERT date null, KETERANGAN text null, STATUS varchar(15) null, constraint PK_MASTER_CATATAN primary key nonclustered (ID_CATATAN) ) go /*================================================*/ /* Index: DICATAT_FK */ /*================================================*/ create index DICATAT_FK on MASTER_CATATAN ( NO_SEKOLAH ASC ) go /*================================================*/ /* Index: CATAT_FK */ /*================================================*/ create index CATAT_FK on MASTER_CATATAN ( NIP ASC ) go /*================================================*/ /* Table: MASTER_NILAI */ /*================================================*/ create table MASTER_NILAI ( ID_MASTER_NILAI int not null, ID_KRITERIA int not null, ID_CATATAN int not null, NILAI int null, constraint PK_MASTER_NILAI primary key nonclustered (ID_MASTER_NILAI)
68
) go /*================================================*/ /* Index: MEMILIKI_NILAI_FK */ /*================================================*/ create index MEMILIKI_NILAI_FK on MASTER_NILAI ( ID_CATATAN ASC ) go /*================================================*/ /* Index: RELATIONSHIP_10_FK */ /*================================================*/ create index RELATIONSHIP_10_FK on MASTER_NILAI ( ID_KRITERIA ASC ) go /*================================================*/ /* Table: MENU */ /*================================================*/ create table MENU ( ID_MENU int not null, NAMA_MENU varchar(50) not null, LINK varchar(100) not null, NO_URUT int null, constraint PK_MENU primary key nonclustered (ID_MENU) ) go /*================================================*/ /* Table: NILAI */ /*================================================*/ create table NILAI ( ID_NILAI int not null, ID_MASTER_NILAI int not null, constraint PK_NILAI primary key nonclustered (ID_NILAI) ) go /*================================================*/ /* Index: PENILAIAN2_FK */ /*================================================*/ create index PENILAIAN2_FK on NILAI ( ID_MASTER_NILAI ASC ) go
69
/*================================================*/ /* Table: NILAI_BOBOT */ /*================================================*/ create table NILAI_BOBOT ( ID_BOBOT int not null, NILAI int null, NAMA_OPTION varchar(75) null ) go /*================================================*/ /* Index: BERNILAI_FK */ /*================================================*/ create index BERNILAI_FK on NILAI_BOBOT ( ID_BOBOT ASC ) go /*================================================*/ /* Table: SEKOLAH */ /*================================================*/ create table SEKOLAH ( NO_SEKOLAH varchar(20) not null, NAMA_SEKOLAH varchar(50) null, STATUS_SEKOLAH varchar(10) null, JALAN varchar(50) null, DESA varchar(50) null, KECAMATAN varchar(50) null, STATUS_AKTIF varchar(15) null, constraint PK_SEKOLAH primary key nonclustered (NO_SEKOLAH) ) go /*================================================*/ /* Table: USER_SISTEM */ /*================================================*/ create table USER_SISTEM ( NIP varchar(20) not null, ID_AKSES char(2) not null, NAMA varchar(45) null, JENIS_KELAMIN varchar(15) null, JABATAN varchar(50) null, JALAN varchar(50) null, DESA varchar(50) null, KECAMATAN varchar(50) null, PASSWORD varchar(25) null, constraint PK_USER_SISTEM primary key nonclustered (NIP) ) go
70
/*================================================*/ /* Index: MEMILIKI_OTORITAS_FK */ /*================================================*/ create index MEMILIKI_OTORITAS_FK on USER_SISTEM ( ID_AKSES ASC ) go alter table AKSES_MENU add constraint FK_AKSES_ME_RELATIONS_HAKAKSES foreign key (ID_AKSES) references HAKAKSES (ID_AKSES) go alter table AKSES_MENU add constraint FK_AKSES_ME_RELATIONS_MENU foreign key (ID_MENU) references MENU (ID_MENU) go alter table KRITERIA add constraint FK_KRITERIA_PEMBOBOTA_BOBOT foreign key (ID_BOBOT) references BOBOT (ID_BOBOT) go alter table MASTER_CATATAN add constraint FK_MASTER_C_CATAT_USER_SIS foreign key (NIP) references USER_SISTEM (NIP) go alter table MASTER_CATATAN add constraint FK_MASTER_C_DICATAT_SEKOLAH foreign key (NO_SEKOLAH) references SEKOLAH (NO_SEKOLAH) go alter table MASTER_NILAI add constraint FK_MASTER_N_MEMILIKI__MASTER_C foreign key (ID_CATATAN) references MASTER_CATATAN (ID_CATATAN) go alter table MASTER_NILAI add constraint FK_MASTER_N_RELATIONS_KRITERIA foreign key (ID_KRITERIA) references KRITERIA (ID_KRITERIA) go
71
alter table NILAI add constraint FK_NILAI_PENILAIAN_MASTER_N foreign key (ID_MASTER_NILAI) references MASTER_NILAI (ID_MASTER_NILAI) go alter table NILAI_BOBOT add constraint FK_NILAI_BO_BERNILAI_BOBOT foreign key (ID_BOBOT) references BOBOT (ID_BOBOT) go alter table USER_SISTEM add constraint FK_USER_SIS_MEMILIKI__HAKAKSES foreign key (ID_AKSES) references HAKAKSES (ID_AKSES) go
5.2
Pengujian dan Evaluasi Sistem Pengujian sistem dilakukan untuk mengetahui sejauh mana
sistem ini dapat berjalan. Pengujian dilakukan dengan menggunakan data simulasi namun dikondisikan agar data tersebut seperti data asli. Metode yang digunakan dalam pengujian sistem ini adalah metode Blackbox. Pengujian Blackbox merupakan metode pengujian yang berfokus pada persyaratan. Hasil pengujian dengan metode Blackbox adalah sebagai berikut : 4.2.1 Operasi Login Tabel 4.1 menjelaskan respon sistem terhadap masukan username dan password maupun tanpa salah satu atau keduanya ketika diproses.
72
Tabel 4.1 Tabel Operasi Login
Id Kondisi Respon Sistem Operasi 01 Username & Menampilkan halaman password benar utama sesuai denga hak akses user 02 Username & Menampilkan pesan password tidak username & password tidak ada di database cocok 03 Salah satu dari Menampilkan pesan jika username atau username atau password password kosong kosong 04 Username dan Menampilkan pesan jika password username dan password kosong masih kosong
Hasil Berhasil
Gagal Login Gagal Login
Gagal Login
4.2.2 Operasi Tambah Data Tabel 4.2 menjelaskan respon sistem terhadap penambahan data ketika diproses. Operasi tambah data juga dilengkapi dengan validasi agar inputan sesuai dengan pengaturan dalam database. Tabel 4.2 Tabel Operasi Tambah Data
Id Kondisi Respon Sistem Hasil Operasi 01 data inputtan Menampilkan pesan Berhasil lengkat data sukses ditambahkan tambah data 02 Data wajib Menampilkan pesan Gagal dikosongkan data wajib diisi tanbah data 03 Data yang tidak Menampilkan pesan Gagal sesuai dengan data tidak sesuai tambah format yang telah data ditentukan 04 Duplikat primary Menampilkan pesan Gagal
73
key
data dengan id : xxx tambah sudah ada data
4.2.3 Operasi Hapus Data Tabel 4.3 menjelaskan respon sistem terhadap penghapusan data ketika diproses. Operasi ini juga dilengkapi dengan validasi sehingga sistem dapat merespon setiap tindakan yang dilakukan oleh user. Tabel 4.3 Tabel Operasi Delete Data
Id Kondisi Operasi 01 Data yang ingin dihapus telah dipilih 02 Data yang memiliki foreign key di tabel lain dan sedang digunakan atau memiliki nilai
Respon Sistem
Hasil
Menampilkan pesan data Berhasil sukses dihapus hapus data Menampilkan pesan data Gagal yang anda maksudkan hapus sedang digunakan data
4.2.4 Operasi Ubah Data Tabel 4.4 menjelaskan respon sistem terhadap pengubahan data ketika diproses. Operasi ini juga dilengkapi dengan validasi sehingga sistem dapat merespon setiap tindakan yang dilakukan oleh user. Tabel 4.4 Tabel Operasi Update Data
Id Kondisi Operasi 01 Data lengkap
Respon Sistem Menampilkan
Hasil
pesan Berhasil
74
02
Belum melakukan perubahan data Melakukan perubahan data yang tidak sesuai dengan format Data wajibh tidak diisi atau dihapus
03
04
data sukses diubah Menampilkan pesan data sukses diubah Menampilkan pesan data tidak sesuai
Menampilkan data wajib diisi
ubah data Berhasil ubah data Gagal ubah data
pesan Gagal ubah data
4.2.5 Evaluasi Sistem Evaluasi sistem ditujukan untuk menguji apakah penerapan metode Promethee dalam sistem ini sudah berjalan sesuai dengan perhitungan manual. Pengujian membutuhkan data simulasi yang disesuaikan agar mendekati kasus nyata, Tabel 4.5 adalah data-data yang akan disimulasikan. Tabel 4.5 Data Simulasi Metode Promethee
Kriteria
Alternatif A B C
Tipe Preferensi
Ruang Kelas
3
3
2
Usual
Ruang Perpus
3
3
3
Usual
Lab IPA
1
2
2
Usual
Ruang Pimpinan
3
3
3
Usual
Ruang Guru
2
3
3
Usual
Tempat Beribadah
1
1
3
Usual
Ruang UKS
1
1
1
Usual
Jamban
2
2
3
Usual
Gudang
2
2
1
Usual
Ruang Sirkulasi
3
3
3
Usual
p
q
75
Tempat Berolahraga
3
2
3
Usual
Keterangan : A : SD NEGERI 3 Tobelo B : SD GMIH Gamhoku C : MIS Ngidiho F1: R. Kelas
F2 : R. Perpus
F3 : Lab IPA
F4: R. Pimpinan
F5 : R. Guru
F6 : T. Beribadah
F7: R. UKS
F8 : Jamban
F9: Gudang
F10 : R. Rirkulasi
F11 : T. Olahraga
Kondisi baik diwakilkan dengan angka 3, kondisi rusak ringan diwakilkan dengan angka 2, dan kondisi rusak berat diwakilkan dengan angka 1, angka-angka tersebut tidak mutlak sehingga dapat diganti dengan angka-angka yang lain berdasarkan urutan kondisi, tujuan
dari
penggunaan
angka-angka
tersebut
adalah
untuk
mempermudah perhitungan dalam meode Promethee. Sesuai dengan data simulasi pada Tabel 4.5 maka dapat dijelaskan bahwa untuk kriteria Ruang Kelas (F1) alternatif A memiliki nilai “Baik” yang diwakilkan dengan angka 3, begitu juga dengan alternatif B memiliki nilai “Baik” sedankan alternatif C memiliki nilai “Rusak ringan” yang diwakilkan dengan angka 2. Tipe preferensi dari kriteria Ruang Kelas adalah kriteria biasa (usual), sedankan perhitungannya adalah minimum artinya nilai semakin kecil dinyatakan mutlak lebih baik, rumus tipe preferensi kriteria biasa dapat dilihat pada Rumus (2) pada Bab 2 dan jika rumus tersebut diberikan nilai alternatif pada kriteria Ruang Kelas maka akan menjadi:
76
f1(A,B) → d = f1(A)-f1(B) d = 3-3 d=0 f1(B,A) → d = f1(B)-f1(A) d = 3-3 d=0 Untuk kasus minimasi jika d < 0 maka H(d) = 1 dan akan bernilai 0 jika d >= 0. Hasil pengurangan pada kriteria Ruang Kelas untuk alternatif A terhadap alternatif B pada kasus di atas maka d = 0 karena perhitungannya untuk minimasi maka H(d) = 0, sedangkan hasil pengurangan alternatif B terhadap A menghasilkan d = 0 karena perhitungannya untuk minimasi maka H(d) = 0. Perhitungan ini dilakukan untuk setiap altenatif yang dibandingkan pada kriteria tertentu dan dilakukan untuk semua kriteria, jika perhitungan dilanjutkan semua alternatif pada kriteria Ruang Kelas maka akan menjadi : Kriteria Lahan(f1) f1(A,B) = 0
f1(B,A)
=0
f1(A,C) = 0
f1(C,A)
=1
f1(B,C)
f1(C,B)
=1
=0
f1(A,B) artinya selisih alternatif A terhadap alternatif B dan seterusnya, perhitungan pada ilustrasi untuk kriteria Ruang Kelas di atas akan dilanjutkan untuk kriteria-kriteria yang lain dengan mengacuh pada tipe preferensi dan arah perhitungan minimasi atau optimasi. Setelah membandingkan alternatif pada setiap kriteria maka langkah
selanjutnya
adalah
menghitung
keselruruhan
perbandingan antara alternatif di semua kriteria sehingga menjadi:
nilai
77
(A,B) = 1/11(0+0+1+0+1+0+0+0+0+0+0) = 0.5384 (B,A) = 1/11(0+0+0+0+0+0+0+0+0+0+1) = 0.0909 (A,C) = 1/11(0+0+1+0+1+1+0+1+0+0+0) = 0.3636 (C,A) = 1/11(1+0+0+0+0+0+0+0+1+0+0) = 0.0909 (B,C) = 1/11(0+0+0+0+0+1+0+1+0+0+0) = 0.1818 (C,B) = 1/11(1+0+0+0+0+0+0+0+1+0+0) = 0.0909 Hasil perhitungan perbandingan antara alternatif tersebut jika ditabelkan akan menjadi seperti pada Tabel 4.6. Tabel 4.6 Perbandingan Antara Alternatif
Akternatif A B C
A 0 0.1538
B 0.5384 0.1538
C 0.5384 0.1538 -
Setelah mendapatkan nilai perbandingan dari setia alternatif seperti terlihat pada Tabel 4 maka langkah selanjutnya adalah menghitung Promethee I yaitu menghitung nilai LF dan EF. LF :
EF : A = (A,B)+(A,C) = 0.1818 + 0.3636 = 0.5454 B = (B,A)+(B,C) = 0.0909+0.2727 = 0.3636 C = (C,A)+(C,B) = 0.1818+0.1818 = 0.3636
A = (B,A)+(C,A) = 0.0909+0.1818 = 0.2727 B = (A,B)+(C,B) = 0.1818+0.1818 = 0.3636 C = (A,C)+(B,C) = 0.3636+0.2727 = 0.6363
LF merupakan nilai penjumlahan dari satu alternatif terhadap alternatif yang alin sedankan EF merupakan hasil penjumlahan dari
78
alternatif yang lain terhadap satu alternatif. Tabel 5 merupakan tabel Promethee I. Tabel 4.7 Promethee I
A B C
A 0.0909 0.1818
B 0.1818 0.1818
C 0.3636 0.2727 -
LF 0.5454 0.3636 0.3636
EF 0.2727 0.3636 0.6363
Setelah mendapatkan nilai LF dan EF maka langkah selanjutnya adalah menghitung Promethee II atau NF, NF merupakan hasil pengurangan antara nilai LF terhadapat nilai EF pada setiap alternatif. Tabel 6 merupakan hasil perhitungan NF. Tabel 4.8 Promethee II
A B C
A 0.0909 0.1818
B 0.1818 0.1818
C 0.3636 0.2727 -
LF 0.5454 0.3636 0.3636
EF 0.2727 0.3636 0.6363
NF 0.2727 0 -0.2727
Setalah mendapatkan nilai NF maka langkah selanjutnya adalah menentukan ranking dari setiap alternatif. Hasil perankingan adalah sebagai merikut : Alternatif A menempati peringkat I Alternatif B menempati peringkat II Alternatif C menempati peringkat III Hasil Promethee II di atas sama dengan hasil yang terlihat pada Gambar 4.9 untuk halaman “Hasil Perhitungan” dan peringkat alternatif seperti pada Gambar 4.10 untuk halaman “Hasil Alternatif”, simulasi sistem maupun simulasi manual memiliki nilai, tipe preferensi, dan maksimasi atau minimasi yang sama sehingga dapat
79
dipastikan bahwa metode Promethee yang digunakan dalam sistem ini sudah sesuai dengan perhitungan manual.
5.3
Hasil Analisis Hasil analisis dari penerapan metode Promethee adalah
sebagai berikut : 1. Metode Promethee lebih fleksibel dalam menentukan tipe preferensi (bobot) mana yang lebih baik dari pasangan yang dibandingkan. 2. Metode Prometee memiliki banyak fungsi yang dapat mengakomodasi berbagai karakteristik data.