Anda di halaman 1dari 26

Berpikir komputasional.

indb 1 20/12/2019 16:15:36


Berpikir Komputasional dan Pemrograman dengan Python

Meredita Susanty

Manajer Penerbitan dan Produksi: Novietha Indra Sallama


Supervisor Editor: Aklia Suslia
Supervisor Setter: Dedy Juni Asmara
Copy Editor: Yuli Setyaningsih
Tata Letak: Ato Hermawan
Desain Sampul: Derra Fadhilla Putri

Hak Cipta © 2020 Penerbit Salemba Infotek


Jln. Raya Lenteng Agung No. 101
Jagakarsa, Jakarta Selatan 12610
Telp. : (021) 781 8616
Faks. : (021) 781 8486
Website : http://www.penerbitsalemba.com
E-mail : info@penerbitsalemba.com

Hak cipta dilindungi undang-undang. Dilarang memperbanyak sebagian atau seluruh isi buku ini dalam bentuk apa pun, baik secara
elektronis maupun mekanis, termasuk tidak terbatas pada memfotokopi, merekam, atau dengan menggunakan sistem penyimpanan
lainnya, tanpa izin tertulis dari Penerbit.

UNDANG-UNDANG NOMOR 28 TAHUN 2014 TENTANG HAK CIPTA


1. Setiap Orang yang dengan tanpa hak dan/atau tanpa izin Pencipta atau pemegang Hak Cipta melakukan pelanggaran hak ekonomi
Pencipta yang meliputi penerjemahan dan pengadaptasian Ciptaan untuk Penggunaan Secara Komersial dipidana dengan pidana
penjara paling lama 3 (tiga) tahun dan/atau pidana denda paling banyak Rp500.000.000,00 (lima ratus juta rupiah).
2. Setiap Orang yang dengan tanpa hak dan/atau tanpa izin Pencipta atau pemegang Hak Cipta melakukan pelanggaran hak
ekonomi Pencipta yang meliputi penerbitan, penggandaan dalam segala bentuknya, dan pendistribusian Ciptaan untuk
Penggunaan Secara Komersial dipidana dengan pidana penjara paling lama 4 (empat) tahun dan/atau pidana denda paling
banyak Rp1.000.000.000,00 (satu miliar rupiah).
3. Setiap Orang yang memenuhi unsur sebagaimana dimaksud pada poin kedua di atas yang dilakukan dalam bentuk pembajakan,
dipidana dengan pidana penjara paling lama 10 (sepuluh) tahun dan/atau pidana denda paling banyak Rp4.000.000.000,00
(empat miliar rupiah).

Susanty, Meredita

Berpikir Komputasional dan Pemrograman dengan Python/Susanty, Meredita


—Jakarta: Salemba Infotek, 2020
1 jil., 190 hlm., 19 × 26 cm

ISBN 978-623-92373-0-1

1. Ilmu Komputer 2. Pemrograman


I. Judul   II. Meredita Susanty

540.1.01

Berpikir komputasional.indb 2 20/12/2019 16:15:36


TENTANG PENULIS

Meredita Susanty adalah dosen tetap program studi Ilmu


Komputer Universitas Pertamina sejak tahun 2016. Meredita
pernah menempuh pendidikan D-3 teknik komputer di
Politeknik Negeri Bandung dan meraih gelar sarjana komputer
dari Universitas Gadjah Mada dan gelar master dari University
of Nottingham. Di program studi Ilmu Komputer, Meredita
mengajar Pengantar Teknologi Informasi dan Algoritma,
Dasar Pemrograman, dan Rekayasa Perangkat Lunak. Sebelum
menjadi dosen, Meredita pernah bekerja di konsultan IT pada
tahun 2006 dan 2008–2009 serta menjadi IT business analyst
selama 2009–2014.

Berpikir komputasional.indb 3 20/12/2019 16:15:37


iv Berpikir Komputasional dan Pemrograman dengan Python

Berpikir komputasional.indb 4 20/12/2019 16:15:37


Daftar Isi v

PRAKATA

D i era informasi saat ini, hampir semua kegiatan didukung


oleh teknologi informasi. Teknologi informasi saat ini
tidak terbatas pada penggunaan komputer desktop. Telepon
cerdas, tablet, bahkan sepatu yang memiliki processor di
dalamnya dan terhubung melalui Internet termasuk dalam
teknologi informasi. Oleh karena itu, kemampuan berpikir
komputasional saat ini menjadi salah satu kemampuan dasar
yang harus dimiliki, selain kemampuan membaca, menulis,
dan berhitung.
Kemampuan berpikir komputasional dan penguasaan
bahasa pemrograman tertentu dibutuhkan agar kita bisa
memberikan perintah kepada mesin dalam bahasa yang dipahami
mesin. Kemampuan pemrograman tidak hanya dibutuhkan
oleh mahasiswa ilmu komputer. Hampir semua bidang ilmu
membutuhkan komputasi yang artinya membutuhkan bantuan
komputer untuk melakukan perhitungan yang besar atau rumit.
Bahkan saat ini, kemampuan pemrograman sudah diajarkan
di tingkat pendidikan SD, SMP, dan SMA.
Untuk dapat melakukan pemrograman dengan baik,
diperlukan kemampuan berpikir komputasional yang baik dan
pengetahuan mengenai konsep dasar pemrograman. Buku ini

