Anda di halaman 1dari 91

Pengantar Berpikir Komputasional

dan Pemrograman Prosedural


Tim Penyusun Materi KU1072

KU1072/Pengenalan Teknologi Informasi B


Tahap Tahun Pertama Bersama
Institut Teknologi Bandung
Tujuan Pertemuan
• Mahasiswa mampu:
– Menjelaskan apa itu berpikir komputasional dan teknik-tekni
k di dalamnya
– Menjelaskan bagaimana komputasi dimanfaatkan dalam keil
muan fakultas/sekolah
– Memahami representasi dan pemrosesan data dan program
dalam mesin komputer
– Menjelaskan bagaimana proses dari source code menjadi pro
gram dengan menggunakan kompilator/interpreter
– Menjelaskan apa yang dimaksud paradigma pemrograman pr
osedural

KU1072/Pengantar Berpikir Komputasi


01/26/2021 2
dan Pemrograman Prosedural
Berpikir Komputasional

KU1072/Pengantar Berpikir Komputasi


01/26/2021 3
dan Pemrograman Prosedural
Pengantar
• Video: Computational Thinking_ A Digital Age Skill fo
r Everyone - YouTube [720p].mp4

KU1072/Pengantar Berpikir Komputasi


01/26/2021 4
dan Pemrograman Prosedural
Computational Thinking (CT)
Computational thinking is the thought processes involv
ed in formulating problems and their solutions so that
the solutions are represented in a form that can be effe
ctively carried out by an information-processing agent.

Jan Cuny, Larry Snyder, and Jeannette M. Wing, "Demystifying Co


mputational Thinking for Non-Computer Scientists", 2010

KU1072/Pengantar Berpikir Komputasi


01/26/2021 5
dan Pemrograman Prosedural
Vision

“A fundamental skill used by everyone by t


he middle of the 21st century (i.e., like rea
ding, writing, and arithmetic).”

J.M. Wing, “Computational Thinking,” CACM viewpoint, vol. 49 n


o. 3, March 2006, pp. 33-35.

KU1072/Pengantar Berpikir Komputasi


01/26/2021 6
dan Pemrograman Prosedural
Kemampuan Berpikir Komputasional (2)
Merepresentasikan himpunan keterampilan (skill) dan p
erilaku (attitude) yang secara universal harus dipelajari
dan digunakan, tidak hanya oleh para computer scienti
st

Jeanette M. Wing, “Computational Thinking”, 2006

KU1072/Pengantar Berpikir Komputasi


01/26/2021 7
dan Pemrograman Prosedural
Teknik-Teknik yang Digunakan
• Dekomposisi persoalan (problem decompositio
n)
• Pengenalan pola (pattern recognition)
• Generalisasi pola dan abstraksi (pattern gener
alization and abstraction)
• Rancangan algoritma (algorithm design)
• Analisis data dan visualisasi

KU1072/Pengantar Berpikir Komputasi


01/26/2021 8
dan Pemrograman Prosedural
Pemanasan

KU1072/Pengantar Berpikir Komputasi


01/26/2021 9
dan Pemrograman Prosedural
Instruksi-0
• Siapkan di atas meja selembar kertas A4, pensil, pul
pen (jika ada pulpen merah lebih bagus) dan pengha
pus
• Berikan nama, NIM, dan kelas di pojok kanan atas

• Carilah seorang teman sebagai partner diskusi

KU1072/Pengantar Berpikir Komputasi


01/26/2021 10
dan Pemrograman Prosedural
Balada Mahasiswa TPB...
• Asep, seorang mahasiswa TPB ITB, pada hari pertama kuliah, t
erlambat bangun. Malam sebelumnya dia terlalu asik main ga
me sehingga baru tidur jam 1 malam. Padahal dia ada jadwal
kuliah jam 7 pagi yang dosennya kabarnya galak.
• Teman sekelas dan sekosnya, Dadan, yang lebih rajin, sudah b
erangkat ke kampus. Masalahnya Asep belum hafal jalan ke ka
mpus (dia baru pindah kos).
• Untungnya Dadan adalah teman yang baik hati. Sebelum bera
ngkat dia meninggalkan sebuah peta jalan ke kampus yang ber
isi beberapa alternatif jalan ke Gedung Kuliah.
• Ada beberapa masalah: Asep takut pada anjing galak dan seka
rang sudah pukul 6.35.

KU1072/Pengantar Berpikir Komputasi


01/26/2021 11
dan Pemrograman Prosedural
10
Cafe Pojok

PETA DADAN 2 Bubur Ayam


3 Pak Kumis Kos

4 1
3
Supermarket 3
Besar
3
5 Pos Polisi
2
Warung Tegal
10 Sedap Anjing Galak

1
Anjing Galak
3
2 Pet shop

Gerbang Rumah
5 4
Selatan Kuning 2
3
1
5

Angka pada segmen


Gedung Kuliah
7 Gerbang 9
Utara jalan adalah waktu
KU1072/Pengantar Berpikir Komputasi
tempuh (dalam menit)
01/26/2021 12
dan Pemrograman Prosedural
1) Temukan semua rute yang dari kos
Asep ke gedung kuliah

Coba tuliskan langkah-langkah yang


Anda lakukan untuk persoalan tersebut.

