Minggu, 22 April 2018

Latihan Web Programming II Pertemuan 4 & 5

Halo teman-teman pada pertemuan kali ini saya akan melanjutkan pembahasan pada pertemuan sebelumnya yang membahas tentang pembuatan website portal berita.

Admin portal berita
Admin portal berita melakukan pengelolaan data /modul

a. Berita (lihat, tambah, edit, hapus)
b. Iklan (lihat, tambah edit, hapus)
c. Anggota (lihat, edit status)

ket : Pada halaman ini, Admin dapat melakukan entry iklan , sekaligus juga menentukan tanggal mulainya iklan dan kapan berakhirnya, sekaligus menentukan harga per hari iklan yg ditampilkan sehingga dapat diketahui jumlah keutungan yang diperoleh tampilan yg diharapkan adalah sebagai berikut



A. folder perintah

1. Buat halaman loginadmin.php


2. buat halaman kelola_berita.php




3. Buat halaman kelola_iklan.php





4. Buat halaman kelola_anggota.php



B.folder tampilan

1. Buat halaman menuadmin.php


2. buat halaman kelola_berita.php



3. Buat halaman tambah_berita.php



4. Buat halaman edit_berita.php



5. Buat halaman kelola_iklan.php




6. Buat halaman tambah_iklan.php



7. Buat halaman edit_iklan.php




8. Buat halaman kelola_anggota.php



Sekarang, preview di browser dg mengetik portalberita/loginadmin.php

Kamis, 22 Maret 2018

Latihan Web Programming II Pertemuan 2 & 3

Assalammualaikum Wr.Wb


   Halo pada pertemuan kedua hari ini saya akan membuat langkah-langkan dalam membuat website portal berita. Alasan saya mengapa membuat langkah-langkah dalam membuat website portal berita adalah karena website portal berita cukup populer dan banyak orang-orang untuk mencari informasi dan juga studi kasusnya mudah dipahami.


User Requirements

Hal yang dibutuhkan dan disediakan oleh sistem
  1. Sistem memuat konten berita yang dipisahkan berdasarkan kategori dan dapat dikelola oleh admin (tambah, edit, hapus)
  2. Untuk memperoleh laba, perusahaan menyediakan fasilitas layanan iklan. Dimana siapapun dapat beriklan dan ditampilkan di kolom yang disediakan dalam jangka waktu tertentu (sesuai permintaan). Perusahaan dapat melihat laporan keuntungan yang diperoleh dari iklan.
  3. Iklan yang tampil adalah iklan yang belum lewat masa aktifnya, jika sudah lewat tanggal akhir, maka iklan akan nonaktif dengan sendirinya.
  4. Jadikan Kategori yang ada di halaman depan, sebagai menu utama, selain home (satu baris dengan home) dengan format huruf kapital semua.
  5. Untuk konten / isi berita :
          a. judul huruf besar di awal kata
          b. Tampil nama admin dan tanggal posting dengan huruf kecil berbahasa
              indonesia

      6. Pengunjung dapat memberikan komentarnya terhadap berita,
          dengan syarat harus menjadi anggota terlebih dahulu.

