Sistem Pendukung Keputusan Menggunakan Metode SAW Berbasis Web
Get link
Facebook
X
Pinterest
Email
Other Apps
-
Setelah beberapa minggu belum ada tulisan, kali ini saya akan membagikan tulisan saya mengenai sistem pendukung keputusan. Jika tulisan ini bermanfaat berarti banyak pembacanya dan menjadi motivasi saya untuk terus menulis di blog ini.
Kali ini saya akan membahas mengenai sistem pendukung keputusan untuk memilih kepala bagian sistem informasi pada suatu perusahaan.
Selanjutnya kita akan merancang sistem pendukung keputusannya. Rangcangan ini adalah rancangan saya pribadi yang dikembangkan dari artikel di atas.
Pada sistem yang di buat pertama adalah login, kemudian input data alternatif, kemudian input bobot, proses SAW dan tampilkan hasil dan terakhir adalah logout yang semua di kerjakan oleh admin.
Baik setelah desain proses nya kira-kira sudah cukup maka kita coba untuk desain database.
Nama database : db_spk
Tabel Admin
Tabel Alternatif
Tabel Bobot
Tabel Nilai
Untuk memudahkan membuat database di atas saya akan bagikan SQL nya.
/* MySQL Data Transfer Source Host: localhost Source Database: db_spk Target Host: localhost Target Database: db_spk Date: 09/03/2020 11.45.06 */ SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for tbl_admin -- ---------------------------- CREATE TABLE `tbl_admin` ( `id_admin` int(11) NOT NULL AUTO_INCREMENT, `nama` varchar(30) NOT NULL, `username` varchar(100) NOT NULL, `password` varchar(100) NOT NULL, PRIMARY KEY (`id_admin`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; -- ---------------------------- -- Table structure for tbl_alternatif -- ---------------------------- CREATE TABLE `tbl_alternatif` ( `id_alternatif` int(11) NOT NULL AUTO_INCREMENT, `nama` varchar(30) NOT NULL, `alamat` varchar(60) NOT NULL, `no_telp` varchar(14) NOT NULL, PRIMARY KEY (`id_alternatif`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; -- ---------------------------- -- Table structure for tbl_bobot -- ---------------------------- CREATE TABLE `tbl_bobot` ( `id_bobot` int(11) NOT NULL AUTO_INCREMENT, `w1` double NOT NULL, `w2` double NOT NULL, `w3` double NOT NULL, `w4` double NOT NULL, PRIMARY KEY (`id_bobot`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; -- ---------------------------- -- Table structure for tbl_nilai -- ---------------------------- CREATE TABLE `tbl_nilai` ( `id_nilai` int(11) NOT NULL AUTO_INCREMENT, `id_alternatif` int(11) NOT NULL, `c1` int(11) NOT NULL, `c2` int(11) NOT NULL, `c3` int(11) NOT NULL, `c4` int(11) NOT NULL,
Oke kita sudah membuat database nya. sekarang kita akan membuat tampilan antarmuka untuk login.
sebelumnya buat folder dengan nama spk di dalam htdocs. Kita menggunakan bootstrap untuk desain web yang bisa di dapatkan di sini.
Disini kita menambahkan jquery, buka link tersebut dan copy isi nya kemudian silahkan tambahkan file jquery.js di lamam folder js dan paste kan.
Di dalam file di atas kita ada menginclude file konten.php yang akan kita buat.
nama file konten.php
berikut kodenya:
<?php if (isset($_GET['halaman'])) { if ($_GET['halaman']=='home') { include "home.php"; }else{ echo "Halaman tidak ditemukan!"; } }else{ include "home.php"; } ?>
Di dalam file konten.php kita ada menginclude file home.php yang belum kita buat.
Sekarang kita telah menyelesaikan index.php
Login
Index
Selanjutnya kita akan menyelesaikan create, read, update, delete (CRUD) data alternatif. buat lah sebuah folder di dalam folder spk bernapa alternatif dan buat beberapa file seperi dibawah. Sampai disini projek yang kita punya seperti ini.
Untuk mempersingkat waktu, saya akan membagikan kode CRUD data alaternatif di atas.
nama file : aksi_edit_alternatif.php
berikut kodenya:
<?php $id_alternatif=$_POST['id_alternatif']; $nama =$_POST['nama']; $alamat =$_POST['alamat']; $no_telp =$_POST['no_telp']; include "../koneksi.php"; $sql="update tbl_alternatif set nama = '$nama', alamat='$alamat', no_telp='$no_telp' where id_alternatif='$id_alternatif'"; $hasil=mysqli_query($koneksi,$sql); //echo "$sql"; if ($hasil) { header("location:../index.php?halaman=data&pesan=edit_sukses"); }else { header("location:../index.php?halaman=data&pesan=edit_gagal"); } ?>
nama file: aksi_hapus_alternatif.php
berikut kodenya:
<?php include "../koneksi.php"; $sql="delete from tbl_alternatif where id_alternatif='$_GET[id_alternatif]'"; mysqli_query($koneksi,$sql); //echo "$sql"; header("location:../index.php?halaman=data"); ?>
nama file: aksi_tambah_alternatif.php
berikut kodenya:
<?php $nama =$_POST['nama']; $alamat =$_POST['alamat']; $no_telp =$_POST['no_telp']; include "../koneksi.php"; $sql="insert into tbl_alternatif (nama, alamat, no_telp) values ('$nama','$alamat','$no_telp')"; $hasil=mysqli_query($koneksi,$sql); //echo "$sql"; if ($hasil) { header("location:../index.php?halaman=data&pesan=tambah_sukses"); }else { header("location:../index.php?halaman=data&pesan=tambah_gagal"); } ?>
Jangan lupa ubah isi file konten.php seperti berikut:
<?php if (isset($_GET['halaman'])) { if ($_GET['halaman']=='home') { include "home.php"; } elseif ($_GET['halaman']=='data') { include "alternatif/alternatif.php"; } elseif ($_GET['halaman']=='tambah_data') { include "alternatif/tambah_alternatif.php"; } elseif ($_GET['halaman']=='edit_data') { include "alternatif/edit_alternatif.php"; }else{ echo "Halaman tidak ditemukan!"; } }else{ include "home.php"; } ?>
Sekarang kita telah menyelesaikan index.php
Login
Index
Data Alternatif
Sekarang kita lanjut untuk menu penilaian. Berikut struktur projek yang terbaru:
<?php if (isset($_POST['simpan'])) { include "../koneksi.php"; $jumlah=$_POST['jumlah']; for ($i=0; $i <$jumlah ; $i++) { $temp_id_alternatif="id_alternatif".$i; $temp_id_nilai="id_nilai".$i; $temp_c1="c1".$i; $temp_c2="c2".$i; $temp_c3="c3".$i; $temp_c4="c4".$i; $fix_id_alternatif= $_POST[$temp_id_alternatif]; $fix_id_nilai= $_POST[$temp_id_nilai]; $fix_c1= $_POST[$temp_c1]; $fix_c2= $_POST[$temp_c2]; $fix_c3= $_POST[$temp_c3]; $fix_c4= $_POST[$temp_c4]; $sql="select * from tbl_nilai where id_nilai='$fix_id_nilai'"; //echo "$sql"; $hasil=mysqli_query($koneksi,$sql); if (mysqli_num_rows($hasil)<=0) { $sql="insert into tbl_nilai(id_alternatif,c1,c2,c3,c4) values('$fix_id_alternatif','$fix_c1','$fix_c2','$fix_c3','$fix_c4')"; mysqli_query($koneksi,$sql); //echo "$sql"; }else{ $sql="update tbl_nilai set c1='$fix_c1', c2='$fix_c2', c3='$fix_c3', c4='$fix_c4' where id_nilai='$fix_id_nilai'"; //echo "$sql"; mysqli_query($koneksi,$sql); } } } header("location:../index.php?halaman=penilaian&pesan=1"); ?>
Jangan lupa update file konten.php seperti ini:
<?php if (isset($_GET['halaman'])) { if ($_GET['halaman']=='home') { include "home.php"; } elseif ($_GET['halaman']=='data') { include "alternatif/alternatif.php"; } elseif ($_GET['halaman']=='tambah_data') { include "alternatif/tambah_alternatif.php"; } elseif ($_GET['halaman']=='edit_data') { include "alternatif/edit_alternatif.php"; } elseif ($_GET['halaman']=='penilaian') { include "penilaian/penilaian.php"; } else{ echo "Halaman tidak ditemukan!"; } }else{ include "home.php"; } ?>
Sampai disini progres yang kita kerjakan sekarang.
Login
Index
Data Alternatif
Penilaian
<div class="col-10"> <?php include "koneksi.php"; $sql="select * from tbl_nilai where skor IS NULL"; $hasil=mysqli_query($koneksi,$sql); if (mysqli_num_rows($hasil)>0) { ?> <div class="alert alert-danger alert-dismissible fade show" role="alert"> <strong>Pesan : </strong> Rangking Perlu diperbarui. <button type="button" class="close" data-dismiss="alert" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> <a href="rangking/aksi_rangking.php"><input style="margin-bottom:5px " class="btn btn-primary" type="button" name="" value="Mulai"></a> <?php }else{ ?> <a href="rangking/aksi_rangking.php"><input style="margin-bottom:5px " class="btn btn-primary" type="button" name="" value="Perbarui!"></a> <?php } $sql="select `db_spk`.`tbl_alternatif`.`id_alternatif` AS `id_alternatif`,`db_spk`.`tbl_alternatif`.`nama` AS `nama`,`db_spk`.`tbl_nilai`.`id_nilai` AS `id_nilai`,`db_spk`.`tbl_nilai`.`skor` AS `skor` from (`db_spk`.`tbl_alternatif` left join `db_spk`.`tbl_nilai` on((`db_spk`.`tbl_alternatif`.`id_alternatif` = `db_spk`.`tbl_nilai`.`id_alternatif`))) order by skor desc"; $hasil=mysqli_query($koneksi,$sql); ?> <table class="table table-bordered"> <thead> <tr style="font-weight: bold"> <td width="5%">No.</td> <td width="45%">Nama</td> <td width="50%">Skor</td> </tr> </thead> <tbody> <?php $no=1; $i=0; while ($row=mysqli_fetch_array($hasil)) { ?> <tr> <td><?php echo $no++?></td> <td><?php echo $row['nama']?></td> <form action="rangking/aksi_rangking.php" method="POST"> <td> <?php echo $row['skor']?> </td> </tr> <?php $i++; } ?> </form> </tbody> </table> </div>
nama file: aksi_rangking.php
berikut kodenya:
<?php include "../koneksi.php"; $sql="select max(c1) as max_c1, max(c2) as max_c2, max(c3) as max_c3,max(c4) as max_c4 from tbl_nilai"; $hasil=mysqli_query($koneksi,$sql); $row=mysqli_fetch_array($hasil); $max_c1=$row['max_c1']; $max_c2=$row['max_c2']; $max_c3=$row['max_c3']; $max_c4=$row['max_c4']; $sql=" select * from tbl_bobot"; $hasil=mysqli_query($koneksi,$sql); $row=mysqli_fetch_array($hasil); $w1=$row['w1']; $w2=$row['w2']; $w3=$row['w3']; $w4=$row['w4']; $sql="select * from tbl_nilai"; $hasil=mysqli_query($koneksi,$sql); $i=0; while ($row=mysqli_fetch_array($hasil)) { $id_nilai[$i]=$row['id_nilai']; $c1_normalisasi=round(($row['c1']/$max_c1),2); $c2_normalisasi=round(($row['c2']/$max_c2),2); $c3_normalisasi=round(($row['c3']/$max_c3),2); $c4_normalisasi=round(($row['c4']/$max_c4),2); $skor[$i]=round((($w1*$c1_normalisasi)+($w2*$c2_normalisasi)+($w3*$c3_normalisasi)+($w4*$c4_normalisasi)),3); $i++; } $x=0; foreach ($skor as $key => $value) { $sql="update tbl_nilai set skor='$value' where id_nilai='$id_nilai[$x]'"; mysqli_query($koneksi,$sql); $x++; echo "$sql"; echo "<br>"; } header("location:../index.php?halaman=rangking"); ?>
Baik sekarang kita telah menyelesaikan perangkingan dengan metode SAW, mari lihat hasilnya:
Untuk pengujian pertama cukup bandingkan dengan hasil perhitungan manual. Untuk tes kedua silahkan tambah sebuah data dan hitung manual terlebih dahulu.
Kita sudah menyelesaikan semuanya.
Login
Index
Data Alternatif
Penilaian
Bobot
Rangking
Logout
Terimakasih telah membaca.
Kami ucapkan terima kasih untuk pertanyaan dan koreksi atas postingan ini. Untuk kesalahan tutorial ini sudah di perbaiki pada bagian kode SQL yang berwarna merah.
Kali ini saya akan membuat tutorial bagaimana menggunakan template gratis sebagai template web dinamis. Pertama anda download terlebih dulu templatenya disini . Pada tutorial ini saya menggunakan template admin LTE 2. Pada template ini saya memecah bagian index.php dan menyatukan kembali dengan include, tujuannya agar template terbagi-bagi dan mudah dipahami. Selain itu, pembagian ini lah yang membuat web menjadi dinamis. Perlu diingat cara saya ini bukanlah cara satu-satu nya Cara Menggunakan template Admin LTE Sebagai Template Web Dinamis . Cara ini saya sharing karena menurut saya adalah cara yang cukup efisien dan mampu menangani semua halaman yang akan kita buat. Bagian terpenting nya adalah mampu menghasilkan program sesuai yang kita harapkan dengan cara yang lebih mudah dibuat. Pertama kita buat folder di htdocs template kemudian ekstrak file zip nya di folder tersebut. Selanjutnya buka folder template dan rename file index.html menjadi index.php . Buka file
Pada tutorial yang lalu saya sudah menulis Membuat CRUD dengan PHP Mysqli anda dapat mempelajari dulu jika belum pernah membuat aplikasi CRUD. Kita membuat aplikasi crud dengan template tujuannya agar tampil lebih baik dan responsif. Jika anda ingin membuat template sendiri juga bisa. Baca juga Membuat Template Sederhana Dengan HTML dan CSS Sebelum membuat aplikasi crud di template Admin LTE anda perlu menyiapkan templatenya dulu. Baca Cara Menggunakan Template Admin LTE Sebagai Template Web Dinamis . Sekarang saya anggap anda sudah memiliki template nya. Berikut ini list yang akan kita kerjakan. Template Buat Databse Read Data Create Data Delete Data Update Data Sampai disini kita anggap template sudah ada, selanjutnya kita buat database dengan nama db_siswa . Gambar membuat database Pertama start apache dan mysql di xampp (
Link adalah bagian dari HTML yang fungsinya untuk menghubungkan satu halaman dengan halaman lain. Link juga bisa diartikan sebagai cara berpindah dari satu halaman ke halaman lain. 1. Link ke Halaman Lain Tag yang digunakan untuk membuat link adalah tag anchor atau tag <a> , yang berpasangan dengan </a> . Link biasanya menggunakan objek untuk di klik yang di letakkan diatara tag buka dan tag tutup. Teks Tombol (Button) Gambar Ketiga objek di atas sering dijadikan link, dan tidak ada kategori yang paling sering digunakan. Mimilih teks, tombol, atau gambar sebagai link sangat opsional atau tidak ada keharusan. Format link <a href="url" name="nama_link"> Objek Link </a> 1.1. Contoh Link Dengan Objek Teks <!--nama file link.html--> Untuk ke halaman selanjutnya <a href="link2.html">Klik disini</a> Teks klik disini jika di klik halaman akan berpindah ke link2.html. Pada conto