• Tidak ada hasil yang ditemukan

Sesuai dengan perancangan umum yang telah dibuat sebelumnya, sistem yang dibuat ini dimulai dari input batas himpunan untuk tiap kriteria dan data-data motornya. Kemudian dilakukan perhitungan derajat keanggotaan terhadap data motor yang ada dengan data kriterianya. Setelah derajat keanggotaan sudah terbentuk, barulah pengguna dapat melakukan proses pencarian. Proses pencarian yang dilakukan dibuat dengan cara membandingkan nilai-nilai pada derajat keanggotaan sehingga diperoleh nilai derajat optimum. Motor-motor dengan nilai derajat optimum yang akan ditampilkan sebagai hasil pencarian. Berdasarkan perancangan sistem yang telah dibuat, berikut disajikan beberapa potongan kode program intinya.

1. Input Batas Himpunan

Untuk ketiga kriteria yang ditentukan, yakni harga, tahun produksi, dan kondisi fisik, tampilan halaman input kriteria yang digunakan adalah sama karena variabel yang digunakan sama. Perbedaannya adalah pada nilai yang dimasukkan dan proses penyimpanan atau eksekusi insert ke database-nya. Potongan program berikut adalah potongan program-program yang menjadi proses utama dalam sistem.

 Pilih model kurva

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <center><br/><table>

<tr>

<td colspan="3">

Pilih model kurva&nbsp; </td> <td> <select name="modelKurva"> <option value="">Pilih</option> <option value="Turun" <?php if(isset($_POST['pilihModel'])) { $modelKurva = $_POST['modelKurva'];

if($modelKurva=="Turun"){ echo 'selected'; }} ?>>Turun</option>

<option value="Naik"

<?php if(isset($_POST['pilihModel'])) { if($modelKurva=="Naik"){ echo 'selected'; }} ?>>Naik</option>

<option value="Segitiga"

<?php if(isset($_POST['pilihModel'])) { if($modelKurva=="Segitiga"){ echo 'selected'; }} ?>>Segitiga</option>

<option value="Trapesium"

<?php if(isset($_POST['pilihModel'])) {

if($modelKurva=="Trapesium"){ echo 'selected'; }} ?>>Trapesium</option>

</select>

<input type="submit" name="pilihModel" value="Gunakan"> </td>

</tr></table></center> </form>

 Tetapkan nama level, nilai, dan toleransi tiap kriteria berdasarkan kurva yang dipilih pada proses sebelumnya

<form action="kriteria_harga_proses.php" method="POST"> <center><table width="50%" border="1px">

<tr>

<td colspan="2" bgcolor="#CCCCCC" height="40px"><b> Model kurva pilihan Anda : <?php