Dari user requirement diatas, kita dapat membentuk suatu database dengan tabel-tabel seperti berikut

  • Buat database dengan nama : materi_portalberita
  • Buat tabel kategori dengan struktur sebagai berikut

      
    Isilah tabel kategori sebagai berikut
    
    Ket : Perhatikan huruf yang digunakan huruf kecil semua (lowercase)

  • Buat tabel berita dengan struktur seperti di bawah ini
   
   Isi tabel berita sebanyak 3 record dengan masing-masing kategori
   Contohnya :

  • Buat tabel admin sebagai berikut
  
  Isi tabel admin dengan record berikut


  Password nilainya kita enkripsi dengan bantuan fungsi md5

  • Buat tabel anggota dengan struktur sebagai berikut
   Isi tabel anggota 


  • Buat tabel komentar sebagai berikut
   Ket : Tabel ini berguna untuk menampilkan komentar. Pengunjung yang dapat
            mengirim komentar diharuskan login terlebih dahulu.


  • Buat tabel iklan sebagai berikut

  Isilah tabel iklan sebanyak 2 record dengan ketentuan
  isi record bebas, kecuali :
  1. Record diisi tgl_awal = saat ini, tgl_akhir = saat ini, lamasewa = 1 hari, hargasewa = 1500, totalharga = 15000, aktif = 1
  2. Record diisi tgl_awal = tgl_kemarin, tgl_akhir = tgl_kemarin, lamasewa = 1 hari, hargasewa = 15000, totalharga = 15000, aktif = 1. (Pada saat website di-load, posisi aktif akan menjadi 0 karena lewat dari tgl sekarang)
  3. Untuk gambar, pastikan ekstensi gambarnya ikut disebutkan, sebagai contoh, seperti berikut
  4. Pastikan gambar dengan nama dan ekstensinya yang sama, di simpan di folder gambar

  Relasinya adalah sebagai berikut :

Kamis, 15 Maret 2018

Latihan WEB PROGRAMMING II pertemuan 1

LATIHAN

  • Buat database dengan nama : materi_web2
  • Buat tabel dengan nama tabel_1
          Strukturnya  seperti berikut :



  • Isilah record sebagai berikut


  • Buatlah tabel dengan nama table_2


  • Buatlah tabel dengan nama table_3 dengan struktur yang sama persis dengan nama table_2 (boleh di duplicate)
1. Latihan Memanipulasi String
Latihan string ini penting untuk menyeragammkan nilai yang akan dikirim ataupun yang ditampilkan
  • strtouper
  • strtolower
  • ucwords
  • Buat folder latihan_pra_uts di htdocs
  • Buat file koneksi.php
--------------------------------------------------------------------------------------------------
Source Code koneksi.php :

<?php
mysql_connect("localhost","root","") or die ("gagal konek server");
mysql_select_db ("materi_web2") or die ("gagal konek database");

?>
--------------------------------------------------------------------------------------------------
  • Buat file lat_string1.php
--------------------------------------------------------------------------------------------------
Source Code lat_string1.php :

<?php
//manipulasi string 1
include "koneksi.php"; //menyertakan halaman koneksi.php, dihalaman ini
$qry=mysql_query("select a_nama1 from table_1"); //menampilkan field a_nama1, dari index pertama muncul
$data=mysql_fetch_array($qry); //memuat a_nama1 kedalam array
$namapanggilan=$data['a_nama1']; //array disimpan ke dalam variabel
echo "Nama di database(original) = ".$namapanggilan."<br>"; //menampilkan nilai yg ditaruh di variabel
echo "Nama dalam huruf besar = ".strtoupper($namapanggilan)."<br>"; //ditampilkan dalam huruf besar
echo "Nama dalam huruf kecil = ".strtolower($namapanggilan)."<br>"; //ditampilkan dalam huruf kecil
echo "Huruf kecil di awal = ".ucwords($namapanggilan)."<br>"; // awal kata, ditampilkan dl huruf besar
?>
--------------------------------------------------------------------------------------------------
  • Outputnya adalah :




Latihan Selanjutnya
  • Masih di lat_string1.php
  • Bagaimana menampilkan Rosi (di urutan 4 record) dengan dua cara
  • Menggunakan php dan dengan query sql
--------------------------------------------------------------------------------------------------
Source Code lat_string1.php (Lanjutan) :

<?php
//manipulasi string 1
include "koneksi.php"; //menyertakan halaman koneksi.php, dihalaman ini
$qry=mysql_query("select a_nama1 from table_1"); //menampilkan field a_nama1, dari index pertama muncul
$data=mysql_fetch_array($qry); //memuat a_nama1 kedalam array
$namapanggilan=$data['a_nama1']; //array disimpan ke dalam variabel
echo "Nama di database(original) = ".$namapanggilan."<br>"; //menampilkan nilai yg ditaruh di variabel
echo "Nama dalam huruf besar = ".strtoupper($namapanggilan)."<br>"; //ditampilkan dalam huruf besar
echo "Nama dalam huruf kecil = ".strtolower($namapanggilan)."<br>"; //ditampilkan dalam huruf kecil
echo "Huruf kecil di awal = ".ucwords($namapanggilan)."<br>"; // awal kata, ditampilkan dl huruf besar