Berpikir komputasional.indb 5 20/12/2019 16:15:37


vi Berpikir Komputasional dan Pemrograman dengan Python

mengajak pembaca berlatih kemampuan berpikir komputasional dengan membuat


langkah-langkah penyelesaian suatu masalah (algoritme) dalam bentuk diagram alir,
kemudian mengimplementasikan algoritma dalam diagram alir ke dalam bahasa
pemrograman.
Buku ini menggunakan bahasa pemrograman Python karena kesederhanaan
bahasa ini sehingga diharapkan mudah diikuti untuk pemula. Di samping itu, Python
merupakan bahasa pemrograman yang populer saat ini. Bahasa pemrograman ini
mendukung paradigma pemrograman prosedural ataupun pemrograman berorientasi
objek sehingga saat pembaca ingin mengubah paradigma pemrograman diharapkan
tidak mengalami kendala yang besar.
Buku ini diharapkan dapat membantu berbagai kalangan (siswa SD, SMP,
SMA, mahasiswa, profesional, dan orang awam) mengasah kemampuan berpikir
komputasional dan melakukan pemrograman. Jika ingin mendalami pemrograman
lebih lanjut, pembaca dapat melanjutkan ke buku berikutnya “Pemrograman Lanjut
dalam Bahasa Python”.

Jakarta, 28 Oktober 2019

Meredita Susanty

Berpikir komputasional.indb 6 20/12/2019 16:15:37


Daftar Isi vii

DAFTAR ISI

Tentang Penulis ............................................................... iii


Prakata .......................................................................... v
Daftar Isi . . ....................................................................... vii

BAB 1 BERPIKIR KOMPUTASIONAL .. ........................................ 1


Algoritme ....................................................................... 4
Diagram Alir ................................................................... 5
Penelusuran ................................................................... 7
Latihan Soal ................................................................... 13

BAB 2 PEMROGRAMAN DAN BAHASA PEMROGRAMAN ............ 17


Bahasa Pemrograman ...................................................... 19
Mengapa Perlu ada Bahasa Pemrograman? .......................... 21
Jenis Bahasa Pemrograman .............................................. 24
Berdasarkan Level Abstraksi ....................................... 24
Berdasarkan Proses Eksekusi Program .......................... 25
Berdasarkan Cara Melakukan Pemrograman .. ................. 26
Pseudocode ............................................................. 26
Latihan Soal .................................................................... 28

BAB 3 MEMBUAT PROGRAM . . ................................................... 31


Integrate Development Environment (IDE) ............................ 34
Menggunakan IDLE . . ......................................................... 34
Sintaksis dan Parsing ........................................................ 37
Latihan Soal .................................................................... 40

Berpikir komputasional.indb 7 20/12/2019 16:15:37


viii Berpikir Komputasional dan Pemrograman dengan Python

BAB 4 MENGGUNAKAN DATA DALAM PEMROGRAMAN .. ...................................... 41


Penamaan Variabel .................................................................................... 43
Tipe data ................................................................................................. 44
Tipe Data Dasar . . ................................................................................ 45
Rentang Nilai dan Operasi ..................................................................... 45
Operator dan Operan . . ......................................................................... 47
Ekspresi dan Pernyataan . . ..................................................................... 47
Urutan Operasi ................................................................................... 49
Melakukan Manipulasi terhadap Variabel ................................................. 50
Mengonversi Variabel ........................................................................... 51
Menggabungkan Variabel . . ................................................................... 51
Memeriksa Tipe Data . . .......................................................................... 52
Tipe Data Bentukan ............................................................................. 52
Kesalahan yang Umum Terjadi . . .................................................................... 53
Membaca Nilai dan Mencetak Nilai ................................................................ 55
Latihan Soal .............................................................................................. 56

BAB 5 STRUKTUR DASAR PROGRAM—RUNTUNAN .. ............................................ 59


Runtunan ................................................................................................. 60
Menulis Runtunan dalam Python .. ................................................................. 66
Latihan Soal .............................................................................................. 68

BAB 6 STRUKTUR DASAR PROGRAM—PERCABANGAN ........................................ 73


