Membuat sebuah jadwal kegiatan seperti trening, kuliah atau jadwal kegiatan pelajaran lainnya jika dilakukan secara manual mungkin akan memerlukan waktu beberapa lama untuk mengatur agar antara hari, jam mengajar, pengajar terhadap kelas siswa tidak mengalami "bentrok" dibaca (jadwal pelaksanaan kegiatan bersamaan), namun hal itu dapat dilakukan dengan lebih sederhana menggunakan sistem penjadwalan dimana sistem yang akan memilih dan menguji agar setiap kegiatan tidak terjadi bersamaan dalam satu waktu.
Pada kesempatan kali ini saya mencoba mengembangkan sistem penjadwalan menggunakan Algoritma Genetika berbasis PHP, walaupun masih sangat sederhana sistem ini sudah dilengkapi beberapa fitur untuk mendukung pembuatan jadwal, yaitu:
- Sistem Login;
- Pengolahan data kelas;
- Pengolahan data materi dan pengajar;
- Pengolahan data Jadwal;
- Analisa Penjadwalan;
- Informasi proses anlisa penjadwalan;
- Hasil analisa menjadi jadwal berdasarkan kelas dan tingkat;
- Statistik hasil proses analisa.
- dan Antarmuka didukung dengan Bootstrap
Struktur Source code-nya pun saya buat sangat sederhana dan saya pisah-pisah untuk memudahkan anda jika ingin mempelajarinya dan masih sangat memungkinkan untuk dikembangkan lagi.
Berikut penggalan script analisa algoritma genetika:
<?php
include("../lib/fungsi.php");//<----memanggil koneksi
//memanggil ruang dan kelas
$sql= mysql_query("select distinct * from tb_kelas");
$i=0;
while ($data=mysql_fetch_array($sql)){
$kelas[$i]=$data['kelas'];
$tk[$i]=$data['tingkat'];
//print_r ("Kelas ".$kelas[$i] ." - Tingkat ");
//print_r ($tk[$i] ."<br/>");
$i++;
}
//echo "Jumlah i= $i";
$populasi =$_REQUEST['populasi'];// Jumlah Populasi
$jml_kelas =$_REQUEST['jm_kelas'];
//$cross_rate =$_REQUEST['cr_rate'] / 100;
echo "<div class='box-body'>";
echo "<div class='alert alert-info '>Jumlah Populasi yang dinginkan adalah : ".$populasi ."</div>";
echo "<div class='alert alert-success '>Jumlah Kelas yang ditentukan adalah : ".$jml_kelas ."</div>";
echo "</div>";
//echo "Jumlah Persentase pertukaran yang dinginkan adalah : ".$_REQUEST['cr_rate'] ."<br/><br/>";
/*------------------------------------------------------------------------------
| membangkitkan populasi awal mengumpulkaan GEN menjadi Individu (Cromosome) |
-------------------------------------------------------------------------------*/
$vektor2=array();
$vektor3=array();
for ($m=0;$m<$populasi;$m++)
{
for ($j=0;$j<$jml_kelas;$j++)
{
$kls=$kelas[$j];
$tgkt=$tk[$j];
//echo "Kelas = ".$kls;
//echo " & Tingkat = ".$tgkt."<br/>";
$sql= mysql_query("select kode_materi,jam from tb_pelatihan where kelas = '".$kls."' and tingkat='".$tgkt."' ");//
$cnt=mysql_num_rows($sql);
reset ($vektor2);
reset ($vektor3);
$vc=0;
while ($data= mysql_fetch_array($sql))// kerjakan sebanyak jumlah data
{
$kode_materi =$data['kode_materi'];
$jam =$data['jam'];
$vektor2[$vc] =$kode_materi;
$vektor3[$vc] =$jam;
//echo "$m $j $vc . Kode materi = ".$kode_materi." , jam = ".$jam." <br/>";
$vc++;
}
//echo"<br/>";
//echo "jumlah vc= $vc <br/>";
// acak kode jadwal
$l=0;
$cn=array();
$jm_gen=$vc;
for($k=0;$k<$jm_gen;$k++)
{
$n = rand(0,$vc-1);
while((in_array($n,$cn)))
{
$n = rand(0,$vc-1);
}
$cn[$k] = $n;
$individu[$m][$j][$l]= $vektor2[$cn[$k]]; //<-- kode materi
//echo "baris ke $m-$j-$l =".$individu[$m][$j][$l]." <br/> ";
$l++;
}
$jm_km[$m][$j]=$l;//menampung jumlah kode materi tiap kelas dan tingkat
}
}
/*------------------------------------------------------------------------------
| Menghitung Nilai fitnes Gen dengan menghitung jumlah kres(bentrok) |
-------------------------------------------------------------------------------*/
//hitung jumlah gen maksimal dari semua kelas
$jmGenMAX=0;
for($m=0; $m<$populasi; $m++)
{
for($j=0;$j<$jml_kelas;$j++)
{
if($jm_km[$m][$j]>$jmGenMAX){
$jmGenMAX=$jm_km[$m][$j];
}
}
}
Akan tetapi untuk saat ini saya belum dapat memberikan source code-nya secara cuma-cuma, dengan alasan blog ini masih memerlukan biaya agar tetap bertahan memberikan informasi, tips dan triks lainnya untuk anda, jadi saya berharap anda dapat memahaminya.
Jadi anda tetap tertarik untuk mendapatkan source sistem penjadwalan ini, anda harus melakukan pembayaran sebesar $10 melalui rekening PAYPAL.
Cara melakukan pembayaran silahkan klik Pay Now dibawah ini dan setelah selesai melakukan transaksi anda akan diarahkan ke link download
Penting anda baca sebelum melakukan pembayaran!
- Bisa Code tidak pernah melakukan pemaksaan untuk melakukan pembayaran terhadap source code penjadwalan ini;
- Bisa Code hanya menerima pembayaran melalui rekening Paypal;
- bisa code tidak bertanggung jawab atas segala bentuk penipuan yang mengatasnamakan bisacode.com;
- Bisa Code menyediakan sorce code sistem penjadwalan ini hanya untuk referensi pembelajaran, dan tidak untuk di jual kembali;
- Bisa Code tidak bertanggung jawab atas penyalahgunaan sourcode ini untuk kepentingan lain selain sebagai referensi belajar;
- Bisa Code tidak pernah menjamin akurasi sourcode penjadwalan ini, oleh karenanya anda diperkenankan untuk menyesuaikan dengan kebutuhan anda.
0 Response to "Source Code Sistem Penjadwalan Dengan Algoritma Genetika"
Posting Komentar