Advertisement
rasyid03

SoalTaxiV2

Aug 15th, 2023 (edited)
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.76 KB | Source Code | 0 0
  1. <?php
  2.  
  3.     // Instruksi Kerja Nomor 1.
  4. $kendaraan = array("Sedan", "Minivan", "Minibus", "Sepeda Motor", "Pickup");
  5.  
  6. // Instruksi Kerja Nomor 2.
  7. sort($kendaraan);
  8.  
  9. // Instruksi Kerja Nomor 6.
  10. /**
  11.  * Menghitung biaya sewa taxi.
  12.  * @param float $biaya_platform Biaya platform
  13.  * @param float $jarak Jarak tempuh dalam kilometer
  14.  * @param float $biaya_per_km Biaya sewa per kilometer
  15.  * @return float Total biaya sewa
  16.  */
  17. function hitung_sewa($biaya_platform, $jarak, $biaya_per_km) {
  18.     $sewa = $jarak * $biaya_per_km - $biaya_platform;
  19.     return $sewa;
  20. }
  21.  
  22. ?>
  23.  
  24. <!DOCTYPE html>
  25. <html>
  26.     <head>
  27.         <title>Pemesanan Taxi Online</title>
  28.         <!-- Instruksi Kerja Nomor 4. -->
  29.         <!-- Menghubungkan dengan library/berkas CSS. -->
  30.         <link rel="stylesheet" href="bootstrap.css">
  31.  
  32.     </head>
  33.    
  34.     <body>
  35.     <div class="container border">
  36.         <!-- Menampilkan judul halaman -->
  37.         <h3>Pemesanan Taxi Online</h3>
  38.        
  39.         <!-- Instruksi Kerja Nomor 5. -->
  40.         <!-- Menampilkan logo Taxi Online -->
  41.        
  42.        
  43.         <!-- Form untuk memasukkan data pemesanan. -->
  44.         <form action="index.php" method="post" id="formPemesanan">
  45.             <div class="row">
  46.                 <!-- Masukan data nama pelanggan. Tipe data text. -->
  47.                 <div class="col-lg-2"><label for="nama">Nama Pelanggan:</label></div>
  48.                 <div class="col-lg-2"><input type="text" id="nama" name="nama"></div>
  49.             </div>
  50.             <div class="row">
  51.                 <!-- Masukan data nomor HP pelanggan. Tipe data number. -->
  52.                 <div class="col-lg-2"><label for="nomor">Nomor HP:</label></div>
  53.                 <div class="col-lg-2"><input type="number" id="noHP" name="noHP" maxlength="16"></div>
  54.             </div>
  55.             <div class="row">
  56.                 <!-- Masukan pilihan jenis kendaraan. -->
  57.                 <div class="col-lg-2"><label for="tipe">Jenis Kendaraan:</label></div>
  58.                 <div class="col-lg-2">
  59.                     <select id="kendaraan" name="kendaraan">
  60.                     <option value="">- Jenis kendaraan -</option>
  61.                     <?php
  62.                     // Instruksi Kerja Nomor 3.
  63.                     // Menampilkan dropdown pilihan jenis kendaraan berdasarkan data pada array $kendaraan menggunakan perulangan.
  64.                     foreach ($kendaraan as $jenis) {
  65.                         echo "<option value='$jenis'>$jenis</option>";
  66.                     }
  67.                     ?>
  68.                     </select>
  69.                 </div>
  70.             </div>
  71.            
  72.             <div class="row">
  73.                 <!-- Masukan data Jarak Tempuh. Tipe data number. -->
  74.                 <div class="col-lg-2"><label for="nomor">Jarak:</label></div>
  75.                 <div class="col-lg-2"><input type="number" id="jarak" name="jarak" maxlength="4"></div>
  76.             </div>
  77.             <div class="row">
  78.                 <!-- Tombol Submit -->
  79.                 <div class="col-lg-2"><button class="btn btn-primary" type="submit" form="formPemesanan" value="Pesan" name="Pesan">Pesan</button></div>
  80.                 <div class="col-lg-2"></div>       
  81.             </div>
  82.         </form>
  83.     </div>
  84.     <?php
  85.     if (isset($_POST['Pesan'])) {
  86.         // Instruksi Kerja Nomor 7
  87.         $jarak_tempuh = $_POST['jarak'];
  88.  
  89.         // Instruksi Kerja Nomor 8 (Percabangan)
  90.         if ($_POST['kendaraan'] == 'Sedan') {
  91.             $biaya_platform = 10000;
  92.             $sewa_per_km = 5000;
  93.         } elseif ($_POST['kendaraan'] == 'Minivan') {
  94.             $biaya_platform = 12000;
  95.             $sewa_per_km = 6000;
  96.         } elseif ($_POST['kendaraan'] == 'Minibus') {
  97.             $biaya_platform = 15000;
  98.             $sewa_per_km = 10000;
  99.         } elseif ($_POST['kendaraan'] == 'Sepeda Motor') {
  100.             $biaya_platform = 5000;
  101.             $sewa_per_km = 3000;
  102.         } elseif ($_POST['kendaraan'] == 'Pickup') {
  103.             $biaya_platform = 15000;
  104.             $sewa_per_km = 8000;
  105.         } else {
  106.             $biaya_platform = 0;
  107.             $sewa_per_km = 0;
  108.         }
  109.  
  110.  
  111.  
  112.             // Instruksi kerja Nomor 9
  113.         $biaya_sewa = hitung_sewa($biaya_platform, $jarak_tempuh, $sewa_per_km);
  114.  
  115.         // Instruksi Kerja Nomor 10.
  116.         $dataPesanan = array(
  117.             'nama' => $_POST['nama'],
  118.             'noHP' => $_POST['noHP'],
  119.             'kendaraan' => $_POST['kendaraan'],
  120.             'jarak' => $_POST['jarak'],
  121.             'total_biaya' => $biaya_sewa
  122.         );
  123.  
  124.         // Membaca data pemesanan sebelumnya dari berkas JSON
  125. $existingData = file_get_contents('data.json');
  126. $existingDataArray = json_decode($existingData, true);
  127.  
  128.  
  129.         // Menampilkan data pemesanan dan total biaya sewa.
  130.         echo "
  131.            <br/>
  132.            <div class='container'>
  133.                <!-- ... (bagian menampilkan hasil) ... -->
  134.            </div>
  135.        ";
  136.     }
  137.     if ($existingDataArray) {
  138.         echo "<h3>Data Pemesanan Sebelumnya:</h3>";
  139.        
  140.         foreach ($existingDataArray as $existingData) {
  141.  
  142.  
  143.            
  144.             // Menampilkan data pemesanan dan total biaya sewa.
  145.             // KODE DI BAWAH INI TIDAK PERLU DIMODIFIKASI!!!
  146.             echo "
  147.                 <br/>
  148.                 <div class='container'>
  149.                    
  150.                     <div class='row'>
  151.                         <!-- Menampilkan nama pelanggan. -->
  152.                         <div class='col-lg-2'>Nama Pelanggan:</div>
  153.                         <div class='col-lg-2'>".$dataPesanan['nama']."</div>
  154.                     </div>
  155.                     <div class='row'>
  156.                         <!-- Menampilkan nomor HP pelanggan. -->
  157.                         <div class='col-lg-2'>Nomor HP:</div>
  158.                         <div class='col-lg-2'>".$dataPesanan['noHP']."</div>
  159.                     </div>
  160.                     <div class='row'>
  161.                         <!-- Menampilkan Jenis Kendaraan Taxi Online. -->
  162.                         <div class='col-lg-2'>Jenis Kendaraan:</div>
  163.                         <div class='col-lg-2'>".$dataPesanan['kendaraan']."</div>
  164.                     </div>
  165.                     <div class='row'>
  166.                         <!-- Menampilkan jumlah Jarak Tempuh. -->
  167.                         <div class='col-lg-2'>Jarak(km):</div>
  168.                         <div class='col-lg-2'>".$dataPesanan['jarak']." km</div>
  169.                     </div>
  170.                     <div class='row'>
  171.                         <!-- Menampilkan Total Tagihan. -->
  172.                         <div class='col-lg-2'>Total:</div>
  173.                         <div class='col-lg-2'>Rp".number_format($biaya_sewa, 0, ".", ".").",-</div>
  174.                     </div>
  175.                    
  176.             </div>
  177.             ";
  178.         }
  179.     }
  180.     ?>
  181.     </body>
  182. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement