Anda di halaman 1dari 84

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-teknik di dalamnya
Menjelaskan bagaimana komputasi
dimanfaatkan dalam keilmuan fakultas/sekolah
Memahami representasi dan pemrosesan data
dan program dalam mesin komputer
Menjelaskan bagaimana proses dari source code
menjadi program dengan menggunakan
kompilator/interpreter
Menjelaskan apa yang dimaksud paradigma
pemrograman prosedural

20/01/16

KU1072/Pengantar Berpikir Komputasi dan


Pemrograman Prosedural

Berpikir Komputasional

20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

Pengantar
Video: Computational Thinking_ A Digital
Age Skill for Everyone - YouTube
[720p].mp4

20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

Computational Thinking
Computational thinking is the thought
processes involved in formulating
problems and their solutions so that the
solutions are represented in a form that
can be effectively carried out by an
information-processing agent.
Jan Cuny, Larry Snyder, and Jeannette M. Wing,
"Demystifying Computational Thinking for NonComputer Scientists", 2010
20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

Kemampuan Berpikir
Komputasional
(1)
Berpikir komputasi memungkinkan
kita untuk
menggunakan komputasi sesuai dengan kebutuhan
kita. Kemampuan ini akan menjadi salah satu
kemampuan dasar yang harus dimiliki di abad 21
(http://link.cs.cmu.edu/article.php?a=600 )

Kemampuan dasar yang sudah


ada sebelumnya:
Kemampuan Membaca
Kemampuan Menulis
Kemampuan Berhitung
20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

Kemampuan Berpikir
Komputasional
(2)
Merepresentasikan himpunan
keterampilan
(skill) dan perilaku (attitude) yang secara
universal harus dipelajari dan digunakan,
tidak hanya oleh para computer
scientist
Jeanette M. Wing, Computational Thinking,
2006

20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

Kemampuan Berpikir
Komputasional
(3)
Teknik-teknik yang
digunakan
Dekomposisi pesoalan (problem
decomposition)
Pengenalan pola (pattern recognition)
Generalisasi pola dan abstraksi (pattern
generalization and abstraction)
Rancangan algoritma (algorithm design)
Analisis data dan visualisasi

20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

Pemanasan

20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

Instruksi-0
Siapkan di atas meja selembar kertas
A4, pensil, dan penghapus
Berikan nama, NIM, dan kelas di pojok
kanan atas

20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

10

Instruksi-1
Ceritakan hal-hal dan langkah-langkah yang kamu
lakukan hari ini, mulai dari:

Bangun tidur
s.d.

Tiba di kelas untuk mengikuti


kuliah PTI-B
Tuliskan pada kertas A4
Cara penulisan bebas: boleh teks, boleh gambar,
dll.
Waktu : 5 menit
20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

11

Instruksi-2
Berkelompoklah berdua dengan teman di
sebelahmu
Dari langkah-langkah yang dikerjakan pada
instruksi-1, tandai dari lembar milikmu dan
teman di sebelahmu hal-hal dapat
dikatakan sama/mirip
Ingatlah: Cara Anda dan teman Anda bisa berbeda
dalam menyatakan hal yang sama/mirip, misalnya
representasi (gambar, teks), kalimat yang
berbeda, berbeda tingkat kedetilannya

Waktu : 10 menit
20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

12

Instruksi-3
Berdasarkan hasil perbandingan sebelumnya,
tuliskan ulang (dalam bentuk tes) di salah
satu lembar (jangan lupa menuliskan nama
dan NIM partner) apa yang disebut sebagai:
Hal-hal yang dilakukan oleh seorang
mahasiswa kelas XX pada hari ini mulai
dari bangun tidur s.d. tiba di kelas untuk
mulai mengikuti kuliah PTI-B
Waktu : 5 menit
20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

13

Sebenarnya apa yang baru


saja kalian lakukan??

20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

14

Problem Decomposition/
Dekomposisi Persoalan (1)
Decomposition: ability to break down a
task into minute details so that we can
clearly explain a process to another
person or to a computer or even to just
write notes for ourselves
Dalam latihan:
Tugas individual untuk mendekomposisi hal-hal
yang dilakukan untuk pergi ke kuliah pada hari
ini
20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

15

Problem Decomposition/
Dekomposisi Persoalan (2) Contoh
Nama : Deasy Duck
NIM : 16515888
Kelas : XX

Keadaan awal : Baru bangun tidur


1.Bersiap-siap untuk pergi berolahraga
2.Pergi dari rumah ke Lapangan Saraga ITB
3.Tiba di Saraga ITB
4.Berolahraga pagi dengan jogging selama setengah jam di Lapangan Sarag
5.Pulang ke rumah
6.Bersih-bersih rumah
7.Sarapan pagi
8.Mandi
9.Menyiapkan laptop, buku catatan, alat-alat tulis, HP, tablet dan memasuk
10.Berpamitan pada orang tua
11.Menyiapkan motor
12.Pergi ke kampus dengan menggunakan motor
13.Memarkir motor di lapangan parkir Aula Barat
14.Berjalan kaki menuju ruang kuliah
Keadaan akhir : tiba di KU1072/Pengantar
kelas untuk
mulai
mengikuti kuliah PTI-B
Berpikir
Komputasi
20/01/16

dan Pemrograman Prosedural

16

Problem Decomposition/
Dekomposisi Persoalan (3)
Contoh lain:
Menjelaskan bahan-bahan dari suatu masakan
tertentu berdasarkan cita rasanya
Mendeskripsikan cara untuk menuju ke rumah
dari kampus
Dekomposisi bilangan 256.37 menjadi 2*102 +
5*101 + 6*100 + 3*10-1 + 7*10-2
Dekomposisi bilangan menjadi faktor prima,
misalnya: 20 = 2 * 2 * 5
20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

17

Pattern Recognition/
Pengenalan Pola (1)

Pattern recognition: ability to notice


similarities or common differences that help
us make predictions or lead us to shortcuts
Dekomposisi persoalan sering memberikan
petunjuk ke arah ditemukannya pola (pattern)
Dalam latihan:
Melakukan perbandingan dengan pekerjaan teman
dan menentukan hal-hal yang sama/mirip (dan
pada saat yang sama menentukan hal-hal yang
berbeda)
20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

18

Pattern Recognition/
Pengenalan Pola (2) - Contoh
Nama : Deasy Duck

NIM : 16515888

Kelas : XX

Nama : Donald Duck


NIM : 16515999
Kelas : XX
Keadaan awal : Baru bangun tidur
1.Bersiap-siap
untuk
pergi
berolahraga
Keadaan awal
: Baru
bangun
tidur
2.Pergi
dari rumah
Lapangan
1.Persiapan
untukke
olahraga
pagiSaraga ITB
3.Tiba
dijogging
Saraga keliling
ITB
2.Pergi
daerah sekitar kos
4.Berolahraga
pagi dengan
jogging
selama setengah
3.Merapikan tempat
tidur dan
bersih-bersih
rumah jam di Lapangan Saraga
5.Pulang
ke pagi
rumah
4.Sarapan
6.Bersih-bersih
rumah
5.Mandi
7.Sarapan
pagi buku catatan dan alat tulis untuk kuliah
6.Menyiapkan
8.Mandi
7.Jalan kaki menuju ke pinggir jalan Cisitu Lama
9.Menyiapkan
laptop, Cisitu-Tegalega
buku catatan, alat-alat tulis, HP, tablet dan memasukk
8.Menunggu angkot
10.Berpamitan
orang
tua
9.Naik angkot pada
sampai
di pertigaan
jalan Tamansari dan Sumur Bandung
11.Menyiapkan
motor ruang kuliah jam 9, tepat sebelum dosen masuk kelas
10.Jalan kaki sampai
12.Pergi ke kampus dengan menggunakan motor
13.Memarkir
motor
di lapangan
Aula
Barat
Keadaan akhir
: tiba
di kelasparkir
untuk
mulai
mengikuti kuliah PTI-B
14.Berjalan kaki menuju ruang kuliah
Keadaan akhir : tiba di kelas
untuk mulai mengikuti kuliah PTI-B
KU1072/Pengantar Berpikir Komputasi
20/01/16

dan Pemrograman Prosedural

19

Pattern Recognition/
Pengenalan Pola (3) - Contoh
Nama : Deasy Duck

NIM : 16515888
Kelas : XX
Nama : Donald Duck
NIM : 1651599
XX
Keadaan awal : Baru bangun tidur
1.Bersiap-siap untuk pergi berolahraga
Keadaan awal : Baru bangun tidur
2.Pergi dari rumah ke Lapangan Saraga ITB
1.Persiapan olahraga pagi
3.Tiba di Saraga ITB
2.Pergi jogging keliling daerah sek
4.Berolahraga pagi dengan jogging selama setengah jam di Lapang
3.Merapikan tempat tidur dan bers
5.Pulang ke rumah
rumah
6.Bersih-bersih rumah
4.Sarapan pagi
7.Sarapan pagi
5.Mandi dan ganti baju
8.Mandi dan ganti baju
6.Menyiapkan buku catatan dan al
9.Menyiapkan laptop, buku catatan, alat-alat tulis, HP, tablet dan m
untuk kuliah
10.Berpamitan pada orang tua
7.Jalan kaki menuju ke pinggir jala
11.Menyiapkan motor
Lama
12.Pergi ke kampus dengan menggunakan motor
8.Menunggu angkot Cisitu-Tegaleg
13.Memarkir motor di lapangan parkir Aula Barat
9.Naik angkot sampai di pertigaan
14.Berjalan kaki menuju ruang kuliah
Tamansari
Berpikir Komputasi dan Sumur Bandung
20/01/16
20
Keadaan
akhir : tiba di KU1072/Pengantar
kelas
untuk
mulai mengikuti kuliah PTI-B
dan Pemrograman
Prosedural kaki sampai ruang kuliah
10.Jalan

Pattern Recognition/
Pengenalan Pola (4)
Contoh lain:
Anak-anak mengenali apa yang benar dan apa yang
salah berdasarkan pengamatan mereka terhadap
sikap/reaksi orang tua dan guru. Ini menentukan sikap
mereka di masa depan.
Orang yang bekerja di pasar saham mengamati pola-pola
dalam harga saham untuk menentukan kapan mereka
harus jual atau beli
Dalam ilmu matematika, kita dapat mengikuti suatu pola
untuk menjelaskan logika mengapa perkalian antara dua
buah bilangan negatif hasilnya adalah positif:

20/01/16

-3
-3
-3
-3
-3
-3

*
*
*
*
*
*

3 = -9
2 = -6
1 = -3
0=0
-1 = 3
-2 = 6 dst
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural

21

Pattern Recognition/
Pengenalan Pola (5)
Pola penjualan saham

to

t1

t2

t3

t5

t4

t6

Apakah di t6 akan turun


atau naik ?

20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

22

Pattern Generalization and Abstraction

Generalisasi Pola dan Abstraksi


(1)
Abstraction: ability to filter information that
is not necessary to solve a certain type of
problem
Pattern generalization: ability to
generalize information that is necessary
Merepresentasikan ide atau proses dalam
terminologi general (misalnya variabel)
sehingga kita dapat menggunakannya untuk
memecahkan persoalan lain yang mirip
Pengenalan pola merupakan dasar dari
abstraksi dan generalisasi pola
20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

23

Kemiripan pada Contoh


(hal sama/mirip ditandai dengan warna yang
sama)
Nama : Deasy Duck

NIM : 16513888
Kelas : XX
Nama : Donald Duck
NIM : 1651399
XX
Keadaan awal : Baru bangun tidur
1.Bersiap-siap untuk pergi berolahraga
Keadaan awal : Baru bangun tidur
2.Pergi dari rumah ke Lapangan Saraga ITB
1.Persiapan untuk olahraga pagi
3.Tiba di Saraga ITB
2.Pergi jogging keliling daerah sek
4.Berolahraga pagi dengan jogging selama setengah jam di Lapang
3.Merapikan tempat tidur dan bers
5.Pulang ke rumah
rumah
6.Bersih-bersih rumah
4.Sarapan pagi
7.Sarapan pagi
5.Mandi dan ganti baju
8.Mandi dan ganti baju
6.Menyiapkan buku catatan dan al
9.Menyiapkan laptop, buku catatan, alat-alat tulis, HP, tablet dan m
untuk kuliah
10.Berpamitan pada orang tua
7.Jalan kaki menuju ke pinggir jala
11.Menyiapkan motor
Lama
12.Pergi ke kampus dengan menggunakan motor
8.Menunggu angkot Cisitu-Tegaleg
13.Memarkir motor di lapangan parkir Aula Barat
9.Naik angkot sampai di pertigaan
14.Berjalan kaki menuju ruang kuliah
Tamansari
Berpikir Komputasi dan Sumur Bandung
20/01/16
24
Keadaan
akhir : tiba di KU1072/Pengantar
kelas
untuk
mulai mengikuti kuliah PTI-B
dan Pemrograman
Prosedural kaki sampai ruang kuliah
10.Jalan

Pattern Generalization and Abstraction

Generalisasi Pola dan Abstraksi


(2)
Contoh dari latihan:
Yang berubah ditandai dengan di antar
Nama : <Nama>
Kelas : <Kelas>
kurung
< > NIM : <NIM>
Keadaan awal : Baru bangun tidur

1.Berolahraga pagi dengan jogging di lokasi <lokasi>


2.Bersih-bersih rumah
3.Sarapan pagi
4.Mandi dan ganti baju
5.Menyiapkan <perlengkapan kuliah>
6.Pergi ke kampus dari <rumah/kos> dengan kendaraan <kend
7.Berjalan kaki ke ruang kuliah

Keadaan akhir : tiba di kelas untuk mulai mengikuti kuliah PTI-B


20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

25

Pattern Generalization and Abstraction

Generalisasi Pola dan Abstraksi


(3)

Mungkinkah ada langkah-langkah yang


lebih general???

Jika pekerjaan satu kelas ini digabungkan, akan


dihasilkan langkah-langkah yang jauh lebih
general

Bagaimana jika digeneralisasi misalnya:


Untuk semua mahasiswa ITB
Untuk bermacam-macam kuliah
Untuk hari-hari lain

20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

26

Pattern Generalization and Abstraction

Generalisasi Pola dan Abstraksi


(4)
Contoh:
Daily planner menggunakan abstraksi minggu
dalam bentuk hari dan jam untuk membantu orang
mengatur waktu
Peta dunia merupakan abstraksi dari bumi dalam
bentuk garis lintang dan bujur yang membantu kita
mendeskripsikan lokasi geografis dari suatu tempat
Dalam matematika, kita dapat men-generalisasi
rumus/formula untuk pemecahan persoalan dengan
menggunakan berbagai variabel, misalnya:
(a + b) (a b) = a2 + b2
20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

27

Bandung on Google Maps (1)

20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

28

Bandung on Google Maps (2)

20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

29

Algorithm Design/
Desain Algoritma (1)
Algorithm design: ability to develop step-bystep strategy for solving a problem
Berbasis pada dekomposisi persoalan,
pengenalan pola, dan disusun berdasarkan
generalisasi pola dan abstraksi
Dalam latihan:
Menyusun langkah-langkah mulai dari bangun tidur
s.d. tiba di kelas untuk mulai mengikuti kuliah PTI-B
Algoritma dapat spesifik (lihat hasil tugas instruksi-1),
dapat generik (dengan memanfaatkan pola dan
abstraksi, lihat hasil tugas instruksi-2 dan instruksi-3)
Semakin generik, semakin banyak persoalan yang
dapat diselesaikan tujuan penyusunan algoritma
20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

30

Algorithm Design/
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 langkah-langkah dan tindakan
yang harus diikuti oleh para pemainnya
Dalam matematika, algoritma untuk menjumlahkan
dua buah pecahan adalah sbb:
1. Hitung KPK dari penyebut kedua pecahan
2. Kalikan pembilang kedua pecahan dengan hasil
pembagian KPK oleh penyebut pecahan tersebut
3. Tambahkan pembilang baru hasil perkalian pada
langkah 2 dari pecahan pertama dan kedua untuk
menghasilkan pembilang hasil penjumlahan, dan
gunakan KPK sebagai penyebut hasil penjumlahan
20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

31

Analisis Data dan


Visualisasi

Strategi lain dalam problem solving


Tidak dibahas dalam kuliah ini

20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

32

Kemampuan Berpikir
Komputasional dalam Kuliah
PTI-B
Kemampuan melakukan dekomposisi

persoalan
Kemampuan mengenali pola
Kemampuan menggeneralisasi pola dan
mengabstraksi
Kemampuan merancang algoritma
Kemampuan analisis data dan visualisasi
20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

33

Contoh Persoalan

20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

34

Dari Algoritma Menjadi


Program Komputer

20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

35

User Software Hardware

20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

36

Komponen Hardware

Input devices (piranti


masukan)
Output devices
(piranti Keluaran
Microprocessor (CPU)
Memory dan storage
device (piranti
penyimpanan)
Primary storage
Secondary storage
20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

37

Software Algorithm
Program
Perangkat(1)
Lunak (software)
memungkinkan pengguna
mengkomunikasikan suatu persoalan
kepada komputer dan komputer
memberikan solusinya kepada pengguna
Tanpa perangkat lunak, komputer hanya mesin
bodoh!

Software = program + data + dokumentasi

20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

38

Software Algorithm
Program
(2)
Algoritma: himpunan
prosedur langkah per
langkah untuk menyelesaikan suatu persoalan
Pekerjaan programmer adalah mengubah
algoritma menjadi program komputer
dengan menggunakan bahasa pemrograman
Program komputer dituliskan oleh programmer dalam
bentuk source code
Compiler/interpreter akan mentransformasi source
code menjadi executable code yaitu bentuk akhir
program yang dapat diberikan kepada user

20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

39

Bahasa Komputer
Setiap komputer memproses instruksi dalam
bahasa mesin (machine language)
Kode-kode numerik yang digunakan untuk
mengerjakan operasi-operasi dasar:

Adding and subtracting numbers


Comparing numbers
Moving numbers
Repeating instructions

Programmer menggunakan bahasa


pemrograman tingkat tinggi (high-level
languages)
Pascal, C/C++, Fortran, Basic, Java, dll.
20/01/16

KU1072/Pengenalan Teknologi
Informasi B

40

Dari Source Code menjadi


Program
Source
code

Programmer
membuat
source code

Pengguna

20/01/16

Compiler

Dalam bahasa
pemrograman tingkat
tinggi (mis. C++,
Pascal, Fortran)
Executab
le code

kompilasi
source code
menjadi
object code

Object
code
Link
Dalam bahasa
mesin

KU1072/Pengenalan Teknologi
Informasi B

41

Contoh Kompilasi dan


Eksekusi

20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

42

Paradigma Pemrograman
Prosedural

20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

43

Paradigma Pemrograman
Pemrograman [komputer] adalah proses
untuk memformulasi persoalan komputasi
menjadi program [komputer]
Paradigma [pemrograman] adalah sudut
pandang penyelesaian persoalan dengan
[program]
Contoh paradigma pemrograman:
Paradigma prosedural (imperatif) akan
diajarkan di kuliah ini
Paradigma berorientasi objek
Paradigma deklaratif
Dll.
20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

44

Pemrograman Prosedural
Program didasari oleh strukturisasi
informasi di dalam memori dan
manipulasi dari informasi yang disimpan
tersebut

Program = Algoritma + Struktur Data

20/01/16

KU1072/Pengantar Berpikir Komputasi dan


Pemrograman Prosedural

45

Berpikir Prosedural
Sejumlah aksi dijalankan secara berurutan
(sekuensial)
Setiap aksi akan memberikan efek
eksekusi tertentu
Aksi harus selesai (tidak bisa terusmenerus) harus ada kontrak mulai dan
selesai
Jelas keadaan awal (initial state)
Jelas keadaan akhir (final state)
20/01/16

KU1072/Pengantar Berpikir Komputasi dan


Pemrograman Prosedural

46

Contoh-1:
Memasak Kentang untuk Makan
Malam
Untuk makan malam, sejumlah kentang
harus dikupas dan dimasak
Keadaan awal: kantong kentang tersedia di
dapur
Belum jelas apakah kentang tersedia cukup atau
tidak

Keadaan akhir: masakan dengan bahan


dasar kentang tersedia dan siap
dihidangkan untuk makan malam
20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

47

Memasak kentang untuk makan


malam
Kentang
tersedia?

Mau
dimasak
apa?

Ya

Tidak

Kupas Kentang
Goreng ?

Rebus ?

Sup ?

Beli kentang

20/01/16

KU1072/Pengantar Berpikir Komputasi dan


Pemrograman Prosedural

48

Menuliskan Algoritma

20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

49

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 }
20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

50

Flow Chart (Diagram Alir)


Mulai

Selesai

Pilihan

Proses

Alur
pilihan

Alur
20/01/16

Pilihan

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

51

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
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural
... { flowchart dan notasi
algoritmik lihat pada

20/01/16

52

Flowchart:
Memasak Kentang untuk Makan
Malam
Mulai

Kentang
Kentang
Tersedia?
Tersedia?

Tidak

Beli Kentang
Kentang
Beli

Ya
Kupas Kentang

Goreng Kentang
goreng
Rebus Kentang

Dimasak
apa?
20/01/16

rebus

Selesai

Buat Sup

supKU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

53

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
20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

54

Contoh-2:
Perbaikan Jam Dinding
Keadaan awal: Jam dinding tidak
menunjukkan waktu yang tepat
Keadaan akhir: Jam dinding menunjukkan
waktu yang tepat
Bila jarum tidak bergerak, ganti baterai
Jika bergerak berarti Baterai masih hidup
tinggal dilakukan perbaikan letak jarum jam
Buat programnya dan buatlah algoritmanya
dalam flowchart dan notasi algoritmik.
20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

55

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 slideslide berikutnya }
20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

56

Flowchart-1:
Perbaikan Jam
Dinding

Mulai

Jarum
Bergerak?

Ya

Perbaiki Jarum
panjang dan pendek
pada lokasi yang tepat

Tidak
Ganti
Baterai Baru

Selesai
20/01/16

Apa yang salah


dengan flowchart
ini??
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural

57

Flowchart-2:
Perbaikan Jam
Dinding

Mulai

Jarum
Bergerak?

Ya

Perbaiki Jarum
panjang dan pendek
pada lokasi yang tepat

Tidak
Ganti
Baterai Baru

Selesai
20/01/16

Bagaimana jika
ternyata setelah
dua hari jam
kembali tidak
tepat?

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

58

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

20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

59

Mulai

Flowchart-3:
Perbaikan Jam
Dinding

Ya

Jarum
Bergerak?

Perbaiki Jarum
panjang dan
pendek pada
lokasi yang tepat

Tidak
Ganti
Baterai Baru

Selesai
20/01/16

Tidak

Jam tepat
waktu?

Periksa jam
setelah 2 hari

Ya
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural

60

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)
20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