Pengertian Struktur Percabangan . . ................................................................ 74
Mengatur Struktur pada Syarat Percabangan ............................................ 77
Menuliskan Percabangan dalam Bahasa Pemrograman Python ........................... 78
Percabangan Berantai ................................................................................. 80
Percabangan Berlapis ................................................................................. 82
Kesalahan yang Umum Terjadi . . .................................................................... 86
Latihan Soal .............................................................................................. 86

BAB 7 STRUKTUR DASAR PROGRAM—PERULANGAN .......................................... 93


Struktur Perulangan ................................................................................... 96
Menelusuri Perulangan .. .............................................................................. 98
Menuliskan Perulangan dalam Bahasa Pemrograman Python ............................. 103
Perbedaan FOR dan WHILE .................................................................... 105
Kesalahan yang Umum Terjadi . . .................................................................... 107
Tidak Menginisiasi Nilai yang Akan Diperiksa pada
Bagian Kondisi ............................................................................ 108
Tidak Ada Perintah untuk Mengubah Nilai yang Disimpan
pada Variabel Pencacah ................................................................ 108
Tidak Ada Perintah Break untuk Keluar dari Pengulangan ............................ 109
Kekeliruan Mengubah Nilai Pencacah ...................................................... 110
Latihan Soal .............................................................................................. 111

BAB 8 FUNGSI . . ................................................................................................. 115


Membuat Fungsi ........................................................................................ 118
Pemanggilan Fungsi . . ................................................................................. 120
Menelusuri Fungsi ...................................................................................... 123
Cakupan Variabel ....................................................................................... 125

Berpikir komputasional.indb 8 20/12/2019 16:15:38


Daftar Isi ix

Parameter dan Argumen ....................................................................... 125


Variabel Lokal dan Variabel Global .......................................................... 126
Void Function dan Fruitful Function ............................................................... 129
Menggunakan Fungsi yang Sudah Ada . . .......................................................... 131
Kesalahan yang Umum Terjadi ..................................................................... 133
Latihan Soal .............................................................................................. 135

BAB 9 BEKERJA DENGAN DATA .......................................................................... 141


Array .. ...................................................................................................... 142
Bagaimana Menggunakan Array dalam Bahasa
Pemrograman Python? .................................................................. 143
List .......................................................................................................... 146
Bagaimana Menggunakan List dalam Bahasa
Pemrograman Python? .................................................................. 146
Dictionary . . ............................................................................................... 152
Multidimensional List . . ................................................................................ 156
Set .......................................................................................................... 158
Tuple ....................................................................................................... 159
Stack ....................................................................................................... 161
Queue . . .................................................................................................... 163
Manipulasi Data Majemuk dengan Menggunaan Fungsi Bawaan .......................... 165
List Comprehension ............................................................................. 165
Pencarian Data (Searching) . . ................................................................. 166
Pengurutan Data (Sorting) . . ................................................................... 167
Latihan Soal .............................................................................................. 169

Lampiran I ................................................................................................ L-1


Daftar Pustaka ........................................................................................... D-1
Indeks . . .................................................................................................... I-1

Berpikir komputasional.indb 9 20/12/2019 16:15:38


x Berpikir Komputasional dan Pemrograman dengan Python

Berpikir komputasional.indb 10 20/12/2019 16:15:38


Bab 1
Sumber: https://pixabay.com/id/illustrations/web-jaringan-pemrograman-3706562/

BERPIKIR
KOMPUTASIONAL

Tujuan Pembelajaran:
• Memahami pentingnya berpikir komputasional.
• Memahami keterkaitan antara berpikir komputasional, algoritme, dan
pemrograman.
• Mampu mendokumentasikan hasil berpikir komputasional dalam diagram
alir.
• Mampu menelusuri diagram alir untuk memahami suatu algoritme.

Berpikir komputasional.indb 1 20/12/2019 16:15:38


2 Berpikir Komputasional dan Pemrograman dengan Python

Berpikir komputasional akan menjadi keterampilan dasar yang dibutuhkan semua


orang di dunia pada pertengahan abad ke-21. Kemampuan ini bukan hanya wajib
dimiliki oleh para computer scientist, tapi akan menjadi keterampilan wajib yang harus
dimiliki selain kemampuan membaca, menulis, dan berhitung. Berpikir komputasional
melibatkan pemecahan masalah, perancangan sistem, dan memahami perilaku manusia
dengan menggambarkan konsep-konsep mendasar tentang suatu hal.
Berpikir komputasional meningkatkan kepercayaan diri siswa dalam menghadapi
masalah yang ambigu dan/atau kompleks. Oleh karena itu, berpikir komputasional
harus menjadi kemampuan analitis mendasar yang harus dimiliki oleh setiap
anak sedini mungkin, terlepas dari jurusan/program studi yang diambil ketika di
universitas.
Sebenarnya, secara tidak sadar Anda sudah melakukan berpikir komputasional.
Misalnya, pada saat memilih antrean di kasir. Apa yang Anda perhatikan? Panjangnya
antrean? Jika ada lebih dari satu antrean yang kurang lebih sama panjangnya,
bagaimana Anda akan memilih antrean yang akan Anda ikuti? Umumnya, orang
akan memperhatikan sebanyak apa barang yang dibawa oleh para pengantre di
masing-masing antrean tersebut. Lebih jauh lagi, mungkin Anda akan memperhatikan
terlebih dahulu petugas kasir mana yang paling cekatan di antaranya.
Dari contoh di atas, Anda mengenali suatu pola bahwa waktu tunggu di
barisan antrean tergantung pada jumlah orang yang mengantre, jumlah barang yang
dibawa masing-masing orang, dan kelincahan petugas kasir. Anda mengikuti suatu
langkah-langkah tertentu sebelum sampai pada keputusan akhir, Anda melihat
terlebih dahulu panjang antrean, melihat sekilas banyaknya barang yang dibawa
para pengantre, dan memperhatikan kelincahan petugas kasir. Anda melakukan
perhitungan berdasarkan pola yang Anda kenali hingga akhirnya Anda dapat
mengambil keputusan kasir mana yang akan Anda datangi. Apa yang Anda lakukan
tersebut adalah beberapa elemen dari berpikir komputasional.
Berikut adalah elemen dalam berpikir komputasional:
• Abstraksi: Mengidentifikasi prinsip umum yang menghasilkan suatu pola.
• Dekomposisi: Memecah data, proses, atau masalah menjadi bagian-bagian yang
lebih kecil.
• Pengenalan Pola: Mengamati suatu pola, tren, dan keteraturan pada data.
• Desain Algoritme: Menentukan langkah-langkah untuk menyelesaikan masalah
yang dihadapi.
Permasalahan yang kita ambil sebagai contoh adalah permasalahan sederhana
yang biasa ditemui sehari-hari. Bagaimana jika kita dihadapkan dengan masalah
yang lebih rumit, yang membutuhkan data sangat banyak atau proses perhitungan

Berpikir komputasional.indb 2 20/12/2019 16:15:38


Bab 1 Berpikir Komputasional 3

Contoh lainnya adalah pada saat mendengarkan pembicaraan seseorang atau membaca
bahasa asing. Anda akan berusaha mengenali kata yang diucapkan, mencari tahu arti
dari kata yang diucapkan, dan memperhatikan urutan kemunculan kata-kata tersebut
agar Anda dapat memahami makna dari perkataan seseorang.
Anda melakukan elemen-elemen berpikir komputasional pada contoh tersebut.
Jika hal tersebut Anda lakukan untuk bahasa yang sudah sangat Anda kuasai, misalnya
bahasa Indonesia, Anda mungkin sudah tidak menyadari lagi proses tersebut karena
berpikir komputasional adalah cara berpikir alamiah manusia.

yang lebih rumit? Perkembangan teknologi saat ini memungkinkan penggunaan


komputer untuk membantu kita menyelesaikan masalah. Hal ini dikenal dengan
istilah otomasi. Jadi, meskipun berpikir komputasional merupakan suatu proses
berpikir yang bebas dari pengaruh teknologi apapun, kemajuan teknologi yang
ada saat ini memungkinkan kita mendesain suatu solusi yang bisa dijalankan
oleh komputer, oleh manusia lain, ataupun oleh keduanya dengan menggunakan
kemampuan berpikir komputasional.
Agar desain solusi yang kita buat bisa dijalankan oleh manusia lain, maka
kita perlu:
• Mendokumentasikan solusi agar solusi ini dapat dilihat kembali di kemudian
hari.
• Mengomunikasikan solusi kepada orang lain, misalnya teman atau rekan kerja.
• Menganalisis dan mempelajari berbagai solusi yang ada untuk membandingkan
mana solusi yang lebih baik.
• Menerapkan solusi untuk menyelesaikan suatu permasalahan.

Ada banyak cara untuk mengasah kemampuan berpikir komputasional seseorang.


Salah satu contohnya dengan belajar matematika. Saat Anda belajar matematika, Anda
berusaha mendapatkan penyelesaian dari suatu masalah menggunakan persamaan
matematika. Persamaan matematika merupakan petunjuk atau langkah-langkah
menyelesaikan masalah yang dinyatakan dalam notasi tertentu.
Dalam buku ini, kita akan mengasah kemampuan berpikir komputasinal dengan
menyelesaikan masalah menggunakan algoritme. Algoritme ini akan dijalankan
oleh orang lain atau oleh komputer untuk menyelesaikan suatu masalah. Algoritme
dapat dinyatakan dengan berbagai cara, menggunakan narasi, urutan langkah, atau
diagram alir. Agar komputer dapat menjalankannya, algoritme harus dinyatakan
dalam bahasa pemrograman.
Bagian pertama dalam buku ini akan mengajak Anda membiasakan diri
untuk menyadari cara berpikir komputasional dan menyatakan langkah-langkah

