berpikir komputasional.indb 1 20/12/2019 16:15:36

26

Upload: others

Post on 18-Oct-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

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

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

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

Susanty, Meredita

Berpikir Komputasional dan Pemrograman dengan Python/Susanty, Meredita

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

ISBN 978-623-92373-0-1 1. Ilmu Komputer 2. PemrogramanI. Judul II. Meredita Susanty

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).

Berpikir Komputasional dan Pemrograman dengan Python

Meredita Susanty

Manajer Penerbitan dan Produksi: Novietha Indra Sallama Supervisor Editor: Aklia SusliaSupervisor Setter: Dedy Juni AsmaraCopy Editor: Yuli Setyaningsih Tata Letak: Ato HermawanDesain Sampul: Derra Fadhilla Putri

Hak Cipta © 2020 Penerbit Salemba Infotek Jln. Raya Lenteng Agung No. 101Jagakarsa, Jakarta Selatan 12610Telp. : (021) 781 8616Faks. : (021) 781 8486Website : http://www.penerbitsalemba.comE-mail : [email protected]

540.1.01

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

Page 3: Berpikir komputasional.indb 1 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

Page 4: Berpikir komputasional.indb 1 20/12/2019 16:15:36

Berpikir Komputasional dan Pemrograman dengan Pythoniv

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

Page 5: Berpikir komputasional.indb 1 20/12/2019 16:15:36

Daftar Isi v

PRAKATA

Di 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

Page 6: Berpikir komputasional.indb 1 20/12/2019 16:15:36

Berpikir Komputasional dan Pemrograman dengan Pythonvi

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

Page 7: Berpikir komputasional.indb 1 20/12/2019 16:15:36

Daftar Isi vii

DAFTAR ISI

Tentang Penulis .............................................................. iiiPrakata ......................................................................... vDaftar Isi ........................................................................ vii

BAB 1 BERPIKIR KOMPUTASIONAL ......................................... 1Algoritme ...................................................................... 4Diagram Alir .................................................................. 5Penelusuran .................................................................. 7Latihan Soal .................................................................. 13

BAB 2 PEMROGRAMAN DAN BAHASA PEMROGRAMAN ........... 17Bahasa Pemrograman ..................................................... 19Mengapa Perlu ada Bahasa Pemrograman? ......................... 21Jenis Bahasa Pemrograman ............................................. 24

Berdasarkan Level Abstraksi ...................................... 24Berdasarkan Proses Eksekusi Program ......................... 25Berdasarkan Cara Melakukan Pemrograman .................. 26Pseudocode ............................................................ 26

Latihan Soal ................................................................... 28

BAB 3 MEMBUAT PROGRAM .................................................... 31Integrate Development Environment (IDE) ........................... 34Menggunakan IDLE .......................................................... 34Sintaksis dan Parsing ....................................................... 37Latihan Soal ................................................................... 40

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

Page 8: Berpikir komputasional.indb 1 20/12/2019 16:15:36

Berpikir Komputasional dan Pemrograman dengan Pythonviii

BAB 4 MENGGUNAKAN DATA DALAM PEMROGRAMAN ....................................... 41Penamaan Variabel ................................................................................... 43Tipe data ................................................................................................ 44

Tipe Data Dasar ................................................................................. 45Rentang Nilai dan Operasi .................................................................... 45Operator dan Operan .......................................................................... 47Ekspresi dan Pernyataan ...................................................................... 47Urutan Operasi .................................................................................. 49Melakukan Manipulasi terhadap Variabel ................................................ 50Mengonversi Variabel .......................................................................... 51Menggabungkan Variabel .................................................................... 51Memeriksa Tipe Data ........................................................................... 52Tipe Data Bentukan ............................................................................ 52

Kesalahan yang Umum Terjadi ..................................................................... 53Membaca Nilai dan Mencetak Nilai ............................................................... 55Latihan Soal ............................................................................................. 56

BAB 5 STRUKTUR DASAR PROGRAM—RUNTUNAN ............................................. 59Runtunan ................................................................................................ 60Menulis Runtunan dalam Python .................................................................. 66Latihan Soal ............................................................................................. 68

BAB 6 STRUKTUR DASAR PROGRAM—PERCABANGAN ....................................... 73Pengertian Struktur Percabangan ................................................................. 74

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

BAB 7 STRUKTUR DASAR PROGRAM—PERULANGAN ......................................... 93Struktur Perulangan .................................................................................. 96Menelusuri Perulangan ............................................................................... 98Menuliskan Perulangan dalam Bahasa Pemrograman Python ............................ 103

Perbedaan FOR dan WHILE ................................................................... 105Kesalahan 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 ........................... 109Kekeliruan Mengubah Nilai Pencacah ..................................................... 110

Latihan Soal ............................................................................................. 111

