SlideShare a Scribd company logo
KOM1102 #9
Problem Solving
Pseudocode
Tim Pengajar Berpikir Komputasional
Departemen Ilmu Komputer - FMIPA
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
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.
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
Tim Pengajar Berpikir Komputasional, ILKOM IPB
Elemen Pseudocode
VARIABEL
ASSIGNMENT
KETERANGAN
INSTRUKSI
STRUKTUR KENDALI
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
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
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
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
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
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.
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")
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")
}
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")
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)
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")
}
Tim Pengajar Berpikir Komputasional, ILKOM IPB
PENGANTAR REKURSI
● Pernah belajar tentang segitiga
pascal ?
● Bagaimana pola aturannya ?
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).
Tim Pengajar Berpikir Komputasional, ILKOM IPB
PENGANTAR REKURSI
● Salah satu fenomena di alam
yang merupakan contoh rekursi
adalah fractal
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.
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
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
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
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
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
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
Tim Pengajar Berpikir Komputasional, ILKOM IPB
Diskusi #5
Buat algoritme untuk menentukan faktorial dari suatu bilangan
bulat.
Contoh input:
5
Contoh output:
120

More Related Content

What's hot

Makalah koloid 3
Makalah koloid 3Makalah koloid 3
Makalah koloid 3
Warnet Raha
 
Pemisahan Campuran Berdasarkan Perbedaan Sifat Fisika Komponen Punyusunnya
Pemisahan Campuran Berdasarkan Perbedaan Sifat Fisika Komponen PunyusunnyaPemisahan Campuran Berdasarkan Perbedaan Sifat Fisika Komponen Punyusunnya
Pemisahan Campuran Berdasarkan Perbedaan Sifat Fisika Komponen Punyusunnya
Adifa Putri Ramandani
 
Ppt stoikiometri
Ppt stoikiometriPpt stoikiometri
Ppt stoikiometri
DianaGultom
 
Sifat optik material (callister chapter 21)
Sifat optik material (callister chapter 21)Sifat optik material (callister chapter 21)
Sifat optik material (callister chapter 21)
Dionisius Kristanto
 
Termodinamika (1-2) a Diferensial eksak dan tak eksak
Termodinamika (1-2) a Diferensial eksak dan tak eksakTermodinamika (1-2) a Diferensial eksak dan tak eksak
Termodinamika (1-2) a Diferensial eksak dan tak eksakjayamartha
 
MIKROSKOP ELEKTRON
MIKROSKOP ELEKTRONMIKROSKOP ELEKTRON
MIKROSKOP ELEKTRON
MAFIA '11
 
Penentuan sulfat secara turbidimetri
Penentuan sulfat secara turbidimetriPenentuan sulfat secara turbidimetri
Penentuan sulfat secara turbidimetri
qlp
 
Atom, molekul, dan spektrum atom
Atom, molekul, dan spektrum atomAtom, molekul, dan spektrum atom
Atom, molekul, dan spektrum atom
aditya rakhmawan
 
Kromatografi SMK-SMAK Bogor
Kromatografi SMK-SMAK BogorKromatografi SMK-SMAK Bogor
Kromatografi SMK-SMAK Bogor
DeviPurnama
 
ikatan kimia
ikatan kimiaikatan kimia
ikatan kimia
Dede Suhendra
 
Laporan eksperimen hukum beer lambert
Laporan eksperimen hukum beer lambertLaporan eksperimen hukum beer lambert
Laporan eksperimen hukum beer lambertA Shofyan Al-ghifari
 
Fiberglass
FiberglassFiberglass
Fiberglass
Dwi Andriyanto
 
Ppt 2 difraksi kristal dan kisi balik
Ppt 2 difraksi kristal dan kisi balikPpt 2 difraksi kristal dan kisi balik
Ppt 2 difraksi kristal dan kisi balik
windyramadhani52
 
laporan kimia fisik - Penentuan berat molekul polimer
laporan kimia fisik - Penentuan berat molekul polimerlaporan kimia fisik - Penentuan berat molekul polimer
laporan kimia fisik - Penentuan berat molekul polimer
qlp
 
Makalah Struktur Atom
Makalah Struktur AtomMakalah Struktur Atom
Makalah Struktur Atom
marnitukan
 
Kinetika kimia
Kinetika kimiaKinetika kimia
Kinetika kimia
Putri Wahyuni
 
XRD
XRDXRD
Ikatan kimia dan struktur molekul
Ikatan kimia dan struktur molekulIkatan kimia dan struktur molekul
Ikatan kimia dan struktur molekul
ujangsupiandi
 
Termokimia
TermokimiaTermokimia
Termokimia
EKO SUPRIYADI
 
Pik 2 bab 7_2_hidrolisis
Pik 2 bab 7_2_hidrolisisPik 2 bab 7_2_hidrolisis
Pik 2 bab 7_2_hidrolisiswahyuddin S.T
 

