# Latihan

### Latihan 1: Menghitung Diskon Berdasarkan Usia

**Soal**: Buatlah program yang menentukan apakah seorang pelanggan mendapatkan diskon berdasarkan usia mereka. Jika usia kurang dari 18 tahun, beri diskon 20%. Jika usia antara 18 hingga 60 tahun, beri diskon 10%. Jika lebih dari 60 tahun, beri diskon 30%.

**Contoh Code**:

```php
<?php
$age = 45; // Ganti dengan usia pelanggan
$discount = 0;
?>

<?php if ($age < 18) : ?>
    <?php $discount = 20; ?>
<?php elseif ($age <= 60) : ?>
    <?php $discount = 10; ?>
<?php else : ?>
    <?php $discount = 30; ?>
<?php endif; ?>

<h1>Diskon: <?= $discount; ?>%</h1>
```

**Contoh Hasil**: Jika usia adalah 45 tahun, hasilnya adalah:

```makefile
Diskon: 10%
```

***

### Latihan 2: Menentukan Kategori Usia

**Soal**: Buatlah program yang mengkategorikan seseorang ke dalam kelompok usia berdasarkan nilai variabel age. Kategorinya adalah "Anak-anak" (0-12), "Remaja" (13-19), "Dewasa" (20-64), dan "Lansia" (65+).

**Contoh Code**:

```php
<?php
$age = 25; // Ganti dengan usia seseorang
$category = "";
?>

<?php if ($age <= 12) : ?>
    <?php $category = "Anak-anak"; ?>
<?php elseif ($age <= 19) : ?>
    <?php $category = "Remaja"; ?>
<?php elseif ($age <= 64) : ?>
    <?php $category = "Dewasa"; ?>
<?php else : ?>
    <?php $category = "Lansia"; ?>
<?php endif; ?>

<h1>Kategori usia: <?= $category; ?></h1>
```

**Contoh Hasil**: Jika usia adalah 25 tahun, hasilnya adalah:

```yaml
Kategori usia: Dewasa
```

***

### Latihan 3: Menampilkan Nama Bulan Berdasarkan Nomor

**Soal**: Buatlah program yang menampilkan nama bulan berdasarkan nomor bulan yang dimasukkan. Misalnya, nomor 1 untuk Januari, 2 untuk Februari, dan seterusnya.

**Contoh Code**:

```php
<?php
$month = 5; // Ganti dengan nomor bulan
$monthName = "";
?>

<?php switch ($month) : 
    case 1: $monthName = "Januari"; break; ?>
<?php case 2: $monthName = "Februari"; break; ?>
<?php case 3: $monthName = "Maret"; break; ?>
<?php case 4: $monthName = "April"; break; ?>
<?php case 5: $monthName = "Mei"; break; ?>
<?php case 6: $monthName = "Juni"; break; ?>
<?php case 7: $monthName = "Juli"; break; ?>
<?php case 8: $monthName = "Agustus"; break; ?>
<?php case 9: $monthName = "September"; break; ?>
<?php case 10: $monthName = "Oktober"; break; ?>
<?php case 11: $monthName = "November"; break; ?>
<?php case 12: $monthName = "Desember"; break; ?>
<?php default: $monthName = "Nomor bulan tidak valid"; endswitch; ?>

<h1>Nama bulan: <?= $monthName; ?></h1>
```

**Contoh Hasil**: Jika nomor bulan adalah 5, hasilnya adalah:

```yaml
Nama bulan: Mei
```

***

### Latihan 4: Menentukan Status Ujian

**Soal**: Buatlah program yang mengecek status ujian siswa. Jika nilai ujian lebih dari atau sama dengan 60, maka siswa "Lulus". Jika nilai kurang dari 60, maka siswa "Tidak Lulus".

**Contoh Code**:

```php
<?php
$score = 55; // Ganti dengan nilai ujian siswa
?>

<?php if ($score >= 60) : ?>
    <h1>Lulus</h1>
<?php else : ?>
    <h1>Tidak Lulus</h1>
<?php endif; ?>
```

**Contoh Hasil**: Jika nilai ujian adalah 55, hasilnya adalah:

```
Tidak Lulus
```

### Latihan 5: Menentukan Kategori Produk Berdasarkan Harga

**Soal**: Buatlah program yang mengkategorikan produk berdasarkan harga. Jika harga kurang dari 50, kategorikan sebagai "Murah". Jika harga antara 50 dan 100, kategorikan sebagai "Sedang". Jika harga lebih dari 100, kategorikan sebagai "Mahal".

**Contoh Code**:

```php
<?php
$price = 120; // Ganti dengan harga produk
$category = "";
?>

<?php if ($price < 50) : ?>
    <?php $category = "Murah"; ?>
<?php elseif ($price <= 100) : ?>
    <?php $category = "Sedang"; ?>
<?php else : ?>
    <?php $category = "Mahal"; ?>
<?php endif; ?>

<h1>Kategori produk: <?= $category; ?></h1>
```

**Contoh Hasil**: Jika harga produk adalah 120, hasilnya adalah:

```yaml
Kategori produk: Mahal
```

***

### Latihan 6: Menampilkan Jenis Kendaraan Berdasarkan Tipe

**Soal**: Buatlah program yang menampilkan jenis kendaraan berdasarkan tipe yang dimasukkan, seperti "Mobil", "Motor", atau "Sepeda".

**Contoh Code**:

```php
<?php
$type = "Motor"; // Ganti dengan tipe kendaraan
$vehicleType = "";
?>

<?php switch ($type) :
    case "Mobil": ?>
        <?php $vehicleType = "Jenis kendaraan: Mobil"; ?>
        <?php break; ?>
    <?php case "Motor": ?>
        <?php $vehicleType = "Jenis kendaraan: Motor"; ?>
        <?php break; ?>
    <?php case "Sepeda": ?>
        <?php $vehicleType = "Jenis kendaraan: Sepeda"; ?>
        <?php break; ?>
    <?php default: ?>
        <?php $vehicleType = "Tipe kendaraan tidak valid"; ?>
<?php endswitch; ?>

<h1><?= $vehicleType; ?></h1>
```

**Contoh Hasil**: Jika tipe kendaraan adalah Motor, hasilnya adalah:

```yaml
Jenis kendaraan: Motor
```

***

### Latihan 7: Menentukan Kategori Pengguna Berdasarkan Poin

**Soal**: Buatlah program yang mengkategorikan pengguna berdasarkan poin yang mereka miliki. Kategori "Bronze" untuk poin kurang dari 100, "Silver" untuk poin 100-499, dan "Gold" untuk poin 500 ke atas.

**Contoh Code**:

```php
<?php
$points = 250; // Ganti dengan poin pengguna
$category = "";
?>

<?php if ($points < 100) : ?>
    <?php $category = "Bronze"; ?>
<?php elseif ($points <= 499) : ?>
    <?php $category = "Silver"; ?>
<?php else : ?>
    <?php $category = "Gold"; ?>
<?php endif; ?>

<h1>Kategori pengguna: <?= $category; ?></h1>
```

**Contoh Hasil**: Jika poin pengguna adalah 250, hasilnya adalah:

```yaml
Kategori pengguna: Silver
```

***

### Latihan 8: Menampilkan Status Cuaca

**Soal**: Buatlah program yang menampilkan status cuaca berdasarkan suhu yang dimasukkan. Jika suhu lebih dari 30°C, tampilkan "Panas". Jika suhu antara 15°C hingga 30°C, tampilkan "Hangat". Jika suhu kurang dari 15°C, tampilkan "Dingin".

**Contoh Code**:

```php
<?php
$temperature = 28; // Ganti dengan suhu cuaca
$status = "";
?>

<?php if ($temperature > 30) : ?>
    <?php $status = "Panas"; ?>
<?php elseif ($temperature >= 15) : ?>
    <?php $status = "Hangat"; ?>
<?php else : ?>
    <?php $status = "Dingin"; ?>
<?php endif; ?>

<h1>Status cuaca: <?= $status; ?></h1>
```

**Contoh Hasil**: Jika suhu cuaca adalah 28°C, hasilnya adalah:

```yaml
Status cuaca: Hangat
```

***

### Latihan 9: Menentukan Akses Berdasarkan Level Pengguna

**Soal**: Buatlah program yang menentukan jenis akses berdasarkan level pengguna, seperti "Admin", "Editor", atau "Viewer".

**Contoh Code**:

```php
<?php
$level = "Editor"; // Ganti dengan level pengguna
$access = "";
?>

<?php switch ($level) :
    case "Admin": ?>
        <?php $access = "Akses: Admin"; ?>
        <?php break; ?>
    <?php case "Editor": ?>
        <?php $access = "Akses: Editor"; ?>
        <?php break; ?>
    <?php case "Viewer": ?>
        <?php $access = "Akses: Viewer"; ?>
        <?php break; ?>
    <?php default: ?>
        <?php $access = "Level tidak valid"; ?>
<?php endswitch; ?>

<h1><?= $access; ?></h1>
```

**Contoh Hasil**: Jika level pengguna adalah Editor, hasilnya adalah:

```makefile
Akses: Editor
```

***

### Latihan 10: Menampilkan Status Pendaftaran Berdasarkan Umur

**Soal**: Buatlah program yang menampilkan status pendaftaran seseorang berdasarkan umur mereka. Jika umur kurang dari 16 tahun, tampilkan "Tidak Bisa Mendaftar". Jika umur antara 16 hingga 30 tahun, tampilkan "Bisa Mendaftar". Jika umur lebih dari 30 tahun, tampilkan "Pendaftaran Khusus".

**Contoh Code**:

```php
<?php
$age = 25; // Ganti dengan umur seseorang
$status = "";
?>

<?php if ($age < 16) : ?>
    <?php $status = "Tidak Bisa Mendaftar"; ?>
<?php elseif ($age <= 30) : ?>
    <?php $status = "Bisa Mendaftar"; ?>
<?php else : ?>
    <?php $status = "Pendaftaran Khusus"; ?>
<?php endif; ?>

<h1>Status pendaftaran: <?= $status; ?></h1>
```

**Contoh Hasil**: Jika umur seseorang adalah 25, hasilnya adalah:

```yaml
Status pendaftaran: Bisa Mendaftar
```

### Latihan 11: Menentukan Status Langganan Berdasarkan Jumlah Bulan

**Soal**: Buatlah program yang menentukan status langganan berdasarkan jumlah bulan yang telah dibayar. Jika kurang dari 6 bulan, statusnya "Langganan Dasar". Jika antara 6 hingga 12 bulan, statusnya "Langganan Premium". Jika lebih dari 12 bulan, statusnya "Langganan VIP".

**Contoh Code**:

```php
<?php
$months = 8; // Ganti dengan jumlah bulan yang telah dibayar
$status = "";
?>

<?php if ($months < 6) : ?>
    <?php $status = "Langganan Dasar"; ?>
<?php elseif ($months <= 12) : ?>
    <?php $status = "Langganan Premium"; ?>
<?php else : ?>
    <?php $status = "Langganan VIP"; ?>
<?php endif; ?>

<h1>Status langganan: <?= $status; ?></h1>
```

**Contoh Hasil**: Jika jumlah bulan yang telah dibayar adalah 8, hasilnya adalah:

```yaml
Status langganan: Langganan Premium
```

***

### Latihan 12: Menampilkan Menu Restoran Berdasarkan Waktu

