September 23, 2017 thumb Penerapan Aplikasi Penjadwalan dengan Range

pada tulisan sebelumnya (Penerapan Aplikasi Penjadwalan dengan PHP) saya telah sedikit membahas bagaimana cara untuk menampilkan jadwal kosong, namun pada contoh kasus sebelumnya hanya menggunakan kriteria satu tanggal untuk dalam proses booking. nah bagaiman jika kriteria tanggal terpakai itu juga merupakan range.

 

sebenarnya caranya hampir sama, kita tinggal list tanggal-tanggal dalam range tertentu. kemudian kita slice dengan seluruh tanggal. contoh kasusnya seperti ini, misalnya dari tanggal 01 September 2017 sampai 01 Oktober 2017 disewakan sebuah kamar, dan berikut ini adalah tanggal booking yang sudah dipesan orang lain adalah 3 – 5 september 2017, 7-12 September 2017, 16-21 September 2017, dan 28-29 September 2017. logikanya sederhana, kita list tanggal – tanggal terpakai, kita gabungkan menjadi satu array tertentu kemudian kita slice dengan seluruh tanggal rentang. berikut ini adalah source codenya.

 
<?php
$tgl_awal="2017-09-01";
$tgl_akhir="2017-10-01";
$list_disewakan=createDateRangeArray($tgl_awal,$tgl_akhir);

$list_tanggal_terpakai=array();
$range_satu_tanggal_terpakai=createDateRangeArray("2017-09-03","2017-09-05");
$list_tanggal_terpakai=array_merge($list_tanggal_terpakai,$range_satu_tanggal_terpakai);
$range_satu_tanggal_terpakai=createDateRangeArray("2017-09-07","2017-09-12");
$list_tanggal_terpakai=array_merge($list_tanggal_terpakai,$range_satu_tanggal_terpakai);
$range_satu_tanggal_terpakai=createDateRangeArray("2017-09-16","2017-09-21");
$list_tanggal_terpakai=array_merge($list_tanggal_terpakai,$range_satu_tanggal_terpakai);
$range_satu_tanggal_terpakai=createDateRangeArray("2017-09-28","2017-09-29");
$list_tanggal_terpakai=array_merge($list_tanggal_terpakai,$range_satu_tanggal_terpakai);


$jadwal_kosong=array_diff($list_disewakan,$list_tanggal_terpakai);

$no=0;
foreach($jadwal_kosong as $x){
    $no++;
    echo $no.". ".$x." - Tersedia&lt;/br&gt;";
}
?>

perbedaanya hanya pada list tanggal terpakai menggunakan fungsi pembuat date range (createDateRangeArray). yang mana hasil dari pembuatan range tersebut akan di gabungkan menggunakan array_merge, hasil keseluruhan akan dilakukan pengecekan perbedaan data menggunakan array_diff. berikut ini adalah hasil screenshotnya.

Hasil Running Program

Hasil Running Program

demikian yang bisa saya bahas, untuk source code lengkap dapat di download di Google Drive. sampai jumpa pada tulisan berikutnya Salam Goblooge.

Comments

total comments