Berpikir komputasional.indb 3 20/12/2019 16:15:38


4 Berpikir Komputasional dan Pemrograman dengan Python

penyelesaian masalah menggunakan diagram alir. Bagian selanjutnya mengajarkan


Anda menyatakan algoritme menggunakan bahasa pemrograman Python yang
kemudian dapat dijalankan menjadi suatu program yang dapat menyelesaikan suatu
permasalahan.

“Coding is the literacy of today and it helps practice 21st century skills such as problem-
solving, teamwork and analytical thinking” (EU Digital Single Market, 2016).
“...the world is going digital and so is the labour market... Skills like coding are the
new literacy. Whether you want to be an engineer or a designer, a teacher, nurse or web
entrepreneur, you’ll need digital skills” (McCormack, 2014: 57).

ALGORITME
Kata algoritme merupakan serapan dari bahasa Inggris algorithm. Secara etimologi,
kata algorithm berasal dari nama ahli matematika abad ke-9 asal Persia bernama
Muh.ammad ibn Mūsā al-Khwārizmī. Al Khwārizmī dibaca oleh orang barat menjadi
algorism.1
Al Khwārizmī menulis sebuah risalah dalam bahasa Arab yang diterjemahkan
ke bahasa Latin menjadi Algoritmi de numero Indorum, yang dalam bahasa Inggris
berarti Algoritmi on the numbers of the Indians, di mana kata algoritmi adalah terjemahan
namanya dalam bahasa Latin. Risalah ini memperkenalkan penggunaan angka Arab
(1, 2, 3, 4, 5, .., dst) dan sistem angka desimal bagi dunia barat. Dunia barat saat
itu menggunakan angka romawi (I, X, M, ..., dst). Pada abad pertengahan, kata
algorismus (latin) atau algorisme (Inggris) diartikan sebagai sistem angka desimal.2
Pada abad ke-15, akibat pengaruh kata dalam bahasa Yunani αριθμητική (baca
arithmitiki) yang artinya angka, kata dalam bahasa Latin mengalami perubahan
menjadi algorithmus yang padanannya dalam bahasa Inggris adalah algorithm.

Any well-defined computational procedure that takes some value, or set of values, as input
and produces some value, or set of values as output. (Cormen, Introduction to Algorithm)

A sequence of precise instructions which leads to a solution. (Savitch, Problem Solving


with C++)

1
http://www-history.mcs.st-andrews.ac.uk/Biographies/Al-Khwarizmi.html
2
https://en.wikipedia.org/wiki/Algorithm#cite note-16 http://www-history.mcs.st-andrews.ac.uk/Biographies/Al-
Khwarizmi.html

Berpikir komputasional.indb 4 20/12/2019 16:15:38


Bab 1 Berpikir Komputasional 5

Algoritme secara makna adalah (1) serangkaian langkah yang digunakan


untuk memecahkan masalah, misalnya untuk menyelesaikan persamaan
matematika. atau (2) perhitungan dari serangkaian operasi, yang biasanya
dinyatakan dalam bentuk diagram alir. Algoritme dijalankan oleh komputer
dan membentuk program komputer dasar. Algoritme adalah pemecahan suatu
masalah yang dijalankan/dilakukan oleh orang lain atau komputer sehingga algoritme
harus benar karena jika ada langkah-langkah penyelesaian yang salah, hasil yang
diperoleh pun akan salah.

DIAGRAM ALIR
Salah satu cara menyatakan algoritme adalah menggunakan diagram alir (flowchart).
Diagram alir merupakan representasi grafis yang menggunakan bentuk-bentuk
geometris dengan anotasi yang sesuai dan dihubungkan garis yang menyatakan
aliran data/informasi dengan tujuan merancang atau mendokumentasikan suatu
proses atau solusi penyelesaian suatu masalah.
Gambar di bawah adalah notasi yang digunakan dalam diagram alir.

Bentuk lonjong menyatakan awal dan akhir dari suatu algoritme.


terminator
Biasanya bagian dalam diberi tulisan start atau end sebagai pembedanya.

flow lines Garis dengan tanda panah di ujungnya menyatakan urutan langkah atau
arah membaca algoritme.

Kotak menyatakan proses. Proses bisa berupa sebuah langkah yang


process sangat spesifik, atau proses yang cukup umum di mana di dalamnya
masih bisa dipecah menjadi langkah-langkah yang lebih spesifik.

Jajaran genjang menyatakan bahan atau informasi yang dibutuhkan