61

Data

20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

62

Abstraksi Data
90
Suhu Air?

kemampuan kita untuk


menginterpretasikan
suatu data dengan
konteks masalahnya

Berat Badan?
Kecepatan
Kendaraan
Bergerak
20/01/16

KU1072/Pengantar Berpikir Komputasi dan


Pemrograman Prosedural

63

Persoalan Abstraksi
Data
Suhu Air?

Berat Badan?

Kecepatan
Kendaraan
Bergerak

75
derajat
Celcius
20/01/16

kemampuan kita untuk


mengerti konteks dan
merepresentasikan
menjadi bentuk lain.

Kilogram

Km/jam

KU1072/Pengantar Berpikir Komputasi dan


Pemrograman Prosedural

64

Data Mahasiswa vs Data


Penduduk

Struktur
Data
NIM:
Nama
Kota Lahir
Tanggal Lahir
Nama Ayah
Nama Ibu
20/01/16

KU1072/Pengantar Berpikir Komputasi dan


Pemrograman Prosedural

Nomor KTP:
Nama
Kota Lahir
Tanggal Lahir
Nama Ayah
Nama Ibu
65

Bahasa Pemrograman
Prosedural

20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

66

Bahasa Pemrograman
Prosedural
Ada RIBUAN bahasa pemrograman di dunia

saat ini termasuk bahasa pemrograman


prosedural
Tidak mungkin semua bahasa pemrograman
dipelajari di kuliah
Oleh karena itu yang diajarkan adalah belajar
pemrograman melalui pola pikir
komputasional dan paradigma
pemrograman prosedural
Bahasa pemrograman yang diajarkan C/C++,
Pascal
20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

67

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
menjadi 110 ribu.

Buatlah program yang menghitung uang kita


setelah satu tahun.
Program akan menanyakan uang kita saat ini,
kemudian program akan menampilkan uang kita
setelah satu tahun
20/01/16

KU1072/Pengantar Berpikir Komputasi dan


Pemrograman Prosedural

68

Contoh Eksekusi Program Menghitung


Tabungan

Masukkan tabungan:1000
Tahun Depan =>1100

20/01/16

KU1072/Pengantar Berpikir Komputasi dan


Pemrograman Prosedural

69

Bagaimana Program
dibuat?

20/01/16

KU1072/Pengantar Berpikir Komputasi dan


Pemrograman Prosedural

70

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 slideslide berikutnya }

20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

71

Flowchart-1: Menghitung
Tabungan
mulai

Input variabel
NilaiTabungan dari
keyboard (masukan
pengguna)

input
(NilaiTabungan)

NilaiTabungan = NilaiTabungan
+ (NilaiTabungan * 0.1)