What's hot (20)

Makalah koloid 3
Makalah koloid 3Makalah koloid 3
Makalah koloid 3
 
Pemisahan Campuran Berdasarkan Perbedaan Sifat Fisika Komponen Punyusunnya
Pemisahan Campuran Berdasarkan Perbedaan Sifat Fisika Komponen PunyusunnyaPemisahan Campuran Berdasarkan Perbedaan Sifat Fisika Komponen Punyusunnya
Pemisahan Campuran Berdasarkan Perbedaan Sifat Fisika Komponen Punyusunnya
 
Ppt stoikiometri
Ppt stoikiometriPpt stoikiometri
Ppt stoikiometri
 
Sifat optik material (callister chapter 21)
Sifat optik material (callister chapter 21)Sifat optik material (callister chapter 21)
Sifat optik material (callister chapter 21)
 
Termodinamika (1-2) a Diferensial eksak dan tak eksak
Termodinamika (1-2) a Diferensial eksak dan tak eksakTermodinamika (1-2) a Diferensial eksak dan tak eksak
Termodinamika (1-2) a Diferensial eksak dan tak eksak
 
MIKROSKOP ELEKTRON
MIKROSKOP ELEKTRONMIKROSKOP ELEKTRON
MIKROSKOP ELEKTRON
 
Penentuan sulfat secara turbidimetri
Penentuan sulfat secara turbidimetriPenentuan sulfat secara turbidimetri
Penentuan sulfat secara turbidimetri
 
Atom, molekul, dan spektrum atom
Atom, molekul, dan spektrum atomAtom, molekul, dan spektrum atom
Atom, molekul, dan spektrum atom
 
Kromatografi SMK-SMAK Bogor
Kromatografi SMK-SMAK BogorKromatografi SMK-SMAK Bogor
Kromatografi SMK-SMAK Bogor
 
ikatan kimia
ikatan kimiaikatan kimia
ikatan kimia
 
Laporan eksperimen hukum beer lambert
Laporan eksperimen hukum beer lambertLaporan eksperimen hukum beer lambert
Laporan eksperimen hukum beer lambert
 
Fiberglass
FiberglassFiberglass
Fiberglass
 
Ppt 2 difraksi kristal dan kisi balik
Ppt 2 difraksi kristal dan kisi balikPpt 2 difraksi kristal dan kisi balik
Ppt 2 difraksi kristal dan kisi balik
 
laporan kimia fisik - Penentuan berat molekul polimer
laporan kimia fisik - Penentuan berat molekul polimerlaporan kimia fisik - Penentuan berat molekul polimer
laporan kimia fisik - Penentuan berat molekul polimer
 
Makalah Struktur Atom
Makalah Struktur AtomMakalah Struktur Atom
Makalah Struktur Atom
 
Kinetika kimia
Kinetika kimiaKinetika kimia
Kinetika kimia
 
XRD
XRDXRD
XRD
 
Ikatan kimia dan struktur molekul
Ikatan kimia dan struktur molekulIkatan kimia dan struktur molekul
Ikatan kimia dan struktur molekul
 
Termokimia
TermokimiaTermokimia
Termokimia
 
Pik 2 bab 7_2_hidrolisis
Pik 2 bab 7_2_hidrolisisPik 2 bab 7_2_hidrolisis
Pik 2 bab 7_2_hidrolisis
 

Similar to Computational Thinking: Pseudocode

Logika pemrograman hand out
Logika pemrograman hand outLogika pemrograman hand out
Logika pemrograman hand out
givaro igfar
 
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunusTifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
Tifanie Indah
 
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunusTifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
Tifanie Indah
 
Algoritma Pemrogaman
Algoritma PemrogamanAlgoritma Pemrogaman
Algoritma Pemrogaman
Materi Kuliah Online
 
Materi_1_Pengantar_Algoritma.pptx
Materi_1_Pengantar_Algoritma.pptxMateri_1_Pengantar_Algoritma.pptx
Materi_1_Pengantar_Algoritma.pptx
wahyu479353
 
PENGEMBANGAN PROGRAM TERSTRUKTUR
PENGEMBANGAN PROGRAM TERSTRUKTURPENGEMBANGAN PROGRAM TERSTRUKTUR
PENGEMBANGAN PROGRAM TERSTRUKTUR
EDIS BLOG
 
MAKALAH PERULANGAN BAHASA C ( Diki Candra ).docx
MAKALAH PERULANGAN BAHASA C ( Diki Candra ).docxMAKALAH PERULANGAN BAHASA C ( Diki Candra ).docx
MAKALAH PERULANGAN BAHASA C ( Diki Candra ).docx
Dikicandra6
 
