KU1072 Pengenalan Teknologi Informasi B
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 teknikteknik 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
19/01/2017
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural
2
Berpikir Komputasional
19/01/2017
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural
3
Pengantar
• Video: Computational Thinking_ A Digital Age Skill
for Everyone - YouTube [720p].mp4
19/01/2017
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural
4
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
dan Pemrograman Prosedural
5
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
no. 3, March 2006, pp. 33-35.
19/01/2017
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural
6
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
dan Pemrograman Prosedural
7
Teknik-Teknik yang Digunakan
• Dekomposisi persoalan (problem
decomposition)
• Pengenalan pola (pattern recognition)
• Generalisasi pola dan abstraksi (pattern
generalization and abstraction)
• Rancangan algoritma (algorithm design)
• Analisis data dan visualisasi
19/01/2017
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural
8
Pemanasan
19/01/2017
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural
9
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
• Carilah seorang teman sebagai partner diskusi
19/01/2017
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural
10
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
dan Pemrograman Prosedural
11
10
Cafe Pojok
PETA DADAN
2
Bubur Ayam
Pak Kumis
3
4
3
Supermarket
Besar
Warung Tegal
Sedap
19/01/2017
Anjing Galak
3
Pet shop
2
7
Pos Polisi
1
Anjing Galak
Gedung Kuliah
3
2
10
5
1
3
5
Gerbang
Selatan
Kos
Rumah
Kuning
5
3
2
4
1
Gerbang
Utara
9
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural
Angka pada segmen
jalan adalah waktu
tempuh (dalam menit)
12
1) Temukan semua rute yang dari kos
Asep ke gedung kuliah
Coba tuliskan langkah-langkah yang
Anda lakukan untuk persoalan tersebut.
19/01/2017
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural
13
10
Semua rute yang
digambar Dadan bisa
mengantar Asep ke
gedung kuliah
Tapi …..
Cafe Pojok
2
Bubur Ayam
Pak Kumis
3
4
3
Supermarket
Besar
5
Gedung Kuliah
7
19/01/2017
3
2
Warung Tegal
Sedap
10
Pos Polisi
Anjing Galak
1
Anjing Galak
Ada rute yang
memakan waktu
> 25 menit
Gerbang
Selatan
1
3
5
Ada rute dengan
anjing galak…
Kos
3
Pet shop
2
Rumah
Kuning
5
3
2
4
1
Gerbang
Utara
9
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural
Angka pada segmen
jalan adalah waktu
tempuh (dalam menit)
14
2) Temukan rute yang setidaknya aman
buat Asep… artinya dia tidak melewati
anjing galak
Apa yang harus diubah dari langkahlangkah yang sudah dituliskan
sebelumnya?
19/01/2017
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural
15
10
Asal tidak melewati
segmen jalan yang
diberi warna merah,
aman….
Tapi …..
Cafe Pojok
2
Bubur Ayam
Pak Kumis
3
4
3
Supermarket
Besar
Warung Tegal
Sedap
Gedung Kuliah
7
19/01/2017
Pos Polisi
Anjing Galak
1
Anjing Galak
3
Pet shop
2
5
3
2
10
Gerbang
Selatan
1
3
5
Ada rute yang
memakan waktu
> 25 menit
Kos
Rumah
Kuning
5
3
2
4
1
Gerbang
Utara
9
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural
Angka pada segmen
jalan adalah waktu
tempuh (dalam menit)
16
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 1100
19/01/2017
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural
76
Bagaimana Program
dibuat?
19/01/2017
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural
77
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 }
19/01/2017
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural
78
Flowchart-1: Menghitung Tabungan
mulai
Input variabel NilaiTabungan
dari keyboard (masukan
pengguna)
input
(NilaiTabungan)
NilaiTabungan = NilaiTabungan +
(NilaiTabungan * 0.1)
output
(NilaiTabungan)
Mengubah nilai variabel
NilaiTabungan sesuai rumus
Menampilkan isi variabel
NilaiTabungan saat ini (setelah
perhitungan) ke monitor
selesai
19/01/2017
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural
79
Notasi Algoritmik-1:
Menghitung Tabungan
input ( NilaiTabungan )
NilaiTabungan NilaiTabungan + ( NilaiTabungan * 0.1 )
output ( NilaiTabungan )
19/01/2017
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural
80
Flowchart-2: Menghitung Tabungan
mulai
output Masukka ta u ga :
Menampilkan ke layar tulisan
Masukka ta u ga
input (NilaiTabungan)
NilaiTabungan = NilaiTabungan +
(NilaiTabungan * 0.1)
output Tahu depa =>
output
(NilaiTabungan)
Menampilkan ke layar tulisan
Tahu depa =>
selesai
19/01/2017
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural
81
Notasi Algoritmik-2:
Menghitung Tabungan
output
Masukkan tabungan:
input ( NilaiTabungan )
NilaiTabungan NilaiTabungan + ( NilaiTabungan * 0.1 )
output
Tahun depan =>
output ( NilaiTabungan )
19/01/2017
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural
82
Program = Algoritma + Struktur Data
Struktur
Data
Algoritma
19/01/2017
input (NilaiTabungan)
NilaiTabungan NilaiTabungan +
(NilaiTabungan * 0.1)
output( NilaiTabungan )
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural
83
Kode Program Bahasa C++
input (NilaiTabungan)
NilaiTabungan NilaiTabungan + (NilaiTabungan * 0.1)
output(NilaiTabungan)
cin: Console Input
(diketikkan lewat
keyboard)
cout: Console Output
19/01/2017
cin >> NilaiTabungan;
NilaiTabungan = NilaiTabungan +
NilaiTabungan * 0.1;
cout > NilaiTabungan;
NilaiTabungan = NilaiTabungan + NilaiTabungan * 0.1;
cout
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 teknikteknik 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
19/01/2017
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural
2
Berpikir Komputasional
19/01/2017
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural
3
Pengantar
• Video: Computational Thinking_ A Digital Age Skill
for Everyone - YouTube [720p].mp4
19/01/2017
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural
4
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
dan Pemrograman Prosedural
5
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
no. 3, March 2006, pp. 33-35.
19/01/2017
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural
6
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
dan Pemrograman Prosedural
7
Teknik-Teknik yang Digunakan
• Dekomposisi persoalan (problem
decomposition)
• Pengenalan pola (pattern recognition)
• Generalisasi pola dan abstraksi (pattern
generalization and abstraction)
• Rancangan algoritma (algorithm design)
• Analisis data dan visualisasi
19/01/2017
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural
8
Pemanasan
19/01/2017
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural
9
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
• Carilah seorang teman sebagai partner diskusi
19/01/2017
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural
10
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
dan Pemrograman Prosedural
11
10
Cafe Pojok
PETA DADAN
2
Bubur Ayam
Pak Kumis
3
4
3
Supermarket
Besar
Warung Tegal
Sedap
19/01/2017
Anjing Galak
3
Pet shop
2
7
Pos Polisi
1
Anjing Galak
Gedung Kuliah
3
2
10
5
1
3
5
Gerbang
Selatan
Kos
Rumah
Kuning
5
3
2
4
1
Gerbang
Utara
9
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural
Angka pada segmen
jalan adalah waktu
tempuh (dalam menit)
12
1) Temukan semua rute yang dari kos
Asep ke gedung kuliah
Coba tuliskan langkah-langkah yang
Anda lakukan untuk persoalan tersebut.
19/01/2017
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural
13
10
Semua rute yang
digambar Dadan bisa
mengantar Asep ke
gedung kuliah
Tapi …..
Cafe Pojok
2
Bubur Ayam
Pak Kumis
3
4
3
Supermarket
Besar
5
Gedung Kuliah
7
19/01/2017
3
2
Warung Tegal
Sedap
10
Pos Polisi
Anjing Galak
1
Anjing Galak
Ada rute yang
memakan waktu
> 25 menit
Gerbang
Selatan
1
3
5
Ada rute dengan
anjing galak…
Kos
3
Pet shop
2
Rumah
Kuning
5
3
2
4
1
Gerbang
Utara
9
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural
Angka pada segmen
jalan adalah waktu
tempuh (dalam menit)
14
2) Temukan rute yang setidaknya aman
buat Asep… artinya dia tidak melewati
anjing galak
Apa yang harus diubah dari langkahlangkah yang sudah dituliskan
sebelumnya?
19/01/2017
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural
15
10
Asal tidak melewati
segmen jalan yang
diberi warna merah,
aman….
Tapi …..
Cafe Pojok
2
Bubur Ayam
Pak Kumis
3
4
3
Supermarket
Besar
Warung Tegal
Sedap
Gedung Kuliah
7
19/01/2017
Pos Polisi
Anjing Galak
1
Anjing Galak
3
Pet shop
2
5
3
2
10
Gerbang
Selatan
1
3
5
Ada rute yang
memakan waktu
> 25 menit
Kos
Rumah
Kuning
5
3
2
4
1
Gerbang
Utara
9
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural
Angka pada segmen
jalan adalah waktu
tempuh (dalam menit)
16
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 1100
19/01/2017
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural
76
Bagaimana Program
dibuat?
19/01/2017
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural
77
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 }
19/01/2017
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural
78
Flowchart-1: Menghitung Tabungan
mulai
Input variabel NilaiTabungan
dari keyboard (masukan
pengguna)
input
(NilaiTabungan)
NilaiTabungan = NilaiTabungan +
(NilaiTabungan * 0.1)
output
(NilaiTabungan)
Mengubah nilai variabel
NilaiTabungan sesuai rumus
Menampilkan isi variabel
NilaiTabungan saat ini (setelah
perhitungan) ke monitor
selesai
19/01/2017
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural
79
Notasi Algoritmik-1:
Menghitung Tabungan
input ( NilaiTabungan )
NilaiTabungan NilaiTabungan + ( NilaiTabungan * 0.1 )
output ( NilaiTabungan )
19/01/2017
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural
80
Flowchart-2: Menghitung Tabungan
mulai
output Masukka ta u ga :
Menampilkan ke layar tulisan
Masukka ta u ga
input (NilaiTabungan)
NilaiTabungan = NilaiTabungan +
(NilaiTabungan * 0.1)
output Tahu depa =>
output
(NilaiTabungan)
Menampilkan ke layar tulisan
Tahu depa =>
selesai
19/01/2017
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural
81
Notasi Algoritmik-2:
Menghitung Tabungan
output
Masukkan tabungan:
input ( NilaiTabungan )
NilaiTabungan NilaiTabungan + ( NilaiTabungan * 0.1 )
output
Tahun depan =>
output ( NilaiTabungan )
19/01/2017
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural
82
Program = Algoritma + Struktur Data
Struktur
Data
Algoritma
19/01/2017
input (NilaiTabungan)
NilaiTabungan NilaiTabungan +
(NilaiTabungan * 0.1)
output( NilaiTabungan )
KU1072/Pengantar Berpikir Komputasi
dan Pemrograman Prosedural
83
Kode Program Bahasa C++
input (NilaiTabungan)
NilaiTabungan NilaiTabungan + (NilaiTabungan * 0.1)
output(NilaiTabungan)
cin: Console Input
(diketikkan lewat
keyboard)
cout: Console Output
19/01/2017
cin >> NilaiTabungan;
NilaiTabungan = NilaiTabungan +
NilaiTabungan * 0.1;
cout > NilaiTabungan;
NilaiTabungan = NilaiTabungan + NilaiTabungan * 0.1;
cout