KU1072/Pengantar Berpikir Komputasi


01/26/2021 13
dan Pemrograman Prosedural
10
Semua rute yang Cafe Pojok
digambar Dadan bisa
mengantar Asep ke
2 Bubur Ayam
gedung kuliah 3 Pak Kumis Kos
Tapi …..
4 1
3
Supermarket 3
Besar
3
5 Pos Polisi
2
Warung Tegal
Ada rute dengan 10 Sedap Anjing Galak
anjing galak…
1
Anjing Galak
Ada rute yang 3
memakan waktu 2 Pet shop

> 25 menit
Gerbang Rumah
5 4
Selatan Kuning 2
3
1
5

Angka pada segmen


Gedung Kuliah
7 Gerbang 9
Utara jalan adalah waktu
KU1072/Pengantar Berpikir Komputasi
tempuh (dalam menit)
01/26/2021 14
dan Pemrograman Prosedural
2) Temukan rute yang setidaknya aman
buat Asep… artinya dia tidak melewati
anjing galak 

Apa yang harus diubah dari langkah-


langkah yang sudah dituliskan
sebelumnya?

KU1072/Pengantar Berpikir Komputasi


01/26/2021 15
dan Pemrograman Prosedural
10
Asal tidak melewati Cafe Pojok
segmen jalan yang
diberi warna merah,
2 Bubur Ayam
aman…. 3 Pak Kumis Kos
Tapi …..
4 1
3
Supermarket 3
Besar
3
5 Pos Polisi
2
Warung Tegal
10 Sedap Anjing Galak
Ada rute yang
memakan waktu
1
> 25 menit Anjing Galak
3
2 Pet shop

Gerbang Rumah
5 4
Selatan Kuning 2
3
1
5

Angka pada segmen


Gedung Kuliah
7 Gerbang 9
Utara jalan adalah waktu
KU1072/Pengantar Berpikir Komputasi
tempuh (dalam menit)
01/26/2021 16
dan Pemrograman Prosedural
3) Temukan rute yang aman buat Asep
- artinya dia tidak melewati anjing galak
– dan dia tetap bisa sampai paling
lambat jam 7 pagi di kampus (waktu
tempuh harus <= 25 menit)

Apa yang harus diubah dari langkah-


langkah yang sudah dituliskan
sebelumnya?
KU1072/Pengantar Berpikir Komputasi
01/26/2021 17
dan Pemrograman Prosedural
4) Bonus: Temukan rute paling pendek
– yang aman dan Asep bisa sampai di
gedung kuliah tepat waktu.

Apa yang harus diubah dari langkah-


langkah yang sudah dituliskan
sebelumnya?
KU1072/Pengantar Berpikir Komputasi
01/26/2021 18
dan Pemrograman Prosedural
10
Cafe Pojok

Merah: rute terpendek


dan aman dengan 2 Bubur Ayam
waktu tempuh 23 3 Pak Kumis Kos

menit
4 1
3
Supermarket Alt. 1 3
Besar
3
5 Pos Polisi
2
Warung Tegal
10 Sedap Anjing Galak

1
Anjing Galak
3
2 Pet shop

Gerbang Rumah
5 4
Selatan Kuning 2
3
1
5
Alt. 2

Gedung Kuliah
7 Gerbang 9
Utara
KU1072/Pengantar Berpikir Komputasi
01/26/2021 19
dan Pemrograman Prosedural
5) Asumsikan Anda diberi peta lengkap
dengan waktu tempuh untuk setiap segmen
jalan dari satu tempat ke tempat lain….
Bisakah Anda menemukan rute
terpendek antara:
- Kampus ITB dan Gedung Sate
- Kos Anda dengan Taman Hutan
Raya Juanda

Bagaimana langkahnya?
KU1072/Pengantar Berpikir Komputasi
01/26/2021 20
dan Pemrograman Prosedural
Nama Terpendek
• Pak Budi, dosen PTI-B kelas X, ingin menunjuk ketua kelas dan wa
kil ketua kelas di kelasnya. Pak Budi paling malas menghafal nam
a orang, jadi dia akan menunjuk mahasiswa dengan nama panggi
lan paling pendek (dari jumlah huruf) sebagai ketua kelas.
• Kalau ada lebih dari satu mahasiswa yang jumlah hurufnya sama,
maka yang akan diminta menjadi ketua kelas adalah yang abjadn
ya berada di urutan terkecil dari alfabet (A lebih kecil dari B, ds
t.). Kalau ternyata masih sama, baru mereka disuruh suit 
• Pak Budi malas melihat daftar hadir. Dia meminta mahasiswa di k
elasnya untuk menentukan siapa mahasiswa dengan nama terpe
ndek.

KU1072/Pengantar Berpikir Komputasi


01/26/2021 21
dan Pemrograman Prosedural
Palindrom
• Suatu kata disebut palindrom jika dibaca dari belaka
ng dan dari depan sama.
• Contoh kata palindrom adalah:
SOAL UTS
TAMAT
SEMESTER
KATAK LALU!!
KASURRUSAK
NABABAN
• Jika diberikan suatu kata, bagaimana kita menentuka
n kata itu palindrom atau bukan?
KU1072/Pengantar Berpikir Komputasi
01/26/2021 22
dan Pemrograman Prosedural
Sebenarnya apa yang baru saja kal
ian lakukan??

