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

KU1072/Pengantar Berpikir Komputasi


07/02/2019 2
dan Pemrograman Prosedural
Berpikir Komputasional

KU1072/Pengantar Berpikir Komputasi


07/02/2019 3
dan Pemrograman Prosedural
Pengantar
• Video: Computational Thinking_ A Digital Age Skill
for Everyone - YouTube [720p].mp4

KU1072/Pengantar Berpikir Komputasi


07/02/2019 4
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 Non-Computer Scientists", 2010

KU1072/Pengantar Berpikir Komputasi


07/02/2019 5
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
KU1072/Pengantar Berpikir Komputasi
07/02/2019 6
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

KU1072/Pengantar Berpikir Komputasi


07/02/2019 7
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

KU1072/Pengantar Berpikir Komputasi


07/02/2019 8
dan Pemrograman Prosedural
Pemanasan

KU1072/Pengantar Berpikir Komputasi


07/02/2019 9
dan Pemrograman Prosedural
Instruksi-0
• Siapkan di atas meja selembar kertas A4, pensil, dan
penghapus
• Berikan nama, NIM, dan kelas di pojok kanan atas

KU1072/Pengantar Berpikir Komputasi


07/02/2019 10
dan Pemrograman Prosedural
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
KU1072/Pengantar Berpikir Komputasi
07/02/2019 11
dan Pemrograman Prosedural
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

KU1072/Pengantar Berpikir Komputasi


07/02/2019 12
dan Pemrograman Prosedural
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

KU1072/Pengantar Berpikir Komputasi


07/02/2019 13
dan Pemrograman Prosedural
Sebenarnya apa yang baru saja
kalian lakukan??

KU1072/Pengantar Berpikir Komputasi


07/02/2019 14
dan Pemrograman Prosedural
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

KU1072/Pengantar Berpikir Komputasi


07/02/2019 15
dan Pemrograman Prosedural
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 Saraga ITB
5. Pulang ke rumah
6. Bersih-bersih rumah
7. Sarapan pagi
8. Mandi
9. Menyiapkan laptop, buku catatan, alat-alat tulis, HP, tablet dan memasukkan ke tas
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 kelas untuk mulai mengikuti
KU1072/Pengantar kuliah PTI-B
Berpikir Komputasi
07/02/2019 16
dan Pemrograman Prosedural
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

KU1072/Pengantar Berpikir Komputasi


07/02/2019 17
dan Pemrograman Prosedural
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”)

KU1072/Pengantar Berpikir Komputasi


