2. Tim Pengajar Berpikir Komputasional, ILKOM IPB
Bahasan Pekan Lalu
● Ingat bahwa dalam Computational Thinking, solusi dari
suatu problem harus dapat dijalankan oleh agen
pemroses informasi. Sehingga langkah-langkah solusi
harus ditulis dan dapat dipahami oleh agen.
● Algoritme adalah instruksi atau langkah berstruktur untuk
menyelesaikan persoalan (problem).
● Cara penulisan algoritme:
○ Narrative : formal description, pseudocode
○ Flowchart
3. Tim Pengajar Berpikir Komputasional, ILKOM IPB
Pseudocode
● Pseudocode adalah cara informal untuk menuliskan
algoritme atau rancangan program komputer
● Bertujuan untuk mendapatkan ide secara cepat dan juga
memudahkan membaca algoritme tanpa aturan
grammar yang ketat.
● Ada banyak cara menuliskan pseudocode, tidak ada
aturan yang baku. Namun untuk mengurangi ambiguity,
maka dibuat konvensi.
4. Tim Pengajar Berpikir Komputasional, ILKOM IPB
Contoh: Euclidean Algorithm
● Input : Two positive integers, a and b..
● Output : The greatest common divisor, g, of a and b.
● Internal Computation:
1. If a < b, exchange a and b.
2. Divide a by b and get the remainder, r.
If r = 0, report b as the GCD of a and b.
3. Replace a by b and replace b by r. Return
to the previous step.
https://sites.math.rutgers.edu/~greenfie/gs2004/euclid.html
read(a, b)
if (a < b) swap(a, b)
while (true)
{
r = a % b
if (r == 0) exit
a = b
b = r
}
print(b)
pseudocode
5. Tim Pengajar Berpikir Komputasional, ILKOM IPB
Elemen Pseudocode
VARIABEL
ASSIGNMENT
KETERANGAN
INSTRUKSI
STRUKTUR KENDALI
6. Tim Pengajar Berpikir Komputasional, ILKOM IPB
[1] VARIABEL
● Variabel adalah elemen dari algoritme untuk menyimpan nilai tertentu
pada suatu saat, dan pada saat yang lain nilai ini dapat diubah menjadi
nilai lainnya sesuai kebutuhan.
● Variabel umumnya bersifat case-sensitive, yaitu membedakan huruf
besar dan kecil, dan juga merupakan suatu identifier yang dituliskan
dengan suatu nama yang unik, terdiri dari alphanumeric tetapi harus
dimulai dengan huruf.
● Contoh:
read(a, b)
a = b
B = r
Data data data123 d4t4 3data data 3 data_3 _data
7. Tim Pengajar Berpikir Komputasional, ILKOM IPB
[2] INSTRUKSI
● Instruksi atau perintah adalah satuan operasional dari suatu
algoritme. Instruksi ini dinyatakan dalam kalimat sehari-hari yang
mudah dipahami dan konsisten.
● Contoh:
○ read(a, b) yaitu membaca atau memberikan nilai ke dalam
variabel a dan b
○ print(sum) yaitu menuliskan nilai variabel sum
8. Tim Pengajar Berpikir Komputasional, ILKOM IPB
[3] ASSIGNMENT
● Assignment atau penugasan adalah pemberian nilai pada sebuah
variabel.
● Ekspresi adalah operasi yang akan menghasilkan nilai untuk
diberikan pada suatu variabel.
● Ekspresi dapat berupa aritmatika maupun logika.
● Contoh:
sum = 0
x = n
sum = sum + x
9. Tim Pengajar Berpikir Komputasional, ILKOM IPB
CONTOH
Algoritme menjumlahkan dua bilangan
● Input : Dua bilangan a dan b.
● Output : Jumlah bilangan a dan b, misalnya sum.
● Perhitungan:
1. Jumlahkan a dan b, simpan di sum
2. Tampilkan nilai sum
PSEUDOCODE:
read(a, b)
sum = a + b
print(sum)
NARATIF
10. Tim Pengajar Berpikir Komputasional, ILKOM IPB
[4] STRUKTUR KENDALI
● Struktur kendali adalah suatu bentuk atau struktur yang memiliki
peranan khusus untuk mengatur atau mengendalikan urutan
pengerjaan satu atau lebih instruksi.
● Terdiri atas 3 kelompok besar, yaitu:
○ struktur kondisi (conditional) → IF
○ struktur perulangan (looping) → WHILE, FOR
○ struktur lainnya → EXIT, CONTINUE
11. Sequential
Setiap langkah diproses secara
berurutan (dari atas ke bawah)
Struktur Algoritme
Tim Pengajar Berpikir Komputasional, IPB
Conditional
Pemilihan langkah didasarkan oleh suatu
kondisi: benar (true) atau salah (false)
Loop (Pengulangan)
Suatu langkah dilakukan beberapa
kali berdasarkan suatu kondisi.
12. Tim Pengajar Berpikir Komputasional, ILKOM IPB
[4.1] STRUKTUR KONDISI
1. Jika hari hujan, lakukan:
a. bawa payung
b. gunakan mobil
2. Selainnya, gunakan sepeda.
read(nilai)
if (nilai < 60)
{
print("tidak lulus")
print("wajib mengulang")
}
else print("lulus")
13. Tim Pengajar Berpikir Komputasional, ILKOM IPB
[4.2] STRUKTUR PERULANGAN
c = 0
while(c < 3)
{
print("hello")
c = c + 1
}
for c = 0 to 3
{
print("hello")
}
14. Tim Pengajar Berpikir Komputasional, ILKOM IPB
Implementasi Aneka Bahasa Pemrograman
C
for (c = 0, c < 3, c++)
{
printf("hello");
}
BASIC
FOR c = 0 TO 2
PRINT "hello"
NEXT
Python
for c in range(0, 3)
print("hello")
15. Tim Pengajar Berpikir Komputasional, ILKOM IPB
[4.3] STRUKTUR LAINNYA
a = 10
while (a < 15)
{
a = a + 1
if (a <= 13) continue
print(a)
}
read(a, b)
if (a < b) swap(a, b)
while (true)
{
r = a % b
if (r == 0) exit
a = b
b = r
}
print(b)
16. Tim Pengajar Berpikir Komputasional, ILKOM IPB
[5] KETERANGAN
● Keterangan atau komentar yaitu
suatu catatan tambahan yang
dituliskan ke dalam algoritme
dengan tujuan untuk
memperjelas, tetapi tidak
mempengaruhi operasi apapun
di dalam algoritme.
● Kalimat komentar dapat
dituliskan di sebelah kanan tanda
garis miring dua kali (//), atau
diapit oleh tanda garis miring dan
tanda bintang (/ ∗ ... ∗ /).
/*
Algoritme mencetak teks Hello
Menggunakan struktur while
*/
c = 0 // inisialisasi
while(c < 3)
{
c = c + 1
print("hello")
}
17. Tim Pengajar Berpikir Komputasional, ILKOM IPB
PENGANTAR REKURSI
● Pernah belajar tentang segitiga
pascal ?
● Bagaimana pola aturannya ?
18. Tim Pengajar Berpikir Komputasional, ILKOM IPB
PENGANTAR REKURSI
● Sebuah objek dikatakan rekursif
(recursive) jika ia didefinisikan
dalam terminologi dirinya sendiri.
● Proses mendefinisikan objek
dalam terminologi dirinya sendiri
disebut rekursi (recursion).
19. Tim Pengajar Berpikir Komputasional, ILKOM IPB
PENGANTAR REKURSI
● Salah satu fenomena di alam
yang merupakan contoh rekursi
adalah fractal
20. START-UP MANPOWER
PROBLEM
Joni dan Desi adalah seorang lulusan IPB dan sedang merintis sebuah
start-up di bidang pertanian. Mereka menamai start-up mereka dengan
G6 Company. Joni bertindak sebagai CEO dan Desi bertindak sebagai
CTO. Di fase awal start-up G6, tahun ini mereka mempunyai 10
karyawan. Sudah ditentukan pula tahun berikutnya mereka akan
mempunyai 15 karyawan.
Sejak saat itu, mereka mempunyai kebijakan bahwa untuk setiap tahun
jumlah karyawannya adalah dua kali dari jumlah karyawan pada tahun
sebelumnya dikurangi dengan jumlah karyawan pada dua tahun
sebelumnya.
Joni sedang membuat perencanaan pengembangan perusahaan untuk
dipresentasikan di depan para investor. Investor menanyakan tentang
jumlah karyawan jika perusahaan tetap berdiri pada lima belas tahun
yang akan datang. Bantulah Joni dalam menjawab pertanyaan investor
agar start-up G6 Company bisa mendapatkan modal dari para investor.
21. Tim Pengajar Berpikir Komputasional, ILKOM IPB
FIBONACCI
● Deret Fibonacci adalah suatu
deret matematika yang berasal
dari penjumlahan dua bilangan
sebelumnya. 1, 1, 2, 3, 5, 8, 13, 21,
…
● Rumus Fibonacci :
f(n) = f(n – 1) + f(n – 2)
Contoh :
f(6) = f(6-1) + f(6-2)
8 = 5 + 3
22. Tim Pengajar Berpikir Komputasional, ILKOM IPB
FIBONACCI
● Fungsi rekursif didefinisikan oleh dua
bagian:
○ (i) Basis
● Bagian yang berisi nilai fungsi
yang terdefinisi secara eksplisit.
● Bagian ini juga sekaligus
menghentikan rekursif (dan
memberikan sebuah nilai yang
terdefinisi pada fungsi rekursif).
○ (ii) Rekurens
● Bagian ini mendefinisikan fungsi
dalam terminologi dirinya sendiri.
● Berisi kaidah untuk menemukan
nilai fungsi pada suatu input dari
nilai-nilai lainnya pada input yang
lebih kecil.
Definisi bilangan fibonacci
fn = fn-1 + fn-2 untuk n > 2
f1 = 1
f2 = 1 basis
rekurens
23. Tim Pengajar Berpikir Komputasional, ILKOM IPB
Diskusi #1
● Input : Banyaknya coklat, misalnya C.
● Output : Nomor bebek pertama yang tidak mendapat coklat, misalnya b.
● Perhitungan:
1. Hitung akar dari 2C, ambil bilangan bulatnya, simpan sebagai n
2. Hitung n(n + 1), simpan sebagai a
3. Jika (a ≤ 2C), maka b = (n + 1). Selainnya, b = n.
Tuliskan algoritme berikut dalam bentuk pseudocode
24. Tim Pengajar Berpikir Komputasional, ILKOM IPB
Diskusi #2
read(a,b)
while (b!=0) // selama nilai b tidak sama dengan nol
{
r = a % b // % adalah notasi untuk modulo
a = b
b = r
}
print(a)
Tuliskan output dari algoritme berikut jika diberikan input data:
12 20
25. Tim Pengajar Berpikir Komputasional, ILKOM IPB
Diskusi #3
a = 0
while (a < 5)
{
a = a + 1
print("hello")
}
Berapa kali teks “hello” dicetak oleh algoritme berikut?
a = 0
while (a < 1000)
{
a = a + 1
print("hello")
}
A B
26. Tim Pengajar Berpikir Komputasional, ILKOM IPB
Diskusi #4
Buat algoritme untuk menentukan bilangan terbesar dari 3
bilangan.
Contoh input:
5 10 2
Contoh output:
10
27. Tim Pengajar Berpikir Komputasional, ILKOM IPB
Diskusi #5
Buat algoritme untuk menentukan faktorial dari suatu bilangan
bulat.
Contoh input:
5
Contoh output:
120