input/output sebelum proses bisa dijalankan (input) atau sesuatu yang dihasilkan
dari proses (output).

Belah ketupat mewakili percabangan atau keputusan. Dari setiap bentuk


decision
ini, ada 2 buah tanda panah ke arah luar yang masing-masing merupakan
data/informasi pilihan.

Berpikir komputasional.indb 5 20/12/2019 16:15:38


6 Berpikir Komputasional dan Pemrograman dengan Python

Contoh:
Setiap pagi Anda berangkat ke kampus dengan urutan sebagai berikut.
1. Jam beker berbunyi.
2. Anda mematikan alarm dan lanjut tidur lagi.
3. Jam beker berbunyi kedua kali.
4. Anda kembali mematikan alarm.
5. Jam beker berbunyi ketiga kali.
6. Anda mematikan alarm.
7. Mandi dan bersiap-siap.
8. Sarapan.
9. Jika hari hujan, Anda akan naik becak sedangkan jika cuaca cerah, Anda akan
jalan kaki ke kampus.
10. Anda sampai di kampus.

Dari proses di atas kita bisa membuat beberapa algoritme:

Algoritme 1

Anotasi proses
start biasanya end
menggunakan
kata kerja
Alarm berbunyi Sampai di Percabangan
kampus selalu memiliki
2 garis keluar.
Matikan alarm

Bunyi Ya Naik Tidak Cuaca = Ya Jalan


Tidur lagi
< 3? becak cerah? kaki
Tidak
Mandi dan
Sarapan Lihat cuaca
bersiap-siap
Anotasi untuk
percabangan berupa
Bagian ini berulang pertanyaan dengan 2
hingga 3 kali. kemungkinan

Berpikir komputasional.indb 6 20/12/2019 16:15:38


Bab 1 Berpikir Komputasional 7

Algoritme 2

start
Input/output biasanya
menggunakan kata end
benda
Bunyi alarm

Sampai di kampus
Matikan alarm

Naik Tidak Ya
Bunyi Ya
Tidur lagi Cuaca = Jalan
< 3? becak cerah? kaki
Tidak
Mandi dan
Makanan Sarapan Lihat cuaca
bersiap-siap

Perhatikan input/output, proses dan percabangan di kedua algoritme di atas.


Keduanya benar, algoritme 1 tidak menggambarkan input/output dengan asumsi output
dari suatu proses digunakan sebagai input untuk proses berikutnya, sedangkan algoritme 2
menggambarkan urutan proses dengan lebih detail dengan menggambarkan input/output.

PENELUSURAN
Seperti disebutkan sebelumnya, algoritme harus benar agar hasil atau solusi
yang diperoleh benar. Untuk memastikan algoritme benar, kita harus melakukan
penelusuran (tracing). Penelusuran berarti kita menjalankan langkah demi langkah
yang ada di algoritme dan mencatat data/informasi pada tiap langkah dengan tujuan
mencari kesalahan dan memperbaiki kesalahan tersebut.
Di bawah ini adalah algoritme untuk menghitung perkalian n × m.

start Nilai n

Nilai m

i=1

Ya
Hasil = n + n

Tidak
i=i+1 i <= m? Hasil end

Berpikir komputasional.indb 7 20/12/2019 16:15:38


8 Berpikir Komputasional dan Pemrograman dengan Python

Selanjutnya, kita akan melakukan penelusuran terhadap algoritme tersebut. Warna


gelap berarti proses yang saat ini sedang kita jalankan.

start Nilai n
Penelusuran
dimulai dari
Nilai m terminator dengan
anotasi start

i=1

Ya
Hasil = n + n

Tidak
i=i+1 i <= m? Hasil end

start Nilai n
Algoritme
Nilai m meminta input
nilai n

i=1

Ya
Hasil = n + n

Tidak
i=i+1 i <= m? Hasil end

Jika algoritme meminta nilai input, maka orang atau komputer yang menelusuri algoritme
bebas memberikan nilai apapun. Misalkan dalam penelusuran ini kita akan menghitung
5 × 2, maka nilai n adalah 5. Catatlah nilai n saat ini pada tabel penelusuran.

Variabel Nilai
n 5

start Nilai n
Algoritme
meminta input
Nilai m nilai m

i=1

Ya
Hasil = n + n

Tidak
i=i+1 i <= m? Hasil end

Berpikir komputasional.indb 8 20/12/2019 16:15:38


Bab 1 Berpikir Komputasional 9

Seperti disebutkan sebelumnya, penelusuran kali ini kita akan menghitung 5 × 2.


Karena kita akan mengalikan 5 dengan 2, maka nilai m adalah 2. Catatlah nilai m
pada tabel penelusuran.

Variabel Nilai
n 5
m 2