if(isset($_POST['pilihModel'])) {

$modelKurva = $_POST['modelKurva']; echo "<i> $modelKurva </i>";

} else { echo "<b> - </b>"; ?>&nbsp; </b></td> </tr> <tr> <td> Nama Level </td> <td>

<input type="text" name="nama" size="20"> </td> </tr> <tr> <td> Nilai Level </td> <td>

<input type="text" name="nilai1"

size="5">

<input type="text" name="nilai2" size="5" <?php if(isset($_POST['pilihModel'])) { if(!($modelKurva=="Trapesium")){ echo "disabled"; } } ?> </td> </tr> <tr> <td>

Nilai Toleransi </td>

<td>

<input type="text" name="toleransi" size="5"> </td>

</tr> <tr>

<td>&nbsp;</td> <td>&nbsp;&nbsp;

<input type="hidden" name="momodelKurva" value=" <?php if(isset($_POST['pilihModel'])) { echo $modelKurva; } else { echo "ERROR"; } ?>">

<input type="submit" name="tambahIsiKriteria" value="TAMBAH"> </td>

</tr>

</table></center> </form>

 Baca tiap nilai kriteria yang tersimpan di database <table border="1" width="95%">

<tr height="30px">

<td width="35px" align="center" bgcolor="#CCCCCC"> <b>No</b>

</td>

<td width="150px" align="center" bgcolor="#CCCCCC"> <b>Nama Kategori</b>

</td>

<td width="100px" align="center" bgcolor="#CCCCCC"> <b>Batas Bawah</b>

</td>

<td width="120px" align="center" bgcolor="#CCCCCC"> <b>Nilai atau Range</b>

</td>

<td width="100px" align="center" bgcolor="#CCCCCC"> <b>Batas Atas</b>

</td>

<td width="125px" align="center" bgcolor="#CCCCCC"> <b>Action</b>

</td> </tr>

<?php

include('../koneksi.php');

$query = mysql_query("SELECT * FROM kriteria_harga") or die(mysql_error());

if(mysql_num_rows($query) == 0){

echo '<tr><td colspan="8" align="center"> Tidak ada data !</td></tr>';

} else { $no = 1; while($data = mysql_fetch_assoc($query)){ echo '<tr>'; echo '<td align=center>'.$no.'</td>'; echo '<td align=center>'.$data['nama'].' ('.$data['modelKurva'].')</td>'; echo '<td align=center>'; if($data['batas1']==0){ $data['batas1'] = "-"; } echo $data['batas1'].'</td>'; if(!($data['modelKurva']=="Trapesium")){ echo '<td align=center>'.

$data['nilai1'].'</td>'; } else { echo '<td align=center>'. $data['nilai1'].' - '. $data['nilai2'].'</td>'; } echo '<td align=center>'; if($data['batas2']==0){ $data['batas2'] = "-"; } echo $data['batas2'].'</td>'; echo '<td align=center><a href="kriteria_harga_edit.php?id='.$data['id'].'"><button>EDIT</butto n></a> <a href="kriteria_harga_hapus.php?id='.$data['id'].'"

onclick="return confirm(\'Apakah Anda ingin menghapusnya

?\')"><button>HAPUS</button></a></td>'; echo '</tr>'; $no++; } } ?> </table>

 Proses simpan kriteria ke database include('../koneksi.php'); $toleransi = $_POST['toleransi']; $nama = $_POST['nama']; $nilai1 = $_POST['nilai1']; $nilai2 = $_POST['nilai2']; $modelKurva = $_POST['momodelKurva']; if($modelKurva=="Turun") {

$batas2 = $nilai1 + $toleransi;

$input = mysql_query("INSERT INTO kriteria_harga (modelKurva, toleransi, nama, nilai1, batas2) VALUES

('$modelKurva','$toleransi','$nama','$nilai1','$batas2')") or die(mysql_error());

} else if($modelKurva=="Naik") { $batas1 = $nilai1 - $toleransi;

$input = mysql_query("INSERT INTO kriteria_harga (modelKurva, toleransi, nama, nilai1, batas1) VALUES

('$modelKurva','$toleransi','$nama','$nilai1','$batas1')") or die(mysql_error());

} else if($modelKurva=="Segitiga") { $batas2 = $nilai1 + $toleransi; $batas1 = $nilai1 - $toleransi;

$input = mysql_query("INSERT INTO kriteria_harga (modelKurva, toleransi, nama, nilai1, batas1, batas2) VALUES

('$modelKurva','$toleransi','$nama','$nilai1','$batas1','$batas2')") or die(mysql_error());

} else if($modelKurva=="Trapesium") { $batas2 = $nilai2 + $toleransi; $batas1 = $nilai1 - $toleransi;

$input = mysql_query("INSERT INTO kriteria_harga(modelKurva, toleransi, nama, nilai1, nilai2, batas1, batas2) VALUES ('$modelKurva','$toleransi','$nama','$nilai1','$nilai2','$batas1',

'$batas2')") or die(mysql_error()); }

$nambahKolom = mysql_query("ALTER TABLE derajat_harga ADD `".$nama."` decimal(10,2) NOT NULL;");

2. Input Data Motor Bekas  Form tambah data motor

<form action="kelolaDataMotor_tambah.php" method="post"> <table>

<tr>

<td>Merk</td> <td>

<input type="text" name="merk" style="width:150px;"> </td> </tr> <tr> <td>Jenis</td> <td> <select name="jenis">

<option disabled selected>Pilih salah satu</option> <option value="Matic">Matic</option> <option value="Bebek">Bebek</option> <option value="Sport">Sport</option> <option value="Lainnya">Lainnya</option> </select> </td> </tr> <tr> <td>Tahun</td> <td>

<input type="text" name="tahun" style="width:50px;"> </td>

</tr> <tr>

<td>Mesin (cc)</td> <td>

<input type="text" name="mesin" style="width:50px;"> </td>

</tr> <tr>

<td>Tangki (ltr)</td> <td>

<input type="text" name="tangki" style="width:50px;"> </td>

</tr> <tr>

<td>Kondisi (%)</td> <td>

<input type="text" name="kondisi" style="width:50px;"> </td>

</tr> <tr>

<td>Harga (Rp)</td> <td>

<input type="text" name="harga" style="width:100px;"> </td>

</tr> <tr>

<td>Identitas </td> <td>

<input type="text" name="catatan" style="width:150px;"> </td>

</tr> <tr>

<td></td> <td>

</td> </tr>

</table> </form>

 Tampilkan data motor yang ada di database

<table width="100%" cellspacing="0" cellpadding="0"> <tr bgcolor="#999999">

<td>Daftar Motor yang Tersedia</td> </tr>

<?php

include 'koneksi.php';

$query = mysql_query("SELECT * FROM datamotor") or

die(mysql_error());

if(mysql_num_rows($query) == 0){

echo '<tr><td colspan="2" align="center"> Tidak ada data !</td></tr>';

} else { $no = 0; while($data = mysql_fetch_assoc($query)){ if($no%2==0) { echo '<tr bgcolor="#FFFFFF">'; } else { echo '<tr bgcolor="#DDDDDD">'; }

echo '<td>&nbsp;&nbsp;<font size="2">(ID-'.

$data['id'].') '.$data['merk'].' ('.$data['tahun'].') '.$data['mesin'].'cc '.$data['tangki'].'ltr ('. $data['kondisi'].'%) Rp'.$data['harga'].'</font></td>'; echo '<td align=right> <a href="kelolaDataMotor_edit.php?id='.$data['id'].'"> <button>E</button></a><a href="kelolaDataMotor_hapus.php?id='.$data['id'].'" onclick="return confirm(\'Apakah Anda

ingin menghapusnya ?\')"><button>H</button></a></td>'; echo '</tr>';

$no++; }

} ?> </table>

3 Hitung Derajat Keanggotaan Tiap Kriteria  Kriteria HARGA

$q1 = mysql_query("SELECT * FROM kriteria_harga") or die(mysql_error());

$masukinNilaiDerajat = "";

while($d1 = mysql_fetch_assoc($q1)){ $nilai;

if($d1['nilai2']==0 && $d1['batas1']==0) { //KURVA TURUN if($harga<=$d1['nilai1'] && $harga>0) {

$nilai = 1;

} else if($harga<=$d1['batas2'] && $harga>$d1['nilai1']){ $nilai = ($d1['batas2'] - $harga) / $d1['toleransi']; } else if($harga>$d1['batas2']){

} }

else if($d1['batas1']!=0 && $d1['batas2']!=0) { //KURVA TRAPESIUM if($harga<=$d1['nilai2']&&$harga>$d1['nilai1']){

$nilai = 1;

} else if($harga<=$d1['nilai1']&&$harga>$d1['batas1']){ $nilai = $harga / $d1['nilai1'];

} else if($harga<=$d1['batas2']&&$harga>$d1['nilai2']){ $nilai = ($d1['batas2'] - $harga) / $d1['nilai1']; } else if($harga>$d1['batas2']||$harga<$d1['batas1']){

$nilai = 0; }

}

else if($d1['nilai2']==0 && $d1['batas2']==0) { //KURVA NAIK if($harga>$d1['nilai1']) {

$nilai = 1;

} else if($harga<=$d1['nilai1'] && $harga>=$d1['batas1']){ $nilai = ($harga - $d1['batas1']) / $d1['toleransi']; } else if($harga<$d1['batas1']){

$nilai = 0; }

}

else if($d1['batas1']!=0 && $d1['batas2']!=0 && $d1['nilai2']==0) { //KURVA SEGITIGA

if($harga==$d1['nilai1']) { $nilai = 1;

} else if($harga>=$d1['batas1'] && $harga<$d1['nilai1']) { $nilai = ($harga - $d1['batas1']) / $d1['toleransi']; } else if($harga<=$d1['batas2'] && $harga>$d1['nilai1']) {

$nilai = ($d1['batas2'] - $harga) / $d1['toleransi']; } else if($harga<$d1['batas1'] && $harga>$d1['batas2']) {

$nilai = 0; }

}

$derajatNama = $d1['nama'];

$masukinNilaiDerajat = $masukinNilaiDerajat.", '".$nilai."'"; }

$xxx = "INSERT INTO derajat_harga VALUES ('$IDterakhir', '$merk', '$jenis', '$harga' ".$masukinNilaiDerajat.")";

mysql_query($xxx) or die(mysql_error());

 Kriteria KONDISI

$q2 = mysql_query("SELECT * FROM kriteria_kondisi") or die(mysql_error());

$masukinNilaiDerajat = "";

while($d2 = mysql_fetch_assoc($q2)){ $nilai;

if($d2['nilai2']==0 && $d2['batas1']==0) { //KURVA TURUN if($kondisi<=$d2['nilai1'] && $kondisi>0) {

$nilai = 1;

} else if($kondisi<=$d2['batas2'] && $kondisi>$d2['nilai1']){

$nilai = ($d2['batas2'] - $kondisi) / $d2['toleransi'];

} else if($kondisi>$d2['batas2']){ $nilai = 0;

} }

else if($d2['batas1']!=0 && $d2['batas2']!=0) { //KURVA TRAPESIUM if($kondisi<=$d2['nilai2']&&$kondisi>$d2['nilai1']){

} else if($kondisi<=$d2['nilai1']&&$kondisi>$d2['batas1']){ $nilai = $kondisi / $d2['nilai1'];

} else if($kondisi<=$d2['batas2']&&$kondisi>$d2['nilai2']){ $nilai = ($d2['batas2'] - $kondisi) / $d2['nilai1']; } else if($kondisi>$d2['batas2']||$kondisi<$d2['batas1']){

$nilai = 0; }

}

else if($d2['nilai2']==0 && $d2['batas2']==0) { //KURVA NAIK if($kondisi>$d2['nilai1']) {

$nilai = 1;

} else if($kondisi<=$d2['nilai1'] && $kondisi>=$d2['batas1']){

$nilai = ($kondisi - $d2['batas1']) / $d2['toleransi'];

} else if($kondisi<$d2['batas1']){ $nilai = 0;

}

} else if($d2['batas1']!=0 && $d2['batas2']!=0 && $d2['nilai2']==0) { //KURVA SEGITIGA

if($kondisi==$d2['nilai1']) { $nilai = 1;

} else if($kondisi>=$d2['batas1']&&$kondisi<$d2['nilai1']){ $nilai = ($kondisi - $d2['batas1']) /

$d2['toleransi']; } else if($kondisi<=$d2['batas2'] &&

$kondisi>$d2['nilai1']) {

$nilai = ($d2['batas2'] - $kondisi) / $d2['toleransi'];

} else if($kondisi<$d2['batas1'] && $kondisi>$d2['batas2']) { $nilai = 0;

} }