BAB 8 FUNGSI .................................................................................................. 115Membuat Fungsi ....................................................................................... 118Pemanggilan Fungsi .................................................................................. 120Menelusuri Fungsi ..................................................................................... 123Cakupan Variabel ...................................................................................... 125

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

Page 9: Berpikir komputasional.indb 1 20/12/2019 16:15:36

Daftar Isi ix

Parameter dan Argumen ...................................................................... 125Variabel Lokal dan Variabel Global ......................................................... 126

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

BAB 9 BEKERJA DENGAN DATA ......................................................................... 141Array ....................................................................................................... 142

Bagaimana Menggunakan Array dalam Bahasa Pemrograman Python? ................................................................. 143

List ......................................................................................................... 146Bagaimana Menggunakan List dalam Bahasa

Pemrograman Python? ................................................................. 146Dictionary ................................................................................................ 152Multidimensional List ................................................................................. 156Set ......................................................................................................... 158Tuple ...................................................................................................... 159Stack ...................................................................................................... 161Queue ..................................................................................................... 163Manipulasi Data Majemuk dengan Menggunaan Fungsi Bawaan ......................... 165

List Comprehension ............................................................................ 165Pencarian Data (Searching) .................................................................. 166Pengurutan Data (Sorting) .................................................................... 167

Latihan Soal ............................................................................................. 169

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

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

Page 10: Berpikir komputasional.indb 1 20/12/2019 16:15:36

Berpikir Komputasional dan Pemrograman dengan Pythonx

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

Page 11: Berpikir komputasional.indb 1 20/12/2019 16:15:36

Bab 1

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.

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

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

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

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

Page 13: Berpikir komputasional.indb 1 20/12/2019 16:15:36

3Bab 1 Berpikir Komputasional

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

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.

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

Page 14: Berpikir komputasional.indb 1 20/12/2019 16:15:36

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 thenew 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).

ALGORITMEKata algoritme merupakan serapan dari bahasa Inggris algorithm. Secara etimologi,kata algorithm berasal dari nama ahli matematika abad ke-9 asal Persia bernamaMuh. ammad ibn Mūsā al-Khwārizmī. Al Khwārizmī dibaca oleh orang barat menjadialgorism.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.

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

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++)

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

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

5Bab 1 Berpikir Komputasional

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 ALIRSalah 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. Biasanya bagian dalam diberi tulisan start atau end sebagai pembedanya.

Kotak menyatakan proses. Proses bisa berupa sebuah langkah yang sangat spesifik, atau proses yang cukup umum di mana di dalamnya masih bisa dipecah menjadi langkah-langkah yang lebih spesifik.

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

Jajaran genjang menyatakan bahan atau informasi yang dibutuhkan sebelum proses bisa dijalankan (input) atau sesuatu yang dihasilkan dari proses (output).

Belah ketupat mewakili percabangan atau keputusan. Dari setiap bentuk ini, ada 2 buah tanda panah ke arah luar yang masing-masing merupakan data/informasi pilihan.

process

input/output

decision

terminator

flow lines

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

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

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.

start end

Alarm berbunyi

Matikan alarm

Mandi dan bersiap-siap

Sampai di kampus

Sarapan Lihat cuaca

Bunyi< 3?

Tidur lagi Naik becak

Cuaca = cerah?

Jalan kaki

Anotasi proses biasanya

menggunakan kata kerja

Anotasi untuk percabangan berupa pertanyaan dengan 2

kemungkinan

Ya Tidak Ya

Tidak

Bagian ini berulanghingga 3 kali.

Percabanganselalu memiliki2 garis keluar.

Dari proses di atas kita bisa membuat beberapa algoritme:

Algoritme 1

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

Page 17: Berpikir komputasional.indb 1 20/12/2019 16:15:36

Bab 1 Berpikir Komputasional 7

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.

PENELUSURANSeperti 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.

Algoritme 2

Cuaca = cerah?

Jalan kaki

start

end

Bunyi alarm

Makanan

Matikan alarm

Bunyi< 3?

Mandi dan bersiap-siap Sarapan Lihat cuaca

Sampai di kampus

Tidur lagi Naik becak

Input/output biasanyamenggunakan kata

benda

Ya Tidak Ya

Tidak

start

end

Nilai n

Nilai m

Hasil

i = 1

Hasil = n + n

i = i + 1 i <= m?Tidak

Ya

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

Page 18: Berpikir komputasional.indb 1 20/12/2019 16:15:36

Berpikir Komputasional dan Pemrograman dengan Python8

Selanjutnya, kita akan melakukan penelusuran terhadap algoritme tersebut. Warna gelap berarti proses yang saat ini sedang kita jalankan.

start

end

Nilai n

Nilai m

Hasil

i = 1

Hasil = n + n

i = i + 1 i <= m?Tidak

Ya

Penelusuran dimulai dari

terminator dengananotasi start

start

end

Nilai n

Nilai m