output
(NilaiTabungan)
seles
ai
20/01/16

Mengubah nilai variabel


NilaiTabungan sesuai
rumus

Menampilkan isi variabel


NilaiTabungan saat ini
(setelah perhitungan) ke
monitor

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

72

Notasi Algoritmik-1:
Menghitung Tabungan
input ( NilaiTabungan )
NilaiTabungan NilaiTabungan + ( NilaiTabungan *
0.1 )
output ( NilaiTabungan )

20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

73

Flowchart-2: Menghitung
Tabungan
mulai
Menampilkan ke layar
tulisan Masukkan
tabungan

output (Masukkan
tabungan:)
input
(NilaiTabungan)
NilaiTabungan = NilaiTabungan
+ (NilaiTabungan * 0.1)
output (Tahun depan
=>)
output
(NilaiTabungan)

Menampilkan ke layar
tulisan Tahun depan
=>

seles
ai
20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

74

Notasi Algoritmik-2:
Menghitung Tabungan
output (Masukkan tabungan:)
input ( NilaiTabungan )

NilaiTabungan NilaiTabungan + ( NilaiTabungan * 0.1 )


output (Tahun depan =>)
output ( NilaiTabungan )

20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

75

Program = Algoritma + Struktur Data


Struktur
Data

Algoritma