$derajatNama = $d2['nama'];

$masukinNilaiDerajat = $masukinNilaiDerajat.", '".$nilai."'"; }

$xxx = "INSERT INTO derajat_kondisi VALUES ('$IDterakhir', '$merk', '$jenis', '$kondisi' ".$masukinNilaiDerajat.")"; mysql_query($xxx) or die(mysql_error());

 Kriteria TAHUN

$q4 = mysql_query("SELECT * FROM kriteria_tahun") or

die(mysql_error());

$masukinNilaiDerajat = "";

while($d4 = mysql_fetch_assoc($q4)){ $nilai;

if($d4['nilai2']==0 && $d4['batas1']==0) { //KURVA TURUN if($tahun<=$d4['nilai1'] && $tahun>0) {

$nilai = 1;

} else if($tahun<=$d4['batas2'] && $tahun>$d4['nilai1']){ $nilai = ($d4['batas2'] - $tahun) / $d4['toleransi']; } else if($tahun>$d4['batas2']){

$nilai = 0; }

}

else if($d4['batas1']!=0 && $d4['batas2']!=0) { //KURVA TRAPESIUM if($tahun<=$d4['nilai2']&&$tahun>$d4['nilai1']){

$nilai = 1;

} else if($tahun<=$d4['nilai1']&&$tahun>$d4['batas1']){ $nilai = $tahun / $d4['nilai1'];

} else if($tahun<=$d4['batas2']&&$tahun>$d4['nilai2']){ $nilai = ($d4['batas2'] - $tahun) / $d4['nilai1']; } else if($tahun>$d4['batas2']||$tahun<$d4['batas1']){

$nilai = 0; }

} else if($d4['nilai2']==0 && $d4['batas2']==0) { //KURVA NAIK if($tahun>$d4['nilai1']) {

$nilai = 1;

} else if($tahun<=$d4['nilai1'] && $tahun>=$d4['batas1']){ $nilai = ($tahun - $d4['batas1']) / $d4['toleransi']; } else if($tahun<$d4['batas1']){

$nilai = 0; }

} else if($d4['batas1']!=0 && $d4['batas2']!=0 && $d4['nilai2']==0) { //KURVA SEGITIGA

if($tahun==$d4['nilai1']) { $nilai = 1;

} else if($tahun>=$d4['batas1'] && $tahun<$d4['nilai1']) { $nilai = ($tahun - $d4['batas1']) / $d4['toleransi']; } else if($tahun<=$d4['batas2'] && $tahun>$d4['nilai1']) {

$nilai = ($d4['batas2'] - $tahun) / $d4['toleransi']; } else if($tahun<$d4['batas1'] && $tahun>$d4['batas2']) {

$nilai = 0; }

}