echo "<h2>Menggunakan array 2 dimensi (menampilkan urutan array )</h2>";
$qry2=mysql_query("select a_nama1 from table_1"); 
$data2=array();
while ($data2[] = mysql_fetch_array($qry2));
$namapanggilan2=$data2[3]['a_nama1']; 
echo "Nama di database(original) = ".$namapanggilan2."<br>"; 
echo "Nama dalam huruf besar = ".strtoupper($namapanggilan2)."<br>";
echo "Nama dalam huruf kecil = ".strtolower($namapanggilan2)."<br>"; 
echo "Huruf kecil di awal = ".ucwords($namapanggilan2)."<br>";

?>
--------------------------------------------------------------------------------------------------
  • Outputnya adalah :




Cara 2 Menggunakan Query SQL
  • Anda tinggal tambahkan skrip limit 3,1 pada baris ke 3 dari skrip lat_string1.php
  • "select a_nama1 from table_1 limit 3,1"
  • Artinya, mengambil 1 nilai dari field a_nama1 dari table_1 diambil dari index ke -3 (posisi ke-4)
--------------------------------------------------------------------------------------------------
Source Code lat_string1.php (lanjutan 2) :

$qry=mysql_query("select a_nama1 from table_1 limit 3,1"); //menampilkan field a_nama1, dari index pertama muncul
$data=mysql_fetch_array($qry); //memuat a_nama1 kedalam array
$namapanggilan=$data['a_nama1']; //array disimpan ke dalam variabel
echo "<br>";
echo "<br>";
echo "Nama di database(original) = ".$namapanggilan."<br>"; //menampilkan nilai yg ditaruh di variabel
echo "Nama dalam huruf besar = ".strtoupper($namapanggilan)."<br>"; //ditampilkan dalam huruf besar
echo "Nama dalam huruf kecil = ".strtolower($namapanggilan)."<br>"; //ditampilkan dalam huruf kecil
echo "Huruf kecil di awal = ".ucwords($namapanggilan)."<br>"; // awal kata, ditampilkan dl huruf besar
--------------------------------------------------------------------------------------------------
  • Outputnya adalah :




Latihan Lanjutan
  • buat output untuk  menampilkan tulisan Ogi
  • buat output untuk  menampilkan tulisan Yog
  • buat output untuk  menampilkan tulisan Gigi
  • dengan menggunakan substr,ucword
--------------------------------------------------------------------------------------------------
Source Code lat_string_1 (Lanjutan 3) :

<?php
echo "<br>";
echo "<br>";
$nama = "Ogi Yog Gigi";
  $nama_depan = substr($nama, 0, 3);
  $nama_tengah = substr($nama, 4, 4);
  $nama_belakang = substr($nama, 8, 11);
  echo ucwords($nama_depan); echo "<br>";
  echo ucwords($nama_tengah); echo "<br>";
  echo ucwords($nama_belakang); echo "<br>";

?>
--------------------------------------------------------------------------------------------------
  • Outputnya adalah :

  • Buat file lat_string2.php
--------------------------------------------------------------------------------------------------
Source Code lat_string2.php :

