Ujian Tengah Semester di Fasilkom tinggal sebentar lagi. Agar seluruh mahasiswa di kelas bisa semakin paham dengan materi yang sudah diajarkan, Pak Dosen Cenna meminta Benny sebagai salah satu asisten dosen DDP-1 untuk membuat sebuah program mini kuis DDP-1 tentang konversi sistem bilangan desimal dan biner. Karena batas waktu yang terlalu singkat disertai dengan banyaknya deadline yang mengantri, Benny pun kewalahan membuat programnya. Benny pun akhirnya meminta bantuanmu untuk membuat programnya. Karena kamu merupakan teman yang baik, murah hati, dan tidak sombong, kamu pun setuju untuk membantu Benny.
Ketentuan Mini Kuis DDP-1:
- Soal yang disediakan dalam bentuk bilangan biner, dan dijawab dalam bentuk bilangan desimal.
- Jumlah soal terdiri dari 4 soal, masing-masing soal memiliki skor 25.
- Koleksi angka biner untuk soal bersifat hardcoded. Untuk soal lab kali ini, kamu diharapkan untuk memasukkan angka biner berikut untuk dijadikan soal: ○ Soal no.1 = "11111100001" ○ Soal no.2 = "11111001111" ○ Soal no.3 = "10001100" ○ Soal no.4 = "100011101"
Setelah mengetahui ketentuan mini kuis DDP-1 yang diberitahu oleh Benny, kamu mengingat salah satu materi kuliah DDP, yaitu function. Kamu akan membuat program dengan menggunakan beberapa function sesuai dengan kebutuhan.
Pada sesi lab kali ini, kamu akan diberikan template code oleh Benny, dan kamu diharapkan untuk melengkapi beberapa function yang sudah diberikan oleh Benny. Template code yang diberikan oleh Benny adalah sebagai berikut:
def cetak_pertanyaan(urutan, angka_biner):
#lengkapi function cetak_pertanyaan
def cek_jawaban(jawaban, angka_biner):
#lengkapi function cek_jawaban
def main():
print("Selamat datang di Mini Kuis DDP-1: Sistem Bilangan!")
soal1 = "11111100001"
soal2 = "11111001111"
soal3 = "10001100"
soal4 = "100011101"
counter_soal = 1
skor = 0
while counter_soal <= 4:
# di sini cetak pertanyaan sesuai dgn
# counter soal dan angka biner untuk counter tsb
# di sini minta input jawaban,
# format output: "Jawab: (di sini input dimasukkan)"
# di sini cek apakah jawabannya benar
# counter soal bertambah
#cetak skor akhir disini, format output: "Skor akhir: <skor>
if __name__ == '__main__':
main()
-
Function
cetak_pertanyaan(urutan, angka_biner)
Format output:
Soal <urutan>: Berapakah angka desimal dari bilangan biner <angka_biner>?
Contoh:
cetak_pertanyaan(1, "10")
, akan mencetak:
Soal 1: Berapakah angka desimal dari bilangan biner 10?
-
Function
cek_jawaban(jawaban, angka_biner)
digunakan untuk mengecek jawaban dengan parameterjawaban
danangka_biner
,
return True
bila jawaban benar, danreturn False
bila jawaban salah.Contoh:
cek_jawaban(2, "11")
, maka akan mengembalikanFalse
.
Untuk konversi dari biner ke desimal, pakai fungsi:
int(angka_biner_dalam_tipe_string, 2)
,
contoh: int("10", 2)
=> 2
.
Selamat datang di Mini Kuis DDP-1: Sistem Bilangan! Soal 1: Berapakah angka desimal dari bilangan biner 11111100001? Jawab: 2017 Soal 2: Berapakah angka desimal dari bilangan biner 11111001111? Jawab: 1999 Soal 3: Berapakah angka desimal dari bilangan biner 10001100? Jawab: 142 Soal 4: Berapakah angka desimal dari bilangan biner 100011101? Jawab: 285 Skor akhir: 75
Jika pertanyaan-pertanyaan pada mini kuis DDP-1 di atas bersifat hardcoded, cobalah kamu buat jalannya program, di mana saat program pertama kali dijalankan, program akan meminta masukkan dari user mengenai soal-soal yang akan ditanyakan. Jadi saat program dijalankan, program akan meminta 4 soal yang akan dikerjakan dan diinput oleh user, lalu 4 soal tersebut disimpan untuk kemudian dikerjakan seperti soal yang biasa.
Selamat datang di Mini Kuis DDP-1: Sistem Bilangan! Masukkan 4 soal: 11111100001 11111001111 10001100 100011101 Soal 1: Berapakah angka desimal dari bilangan biner 11111100001? Jawab: 2017 Soal 2: Berapakah angka desimal dari bilangan biner 11111001111? Jawab: 1999 Soal 3: Berapakah angka desimal dari bilangan biner 10001100? Jawab: 142 Soal 4: Berapakah angka desimal dari bilangan biner 100011101? Jawab: 285 Skor akhir: 75
80% Kebenaran (Program berjalan dan berhasil menyelesaikan uji kasus),
10% Kerapihan (Penamaan variabel jelas, mudah dibaca),
05% Dokumentasi (Dokumentasi jelas, comment di bagian-bagian yang penting),
05% Kesesuaian penamaan file submisi, kesesuaian output sesuai permintaan soal.
SELAMAT MENGERJAKAN DAN HAPPY CODING 😊
AA - END - KT - ZZ
Diambil dari Lab 5 DDP1 Lab Jumat.pdf
(Tutorial Lab 5 DDP1 B dan D
-- 6 Oktober 2017)