Soal Praktikum #3
ITB
Fungsi dan Prosedur
Tim Materi Berpikir Komputasional 2024/2025
al
19 November 2024
ion
Petunjuk
1. Kerjakan modul ini sesuai dengan materi yang diujikan (Fungsi dan Prosedur). Tidak perlu menggu-
nakan materi yang belum diujikan.
tas
2. Perhatikan penamaan file terutama untuk ekstensi file (*.py). File tanpa ekstensi beresiko tidak dapat
dibuka oleh asisten sehingga kode program tidak dapat dikoreksi (nilai 0)
3. Pastikan program lulus compile dan dapat dijalankan.
4. Untuk setiap file source code program berikan identitas, minimum:
pu
# NIM/Nama :
# Tanggal :
# Deskripsi :
m
5. Seluruh file kode program di-compress dengan nama P03 [Link] sebelum dikumpulkan.
6. Kecuali dituliskan secara khusus, Anda dapat menganggap masukan user sesuai dengan kehendak
program.
Ko
7. Penulisan kode sebaiknya menggunakan indentasi yang baik dan menambahkan komentar (kegunaan
sebuah variabel, percabangan, pengulangan, fungsi dan prosedur) sehingga mempermudah proses pen-
carian kesalahan pada program (debugging)
8. Kecurangan berupa copy-paste kode program dari peserta atau sumber lain akan memperoleh sanksi
tegas.
kir
9. Dilarang meng-capture atau menyebarkan sebagian dan/atau seluruh soal ini. Pelanggaran akan dike-
nakan sanksi sesuai SOP yang berlaku.
10. Jika ada perbedaan antara instruksi di sini dan instruksi asisten, ikuti instruksi asisten.
rpi
11. Selamat Mengerjakan!
Be
1
Problem 1
Simpan dengan nama file: P03 NIM [Link].
ITB
Tuan Leo sedang membuat program analisis matematis dasar berbasis terminal. Program tersebut akan
menampilkan hasil dari operasi matematika yang dilakukan oleh pengguna. Untuk itu, buatlah sebuah
fungsi/prosedur yang sesuai!
Buatlah dua buah subprogram sebagai berikut:
• Subprogram display(angka, kalimat awal, kalimat akhir) yang menerima masukan berupa sebuah
al
angka dan dua kalimat, kemudian menampilkan output dengan format:
"[kalimat awal] [angka] [kalimat akhir]"
ion
• Subprogram hitung(angka) yang menerima masukan berupa sebuah angka dan menghitung banyaknya
faktor dari angka tersebut (faktor dari 1 hingga angka tersebut).
Tuliskan juga apakah subprogram tersebut merupakan fungsi atau prosedur.
Test Case 1
Masukkan angka: 10
tas
Catatan: Kedua fungsi dan prosedur yang diminta harus digunakan dalam penyelesaian soal.
Masukkan kalimat awal: Banyak faktor dari
pu
Masukkan kalimat akhir: adalah
Banyak faktor dari 10 adalah 4
Test Case 2
m
Masukkan angka: 100
Masukkan kalimat awal: Faktor-faktor dari
Masukkan kalimat akhir: sebanyak
Faktor - faktor dari 100 sebanyak 9
Ko
Test Case 3
Masukkan angka: 11111
Masukkan kalimat awal: Dihitung faktor angka
Masukkan kalimat akhir: , ditemui faktor sebanyak
kir
Dihitung faktor angka 11111 , ditemui faktor sebanyak 4
rpi
Be
2
Problem 2
Simpan dengan nama file: P03 NIM [Link].
ITB
Tuan Mik menemukan sebuah kata kuno yang konon memiliki makna mistis. Namun, kata itu tidak lengkap
karena beberapa hurufnya hilang. Tuan Mik ingin menganalisis kata tersebut dengan dua tujuan:
1. Menemukan huruf-huruf apa saja yang hilang dari kata tersebut.
2. Menentukan jumlah huruf unik yang masih tersisa dalam kata.
al
Buatlah dua buah subprogram sebagai berikut:
• Subprogram cariHurufHilang yang menerima masukan sebuah string kata, dan mengembalikan string
ion
berisi huruf-huruf dari alfabet (a sampai z) yang tidak ada dalam kata tersebut. Huruf-huruf dalam
output harus terurut.
• Subprogram hitungHurufUnik yang menerima masukan sebuah string kata, dan mengembalikan jum-
lah huruf unik dalam kata tersebut.
Test Case 1
Masukkan kata: compthink
Huruf yang hilang : abdefgjlqrsuvwxyz
tas
Jumlah huruf unik: 9
pu
Penjelasan Test Case 1:
huruf dalam "compthink" adalah: c, o, m, p, t, h, i, n, k. Huruf yang hilang dari alfabet adalah: a,
b, d, e, f, g, j, l, q, r, s, u, v, w, x, y, z. Jumlah huruf unik dalam kata adalah 9.
m
Test Case 2
Masukkan kata: abrakadabra
Huruf yang hilang : cefghijlmnopqstuvwxyz
Ko
Jumlah huruf unik: 5
Penjelasan Test Case 2:
huruf dalam "abrakadabra" adalah: a, b, r, k, d. Huruf yang hilang dari alfabet adalah: c, e, f, g, h,
i, j, l, m, n, o, p, q, s, t, u, v, w, x, y, z. Jumlah huruf unik dalam kata adalah 5.
kir
Test Case 3
Masukkan kata: pneumonoultramicroscopicsilicovolcanoconiosis
Huruf yang hilang : bdfhjkqwxz
Jumlah huruf unik: 16
rpi
Be
3
Problem 3
Simpan dengan nama file: P03 NIM [Link].
ITB
Tuan Leo sedang bermain dengan urutan bilangan. Kali ini, ia tertarik dengan proses ”Pengurangan Digit”.
Namun, Tuan Leo tidak ingin melakukan operasi pengurangan yang biasa, melainkan menggunakan operasi
khusus yang dinamakan ”Pengurangan Bergantian”.
Pada proses ini, setiap digit dari bilangan akan dikurangkan secara bergantian dari kiri ke kanan hingga
menghasilkan satu digit saja. Namun, ada aturan tambahan:
al
1. Jika digit saat ini lebih kecil daripada digit berikutnya, maka digit tersebut akan dikalikan terlebih dahulu
dengan digit terbesar dari bilangan awal sebelum dilakukan pengurangan.
2. Jika digit saat ini lebih besar atau sama dengan digit berikutnya, langsung lakukan pengurangan biasa.
ion
3. Proses berlanjut hingga digit terakhir dikalikan. Setelah itu, jumlahkan semua digit hasilnya.
Tugas Anda adalah membuat program yang menerima input bilangan dan melakukan proses ”Pengurangan
Bergantian” sesuai dengan aturan yang diberikan oleh Tuan Leo.
tas
Catatan: Buatlah semua subprogram yang diperlukan untuk menjalankan proses tersebut (pencarian digit
terbesar, pengurangan bergantian, penjumlahan setiap digit). Subprogram yang dibuat harus digunakan
dalam penyelesaian soal. Pastikan format keluaran persis dengan contoh Test Case dibawah.
Test Case 1
pu
Masukkan sebuah bilangan : 8923
Digit terbesar : 9
Langkah ke -1: 8 - 9 = -1, maka 8 * 9 - 9 = 63
Langkah ke -2: 63 - 2 = 61
Langkah ke -3: 61 - 3 = 58
m
Langkah ke -4: 5 + 8 = 13
Hasil akhir : 13
Ko
Test Case 2
Masukkan sebuah bilangan : 5736
Digit terbesar : 7
Langkah ke -1: 5 - 7 = -2, maka 5 * 7 - 7 = 28
Langkah ke -2: 28 - 3 = 25
Langkah ke -3: 25 - 6 = 19
kir
Langkah ke -4: 1 + 9 = 10
Hasil akhir : 10
Test Case 3
rpi
Masukkan sebuah bilangan : 94632
Digit terbesar : 9
Langkah ke -1: 9 - 4 = 5
Langkah ke -2: 5 - 6 = -1, maka 5 * 9 - 6 = 39
Langkah ke -3: 39 - 3 = 36
Langkah ke -4: 36 - 2 = 34
Be
Langkah ke -5: 3 + 4 = 7
Hasil akhir : 7