<?php
//manipulasi string 1
include "koneksi.php"; //menyertakan halaman koneksi.php, di halaman ini
$qry=mysql_query("select a_nama2 from table_1"); //menampilkan field a_nama2, dari index pertama muncul
$data=mysql_fetch_array($qry); //memuat a_nama1 ke dalam array
$namalengkap=$data['a_nama2']; // array disimpan ke dalam variabel
$explode=explode(" ",$namalengkap); // memecah string berdasarkan pola tertentu, contoh ini,menggunakan pola spasi
$nama_awal=$explode[0]; //array pertama dari string yang dipecah
$nama_akhir=$explode[1];
$shuffled = str_shuffle($nama_awal); //merandom string dari nama awal
$random= rand(2,99); //mengambil 2 digit angka random dari 0-99
$nama_inisial=$shuffled.$random; //menggabungkan nilai dai nama yang diacak dengan angka yang diacak, sehingga terbentuklah inisial
echo "Nama lengkap = ".$namalengkap."<br>"; //menampilkan nilai yang ditaruh di variabel
echo "Nama awal = ".$nama_awal."<br>";
echo "Nama akhir = ".$nama_akhir."<br>";
echo "Nama Inisial = ".$nama_inisial."<br>";
?>
--------------------------------------------------------------------------------------------------
  • Outputnya adalah :



  • Buat output untuk menampilkan tulisan Rosi K.S (R=huruf kapital, K=capital, S=kapital)
  • Buat output untuk menampilkan tulisan Serli,Rosi Kusuma
  • dengan menggunakan substr,ucword
--------------------------------------------------------------------------------------------------
Source Code lat_string2.php (Lanjutan 2) :

<?php
echo "<br>";
echo "<br>";
  $nama = "rosi k.S serly, rosi kusuma";
  $nama1 = substr($nama, 0, 9);
  $nama2 = substr($nama, 9, 26);
  echo ucwords($nama1); echo "<br>";
  echo ucwords($nama2); echo "<br>";
 ?>
--------------------------------------------------------------------------------------------------
  • Outputnya adalah :

  • Buat lat_string3.php
--------------------------------------------------------------------------------------------------
Source Code lat_string3.php :

<?php
//manipulasi string 3
include "koneksi.php"; //menyertakan halaman koneksi.php,di halaman ini
$qry=mysql_query("select b_tgl1,c_rupiah,d_array_hari from table_1"); //menampilkan field b_tgl1,c_rupiah, dari index pertama muncul
$data=mysql_fetch_array($qry); //memuat a_nama1 ke dalam array
$tanggal_default=$data['b_tgl1']; //memasukan b_tgl1 ke variabel $tanggal_default
$tanggal_replace=str_replace("-","/",$data['b_tgl1']); //mengganti tanda strip di b_tgl1 dengan tanda slash
$uang_default=$data['c_rupiah']; //memasukan c_rupiah ke $uang_default
$uang_rupiah =number_format($uang_default,0,',','.'); //merubah separator default menjadi tanda titik, tidak ada nilai belakang koma yang dipisahkan dengan tanda koma (100.000,00) dari format sebelumnya (US) (100,00.00)
$kumpulan_hari=$data['d_array_hari']; //array_hari di tampung di $kumpulan_hari
$kumpulan_hari_explode=explode(" ",$kumpulan_hari); //memecah string berdasarkan pola tertentu, contoh ini, menggunakan pola spasi
echo "Tanggal Default = ".$tanggal_default."<br>"; //menampilkan nilai yang ditaruh di variabel
echo "Tanggal replace = ".$tanggal_replace."<br>";
echo "Uang Default = ".$uang_default."<br>";
echo "Uang Rupiah = Rp.".$uang_rupiah."<br><br>";
echo"<hr><h4>Hari2</h4><table border='1' cellpading='3'>";
foreach($kumpulan_hari_explode as $hari){//melakukan perulangan dari array kumpulan hari (yang sebelumnya sudah dipecah berdasarkan spasi)
echo "<tr><td>".$hari."</td></tr>";
}
echo"</table>";
?>
--------------------------------------------------------------------------------------------------
  • Outputnya adalah :



2. Latihan Operasi
Mengenai function dan Class
Function adalah kumpulan perintah yang dimuat ke dalam suatu alias. Dimana perintah yang sudah menjadi alias tersebut dapat dipanggil di halaman yang sama, ataupun halaman lain. Function dapat menerima, mengolah parameter serta mengubahnya, sebagai contoh adalah sebagai berikut:


  • Buat file fungsi_waktu.php
