--- 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. ![hqdefault](https://hackmd.io/_uploads/Syi-XbEo1e.jpg) 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! 🚀