start Nilai n
Algoritme
melakukan
Nilai m proses pemberian
nilai untuk
variabel i
i=1

Ya
Hasil = n + n

Tidak
i=i+1 i <= m? Hasil end

Variabel Nilai
n 5
m 2
i 1

start Nilai n

Algoritme melakukan
Nilai m proses penambahan nilai n
dengan nilai n kemudian
menyimpan hasil
i=1 penambahan di
variabel hasil
Ya
Hasil = n + n

Tidak
i=i+1 i <= m? Hasil end

Variabel Nilai
n 5
m 2
i 1
hasil 10

Berpikir komputasional.indb 9 20/12/2019 16:15:39


10 Berpikir Komputasional dan Pemrograman dengan Python

start Nilai n
Algoritme melakukan
proses penambahan nilai i
Nilai m saat ini dengan 1, hasilnya
disimpan lagi di variabel i
i=1

Ya
Hasil = n + n

Tidak
i=i+1 i <= m? Hasil end

Variabel Nilai
n 5
m 2
i 12
hasil 10

Algoritme
start Nilai n melakukan
pemeriksaan, apakah
Nilai m nilai variabel i <= nilai
variabel m

i=1

Ya
Hasil = n + n

Tidak
i=i+1 i <= m? Hasil end

start Nilai n
Karena nilai i (2) sama
Nilai m dengan m(2), maka proses
ini dijalankan kembali
i=1

Ya
Hasil = n + n

Tidak
i=i+1 i <= m? Hasil end

Variabel Nilai
n 5
m 2
i 12
hasil 10 15

Berpikir komputasional.indb 10 20/12/2019 16:15:39


Bab 1 Berpikir Komputasional 11

start Nilai n
Algoritme melakukan
proses penambahan nilai i
Nilai m saat ini dengan 1, hasilnya
disimpan lagi di variabel i
i=1

Ya
Hasil = n + n

Tidak
i=i+1 i <= m? Hasil end

Variabel Nilai
n 5
m 2
i 123
hasil 10 15

start Nilai n Algoritme melakukan


pemeriksaan, apakah nilai
Nilai m variabel i <= nilai variabel
m

i=1

Ya
Hasil = n + n

Tidak
i=i+1 i <= m? Hasil end

start Nilai n
Karena nilai i (3) lebih
Nilai m besar dari m(2), maka
proses ini dijalankan
i=1

Ya
Hasil = n + n

Tidak
i=i+1 i <= m? Hasil end

Algoritme memberikan
output, yakni nilai dari
variabel hasil

Berpikir komputasional.indb 11 20/12/2019 16:15:39


12 Berpikir Komputasional dan Pemrograman dengan Python

Variabel Nilai
n 5
m 2
i 123
hasil 10 15

start Nilai n

Nilai m Penelusuran selesai


pada terminator dengan
anotasi end
i=1

Ya
Hasil = n + n

Tidak
i=i+1 i <= m? Hasil end

Bisa dilihat pada algoritme di atas, bahwa hasil dari perkalian 5 × 2 adalah 15.
Berarti, algoritme tersebut salah sehingga kita harus memperbaiki algoritme tersebut.
Pada algoritme di atas, kita melakukan penambahan angka 5 sebanyak 3 kali,
padahal seharusnya hanya 2 kali. Hal ini disebabkan karena syarat pada percabangan
adalah i <= m. Bagaimana hasilnya jika syarat ini kita ubah menjadi i < m? Silakan
Anda coba jalankan kembali algoritme yang sudah diperbaiki di bawah ini mengikuti
langkah-langkah yang sudah dijelaskan di atas.

start Nilai n

Nilai m

i=1

Hasil = n + n

Tidak
i=i+1 i <= m? Hasil end

Variabel Nilai
n 5
m 2
i 12
hasil 10

Berpikir komputasional.indb 12 20/12/2019 16:15:39


Bab 1 Berpikir Komputasional 13

!
Selain mencari kesalahan untuk diperbaiki, penelusuran sangat diperlukan untuk memahami
cara kerja sebuah algoritme.

Latihan Soal
1. Buatlah algoritme yang dinyatakan dengan diagram alir untuk proses memasak agar-agar seperti
gambar di bawah ini.

