---
title: CS Module 4 - Structs Final
---
# Case Study 4 - Akhir Pinjol (KAMIS)
## Latar Belakang
Markas pinjol tempat Anda kerja belakangan ini terkena **wabah penyakit mematikan** karena berbagai standar keamanan dan kebersihan yang tidak dipatuhi Pak Bos demi keuntungan maksimal.

Di tengah pandemi lokal ini, Anda sebagai programmer handal pinjol viral terbaru<sup>TM</sup> diminta untuk **membuat database sederhana** untuk **mencatat status tiap karyawan** pinjol viral terbaru<sup>TM</sup>. Rencana Anda disini adalah untuk menggunakan structs sebagai dasar databasenya.
#### Sistematis Program
- Pengguna akan pertama memasukkan jumlah karyawan dalam database (ibaratkan n)
- Pengguna kemudian memasukkan data masing-masing karyawan (n karyawan)
- Program menampilkan list karyawan dan data mereka
- Pengguna dapat memajukan waktu untuk mengupdate status tiap karyawan, atau keluar program
## Spesifikasi
**FORMAT INPUT**
- Baris pertama berupa integer (jumlah karyawan, misalkan n)
- Program meminta data peminjam yang berisi:
a. Nama (String)
b. Jabatan (String)
c. Gaji (Int / Float)
d. Imunitas (Float)
Program akan meminta ini sebanyak n kali.
**FORMAT OUTPUT**
- Selain data awal, untuk tiap karyawan, program menghitung `Status` mereka (Jadi struct akan berisi 5 variabel)
- Program menampilkan data masing-masing karyawan, beserta `Status` mereka
- Pengguna bisa a. Skip 1 minggu, atau b. Exit program
- Jika skip 1 minggu, status masing-masing karyawan akan dihitung ulang, lalu database ditampilkan lagi.
- Jika status seorang karyawan diupdate jadi `Wassalam`, set Gaji mereka ke 0, Imunitas ke 0, dan Jabatan ke `Tiada`
**Notes**
Untuk `status`,
- 100 ≥ Imunitas > 90 → `Sehat`
- 90 ≥ Imunitas > 70 → `Batuk-Batuk`
- 70 ≥ Imunitas > 50 → `Tepar`
- 50 ≥ Imunitas > 20 → `Sekarat`
- 20 ≥ Imunitas → `Wassalam`
Untuk `Imunitas`
$\text{Imunitas}_{t+1} = \text{Imunitas} \times \left( \frac{\text{Imunitas}}{100} \right)$
(Note 1: Tidak perlu membuat variabel baru untuk tiap iterasi imunitas, langsung ditimpa saja)
(Note 2: Anda bisa menggunakan fungsi strcpy / fungsi string.h lain untuk memudahkan penggantian String)
## Contoh Output
1
```
Jumlah Karyawan : 1
Nama Karyawan 1 : Pak Bos
Jabatan Karyawan 1 : Maharaja
Gaji Karyawan 1 : 5000000
Imunitas Karyawan 1 : 85.0
---
Database Pinjol
Karyawan 1
Nama - Jabatan : Pak Bos - Maharaja
Gaji : Rp5000000
Imunitas : 85.00%
Status : Batuk-Batuk
a. Skip 1 Minggu
b. Exit Program
a
Database Pinjol
Karyawan 1
Nama - Jabatan : Pak Bos - Maharaja
Gaji : Rp5000000
Imunitas : 72.25%
Status : Batuk-Batuk
a. Skip 1 Minggu
b. Exit Program
a
Database Pinjol
Karyawan 1
Nama - Jabatan : Pak Bos - Maharaja
Gaji : Rp5000000
Imunitas : 52.2%
Status : Tepar
a. Skip 1 Minggu
b. Exit Program
a
Database Pinjol
Karyawan 1
Nama - Jabatan : Pak Bos - Maharaja
Gaji : Rp5000000
Imunitas : 27.24%
Status : Sekarat
a. Skip 1 Minggu
b. Exit Program
b
Program Selesai!
```
(Note: Tidak wajib memformat rupiah jadi seperti Rp5.000.000 / Rp5.000.000,00, tapi diperbolehkan)
2
```
Jumlah Karyawan : 3
Nama Karyawan 1 : Riyan Satrio
Jabatan Karyawan 1 : Tukang Pukul
Gaji Karyawan 1 : 10000
Imunitas Karyawan 1 : 95.0
Nama Karyawan 2 : Christian Hadiwijaya 2306161952
Jabatan Karyawan 2 : Nelayan
Gaji Karyawan 2 : 10000
Imunitas Karyawan 2 : 60.0
Nama Karyawan 3 : Adrian Darmawan
Jabatan Karyawan 3 : Kroco
Gaji Karyawan 3 : 1000
Imunitas Karyawan 3 : 40.0
---
Database Pinjol
Karyawan 1
Nama - Jabatan : Riyan Satrio - Tukang Pukul
Gaji : Rp10000
Imunitas : 95.00%
Status : Sehat
Karyawan 2
Nama - Jabatan : Christian Hadiwijaya 2306161952 - Nelayan
Gaji : Rp10000
Imunitas : 60.00%
Status : Tepar
Karyawan 3
Nama - Jabatan : Adrian Darmawan - Kroco
Gaji : Rp1000
Imunitas : 40.00%
Status : Sekarat
a. Skip 1 Minggu
b. Exit Program
a
Database Pinjol
Karyawan 1
Nama - Jabatan : Riyan Satrio - Tukang Pukul
Gaji : Rp10000
Imunitas : 90.25%
Status : Batuk-Batuk
Karyawan 2
Nama - Jabatan : Christian Hadiwijaya 2306161952 - Nelayan
Gaji : Rp10000
Imunitas : 36.00%
Status : Sekarat
Karyawan 3
Nama - Jabatan : Adrian Darmawan - Tiada
Gaji : Rp0
Imunitas : 0.00%
Status : Wassalam
a. Skip 1 Minggu
b. Exit Program
a
Database Pinjol
Karyawan 1
Nama - Jabatan : Riyan Satrio - Tukang Pukul
Gaji : Rp10000
Imunitas : 81.45%
Status : Batuk-Batuk
Karyawan 2
Nama - Jabatan : Christian Hadiwijaya 2306161952 - Tiada
Gaji : Rp0
Imunitas : 0.00%
Status : Wassalam
Karyawan 3
Nama - Jabatan : Adrian Darmawan - Tiada
Gaji : Rp0
Imunitas : 0.00%
Status : Wassalam
a. Skip 1 Minggu
b. Exit Program
a
Database Pinjol
Karyawan 1
Nama - Jabatan : Riyan Satrio - Tukang Pukul
Gaji : Rp10000
Imunitas : 66.34%
Status : Tepar
Karyawan 2
Nama - Jabatan : Christian Hadiwijaya 2306161952 - Tiada
Gaji : Rp0
Imunitas : 0.00%
Status : Wassalam
Karyawan 3
Nama - Jabatan : Adrian Darmawan - Tiada
Gaji : Rp0
Imunitas : 0.00%
Status : Wassalam
a. Skip 1 Minggu
b. Exit Program
b
Program Selesai!
```
## Pengumpulan
Dikumpulkan dalam format .c
Format nama :
```CS_ALPROG[NomorModul]_NamaLengkap_NPM.c```
Semangat mengerjakan! 🚀