KU1072/Pengantar Berpikir Komputasi


01/26/2021 23
dan Pemrograman Prosedural
CT is about logical thinking
Bagaimana kalian memecahkan setiap persoalan?

DIPIKIRKAN DENGAN KEPALA 


membangun MENTAL MODEL

Berpikir komputasional adalah


cara bagaimana MANUSIA (bukan KOMPUTER) b
erpikir
KU1072/Pengantar Berpikir Komputasi
01/26/2021 24
dan Pemrograman Prosedural
Dekomposisi Persoalan (1)
Pada saat memecahkan persoalan: dekomposisi persoa
lan menjadi persoalan yang sederhana dan dapat dipec
ahkan terlebih dahulu

• Pencarian rute: Tahapan memecahkan masalah:


1. Temukan semua rute dari kos Asep ke gedung kuliah
2. Cari rute aman (tidak ada anjing galak)
3. Cari rute yang < 25 menit
4. Cari rute yang paling pendek dan aman

KU1072/Pengantar Berpikir Komputasi


01/26/2021 25
dan Pemrograman Prosedural
Dekomposisi Persoalan (3)
• Problem Decomposition:
– Ability to break down a task into minute details so
that we can clearly explain a process to another pe
rson or to a computer or even to just write notes f
or ourselves
– Reformulating seemingly difficult problem into on
e we know how to solve

KU1072/Pengantar Berpikir Komputasi


01/26/2021 26
dan Pemrograman Prosedural
Dekomposisi Persoalan (4-1)
• Contoh lain:
– Dekomposisi masakan menjadi bahan-bahan dan l
angkah pembuatannya
– Dekomposisi bilangan 256.37 menjadi 2*102 + 5*1
01 + 6*100 + 3*10-1 + 7*10-2
– Dekomposisi bilangan menjadi faktor prima, misal
nya: 20 = 2 * 2 * 5

KU1072/Pengantar Berpikir Komputasi


01/26/2021 27
dan Pemrograman Prosedural
Dekomposisi Persoalan (4-2)
• Contoh lain:
– Pekerjaan konstruksi rumah dipecah menjadi beberapa tas
k

KU1072/Pengantar Berpikir Komputasi


01/26/2021 28
dan Pemrograman Prosedural
Pengenalan Pola (1)
• Pattern recognition:
– Ability to notice similarities or common difference
s that help us make predictions or lead us to short
cuts
• Dekomposisi persoalan sering memberikan pe
tunjuk ke arah ditemukannya pola

KU1072/Pengantar Berpikir Komputasi


01/26/2021 29
dan Pemrograman Prosedural
Pengenalan Pola (2)
• Contoh: Pola langkah pada persoalan mencari 1 buah r
ute dari kos Asep ke gedung kuliah:
1. Pilih satu segmen jalan dari kos Asep. Simpan waktu tempu
hnya dan tandai bahwa segmen itu sudah dilalui. Catat bah
wa: masih ada alternatif segmen jalan dari kos Asep yang b
elum dicoba.
2. Jika ditemukan cabang, pilih salah satu segmen jalan yang
belum ditandai. Akumulasikan waktu tempuh pada segmen
jalan itu dan tandai lagi bahwa segmen jalan itu sudah dilal
ui. Catat bahwa: ada alternatif jalan dari cabang yang belu
m dicoba.
3. Lakukan langkah 2 sampai ditemukan bahwa ujung segmen
jalan adalah gedung kuliah.
KU1072/Pengantar Berpikir Komputasi
01/26/2021 30
dan Pemrograman Prosedural
Pengenalan Pola (3)
• Contoh lain:
– Orang yang bekerja di pasar saham mengamati pola-pola dalam harga saham untuk mene
ntukan kapan mereka harus jual atau beli

Apakah di
t6 akan
turun atau
naik ?
to t1 t2 t3 t4 t5 t6

– Dalam ilmu matematika, kita dapat mengikuti suatu pola untuk menjelaskan logika meng
apa perkalian antara dua buah bilangan negatif hasilnya adalah positif:
• -3 * 3 = -9
• -3 * 2 = -6
• -3 * 1 = -3
• -3 * 0 = 0
• -3 * -1 = 3
• -3 * -2 = 6 dst

KU1072/Pengantar Berpikir Komputasi


01/26/2021 31
dan Pemrograman Prosedural
Generalisasi Pola dan Abstraksi (1)
• Abstraction:
– ability to filter information that is not necessary to solve a
certain type of problem
– Pulling out important details, identifying principles to oth
er problems/situations
• Pattern generalization:
– ability to generalize information that is necessary

• Pengenalan pola merupakan dasar dari abstraksi dan