Agar-Agar
Shallow
Cara Memasak:
Tuangkan sebungkus agar-agar
Shallow ke dalam panci dengan
4 gelas air minum (900 cc)
dan 120 gr gula (atau menurut
s e l e ra k e m u d i a n d i m a s a k
hingga mendidih sambil diaduk.
Tuangkan ke dalam cetakan dan
biarkan hingga dingin.

2. Buatlah algoritme yang dinyatakan dengan diagram alir untuk proses memasak mi instan seperti
pada gambar di bawah ini.

Mie Goreng
Sate
Cara Penyajian:
- Rebus mi dalam 400 cc (2 gelas)
air mendidih selama 3 menit
sambil diaduk.
- Sementara mi direbus, campurkan
bumbu, minyak bumbu, kecap
manis, dan bubuk cabe ke dalam
piring.
- Tiriskan mi, kemudian campurkan
mi ke dalam campuran bumbu di
piring, diaduk hingga merata.
- Taburkan bawang goreng dan Mie
Goreng Sate siap disajikan.

Berpikir komputasional.indb 13 20/12/2019 16:15:40


14 Berpikir Komputasional dan Pemrograman dengan Python

3. Algoritme di bawah ini dibuat untuk menghitung pangkat dari suatu bilangan dengan rumus nm.
Jika kita ingin menghitung 33, berarti nilai n adalah 3 dan m adalah 3, dan kita akan mendapatkan
hasil 27.

start Nilai n

Nilai m

i=1

Ya
Hasil = n * n

Tidak
i=i+1 i <= m? Hasil end

a. Telusurilah algoritme tersebut dan tentukan apakah algoritme sudah benar?


b. Jika algoritme salah, coba cari di mana letak kesalahannya dan perbaikilah.
c. Telusuri lagi algoritme yang Anda buat di poin b menggunakan beberapa nilai yang berbeda,
misalnya 32, 42, 25.

4. Algoritme pada Latihan Soal 2 adalah algoritme untuk membuat mi goreng instan. Di bawah ini adalah
algoritme untuk membuat mi rebus instan. Modifikasi algoritme yang sudah Anda buat di Latihan Soal
2 sehingga algoritme tersebut termasuk langkah-langkah untuk membuat mi rebus instan.

Mie Kari
Ayam
Cara Penyajian:
- Rebus mi dalam 400 cc (2 gelas)
air mendidih selama 3 menit
sambil diaduk-aduk.
- Sementara mi dimasak, siapkan
campuran bumbu, minyak bumbu,
dan bubuk cabe ke dalam
mangkok.
- Tuangkan mi yang sudah matang
beserta kuahnya ke dalam
mangkok dan aduk dengan bumbu
hingga rata.
- Taburkan bawang goreng dan Mie
Kari Ayam siap untuk disajikan.

Tips: Perhatikan proses yang berbeda, gunakan percabangan untuk memisahkan algoritme mi rebus
dan mi goreng.

5. Rumus keliling lingkaran adalah k = 2 π r.


a. Manakah input dalam persamaan di atas?
b. Manakah output dalam persamaan di atas?

Berpikir komputasional.indb 14 20/12/2019 16:15:40


Bab 1 Berpikir Komputasional 15

c. Ada proses apa saja untuk mendapatkan output yang Anda sebutkan di jawaban (b)?
d. Buatlah algoritme yang menghitung keliling lingkaran.

Nilai Phi adalah 3,14 dan nilai ini tidak pernah berubah. Jadi, gunakan proses untuk menyatakan
pemberian nilai untuk phi (bukan input).

6. Buatlah diagram alir untuk algoritme program menimbang buah


sebagai berikut.
• Pelanggan memilih jenis buah (apel/jeruk).
• Pelanggan meletakkan sejumlah buah di timbangan.
• Harga apel per kilo Rp3.000, jeruk per kilo Rp2.000.
• Program menghitung rupiah yang harus dibayar pelanggan.
Sumber: https://pixabay.com/photos/
• Pelanggan mendapatkan stiker/barcode berisi harga total.
apples-farmers-market-business- a. Manakah output dalam kasus di atas?
buy-1841132/ b. Ada proses apa saja untuk mendapatkan output yang Anda
sebutkan di jawaban (b)?
c. Buatlah algoritme yang menghitung harga total buah.

7. Buatlah diagram alir untuk algoritme menghitung biaya percakapan telepon di bawah ini:
• Pelanggan mengangkat telepon.
• Pelanggan memasukkan nomor telepon (lokal/telepon seluler). Tarif telepon lokal Rp 0,01/detik,
tarif telepon selular 0,02/detik.
• Program menghitung detik percakapan hingga telepon ditutup. Detik terus bertambah 1 hingga
telepon ditutup.
• Pelanggan menutup telepon.
• Program menghitung biaya percakapan yang dilakukan.
a. Manakah input dalam kasus di atas?
b. Manakah output dalam kasus di atas?
c. Ada proses apa saja untuk mendapatkan output yang Anda sebutkan di jawaban (b)?
d. Buatlah flowchart untuk algoritme menghitung biaya percakapan telepon.

Berpikir komputasional.indb 15 20/12/2019 16:15:40


16 Berpikir Komputasional dan Pemrograman dengan Python

Berpikir komputasional.indb 16 20/12/2019 16:15:40

Anda mungkin juga menyukai