07/02/2019 18
dan Pemrograman Prosedural
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.Keadaan
Bersiap-siap
awal :untuk pergi berolahraga
Baru bangun tidur
2.1. Pergi dari rumah
Persiapan untukke Lapangan
olahraga pagiSaraga ITB
3.2. Tiba di jogging
Pergi Saraga ITB
keliling daerah sekitar kos
4.3. Berolahraga
Merapikan pagitempatdengan
tidurjogging selama setengah
dan bersih-bersih rumahjam di Lapangan Saraga ITB
5.4. Pulang
Sarapan ke pagi
rumah
6.5. Bersih-bersih
Mandi rumah
7.6. Sarapan pagi buku catatan dan alat tulis untuk kuliah
Menyiapkan
8.7. Mandi
Jalan kaki menuju ke pinggir jalan Cisitu Lama
9.8. Menyiapkan laptop, Cisitu-Tegalega
Menunggu angkot buku catatan, alat-alat tulis, HP, tablet dan memasukkan ke tas
10.
9. Berpamitan
Naik angkotpada orang
sampai tua
di pertigaan jalan Tamansari dan Sumur Bandung
11.
10.Menyiapkan motorruang kuliah jam 9, tepat sebelum dosen masuk kelas
Jalan kaki sampai
12. Pergi ke kampus dengan menggunakan motor
13. Memarkir
Keadaan motor
akhir : tibadidilapangan parkir
kelas untuk Aulamengikuti
mulai Barat kuliah PTI-B
14. Berjalan kaki menuju ruang kuliah
Keadaan akhir : tiba di kelas untuk mulai mengikuti kuliah PTI-B
KU1072/Pengantar Berpikir Komputasi
07/02/2019 19
dan Pemrograman Prosedural
Pattern Recognition/
Pengenalan Pola (3) - Contoh
Nama : Deasy Duck NIM : 16515888 Kelas : XX
Nama : Donald Duck NIM : 16515999 Ke
Keadaan awal : Baru bangun tidur
Keadaan awal : Baru bangun tidur
1. Bersiap-siap untuk pergi berolahraga
1. Persiapan olahraga pagi
2. Pergi dari rumah ke Lapangan Saraga ITB
2. Pergi jogging keliling daerah sekitar kos
3. Tiba di Saraga ITB
3. Merapikan tempat tidur dan bersih-bersih r
4. Berolahraga pagi dengan jogging selama setengah jam di Lapangan Saraga ITB
4. Sarapan pagi
5. Pulang ke rumah
5. Mandi dan ganti baju
6. Bersih-bersih rumah
6. Menyiapkan buku catatan dan alat tulis unt
7. Sarapan pagi
7. Jalan kaki menuju ke pinggir jalan Cisitu Lam
8. Mandi dan ganti baju
8. Menunggu angkot Cisitu-Tegalega
9. Menyiapkan laptop, buku catatan, alat-alat tulis, HP, tablet dan memasukkan ke tas
9. Naik angkot sampai di pertigaan jalan Tama
10. Berpamitan pada orang tua
Bandung
11. Menyiapkan motor
10. Jalan kaki sampai ruang kuliah jam 9, tepat
12. Pergi ke kampus dengan menggunakan motor
masuk kelas
13. Memarkir motor di lapangan parkir Aula Barat
Keadaan akhir : tiba di kelas untuk mulai meng
14. Berjalan kaki menuju ruang kuliah
KU1072/Pengantar Berpikir Komputasi
Keadaan akhir : tiba di kelas untuk
07/02/2019 mulai mengikuti kuliah PTI-B
dan Pemrograman Prosedural
20
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:
• -3 * 3 = -9
• -3 * 2 = -6
• -3 * 1 = -3
• -3 * 0 = 0
• -3 * -1 = 3
• -3 * -2 = 6 dst
KU1072/Pengantar Berpikir Komputasi
07/02/2019 21
dan Pemrograman Prosedural
Pattern Recognition/
Pengenalan Pola (5)
• Pola penjualan saham

to t1 t2 t3 t4 t5 t6

Apakah di t6 akan turun


atau naik ?

KU1072/Pengantar Berpikir Komputasi


07/02/2019 22
dan Pemrograman Prosedural
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
KU1072/Pengantar Berpikir Komputasi
07/02/2019 23
dan Pemrograman Prosedural
Kemiripan pada Contoh
(hal sama/mirip ditandai dengan warna yang sama)

Nama : Deasy Duck NIM : 16513888 Kelas : XX


Nama : Donald Duck NIM : 16513999 Ke
Keadaan awal : Baru bangun tidur
Keadaan awal : Baru bangun tidur
1. Bersiap-siap untuk pergi berolahraga
1. Persiapan untuk olahraga pagi
2. Pergi dari rumah ke Lapangan Saraga ITB
2. Pergi jogging keliling daerah sekitar kos
3. Tiba di Saraga ITB
3. Merapikan tempat tidur dan bersih-bersih r
4. Berolahraga pagi dengan jogging selama setengah jam di Lapangan Saraga ITB
4. Sarapan pagi
5. Pulang ke rumah
5. Mandi dan ganti baju
6. Bersih-bersih rumah
6. Menyiapkan buku catatan dan alat tulis unt
7. Sarapan pagi
7. Jalan kaki menuju ke pinggir jalan Cisitu Lam
8. Mandi dan ganti baju
8. Menunggu angkot Cisitu-Tegalega
9. Menyiapkan laptop, buku catatan, alat-alat tulis, HP, tablet dan memasukkan ke tas
9. Naik angkot sampai di pertigaan jalan Tama
10. Berpamitan pada orang tua
Bandung
11. Menyiapkan motor
10. Jalan kaki sampai ruang kuliah jam 9, tepat
12. Pergi ke kampus dengan menggunakan motor
masuk kelas
13. Memarkir motor di lapangan parkir Aula Barat
Keadaan akhir : tiba di kelas untuk mulai meng
14. Berjalan kaki menuju ruang kuliah
KU1072/Pengantar Berpikir Komputasi
Keadaan akhir : tiba di kelas untuk
07/02/2019 mulai mengikuti kuliah PTI-B
dan Pemrograman Prosedural
24
Pattern Generalization and Abstraction
Generalisasi Pola dan Abstraksi (2)
• Contoh dari latihan:
Yang berubah ditandai dengan di antar kurung < … >
Nama : <Nama> NIM : <NIM> Kelas : <Kelas>

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 <kendaraan>
7. Berjalan kaki ke ruang kuliah

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


