Modul Belajar Python: Input dan Output
Modul Belajar Python: Input dan Output
1
Catatan
1. Modul ini dirancang untuk dapat menjadi pegangan pemrograman Berpikir Komputasional,
sehingga banyak hal yang dipotong karena keluar dari konteks Berpikir Komputasional.
2. Anda dapat membuka modul ini saat latihan praktikum.
3. Anda sangat disarankan untuk mencoba menjalankan semua program modul ini di kom-
puter Anda, supaya Anda dapat mengetahui keluaran dari program yang ada.
4. Anda sangat disarankan untuk bereksperimen dari program-program yang ada di modul ini
supaya Anda mendapat gambaran lebih jelas mengenai apa yang program Anda lakukan.
5. Anda sangat disarankan membaca tutorial dari tempat lain dan mengeksplor sendiri bahasa
yang Anda gunakan.
2
Contents
1 Modul 1 - Input, Output, dan Percabangan 4
1.1 Pendahuluan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Input dan Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Tipe Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4 Operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4.1 Operator Aritmatika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4.2 Operator Assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4.3 Operator Relasional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4.4 Operator Logika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.5 Percabangan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.6 Latihan Modul 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.6.1 Program Ganjil-Genap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.6.2 Soal Praktikum 1 Tahun 2022 . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.6.3 Soal Praktikum 2 Tahun 2022 . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.6.4 Soal Praktikum 3 Tahun 2022 . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2 Modul 2 - Perulangan dan Array 10
2.1 Pengulangan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.1.1 While Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.1.2 For Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2 Perulangan bersarang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3 Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3.1 Deklarasi Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3.2 Array dan Variabel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3.3 String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.4 Latihan Modul 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4.1 Kelipatan 10 terkecil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4.2 Segitiga Angka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4.3 Reverse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4.4 Anagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4.5 Palindrom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4.6 Soal Praktikum 1 Tahun 2021 . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.4.7 Soal Praktikum 2 Tahun 2021 . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.4.8 Soal Praktikum 3 Tahun 2021 . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.4.9 Soal Praktikum 1 Tahun 2022 . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4.10 Soal Praktikum 2 Tahun 2022 . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3 Modul 3 - Fungsi dan Prosedur 19
3.1 Fungsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2 Prosedur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.3 Latihan Modul 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.3.1 Fungsi Kuadrat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.3.2 Segitiga Pascal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.3.3 Soal Praktikum 1 Tahun 2021 . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3
1 Modul 1 - Input, Output, dan Percabangan
1.1 Pendahuluan
Pada modul ini, kita menggunakan Python versi 3.9. Anda dapat mendownload Python di https:
//[Link]/downloads/release/python-390/, pilihan ”Windows x86-64 executable in-
staller”.
• Python bersifat case-sensitive, artinya perbedaan huruf besar dan huruf kecil menyebabkan
perbedaan makna.
• Python sangat memerhatikan indentasi dan pergantian baris. Kesalahan indentasi dapat
menyebabkan gagal compile hingga kesalahan program.
• Variabel di python bersifat implisit dan dinamis. Artinya, sebuah variabel tidak perlu
dideskripsikan tipe datanya. Namun di modul ini kita tetap mempelajari tipe data yang
ada.
Dalam python, program untuk menulis "Hello, World!" ke layar adalah seperti berikut:
"""
Selain itu , kita juga bisa membuat komentar
multi baris dengan tiga petik (""")
"""
Bagian yang ditandai nomor 1 bertugas menuliskan "Hello, World!" ke layar. Sintaks print akan
otomatis memindahkan baris setelah selesai menulis ke layar, kecuali disertai parameter end="".
Berarti, output program di atas adalah "Hello, World!" diikuti dengan "Ini program pertama saya
" di baris selanjutnya.
4
Untuk melakukan input, kita membutuhkan penampung untuk menyimpan data yang diin-
putkan. Sebagai contoh, di bawah ini adalah program yang menerima input dan menuliskan
ulang yang dimasukkan.
Pada bagian nomor (1) dan (3), program membaca input dari user dan dimasukkan ke variabel
S dan N. Lalu, bila ingin program menerima sebuah bilangan (sehingga bisa dijumlah / dikali
/ lainnya), kita bungkus input() dengan int(). Selain int, string (kumpulan karakter), Python
dapat menerima tipe data float (bilangan real), dan masih banyak lagi.
Ada beberapa macam tipe data, namun dalam Berpikir Komputasional kita hanya akan banyak
menggunakan tipe data berikut:
Contoh penggunaan:
B = True # Boolean
I = 123456789012 # Bilangan bulat
R = 2.331973 # Bilangan real
S = "abc" # Teks
S = ’def ’
Perhatkan pada variabel S, Anda bebas menggunakan petik satu (’) atau petik dua (")
1.4 Operator
5
1.4.2 Operator Assignment
1.5 Percabangan
Dalam pemrograman, terdapat percabangan. Dengan demikian, program kita dapat berperilaku
tergantung input user. Misal kita buat program yang memeriksa apakah sebuah bilangan positif:
if (N > 0):
print(str(N) + " bilangan positif ")
...
if (N > 0):
print(str(N) + " bilangan positif ")
else: # N <= 0
6
print(str(N) + " bilangan bukan positif ")
...
Namun, kita tahu kadang bilangan bisa nol atau negatif, jadi perlu kita tambahkan:
...
if (N > 0):
print(str(N) + " bilangan positif ")
elif (N < 0):
print(str(N) + " bilangan negatif ")
else: # N == 0
print(str(N) + " bilangan nol")
...
Perhatikan juga kalau kita bisa membuat else ini berulang sampai yang kita mau. Selain itu, kita
juga bisa meletakkan if di dalam if.
...
if (N >= 0):
if (N > 0):
print(str(N) + " bilangan positif ")
else: # N == 0
print(str(N) + " bilangan nol")
else: # N < 0
print(str(N) + " bilangan negatif ")
...
7
1.6 Latihan Modul 1
Menggunakan contoh program bilangan positif, negatif, nol sebelumnya, kembangkanlah pro-
gram tersebut sehingga ketika masukan bilangan positif program akan menentukan bilangan
tersebut ganjil atau genap.
Contoh 1
Masukkan nilai N: 2
2 bilangan positif genap
Tuan Riz sedang melaksanakan ujian yang terdiri dari 14 soal isian singkat dan 2 soal esai. Ujian
tersebut berlangsung selama 2 jam. Selama 1 jam pertama, Ia asik mengerjakan beberapa soal saja.
Ia pun khawatir tidak dapat mengerjakan semua soal tepat waktu. Tuan Riz berencana untuk
mengerjakan 1 soal isian singkat yang tersisa selama 10 menit dan 1 soal esai yang tersisa selama
20 menit.
Tentukan apakah Tuan Riz berhasil mengerjakan semua soal tepat pada waktunya.
Contoh 1
Masukkan banyak soal isian singkat yang sudah diselesaikan : 12
Masukkan banyak soal esai yang sudah diselesaikan : 1
Tuan Riz akan berhasil mengerjakan semua soal
Tuan Leo menyebut sebuah bilangan sebagai bilangan ”Bravo” jika jumlah dari setiap digitnya
habis dibagi oleh setiap digitnya. Jika bilangan yang tidak memenuhi syarat tersebut disebut
sebagai bilangan biasa dan disajikan bilangan 4 digit, Tentukan kategori bilangan tersebut.
Hint : Gunakan div dan mod untuk mendapatkan nilai dari masing-masing digitnya
Contoh 1
Masukkan sebuah bilangan : 4228
Bilangan tersebut adalah bilangan Bravo.
Penjelasan Contoh 1:
Jumlah dari setiap digit pada bilangan 4228 adalah 4 + 2 + 2 + 8 = 16 dan 16 habis dibagi oleh
setiap digitnya yaitu 2, 4, dan 8, sehingga disebut sebagai bilangan ”Bravo”.
Contoh 2
Masukkan sebuah bilangan : 3425
Bilangan tersebut adalah bilangan biasa.
8
1.6.4 Soal Praktikum 3 Tahun 2022
Seekor katak yang sedang diamati oleh Tuan Riz berada pada sebuah sumbu x. Katak tersebut
melompat berdasarkan pola yang mudah. Lompatan pertama adalah a satuan ke kanan, lompatan
kedua adalah b satuan ke kiri, lompatan ketiga adalah a satuan ke kanan, lompatan keempat adalah
b satuan ke kiri, dan begitu seterusnya selama k kali. Bilangan k tersebut akan didapat berdasarkan
posisi awal katak dengan aturan,
• Apabila katak berada pada koordinat yang genap, bilangan k-nya adalah kemampuan katak
melompat ke kanan (a) dikali dengan kemampuan katak melompat ke kiri (b).
• Apabila katak berada pada koordinat yang ganjil, bilangan k-nya adalah a × 2.
• Apabila katak berada pada koordinat negatif, kembali ke aturan pertama (a × b).
• Akan tetapi, apabila katak berada pada koordinat negatif yang berkelipatan 3, bilangan
k-nya adalah b × 2.
Contoh 1
Masukkan koordinat katak: 0
Masukkan panjang lompatan katak ke kanan: 5
Masukkan panjang lompatan katak ke kiri: 1
Koordinat katak sekarang adalah 13
Penjelasan Contoh 1:
Karena 0 termasuk pada aturan pertama, maka katak akan melompat sebanyak 5 kali. Perhitungan
koordinat katak akan menjadi seperti ini: 0 + 5 - 1 + 5 - 1 + 5 = 13
Contoh 2
Masukkan koordinat katak: -3
Masukkan panjang lompatan katak ke kanan: 2
Masukkan panjang lompatan katak ke kiri: 5
Koordinat katak sekarang adalah -18
9
2 Modul 2 - Perulangan dan Array
2.1 Pengulangan
Pada pemrograman, sering kali dibutuhkan pemrosesan berulang-ulang untuk mencapai suatu
hasil tertentu. Apabila pengulangan ini dilakukan secara manual ukuran file program akan
menjadi terlalu besar. Contoh sederhana adalah jika kita ingin menuliskan “Hello World” di
layar sebanyak 1000 kali, maka akan dibutuhkan paling tidak 1000 baris perintah. Menggunakan
sintaks pengulangan, persoalan tersebut dapat diselesaikan hanya menggunakan beberapa baris
program.
Salah satu sintaks yang looping / pengulangan yang sering digunakan adalah sintaks While-Do.
Program akan mengecek sebuah kondisi yang diberikan terlebih dahulu sebelum menjalankan
statement yang ada di dalamnya.
a = int(input ())
b = int(input ())
i = a
while (i <= b):
print(i)
i += 1
Perhatikan bahwa:
2. Perulangan body while loop akan terus dilakukan selama kondisi terpenuhi.
3. Body while adalah bagian kode yang indentasi ke dalam body while loop.
Bentuk looping yang kedua adalah bentuk For. Bentuk ini umumnya digunakan untuk pen-
gulangan yang sudah diketahui jumlahnya. Namun, for loop juga dapat dibuat menggunakan
while-do loop.
a = int(input ())
b = int(input ())
for i in range(a, b+1):
print(i)
10
Perhatikan bahwa:
range dapat digunakan dengan satu, dua, atau tiga parameter. Untuk lebih jelasnya, perhatikan
potongan kode berikut:
range (10) # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
range (2, 5) # 2, 3, 4
range (7, 2, -1) # 7, 6, 5, 4, 3
range (2, 8, 2) # 2, 4, 6
Perhatikan pula, perulangan dapat dilakukan di dalam perulangan. Sebagai contoh, berikut
adalah program untuk membuat pola persegi.
n = int(input ())
for i in range(n):
for j in range(n):
print("*", end="") # Dieksekusi sebanyak n * n kali
print () # Dieksekusi sebanyak n kali
# Perhatikan indentasai di dalam perulangan .
Hal ini dapat dikembangkan bahwa body dari perulangan bersarang dapat berupa potongan
kode lainnya. Kita dapat menggunakan I/O, operasi, dan perulangan lainnya dalam body loop.
Kita dapat juga menggunakan while loop di dalam for loop dan sebaliknya.
2.3 Array
Array adalah variabel dengan satu buah nama, tetapi mengandung banyak nilai. Akses nilai-
nilainya dilakukan dengan indeks.
• A[0] = 3
• A[1] = 10
• A[7] = 35
Pada contoh diatas, kita memiliki sebuah variabel yang bernama A. Variabel A tersebut memiliki
10 buah nilai, dimana nilai-nilai tersebut dapat diakses dengan indeks. Untuk mengakses indeks
11
ke – x, gunakanlah A[x]. Dan nilai A[x] itu bisa kita anggap sebagai variabel yang berdiri sendiri.
Konsep inilah yang kita sebut dengan array. Perhatikan pula bahwa indeks dimulai dari 0.
Karena array juga merupakan sebuah variabel, maka array juga memerlukan deklarasi seperti
variabel lainnya.
Untuk contoh tersebut array A yang terdefinisi adalah A[0], A[1], A[2], . . . , A[9] Mengakses nilai
indeks di luar batasan tersebut akan menyebabkan runtime error. Oleh karena itu, tentukanlah
rentang indeks yang akan digunakan saat deklarasi dengan tepat (sesuai dengan kebutuhan).
Suatu array dapat kita anggap sebagai variabel, sehingga segala jenis operasi pada variabel juga
berlaku pada array. Sebagai contoh, kita memiliki suatu array
Maka array tabel tersebut akan terdefinisi untuk indeks 0 sampai dengan indeks 9. Maka kita bisa
melakukan instruksi
tabel[2] = int(input())
Jika diberikan 5 buah bilangan , dan kita perlu menyimpan bilangan tersebut pada tabel, kita bisa
melakukan
Namun, cara menginput tersebut kurang efisien. Akan lebih efisien jika kita menginput menggu-
nakan perulangan (looping).
2.3.3 String
Pada modul 1 kita telah mempelajari tipe data string. String dapat dianggap sebagai array of
character, namun tipe data string memiliki karakteristik yang berbeda dengan array of character
12
yaitu string merupakan tipe data immutable. Artinya, string tidak dapat diubah nilainya setelah
dideklarasikan. Sebagai contoh, jika kita memiliki string s1
s1 = "Hello"
Kita tidak dapat mengupdate nilai s1, misal melakukan Assignment s1[1] = ’a’ akan menyebabkan
error.
Berbeda halnya dengan array of character, kita dapat mengubah nilai array of character setelah
dideklarasikan. Sebagai contoh, jika kita memiliki array of character s2
Kita dapat mengubah nilai s2, misal melakukan assignment s2[1] = ’a’ akan mengubah nilai s2
menjadi [’H’, ’a’, ’l’, ’l’, ’o’].
Namun, kita dapat mengakses nilai string dengan indeks, misal s1[1] akan bernilai ’e’.
13
2.4 Latihan Modul 2
Buatlah program yang menerima bilangan N dan menuliskan bilangan 10x terkecil yang lebih
dari N.
Contoh 1
Masukkan N: 5
10
Contoh 2
Masukkan N: 1234
10000
Buatlah program yang menerima bilangan N dan membuat pola segitiga angka dengan dasar N
seperti contoh.
Contoh 1
Masukkan N: 5
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
2.4.3 Reverse
Buatlah program yang menerima N buah bilangan dan menuliskan kembali bilangan-bilangan
tersebut, namun dengan urutan terbalik.
Contoh
Masukkan N: 5
5
2
1
6
3
Hasil dibalik :
3 6 1 2 5
14
2.4.4 Anagram
Diberikan dua array A dan B. Buatlah sebuah program yang dapat memeriksa apakah B meru-
pakan anagram dari A. Asumsikan elemen pada array A dan B bilangan bulat [1,10].
Array B didefinisikan sebagai anagram dari array A bila elemen-elemen di array A dapat ditukar-
tukar sehingga menghasilkan array B.
Hint: gunakan tabel frekuensi, yakni sebuah array yang indeks ke-1 menunjukkan banyaknya
bilangan 1, indeks ke-2 menunjukkan banyaknya bilangan 2, dan seterusnya.
Contoh 1
Masukkan banyaknya elemen A: 3
Masukkan elemen A ke -1: 8
Masukkan elemen A ke -2: 4
Masukkan elemen A ke -3: 3
Masukkan banyaknya elemen B: 3
Masukkan elemen B ke -1: 4
Masukkan elemen B ke -2: 8
Masukkan elemen B ke -3: 3
B adalah anagram dari A
Contoh 2
Masukkan banyaknya elemen A: 2
Masukkan elemen A ke -1: 1
Masukkan elemen A ke -2: 4
Masukkan banyaknya elemen B: 2
Masukkan elemen B ke -1: 1
Masukkan elemen B ke -2: 5
B bukan anagram dari A
2.4.5 Palindrom
Buatlah program yang menerima sebuah string dan menuliskan apakah string tersebut palindrom.
Asumsikan string hanya berisi huruf kecil (a-z).
Contoh 1
Masukkan panjang string : 5
Masukkan string : makan
makan bukan palindrom
Contoh 2
Masukkan panjang string : 3
Masukkan string : apa
apa adalah palindrom
Contoh 3
Masukkan panjang string : 10
Masukkan string : kasurrusak
15
kasurrusak adalah palindrom
Tuan Leo memiliki beberapa potongan lego dengan dimensi 1 × 1 × 1. Tuan Leo ditugaskan
membuat kubus sedikit mungkin dengan potongan-potongan lego yang ia miliki. Caranya adalah
membuat kubus sebesar mungkin yang dapat dibuat dengan lego yang ada, lalu dengan sisa lego
yang dimiliki, buat kubus sebesar mungkin yang dapat dibuat.
Keterangan: Dilarang menggunakan built-in function untuk mencari akar dari sebuah bilangan.
Penggunaan built-in function untuk mencari akar dari sebuah bilangan akan mengakibatkan nilai
Anda pada soal ini 0.
Hint: Gunakan loop untuk mencari nilai kubik terdekat dengan jumlah lego yang dimiliki pada
suatu waktu tertentu.
Contoh 1
Masukkan banyak potongan lego: 36
Tuan Leo dapat membuat 3 kubus.
Penjelasan contoh 1:
36 = 27 + 8 + 1
Contoh 2
Masukkan banyak potongan lego: 11
Tuan Leo dapat membuat 4 kubus.
Penjelasan contoh 2:
11 = 8 + 1 + 1 + 1
16
2.4.7 Soal Praktikum 2 Tahun 2021
x 5y p
( )2 + ( − 2 |x|)2 ≤ 120
2 4
Pada persoalan ini Tuan Dip meminta kalian untuk mengimplementasikan bentuk hati menggu-
nakan * dengan bantuan pertidaksamaan tersebut pada rentang −30 ≤ x ≤ 30 dan −15 ≤ y ≤ 15.
Jawaban anda dinyatakan benar jika bentuk hati dapat dilihat dengan jelas dan tidak terbalik
maupun miring.
Contoh 1
************* *************
***************** *****************
******************** ********************
********************* *********************
*******************************************
*******************************************
*******************************************
*******************************************
*****************************************
***************************************
*************************************
*********************************
*******************************
***************************
***********************
*******************
***************
*********
*****
***
Buatlah program yang menerima bilangan asli N > 1 dan mengeluarkan faktor-faktor prima yang
dimiliki bilangan tersebut. Hasil harus terurut mulai dari fator prima terkecil hingga terbesar.
Contoh 1
Masukkan N: 110
Faktor primanya adalah 2, 5, 11.
Contoh 2
Masukkan N: 160
Faktor primanya adalah 2, 5.
17
2.4.9 Soal Praktikum 1 Tahun 2022
Tuan Leo diberikan sepotong list yang terdiri dari N elemen. Bantulah Tuan Leo untuk menen-
tukan banyaknya potongan list (potongan list adalah hasil dari pemilihan beberapa indeks beru-
rutan pada list) yang memiliki jumlah genap.
Contoh 1
Masukkan nilai N: 5
Masukkan bilangan ke -1: 1
Masukkan bilangan ke -2: 2
Masukkan bilangan ke -3: 3
Masukkan bilangan ke -4: 4
Masukkan bilangan ke -5: 5
Terdapat 6 potong list yang jumlahnya genap.
Penjelasan Contoh 1:
Potongan list yang jumlah elemennya genap adalah [1, 2, 3], [1, 2, 3, 4], [2], [2, 3, 4, 5], [3, 4, 5], dan
[4]
Tuan Leo memiliki kumpulan angka tidak terurut, tentukanlah berapa banyak grup angka terurut
yang dapat dibentuk dari array tersebut. Data selalu distinct (nilai berbeda)
Contoh 1
Masukkan banyak data: 5
Masukkan data ke -1: 2
Masukkan data ke -2: 1
Masukkan data ke -3: 3
Masukkan data ke -4: 6
Masukkan data ke -5: 5
Banyak grup angka terurut adalah 2.
Penjelasan Contoh 1:
Grup terurut: [1,3] dan [5,6]
Contoh 2
Masukkan banyak data: 6
Masukkan data ke -1: 7
Masukkan data ke -2: 12
Masukkan data ke -3: 35
Masukkan data ke -4: 6
Masukkan data ke -5: 10
Masukkan data ke -6: 9
Banyak grup angka terurut adalah 4.
Penjelasan Contoh 2:
Grup terurut: [6,7], [9,10], [12,12], [35,35]
18
3 Modul 3 - Fungsi dan Prosedur
3.1 Fungsi
Apa itu fungsi? Fungsi adalah suatu bagian dari program yang mampu mengerjakan tugas atau
operasi tertentu di luar program utama. Fungsi akan mengembalikan nilai sesuai algoritma yang
diberikan.
Fungsi di atas bernama kuadrat dan mengembalikan nilai kuadrat. Fungsi itu juga menerima satu
parameter bernama x.
Sebagai contoh, berikut program lengkap yang menerima input dan mengeluarkan kuadrat dari
bilangan input.
n = int(input ())
n2 = kuadrat (n)
print (n2)
Perhatikan pada contoh di atas, variabel di program utama bernama n. Namun di fungsi, variabel
berubah nama menjadi x. Meskipun x berubah, nilai n di program utama tidak akan berubah.
Sebuah fungsi juga dapat menerima lebih dari satu parameter. Selain itu, fungsi juga dapat
melakukan hal-hal layaknya program biasa, namun tidak dapat mengubah variabel di program
utama. Sebagai contoh, berikut adalah fungsi yang menghitung nilai ab .
Catatan: Anda tidak disarankan menaruh array sebagai parameter fungsi, karena ada hal khusus
yang belum diajarkan di Berpikir Komputasional.
3.2 Prosedur
Prosedur sebenarnya sama seperti fungsi, namun tidak ada kembalian. Sebagai contoh, berikut
adalah program untuk menuliskan menu:
print ("Menu:")
19
print ("1. Burger ")
print ("2. Ayam Geprek ")
print ("3. Mie Instan ")
print (" Masukkan pilihan : ")
pilihan_makanan = int(input ())
print ("Menu:")
print ("1. Jus Alpukat ")
print ("2. Thai Tea")
print ("3. Teh Tarik")
print (" Masukkan pilihan : ")
pilihan_minuman = int(input ())
print ("Menu:")
print ("1. Kentang ")
print ("2. Krupuk ")
print ("3. Abon")
print (" Masukkan pilihan : ")
pilihan_tambahan = int(input ())
Seperti yang tertulis di atas, menuliskan menu perlu berkali-kali. Kita dapat meringkasnya
menjadi:
tulis_menu (" Burger ", "Ayam Geprek ", "Mie Instan ")
pilihan_makanan = int(input ())
f (x) = x2 − 2x + 5
Buatlah program yang menerima A dan B, lalu menuliskan semua nilai dari f (A), f (A+1), . . . , f (B)!
Catatan: Anda diwajibkan mengimplementasikan sebuah fungsi yang menerima parameter nilai
x dan mengembalikan nilai f (x).
Contoh
20
Masukkan A: 3
Masukkan B: 6
f(3) = 8
f(4) = 13
f(5) = 20
f(6) = 29
Segitiga pascal dapat dibuat menggunakan matriks. Matriks mulanya diinisialisasi dengan semua
nilai baris pertama bernilai 1 dan semua nilai kolom pertama bernilai 1. Lalu, setiap isi matriks
yang belum ada isinya diisi dengan jumlah dari bilangan di atas dan kirinya.
Buatlah sebuah program yang menerima masukan N dan menuliskan matriks segitiga pascal
berukuran N × N.
Contoh
Masukkan N: 4
1 1 1 1
1 2 3 4
1 3 6 10
1 4 10 20
Tuan Ric dan Tuan Dip sering ke ITB bersama dengan kendaraan bermotor. Namun, Tuan Ric
merasa bahwa cara membagi jadwal bayar bensin yang hanya bergantian merugikan dia. Maka
Tuan Dip mengusulkan cara membagi jadwal bayar. Untuk setiap 2n , mereka akan mengubah
pola dengan menukar urutan (komplemen) pembayaran pada pola 2(n−1) . Berikut merupakan
pola yang dimaksudkan Dip :
n Pola
0 A
1 AR
2 ARRA
3 ARRARAAR
Dapat dilihat, teks yang dibold merupakan kebalikan dari bagian teks yang tidak bold pada suatu
pola. Tuan Ric sangat menyukai ide ini. Bantulah Tuan Ric membuat sebuah program untuk
menghasilkan pola tersebut.
Gunakanlah Fungsi atau Prosedur dalam pengerjaan soal ini. Clue : Sequence merupakan penam-
bahahan komplemen dari sequence sebelumnya seperti pada contoh. Siapkan array of character
dengan ukuran 2 kali dari sequence sebelumnya.
Contoh 1
Masukkan karakter 1: A
Masukkan karakter 2: R
Masukkan nilai n: 2
Pola yang didapat : ARRA
21
Contoh 2
Masukkan karakter 1: U
Masukkan karakter 2: W
Masukkan nilai n: 4
Pola yang didapat : UWWUWUUWWUUWUWWU
22