--------------------------------------------------------------------------------------------------
Source Code fungsi_waktu.php :

<?php
//fungsi format tgl 1 : display tanggal 12 Agustus 2015, dari format tanggal 2015-08-12
function format_tgl1($parameter){ //membuat fungsi format_tgl yang akan memproses nilai yang ditaruh di parameter (diharapkan nilainya adalah tgl yyyy-mm-dd )
$tanggal = substr($parameter,8,2); //mengambil 2 digit dari index ke-8 (urutan 9)
$bln_angka= substr($parameter,5,2); // mengambil 2 dari index ke index ke-5 (urutan 6)
switch ($bln_angka){ //mengkonversi bulan yang formatnya angka ke dalam bentuk string
     case 1:
  $bulan = "Januari";
  break;
 case 2:
  $bulan = "Februari";
break;
case 3:
$bulan = "Maret";
break;
case 4:
$bulan = "April";
break;
case 5:
$bulan = "Mei";
break;
case 6:
$bulan = "Juni";
break;
case 7:
$bulan = "Juli";
break;
case 8:
$bulan = "Agustus";
break;
case 9:
$bulan = "September";
break;
case 10:
$bulan = "Oktober";
break;
case 11:
$bulan = "November";
break;
case 12:
$bulan = "Desember";
break;
} //tutup switch case
$tahun = substr($parameter,0,4); //mengambil 4 angka di awal
return $tanggal.' '.$bulan.' '.$tahun; //return berfungsi untuk mengubah nilai parameter menjadi nilai yang sudah diproses
} // tutup function
//fungsi format tgl 2 : display tanggal 12/08/2015, dari format tanggal 2015-08-12
function format_tgl2($parameter){ //membuat fungsi format_tgl yang akan memproses nilai yang ditaruh di parameter (diharapkan nilainya adalah tgl yyyy-mm-dd )
$tanggal = substr($parameter,8,2); //mengambil 2 digit dari index ke-8 (urutan 9)
$bulan = substr($parameter,5,2); //mengambil 2 dari index ke-5 (urutan 6)
$tahun = substr($parameter,0,4); //mengambil 4 angka di awal
return $tanggal.'/'.$bulan.'/'.$tahun; //return berfungsi untuk mengubah nilai parameter menjadi nilai yang sudah diproses
} //tutup function
?>
--------------------------------------------------------------------------------------------------
  • Buat halaman dengan nama fungsi_nominal.php
--------------------------------------------------------------------------------------------------
Source Code fungsi_nominal.php :

<?php
function nominal($parameter){ //membuat nama fungsi nominal untuk menampung sebuah parameter mmisal 1.000
$nilai= number_format($parameter,0,',','.'); //parameter yang tersebut diubah ke dalam format 1.000,00 (tidak ada nilai di belakang koma), ditaruh ke dalam var nilai 
return $nilai;
}
?>
--------------------------------------------------------------------------------------------------
  • Buat halaman lat_operation1.php
          Pada contoh diatas kita dapat temukan, kata new.
          New disini adalah penggunaan Class, yaitu sekumpulan dari function (dalam kasus ini, class dan function-functionnya sudah disediakan oleh PHP5, jadi tidak perlu membuat function lagi)

--------------------------------------------------------------------------------------------------
Source Code lat_operation1.php :