20/01/16

input (NilaiTabungan)
NilaiTabungan NilaiTabungan
+ (NilaiTabungan * 0.1)
output( NilaiTabungan )
KU1072/Pengantar Berpikir Komputasi dan
Pemrograman Prosedural

76

Kode Program Bahasa C++


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

cin: Console Input


(diketikkan lewat
keyboard)

cout: Console Output

20/01/16

cin >> NilaiTabungan;


NilaiTabungan = NilaiTabungan +
NilaiTabungan * 0.1;
cout << NilaiTabungan;

KU1072/Pengantar Berpikir Komputasi dan


Pemrograman Prosedural

77

Kode Program Bahasa Pascal


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

readln akan
membaca dari hasil
ketik di keyboard

writeln akan menulis


hasil di layar
komputer
20/01/16

readln(NilaiTabungan);
NilaiTabungan := NilaiTabungan +
NilaiTabungan * 0.1;
writeln(NilaiTabungan);
KU1072/Pengantar Berpikir Komputasi dan
Pemrograman Prosedural

78

Kode Program Bahasa Fortran


input (NilaiTabungan)
NilaiTabungan NilaiTabungan + NilaiTabungan *
10%
output(NilaiTabungan)
Tanda * mengindikasikan
keluaran/masukan standard
(keyboard/layar)

