• Tidak ada hasil yang ditemukan

Berpikir Komputasional dan Pemrograman dengan Python. Meredita Susanty

N/A
N/A
Protected

Academic year: 2021

Membagikan "Berpikir Komputasional dan Pemrograman dengan Python. Meredita Susanty"

Copied!
26
0
0

Teks penuh

(1)
(2)

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

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

(3)

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.

(4)

Berpikir Komputasional dan Pemrograman dengan Python iv

(5)

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

(6)

Berpikir Komputasional dan Pemrograman dengan Python vi

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

(7)

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

(8)

Berpikir Komputasional dan Pemrograman dengan Python viii

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

(9)

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

(10)

Berpikir Komputasional dan Pemrograman dengan Python x

(11)

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.

(12)

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.

(13)

3

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

(14)

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

(15)

5

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

(16)

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 becakNaik Cuaca = cerah? Jalan kaki Anotasi proses biasanya menggunakan kata kerja Anotasi untuk percabangan berupa pertanyaan dengan 2 Ya Tidak Ya Tidak

Bagian ini berulang

Percabangan selalu memiliki

2 garis keluar.

Dari proses di atas kita bisa membuat beberapa algoritme: Algoritme 1

(17)

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.

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.

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 becakNaik Input/output biasanya menggunakan 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

(18)

Berpikir Komputasional dan Pemrograman dengan Python

8

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 dengan anotasi 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

(19)

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 melakukan proses penambahan nilai n

dengan nilai n kemudian menyimpan hasil penambahan di variabel hasil Variabel Nilai n 5 m 2 i 1 hasil 10

(20)

Berpikir Komputasional dan Pemrograman dengan Python 10 start end Nilai n Nilai m Hasil i = 1 Hasil = n + n i = i + 1 i <= m? Tidak Ya Algoritme melakukan proses penambahan nilai i saat ini dengan 1, hasilnya disimpan lagi di variabel i

Variabel Nilai n 5 m 2 i 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) sama dengan m(2), maka proses

ini dijalankan kembali

Variabel Nilai

n 5

m 2

i 1 2

(21)

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 melakukan proses penambahan nilai i saat ini dengan 1, hasilnya disimpan 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 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 (3) lebih besar dari m(2), maka

proses ini dijalankan

Algoritme memberikan output, yakni nilai dari

(22)

Berpikir Komputasional dan Pemrograman dengan Python 12 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

(23)

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 selera kemudian dimasak 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.

(24)

Berpikir Komputasional dan Pemrograman dengan Python

14

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?

(25)

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.

(26)

Berpikir Komputasional dan Pemrograman dengan Python

Referensi

Dokumen terkait

Tujuan penelitian ini adalah untuk mengetahui seberapa lamakah waktu tunggu (lead time) perusahaan ketika memesan bahan baku, mengetahui berapa jumlah permintaan dan

Sesuai dengan misinya yaitu untuk menyediakan sepeda motor pada tingkat harga yang terjangkau, maka perbaikan dan pengembangan yang berkesinambungan terus dijalankan di

Evaluasi Hasil Pengujian Perangkat Lunak Aplikasi “Digital Interactive Storyteller” Berbasis Android untuk Tunanetra dapat dijalankan pada semua perangkat Android yang

1. Terdapat pengaruh yang signifikan secara simultan dari variabel regulasi, Alokasi anggaran pusat dan daerah, investasi daerah, tata kelola pemda, peranan masyarakat,

Permasalahan dalam penelitian ini adalah siswa masih harus ditumbuhkan kreativitas belajar dalam pembelajaran matematika, dan guru masih jarang menggunakan pembelajaran

Pada parameter substrat, 3 titik kepadatan bivalvia terbanyak pada T6 mempunyai tipe substrat pasir berbatu dengan kandungan organik sebesar 5%, pada T17 mempunyai tipe

LOKASI: Gedung ICT Center, Menara Pinisi UNM Wing B Lantai 3 dan

Pada variabel berat umbi tanaman kentang, menunjukan bahwa pemberian perlakuan pupuk daun dengan konsentantrasi4 g/l mampu meningkatkan rerata berat umbi yang