Benny Pardede maju sebagai project officer PARFEST X, dia punya ide radikal untuk mendorong performa tiap panitia Parfest agar dapat bekerja secara optimal. Benny ingin mengelola staf-stafnya dengan mudah, maka dari itu ia ingin membentuk suatu sistem log panitia yang dapat mengevaluasi pekerjaan para panitia - panitia tiap divisi. Benny akan menghargai hasil kerja para panitia berupa BenCoin sesuai hasil jerih payah mereka dan berapa lama pekerjaannya, tetapi karena dia sedang sibuk, dia meminta kalian para Petarung Koder untuk membuat sistem tersebut.
- Template program sudah ada, kalian harus mengimplementasikan class
StaffAcara
,StaffPartnership
,StaffPublikasi
yang menginherit classStaff
- Kalian dilarang mengubah class
Staff
dan classManager
template - Kalian dilarang membuat instance variable (bukan local variable) baru dalam
class
StaffAcara
,StaffPartnership
,StaffPublikasi
- Kalian dilarang membuat dict, set baru di seluruh program selain yang sudah ada di template
- REVISI: Penggunaan list untuk split input diperbolehkan
- Program menerima input berupa text berupa perintah dari user
- Program akan menerima input terus sehingga menerima perintah untuk berhenti (EXIT)
- Rekrut staf Rekrut seseorang untuk menjadi sebuah staf divisi
- Catat pekerjaan staf Setiap divisi punya cara kerja yang berbeda-beda, ada divisi yang bekerja dengan cepat ada juga yang membutuhkan waktu lama. Setiap staf punya progress masing-masing dan jika seorang staf progress nya sudah lebih dari atau sama dengan 100% maka dia tidak perlu bekerja lagi
- Tampilkan informasi staf Output ke layar nama staf, jumlah jam kerja, jumlah penghasilan sementara dalam BenCoin, dan juga progress staf
Nama Divisi | Cara Kerja | Cara Perhitungan Gaji |
---|---|---|
Acara | Progres pekerjaan akan bertambah sebanyak 4% / jam | Staf akan dibayar sejumlah 2000 BenCoin x persentase progressnya |
Partnership | Progres pekerjaan akan bertambah sebanyak 1% / jam | Staf akan dibayar sejumlah 4000 BenCoin x jam kerja x persentase progressnya |
Publikasi | Progres pekerjaan akan bertambah sebanyak 20% / jam | Staf akan dibayar sejumlah 1500 BenCoin x jam kerja |
-
REKRUT;Nama staf;Divisi
Rekrut staf baru. Tidak boleh merekrut seorang staf dua kali. Nama case insensitive -
KERJA;Nama staf;Jam
Staf bekerja selama jam kerja yg diinput.
Diasumsikan nama staf yang dimasukkan pada input ini telah menjadi staff dari PARFEST X. -
LOG;Nama staf
Menampilkan informasi staf.
Diasumsikan nama staf yang dimasukkan pada input ini telah menjadi staff dari PARFEST X. -
EXIT
Program berhenti.
-
REKRUT
- Jika orang tersebut belum
Nama direkrut
- Jika orang tersebut sudah menjadi bagian dari PARFEST X
Nama sudah direkrut sebelumnya
- Jika orang tersebut belum
-
KERJA
- Jika progress staf belum 100%
Nama bekerja selama x jam
- Jika progress sudah 100% keatas
Nama sudah mencapai x % progress
- Jika progress staf belum 100%
-
LOG
>> Nama Telah bekerja selama: x jam Progress: y persen Gaji sementara: z bencoin
Note:
Kalian tidak perlu menangani case - case yang tidak disebutkan
(e.g. input tidak sesuai format)
REKRUT;Yudhistira Khairunnisa;PUBLIKASI
REKRUT;Nabila Wisesa;PARTNERSHIP
REKRUT;Asel Ridwan;ACARA
REKRUT;Ahmad Tegar;PUBLIKASI
REKRUT;Asel Ridwan;PARTNERSHIP
KERJA;Yudhistira Khairunnisa;6
KERJA;Nabila Wisesa;6
KERJA;Nabila Wisesa;6
KERJA;Ahmad Tegar;4
KERJA;Asel Ridwan;5
KERJA;Nabila Wisesa;2
KERJA;Ahmad Tegar;6
KERJA;Yudhistira Khairunnisa;8
LOG;Yudhistira Khairunnisa
LOG;Nabila Wisesa
LOG;Asel Ridwan
LOG;Ahmad Tegar
EXIT
Yudhistira Khairunnisa direcruit
Nabila Wisesa direcruit
Asel Ridwan direcruit
Ahmad Tegar direcruit
Asel Ridwan sudah direkrut sebelumnya
Yudhistira Khairunnisa bekerja selama 6 jam
Nabila Wisesa bekerja selama 6 jam
Nabila Wisesa bekerja selama 6 jam
Ahmad Tegar bekerja selama 4 jam
Asel Ridwan bekerja selama 5 jam
Nabila Wisesa bekerja selama 2 jam
NN - YE - AHAhmad Tegar bekerja selama 6 jam
Yudhistira Khairunnisa sudah mencapai 120 % progress
>> Yudhistira Khairunnisa
Telah bekerja selama: 6 jam
Progress: 120 persen
Gaji Sementara: 9000 bencoin
>> Nabila Wisesa
Telah bekerja selama: 14 jam
Progress: 14 persen
Gaji Sementara: 784000 bencoin
>> Asel Ridwan
Telah bekerja selama: 5 jam
Progress: 20 persen
Gaji Sementara: 40000 bencoin
>> Ahmad Tegar
Telah bekerja selama: 10 jam
Progress: 200 persen
Gaji Sementara: 15000 bencoin
Penjelasan:
- Yudhistira Khairunnisa berhasil menjadi staff Publikasi.
- Nabila Wisesa berhasil menjadi staff Partnership.
- Asel Ridwan berhasil menjadi staff Acara.
- Ahmad Tegar berhasil menjadi staff Publikasi.
- Asel Ridwan gagal menjadi staff Partnership dikarenakan sudah menjadi staff Acara.
- Yudhistira Khairunnisa berhasil bekerja selama 6 jam.
- Nabila Wisesa berhasil bekerja selama 6 jam.
- Nabila Wisesa berhasil bekerja selama 6 jam.
- Ahmad Tegar berhasil bekerja selama 4 jam.
- Asel Ridwan berhasil bekerja selama 5 jam.
- Nabila Wisesa berhasil bekerja selama 2 jam.
- Ahmad Tegar bekerja selama 6 jam.
- Yudhistira Khairunnisa tidak dapat bekerja lagi dikarenakan telah memiliki
progress
120% (6 jam * 20%)
. - Yudhistira Khairunnisa adalah staff Publikasi. Dia berhasil bekerja selama
6 jam. Progress yang telah dia lakukan adalah
6 * 20% = 120%
. Gaji yang dia dapatkan adalah6 * 1500 = 9000
BenCoin. - Nabila Wisesa adalah staff Partnership. Dia berhasil bekerja selama 14 jam.
Progress yang telah dia lakukan adalah
14 * 1% = 14%
. Gaji yang dia dapatkan adalah14 * 14 * 4000 = 784000
BenCoin. - Asel Ridwan adalah staff Acara. Dia berhasil bekerja selama 5 jam. Progress
yang telah dia lakukan adalah
5 * 4% = 20%
. Gaji yang dia dapatkan adalah20 * 2000 = 40000
BenCoin. - Ahmad Tega adalah staff Publikasi. Dia berhasil bekerja selama 10 jam.
Progress yang telah dia lakukan adalah
10 * 20% = 200%
. Gaji yang dia dapatkan10 * 1500 = 15000
BenCoin.
NN - YE - AH
Diambil dari Soal Tutorial Lab 8 - Kelas D (Revisi 1).pdf
(Tutorial Lab 8
DDP1 D -- 17 November 2017)