KU1072/Pengantar Berpikir Komputasi
07/02/2019 25
dan Pemrograman Prosedural
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

KU1072/Pengantar Berpikir Komputasi


07/02/2019 26
dan Pemrograman Prosedural
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
KU1072/Pengantar Berpikir Komputasi
07/02/2019 27
dan Pemrograman Prosedural
Bandung on Google Maps (1)

KU1072/Pengantar Berpikir Komputasi


07/02/2019 28
dan Pemrograman Prosedural
Bandung on Google Maps (2)

KU1072/Pengantar Berpikir Komputasi


07/02/2019 29
dan Pemrograman Prosedural
Algorithm Design/
Desain Algoritma (1)
• Algorithm design: ability to develop step-by-step
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

KU1072/Pengantar Berpikir Komputasi


07/02/2019 30
dan Pemrograman Prosedural
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

KU1072/Pengantar Berpikir Komputasi


07/02/2019 31
dan Pemrograman Prosedural
Analisis Data dan Visualisasi
• Strategi lain dalam problem solving
• Tidak dibahas dalam kuliah ini

KU1072/Pengantar Berpikir Komputasi


07/02/2019 32
dan Pemrograman Prosedural
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

KU1072/Pengantar Berpikir Komputasi


07/02/2019 33
dan Pemrograman Prosedural
Contoh Persoalan

KU1072/Pengantar Berpikir Komputasi


07/02/2019 34
dan Pemrograman Prosedural
Dari Algoritma Menjadi Program
Komputer

KU1072/Pengantar Berpikir Komputasi


07/02/2019 35
dan Pemrograman Prosedural
User – Software – Hardware

KU1072/Pengantar Berpikir Komputasi