<?php
//latihan operasi 1
include "koneksi.php"; //menyertakan halaman koneksi.php, di halaman ini
include "fungsi_waktu.php"; //menyertakan halaman fungsi_waktu.php, di halaman ini
include "fungsi_nominal.php"; //menyertakan halaman fungsi_nominal.php, di halaman ini
$qry=mysql_query("select b_tgl1, b_tgl2, c_rupiah from table_1"); //menampilkan field b_tgl1,c_rupiah, dari index pertama muncul
$data=mysql_fetch_array($qry); //memuat a_nama1 ke dalam array
$tanggal1= format_tgl1($data['b_tgl1']); //menggunakan fungsi format_tgl1
$tanggal2= format_tgl1($data['b_tgl2']); //menggunakan fungsi format_tgl2
$tgl1=new DateTime($data['b_tgl1']); //memasukkan b_tgl1 ke variabel $tgl1, di-inisiasi-kan ke dalam ke class date time (class DateTime sudah disediakan PHPS)
$tgl2=new DateTime($data['b_tgl2']); //memasukkan b_tgl1 ke variabel $tgl2, di-inisiasi-kan ke dalam ke class date time (class DateTime sudah disediakan PHPS)
$interval = $tgl1->diff($tgl2); //memuat selisih antara tgl1 dengan tgl2 dengan menggunakan fungsi diff di Class Date time yg sudah disediakan PHPS
$selisih = $interval->format('%R%a');//memuat selisih secara otomatis, hari, atau bulan, atau tahun
echo "<hr>
selisih antara $tanggal1 dengan $tanggal2 adalah $selisih hari
";
$ceknilai=strlen($selisih)-1; //mengukur panjang string,tujuannya untuk menghilangkan tanda plus atau minus (panjang digit dikurangi  digit)
$nilai_bulat=substr($selisih,1,$ceknilai); //dihilangkan tanda plus atau minusnya dari kiri, serta mengambil nilainya dengan substr sebanyak jumlah nilai
$lamasewa=$nilai_bulat+1; // untuk menghitung dari hari yg sama diawal perhitungan,maka kita perlu tambah 1
$harga=$data['c_rupiah']; //memasukan c_rupiah ke variabel $uang, dan diproses dengan function
$tot_bayar=$lamasewa*$harga;
echo "<hr><hr><h2>Lama Sewa : $lamasewa hari</h2>";
echo "<h2>Harga Sewa 1 hari = Rp.".nominal($harga)."</h2>"; //menggunakan fungsi nominal untuk harga
echo "<h2>Total Bayar = Rp. ".nominal($tot_bayar)."</h2>"; //menggunakan fungsi nominal untuk harga
echo "<h5>Detail</h5><hr>"; //menggunakan fungsi nominal untuk harga
echo "<br>";
for($i=0;$i<=$nilai_bulat;$i++){ //perulangan dari 0, karena dimulai dari tanggal itu juga
$date = new DateTime($data['b_tgl1']); //memasukkan b_tgl1 ke variabel $tgl1, di-inisiasi-kan ke dalam ke class date time (class DateTime sudah disediakan PHPS)
$date->add(new DateInterval("P".$i."D")); //P=Plus, $i=jumlah, D= Hari, jadi dari tanggal nambah $i hari
echo $i+1; echo ") ".$date->format('Y-m-d') . " : Rp. ".nominal($harga)."<br>"; //untuk nomor yang tampil,tidak boleh dimulai dari angka nl, maka tambahkan 1, //format tanggal yang tampil adalah Y-m-d
}
?>
--------------------------------------------------------------------------------------------------

  • Outputnya adalah :




  • Buat Halaman baru dengan nama lat_operation2.php
1. Buat tampilan seperti lat_operation1.php
    Namun nilai yang ditampilkan adalah:
    a) Tanggal paling awal dari b_tgl1
    b) Tanggal paling akhir dari b_tgl2
    c) Hitung jaraknya, dan hitung biayanya (biaya menggunakan b_tgl1 di record
         pertama)
    d) Tanggal yang tampil di perulangan bentuknya adalah d-m-YYYY

--------------------------------------------------------------------------------------------------
Source Code lat_operation2.php :