Makalah perulangan
Makalah perulanganMakalah perulangan
Makalah perulangan
Surya Radhitya
 
Tistrukdat9
Tistrukdat9Tistrukdat9
Tistrukdat9
Antonius Rachmat C
 
Mobile Application 2 Pertemuan 1 Pengantar Kotlin
Mobile Application 2 Pertemuan 1 Pengantar KotlinMobile Application 2 Pertemuan 1 Pengantar Kotlin
Mobile Application 2 Pertemuan 1 Pengantar Kotlin
Akhmad Khanif Zyen
 
Tugas Pt
Tugas PtTugas Pt
Tugas Pt
guestcdc95496
 
Tugas Pt
Tugas PtTugas Pt
Tugas Pt
guestcdc95496
 
Tugas Pt
Tugas PtTugas Pt
Tugas Pt
guestcdc95496
 
Modul prak-algo
Modul prak-algoModul prak-algo
Modul prak-algo
Ayu Karisma Alfiana
 
Dasar Algoritma
Dasar Algoritma Dasar Algoritma
Dasar Algoritma
casnadi
 
M03b algoritma lanjutan
M03b algoritma lanjutanM03b algoritma lanjutan
M03b algoritma lanjutanBilly Alhamra
 
Modul latihan-c -
Modul latihan-c -Modul latihan-c -
Modul latihan-c -
Yang Terluka
 
Algoritma dan data struktur pdf
Algoritma dan data struktur pdfAlgoritma dan data struktur pdf
Algoritma dan data struktur pdf
dedisusanto41
 
Chapter 3 konsep dasar algoritma - cont
Chapter 3   konsep dasar algoritma - contChapter 3   konsep dasar algoritma - cont
Chapter 3 konsep dasar algoritma - cont
Muhammad Najib
 

Similar to Computational Thinking: Pseudocode (20)

Logika pemrograman hand out
Logika pemrograman hand outLogika pemrograman hand out
Logika pemrograman hand out
 
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunusTifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
 
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunusTifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
Tifanieindahyulianti 1610530183 tugasperulangan_algoritma_muhammadyunus
 
Algoritma Pemrogaman
Algoritma PemrogamanAlgoritma Pemrogaman
Algoritma Pemrogaman
 
Materi_1_Pengantar_Algoritma.pptx
Materi_1_Pengantar_Algoritma.pptxMateri_1_Pengantar_Algoritma.pptx
Materi_1_Pengantar_Algoritma.pptx
 
PENGEMBANGAN PROGRAM TERSTRUKTUR
PENGEMBANGAN PROGRAM TERSTRUKTURPENGEMBANGAN PROGRAM TERSTRUKTUR
PENGEMBANGAN PROGRAM TERSTRUKTUR
 
MAKALAH PERULANGAN BAHASA C ( Diki Candra ).docx
MAKALAH PERULANGAN BAHASA C ( Diki Candra ).docxMAKALAH PERULANGAN BAHASA C ( Diki Candra ).docx
MAKALAH PERULANGAN BAHASA C ( Diki Candra ).docx
 
Makalah perulangan
Makalah perulanganMakalah perulangan
Makalah perulangan
 
Tistrukdat9
Tistrukdat9Tistrukdat9
Tistrukdat9
 
Mobile Application 2 Pertemuan 1 Pengantar Kotlin
Mobile Application 2 Pertemuan 1 Pengantar KotlinMobile Application 2 Pertemuan 1 Pengantar Kotlin
Mobile Application 2 Pertemuan 1 Pengantar Kotlin
 
Tugas Pt
Tugas PtTugas Pt
Tugas Pt
 
Tugas Pt
Tugas PtTugas Pt
Tugas Pt
 
Tugas Pt
Tugas PtTugas Pt
Tugas Pt
 
Modul prak-algo
Modul prak-algoModul prak-algo
Modul prak-algo
 
Dasar Algoritma
Dasar Algoritma Dasar Algoritma
Dasar Algoritma
 
M03b algoritma lanjutan
M03b algoritma lanjutanM03b algoritma lanjutan
M03b algoritma lanjutan
 
Algoritam1
Algoritam1Algoritam1
Algoritam1
 
Modul latihan-c -
Modul latihan-c -Modul latihan-c -
Modul latihan-c -
 
Algoritma dan data struktur pdf
Algoritma dan data struktur pdfAlgoritma dan data struktur pdf
Algoritma dan data struktur pdf
 
Chapter 3 konsep dasar algoritma - cont
Chapter 3   konsep dasar algoritma - contChapter 3   konsep dasar algoritma - cont
Chapter 3 konsep dasar algoritma - cont
 

Computational Thinking: Pseudocode

  • 1. KOM1102 #9 Problem Solving Pseudocode Tim Pengajar Berpikir Komputasional Departemen Ilmu Komputer - FMIPA
  • 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