bagianpersiapan dari sebuah algoritma disebut dengan bagian; indonesia berada di wilayah tropis yang memiliki ciri; bentuk pecahan dari 0 25 adalah; rantai makanan yang terdapat dalam ekosistem laut adalah; berikut ini yang bukan merupakan kegiatan dalam meresensi buku adalah; fungsi dari sistem autopilot di dunia dirgantara adalah
15 Bagian persiapan dari sebuah algoritma disebut dengan bagian . A. Deskripsi B. Deklarasi C. Header D. Preparation E. Prosedur Pembahasan: Bagian deklarasi dalam algoritma merupakan bagian yang berfungsi untuk mendefinisikan semua nama yang dipakai di dalam algoritma.
BagianPersiapan Dari Sebuah Algoritma Disebut Dengan Bagian - Coba Sebutkan. Materi Logika dan Algoritma. 1 Struktur Algoritma mampu mendeskripsikan Sturktur Algoritma 1. Bagian persiapan dari sebuah algoritma disebut dengan bagian ..
Ditulisoleh Muhammad Erfan, dipublikasi sejak 17 Juli 2018 pukul 22:08, disimpan dalam kategori Project, Tutorial.Ingin mengomentari tulisan ini? Setelah konstruksi dasar pembentuk algoritma, sekarang kita lihat bagaimana struktur dasar dari teks algoritma. Sehingga dengan mengikuti struktur tersebut kita dapat menyusun algoritma-algoritma tertentu untuk menyelesaikan masalah dengan efektif.
. Terdapat 3 cara penulisan notasi algoritma yang biasanya digunakan oleh para programer dalam menuliskan algoritmanya, yaitu Structured English SE, Pseudocode kode-semu, dan Flowchart bagan alir. Meskipun ada tiga tapi nyatanya hanya dua yang paling sering digunakan oleh para programer, yaitu pseudocode dan flowchart, sedangkan cara yang sudah saya contohkan pada pertemuan sebelumnya termasuk yang Structured English, karena pada dasarnya bahasa internasional yang digunakan adalah bahasa Inggris. Namun karena kita hidup di Indonesia maka kita menulis algoritma itu dengan struktur bahasa Indonesia seperti yang pernah saya contohkan pada pertemuan sebelumnya. Notasi algoritmik dibuat independen dari spesifikasi bahasa pemrograman dan perangkat keras komputer yang akan mengeksekusinya. Notasi penulisa algoritma ini dapat diterjemahkan ke dalam berbagai macam bahasa pemrograman. Seperti yang sudah saya contohkan pada pertemuan sebelumnya melalui contoh algoritma meraut pencil yang patah, bisa ditulis dengan bahasa Indonesia ataupun bahasa Inggris.. Untuk struktur penulisan algoritma berdasarkan struktur bahasa Indonesia termasuk yang paling mudah karena menggunakan bahasa sehari-hari, maka kita tidak akan terlalu banyak membahasa struktur yang satu ini dan kita akan fokus pada dua cara penulisan algoritma yang lainya, yaitu untuk versi pseudocode dan flowchart. Pseudocode kode-semu adalah cara penulisan algoritma yang hampir menyerupai bahasa pemrograman, namun pseudocode ditulis lebih sederhana dengan menggunakan bahasa baku yang mudah dipahami oleh manusia. Bahasa yang digunakan bisa menggunakan bahasa Inggris ataupun bahasa Indonesia sesuai dengan kebutuhan dan pemahaman masing-masing penulis. Karena kita tinggal di Indonesia maka kita akan menuliskan pseudocodenya dengan bahasa Indonesia yang baik dan benar. Adapun tujuan dari penggunaan pseudocode dalam suatu algoritma adalah supaya programer dapat memahami ide/rencana suatu program dengan jelas, meskipun programmer tersebut belum bisa menentukan bahasa pemrograman apa yang akan digunakan. Selain itu dengan menggunakan pseudocode maka kita dapat dengan mudah memahami apa yang akan dibuat dibandingkan dengan menggunakan bahasa pemrograman yang umumnya digunakan, aspeknya yang relatif ringkas dan tidak bergantung pada suatu sistem tertentu yang merupakan prinsip utama dalam suatu algoritma. Pseudocode sendiri tujuanya adalah untuk dibaca oleh manusia bukan oleh mesin sehingga tidak ada standar khusus yang menjadi aturan dalam penulisan pseudocode. Ada 3 struktur yang membentuk sebuah Pseudocode yaituJudul berisi judul algoritmaDeskripsi berisi deklarasi variabel dan konstantaImplementasi berisi inti algoritma Ketiga struktur ini harus berurut mulai dari judul kemudian deskripsi yaitu isinya, dan inplementasi yang didalamnya meruapakn bagian inti dari algoritma itu. Contoh menulis algoritma mencetak foto dengan menggunakan pseudocode Algoritma Mencetak Foto Mulai Q = Foto cetak Q Selesai Flowchart bagan alir adalah adalah suatu bagan dengan simbol-simbol tertentu yang menggambarkan urutan proses secara mendetail dan hubungan antara suatu proses instruksi dengan proses lainnya dalam suatu program. Baha alir flowchart yang mengekspresikan sebagai sekumpulan bentuk-bentuk geometri seperti persegi panjang, lingkaran, jajaran genjang, dan lain sebagainya yang berisikan langkah-langkah komputasi. Flowchart menggambarkan aliran instruksi di dalam program secara visual. Notasi algoritmik dengan diagram alir cocok untuk masalah yang kecil, namun tidak cocok untuk masalah yang besar karena membutuhkan berlembar-lembar halaman kertas. Simbol-simbol yang digunakan dalam flowchart Penggunaan diagram alir di atas harus sesuai dengan simbol-simbol yang sudah ditetapkan secara umum seprti gambar di atas. Perhatikan contoh di bawah ini, Pada contoh di atas, penulisan algoritma dengan bagan alir dimulai dengan bagan berbentuk elips begitu juga untuk mengakhiri flowchartnya. Sedangkan untuk memproses disimbolkan dengan bentuk persegi empat sedangkan jajar genjang untuk memberikan input/output pada algoritma. Sedangkan bentuk wajik mengambarkan keputusan yang harus diambil dalam algoritma. Penting bagi kalian untuk memahami semua bentuk pada bagan alir di atas, karena nantinya kalian harus menuliskan algoritma baik dengan notasi secar deskriptif mengunakan Structured English, Pseudocode kode-semu maupuan menggunakan Flowchart bagan alir seperti di atas.
- Algoritma berasal dari kata algorithm, yang memiliki makna sebagai kumpulan langkah-langkah yang digunakan untuk menyelesaikan masalah tertentu, seperti masalah matematika dan logika. Dari laman Maxmanroe, algoritma didefinisikan sebagai sebuah proses yang terdiri dari serangkaian aturan untuk memecahkan sebuah permasalahan, salah satunya pada komputer. Algoritma memiliki kegunaan untuk menghitung serta mengolah data pada komputer menggunakan sebuah Algoritma Melalui laman Maxmanroe, Donald E. Knuth menjabarkan beberapa ciri dari algoritma, yang terdiri dari Input, merupakan suatu permasalahan yang timbul untuk dicarikan solusinya. Proses, merupakan langkah-langkah yang harus dilalui untuk mencapai hasil akhir. Output, merupakan hasil dari sebuah pencarian solusi yang didapatkan di bagian akhir. Instruksi, merupakan kumpulan instruksi jelas menjabarkan suatu permasalahan, sehingga hasil yang didapat sesuai dengan instruksi yang telah diberikan. Tujuan akhir, merupakan langkah akhir ketika sebuah program telah mendapatkan hasil akhir. Jenis-Jenis Algoritma Dilihat dari fungsnya, algoritma terdiri dari enam jenis, yaitu 1. Algoritma rekursif Algoritma rekursif atau recursive algorithm merupakan jenis algoritma yang akan melakukan pengulangan hingga sebuah masalah mendapatkan solusi. 2. Algoritma divide dan conquer Algoritma divide dan conquer merupakan jenis algoritma yang membagi sebuah permasalahan menjadi beberapa bagian. Tahap dari algoritma divide dan conquer yaitu membagi masalah menjadi beberapa bagian yang sama, kemudian mencari sebuah solusi utama setelah mendapatkan solusi untuk bagian-bagian kecilnya. 3. Algoritma dynamic programming Algoritma dynamic programming bekerja dengan cara mencari solusi baru menggunakan solusi lama. Algoritma jenis ini memecahkan sebuah masalah dengan cara mencari solus dari setiap bagian terkecil masalah, yang kemudian hasilnya akan disimpan untuk memecahkan masalah baru di kemudian hari. 4. Algoritma greedy Algoritma greedy digunakan ketika menemukan masalah pada optimisasi. Cara kerja dari algoritma jenis ini yaitu dengan menemukan solusi optimal untuk lokal tanpa memperhatikan akibat yang akan diterima, sehingga dapat menemukan solusi optimal pada tingkat global. 5. Algoritma brute force Algoritma brute force adalah jenis algoritma dengan konsep paling sederhana. Algoritma jenis ini menggunakan pengulangan dari setiap solusi yang ditemukan untuk menemukan solusi paling tepat terkait sebuah permasalahan. 6. Algoritma backtracking Algoritma backtracking bekerja dengan cara rekursif saat hendak memecahkan permasalahan. Algoritma jenis ini memecahkan masalah dengan cara melakukan pengulangan saat sebuah permasalahan tidak teridentifikasi solusinya. Struktur Algoritma Algoritma memiliki tiga bentuk dasar, yaitu Algoritma sekuensial atau sequence algorithm, yaitu terdiri dari beberapa perintah tersusun secara beraturan untuk memunculkan beberapa instruksi tertentu. Algoritma pengulangan atau looping algorithm, yaitu penggunaan algoritma untuk menyampaikan beberapa perintah menyesuaikan dengan syarat-syarat yang telah ditentukan. Algoritma percabangan/bersyarat atau conditional algorithm, yaitu penggunaan algoritma untuk memilih beberapa pilihan tertentu yang telah diperintahkan. Contoh Algoritma Dari laman LKP Unikom Yogyakarta membahas tentang konsep dasar algoritma, penyajian algoritma terdirti dari tiga jenis, yaitu dengan menggunakan deskriptif, flowchart, dan pseudocode. 1. Penyajian algoritma menggunakan deksriptif berarti menyajikannya dengan menggunakan untaian kalimat. Contoh deskriptif Cara menghitung luas persegi panjang Masukkan nilai panjang; Masukkan nilai lebar; Hitung luas persegi panjang; Menampilkan hasil perhitungan. 2. Penyajian algoritma menggunakan flowchart dilakukan dengan cara menyajikan tahapan-tahapan secara runtut menggunakan bagan alir. 3. Penyajian algoritma menggunakan pseudocode berarti dilakukan dengan cara menggunakan Bahasa juga Cara Kerja Algoritma Instagram 2021 Tingkat Interest & Following Yang Terjadi saat Algoritma Dilibatkan dalam Prediksi Ujian Sekolah - Pendidikan Kontributor Marhamah Ika PutriPenulis Marhamah Ika PutriEditor Dhita Koesno
Bab 7 Algoritma dan Pemrograman 135 Bab 7 Algoritma dan Pemrograman Setelah mempelajari bab ini, kalian mampu a membaca dan menulis algoritma dengan notasi yang benar, memahami proses pemrograman dengan menggunakan bahasa pemrograman; b memahami konsep variabel dan ekspresi dalam membuat program; c memahami penggunaan struktur kontrol keputusan, struktur kontrol perulangan, dan fungsi dalam membuat program. Kalian ingin dapat memprogram dengan bahasa pemrograman? Bagaimana membuat program untuk membuat solusi-solusi kecil? KEMENTERIAN PENDIDIKAN, KEBUDAYAAN, RISET, DAN TEKNOLOGI REPUBLIK INDONESIA, 2021 Informatika untuk SMA Kelas X Penulis Dean Apriana Ramadhan, Auzi Asfarian, Mushthofa ISBN 978-602-244-506-7136 Informatika SMA Kelas X Gambar Peta Konsep Algoritma dan Pemrograman Selama ini, mungkin kalian telah menggunakan banyak sekali produk perangkat lunak baik di komputer personal maupun di ponsel pintar yang kalian gunakan. Sekarang saatnya bagi kalian untuk membuat program sendiri. Pada bagian ini, kalian akan berkenalan dengan konsep algoritma dan pemrograman. Untuk membuat program, kalian harus menggunakan salah satu dari banyak bahasa pemrograman yang ada. Bab 7 Algoritma dan Pemrograman 137 Penyelesaian Persoalan problem solving, Algoritma, pemrograman, coding, debugging. A. Algoritma Algoritma adalah suatu kumpulan instruksi terstruktur dan terbatas yang dapat diimplementasikan dalam bentuk program komputer untuk menyelesaikan suatu permasalahan komputasi tertentu. Algoritma merupakan bentuk dari suatu strategi atau resep’ yang kalian gunakan untuk menyelesaikan suatu masalah. Algoritma lahir dari suatu proses berpikir komputasional oleh seseorang untuk menemukan solusi dari suatu permasalahan yang diberikan. Dengan demikian, berpikir komputasional merupakan keahlian yang kalian perlukan untuk dapat membuat algoritma, program, atau suatu karya informatika yang dapat digunakan dengan efektif dan eisien. Setelah kalian menganalisis suatu problem menggunakan teknik abstraksi dan dekomposisi lalu menyusun algoritma dengan melakukan pengenalan pola dari problem sejenis, algoritma tersebut harus direpresentasikan dalam bentuk yang dapat dipahami oleh orang lain. Selain itu, karena pada akhirnya strategi tersebut akan diubah dalam bentuk kode program, algoritma harus ditulis dalam bentuk yang terdeinisi dengan baik well-deined dengan jumlah langkah yang terbatas. Algoritma adalah abstraksi dari sebuah program sehingga kemampuan menuliskan algoritma dengan baik akan membantu kalian dalam membuat program yang baik dan benar. Pada bagian ini, kalian akan mempelajari dua cara untuk merepresentasikan algoritma, yaitu diagram alir dan pseudocode. Untuk itu, kalian perlu mempelajari teknik untuk membaca suatu algoritma yang disebut penelusuran atau tracing dan cara untuk menuliskan suatu algoritma. Perlu diingat bahwa menulis algoritma berbeda dengan menulis program. Program ditulis agar dapat dipahami oleh mesin, sedangkan algoritma ditulis agar dapat dipahami oleh manusia. Untuk program yang sederhana, algoritma akan sangat mirip, bahkan sama dengan program. Jika persoalan makin kompleks, algoritma hanya berisi abstraksi, yang akan mempermudah implementasinya menjadi Informatika SMA Kelas X 1. Diagram Alir Diagram alir dibuat dalam bentuk aliran simbol yang dapat ditelusuri dari suatu titik permulaan hingga titik akhir dari program. Diagram alir dibuat menggunakan simbol standar ANSI/ISO yang beberapa simbol dasarnya diberikan pada Tabel Tabel Simbol Diagram Alir Beserta Maknanya Simbol Nama Deskripsi Garis alir lowline Arah yang menunjukkan aliran program dari awal hingga akhir. Terminator Titik awal atau titik akhir suatu program. Proses Suatu kegiatan komputasi yang dilakukan oleh program misalnya operasi aritmatika. Keputusan Merupakan titik percabangan yang salah satu cabangnya dapat dilalui oleh program berdasarkan suatu kondisi. Masukan Input/Keluaran Output Melambangkan titik saat program akan menerima suatu data atau menghasilkan suatu informasi. Subprogram Melambangkan suatu kegiatan atau proses lain yang telah dideinisikan sebelumnya. Penghubung dalam Halaman Digunakan untuk menghubungkan suatu titik pada diagram alir ke titik lain pada halaman yang sama. Penghubung antarhalaman Digunakan untuk menghubungkan suatu titik pada diagram alir ke titik lain pada halaman yang berbeda. Digunakan apabila diagram lain cukup kompleks sehingga tidak dapat digambar dalam satu halaman. Untuk memahami bagaimana diagram alir digunakan untuk menggambarkan suatu algoritma, pada bagian berikut, diberikan lima buah contoh diagram alir dari beberapa proses berpikir yang telah kalian kenal. Bab 7 Algoritma dan Pemrograman 139 a. Diagram Alir 1 Menghitung Luas Persegi START READ sisi Luas = sisi * sisi END PRINT luas Diagram alir dibaca mulai dari simbol START, lalu mengikuti arah panah. Untuk menghitung luas persegi, kalian memerlukan sebuah data, yaitu panjang sisi. Panjang sisi ini dibaca pada diagram alir dengan menggunakan kata kunci READ dan disimpan dalam sebuah variabel bernama sisi. Setelah itu, kalian melakukan suatu proses ekspresi matematika untuk menghitung luas persegi menggunakan rumus yang telah kalian ketahui, yaitu luas = sisi x sisi. Hasil perhitungan tersebut disimpan pada sebuah variabel bernama luas. Walaupun telah memperoleh jawaban yang dicari, komputer perlu diinstruksikan secara spesiik untuk mengeluarkan jawaban tersebut. Pada diagram ini, kata kunci PRINT digunakan untuk mencetak nilai dari variabel luas yang telah diperoleh pada tahap sebelumnya. Setelah PRINT, algoritma berakhir karena simbol setelahnya adalah simbol END. b. Diagram Alir 2 Menghitung Luas Permukaan Kubus START READ sisi Luas = sisi * sisi END PRINT luas permukaan Luas permukaan = Luas * 6 START Luas = sisi * sisi END Saat menyusun solusi untuk menyelesaikan suatu permasalahan, kita seringkali membutuhkan solusi dari permasalahan lain yang lebih sederhana. Misalnya, kita harus menghitung luas permukaan dari sebuah kubus. Pada prosesnya, kita perlu menghitung luas persegi yang membentuk kubus tersebut. Hal ini dapat digambarkan pada diagram alir menggunakan simbol subprogram. Pada diagram alir ini, terlihat bahwa proses akan memanggil subprogram menghitung luas persegi yang telah kita buat sebelumnya. Subprogram dapat kalian gunakan untuk menggambarkan abstraksi dan dekomposisi yang telah kalian pelajari pada berpikir Informatika SMA Kelas X c. Diagram Alir 3 Membagi Bilangan START READ pembilang penyebut penyebut = 0 ? PRINT “Penyebut tidak boleh nol” Hasil = pembilang / penyebut END PRINT hasil No Yes Diagram alir dapat memiliki beberapa kemungkinan aliran sehingga suatu algoritma dapat adaptif terhadap masukan yang diberikan. Hal ini dimungkinkan dengan adanya simbol keputusan. Aliran keluar dari simbol keputusan akan bergantung pada kondisi yang ada di dalam simbol keputusan. Pada contoh ini, simbol keputusan digunakan untuk menghindari dijalankannya suatu operasi matematika yang tidak dapat dieksekusi oleh komputer, yaitu operasi pembagian dengan pembagi bernilai 0. Apabila operasi tersebut dilakukan, komputer akan menampilkan pesan kesalahan dan program akan berhenti secara tidak wajar. Diagram alir ini merupakan proses untuk membagi pembilang dengan penyebut. Akan tetapi, sebelum operasi pembagian dilakukan, diagram akan mengecek terlebih dahulu nilai dari penyebut. Apabila penyebut bernilai 0, operasi pembagian tidak dilakukan dan pesan yang sesuai akan ditampilkan. Jika tidak, operasi dapat dilakukan dengan aman dan hasil pembagian dapat ditampilkan. d. Diagram Alir 4 Menghitung Mundur dari N hingga 1 START N>0? PRINT N END N = N - 1 READ N No Yes Aliran pada diagram alir dapat diatur sehingga satu lebih simbol dijalankan berulang kali. Pada contoh berikut, perulangan dilakukan sehingga diagram alir tersebut akan menghasilkan barisan bilangan bulat dari N hingga 1. Misalkan, N bernilai 5. Maka, diagram alir akan mencetak angka 5 4 3 2 1. Tentunya, perulangan tidak bisa dilakukan terus-menerus sehingga diperlukan suatu kondisi untuk menghentikan perulangan. Simbol keputusan dapat digunakan untuk menghentikan perulangan tersebut pada kondisi yang kita tetapkan. Bab 7 Algoritma dan Pemrograman 141 e. Diagram Alir 5 Mencari Bilangan Terbesar dari Suatu Himpunan Bilangan Tentunya, simbol-simbol dasar pada diagram alir dapat dipadukan untuk menghasilkan sebuah proses yang lebih kompleks. Diagram alir berikut menggambarkan proses mencari bilangan terbesar dari suatu himpunan bilangan yang diberikan. Diagram alir berikut akan membaca sebanyak N buah bilangan dan akan menghasilkan bilangan yang paling besar di antara bilangan tersebut. START N=0? PRINT Terbesar END READ N No Yes Terbesar = 0 READ Bilangan Terbesar 0, ulangi. 3. Cetak tulisan N. 4. Kurangi nilai N dengan 1. Algoritma Menghitung Mundur dari N hingga 1 Input Nilai N. Output Angka hasil hitung mundur dari nilai N sampai 1 tercetak. input N while N > 0 print N N ← N - 1 e. Pseudocode 5 Mencari Bilangan Terbesar dari Suatu Himpunan Bilangan Deskripsi tingkat tinggi Pseudocode 1. Jika himpunan bilangan kosong, maka tidak ada bilangan terbesar. 2. Jika himpunan bilangan tidak kosong, asumsikan bilangan pertama sebagai bilang terbesar saat ini. 3. Untuk setiap bilangan anggota himpunan bandingkan bilangan tersebut dengan bilangan terbesar saat ini. Apabila bilangan tersebut lebih besar, maka bilangan tersebut akan menjadi bilangan terbesar saat ini. Algoritma Mencari Bilangan Terbesar Input Himpunan bilangan L. Output Bilangan terbesar pada himpunan bilangan L if size of L= 0 return null largest ← elemen pertama L for each item in L, do if item > largest, then largest ← item return largest146 Informatika SMA Kelas X Deskripsi tingkat tinggi Pseudocode 4. Apabila langkah 3 telah dilakukan pada seluruh bilangan, bilangan terbesar saat ini akan menjadi bilangan terbesar di himpunan bilangan tersebut. Setelah selesai menyusun suatu algoritma, barulah suatu program dibuat dengan menggunakan bahasa pemrograman tertentu. Ada banyak bahasa yang dapat digunakan, misalnya bahasa C yang digunakan pada unit ini dan bahasa Python yang digunakan pada unit analisis data. Aktivitas Individu Aktivitas AP-K10-02-U Menulis Algoritma Pada latihan ini, kalian diminta untuk menuliskan suatu algoritma berdasarkan deskripsi berikut. Deskripsi ini memuat narasi tingkat tinggi dari algoritma yang perlu kalian buat dalam bentuk diagram alir dan pseudocode. Setelah selesai, kalian dapat menunjukkan hasil pekerjaan kalian kepada teman kalian untuk ditelusuri. Soal 1 Membayar Bakso Tingkat Kesulitan Buatlah sebuah diagram alir atau pseudocode dari proses berikut. Sebuah mesin pembayaran otomatis dirancang untuk mampu menangani pembayaran pembelian bakso secara mandiri. Mesin ini mampu untuk memberikan kembalian dalam bentuk uang kertas atau uang logam. Mesin akan menerima dua buah masukan, yaitu total bayar dan jumlah uang yang dibayarkan oleh pelanggan. Apabila jumlah uang yang dibayarkan lebih besar atau sama dengan total bayar, mesin akan menghitung kembalian yang harus diberikan kepada pelanggan. Apabila terjadi sebaliknya, mesin akan menampilkan teks “Uang yang dibayarkan kurang”. Setelah diagram alir selesai, kalian dapat menelusurinya dengan menggunakan kasus 7 Algoritma dan Pemrograman 147 Kasus Masukan Keluaran 1 Total Bayar 10000 Jumlah Uang 15000 5000 2 Total Bayar 20000 Jumlah Uang 10000 Uang yang dibayarkan kurang. Soal 2 Hadiah Bakso Gratis Tingkat Kesulitan Kalian adalah pengusaha bakso yang sukses. Agar usaha bakso kalian bisa lebih berkembang, kalian berencana untuk menambah sentuhan teknologi sehingga beberapa proses dapat berjalan secara otomatis. Inovasi yang kalian pikirkan ialah menggunakan sistem poin untuk memberikan diskon pada pelanggan. Poin ini akan diberikan pada saat pelanggan membayar di mesin pembayaran yang akan kalian buat. Setiap membayar, pelanggan akan menerima poin senilai harga bakso yang ia beli. Apabila total poin mencapai pelanggan akan menerima satu porsi bakso gratis. Kalian lalu memikirkan suatu proses berikut setelah memesan bakso, pelanggan dapat membayar dengan menggunakan ponsel miliknya. Kemudian, mesin tersebut menambahkan total pembayaran ke total poin yang saat ini dimiliki oleh pelanggan. Apabila total poin yang dimiliki pelanggan lebih besar dari mesin akan mengeluarkan kalimat “Anda mendapatkan kupon bakso gratis” dan mengurangi total poin pelanggan dengan nilai Setelah itu, mesin akan menampilkan total poin pelanggan saat ini. Setelah diagram alir selesai, kalian dapat menelusurinya dengan menggunakan kasus berikut. Kasus Masukan Keluaran 1 Total Pembayaran 80000 Total Poin Pelanggan Saat Ini 10000 Poin Anda saat ini 90000 2 Total Pembayaran 20000 Total Poin Pelanggan Saat Ini 90000 Anda mendapatkan kupon bakso gratis! Poin Anda saat ini 10000 Jawablah pertanyaan berikut dalam Lembar Releksi pada Buku Kerja, dan jangan lupa mencatat kegiatan dalam Jurnal. 1. Apakah kalian merasa bahwa membuat algoritma dapat mempermudah kalian dalam menyelesaikan masalah? 2. Menurut kalian, kapan kalian akan menggunakan diagram alir dan kapan kalian akan menggunakan pseudocode? Mana yang paling mudah untuk kalian gunakan? Apa kelebihan dan kekurangan dari setiap pendekatan tersebut yang kalian rasakan?148 Informatika SMA Kelas X 3. Setelah ini, apa yang akan kalian lakukan untuk bisa membaca dan menulis algoritma dengan baik? 4. Pelajaran paling berkesan apa yang kalian dapatkan dari pertemuan ini? B. Bahasa Pemrograman Prosedural Belajar bahasa pemrograman sama halnya dengan belajar bahasa apa pun, dimulai dengan secara intuitif mengenal dan langsung memakai bahasa tersebut untuk keperluan sehari-hari yang penting sesuai kebutuhan, bukan dari teori bahasa. Seseorang dengan bahasa ibu bahasa Indonesia, saat belajar bahasa Inggris, akan mulai mengenal bahasa Inggris melalui “membaca” contoh-contoh kalimat sederhana yang sangat diperlukan dalam kehidupan sehari-hari, seperti mulai menyapa “Selamat pagi.”, “Jam berapa?”. Melalui contoh tersebut, ia akan belajar kosakata penting dan pola kalimat, misalnya kalimat pernyataan SPOK Subjek, Predikat, Objek, Keterangan; struktur kalimat tanya, kalimat aklamasi, dan lain-lain. Selanjutnya, baru beranjak ke konsep yang lebih kompleks yang ada pada bahasa asing tersebut dan mengenal tata bahasa secara lebih formal dan mulai menulis. Belajar pemrograman pada hakikatnya sama dengan belajar bahasa natural bahasa manusia sehari-hari seseorang belajar dari “membaca” program terlebih dulu, daripada “menulis” kode program. Proses menulis kode coding dapat dimulai setelah kalian membaca contoh-contoh program yang menjadi pola pembangun program kompleks. Bedanya dengan belajar bahasa natural, teks dalam bahasa pemrograman yang ditulis bukan dilafalkan dan dipahami sebagai teks “statis”, melainkan juga dapat dipahami oleh mesin dan dapat dieksekusi dijalankan. Gambar Elemen Generik dari Bahasa Pemrograman Prosedural Sumber Dokumen Kemendikbud, 2021 Terdapat banyak bahasa pemrograman, dan setiap bahasa memiliki paradigma, keunggulan, tantangan masing-masing. Pada unit ini, kalian diperkenalkan pada bahasa pemrograman C yang merupakan salah satu bahasa pemrograman prosedural. Saat mempelajari bahasa C pada unit ini di kelas X, kalian akan mempelajari empat elemen generik, yaitu variabel, ekspresi, struktur kontrol keputusan, dan struktur kontrol perulangan Gambar Empat elemen ini berlaku di semua bahasa pemrograman prosedural lainnya. Teks kode program dalam bahasa-bahasa pemrograman lain banyak yang mirip dengan teks bahasa C. Oleh karena itu, kalian perlu menyadari bahwa unit ini tidak dibuat hanya agar kalian menguasai pemrograman dengan bahasa C, tetapi bagaimana kalian dapat menggunakan keempat elemen dasar tersebut dalam membuat suatu program.. Bahasa C banyak dipakai untuk membuat sistem operasi dan programprogram sistem, pemrograman tingkat rendah, atau yang "dekat" ke perangkat keras misalnya untuk kontrol peralatan, membuat toolkit pemrograman, dan menulis aplikasi. Kelebihan bahasa C sehingga banyak digunakan ada pada kemampuannya untuk menghasilkan kode yang singkat, eisien, tetapi tetap mudah dibaca. Berbeda halnya dengan bahasa mesin yang eisien, tetapi membutuhkan latihan khusus untuk membacanya, atau bahasa tingkat tinggi lain yang enak dibaca, tetapi tidak eisien. Walaupun demikian, perlu diakui bahwa kesulitan untuk membaca program bahasa C lebih tinggi daripada bahasa tingkat tinggi lain. 1. Membuat Program Pertama dengan Bahasa C Sekarang, saatnya kalian memulai perjalanan kalian dalam membuat program dengan bahasa C. Namun, sebelum kalian mulai membuat program, ada persiapan yang harus kalian lakukan. Pertama, kalian membutuhkan sebuah tempat untuk bekerja, yang disebut lingkungan pengembangan. Kedua, kalian harus memahami proses membuat program mulai dari mengetikkan kode program hingga menghasilkan program yang dapat dieksekusi atau dijalankan oleh Informatika SMA Kelas X a. Persiapan Lingkungan Pengembangan Program Menggunakan Bahasa C Gambar Alur proses membuat program dengan Bahasa C Ini langkah-langkah untuk membuat program di C! rumit sekali. Namun sekarang, ada IDE Integrated Development Environment, semuanya jadi mudah! Tulis program, satu kali klik, langsung bisa tampil…. Gambar Contoh tampilan sebuah IDE Sumber Dokumen Kemendikbud, 2021Bab 7 Algoritma dan Pemrograman 151 Untuk dapat membuat program dalam bahasa C, diperlukan beberapa perangkat lunak. Perangkat lunak yang pertama ialah sebuah editor teks tempat kita mengetikkan kode program. Selanjutnya, ada sebuah kompilator compiler yang akan membaca kode bahasa C yang telah ditulis dan mengubahnya menjadi bahasa mesin, atau bahasa assembly. Setelah itu, terdapat sebuah assembler yang akan mengubah bahasa mesin tersebut ke dalam kode biner yang dapat dipahami dan dieksekusi oleh komputer. Terakhir, terdapat sebuah penghubung linker yang akan menyatukan beberapa berkas yang dihasilkan dalam proses-proses sebelumnya ke dalam sebuah bentuk berkas yang dapat dieksekusi executable. Pada awalnya, perangkat lunak tersebut terpisah, tetapi untuk memudahkan, akhirnya, dibuatlah sebuah perangkat lunak terintegrasi yang mencakup semua perangkat lunak di atas. Perangkat lunak tersebut disebut lingkungan pengembangan terpadu integrated development environment. Untuk bahasa C, beberapa IDE yang biasa digunakan ialah Eclipse, Atom, CodeBlocks, Geany, dan Visual Studio. Walaupun pada dasarnya semua IDE tersebut memiliki fungsi yang sama, tetapi terdapat perbedaan pada ituritur tambahan yang membuat proses pemrograman menjadi lebih mudah dilakukan. Misalnya, itur untuk membuat program secara kolaboratif, integrasi dengan repositori kode program daring, serta itur auto-complete. Selain IDE yang dipasang di komputer masing-masing, terdapat pula IDE yang terpasang di cloud dan dapat diakses secara daring, misalnya Ideone, dan Selain itu, terdapat juga CppDroid, Mobile C, dan Coding C yang dapat digunakan pada ponsel cerdas. Suatu perusahaan di bidang informatika biasanya telah memiliki standar masing-masing dari lingkungan pengembangan yang digunakan. Menguasai lingkungan pengembangan secara maksimal akan membuat kalian lebih produktif untuk menghasilkan program yang eisien dan berkualitas tinggi, terutama ketika kalian bekerja dalam tim. Aktivitas Individu Aktivitas AP-K10-03 Instalasi IDE Bahasa C Sebelum membuat program, lingkungan kerja di komputer harus dipersiapkan. Pada bagian ini, akan dijelaskan cara instalasi IDE untuk memprogram bahasa C yang dapat digunakan secara gratis, yaitu CodeBlocks dan Geany. Cara instalasi yang diberikan ialah untuk dua sistem operasi, yaitu MS Windows dan Linux. 152 Informatika SMA Kelas X Sebelum lanjut, pastikan kalian telah mengetahui versi sistem operasi yang kalian gunakan, 32 bit atau 64 bit. Informasi ini dapat diperoleh dengan cara berikut. 1. Pada sistem operasi MS Windows klik kanan ikon My Computer atau This PC, kemudian pilih Properties. Pada bagian System Type, terdapat informasi jumlah bit yang digunakan oleh komputer kalian. 2. Pada sistem operasi Linux masuk ke terminal dan ketikkan perintah uname -a. Hal ini juga dapat dicek melalui antarmuka pengguna grais pada bagian System Settings -> Details. Aktivitas Individu Aktivitas AP-K10-04-U Membuat Program Pertama dengan Bahasa C Pada aktivitas ini, kalian akan menggunakan CodeBlocks atau Geany untuk membuat program pertama kalian. Program yang akan ditulis ialah seperti berikut. /* Program Pertamaku */ /* Membuat program untuk mencetak “Halo Dunia!” */ include int main { printf"Halo Dunia!\n"; return 0; } Ketikkanlah kode program tersebut ke dalam IDE yang kalian gunakan. Pada saat mengetik, kalian dapat mencoba memikirkan apa makna dari kode yang telah kalian ketikkan. Pastikan kalian mengetikkan semua kode dengan sempurna karena bahasa pemrograman sangat sensitif pada kesalahan pengetikan. Misalnya, ketika kalian lupa mengetikkan karakter “;” program kalian akan dianggap mengalami kesalahan sintaks oleh kompilator. Petunjuk 1. Pertama, buka CodeBlocks atau Geany. Kemudian, pilih File New Empty File. 2. Kedua, ketikkan kode yang diberikan di atas. 3. Ketiga, simpan berkas kode dengan nama Simpan dalam sebuah direktori yang kalian buat di komputer. Namai berkas kode dan direktori dengan benar agar dapat kalian temukan dengan mudah nanti. Menyimpan kode dengan terstruktur merupakan salah satu praktik baik dalam menulis kode program. Bab 7 Algoritma dan Pemrograman 153 4. Keempat, pilih Build Build atau tekan Ctrl-F9 untuk melakukan kompilasi program. Pada tahap ini, kode program akan dikonversi ke dalam bentuk yang dapat dipahami dan dieksekusi oleh komputer. 5. Terakhir, pilih Build Run atau tekan Ctrl-F10 untuk menjalankan program. Setelah dikompilasi dan dijalankan, program ini akan mencetak keluaran ke layar monitor yang berupa sebaris teks bertuliskan Halo Dunia! Selamat, kalian telah berhasil menjalankan program pertama kalian. Praktik Baik Pemrograman Sambil kalian mempelajari buku ini, akan ada sisipan praktik baik pemrograman. Praktik baik ini kalian terapkan dalam kegiatan pemrograman seterusnya, termasuk pada topik dan konsep yang belum tercakup dalam aktivitas ini, agar terkumpul dengan rapi. Kalian boleh menambahkan praktik baik lain yang kalian anggap perlu. Tuliskan praktik baik kalian dalam Buku Kerja kalian. Pemrogram profesional harus menaati aturan-aturan yang lebih ketat. Beberapa perusahaan seperti Google bahkan mempunyai konvensi kesepakatan dan juga dikaitkan dengan bahasa pemrograman yang dipakai. Penasaran? Silakan lihat contohnya di Selama kelas X, kalian akan menuliskan banyak program kecil-kecil yang perlu kalian simpan untuk bahan belajar. Jika kalian perlukan, dapat kalian pakai lagi potongan kodenya untuk mempercepat kalian melakukan tugas yang lebih besar. Sebuah program besar biasanya berasal dari potonganpotongan program kecil yang pernah dibuat sebelumnya. Pemrogram tidak perlu mengetik ulang lagi karena potongan kode tersebut sudah pernah diuji. Program kecil ini ibarat potongan puzzle yang kelak dapat kalian ambil dan rangkai menjadi sesuatu yang besar. Berikut ini praktik baik dalam memprogram serta mengelola direktori dan berkas tempat menyimpan kode program. 1. Selalu menuliskan nama ile tempat menyimpan potongan kode sebagai baris pertama kode, dalam bentuk komentar. 2. Menuliskan untuk apa potongan kode program ditulis, akan memudahkan mengambilnya tanpa harus membaca semua kode. Ingat bahwa sama halnya dengan belajar menulis, kalian akan menulis program yang ukurannya banyaknya baris makin lama makin besar. 3. Menuliskan komentar yang perlu untuk sekumpulan kode. Pada contoh program di atas, terdapat bagian komentar untuk menuliskan apa yang dilakukan oleh program. Komentar tidak akan dieksekusi oleh kompilator karena fungsinya untuk membantu kalian memahami kode program. Komentar dapat ditulis dalam dua Informatika SMA Kelas X a. Ditulis dalam satu baris atau lebih dan diawali dengan /* dan diakhiri dengan */. b. Ditulis dalam satu baris dengan awalan //. Kode program di atas dapat kalian berikan komentar seperti berikut. /* Program Pertamaku */ /* Membuat program untuk mencetak “Halo Dunia!” */ include int main{ // Fungsi utama program printf"Halo Dunia!\n"; // Mencetak Halo Dunia! ke layar return 0; // Program berjalan dengan benar } Jawablah pertanyaan tersebut dalam Lembar Releksi pada Buku Kerja, dan jangan lupa mencatat kegiatan dalam Jurnal. 1. Apakah kalian sudah pernah membuat program sebelumnya? 2. Saat mengetikkan kode program tersebut, apakah kalian merasa dapat memahami makna dari setiap baris kode tersebut? 3. Apa kesulitan yang kalian rasakan saat mengetikkan program tersebut? 4. Pelajaran paling berkesan apa yang kalian dapatkan dari pertemuan ini? 2. Struktur Program Bahasa C Bahasa C merupakan bahasa yang terstruktur. Beberapa struktur dasar pada program bahasa C telah terlihat pada program yang kalian tulis sebelumnya. Untuk memudahkan penjelasan, kode program berikut akan diberi nomor baris di bagian kiri. Penting Jika kalian ingin mencoba menjalankan contoh program dengan nomor baris seperti di bawah ini, kalian tidak perlu mengetikkan nomor baris tersebut. include int main{ printf"Halo Dunia!\n"; return 0; } Baris pertama merupakan suatu pernyataan yang digunakan untuk memasukan sebuah header ile yang bernama Header ile merupakan kumpulan fungsi-fungsi dasar yang dikelompokkan berdasarkan kegunaannya Bab 7 Algoritma dan Pemrograman 155 dan dapat digunakan untuk membantu kalian membuat program. Pada kode di atas, header ile yang digunakan ialah yang berisi fungsi-fungsi terkait masukan dan keluaran standar atau standard input output. Dengan menggunakan program yang kalian buat dapat membaca dan menulis data. Pada baris 2-5, kalian menemukan sebuah blok program yang merupakan implementasi suatu fungsi bernama main. Fungsi ini merupakan fungsi yang akan dijalankan pertama kali pada saat program dijalankan. Isi dari blok fungsi tersebut diapit dengan tanda kurung kurawal. Di dalam fungsi ini, pada baris 3, terdapat pemanggilan sebuah fungsi bernama printf yang digunakan untuk mencetak suatu data ke layar. Dalam hal ini, data yang ditampilkan ialah sebuah kalimat “Halo Dunia!\n” yang diberikan pada parameter fungsi tersebut. Karakter \n yang ada pada kalimat tersebut akan dicetak oleh program sebagai baris baru newline, seperti jika kalian menekan tombol enter pada papan ketik kalian. Pada baris keempat, terdapat sebuah pernyataan return 0. Penjelasan mengenai fungsi pernyataan ini cukup berat untuk dijelaskan pada bagian ini. Singkatnya, pernyataan ini merupakan tanda bagi sistem operasi untuk mengecek selesainya program dengan benar. Apabila program berjalan dan berhenti dengan benar, sistem operasi akan memperoleh nilai 0. Nilai selain 0 akan menjadi tanda bahwa program tidak berhenti dengan benar. Untuk saat ini, yang perlu kalian ketahui ialah pernyataan ini perlu diletakkan di akhir blok fungsi main pada program yang kalian tulis. Kalian dapat memodiikasi kode program tersebut dan menjalankannya kembali dengan melakukan beberapa perubahan, misalnya 1. Ubah kalimat Halo Dunia menjadi Hello World! 2. Cetak dua baris kalimat di layar, yaitu “Halo Dunia!” dan “Saya siap belajar pemrograman!” a. Komponen Program dalam Bahasa C Sebelum membuat program yang lebih kompleks, yang melibatkan ekspresi, struktur kontrol keputusan, atau struktur kontrol perulangan, kalian perlu memahami makna dari berbagai komponen penyusun bahasa C, di antaranya meliputi kata kunci, identiier, variabel, tipe data, dan konstanta. 1 Kata Kunci Keyword Kata kunci merupakan kata yang telah memiliki makna khusus yang tidak dapat diubah oleh pemrograman. Dengan kata lain, kalian tidak dapat menggunakan sebagai suatu identiier. Terdapat 32 kata kunci standar pada bahasa C, yaitu 156 Informatika SMA Kelas X auto, double, int, struct, break, else, long, switch, case, enum, register, typedef, char, extern, return, union, continue, for, signed, void, do, if, static, while, default, goto, sizeof, volatile, const, loat, short, dan unsigned. Bayangkan, dengan hanya 32 kata kunci, kalian bisa menulis program apa saja dalam bahasa C! 2 Identiier Identiier adalah nama unik yang dapat kalian ingat yang diberikan ke dalam entitas program C, seperti variabel dan fungsi. Identiier terdiri atas serangkaian karakter dengan aturan berikut. a. Tidak boleh sama dengan kata kunci keyword dalam bahasa C. b. Disusun dari kombinasi huruf besar dan kecil, angka, dan underscore ”_”. c. Harus dimulai dengan huruf atau underscore. d. Bersifat case-sensitive, atau sensitif terhadap huruf besar atau kecil kapitalisasi karakter. Dengan kata lain, sisi dan Sisi akan dianggap sebagai dua identiier yang berbeda. Praktik Baik Pemrograman Walaupun dengan aturan di atas kalian dapat membuat identiier dengan sangat bebas, keterbacaan kode program menjadi penting. Beberapa praktik baik yang perlu kalian ketahui untuk menghindari kebingungan dalam membaca dan menulis kode ialah seperti berikut. 1. Nama yang diawali oleh underscore digunakan untuk keperluan tertentu dan tidak seharusnya digunakan dalam membuat program di unit ini. 2. Nama variabel dan fungsi harus ditulis dengan huruf non-kapital. Akan tetapi, apabila terdiri atas dua atau lebih kata, kalian dapat menggunakan teknik menulis dengan standar camel case. Huruf awal kata, selain kata pertama, ditulis menggunakan huruf kapital. Contoh totalHargaBarang, namaMahasiswa. 3. Hindari menggunakan identiier yang sangat mirip dalam satu kode program. Misalnya, totalHarga dengan total_harga. Hindari juga dua atau lebih variabel yang hanya berbeda di kapitalisasi seperti totalharga dan totalHarga. 4. Hindari identiier yang terlihat mirip, misalnya karakter I’, 1’, dan l’ terlihat sangat mirip satu sama lain. Catatan karakter yang disebutkan ialah huruf i kapital, angka 1, dan huruf L non-kapital. 5. Identiier haruslah bersifat mnemonic. Untuk variabel, artinya identiier variabel tersebut harus menunjukkan isi dari variabel tersebut. Untuk fungsi, identiier menunjukkan apa yang dilakukan oleh fungsi 7 Algoritma dan Pemrograman 157 6. Dalam dunia pemrograman, ada beberapa nama variabel yang menjadi kebiasaan untuk dipakai, misalnya nama variabel untuk mengunjungi elemen tabel, dipakai indeks i, j, dan k. 7. Konstanta dinamai dengan huruf kapital. Misalnya, PI. 3 Tipe Data Komputer dapat mengolah data yang beragam. Pada dasarnya, data yang diolah oleh komputer, baik berupa numerik ataupun karakter, akan disimpan dalam bentuk biner. Oleh karena itu, nilai yang kalian masukkan dalam komputer pastilah akan disimpan dalam bentuk biner. Program perlu mengetahui bagaimana bilangan biner dibaca sehingga diperlukan suatu mekanisme untuk memberi tahu program tentang data yang kita simpan pada variabel tersebut. Hal ini diakomodir melalui tipe data. Suatu tipe data akan memiliki nama tipe, jenis data yang disimpan, dan rentang yang berbeda. Pada bahasa C, terdapat beberapa tipe data dasar yang dapat digunakan Tabel Tabel Beberapa Tipe Data Pada Bahasa C Beserta Ukuran Memori dan Rentang Nilainya Nama Tipe Jenis Data Ukuran Memori Rentang int Bilangan bulat 4 byte hingga short Bilangan bulat 2 byte -32768 hingga 32767 long Bilangan bulat 8 byte hingga loat Bilangan riil 4 byte hingga double Bilangan riil 8 byte hingga char Karakter* 1 byte -127 hingga 128 * Seperti yang termuat pada kode ASCII Perhatikan bahwa rentang yang diberikan memungkinkan nilai negatif hingga positif, atau disebut tipe data signed. Apabila kalian menambahkan kata kunci unsigned di depan tipe data, tipe data tersebut hanya akan menampung bilangan positif dengan rentang dari 0 hingga 2jumlah bit - 1. Praktik Baik Pemrograman Gunakan tipe data yang sesuai dengan kebutuhan kalian. Sebagai contoh, saat mengolah data usia manusia dalam satuan tahun, kalian cukup menggunakan tipe data short yang memerlukan memori lebih kecil. Ketika kalian nanti membuat program yang mengolah dan menyimpan data dengan jumlah yang sangat besar, praktik ini dapat membuat program kalian berjalan dengan kebutuhan memori yang lebih eisien. 158 Informatika SMA Kelas X 4 Variabel Pada matematika, kalian mengenal variabel sebagai sebuah wadah untuk menyimpan suatu nilai. Variabel pada program memiliki fungsi yang sama. Nilai yang diberikan pada sebuah variabel akan disimpan di memori komputer. Komputer memberikan alamat pada lokasi memori tersebut yang sulit diingat oleh manusia. Oleh karena itu, variabel diberikan nama simbolik yang mudah untuk diingat oleh kalian dengan menggunakan identiier. Dalam bahasa C, variabel perlu dideklarasikan dengan memberikan tipe data dan identiiers sebelum dapat digunakan. Deklarasi dapat dilakukan dengan menggunakan pernyataan berikut ; Pada saat deklarasi, variabel juga dapat diberikan nilai awal, misalnya dalam bentuk = ; Variabel dengan tipe yang sama dapat dideklarasikan secara ringkas seperti , ; Beberapa contoh untuk mendeklarasikan variabel dapat dilihat pada Tabel Tabel Beberapa Contoh Deklarasi Variabel Tipe Data Identiier Deklarasi Deklarasi dengan Nilai Awal int totalHarga int totalHarga; int totalHarga = 150000; short usia short usia; short usia = 29; long jumlahAtom long jumlahAtom; long jumlahAtom = 9123151252214; loat jarak loat jarak; loat jarak = double galat double galat; double galat = char huruf char huruf; char huruf = `a`; Deklarasi secara ringkas misalnya dapat dilakukan seperti berikut int panjang = 1, lebar = 2, luas; loat alas, sisi, volume; Tempat deklarasi variabel akan berpengaruh pada penggunaan variabel tersebut. Apabila deklarasi variabel dilakukan di dalam sebuah fungsi, variabel tersebut hanya dapat digunakan di dalam fungsi tersebut. Variabel seperti ini disebut variabel lokal. Apabila deklarasi dilakukan di luar fungsi, variabel tersebut akan dapat diakses di bagian program mana pun. Variabel ini disebut variabel 7 Algoritma dan Pemrograman 159 5 Konstanta Berbeda dengan variabel yang nilainya dapat berubah, konstanta tidak dapat diubah. Saat dideklarasikan, nilai dari konstanta diberikan dan tidak dapat diubah kembali. Apabila kalian memaksa mengubah konstanta, kompilator akan memberikan pesan kepada kalian. Penggunaan konstanta yang lazim ialah untuk menyimpan nilai konstan seperti pi π, rho ρ, dan konstanta lainnya yang lazim digunakan. Konstanta dapat dideklarasikan seperti variabel, dengan menambah kata kunci const di depan tipe data. Nilai awal harus langsung diberikan pada saat deklarasi. Misalnya, deklarasi konstanta pi dapat dilakukan sebagai berikut const loat PI = 6 Membaca dan Menulis Untuk dapat membantu manusia, program harus dilengkapi dengan kemampuan berkomunikasi. Ada banyak cara untuk berkomunikasi lewat antarmuka pengguna user interface, tetapi bentuk komunikasi dasar yang perlu kalian kuasai komunikasi lewat command line interface CLI. Lewat CLI, kalian dapat berkomunikasi dengan sebuah program menggunakan teks, dan program pun akan merespons kalian dengan menggunakan teks. Dengan kata lain, interaksi menggunakan CLI sangat bergantung pada kemampuan program untuk membaca data yang diberikan oleh pengguna dan menuliskan hasil pekerjaan. Agar dapat membaca dan menulis, program yang kalian buat perlu menggunakan header yang memuat fungsi masukan-keluaran standar menggunakan CLI. Dua fungsi utama yang dapat digunakan ialah scanf untuk membaca dan printf untuk menulis. Untuk lebih jelasnya, perhatikanlah contoh program berikut. Pada program baca tulis berikut, kalian akan memerintahkan komputer untuk membaca suatu bilangan dan menuliskannya kembali. /* Program Baca Tulis 3 */ include int main{ int bilangan; scanf"%d", &bilangan; printf"Bilangan yang dibaca bernilai "; printf"%d.\n", bilangan; return 0; } Pada baris keempat, program memanggil fungsi scanf untuk membaca masukan dari pengguna. Pada saat baris ini dieksekusi, program akan berhenti hingga pengguna memasukkan suatu bilangan dan menekan tombol Informatika SMA Kelas X Perhatikan bahwa pada baris tersebut, fungsi scanf menerima dua buah parameter, yaitu %d yang merupakan spesiikasi format format speciier dan &bilangan yang merupakan variabel untuk menampung nilai yang dibaca. Artinya, pada saat kalian menekan enter, program akan membaca nilai 10 yang kalian masukkan sebagai sebuah nilai bertipe data int, dan akan menyimpannya ke variabel bilangan. Di depan bilangan, terdapat tanda ampersand & yang wajib digunakan untuk melakukan pembacaan. Makna dari simbol & akan dijelaskan lebih detail pada kesempatan lain. Setiap tipe data memiliki spesiikasi format yang dapat digunakan untuk menjelaskan jenis data kepada program. Ingat, program membaca dan menyimpan semua data sebagai bilangan biner. Spesiikasi format yang digunakan untuk tipe data pada bahasa C dapat dilihat pada Tabel Tabel Spesiikasi Format pada Bahasa C Nama Tipe Spesiikasi Format Signed Spesiikasi Format Unsigned int %d %ud short %d %ud long %ld %uld loat %d %ud double %ld %uld char %c %uc Baris kelima dan keenam adalah pernyataan untuk menulis menggunakan fungsi printf. Pada baris kelima, kalian memerintahkan program untuk mencetak suatu kalimat yang diapit dengan tanda petik ganda. Pada baris keenam, kalian memerintahkan program untuk mencetak nilai dari variabel bilangan. Mirip seperti fungsi scanf, kalian menemukan adanya spesiikasi format dan variabel. Bedanya, di depan variabel, tidak perlu ada tanda ampersand. Saat dipanggil, program akan mencetak nilai dari variabel bilangan dengan format yang diberikan. Hanya saja, ada karakter baru yang muncul, yaitu \n. Ini adalah escape sequence yang digunakan untuk membuat garis baru, persis seperti ketika kalian menekan tombol enter pada aplikasi pengolah kata. Data yang ditulis setelah \n akan dicetak di baris yang baru oleh program. Ada beberapa escape sequence lain yang dapat digunakan, yaitu \n newline \t tab \v vertical tabBab 7 Algoritma dan Pemrograman 161 \f new page \b backspace \r carriage return \n newline \a beep, bell \\ garis miring \" tanda kutip ganda \` tanda kutip Tentunya, kalian juga menggunakan fungsi printf untuk mencetak tipe data lain, misalnya bilangan riil. Pada bilangan riil, kalian dapat membatasi jumlah digit di belakang desimal dengan memodiikasi spesiikasi format. Perhatian kode berikut yang akan menampilkan angka ke layar. /* Program Cetak Desimal */ include int main { loat x= printf"%.3f\n", x; return 0; Kalian juga dapat membaca atau menulis dua atau lebih nilai sekaligus seperti pada contoh berikut /* Program Cetak Bilangan Bulat dan Desimal */ include int main { int a, b; loat c; scanf"%d %d %f", &a, &b, &c; printf"%d %d %.3f\n", a, b, c; return 0; } Ketikkan kode tersebut, berikan masukan 10 10 dan perhatikan hasilnya. 162 Informatika SMA Kelas X Praktik Baik Pemrograman Seiring dengan makin kompleksnya program yang kalian buat, ada beberapa praktik baik yang dapat kalian lakukan. 1. Belajar menulis kode program memerlukan kemampuan bereksperimen dan mencoba hal baru. Karena keterbatasan halaman, buku ini tidak mungkin memberikan contoh selengkap mungkin untuk mencoba berbagai kemungkinan dalam menulis kode program. Oleh karena itu, kalian perlu melakukan eksperimen dan mencoba memodiikasi kode program yang telah diberikan. Kalian dapat membaca dokumentasi bahasa C yang dapat diakses di ketika menemukan suatu konsep ingin kalian pelajari lebih lanjut. 2. Jangan takut apabila program kalian gagal berjalan karena hal itu sangat wajar ketika belajar menulis kode program. Bahkan, pemrogram senior pun masih bisa melakukan kesalahan. Jadikan hal tersebut sebagai pemacu untuk mencari tahu hal yang membuat program kalian gagal berjalan. Dari situ, kalian akan menambah pengalaman dan di masa depan tidak akan kembali melakukan kesalahan yang sama. 3. Buat kode program kalian lebih mudah dibaca dengan menggunakan whitespace atau ruang kosong. Whitespace adalah istilah bagi karakter yang tidak tampak di layar contoh spasi, tab, dan newline. Whitespace dapat digunakan untuk membuat kode kalian lebih mudah dibaca dengan memberikan jarak pada kode. Jarak biasanya diberikan antara kumpulan baris kode yang memiliki peran berbeda. Contoh-contoh kode program yang diberikan pada unit ini disajikan dengan menggunakan whitespace yang dapat kalian adopsi. Semangat terus untuk bereksperimen! 3. Belajar Menulis Program Sambil Menyelesaikan Masalah Pada unit ini, aktivitas Ayo, Kita Berlatih diberikan sebagai bentuk latihan menyelesaikan suatu problem yang diberikan dengan pemrograman. Karena unit ini bersifat pengenalan pada kegiatan menulis kode program coding, problem yang diberikan pada kalian diberikan dalam bentuk spesiikasi yang telah terstruktur. Pada kenyataannya, ketika kalian membuat program untuk menyelesaikan suatu permasalahan nyata, kalian perlu membuat sendiri spesiikasi dari program yang akan dibuat. Kalian perlu menetapkan sendiri tujuan dari program, format masukan, serta format keluaran dari program. Aktivitas ini akan kalian lakukan di akhir unit, tetapi sekarang kalian dapat fokus membuat program berdasarkan spesiikasi yang telah diberikan. Selain itu, pada unit pratik lintas bidang PLB, kalian akan diajak untuk membuat sebuah program untuk menyelesaikan permasalahan di lingkungan tempat kalian 7 Algoritma dan Pemrograman 163 Pada setiap aktivitas, kalian akan diberikan setidaknya satu permasalahan untuk diselesaikan dengan menggunakan konsep yang telah diberikan pada buku. Bentuk permasalahan tersebut akan diberikan dengan struktur pada Tabel Tabel Spesiikasi Program yang Diberikan pada Problem Latihan Bagian Penjelasan Nomor dan Nama Problem Identitas dari permasalahan. Deskripsi Soal Memberikan konteks permasalahan yang perlu diketahui oleh siswa dalam membuat program. Format Masukan Memberikan susunan data yang diberikan pada program oleh pengguna, beserta ukuran dari data tersebut. Format Keluaran Memberikan susunan informasi yang akan dikeluarkan oleh program kepada pengguna. Contoh Masukan Memberikan contoh data yang dimasukkan. Contoh Keluaran Memberikan contoh informasi yang dikeluarkan program berdasarkan data yang dimasukkan. Bagian format keluaran dan format masukan menjadi penting karena autograder jika kalian menggunakan ini di kelas akan memeriksa kode program kalian dengan sangat ketat berdasarkan pasangan masukan-keluaran yang telah disiapkan, atau disebut kasus uji test case. Apabila program kalian membaca Sumber Dokumen Kemendikbud,2021164 Informatika SMA Kelas X atau menulis dengan format yang salah, auto-grader tidak akan menganggap program kalian benar. Untuk membantu kalian memahami format tersebut, satu atau lebih contoh masukan dan keluaran akan diberikan. Praktik Baik Pemrograman Problem akan memberikan beberapa kasus uji. Akan tetapi, bukan berarti kalian hanya perlu mengecek program kalian dengan kasus uji yang ada di buku. Kalian perlu menguji program kalian dengan menggunakan berbagai kasus uji, yang kalian buat sendiri. Beberapa problem dirancang dengan adanya jebakan yang dapat membuat program kalian gagal berjalan pada kasus tertentu. Misalnya, ketika masukan yang diberikan memiliki rentang yang besar atau adanya kondisi yang dapat menyebabkan program berhenti. Ayo, Kita Berlatih 3 Menulis dan Memperbaiki Program Problem 1 Belajar Baca Tulis Tingkat Kesulitan Deskripsi Soal Saatnya kalian berlatih untuk menulis kode program. Kalian akan membuat program untuk membaca tiga jenis bilangan dan mencetaknya kembali ke layar dengan format yang diberikan. Format Masukan Satu baris yang berisi tiga buah bilangan yang dipisahkan oleh spasi. Bilangan pertama merupakan bilangan bulat positif dengan nilai maksimum 10,000. Bilangan kedua merupakan bilangan riil positif dengan nilai maksimum Bilangan ketiga merupakan bilangan bulat positif dengan nilai maksimum 100. Format Keluaran Ada tiga baris. Baris pertama berisi bilangan pertama. Baris kedua berisi bilangan kedua dengan dua bilangan di belakang desimal. Baris ketiga berisi bilangan ketiga. Contoh Kasus Uji Masukan Keluaran 10 30 10 30 Problem 2 Bantulah Intan! Tingkat Kesulitan Intan ingin membuat program untuk mencetak kalimat berikut ke layer. Andi berkata, "Satu, dua, tiga!". Lalu, Andi pun menendang bola tersebut. Akan tetapi, Intan tidak berhasil mencetak kalimat tersebut ke layar dengan persis sama. Berikut ini program yang ditulis oleh 7 Algoritma dan Pemrograman 165 include int main{ printf"Andi berkata, "Satu, dua, tiga!"."; printf"Lalu, Andi pun menendang bola tersebut.\n"; return 0; } Perbaikilah program tersebut hingga berhasil mencetak kalimat yang benar! Problem 3 Salah Baca Tingkat Kesulitan Temukanlah kesalahan pada kode program berikut, kemudian perbaikilah kode berikut hingga dapat menghasilkan jawaban yang benar. include int main{ scanf"%c %c”, a, b; printf"Bilangan pertama %c\d", a; printf"Bilangan kedua %c\d", b; return 0; } Jawablah pertanyaan berikut dalam Lembar Releksi pada Buku Kerja. Jangan lupa mencatat kegiatan dalam Jurnal. 1. Pada bagian ini, kalian mendapatkan banyak konsep baru tentang program. Seperti apa perasaan kalian saat ini? 2. Apakah kalian bereksperimen dengan contoh-contoh yang diberikan di buku? Jika ya, pengetahuan paling menarik apa yang kalian temukan dari hasil eksperimen tersebut? 3. Pada saat memperbaiki program, apakah kalian dapat menemukan kesalahan pada program dengan mudah? Apakah kalian sebelumnya pernah melakukan kesalahan tersebut pada saat menulis program? 4. Bagaimana rencana kalian untuk menulis program setelah pertemuan ini? Apakah kalian sudah menentukan rencana berlatih secara mandiri agar dapat menulis program dengan lebih lancar dan terampil? 4. Ekspresi Ekspresi merupakan bagian yang tidak terpisahkan dari program. Di dalam matematika, ekspresi terdiri atas kombinasi beberapa operand dan operator yang memiliki makna. Kalian telah terbiasa menulis ekspresi pada matematika, 2 Pengurangan a - b - 1 - b Perkalian ab * a * b Pembagian a/b / a / b Modulo a mod b % a % b Penting Hati-hati dalam melakukan pembagian pada bahasa C. Bahasa C sangat sensitif terhadap tipe data sehingga pembagian dua buah bilangan bulat akan menghasilkan bilangan bulat. Sebagai contoh, 10/3 pada kode program C saat dieksekusi akan menghasilkan nilai 3. atau mengurangi nilai suatu variabel - dengan angka 1. Operator ini dapat diletakkan sebelum preix atau setelah postix operand. Pada penulisan dalam bentuk preix, perubahan nilai akan langsung dilakukan pada nilai variabel sebelum nilai variabel tersebut digunakan pada ekspresi. Sebagai contoh, setelah dua baris kode berikut dijalankan, nilai x akan bernilai 2 dan y akan bernilai 1.; d. Operator Logika, Relasional, dan Kesamaan Di samping operator aritmatika, juga dikenal operator logika, relasional, dan kesamaan. Ekspresi yang menggunakan operator ini akan memiliki nilai benar true atau dalam bahasa C bernilai tidak sama dengan 0 atau salah false atau bernilai 0. Operator pada kategori ini memiliki peran yang sama dengan operator logika, relasional, dan kesamaan pada mata pelajaran Matematika. Operator tersebut pada bahasa C dapat dilihat pada Tabel Tabel Operator Logika, Relasional, dan Kesamaan Pada Bahasa C Aljabar Bahasa C Contoh Makna Operator Kesamaan / Pertidaksamaan = == a == b Apakah nilai a sama dengan b? ≠ != a != b Apakah nilai a tidak sama dengan b? Operator Relasional > > a > b Apakah a lebih besar dari b? = a >= b Apakah a lebih besar atau sama dengan b? ≤ 0 && b > 0 Apakah a dan b lebih besar daripada 0? OR a > 0 b > 0 Apakah a atau b lebih besar daripada 0? NOT ! !a > 0 Apakah a tidak lebih besar daripada 0? e. Operator Kondisional Ternary Operator kondisional adalah operator ternary yang akan mengembalikan nilai berdasarkan suatu kondisi tertentu. Misalnya, kalian ingin mengembalikan nilai 1 jika suatu ekspresi a c 2 a >= b b != c 3 b == a && c > a 4 b >= a && b a Problem 5 Percantik Kode Program Ini! Tingkat Kesulitan Uh… Kalian baru saja mendapatkan tugas untuk mempelajari sebuah kode program. Akan tetapi, kode program yang kalian terima tidak ditulis dengan menerapkan praktik baik pemrograman yang telah kalian pelajari sehingga sangat sulit untuk dipahami! Apalagi ternyata, saat kalian jalankan, program ini tidak bisa berjalan dengan benar. include int main{ loat jr2; loat l; loat O; scanf"%f", jr2; l = O = 2* printf"%.2f %.2f\n",l, O; return 0; } Sebagai seorang siswa teladan yang telah mempelajari praktik baik pemrograman, perbaikilah program di atas ke dalam bentuk yang menerapkan praktik baik pemrograman. Kemudian, jika ada, perbaikilah program tersebut sehingga dapat berjalan dengan benar. Setelah itu, apakah kalian dapat menebak apa yang dilakukan oleh program tersebut?Bab 7 Algoritma dan Pemrograman 171 Jawablah pertanyaan berikut dalam Lembar Releksi pada Buku Kerja. Jangan lupa mencatat kegiatan dalam Jurnal. 1. Pada bagian ini, kalian mendapatkan banyak konsep baru tentang program. Seperti apa perasaan kalian saat ini? 2. Apakah kalian bereksperimen dengan contoh-contoh yang diberikan di buku? Jika ya, pengetahuan paling menarik apa yang kalian temukan dari hasil eksperimen tersebut? 3. Pada saat mengerjakan Problem 3, apakah kalian menyadari bahwa tipe data int tidak dapat menampung nilai hingga 10 miliar? Tipe data apa yang seharusnya digunakan? 4. Apa yang kalian rasakan saat memperbaiki program yang diberikan pada Problem 5? Apakah kalian makin menyadari pentingnya menerapkan praktik baik pemrograman? 5 Struktur Kontrol Keputusan Pernahkah kalian ingin pergi ke sebuah tempat tertentu dengan menggunakan moda transportasi? Keputusan menggunakan sebuah moda transportasi untuk bepergian biasanya tergantung pada sebuah keadaan tertentu. Misalnya, apabila kondisi hujan, maka kalian akan lebih memilih menggunakan mobil daripada menggunakan sepeda motor, namun apabila cuaca sedang cerah dan jarak yang ditempuh adalah dekat, maka kalian akan memilih menggunakan sepeda motor. Komputer merupakan alat yang membantu banyak aktivitas manusia. Pada dasarnya, komputer menjalankan perintah dari manusia. Perintah-perintah tersebut dituangkan secara tertulis dalam sebuah aturan tertentu yang disebut sebagai kode program yang bertujuan untuk mengatur bagaimana komputer harus bertindak untuk menyelesaikan sebuah permasalahan tertentu. Hal ini termasuk juga dalam proses pengambilan keputusan, seperti halnya dalam contoh pemilihan moda transportasi di atas. Pada bagian ini kita akan mempelajari bagaimana pengambilan keputusan dilakukan dalam sebuah program. Istilah yang sering digunakan untuk ini adalah kondisional. Apa itu kondisional? Secara sederhana, kondisional adalah sebuah bentuk pernyataan “jika ..., maka ...”. Pernyataan ini dibuat untuk mengekspresikan sebuah aksi berdasarkan sebuah kondisi tertentu. Sebagai contoh, ketika kita diminta untuk mengklasiikasikan sebuah bilangan merupakan bilangan ganjil atau genap, maka dapat kita membuat sebuah aturan sebagai berikut 1. Jika bilangan tersebut habis dibagi 2, maka bilangan tersebut termasuk bilangan genap. 2. Jika bilangan tersebut tidak habis dibagi 2, maka bilangan tersebut termasuk bilangan Informatika SMA Kelas X Proses tersebut merupakan salah satu ilustrasi dari sebuah pernyataan kondisional. Pada bahasa pemrograman C, ada beberapa jenis pernyataan kondisional, misalnya pernyataan if-else, pernyataan switch-case, dan pernyataan yang bersarang. a. Struktur Kontrol Keputusan If - Else Ada beberapa variasi penggunaan struktur kontrol keputusan If - Else. Bentuk umum dari pernyataan if adalah sebagai berikut. if kondisi { ; ; .... } Bagian kondisi dapat diisi dengan ekspresi yang menghasilkan nilai benar atau salah. Apabila kondisi menghasilkan nilai benar, semua pernyataan yang berada di dalam struktur kontrol keputusan tersebut akan dieksekusi oleh program. Sekarang, perhatikan program berikut, dan lakukanlah penelusuran untuk memeriksa keluaran dari program tersebut. /* Program Membandingkan Bilangan */ include int main{ int a = 1, b = 1; if a == b { printf"a sama dengan b \n"; } return 0; } Program tersebut menggunakan struktur keputusan pada baris 6-8. Ekspresi yang digunakan pada bagian kondisi ialah a==b, sedangkan pernyataan yang dieksekusi jika kondisi benar terdapat pada baris 7. /* Program Membandingkan Bilangan */ include int main{ int a = 1, b = 1; if a == b printf"a sama dengan b \n"; return 0; } Struktur kontrol keputusan dapat menambahkan blok else yang akan dieksekusi apabila kondisi bernilai salah. Bab 7 Algoritma dan Pemrograman 173 if kondisi ; else ; Misalnya, untuk mengecek apakah suatu bilangan merupakan bilangan ganjil atau genap, kalian dapat memanfaatkan struktur if-else sebagai berikut. /* Program Cek Ganjil-Genap */ include int main{ int bilangan; scanf"%d", &bilangan; if bilangan % 2 == 0 printf"Bilangan Genap\n"; else printf"Bilangan Ganjil\n"; return 0; } Apabila kondisi makin kompleks, struktur if-else ini dapat dikembangkan kembali menjadi if kondisi ke-1 else if kondisi ke-2 ..... else if kondisi ke-n else b. Struktur Kontrol Keputusan Switch-Case Struktur kontrol keputusan yang memiliki cabang banyak dapat dibuat lebih sederhana menggunakan struktur switch-case. Bentuk umum dari struktur ini ialah sebagai berikut. switchswitch_expr { case constant expr1 ; ; break; case constant expr2 ; ; break; ..... default ; ; break; }174 Informatika SMA Kelas X Sebagai contoh, perhatikan kode program berikut include int main { int bilangan, sisaPembagian; scanf"%d", &bilangan; sisaPembagian = bilangan % 4; switch sisaPembagian { case 0 printf"Habis Dibagi\n"; break; case 1 printf"Sisa Satu\n"; break; case 2 printf"Sisa Dua\n"; break; case 3 printf"Sisa Tiga\n"; break; } return 0; } Pada program di atas, struktur switch-case memeriksa nilai yang ada pada variabel sisa pembagian. Karena nilai tersebut merupakan sisa pembagian sebuah bilangan dengan empat, hanya ada empat kemungkinan nilai, yaitu 0 sampai 3. Setiap kemungkinan nilai tersebut diperiksa melalui empat buah struktur case yang akan mencetak kalimat ke layar yang sesuai dengan sisa pembagian yang diperoleh. c. Struktur Kontrol Keputusan Bersarang Sebuah struktur kontrol dapat menjadi bagian dari suatu struktur kontrol lain. Hal ini disebut nested atau tersarang. Pada contoh berikut, diberikan sebuah kode program yang memiliki struktur kontrol keputusan bersarang. Telusurilah program tersebut jika program diberi masukan 1000 dan 10. /* Program dengan IF tersarang */ include int main { int a, b; scanf"%d %d", &a, &b; if b!=0 if a/b>10 printf"1\n"; else printf"-1\n"; return 0; } Ayo, Kita Berlatih 5 Latihan Struktur Kontrol Keputusan Problem 1 Membagi Bilangan Tingkat Kesulitan Buatlah sebuah program dari Diagram Alir 3 Membagi bilangan yang tersedia pada bagian algoritma di awal unit ini. Bab 7 Algoritma dan Pemrograman 175 Problem 2 Bilangan Bulat Positif Tingkat Kesulitan Deskripsi Soal Buatlah program untuk mengecek apakah sebuah bilangan bulat adalah bilangan bulat positif. 1. Jika bilangan bulat tersebut merupakan bilangan bulat positif, maka cetaklah “Bilangan Bulat Positif ”. 2. Jika bilangan bulat tersebut bukan merupakan bilangan bulat positif, maka jangan cetak apa pun. Format Masukan Sebuah bilangan bulat n. Nilai n berada pada rentang -100 0; printf"Anda telah memasukkan bilangan bulat positif\n"; return 0; } d. Struktur Kontrol Perulangan Bersarang Sama seperti struktur kontrol keputusan, kalian dapat meletakkan struktur kontrol perulangan secara bersarang. Misalnya, pada contoh program berikut yang akan mencetak suatu pola berbentuk persegi menggunakan karakter asterisk *’. { printf"%d", j; if j==n printf"\n"; else printf" "; } } return 0; } Pada program tersebut, kalian dapat melihat bahwa nilai awal counter j akan berpengaruh pada nilai counter i. Saat dijalankan, keluaran dari program tersebut ialah184 Informatika SMA Kelas X 1 2 3 4 5 2 3 4 5 3 4 5 Tentunya, tidak ada batasan jumlah struktur yang kalian buat secara bersarang. Kalian pun juga dapat memadukan struktur perulangan dengan struktur keputusan sehingga menghasilkan program yang lebih kompleks. Ayo, Kita Berlatih 6 Latihan Struktur Kontrol Perulangan Problem 1 Menghitung Mundur Tingkat Kesulitan Buatlah kode program berdasarkan Diagram Alir 4 pada bagian algoritma untuk mencetak bilangan secara hitung mundur. Problem 2 Menghitung Rataan Tingkat Kesulitan Deskripsi Soal Buatlah sebuah program yang akan menghitung rata-rata dari n buah bilangan. Format Masukan Baris pertama berisi sebuah bilangan bulat positif n yang menunjukkan banyaknya data, sedangkan baris berikutnya berisi n buah bilangan bulat. Nilai n maksimal 1000, dan besarnya bilangan yang harus dihitung rata-ratanya berada pada rentang -1 miliar hingga 1 miliar. Format Keluaran Nilai rata-rata dari n buah bilangan masukan. Nilai rata-rata tersebut dituliskan sebagai bilangan riil dengan dua angka di belakang titik desimal. Contoh Kasus Uji Masukan Keluaran 10 20 30 Problem 3 Mencari Bilangan Terbesar Tingkat Kesulitan Buatlah kode program berdasarkan Diagram Alir 5 pada bagian algoritma untuk mencari bilangan terbesar dari sekumpulan bilangan yang diberikan. Problem 4 Membuat Mesin Sortir Kembang Kol Tingkat Kesulitan Deskripsi Soal Kalian akan membantu seorang petani kembang kol untuk menyortir kembang kol yang telah dipanen berdasarkan ukurannya. Kembang kol tersebut akan dikelompokkan menjadi berukuran kecil 200 gram per buah. Selama ini, petani tersebut menyortir kembang kol menggunakan tenaga manusia. Karena kalian telah memiliki kemampuan untuk membuat program
1. Seorang programmer yang baik harus mengetahui cara pembuatan program yang bagus. Berikan penjelasan tentang program yang bagus itu seperti apa! JAWAB Untuk bisa menghasilkan program yang baik memerlukan analisis yang baik pula, baik itu analisis sistem, stuktur data maupun analisis requirement, selin itu juga dipelukan persiapan-persiapan yang matang. Hal ini berlaku bagi siapapun, bahkan seorang programmer professional sekalipun. Sedangkan tahapan apas aja untuk membuat program yang baik akan saya jelaskan dibawah. Program memang sudah menjadi kebutuhan pokok bagi masyarakat IT. karena segala sesuatu yang dilakukan di dalam IT pastilah memerlukan program. Program yang paling sederhana sekalipun setidaknya memiliki 3 bagian Input – Masukan data. Proses – pemrosesan input. Output – keluaran program, kebutuhan yang kita harapkan. Dalam membuat program, pemrograman adalah pokok dari proses pembuatan program itu sendiri namun pemrograman bergantung dari pemahaman persoalan, analisis sistem, perencanaan-perencanaan dalam mendesain program itu sendiri. 2. Struktur data merupakan suatu cara untuk menyimpan dan mengatur sebuah data supaya dapat digunakan secara efektif dan efisien. Sebutkan dan jelaskan jenis-jenis struktur data secara umum. JAWAB Struktur Data Sederhana ArrayLarik Larik adalah struktur data statik yang menyimpan sekumpulan elemen yang bertipe sama. Setiap elemen diakses langsung melalui indeksnya. Indeks larik harus tipe data yang menyatakan keterurutan misalnya integer atau karakter. Banyaknya elemen larik harus sudah diketahui sebelum program dieksekusi. Tipe elemen larik dapat berupa tipe sederhana, tipe terstruktur, atau tipe larik lain. Nama lain array adalah Larik, tabel, atau vektor RecordCatatan ADT adalah definisi tipe dan sekumpulan primitif operasi dasar terhadap tipe tersebut. Tipe diterjemahkan menjadi tipe terdefinisi dalam bahasa pemrograman yang bersangkutan. Struktur Data Majemuk Linier StackTumpukan Stack tumpukan adalah list linier yang dikenali elemen puncaknya top, aturan penyisipan dan penghapusan elemennya tertentu penyisipan selalu dilakukan “di atas” top, penghapusan selalu dilakukan pada top. Karena aturan penyisipan dan penghapusan semacam itu, topadalah satu-satunya alamat tempat terjadi operasi. Elemen yang ditambahkan paling akhir akan menjadi elemen yang akan dihapus. Dikatakan bahwa elemen stack akan tersusun secara LIFO Last In First Out. QueueAntrian Queue antrian adalah list linier yang dikenali elemen pertama head dan elemen terakhirnya tail; Aturan penyisipan dan penghapusan elemennya disefinisikan sebagai penyisipan selalu dilakukan setelah elemen terakhir, penghapusan selalu dilakukan pada elemen pertama; Satu elemen dengan elemen lain dapat diakses melalui informasi next. List dan Multi-List Daftar List linier adalah sekumpulan elemen bertipe sama, yang mempunyai keterurutan tertentu, yang setiap elemennya terdiri dari 2 bagian. sebuah list linier dikenali dengan 1 elemen pertamanya, biasanya melalui alamat elemen pertama yang disebut first; 2 Alamat elemen berikutnya suksesor, jika kita mengetahui alamat sebuah elemen, yang dapat diakses melalui field next; 3 Setiap elemen mempunyai alamat, yaitu tempat elemen disimpan dapat diacu. Untuk mengacu sebuah elemen, alamat harus terdefinisi. Dengan alamat tersebut informasi yang tersimpan pada elemen list dapat diakses; 4 Elemen terakhirnya. Non-Linier Binary Tree Pohon Biner Sebuah pohon biner binary tree adalah himpunan terbatas yang mungkin kosong atau terdiri dari sebuah simpul yang disebut sebagai akar dan dua buah himpunan lain yang disjoint yang merupakan pohon biner yang disebut sebagai sub pohon kiri left dan sub pohon kanan right dari pohon biner tersebut. Pohon biner merupakan tipe yang sangat penting dari struktur data dan banyak dijumpai dalam berbagai terapan. Karakteristik yang dimiliki oleh pohon biner adalah bahwa setiap simpul paling banyak hanya memiliki dua buah anak, dan mungkin tidak punya anak. Istilah-istilah yang digunakan sama dengan istilah pada pohon secara umum. Graph Graf Graph merupakan struktur data yang paling umum. Jika struktur linier memungkinkan pendefinisian keterhubungan sekuensial antara entitas data, struktur data tree memungkinkan pendefinisian keterhubungan hirarkis, maka struktur graph memungkinkan pendefinisian keterhubungan tak terbatas antara entitas data. 3. Jelaskan beberapa aplikasi perangkat lunak komputer yang menggunakan struktur data sebagai dasar pengembangannya. JAWAB Antrian pada kasir pada sebuah bank. Ketika seorang pelanggan datang, akan menuju ke belakang dari antrian. Setiap pelanggan dilayani, antrian yang berada didepan akan maju. Jika kita ada di antrian kedua, maka kita akan menunggu antrian pertama melakukan prosesnya. Ketika selesai proses dari antrian pertama dia akan pergi, dan giliran kita untuk maju untuk melakukan proses. Begitu juga arti dari antrian dalam bahasan kali ini, jika pengantri pertama datang maka dia juga yang akan keluar pertama kali atau FIFOFirst In First Out dan FCFS First Come First Serve. Pembelian tiket kereta api, tiket pesa1at, tiket kapal laut, pembayaran tiket tol, pembayaran listrik, pembayaran air, dan lain sebagainya. Saat mengantri di loket untuk membeli tiket. Istilah yang cukup sering dipakaiseseorang masuk dalam sebuah antrian adalah DeQueue. Dalam suatu antrian, yang datang terlebih dahulu akan dilayani lebih dahulu. Istilah yang sering dipakai bila seseorang keluar dari antrian adalah deQueue. Antrian Mobil di pintu Tol. Ketika sebuah mobil datang, dari belakang akan menuju kedepandari antrian. Setelah mobil mendapatkan karcis tol, antrian yang berada didepan akan maju. Pada saat menempatkan data pada ujung tail dari queue disebut dengan Enqueue. Pada saat memindahkan data dari kepalahead sebuah queue disebut dengan dequeue. 4. Abstract Data Type ADT merupakan cara untuk melihat struktur data, dengan fokus pada apa yang dilakukan dan mengabaikan proses yang terdapat didalamnya saat menjalankan eksekusi. Buatlah algoritma yang menganalogikan abstraksi perangkat elektronik. JAWAB Program Tiket_Di_Bioskop Algoritma type tiketBioskop T array [1..4] of tiketBioskop type datapembeli D array [1..9999] datapembeli jumlah_pembeli integer pilihan integer; procedure lihatBioskop procedure beliTiket function buatKodePembelian T tiketBioskop -> string 5. Berikan penjelasan dan bandingkan beberapa pendekatan yang dapat digunakan untuk merancang sebuah algoritma. JAWAB Terdapat dua pendekatan secara umum yang bisa digunakan dalam merancang algoritma, yakni pendekatan secara Top-Down, dan pendekatan secara Bottom-up Top-Down pendekatan perancangan secara top-down dimulai dengan cara membagi algoritma yang kompleks menjadi satu atau lebih dari satu modul. Modul yang terbagi ini masih bisa diuraikan lagi menjadi beberapa sub-modal, dan proses ini dilakukan berulang-ulang hingga kompleksitas modul yang diinginkan terpenuhi. Metode perancangan top-down merupakan bentuk perbaikan secara bertahap yang dimulai dengan modul paling atas kemudian secara bertahap menambah modul lain yang dipanggil. Bottom-up pendekatan perancangan bottom-up merupakan kebalikan dari pendekatan top-down. Dimana dalam pendekatan ini dimulai dengan pembuatan modul paling dasar, kemudian dilanjutkan ke perancangan modul tingkat yang lebih tinggi. Modul yang memiliki tinggkat lebih tinggi diimplementasikan menggunakan operasi yang dilakukan ikeh modul tingkat lebih rendah. Dengan demikian sub-modul pada pendekatan ini dikelompokkan secara bersama untuk membentuk tingkat modul yang lebih tinggi. Semua modul tingkat yang lebih tinggi dikumpulkan bersama-sama untuk membentuk modul tingkat yang lebih tinggi. Proses ini diulang hingga desain algoritma yang lengkap terpenuhi. 6. Sebuah program dapat memiliki lebih satu algoritma. Rancang algoritma untuk program kalkulator yang dapat melakukan operasi penjumlahan dan pengurangan. JAWAB x,y integer hasil real operator char begin Inputx Inputoperator Inputy if operator = +’ {jika operator adalah +} then hasil ← x+y else if operator = - {jika operator adalah -} then hasil ← x-y endif endif {menampilkan penginputan oleh user} Outputx,operator,y {menampilkan hasil penghitungan} Outputhasil 7. Ukurlah kompleksitas algoritma yang Anda rancang menggunakan notasi Big O! JAWAB input x, y dan operator if operator = +’ then hasil ← x+y else operator = - then hasil ← x-y endif //output nilai hasiln Referensi
bagian persiapan dari sebuah algoritma disebut bagian