<?php
//latihan operasi 1
include "koneksi.php"; //menyertakan halaman koneksi.php, di halaman ini
include "fungsi_waktu.php"; //menyertakan halaman fungsi_waktu.php, di halaman ini
include "fungsi_nominal.php"; //menyertakan halaman fungsi_nominal.php, di halaman ini
$qry=mysql_query("select b_tgl1, b_tgl2, c_rupiah from table_1"); //menampilkan field b_tgl1,c_rupiah, dari index pertama muncul
$data=mysql_fetch_array($qry); //memuat a_nama1 ke dalam array
$tanggal1= format_tgl1($data['b_tgl1']); //menggunakan fungsi format_tgl1
$tanggal2= format_tgl1($data['b_tgl2']); //menggunakan fungsi format_tgl2
$tgl1=new DateTime($data['b_tgl1']); //memasukkan b_tgl1 ke variabel $tgl1, di-inisiasi-kan ke dalam ke class date time (class DateTime sudah disediakan PHPS)
$tgl2=new DateTime($data['b_tgl2']); //memasukkan b_tgl1 ke variabel $tgl2, di-inisiasi-kan ke dalam ke class date time (class DateTime sudah disediakan PHPS)
$interval = $tgl1->diff($tgl2); //memuat selisih antara tgl1 dengan tgl2 dengan menggunakan fungsi diff di Class Date time yg sudah disediakan PHPS
$selisih = $interval->format('%R%a');//memuat selisih secara otomatis, hari, atau bulan, atau tahun
echo "<hr>
selisih antara $tanggal1 dengan $tanggal2 adalah $selisih hari
";
$ceknilai=strlen($selisih)+1; //mengukur panjang string,tujuannya untuk menghilangkan tanda plus atau minus (panjang digit dikurangi  digit)
$nilai_bulat=substr($selisih,1,$ceknilai); //dihilangkan tanda plus atau minusnya dari kiri, serta mengambil nilainya dengan substr sebanyak jumlah nilai
$lamasewa=$nilai_bulat+98; // untuk menghitung dari hari yg sama diawal perhitungan,maka kita perlu tambah 1
$harga=$data['c_rupiah']; //memasukan c_rupiah ke variabel $uang, dan diproses dengan function
$tot_bayar=$lamasewa*$harga;
echo "<hr><hr><h2>Lama Sewa : $lamasewa hari</h2>";
echo "<h2>Harga Sewa 1 hari = Rp.".nominal($harga)."</h2>"; //menggunakan fungsi nominal untuk harga
echo "<h2>Total Bayar = Rp. ".nominal($tot_bayar)."</h2>"; //menggunakan fungsi nominal untuk harga
echo "<h5>Detail</h5><hr>"; //menggunakan fungsi nominal untuk harga
echo "<br>";
for($i=0;$i<=$nilai_bulat;$i++){ //perulangan dari 0, karena dimulai dari tanggal itu juga
$date = new DateTime($data['b_tgl1']); //memasukkan b_tgl1 ke variabel $tgl1, di-inisiasi-kan ke dalam ke class date time (class DateTime sudah disediakan PHPS)
$date->add(new DateInterval("P".$i."D")); //P=Plus, $i=jumlah, D= Hari, jadi dari tanggal nambah $i hari
echo $i+1; echo ") ".$date->format('d-m-Y') . " : Rp. ".nominal($harga)."<br>"; //untuk nomor yang tampil,tidak boleh dimulai dari angka nol, maka tambahkan 1, //format tanggal yang tampil adalah d-m-YYYY
}
?>
--------------------------------------------------------------------------------------------------

  • Outputnya adalah :




     Selanjutnya kita membuat halaman baru lagi dengan nama lat_process1.php dan untuk pada latihan ini, kita akan mempelajari pola atau skema aliran data.

Kita akan memasukkan data di tabel_2 (tabel summary) dari tabel_1. Bentuknya adalah :

1. c_rupiah di table_2 adalah seluruh c_rupiah di table_1
2. c_jml di table_2 adalah seluruh c_jml di table_1
3. c_tot_jml adalah summary dari perkalian c_jml*c_rupiah di table_1
4. c_tgl_pindah adalah tgl terakhir data berubah
5. Pada saat bersamaan terjadi 2 proses, proses penyimpanan/update ke table_2, dan
    proses insert ke table_2

