KU1072/Pengenalan Teknologi Informasi B
Tahap Tahun Pertama Bersama
Institut Teknologi Bandung
Pengantar Berpikir Komputasional
dan Pemrograman Prosedural
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
Berpikir Komputasional
19/01/2017 KU1072/Pengantar Berpikir Komputasi
Pengantar
Computational Thinking (CT)
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
19/01/2017 KU1072/Pengantar Berpikir Komputasi
Vision
A
fundamental skill
used by everyone by
the middle of the 21st century (i.e., like
readi g, riti g, a d arith eti .
J.M. Wi g, Co putatio al Thi ki g, CACM ie poi t, ol. 49
Kemampuan Berpikir Komputasional (2)
Merepresentasikan himpunan keterampilan (
skill
) dan
perilaku (
attitude
) yang secara universal harus
dipelajari dan digunakan,
tidak hanya oleh para
computer scientist
Jea ette M. Wi g, Co putatio al Thi ki g , 2006
19/01/2017 KU1072/Pengantar Berpikir Komputasi
Teknik-Teknik yang Digunakan
•
Dekomposisi persoalan (
problem
decomposition)
•
Pengenalan pola (
pattern recognition
)
•
Generalisasi pola dan abstraksi (
pattern
generalization and abstraction
)
•
Rancangan algoritma (
algorithm design
)
Pemanasan
19/01/2017 KU1072/Pengantar Berpikir Komputasi
Instruksi-0
•
Siapkan di atas meja
selembar kertas A4
,
pensil
,
pulpen
(jika ada pulpen merah lebih bagus) dan
penghapus
•
Berikan
nama, NIM, dan kelas
di pojok kanan atas
Balada Mahasiswa TPB...
•
Asep, seorang mahasiswa TPB ITB, pada hari pertama kuliah,
terlambat bangun. Malam sebelumnya dia terlalu asik main
game 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
berangkat ke kampus. Masalahnya Asep belum hafal jalan ke
kampus (dia baru pindah kos).
•
Untungnya Dadan adalah teman yang baik hati. Sebelum
berangkat dia meninggalkan sebuah peta jalan ke kampus
yang berisi beberapa alternatif jalan ke Gedung Kuliah.
•
Ada beberapa masalah: Asep takut pada anjing galak dan
sekarang sudah pukul 6.35.
19/01/2017 KU1072/Pengantar Berpikir Komputasi
Cafe Pojok
Bubur Ayam Pak Kumis
Rumah Kuning Anjing Galak
Pet shop Warung Tegal Sedap
Gerbang Gerbang
Selatan
Pos Polisi Supermarket
Besar
Anjing Galak
3
1
PETA DADAN
19/01/2017 KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural 13
1) Temukan semua rute yang dari kos
Asep ke gedung kuliah
Cafe Pojok
Bubur Ayam Pak Kumis
Rumah Kuning Anjing Galak
Pet shop Warung Tegal Sedap
Gerbang Gerbang
Selatan
Pos Polisi Supermarket
Besar
Anjing Galak
3
1
Semua rute yang
digambar Dadan bisa
mengantar Asep ke
gedung kuliah
Tapi
…..
Angka pada segmen
Ada rute dengan
19/01/2017 KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural 15
2) Temukan rute yang setidaknya aman
buat Asep
…
artinya dia tidak melewati
anjing galak
Apa yang harus diubah dari
langkah-langkah yang sudah dituliskan
Cafe Pojok
Bubur Ayam Pak Kumis
Rumah Kuning Anjing Galak
Pet shop Warung Tegal Sedap
Gerbang Gerbang
Selatan
Pos Polisi Supermarket
Besar
Anjing Galak
3
1
Asal tidak melewati
segmen jalan yang
diberi warna merah,
aman
….
Tapi
…..
Angka pada segmen
Ada rute yang
19/01/2017 KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural 17
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
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
19/01/2017 KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural 19
Cafe Pojok
Bubur Ayam Pak Kumis
Rumah Kuning Anjing Galak
Pet shop Warung Tegal Sedap
Gerbang Utara Gerbang
Selatan
Pos Polisi Supermarket
Besar
Gedung Kuliah
Kos
Anjing Galak
3
1
Alt. 1
Alt. 2
Merah
: rute terpendek
dan aman dengan
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
Nama Terpendek
•
Pak Budi, dosen PTI-B kelas X, ingin menunjuk ketua kelas dan
wakil ketua kelas di kelasnya. Pak Budi paling malas menghafal
nama orang, jadi dia akan menunjuk mahasiswa dengan nama
panggilan 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
abjadnya berada di urutan terkecil dari alfabet (A lebih kecil dari
B, dst.). Kalau ternyata masih sama, baru mereka disuruh suit
•
Pak Budi malas melihat daftar hadir. Dia meminta mahasiswa di
kelasnya untuk menentukan siapa mahasiswa dengan nama
terpendek.
19/01/2017 KU1072/Pengantar Berpikir Komputasi
Palindrom
•
Suatu kata disebut
palindrom
jika dibaca dari
belakang dan dari depan sama.
•
Contoh kata palindrom adalah:
TAMAT
KATAK
KASURRUSAK
NABABAN
•
Jika diberikan suatu kata, bagaimana kita
menentukan kata itu palindrom atau bukan?
SOAL UTS
SEMESTER
Sebenarnya apa yang baru saja
kalian lakukan??
23 19/01/2017 KU1072/Pengantar Berpikir Komputasi
CT is about logical thinking
Bagaimana kalian memecahkan setiap persoalan?
DIPIKIRKAN DENGAN KEPALA
membangun
MENTAL MODEL
Berpikir komputasional adalah
cara bagaimana
MANUSIA
(bukan KOMPUTER)
Dekomposisi Persoalan (1)
Pada saat memecahkan persoalan:
dekomposisi
persoalan menjadi persoalan yang sederhana dan
dapat dipecahkan 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
19/01/2017 KU1072/Pengantar Berpikir Komputasi
Dekomposisi Persoalan (2)
•
Problem 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
Dekomposisi Persoalan (3-1)
•
Contoh lain:
–
Dekomposisi masakan menjadi bahan-bahan dan
langkah pembuatannya
–
Dekomposisi bilangan 256.37 menjadi 2*10
2
+
5*10
1
+ 6*10
0
+ 3*10
-1
+ 7*10
-2
–
Dekomposisi bilangan menjadi faktor prima,
misalnya: 20 = 2 * 2 * 5
19/01/2017 KU1072/Pengantar Berpikir Komputasi
Dekomposisi Persoalan (3-2)
•
Contoh lain:
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
19/01/2017 KU1072/Pengantar Berpikir Komputasi
Pengenalan Pola (2)
•
Contoh: Pola langkah pada persoalan mencari 1 buah
rute dari kos Asep ke gedung kuliah:
1. Pilih satu segmen jalan dari kos Asep. Simpan waktu
tempuhnya dan tandai bahwa segmen itu sudah dilalui.
Catat bahwa: masih ada alternatif segmen jalan dari kos
Asep yang belum 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
dilalui. Catat bahwa: ada alternatif jalan dari cabang yang
belum dicoba.
Pengenalan Pola (3)
•
Contoh lain:
–
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
19/01/2017 KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural 31
to
t1
t2
t3
t4
t5
t6
Apakah di
t6 akan
turun atau
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
other problems/situations
•
Pattern generalization:
–
ability to generalize information that is necessary
Generalisasi Pola dan Abstraksi
•
Contoh generalisasi pola (dan karenanya
membutuhkan abstraksi):
–
Pada persoalan pencarian rute: bagaimana jika
langkah-langkah pencarian rute dari kos Asep ke gedung kuliah,
dipakai juga pada persoalan mencari rute dari X ke Y ?
–
Pada persoalan nama terpendek: bagaimana jika ingin
dicari mahasiswa yang paling tinggi/pendek, atau ingin
dicari bola yang paling berat/paling ringan?
–
Pada persoalan palindrom: bagaimana kalau ingin dicari
tanggal yang palindrom? Contoh: 21-11-12 (21 November
2012)
19/01/2017 KU1072/Pengantar Berpikir Komputasi
Generalisasi Pola dan Abstraksi (2)
•
Contoh abstraksi:
–
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:
Bandung on Google Maps (1)
35 19/01/2017 KU1072/Pengantar Berpikir Komputasi
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
•
Contoh: Pada persoalan pencarian rute: tuliskan
langkah-langkah general untuk menemukan rute dari
titik X ke Y.
19/01/2017 KU1072/Pengantar Berpikir Komputasi
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
Analisis Data dan Visualisasi
•
Strategi lain dalam problem solving
•
Tidak dibahas dalam kuliah ini
19/01/2017 KU1072/Pengantar Berpikir Komputasi
Kemampuan Berpikir Komputasional
dalam Kuliah PTI-B
•
Kemampuan melakukan dekomposisi persoalan
•
Kemampuan mengenali pola
•
Kemampuan menggeneralisasi pola dan
mengabstraksi
•
Kemampuan merancang
algoritma
Kesimpulan
•
Berpikir komputasional adalah:
–
Mengembangkan
konsep
, bukan memrogram
•
Tidak terkait dengan detil teknis menggunakan komputer
–
Bersifat fundamental, tidak hanya sekedar keterampilan
hafalan
–
Adalah bagaimana manusia (bukan komputer) berpikir
–
Ide…
bukan sekedar kode program (artefak)
–
Untuk semua orang, di mana pun
bukan hanya untuk
computer scientist
19/01/2017 KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural 41
Dari Algoritma Menjadi
Program Komputer
•
Algoritma didapatkan dari logika berpikir
memecahkan suatu masalah
–
Bisa dituliskan dengan teks atau gambar
•
Agar persoalan bisa diselesaikan secara otomatis
dengan agen komputasi (aka. KOMPUTER), maka
algoritma harus diubah menjadi
program komputer
User
–
Software
–
Hardware
19/01/2017 KU1072/Pengantar Berpikir Komputasi
Komponen Hardware
•
Input devices
(piranti
masukan)
•
Output devices
(piranti
Keluaran
•
Microprocessor
(CPU)
•
Memory
dan
storage
device
(piranti
penyimpanan)
Primary storage
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!
19/01/2017 KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural 45
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
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.
19/01/2017 KU1072/Pengenalan Teknologi
Dari
Source Code
menjadi Program
Source code
Programmer
membuat
source code
Compiler
Object code
Dalam bahasa
pemrograman tingkat
tinggi (mis. C++,
Pascal, Fortran)
kompilasi
source code
menjadi
object code
Dalam bahasa
mesin
Pengguna
Link
Executable
Contoh Kompilasi dan Eksekusi
19/01/2017 KU1072/Pengantar Berpikir Komputasi
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.
19/01/2017 KU1072/Pengantar Berpikir Komputasi
Pemrograman Prosedural
•
Program didasari oleh
strukturisasi informasi
di
dalam memori dan
manipulasi
dari informasi yang
disimpan tersebut
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 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
Memasak kentang untuk makan malam
KU1072/Pengantar Berpikir Komputasi dan Pemrograman Prosedural
Kentang
tersedia?
Kupas Kentang
Beli kentang
Mau
dimasak
apa?
Goreng ?
Rebus ?
Sup ?
Ya
Tidak
Struktur Dasar Program Prosedural
19/01/2017 KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural 57
Program
<JudulProgram>
{ Spesifikasi Program }
KAMUS
{ Deklarasi type, variabel, konstanta, fungsi, prosedur }
ALGORITMA
{ Deretan langkah algoritmik untuk penyelesaian
persoalan }
Flow Chart
(Diagram Alir)
Selesai
Mulai
Proses
Pilihan
Alur
Alur
pilihan
Contoh-1:
Memasak Kentang untuk Makan Malam
19/01/2017 KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural 59
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:
Memasak Kentang untuk Makan Malam
Beli Kentang
Kentang
Tersedia?
Goreng Kentang
Tidak
Ya
Selesai
Mulai
Kupas Kentang
Dimasak
apa?
Rebus Kentang
goreng
rebus
Beli Kentang
Kentang
Notasi Algoritmik:
Memasak Kentang untuk Makan Malam
19/01/2017 KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural 61
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 }
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
Program Perbaikan Jam Dinding
19/01/2017 KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural 63
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-1:
Perbaikan Jam Dinding
Mulai
Jarum
Bergerak
?
Ganti
Baterai Baru
Perbaiki Jarum
panjang dan pendek
pada lokasi yang tepat
Tidak
Ya
Apa yang salah
dengan flowchart
Flowchart-2:
Perbaikan Jam Dinding
Mulai
Jarum
Bergerak
?
Ganti
Baterai Baru
Perbaiki Jarum
panjang dan pendek
pada lokasi yang tepat
Tidak
Ya
Selesai
Bagaimana jika
ternyata setelah
dua hari jam
kembali tidak
tepat?
Notasi Algoritmik
Setara dengan Flowchart-2
if
jarum_bergerak? = tidak
then
Ganti_Baterai_Baru
{ Di titik ini jarum jam sudah pasti bergerak }
Jarum
Bergerak
?
Ganti
Baterai Baru
Perbaiki Jarum
panjang dan
pendek pada
lokasi yang tepat
Tidak
Ya
Periksa jam
setelah 2 hari
Jam
Perbaikan Jam Dinding
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
Data
19/01/2017 KU1072/Pengantar Berpikir Komputasi
Abstraksi Data
90
Suhu Air?
Berat Badan?
Kecepatan
Kendaraan
Bergerak
kemampuan kita untuk
menginterpretasikan
Persoalan Abstraksi Data
KU1072/Pengantar Berpikir Komputasi dan Pemrograman Prosedural
Suhu Air?
Berat Badan?
Kecepatan
Kendaraan
Bergerak
75
derajat
Celcius
Kilogram
Km/jam
kemampuan kita untuk
mengerti konteks dan
merepresentasikan
menjadi bentuk lain.
Data Mahasiswa vs Data Penduduk
NIM:
Nama
Kota Lahir
Tanggal Lahir
Nama Ayah
Nama Ibu
Nomor KTP:
Nama
Kota Lahir
Tanggal Lahir
Nama Ayah
Nama Ibu
Bahasa Pemrograman Prosedural
19/01/2017 KU1072/Pengantar Berpikir Komputasi
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
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 dan Pemrograman Prosedural
Contoh Eksekusi Program Menghitung Tabungan
Masukkan tabungan: 1000
Bagaimana Program
dibuat?
KU1072/Pengantar Berpikir Komputasi 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-1: Menghitung Tabungan
19/01/2017 KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural 79
mulai
selesai
input
(NilaiTabungan)
NilaiTabungan = NilaiTabungan +
(NilaiTabungan * 0.1)
output
(NilaiTabungan)
Input variabel NilaiTabungan
dari keyboard (masukan
pengguna)
Mengubah nilai variabel
NilaiTabungan sesuai rumus
Menampilkan isi variabel
NilaiTabungan saat ini (setelah
Notasi Algoritmik-1:
Menghitung Tabungan
input
( NilaiTabungan )
NilaiTabungan
NilaiTabungan + ( NilaiTabungan * 0.1 )
Flowchart-2: Menghitung Tabungan
19/01/2017 KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural 81
mulai
selesai
input
(NilaiTabungan)
NilaiTabungan = NilaiTabungan +
(NilaiTabungan * 0.1)
output
(NilaiTabungan)
Menampilkan ke layar tulisan
Masukka ta u ga
Menampilkan ke layar tulisan
Tahu depa =>
output
Masukka ta u ga :
Notasi Algoritmik-2:
Menghitung Tabungan
output
Masukkan tabungan:
input
( NilaiTabungan )
NilaiTabungan
NilaiTabungan + ( NilaiTabungan * 0.1 )
KU1072/Pengantar Berpikir Komputasi dan Pemrograman Prosedural
input
(NilaiTabungan)
NilaiTabungan
NilaiTabungan +
(NilaiTabungan * 0.1)
output
( NilaiTabungan )
Program = Algoritma + Struktur Data
Algoritma
Struktur
Data
Kode Program Bahasa C++
input
(NilaiTabungan)
NilaiTabungan
NilaiTabungan + (NilaiTabungan * 0.1)
output
(NilaiTabungan)
cin >> NilaiTabungan;
NilaiTabungan = NilaiTabungan +
NilaiTabungan * 0.1;
cout << NilaiTabungan;
cin: Console Input
(diketikkan lewat
keyboard)
Kode Program Bahasa Pascal
KU1072/Pengantar Berpikir Komputasi dan Pemrograman Prosedural
input
(NilaiTabungan)
NilaiTabungan ← NilaiTabungan +
(NilaiTabungan * 0.1)
output
(NilaiTabungan)
readln(NilaiTabungan);
NilaiTabungan := NilaiTabungan +
NilaiTabungan * 0.1;
writeln(NilaiTabungan);
readln akan
membaca dari hasil
ketik di keyboard
writeln akan menulis
hasil di layar
komputer
Kode Program Bahasa Fortran
read *, NilaiTabungan
NilaiTabungan = NilaiTabungan +
NilaiTabungan * 0.1;
print *, NilaiTabungan
read akan membaca
dari hasil ketik di
keyboard
print akan menulis hasil di
layar komputer
Tanda ‘*’ mengindikasikan
keluaran/masukan
standard (keyboard/layar)
input
(NilaiTabungan)
NilaiTabungan ← NilaiTabungan + NilaiTabungan * 10%
Program Lengkap (Notasi Algoritmik)
19/01/2017 KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural 87
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 )
Program Lengkap (C++)
// Program MenghitungTabungan
// Menghitung tabungan setelah 1 tahun berdasarkan
// masukan dari pengguna
#include <iostream>
using namespace std;
int main() {
// KAMUS
float NilaiTabungan;
// ALGORITMA
cin >> NilaiTabungan;
NilaiTabungan = NilaiTabungan + NilaiTabungan * 0.1;
cout << NilaiTabungan;
Program Lengkap (Pascal)
19/01/2017 KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural 89
Program MenghitungTabungan;
{ Menghitung tabungan setelah 1 tahun berdasarkan
masukan dari pengguna }
{ KAMUS }
var
NilaiTabungan : real;
{ ALGORITMA }
begin
readln(NilaiTabungan);
NilaiTabungan := NilaiTabungan + NilaiTabungan * 0.1;
writeln(NilaiTabungan);
Program Lengkap (Fortran)
Program MenghitungTabungan
! Menghitung tabungan setelah 1 tahun berdasarkan
! masukan dari pengguna
! KAMUS
real :: NilaiTabungan
! ALGORITMA
read *, NilaiTabungan
NilaiTabungan := NilaiTabungan + NilaiTabungan * 0.1
print *, NilaiTabungan
Terima Kasih
19/01/2017 KU1072/Pengantar Berpikir Komputasi