$derajatNama = $d4['nama'];

$masukinNilaiDerajat = $masukinNilaiDerajat.", '".$nilai."'"; }

$xxx = "INSERT INTO derajat_tahun VALUES ('$IDterakhir', '$merk', '$jenis', '$tahun' ".$masukinNilaiDerajat.")";

mysql_query($xxx) or die(mysql_error());

4. Pencarian Motor dengan Perhitungan Nilai Derajat Optimum  Form Pencarian

<form method="post" action="" style="display:inline; "> <select name="operator2" style="height:30px;">

<option value="LEAST (">AND</option> <option value="GREATEST (">OR</option> </select>

<input type="submit" name="submitOperator2" value="+"> </form>

<form name="pilihKriteria" method="post" action="">

<select name="kriteria" style="width:150px; height:30px;"> <option disabled selected>Kriteria Pencarian</option> <option value="kondisi"

<?php if(isset($_POST['submitKriteria'])){

if($_POST['kriteria']=="kondisi"){ echo 'selected'; } } ?>>Kondisi</option>

<option value="tahun"

<?php if(isset($_POST['submitKriteria'])){

if($_POST['kriteria']=="tahun"){ echo 'selected'; } } ?>>Tahun</option>

<option value="harga"

<?php if(isset($_POST['submitKriteria'])){

if($_POST['kriteria']=="harga"){ echo 'selected'; } } ?>>Harga</option>