Hasil

i = 1

Hasil = n + n

i = i + 1 i <= m?Tidak

Ya

Algoritme meminta input

nilai n

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

end

Nilai n

Nilai m

Hasil

i = 1

Hasil = n + n

i = i + 1 i <= m?Tidak

Ya

Algoritme meminta input

nilai m

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

Page 19: Berpikir komputasional.indb 1 20/12/2019 16:15:36

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

end

Nilai n

Nilai m

Hasil

i = 1

Hasil = n + n

i = i + 1 i <= m?Tidak

Ya

Algoritme melakukan

proses pemberian nilai untuk variabel i

Variabel Nilai

n 5

m 2

i 1

start

end

Nilai n

Nilai m

Hasil

i = 1

Hasil = n + n

i = i + 1 i <= m?Tidak

Ya

Algoritme melakukanproses penambahan nilai n

dengan nilai n kemudianmenyimpan hasilpenambahan di

variabel hasil

Variabel Nilai

n 5

m 2

i 1

hasil 10

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

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

Berpikir Komputasional dan Pemrograman dengan Python10

start

end

Nilai n

Nilai m

Hasil

i = 1

Hasil = n + n

i = i + 1 i <= m?Tidak

Ya

Algoritme melakukanproses penambahan nilai isaat ini dengan 1, hasilnyadisimpan lagi di variabel i

Variabel Nilain 5m 2i 1 2

hasil 10

start

end

Nilai n

Nilai m

Hasil

i = 1

Hasil = n + n

i = i + 1 i <= m?Tidak

Ya

Algoritme melakukan

pemeriksaan, apakah nilai variabel i <= nilai

variabel m

start

end

Nilai n

Nilai m

Hasil

i = 1

Hasil = n + n

i = i + 1 i <= m?Tidak

Ya

Karena nilai i (2) samadengan m(2), maka proses

ini dijalankan kembali

Variabel Nilain 5m 2i 1 2

hasil 10 15

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

Page 21: Berpikir komputasional.indb 1 20/12/2019 16:15:36

Bab 1 Berpikir Komputasional 11

start

end

Nilai n

Nilai m

Hasil

i = 1

Hasil = n + n

i = i + 1 i <= m?Tidak

Ya

Algoritme melakukanproses penambahan nilai isaat ini dengan 1, hasilnyadisimpan lagi di variabel i

Variabel Nilai

n 5

m 2

i 1 2 3

hasil 10 15

start

end

Nilai n

Nilai m

Hasil

i = 1

Hasil = n + n

i = i + 1 i <= m?Tidak

Ya

Algoritme melakukanpemeriksaan, apakah nilaivariabel i <= nilai variabel

m

start

end

Nilai n

Nilai m

Hasil

i = 1

Hasil = n + n

i = i + 1 i <= m?Tidak

Ya

Karena nilai i (3) lebih besar dari m(2), makaproses ini dijalankan

Algoritme memberikanoutput, yakni nilai dari

variabel hasil

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

Page 22: Berpikir komputasional.indb 1 20/12/2019 16:15:36

Berpikir Komputasional dan Pemrograman dengan Python12

Variabel Nilai

n 5

m 2

i 1 2 3

hasil 10 15

start

end

Nilai n

Nilai m

Hasil

i = 1

Hasil = n + n

i = i + 1 i <= m?Tidak

Ya

Penelusuran selesai pada terminator dengan

anotasi 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

end

Nilai n

Nilai m

Hasil

i = 1

Hasil = n + n

i = i + 1 i <= m?Tidak

Variabel Nilai

n 5

m 2

i 1 2

hasil 10

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

Page 23: Berpikir komputasional.indb 1 20/12/2019 16:15:36

Bab 1 Berpikir Komputasional 13

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

Cara Memasak:Tuangkan sebungkus agar-agar Shallow ke dalam panci dengan 4 gelas air minum (900 cc) dan 120 gr gula (atau menurut se lera kemudian d imasak hingga mendidih sambil diaduk. Tuangkan ke dalam cetakan dan biarkan hingga dingin.

Agar-Agar Shallow

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.

Latihan Soal

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

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

Page 24: Berpikir komputasional.indb 1 20/12/2019 16:15:36

Berpikir Komputasional dan Pemrograman dengan Python14

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

end

Nilai n

Nilai m

Hasil

i = 1

Hasil = n * n

i = i + 1 i <= m?Tidak

Ya

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

Page 25: Berpikir komputasional.indb 1 20/12/2019 16:15:36

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.

Sumber: https://pixabay.com/photos/apples-farmers-market-business-buy-1841132/

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.• Pelanggan mendapatkan stiker/barcode berisi harga total.

a. Manakah output dalam kasus di atas?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

Page 26: Berpikir komputasional.indb 1 20/12/2019 16:15:36

Berpikir Komputasional dan Pemrograman dengan Python16

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