07/02/2019 36
dan Pemrograman Prosedural
Komponen Hardware
• Input devices (piranti
masukan)
• Output devices (piranti
Keluaran
• Microprocessor (CPU)
• Memory dan storage
device (piranti
penyimpanan)
 Primary storage
 Secondary storage
KU1072/Pengantar Berpikir Komputasi
07/02/2019 37
dan Pemrograman Prosedural
Software – Algorithm – Program (1)
• Perangkat 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

KU1072/Pengantar Berpikir Komputasi


07/02/2019 38
dan Pemrograman Prosedural
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

KU1072/Pengantar Berpikir Komputasi


07/02/2019 39
dan Pemrograman Prosedural
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.

KU1072/Pengenalan Teknologi
07/02/2019 40
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
07/02/2019 41
Informasi B
Contoh Kompilasi dan Eksekusi

KU1072/Pengantar Berpikir Komputasi


07/02/2019 42
dan Pemrograman Prosedural
Paradigma Pemrograman
Prosedural

KU1072/Pengantar Berpikir Komputasi


07/02/2019 43
dan Pemrograman Prosedural
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.
KU1072/Pengantar Berpikir Komputasi
07/02/2019 44
dan Pemrograman Prosedural
Pemrograman Prosedural
• Program didasari oleh strukturisasi informasi di
dalam memori dan manipulasi dari informasi yang
disimpan tersebut

Program = Algoritma + Struktur Data

KU1072/Pengantar Berpikir Komputasi


07/02/2019 45
dan Pemrograman Prosedural
Berpikir Prosedural
• Sejumlah aksi dijalankan secara berurutan
(sekuensial)
• 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


07/02/2019 46
dan Pemrograman Prosedural
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

KU1072/Pengantar Berpikir Komputasi


07/02/2019 47
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


07/02/2019 48
dan Pemrograman Prosedural
Menuliskan Algoritma

KU1072/Pengantar Berpikir Komputasi


07/02/2019 49
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


07/02/2019 50
dan Pemrograman Prosedural
Flow Chart (Diagram Alir)
Mulai Selesai
Pilihan

Pilihan
Proses
Alur
pilihan
Alur

KU1072/Pengantar Berpikir Komputasi


07/02/2019 51
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
07/02/2019 52
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
07/02/2019 53
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


07/02/2019 54
dan Pemrograman Prosedural
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.
KU1072/Pengantar Berpikir Komputasi
07/02/2019 55
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


07/02/2019 56
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
07/02/2019 57
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
07/02/2019
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural tepat? 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

KU1072/Pengantar Berpikir Komputasi


07/02/2019 59
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
07/02/2019 60
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


07/02/2019 61
dan Pemrograman Prosedural
Data

KU1072/Pengantar Berpikir Komputasi


07/02/2019 62
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


07/02/2019 63
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
07/02/2019 64
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


07/02/2019 65
dan Pemrograman Prosedural
Bahasa Pemrograman Prosedural

KU1072/Pengantar Berpikir Komputasi


07/02/2019 66
dan Pemrograman Prosedural
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

KU1072/Pengantar Berpikir Komputasi


07/02/2019 67
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
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
KU1072/Pengantar Berpikir Komputasi
07/02/2019 68
dan Pemrograman Prosedural
Contoh Eksekusi Program Menghitung Tabungan

Masukkan tabungan: 1000


Tahun Depan => 1100

KU1072/Pengantar Berpikir Komputasi


07/02/2019 69
dan Pemrograman Prosedural
Bagaimana Program
dibuat?

KU1072/Pengantar Berpikir Komputasi


07/02/2019 70
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


07/02/2019 71
dan Pemrograman Prosedural
Flowchart-1: Menghitung Tabungan
mulai
Input variabel NilaiTabungan
dari keyboard (masukan
pengguna)
input (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


07/02/2019 72
dan Pemrograman Prosedural
Notasi Algoritmik-1:
Menghitung Tabungan

input ( NilaiTabungan )

NilaiTabungan  NilaiTabungan + ( NilaiTabungan * 0.1 )

output ( NilaiTabungan )

KU1072/Pengantar Berpikir Komputasi


07/02/2019 73
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
07/02/2019 74
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


07/02/2019 75
dan Pemrograman Prosedural
Program = Algoritma + Struktur Data

Struktur
Data

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

KU1072/Pengantar Berpikir Komputasi


07/02/2019 76
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


07/02/2019 77
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
07/02/2019 78
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


07/02/2019 79
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


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

KU1072/Pengantar Berpikir Komputasi


07/02/2019 82
dan Pemrograman Prosedural
Program Lengkap (Fortran)
Program MenghitungTabungan
Program MenghitungTabungan
{!Menghitung
Menghitung tabungan
tabungansetelah
setelah11tahun
tahunberdasarkan
berdasarkan masukan
! masukan dari pengguna
dari pengguna }
! KAMUS
KAMUS
real :: NilaiTabungan
NilaiTabungan : real { nilai simpanan dalam tabungan, dlm.
! ALGORITMA rupiah }
read *, NilaiTabungan
ALGORITMA
NilaiTabungan := NilaiTabungan + NilaiTabungan * 0.1
input
print *, (NilaiTabungan
NilaiTabungan )
NilaiTabungan  NilaiTabungan + ( NilaiTabungan * 0.1 )
end program HitungUangDiBank
output ( NilaiTabungan )

KU1072/Pengantar Berpikir Komputasi


07/02/2019 83
dan Pemrograman Prosedural
Terima Kasih

KU1072/Pengantar Berpikir Komputasi


07/02/2019 84
dan Pemrograman Prosedural

Anda mungkin juga menyukai