</select>

</form>

<form name="pilihLevel" method="post" action=""> <input type="hidden" name="kriteria" value="

<?php if(isset($_POST['kriteria'])){echo $_POST['kriteria']; } else {echo '-'; } ?>"> <select name="operator1" <?php if(!isset($_POST['submitKriteria'])){echo 'disabled'; }?>> <option value="LIKE">LIKE</option> <option value="NOT">NOT</option> </select> <select name="level" <?php if(!isset($_POST['submitKriteria'])){echo 'disabled'; }?>> <option disabled selected>Level</option>

<?php

if(isset($_POST['submitKriteria'])){ include('koneksi.php');

$query = mysql_query("SELECT * FROM

kriteria_".$_POST['kriteria']) or die(mysql_error()); if(mysql_num_rows($query) == 0){

echo '<option value="-" disabled>-</option>'; } else {

while($data = mysql_fetch_assoc($query)){ echo '<option value="'.$data['nama'].'"> '.$data['nama'].'</option>';

}}} ?>

</select>

<input type="submit" name="submitOperator1" value="+"> </form>

<form method="post" action="" style="display:inline; "> <select name="kurung" style="height:30px; width:50px;">

<option value=", ">,</option> <option value="(">(</option> s <option value=") ">)</option>

</select>

<input type="submit" name="submitKurung" value="+"> </form>