--------------------------------------------------------------------------------------------------
Source Code lat_process1.php :

<?php
error_reporting(0);
//manipulasi string 3
include "koneksi.php"; //menyertakan halaman koneksi.php, di halaman ini
include "fungsi_waktu.php"; //menyertakan halaman fungsi_waktu.php,di halaman ini
include "fungsi_nominal.php";
$tgl_sekarang=date('Y-m-d');
$qry=mysql_query("select c_jml, c_rupiah, c_tot_jml,c_tgl_pindah from table_2");
$data=mysql_fetch_array($qry);
$c_tgl_pindah= str_replace("-","/",$data['c_tgl_pindah']);
$jumlah=$data['c_jml'];
$rupiah=number_format($data['c_rupiah'],0,',','.'); //merubah separator default menjadi tanda titik
$total=$data['c_tot_jml'];
echo "Total income Saat ini , tanggal : ".format_tgl1($tgl_sekarang)."<br><hr>"; 1
echo "Summary Jumlah = ".$data['c_jml']."<br>";
echo "Summary Rupiah = Rp.".nominal($data['c_rupiah'])."<br>";
echo "Summary Total = Rp.".nominan($data['c_tot_jml'])."<hr>";
echo "Data terakhir berubah = ".format_tgl1($data['c_tgl_pindah'])."<br>";
echo "<a href='update.php'>Update data </a>"
?>

--------------------------------------------------------------------------------------------------

Setelah membuat halaman lat_process1.php kita akan akan membuat halaman update.php
  • Output tampilan sebelum di klik update :


1)  Sebelum data masuk ke table_2, dilakukan pengecekan terlebih dahulu, jika belum ada data
     maka sistemnya adalah meng-insert, jika belum, maka update.
2)  Data akan terus mengisi ke table_3 (tabel history)
      a) c_rupiah di table_2 adalah c_rupiah di table_1
      b) c_jml di table_2 adalah c_jml di table_1
      c) c_tot_jml adalah perkalian c_jml*c_rupiah di table1
      d) c_tgl_pindah adalah tgl terakhir terisi data

Setelah membuat halaman lat_process1.php kita akan akan membuat halaman update.php
  • Buat halaman dengan nama update.php
--------------------------------------------------------------------------------------------------
Source Code update.php :

<?php
include "fungsi_waktu.php";
include "koneksi.php"; //menyertakan halaman koneksi.php, di halaman ini
//include "fungsi_waktu.php"; //menyertakan halaman koneksi.php, di halaman ini
$cekdata=mysql_num_rows(mysql_query("select*from table_2));
if($cekdata==0){ //jika datanya belum ada
$simpan1=mysql_query("insert into table_2 select sum(c_rupiah), sum(c_jml), sum(c_rupiah*c_jml), curdate() from table_1 ");
//mengkopi data dari table 1 ke table 2
$simpan2=mysql_query("insert into table_3 select c_rupiah, c_jml, c_rupiah*c_jml , nov() from table_1 ");
//mengkopi data dari table 1 ke table 2
}
else
{
$data=mysql_fetch_array(mysql_query("select sum(c_rupiah) as sum_rupiah,sum(c_jml) as sum_jml, sum(c_rupiah*c_jml) as sum total from table_1]'");
$simpan1=mysql_query(update table_2 set c_rupiah='$data[sum_rupiah]', c_jml='$data[sum_jml]', c_tot_jml='$data[sum_total]'");
$simpan2=mysql_query("insert into table_3 select c_rupiah, c_jml, c_rupiah*c_jml, curdate() from table_1 ");
}
if($simpan1 && $simpan2)
header("location:lat_process1.php");
else
echo"gagal tersimpan";


--------------------------------------------------------------------------------------------------


  • Output tampilan setelah di klik update :


Ket :
Jumlah : total jumlah = 2+1 di tabel_1
Rupiah = 30.000+70.000
Summary total = 30.000*2+70.000*1
?>