generalisasi pola
KU1072/Pengantar Berpikir Komputasi
01/26/2021 32
dan Pemrograman Prosedural
Generalisasi Pola dan Abstraksi
• Contoh generalisasi pola (dan karenanya membutuhk
an abstraksi):
– Pada persoalan pencarian rute: bagaimana jika langkah-lan
gkah pencarian rute dari kos Asep ke gedung kuliah, dipaka
i juga pada persoalan mencari rute dari X ke Y ?
– Pada persoalan nama terpendek: bagaimana jika ingin dica
ri mahasiswa yang paling tinggi/pendek, atau ingin dicari b
ola yang paling berat/paling ringan?
– Pada persoalan palindrom: bagaimana kalau ingin dicari ta
nggal yang palindrom? Contoh: 21-11-12 (21 November 20
12)
KU1072/Pengantar Berpikir Komputasi
01/26/2021 33
dan Pemrograman Prosedural
Generalisasi Pola dan Abstraksi (2)
• Contoh abstraksi:
– Peta dunia merupakan abstraksi dari bumi dalam bentuk g
aris lintang dan bujur yang membantu kita mendeskripsika
n lokasi geografis dari suatu tempat
– Dalam matematika, kita dapat men-generalisasi rumus/for
mula untuk pemecahan persoalan dengan menggunakan b
erbagai variabel, misalnya:
(a + b) (a – b) = a2 + b2

KU1072/Pengantar Berpikir Komputasi


01/26/2021 34
dan Pemrograman Prosedural
Bandung on Google Maps (1)

KU1072/Pengantar Berpikir Komputasi


01/26/2021 35
dan Pemrograman Prosedural
Bandung on Google Maps (2)

KU1072/Pengantar Berpikir Komputasi


01/26/2021 36
dan Pemrograman Prosedural
Desain Algoritma (1)
• Algorithm design: ability to develop step-by-step stra
tegy for solving a problem
• Berbasis pada dekomposisi persoalan, pengenalan po
la, dan disusun berdasarkan generalisasi pola dan abs
traksi
• Contoh: Pada persoalan pencarian rute: tuliskan lang
kah-langkah general untuk menemukan rute dari titik
X ke Y.

KU1072/Pengantar Berpikir Komputasi


01/26/2021 37
dan Pemrograman Prosedural
Desain Algoritma (2)
• Contoh lain:
– Chef menulis resep masakan sebagai algoritma yang bisa diikuti oleh
orang lain untuk memasak masakan yang sama
– Coach sepak bola membuat algoritma strategi pertandingan berupa l
angkah-langkah dan tindakan yang harus diikuti oleh para pemainnya
– Dalam matematika, algoritma untuk menjumlahkan dua buah pecaha
n adalah sbb:
1. Hitung KPK dari penyebut kedua pecahan
2. Kalikan pembilang kedua pecahan dengan hasil pembagian KPK oleh penyeb
ut pecahan tersebut
3. Tambahkan pembilang baru hasil perkalian pada langkah 2 dari pecahan pert
ama dan kedua untuk menghasilkan pembilang hasil penjumlahan, dan guna
kan KPK sebagai penyebut hasil penjumlahan

KU1072/Pengantar Berpikir Komputasi


01/26/2021 38
dan Pemrograman Prosedural
Analisis Data dan Visualisasi
• Strategi lain dalam problem solving
• Tidak dibahas dalam kuliah ini

KU1072/Pengantar Berpikir Komputasi


01/26/2021 39
dan Pemrograman Prosedural
Kemampuan Berpikir Komputasional dalam
Kuliah PTI-B

• Kemampuan melakukan dekomposisi persoalan


• Kemampuan mengenali pola
• Kemampuan menggeneralisasi pola dan mengabstrak
si
• Kemampuan merancang algoritma
• Kemampuan analisis data dan visualisasi

KU1072/Pengantar Berpikir Komputasi


01/26/2021 40
dan Pemrograman Prosedural
Kesimpulan
• Berpikir komputasional adalah:
– Mengembangkan konsep, bukan memrogram
• Tidak terkait dengan detil teknis menggunakan komputer
– Bersifat fundamental, tidak hanya sekedar keterampilan ha
falan
– Adalah bagaimana manusia (bukan komputer) berpikir
– Ide… bukan sekedar kode program (artefak)
– Untuk semua orang, di mana pun  bukan hanya untuk co
mputer scientist
http://cs4edu.cs.purdue.edu/_media/what-is-ct_edps235.pdf

KU1072/Pengantar Berpikir Komputasi


01/26/2021 41
dan Pemrograman Prosedural
Dari Algoritma Menjadi
Program Komputer
• Algoritma didapatkan dari logika berpikir memecahka
n suatu masalah
– Bisa dituliskan dengan teks atau gambar
• Agar persoalan bisa diselesaikan secara otomatis den
gan agen komputasi (aka. KOMPUTER), maka algorit
ma harus diubah menjadi program komputer melalui
penulisan kode program
KU1072/Pengantar Berpikir Komputasi
01/26/2021 42
dan Pemrograman Prosedural
User – Software – Hardware

KU1072/Pengantar Berpikir Komputasi