read akan membaca


dari hasil ketik di
keyboard

print akan menulis hasil di


layar komputer
20/01/16

read *, NilaiTabungan
NilaiTabungan = NilaiTabungan +
NilaiTabungan * 0.1;
print *, NilaiTabungan

KU1072/Pengantar Berpikir Komputasi dan


Pemrograman Prosedural

79

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 )
20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

80

Program Lengkap (C++)


// ProgramMenghitungTabungan
MenghitungTabungan
Program
// Menghitung tabungan setelah 1 tahun berdasarkan
{ //
Menghitung
masukan daritabungan
pengguna setelah 1 tahun
berdasarkan
masukan dari pengguna }
#include <iostream>
using namespace std;

KAMUS
int main() {
NilaiTabungan
: real { nilai simpanan dalam
// KAMUS
tabungan,
dlm.
float NilaiTabungan;
rupiah }
// ALGORITMA
ALGORITMA
cin >> NilaiTabungan;
input ( NilaiTabungan
) + NilaiTabungan
NilaiTabungan
= NilaiTabungan
NilaiTabungan
NilaiTabungan +
cout
<< NilaiTabungan;
return 0;
( NilaiTabungan
* 0.1 )
}
output ( NilaiTabungan )
20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

* 0.1;

81

Program Lengkap (Pascal)