**Soal**: Buatlah program yang menampilkan menu restoran berdasarkan waktu makan. Jika waktu kurang dari 11:00, tampilkan "Sarapan". Jika waktu antara 11:00 dan 15:00, tampilkan "Makan Siang". Jika waktu lebih dari 15:00, tampilkan "Makan Malam".

**Contoh Code**:

```php
phpCopy code<?php
$hour = 14; // Ganti dengan jam waktu makan (dalam format 24 jam)
$menu = "";
?>

<?php if ($hour < 11) : ?>
    <?php $menu = "Sarapan"; ?>
<?php elseif ($hour <= 15) : ?>
    <?php $menu = "Makan Siang"; ?>
<?php else : ?>
    <?php $menu = "Makan Malam"; ?>
<?php endif; ?>

<h1>Menu: <?= $menu; ?></h1>
```

**Contoh Hasil**: Jika waktu makan adalah 14:00, hasilnya adalah:

```css
cssCopy codeMenu: Makan Siang
```

***

### Latihan 13: Menentukan Status Keanggotaan Berdasarkan Pembelian

**Soal**: Buatlah program yang menentukan status keanggotaan berdasarkan jumlah pembelian. Jika pembelian kurang dari $100, tampilkan "Keanggotaan Dasar". Jika pembelian antara $100 hingga $500, tampilkan "Keanggotaan Menengah". Jika lebih dari $500, tampilkan "Keanggotaan Premium".

**Contoh Code**:

```php
<?php
$purchaseAmount = 600; // Ganti dengan jumlah pembelian
$membershipStatus = "";
?>

<?php if ($purchaseAmount < 100) : ?>
    <?php $membershipStatus = "Keanggotaan Dasar"; ?>
<?php elseif ($purchaseAmount <= 500) : ?>
    <?php $membershipStatus = "Keanggotaan Menengah"; ?>
<?php else : ?>
    <?php $membershipStatus = "Keanggotaan Premium"; ?>
<?php endif; ?>

<h1>Status keanggotaan: <?= $membershipStatus; ?></h1>
```

**Contoh Hasil**: Jika jumlah pembelian adalah $600, hasilnya adalah:

```yaml
Status keanggotaan: Keanggotaan Premium
```

***

### Latihan 14: Menampilkan Tanggal yang Valid

**Soal**: Buatlah program yang memeriksa apakah tanggal yang dimasukkan valid atau tidak. Tampilkan "Tanggal Valid" jika tanggal sesuai dengan format yang benar, atau "Tanggal Tidak Valid" jika tidak.

**Contoh Code**:

```php
<?php
$day = 31; // Ganti dengan tanggal
$month = 2; // Ganti dengan bulan
$year = 2024; // Ganti dengan tahun
?>

<?php if (checkdate($month, $day, $year)) : ?>
    <h1>Tanggal Valid</h1>
<?php else : ?>
    <h1>Tanggal Tidak Valid</h1>
<?php endif; ?>
```

**Contoh Hasil**: Jika tanggal yang dimasukkan adalah 31 Februari 2024, hasilnya adalah:

```
Tanggal Tidak Valid
```

***

### Latihan 15: Menentukan Status Aktivitas Berdasarkan Jam

**Soal**: Buatlah program yang menentukan status aktivitas berdasarkan jam yang dimasukkan. Jika jam antara 9:00 dan 17:00, tampilkan "Jam Kerja". Jika jam di luar rentang tersebut, tampilkan "Non-Jam Kerja".

**Contoh Code**:

```php
<?php
$hour = 10; // Ganti dengan jam
$status = "";
?>

<?php if ($hour >= 9 && $hour < 17) : ?>
    <?php $status = "Jam Kerja"; ?>
<?php else : ?>
    <?php $status = "Non-Jam Kerja"; ?>
<?php endif; ?>

<h1>Status aktivitas: <?= $status; ?></h1>
```

**Contoh Hasil**: Jika jam yang dimasukkan adalah 10:00, hasilnya adalah:

```yaml
Status aktivitas: Jam Kerja
```