01/26/2021 43
dan Pemrograman Prosedural
Komponen Hardware
• Input devices (piranti mas
ukan)
• Output devices (piranti Ke
luaran
• Microprocessor (CPU)
• Memory dan storage devi
ce (piranti penyimpanan)
 Primary storage
 Secondary storage

KU1072/Pengantar Berpikir Komputasi


01/26/2021 44
dan Pemrograman Prosedural
Software – Algorithm – Program (1)
• Perangkat Lunak (software) memungkinkan penggun
a mengkomunikasikan suatu persoalan kepada komp
uter dan komputer memberikan solusinya kepada pe
ngguna
– Tanpa perangkat lunak, komputer hanya mesin bodoh!

Software = program + data + dokumentasi

KU1072/Pengantar Berpikir Komputasi


01/26/2021 45
dan Pemrograman Prosedural
Software – Algorithm – Program (2)
• Algoritma: himpunan prosedur langkah per langkah untu
k menyelesaikan suatu persoalan
• Pekerjaan programmer adalah mengubah algoritma men
jadi program komputer dengan menggunakan bahasa pe
mrograman
– Program komputer dituliskan oleh programmer dalam bentuk so
urce code
– Compiler/interpreter akan mentransformasi source code menjad
i executable code yaitu bentuk akhir program yang dapat diberik
an kepada user

KU1072/Pengantar Berpikir Komputasi


01/26/2021 46
dan Pemrograman Prosedural
Bahasa Komputer
• Setiap komputer memproses instruksi dalam bahasa mesin (m
achine language)
– Kode-kode numerik yang digunakan untuk mengerjakan operasi-opera
si dasar:
• Adding and subtracting numbers
• Comparing numbers
• Moving numbers
• Repeating instructions

• Programmer menggunakan bahasa pemrograman tingkat ting


gi (high-level languages)
– Pascal, C/C++, Fortran, Basic, Java, dll.
KU1072/Pengenalan Teknologi
01/26/2021 47
Informasi B
Dari Source Code menjadi Program
kompilasi
Source code source code
menjadi
Compiler object code
Programmer
membuat Dalam bahasa
source code pemrograman tingkat
tinggi (mis. C++,
Pascal, Fortran)
Object code
Executable
code Link
Pengguna Dalam bahasa
mesin

KU1072/Pengenalan Teknologi
01/26/2021 48
Informasi B
Contoh Kompilasi dan Eksekusi

KU1072/Pengantar Berpikir Komputasi


01/26/2021 49
dan Pemrograman Prosedural
Paradigma Pemrograman Prosedu
ral

KU1072/Pengantar Berpikir Komputasi


01/26/2021 50
dan Pemrograman Prosedural
Paradigma Pemrograman
• Pemrograman [komputer] adalah proses untuk memf
ormulasi persoalan komputasi menjadi program [kom
puter]
• Paradigma [pemrograman] adalah sudut pandang pe
nyelesaian persoalan dengan [program]
• Contoh paradigma pemrograman:
– Paradigma prosedural (imperatif)  akan diajarkan di kuli
ah ini
– Paradigma berorientasi objek
– Paradigma deklaratif
– Dll.
KU1072/Pengantar Berpikir Komputasi
01/26/2021 51
dan Pemrograman Prosedural
Pemrograman Prosedural
• Program didasari oleh strukturisasi informasi di dala
m memori dan manipulasi dari informasi yang disimp
an tersebut

Program = Algoritma + Struktur Data

KU1072/Pengantar Berpikir Komputasi


01/26/2021 52
dan Pemrograman Prosedural
Berpikir Prosedural
• Sejumlah aksi dijalankan secara berurutan (sekuensia
l)
• Setiap aksi akan memberikan efek eksekusi tertentu
• Aksi harus selesai (tidak bisa terus-menerus)  harus
ada kontrak mulai dan selesai
– Jelas keadaan awal (initial state)
– Jelas keadaan akhir (final state)

KU1072/Pengantar Berpikir Komputasi


01/26/2021 53
dan Pemrograman Prosedural
Contoh-1:
Memasak Kentang untuk Makan Malam
• Untuk makan malam, sejumlah kentang harus dikupa
s dan dimasak
• Keadaan awal: kantong kentang tersedia di dapur
– Belum jelas apakah kentang tersedia cukup atau tidak
• Keadaan akhir: masakan dengan bahan dasar kentan
g tersedia dan siap dihidangkan untuk makan malam

KU1072/Pengantar Berpikir Komputasi


01/26/2021 54
dan Pemrograman Prosedural
Memasak kentang untuk makan malam
Kentang
tersedia? Mau
Ya dimasak
apa?
Kupas Kentang
Tidak
Goreng ? Sup ?
Rebus ?

Beli kentang

KU1072/Pengantar Berpikir Komputasi


01/26/2021 55
dan Pemrograman Prosedural
Menuliskan Algoritma

KU1072/Pengantar Berpikir Komputasi


01/26/2021 56
dan Pemrograman Prosedural
Struktur Dasar Program Prosedural
Program <JudulProgram>
{ Spesifikasi Program }
KAMUS
{ Deklarasi type, variabel, konstanta, fungsi, prosedur }
ALGORITMA
{ Deretan langkah algoritmik untuk penyelesaian
persoalan }
{ Dapat memanfaatkan flowchart / notasi algoritmik }

KU1072/Pengantar Berpikir Komputasi


01/26/2021 57
dan Pemrograman Prosedural
Flow Chart (Diagram Alir)
Mulai Selesai
Pilihan

Pilihan
Proses
Alur
pilihan
Alur

KU1072/Pengantar Berpikir Komputasi


01/26/2021 58
dan Pemrograman Prosedural
Contoh-1:
Memasak Kentang untuk Makan Malam
Program MakanMalam
{ Mempersiapkan dan memasak kentang untuk makan malam }
{ Keadaan awal: kantong kentang tersedia di dapur }
{ Keadaan akhir: masakan dengan bahan dasar kentang tersedia
dan siap dihidangkan untuk makan malam}

KAMUS
... { belum digunakan }
ALGORITMA
... { flowchart dan notasi algoritmik lihat pada slide-slide
berikutnya }
KU1072/Pengantar Berpikir Komputasi
01/26/2021 59
dan Pemrograman Prosedural
Flowchart:
Memasak Kentang untuk Makan Malam
Mulai

Kentang
Kentang Tidak Beli
Beli Kentang
Kentang
Tersedia?
Tersedia?

Ya

Kupas Kentang
Goreng Kentang
goreng
Rebus Kentang Selesai
rebus
Dimasak
apa? Buat Sup
supKU1072/Pengantar Berpikir Komputasi
01/26/2021 60
dan Pemrograman Prosedural
Notasi Algoritmik:
Memasak Kentang untuk Makan Malam

if kentang_tersedia? = tidak then


Beli_Kentang
{ Di titik ini kentang sudah tersedia }
Kupas_Kentang
if pilihan_masakan = goreng then
Goreng_Kentang
else if pilihan_masakan = rebus then
Rebus_Kentang
else { pilihan_masakan = sup }
Buat_Sup

KU1072/Pengantar Berpikir Komputasi


01/26/2021 61
dan Pemrograman Prosedural
Contoh-2:
Perbaikan Jam Dinding
• Keadaan awal: Jam dinding tidak menunjukkan waktu
yang tepat
• Keadaan akhir: Jam dinding menunjukkan waktu yan
g tepat
• Bila jarum tidak bergerak, ganti baterai
• Jika bergerak berarti Baterai masih hidup tinggal dilak
ukan perbaikan letak jarum jam
• Buat programnya dan buatlah algoritmanya dalam flo
wchart dan notasi algoritmik.
KU1072/Pengantar Berpikir Komputasi
01/26/2021 62
dan Pemrograman Prosedural
Program Perbaikan Jam Dinding
Program PerbaikanJamDinding
{ Memperbaiki jam dinding yang tidak menunjukkan waktu yang
tepat }
{ Keadaan awal: Jam dinding tidak menunjukkan waktu yang
tepat }
{Keadaan akhir: Jam dinding menunjukkan waktu yang tepat }

KAMUS
... { belum digunakan }
ALGORITMA
... { flowchart dan notasi algoritmik lihat pada slide-slide
berikutnya }

KU1072/Pengantar Berpikir Komputasi


01/26/2021 63
dan Pemrograman Prosedural
Flowchart-1:
Perbaikan Jam Dinding
Mulai

Ya Perbaiki Jarum
Jarum panjang dan pendek
Bergerak pada lokasi yang tepat
?
Tidak

Ganti
Baterai Baru Apa yang salah
dengan flowchart
Selesai ini??
KU1072/Pengantar Berpikir Komputasi
01/26/2021 64
dan Pemrograman Prosedural
Flowchart-2:
Perbaikan Jam Dinding
Mulai

Ya Perbaiki Jarum
Jarum panjang dan pendek
Bergerak pada lokasi yang tepat
?
Tidak

Ganti Bagaimana jika


Baterai Baru ternyata setelah
dua hari jam
Selesai kembali tidak
01/26/2021
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural tepat? 65
Notasi Algoritmik
Setara dengan Flowchart-2

if jarum_bergerak? = tidak then


Ganti_Baterai_Baru
{ Di titik ini jarum jam sudah pasti bergerak }
Perbaiki_Letak_Jarum_Jam

KU1072/Pengantar Berpikir Komputasi


01/26/2021 66
dan Pemrograman Prosedural
Flowchart-3:
Perbaikan Jam Dinding
Mulai

Perbaiki Jarum
Jarum Ya panjang dan
Bergerak pendek pada
? lokasi yang tepat
Tidak

Ganti Jam Periksa jam


Baterai Baru tepat setelah 2 hari
Tidak waktu?

Ya
Selesai
KU1072/Pengantar Berpikir Komputasi
01/26/2021 67
dan Pemrograman Prosedural
Notasi Algoritmik
Setara dengan Flowchart-3
if jarum_bergerak? = tidak then
Ganti_Baterai_Baru
{ Di titik ini jarum jam sudah pasti bergerak }
repeat
Perbaiki_Letak_Jarum_Jam
Periksa_Jam_Setelah_2_Hari
if jarum_jam_tepat? = tidak then
Ganti_Baterai_Baru
until (jarum_jam_tepat? = ya)

KU1072/Pengantar Berpikir Komputasi


01/26/2021 68
dan Pemrograman Prosedural
Data

KU1072/Pengantar Berpikir Komputasi


01/26/2021 69
dan Pemrograman Prosedural
Abstraksi Data

90 kemampuan kita untuk


menginterpretasikan
suatu data dengan
Suhu Air? konteks masalahnya

Berat Badan?

Kecepatan
Kendaraan
Bergerak

KU1072/Pengantar Berpikir Komputasi


01/26/2021 70
dan Pemrograman Prosedural
Persoalan Abstraksi Data
kemampuan kita untuk
mengerti konteks dan
Suhu Air? merepresentasikan
Berat Badan?
menjadi bentuk lain.

Kecepatan
75 Kendaraan
Bergerak

derajat
Celcius Km/jam
Kilogram
KU1072/Pengantar Berpikir Komputasi
01/26/2021 71
dan Pemrograman Prosedural
Data Mahasiswa vs Data Penduduk

Struktur
Data
NIM: Nomor KTP:
Nama Nama
Kota Lahir Kota Lahir
Tanggal Lahir Tanggal Lahir
Nama Ayah Nama Ayah
Nama Ibu Nama Ibu

KU1072/Pengantar Berpikir Komputasi


01/26/2021 72
dan Pemrograman Prosedural
Bahasa Pemrograman Prosedural

KU1072/Pengantar Berpikir Komputasi


01/26/2021 73
dan Pemrograman Prosedural
Bahasa Pemrograman Prosedural
• Ada RIBUAN bahasa pemrograman di dunia saat ini
 termasuk bahasa pemrograman prosedural
• Tidak mungkin semua bahasa pemrograman dipelaja
ri di kuliah
• Oleh karena itu yang diajarkan adalah “belajar pemro
graman”  melalui pola pikir komputasional dan pa
radigma pemrograman prosedural
• Bahasa pemrograman yang diajarkan  C/C++, Pasca
l, Matlab

KU1072/Pengantar Berpikir Komputasi


01/26/2021 74
dan Pemrograman Prosedural
Contoh-3: Menghitung Tabungan
• Tabungan di bank selalu bertambah setiap tahun
• Bank memiliki bunga yang setiap tahun bertambah
– BNI memiliki bunga tahunan 10% per tahun
– Untuk uang 100 ribu, maka setelah satu tahun akan menja
di 110 ribu.
• Buatlah program yang menghitung uang kita setelah
satu tahun.
• Program akan menanyakan uang kita saat ini, kemudi
an program akan menampilkan uang kita setelah satu
tahun
KU1072/Pengantar Berpikir Komputasi
01/26/2021 75
dan Pemrograman Prosedural
Contoh Eksekusi Program Menghitung Tabungan

Masukkan tabungan: 1000


Tahun Depan => 1100

KU1072/Pengantar Berpikir Komputasi


01/26/2021 76
dan Pemrograman Prosedural
Bagaimana Program
dibuat?

KU1072/Pengantar Berpikir Komputasi


01/26/2021 77
dan Pemrograman Prosedural
Program Menghitung Tabungan
Program MenghitungTabungan
{ Menghitung tabungan setelah 1 tahun berdasarkan masukan
dari pengguna }
KAMUS
NilaiTabungan : real { nilai simpanan dalam tabungan, dlm.
rupiah }
ALGORITMA
... { flowchart dan notasi algoritmik lihat pada slide-slide
berikutnya }

KU1072/Pengantar Berpikir Komputasi


01/26/2021 78
dan Pemrograman Prosedural
Flowchart-1: Menghitung Tabungan
mulai
Input variabel NilaiTabungan
dari keyboard (masukan
input pengguna)
(NilaiTabungan)

NilaiTabungan = NilaiTabungan + Mengubah nilai variabel


(NilaiTabungan * 0.1) NilaiTabungan sesuai rumus

output
(NilaiTabungan) Menampilkan isi variabel
NilaiTabungan saat ini (setelah
perhitungan) ke monitor
selesai

KU1072/Pengantar Berpikir Komputasi


01/26/2021 79
dan Pemrograman Prosedural
Notasi Algoritmik-1:
Menghitung Tabungan

input ( NilaiTabungan )

NilaiTabungan  NilaiTabungan + ( NilaiTabungan * 0.1 )

output ( NilaiTabungan )

KU1072/Pengantar Berpikir Komputasi


01/26/2021 80
dan Pemrograman Prosedural
Flowchart-2: Menghitung Tabungan
mulai

output (“Masukkan tabungan:”) Menampilkan ke layar tulisan


“Masukkan tabungan”
input (NilaiTabungan)

NilaiTabungan = NilaiTabungan +
(NilaiTabungan * 0.1)

output (“Tahun depan =>”)


Menampilkan ke layar tulisan
“Tahun depan =>”
output
(NilaiTabungan)

selesai
KU1072/Pengantar Berpikir Komputasi
01/26/2021 81
dan Pemrograman Prosedural
Notasi Algoritmik-2:
Menghitung Tabungan
output (“Masukkan tabungan:”)
input ( NilaiTabungan )

NilaiTabungan  NilaiTabungan + ( NilaiTabungan * 0.1 )

output (“Tahun depan =>”)


output ( NilaiTabungan )

KU1072/Pengantar Berpikir Komputasi


01/26/2021 82
dan Pemrograman Prosedural
Program = Algoritma + Struktur Data

Struktur
Data

input (NilaiTabungan)
NilaiTabungan  NilaiTabungan +
Algoritma (NilaiTabungan * 0.1)
output( NilaiTabungan )

KU1072/Pengantar Berpikir Komputasi


01/26/2021 83
dan Pemrograman Prosedural
Kode Program Bahasa C++

input (NilaiTabungan)
NilaiTabungan  NilaiTabungan + (NilaiTabungan * 0.1)
output(NilaiTabungan)

cin: Console Input cin >> NilaiTabungan;


(diketikkan lewat
keyboard) NilaiTabungan = NilaiTabungan +
NilaiTabungan * 0.1;
cout: Console Output cout << NilaiTabungan;

KU1072/Pengantar Berpikir Komputasi


01/26/2021 84
dan Pemrograman Prosedural
Kode Program Bahasa Pascal
input (NilaiTabungan)
NilaiTabungan ← NilaiTabungan + (NilaiTabungan * 0.1)
output(NilaiTabungan)

readln akan readln(NilaiTabungan);


membaca dari hasil
ketik di keyboard NilaiTabungan := NilaiTabungan +
NilaiTabungan * 0.1;
writeln akan menulis writeln(NilaiTabungan);
hasil di layar
komputer
KU1072/Pengantar Berpikir Komputasi
01/26/2021 85
dan Pemrograman Prosedural
Kode Program Bahasa Fortran
input (NilaiTabungan)
NilaiTabungan ← NilaiTabungan + NilaiTabungan * 10%
output(NilaiTabungan)
Tanda ‘*’ mengindikasikan
keluaran/masukan standard
(keyboard/layar)

read akan membaca read *, NilaiTabungan


dari hasil ketik di
keyboard NilaiTabungan = NilaiTabungan +
NilaiTabungan * 0.1;
print akan menulis hasil di print *, NilaiTabungan
layar komputer

KU1072/Pengantar Berpikir Komputasi


01/26/2021 86
dan Pemrograman Prosedural
Program Lengkap (Notasi Algoritmik)
Program MenghitungTabungan
{ Menghitung tabungan setelah 1 tahun berdasarkan masukan
dari pengguna }
KAMUS
NilaiTabungan : real { nilai simpanan dalam tabungan, dlm.
rupiah }
ALGORITMA
input ( NilaiTabungan )
NilaiTabungan  NilaiTabungan + ( NilaiTabungan * 0.1 )
output ( NilaiTabungan )

KU1072/Pengantar Berpikir Komputasi


01/26/2021 87
dan Pemrograman Prosedural
Program Lengkap (C++)
Program MenghitungTabungan
// Program MenghitungTabungan
// Menghitung
{ Menghitung tabungansetelah
tabungan setelah1 1tahun
tahunberdasarkan
berdasarkan masukan
// pengguna
dari masukan dari
} pengguna
#include <iostream>
using namespace std;
KAMUS
NilaiTabungan
int main() { : real { nilai simpanan dalam tabungan, dlm.
// KAMUS rupiah }
float NilaiTabungan;
ALGORITMA
input ( NilaiTabungan )
// ALGORITMA
 NilaiTabungan + ( NilaiTabungan * 0.1 )
cin >> NilaiTabungan;
NilaiTabungan
NilaiTabungan
output = NilaiTabungan
( NilaiTabungan ) + NilaiTabungan * 0.1;
cout << NilaiTabungan;
return 0;
}
KU1072/Pengantar Berpikir Komputasi
01/26/2021 88
dan Pemrograman Prosedural
Program Lengkap (Pascal)
Program MenghitungTabungan
Program MenghitungTabungan;
{{Menghitung tabungansetelah
Menghitung tabungan setelah1 1tahun
tahunberdasarkan
berdasarkan masukan
masukan
dari dari }pengguna }
pengguna
{ KAMUS }
KAMUS
var
NilaiTabungan : real { nilai simpanan dalam tabungan, dlm.
NilaiTabungan : real;
rupiah }
{ ALGORITMA }
ALGORITMA
begin
input ( NilaiTabungan )
readln(NilaiTabungan);
NilaiTabungan 
NilaiTabungan := NilaiTabungan
NilaiTabungan ++ NilaiTabungan
( NilaiTabungan * 0.1 )
* 0.1;
output ( NilaiTabungan )
writeln(NilaiTabungan);
end.

KU1072/Pengantar Berpikir Komputasi


01/26/2021 89
dan Pemrograman Prosedural
Program Lengkap (Fortran)
Program MenghitungTabungan
Program MenghitungTabungan
{ !Menghitung
Menghitung tabungan setelah11 tahun
tabungan setelah tahunberdasarkan
berdasarkan masukan
dari pengguna
! masukan dari} pengguna

KAMUS
! KAMUS
NilaiTabungan : real { nilai simpanan dalam tabungan, dlm.
real :: NilaiTabungan
rupiah }
! ALGORITMA
read *, NilaiTabungan
ALGORITMA
NilaiTabungan := NilaiTabungan + NilaiTabungan * 0.1
input ( NilaiTabungan )
print *, NilaiTabungan
NilaiTabungan  NilaiTabungan + ( NilaiTabungan * 0.1 )
endoutput
program( NilaiTabungan )
HitungUangDiBank

KU1072/Pengantar Berpikir Komputasi


01/26/2021 90
dan Pemrograman Prosedural
Terima Kasih

KU1072/Pengantar Berpikir Komputasi


01/26/2021 91
dan Pemrograman Prosedural

Anda mungkin juga menyukai