<form method="post" action="" style="display:inline; "> <input type="submit" name="resetQuery" value="RESET"> </form>

 Proses Pencarian <?php

$_SESSION['q1'] = "SELECT datamotor.id, datamotor.merk, datamotor.jenis, datamotor.tahun, datamotor.mesin, datamotor.tangki, datamotor.kondisi, datamotor.harga, datamotor.catatan, "; if(isset($_POST['submitOperator1'])){ $kriteria = strtoupper($_POST['kriteria']); $level = strtoupper($_POST['level']); $opr1 = $_POST['operator1']; if($opr1=="NOT"){ $_SESSION['queryPencarian'] = $_SESSION['queryPencarian']."1 – derajat_".$kriteria.".".$level;

$_SESSION['finalQuery'] = $_SESSION['finalQuery']." LEFT JOIN derajat_".$kriteria." ON datamotor.id = derajat_".$kriteria.".id";

$_SESSION['queryPencarian'] = $_SESSION['queryPencarian']. "derajat_".$kriteria.".".$level;

$_SESSION['finalQuery'] = $_SESSION['finalQuery']." LEFT JOIN derajat_".$kriteria." ON datamotor.id = derajat_".$kriteria.".id"; } } if(isset($_POST['submitOperator2'])){ $opr2 = $_POST['operator2']; $_SESSION['queryPencarian'] = $_SESSION['queryPencarian'].$opr2; } if(isset($_POST['submitKurung'])){ $kurung = $_POST['kurung']; $_SESSION['queryPencarian'] = $_SESSION['queryPencarian'].$kurung; } ?>

<form method="post" action="">

<i>Generate Query Pencarian</i><br/> <?php

if(!isset($_SESSION['queryPencarian'])){ $_SESSION['queryPencarian'] = ""; }

?>

<input type="text" name="queryPencarian" value=" <?php echo $_SESSION['queryPencarian']; ?>">

<input type="submit" name="carikanmotor" value="CARI"> </form> <?php $_SESSION['carikan'] = ""; if(isset($_SESSION['queryPencarian'])){ $_SESSION['carikan'] = $_SESSION['q1'].$_SESSION['queryPencarian']." AS

FireStrength FROM datamotor".$_SESSION['finalQuery']." WHERE ".$_SESSION['queryPencarian']." > 0 ORDER BY FireStrength DESC"; }

?>

 Tampilkan hasil pencarian <?php

if(isset($_POST['carikanmotor'])){

echo '<table width="85%" border="5" cellpadding="10">

<tr><td align="center" valign="center" bgcolor="#ccc">'; echo '<pre>H A S I L P E N C A R I A N M O T O R</pre><hr>'; include('koneksi.php');

$q = $_SESSION['carikan'];

$query = mysql_query($q) or die(mysql_error()); if(mysql_num_rows($query) == 0){

echo 'Data motor tidak ditemukan. '; } else {

$no = 1;

echo '<table width="100%" cellspacing="0"> <tr bgcolor="#ffffff"> <td align="center"><b>No</b></td> <td align="center"><b>Merk</b></td> <td align="center"><b>Jenis</b></td> <td align="center"><b>Bobot</b></td> <td align="center"><b>Mesin</b></td> <td align="center"><b>Tangki</b></td> <td align="center"><b>Tahun</b></td> <td align="center"><b>Kondisi</b></td> <td align="center"><b>Harga</b></td>

<td align="center"><b>Catatan</b></td> </tr>'; while($data = mysql_fetch_assoc($query)){ echo '<tr height="40px">; echo '<td>'.$no.'</td>'; echo '<td>'.$data['merk'].'</td>'; echo '<td>'.$data['jenis'].'</td>'; echo '<td>'.$data['FireStrength'].'</td>'; echo '<td>'.$data['mesin'].'cc</td>'; echo '<td>'.$data['tangki'].'ltr</td>'; echo '<td>'.$data['tahun'].'</td>'; echo '<td>'.$data['kondisi'].'%</td>'; echo '<td>Rp'.$data['harga'].'</td>'; echo '<td>'.$data['catatan'].'</td>'; echo '</tr>'; $no++; } } echo '</td></tr></table>'; } ?>

Dokumen terkait