Program
MenghitungTabungan;
Program
MenghitungTabungan
{ Menghitung tabungan setelah 1 tahun berdasarkan
{ masukan
Menghitung
tabungan setelah 1 tahun
dari pengguna }

berdasarkan masukan dari pengguna }

{ KAMUS }
KAMUS
var
NilaiTabungan
{
NilaiTabungan: real
: real;

nilai simpanan dalam

tabungan, dlm.

{ ALGORITMA }
rupiah }
begin
readln(NilaiTabungan);
ALGORITMA
NilaiTabungan := NilaiTabungan + NilaiTabungan * 0.1;
input ( NilaiTabungan )
writeln(NilaiTabungan);
NilaiTabungan NilaiTabungan +
end.

( NilaiTabungan * 0.1 )
output ( NilaiTabungan )
20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

82

Program Lengkap (Fortran)


Program
MenghitungTabungan
Program MenghitungTabungan
Menghitung tabungan
setelah
1 tahun
berdasarkan
{! Menghitung
tabungan
setelah
1 tahun
! masukan dari pengguna
berdasarkan
masukan dari pengguna }
! KAMUS
KAMUS
real :: NilaiTabungan
NilaiTabungan : real { nilai simpanan dalam
tabungan,
! ALGORITMA dlm.
read *, NilaiTabungan
rupiah }

NilaiTabungan := NilaiTabungan + NilaiTabungan * 0.1


ALGORITMA
print *, NilaiTabungan

input ( NilaiTabungan )
end program HitungUangDiBank
NilaiTabungan NilaiTabungan +
( NilaiTabungan * 0.1 )
output ( NilaiTabungan )
20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

83

Terima Kasih

20/01/16

KU1072/Pengantar Berpikir Komputasi


dan Pemrograman Prosedural

84

Anda mungkin juga menyukai