Kegiatan Belajar 4: KONSEP COMPUTATIONAL THINKING, ALGORITMA DAN PEMROGRAMAN DASAR A. Pendahuluan 1. Deskripsi Singkat Secara umum, tujuan kegiatan belajar 4 ini adalah untuk memberikan pengetahuan, keterampilan, dan sikap kepada guru atau peserta PPG tentang konsep Computational thinking untuk memecahkan persoalan kompleks yang membutuhkan dekomposisi, abstraksi dan representasi data serta solusi algoritmiknya. Secara khusus, tujuan kegiatan belajar 2 ini adalah agar peserta mampu: (1) menerapkan konsep computational thinking dan (2) mampu menjelaskan konsep logika dan algoritma pemrograman dasar. 2. Relevansi Pada era sekarang ini semakin tinggi tuntutan untuk bisa menggunakan teknologi dalam dunia pendidikan. Peranannya sangat penting untuk membantu guru dalam menjalankan tugas dan fungsinya. Sebagai seorang guru wajib untuk bisa menggunakan teknologi dalam bekerja. Seperti pembuatan rencana pelaksanaan pembelajaran. Guru dituntut untuk dapat membuat rencana pembelajaran tercetak, baik dalam bentuk softcopy, maupun hardcopy. Selain itu, guru juga harus dapat mengerjakan pekerjaan admisnistrasi sekolah. Agar pekerjaan yang terkait dengan perangkat computer, guru harus memahami konsep computational thinking. Barpikir bahwa hampir setiap pekerjaan yang terkait dengan keprofesional seorang guru, terutama TKI dapat diselesaikan dengan memanfaatkan perangkat komputer. Computational thinking sekarang ini sudah menjadi dasar dari pemikiran yang baru dan harus dipahami. Computational thinking tidak hanya diperuntukan bagi beberapa kalangan seperti seorang programmer, melainkan harus diterapkan pada setiap orang termaksud guru dan siswa. Computational thinking adalah sebuah proses berpikir yang sistematis dan logis. Peserta didik yang makin terbiasa dalam M1 KB4: Halaman 196 hal computational thinking, maka level kemampuan berpikirnya akan meningkat dalam banyak hal. Seperti dalam hal kemampuan mengidentifikasi data, menganalisis data, berpikir algoritma (sekumpulan langkah terurut), dan generalisasi solusi. Komputer dapat dimanfaatkan sedemikian rupa sesuai dengan kebutuhan penggunanya. Hal itu dapat dipenuhi dengan memanfaatkan program aplikasi yang tepat. Sementara itu, dasar dan kekuatan utama untuk dapat menggunakan dan mengembangkan aplikasi komputer tertentu adalah pemahaman tentang konsep algoritma dan pemrograman dasar. Oleh karena itu, pembelajaran tentang konsep computation thinking, algoritma, dan pemrograman dasar menjadi sangat penting dilatihkan bagi guru program PPG khususnya, dan guru serta peserta didik pada umumnya. 3. Panduan Belajar Proses pembelajaran untuk materi modul 1 kegiatan belajar 4 dapat berjalan dengan lancar bila Anda mengikuti langkah-langkah belajar sebagai berikut: a. Pahami dulu kegiatan penting dalam program pelatihan ini dengan memperhatikan isi capaian pembelajaran setiap kegiatan belajar b. Lakukan kajian terhadap setiap materi dalam kegiatan belajar, agar memudahkan proses pembelajaran. c. Pelajari dahulu kegiatan belajar 4 yang setiap akhir kegiatan belajar menyelesaikan tugas yang harus dikerjakan secara langsung d. Keberhasilan program pembelajaran ini tergantung dengan kesungguhan Anda dalam mengerjakan setiap tugas dalam kegiatan belajar e. Bila Anda menemukan kesulitan, silahkan hubungi instruktur pembimbing atau fasilitator yang mengajar modul ini. M1 KB4: Halaman 197 B. Inti 1. Capaian Pembelajaran Mata Kegiatan Setelah mengikuti seluruh tahapan pada kegiatan belajar ini, peserta menganalisis prinsip dasar pengetahuan bidang Informatika, sistem komputer dan teknologi informasi beserta aplikasinya 2. Pokok-Pokok Materi a. Konsep computational thinking b. Konsep logika dan algoritma pemrograman dasar. 3. Uraian Materi a. Computational Thinking Computational thinking atau yang sering disingkat CT adalah sebuah pendekatan dalam proses pembelajaran. CT memang memiliki peran penting dalam pengembangan aplikasi komputer, namun CT juga dapat digunakan untuk mendukung pemecahan masalah disemua disiplin ilmu, termasuk humaniora, matematika dan ilmu pengetahuan. Siswa yang belajar dimana CT diterapkan dalam kurikulum (proses pembelajaran) dapat mulai melihat hubungan antara mata pelajaran, serta antara kehidupan di dalam dengan di luar kelas. Berpikir komputasi adalah teknik pemecahan masalah yang sangat luas wilayah penerapannya. Tidak mengherankan bahwa memiliki kemampuan tersebut adalah sebuah keharusan bagi seseorang yang hidup pada abad ke dua puluh satu ini. Seperti juga bermain musik dan belajar bahasa asing, CT melatih otak untuk terbiasa berpikir secara logis, terstruktur dan kreatif. Istilah CT pertama kali diperkenalkan oleh Seymour Papert pada tahun 1980 dan 1996. Pada tahun 2014, pemerintah Inggris memasukkan materi pemrograman ke dalam kurikulum sekolah dasar dan menengah. Tujuannya bukan untuk mencetak pekerja software (programmer) secara massif tetapi untuk mengenalkan CT sejak dini kepada siswa. Pemerintah Inggris percaya CT dapat membuat siswa lebih cerdas dan membuat mereka lebih cepat memahami teknologi yang ada di sekitar mereka. Tidak hanya pemerintah inggris, pada tahun yang sama, lembaga M1 KB4: Halaman 198 non-profit dari Amerika Code.org menyelenggarakan beberapa acara untuk mempromosikan manfaat dari berlajar pemrograman. Mulai dari Computer Science Education Week untuk anak sekolah dan juga yang paling viral, Hour of Code. Program ini didukung oleh Bill Gates, Mark Zuckerberg, Jack Dorsey, Will.i.am dari Black Eyed Peas. Google pun terlibat untuk memfasilitasi guru untuk dapat menguasai CT yang merupakan salah satu kecakapan abad 21 yang harus dikuasai oleh peserta didik melalui kursus online. Pada banyak negara, CT mulai diintegrasikan ke dalam semua mata pelajaran. Sementara pada beberapa negara digunakan untuk membantu dan mempercepat pengintegrasian dan penetrasi ke arah CT. Mereka memasukan computer science sebagai sebuah mata pelajaran wajib dalam kurikulum nasional mereka. Problem based learning merupakan elemen penting dari science, technology, engineering, dan matematika (STEM) yang ada pada bidang pendidikan. Bahkan kini tidak hanya STEM tapi sudah berkembang menjadi STEAM. Tambahan huruf "A" mewakili "Arts/Seni". Karakteristik utama CT seperti merumuskan masalah dengan menguraikan masalah tersebut ke segmen yang lebih kecil dan lebih mudah dikelola. Strategi ini memungkinkan siswa untuk mengubah masalah yang kompleks menjadi beberapa prosedur atau langkah yang lebih mudah untuk dilaksanakan, dan juga menyediakan cara yang efisien untuk berpikir kreatif. Dalam pendidikan STEM, CT didefinisikan sebagai seperangkat keterampilan kognitif yang memungkinkan pendidik mengidentifikasi pola, memecahkan masalah yang kompleks menjadi langkah-langkah kecil. Mengatur dan membuat serangkaian langkah untuk memberikan solusi, dan membangun representasi data melalui simulasi dengan memanfaatkan teknologi informasi dan komunikasi. Teknologi informasi dan komunikasi adalah merupakan keahlian sekaligus alat, sedangkan computer science adalah sebuah mata pelajaran (disiplin ilmu) ilmu tersendiri dan programing sebagai alat untuk memahaminya. Lulusan computer science dapat berkarier pada banyak bidang, seperti farmasi, hukum, wirausaha, politik, dan segala jenis bidang ilmu pengetahuan serta engineering, sampai pada bidang seni. Kini computer science sebagai bagian dari M1 KB4: Halaman 199 STEM/STEAM sudah di laksanakan pada banyak negara sebagi sebuah mata pelajaran wajib, bagaimana dengan Indonesia? Diharapkan agar pemerintah, dalam hal ini Kementerian Pendidikan dan Kebudayaan dapat segera menerapkan computer science, sebagaimana mata pelajaran telah dimuat dalam kurikulum nasional. Muatan Kurikulum Nasional bertujuan untuk mempersiapkan peserta didik memasuki dan bersaing serta menjadi pemimpin di Abad 21 ini. Salah satu ciri yang diperlukan untuk menuju ke arah itu adalah sumber daya manusia manguasai ilmu komputer dan mampu berinovasi dengan kompetensinya itu. Apa itu CT? CT adalah metode berpikir yang dipakai programmer ketika menulis program. Metode tersebut antara lain: 1) Decomposition Kemampuan memecah data, proses atau masalah (kompleks) menjadi bagianbagian yang lebih kecil atau menjadi tugas-tugas dikelola. Misalnya memecah drive/direktori dalam yang mudah sebuah komputer berdasarkan komponen penyusunnya: File dan Direktory. 2) Pattern Recognition Kemampuan untuk melihat persamaan atau bahkan perbedaan pola, trend dan keteraturan dalam data yang akan digunakan dalam membuat prediksi dan penyajian data. Misalnya mengenali pola file dokumen, file sistem, file eksekusion atau struktur data/file. 3) Abstraksi Melakukan generalisasi dan mengidentifikasi prinsip-prinsip umum yang menghasilkan pola, trend dan keteraturan tersebut. Misalnya dengan menempatkan semua file sistem di folder Windows, file program di folder program file, file data/dokumen di folder Mydocument dan file pendukung di drive/direktori terpisah. 4) Algorithm Design Mengembangkan petunjuk pemecahan masalah yang sama secara step by step, langkah demi langkah, tahapan demi tahapan sehingga orang lain dapat menggunakan langkah/informasi tersebut untuk menyelesaikan permasalahan M1 KB4: Halaman 200 yang sama. Misalnya bagaimanakah langkah mencari file-file dokumen yang ada dalam sebuah komputer? Karakteristik berpikir komputasi adalah: a) Mampu memberikan pemecahan masalah menggunakan komputer atau perangkat lain. b) Mampu mengorganisasi dan menganalisa data. c) Mampu melakukan representasi data melalui abstraksi dengan suatu model atau simulasi. d) Mampu melakukan otomatisasi solusi melalui cara berpikir algoritma. e) Mampu melakukan identifikasi, analisa dan implementasi solusi dengan berbagai kombinasi langkah / cara dan sumber daya yang efisien dan efektif. f) Mampu melakukan generalisasi solusi untuk berbagai masalah yang berbeda. Gambar KB4.1 Computational Thinking Sumber: https://Fcallysto.computational-thinking-.com Contoh CT? Bagaimanakah pengorganisasian cara mengenali dan mengklasifikasikan organisme secara efektif dan efesien? 1) Decomposition Melihat dengan cara yang berbeda bagaimana organisme dapat diklasifikasikan. Misalnya, dengan membagi organisme tersebut berdasarkan habitatnya, M1 KB4: Halaman 201 organisme tersebut hidup di air atau organisme tersebut memiliki sayap untuk dapat terbang di udara. 2) Pattern Recognition Mengembangkan metode untuk mengklasifikasikan dengan efesien beberapa organisme berdasarkan karakteristik bersama. 3) Abstraksi Menentukan berapa lama waktu yang dibutuhkan untuk mengklasifikasikan beberapa organisme berdasarkan metode ini dapat membantu Anda untuk memprediksi berapa banyak pertanyaan atau klasifikasi yang dibutuhkan untuk mengklasifikasikan semua organisme yang diketahui. 4) Algorithm Design Pada bagian ini Anda tidak mengembangkan algoritma, tetapi Anda mungkin berpikir cara lain yang lebih efisien untuk mengklasifikasikan organisme di luar metode yang digunakan dalam kegiatan ini. Berapakah banyak pertanyaan yang harus anda ajukan kepada saya, sehingga Anda mampu menebak dengan yakin spesis / organisme yang terpikirkan oleh saya yang ada di bumi ini? Bisa saja anda menjawab 10, 12, 20 atau 25 pertanyaan. Seperti permainan “Siapa Dia?”. Hal tersebut merupakan tantangan menarik namun bisa jadi sulit. Sebenarnya tantangan tersebut relatif mudah untuk dijawab ketika anda menerapkan decomposition, yakni memecah data/proses/masalah menjadi data/proses/masalah yang lebih kecil. Misalnya, organisme manakah yang ada di pikiran saya, coba tebak? [caption caption="CT"][/caption] Apakah organisme itu memiliki kaki? Apakah organisme itu memiliki sayap? Apakah organisme itu kulit/bulunya berpola garis? Anda dapat menebak nama organisme yang ada di pikiran saya dengan mengajukan hanya 3 (tiga) pertanyaan tersebut dari 8 kemungkinan jawaban. Jawabannya adalah Harimau. Berapakah banyak pertanyaan yang diperlukan untuk menebak organisme mana yang saya pikirkan dari 16 organisme, jika setiap pertanyaan dapat M1 KB4: Halaman 202 membuang/menyingkirkan setengah pilihan yang ada? Jika setiap pertanyaan dapat menyingkirkan/membuang setengah dari 16 organisme maka: Pertanyaan pertama membuang 8 organisme, tersisa 8 organisme Pertanyaan kedua membuang 4 organisme, tersisa 4 organisme Pertanyaan ketiga membuang 2 organisme, tersisa 2 organisme Pertanyaan pertama membuang 1 organisme, tersisa 1 organisme Jadi untuk memilih 1 dari 16 organisme diperlukan 4 pertanyaan. Selanjutnya berapakah pertanyaan yang diperlukan jika terdapat 32 organisme? Ya jawabannya adalah 5. Berikut Pola yang terbentuk : 8 kemungkinannya 2 * 2 * 2 = 8 16 kemungkinannya 2 * 2 * 2 * 2 = 16 32 kemungkinannya 2 * 2 * 2 * 2 * 2 = 32 Ketika Anda melihat data dari beberapa percobaan tersebut akan sangat membantu untuk mengenali jika ada pola tertentu/trend untuk menentukan apa penyebab atau prinsip apa yang digunakan untuk menguraikan atau memacah masalah jika diasumsikan bahwa ada sekitar 8 miliar spesies di bumi? Berapa banyak pertanyaan yang diperlukan, jika setiap pertanyaan menghilangkan sekitar setengah dari pilihan? Dapatkah anda menebak spesies yang saya pikirkan? Ini akan membutuhkan sekitar 33 pertanyaan, yang tampaknya seperti jumlah yang relatif kecil pertanyaan untuk dapat menebak dengan benar dari miliaran kemungkinan. 20 pertanyaan permainan berpotensi bisa menebak dari lebih dari 1 juta kemungkinan, yang harus lebih dari cukup untuk sebagian besar benda. Anda mungkin sudah tahu sekarang bahwa Anda dapat mengetahui berapa banyak pertanyaan yang Anda butuhkan dengan menghitung log2 dari semua kemungkinan atau dengan menghitung apa kekuatan 2 diperlukan untuk sama dengan jumlah kemungkinan: 24 = 16, 25 = 32,. .., 233 ≈ 8,5 miliar. Kemampuan untuk menggeneralisasi pola yang ditemukan melalui eksperimen menjadi terurai atau terhimpun, dan mengikuti aturan, persamaan, atau hukum tertentu, serta bersifat umum dikenal sebagai abstraksi. M1 KB4: Halaman 203 Contoh CT: Bagaimanakah membuat brownis yang lezat sebanyak 100 box dengan efektif dan efesien? 1) Decomposition a) Misalnya memecah struktur komponen dasar pembentuk brownis menjadi tepung, telur, gula, mentega, coklat, susu, keju, backing powder, air. b) Misalnya memecah proses dasar pembuatan browniz menjadi penyiapan bahan, pencampuran adonan, pengembangan adonan (emulsi), memasak/memanggang, toping/rias, packing/pengepakan 2) Pattern Recognition a) Misalnya mengenali pola dan proses pembuatan 1 box kue brownis yang dimulai dari tahap persiapan hingga pengemasan memerlukan waktu 60 menit dengan menggunakan 1 unit oven. 60 menit = 1 box atau 1 jam = 1 box 3) Abstraksi a) Misalnya dengan melihat dan mengidentifikasi pola pembuatan brownis secara umum. Jika dalam 1 jam dengan 1 unit pemanggang diperoleh 1 box brownis maka perlu 100 jam (4,16 hari) untuk menghasilkan 100 box brownis. Tentu tidak efektif dan efesien. Karena proses pembuatan brownis ini merupakan proses yang berulang maka kita dapat melakukan generalisasi bahwa proses ini tidah harus menunggu semua proses selesai baru dilakukan dari awal. Dengan kata lain, saat kue brownis sudah masuk oven, kita dapat melakukan proses pembuatan adonan kembali tanpa harus menunggu hingga semua proses dilaksanakan. Dengan demikian 60 menit >= 3 Box atau 1 jam >= 3 Box. Sehingga untuk menghasilkan 100 box brownis dengan 1 unit oven diperlukan waktu 33 jam atau 1,3 hari. Pertanyaan selanjutnya bagaimana jika kita sediakan 2 buah oven, maka jawabanya kita hanya memerlukan waktu 16,5 jam untuk menghasilkan 100 box brownis. Bagaimana bentuk persamaan matematikanya? Bagaimana nilai ekonomis? Bagaimana suhu oven yang paling baik? Bahan (kimia/alami) pengembang adonan yang paling baik dan efektif? M1 KB4: Halaman 204 4) Algorithm Design a) Misalnya langkah dan tahapan membuat kue brownis yang paling efektif dan efesien sesuai dengan pola dan abstraksi sebelumnya hingga tahap pengemasan, diurutkan secara lengkap, terukur dan kreatif. b. Algoritma Ditinjau dari asal usul katanya, kata Algoritma mempunyai sejarah yang unik. Orang hanya menemukan kata Algorism yang berarti proses menghitung dengan angka arab. Anda dikatakan Algorist jika anda menghitung menggunakan angka Arab. Para ahli bahasa berusaha menemukan asal kata in i namun hasilnya kurang memuaskan. akhirnya para ahli sejarah matematika menemukan asal kata tersebut yang berasal dari nama penulis buku arab yang terkenal yaitu Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi. Al-Khuwarizmi dibaca orang barat menjadi Algorism. Al-Khuwarizmi menulis buku yang berjudul Kitab Al Jabar Wal-Muqabala yang artinya “Buku pemugaran dan pengurangan” (The book of restoration and reduction). Berdasarkan judul buku itu diperoleh akar kata “Aljabar” (Algebra). Perubahan kata dari Algorism menjadi Algorithm muncul karena kata Algorism sering dikelirukan dengan Arithmetic, sehingga akhiran –sm berubah menjadi –thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa. Maka lambat laun kata Algorithm berangsurangsur dipakai sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna kata aslinya. Dalam bahasa Indonesia, kata Algorithm diserap menjadi Algoritma. Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis. Algoritma yang dapat menyelesaikan suatu permasalahan dalam waktu yang singkat memiliki tingkat kerumitan yang rendah, sementara algoritma yang membutuhkan waktu lama untuk menyelesaikan suatu masalah membutuhkan tingkat kerumitan yang tinggi. M1 KB4: Halaman 205 1) Struktur Algortima Perhatikan algoritma sederhana berikut: Jika seseorang ingin mengirim surat kepada kenalannya di tempat lain, langkah yang harus dilakukan adalah: a) Menyiapkan Peralatan Tulis b) Menulis surat c) Surat dimasukkan ke dalam amplop tertutup d) Amplop ditempeli perangko secukupnya. e) Pergi ke Kantor Pos terdekat untuk mengirimkannya Algoritma menghitung luas persegi panjang: a) Masukkan panjang (P) b) Masukkan lebar (L) c) Luas P * L d) Tulis Luas Pembuatan algoritma mempunyai banyak keuntungan di antaranya: a) Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrograman manapun, artinya penulisan algoritma independen dari bahasa pemrograman dan komputer yang melaksanakannya. b) Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman. c) Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karena algoritmanya sama. Beberapa hal yang perlu diperhatikan dalam membuat algoritma: a) Teks algoritma berisi deskripsi langkah -langkah penyelesaian masalah.Deskripsi tersebut dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan dipahami. b) Tidak ada notasi yang baku dalam penulisan teks algoritma seperti notasi Bahasa pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi algoritmik. M1 KB4: Halaman 206 c) Setiap orang dapat membuat aturan penulisan dan notasi algoritmik sendiri. Hal ini dikarenakan teks algoritma tidak sama dengan teks program. Namun, supaya notasi algoritmik mudah ditranslasikan ke dalam notasi bahasa pemrograman tertentu, maka sebaiknya notasi algoritmik tersebut berkorespondensi dengan notasi bahasa pemrograman secara umum. d) Notasi algoritmik bukan notasi bahasa pemrograman, karena itu pseudocode dalam notasi algoritmik tidak dapat dijalankan oleh komputer. Agar dapat dijalankan oleh komputer, pseudocode dalam notasi algoritmik harus ditranslasikan atau diterjemahkan ke dalam notasi bahasa pemrograman yang dipilih. Perlu diingat bahwa orang yang menulis program sangat terikat dalam aturan tata bahasanya dan spesifikasi mesin yang menjalannya. Pseudocode adalah kode yang mirip dengan instruksi kode program sebenarnya. e) Algoritma sebenarnya digunakan untuk membantu kita dalam mengkonversikan suatu permasalahan ke dalam bahasa pemrograman f) Algoritma merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh komputer, algoritma harus ditranslasikan ke dalam notasi bahasa pemrograman Perhatikan algoritma sederhana berikut: Algoritma menghitung luas segitiga 1. Start 2. Baca data alas dan tinggi. 3. Luas adalah alas kali tinggi kali 0.5 4. Tampilkan Luas 5. Stop Penjelasan: Algoritma di atas adalah algoritma yang sangat sederhana, hanya ada lima langkah. Pada algoritma ini tidak dijumpai perulangan ataupun pemilihan. Semua langkah dilakukan hanya satu kali. Sekilas algoritma di atas benar, namun apabila dicermati maka algoritma ini mengandung kesalahan yang mendasar, yaitu tidak ada pembatasan pada nilai data untuk alas dan tinggi. M1 KB4: Halaman 207 Hasil perbaikan algoritma perhitungan luas segitiga 1. Start 2. Baca data alas dan tinggi. 3. Periksa data alas dan tinggi, jika nilai data alas dan tinggi lebih besar dari nol maka lanjutkan ke langkah ke 4 jika tidak maka stop 4. Luas adalah alas kali tinggi kali 0.5 5. Tampilkan Luas 6. Stop Dari penjelasan di atas dapat diambil kesimpulan pokok tentang algoritma. Pertama, algoritma harus benar. Kedua algoritma harus berhenti, dan setelah berhenti, algoritma memberikan hasil yang benar. Contoh: Algoritma Berangkat Sekolah Mulai Bangun dari tempat tidur Mandi Pagi Sarapan Pagi Pergi Ke Sekolah Cari Ruang Kelas Masuk kelas untuk Belajar Selesai Beda Algoritma dan Program? Program adalah kumpulan pernyataan komputer, sedangkan metode dan tahapan sistematis dalam program adalah algoritma. Program ditulis dengan menggunakan bahasa pemrograman. Jadi bisa disebut bahwa program adalah suatu implementasi dari bahasa pemrograman. Program = Algoritma + Bahasa (Struktur Data) 2) Penerjemah Bahasa Pemrograman Untuk menterjemahkan bahasa pemrograman yang kita tulis maka diperlukan Compiler dan interpreter. Compiler adalah suatu program yang menterjemahkan bahasa program (Source code) ke dalam bahasa obyek (object code) secara keseluruhan program. Interpreter berbeda dengan Compiler, interpreter menganalisis dan mengeksekusi setiap baris dari program secara M1 KB4: Halaman 208 keseluruhan. Keuntungan dari interpreter adalah dalam eksekusi yang bisa dilakukan dengan segera. Tanpa melalui tahap kompilasi, untuk alas an ini interpreter digunakan pada saat pembuatan program berskala besar. Tabel M1 KB4. 1 Perbedaan compiler dan interpreter Compiler Interpreter Menterjemahkan secara keseluruhan Menterjemahkan Instruksi per instruksi Bila terjadi kesalahan kompilasi maka source program harus diperbaiki dan dikompilasi ulang Bila terjadi kesalahan interprestasi dapat diperbaiki Dihasilkan Object program Tidak dihasilkan obyek program Dihasilkan Executable program Proses pekerjaan program lebih cepat Source program tidak dipergunakan hanya bila untuk perbaikan saja Keamanan dari program lebih terjamin Tidak dihasilkan Executable program Proses pekerjaan program lebih lambat Source program terus dipergunakan Keamanan dari program kurang terjamin 3) Jenis-Jenis Bahasa Pemrograman a) Bahasa Pemrograman Tingkat rendah (Bahasa mesin, Biner) b) Bahasa Pemrograman Tingkat tinggi Contoh-contoh Bahasa Pemrograman yang ada: 1. Prosedural: Algol, Pascal, Fortran, Basic, Cobol, C 2. Fungsional: LOGO, APL, LISP 3. Deklaratif: Prolog Object oriented murni: Smalltalk, Eifel, Java, PHP M1 KB4: Halaman 209 Cara penulisan algortima Ada tiga cara penulisan algoritma, yaitu: a) Structured English (SE) SE merupakan alat yang cukup baik untuk menggambarkan suatu algoritma. Dasar dari SE adalah Bahasa Inggris, namun kita dapat memodifikasi dengan Bahasa Indonesia sehingga kita boleh menyebutnya sebagai Structured Indonesian (SI). ”SE atau SI lebih tepat untuk menggambarkan suatu algoritma yang akan dikomunikasikan kepada pemakai perangkat lunak” b) Pseudocode Pseudocode adalah kode yang mirip dengan instruksi kode program sebenarnya. Pseudocode didasarkan pada bahasa pemrograman yang sesungguhnya seperti BASIC, FORTRAN atau PASCAL. Pseudocode yang berbasis bahasa PASCAL merupakan pseudocode yang sering digunakan. “Pseudo berarti imitasi atau tiruan atau menyerupai, sedangkan code menunjuk pada kode program” Contoh Pseudocode: 1. Start 2. READ alas, tinggi 3. Luas = 0.5 * alas * tinggi 4. PRINT Luas 5. Stop Pada Contoh diatas tampak bahwa algoritma sudah sangat mirip dengan bahasa BASIC. Pernyataan seperti READ dan PRINT merupakan keyword yang ada pada bahasa BASIC yang masing-masing menggantikan kata “baca data” dan “tampilkan”. Dengan menggunakan pseudocode seperti di atas maka proses penterjemahan dari algoritma ke kode program menjadi lebih mudah. M1 KB4: Halaman 210 4) Membuat Alur Logika Pemograman a) Penyajian atau Penulisan Algoritma Penyajian algoritma secara garis besar bisa dalam 2 bentuk penyajian yaitu tulisan dan gambar. Algoritma yang disajikan dengan tulisan yaitu dengan struktur bahasa tertentu (misalnya bahasa Indonesia atau bahasa Inggris) dan pseudocode. Pseudocode adalah kode yang mirip dengan kode pemrograman yang sebenarnya seperti Pascal, atau C, sehingga lebih tepat digunakan untuk menggambarkan algoritma yang akan dikomunikasikan kepada pemrogram. Sedangkan algoritma disajikan dengan gambar, yaitu dengan Flowchart b) Flowchart (Diagram Alir) Flowchart atau bagan alir adalah skema/bagan (chart) yang menunjukkan aliran (flow) di dalam suatu program secara logika. Flowchart merupakan alat yang banyak digunakan untuk menggambarkan algoritma dalam bentuk notasinotasi tertentu. Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar proses beserta pernyataannya. Gambaran ini dinyatakan dengan simbol. Dengan demikian setiap simbol menggambarkan proses tertentu. Sedangkan antara proses digambarkan dengan garis penghubung. Dengan menggunakan flowchart akan memudahkan kita untuk melakukan pengecekan bagian- bagian yang terlupakan dalam analisis masalah. Di samping itu flowchart juga berguna sebagai fasilitas untuk berkomunikasi antara pemrogram yang bekerja dalam tim suatu proyek. Walaupun tidak ada kaidahkaidah yang baku dalam penyusunan flowchart, namun ada beberapa anjuran: (1) Hindari pengulangan proses yang tidak perlu dan logika yang berbelit sehingga jalannya proses menjadi singkat. (2) Jalannya proses digambarkan dari atas ke bawah dan diberikan tanda panah untuk memperjelas. (3) Sebuah flowchart diawali dari satu titik START dan diakhiri dengan END. M1 KB4: Halaman 211 Berikut merupakan simbol-simbol bagan alir program (flowchart) dalam dunia pemrograman: (1) Notasi membuat algoritma sederhana untuk menyelesaikan permasalahan menggunakan bahasa natural, flowchart dan pseudocode (2) Notasi ini disebut Data yang digunakan untuk mewakili data input atau output atau menyatakan operasi pemasukan data dan pencetakan hasil (3) Notasi ini disebut Process yang digunakan untuk mewakili suatu proses. (4) Notasi ini disebut Decision yang digunakan untuk suatu pemilihan, penyeleksian kondisi di dalam suatu program (5) Notasi ini disebut Preparation yang digunakan untuk memberi nilai awal, nilai akhir, penambahan/pengurangan bagi suatu variabel counter. (6) Notasi ini disebut Predefined Process yang digunakan untuk menunjukkan suatu operasi yang rinciannya ditunjukkan ditempat lain (prosedur, sub- prosedur, fungsi) (7) Notasi ini disebut Connector yang digunakan untuk menunjukkan sambungan dari flowchart yang terputus di halaman yang sama atau halaman berikutnya. M1 KB4: Halaman 212 (8) Notasi ini disebut Arrow yang digunakan untuk menunjukkan arus data atau aliran data dari proses satu ke proses lainnya. Contoh program flowchart Bagan alir logika program Bagan alir program komputer terinci 5) Struktur Dasar Algoritma Algoritma berisi langkah-langkah penyelesaian suatu masalah. Langkahlangkah tersebut dapat berupa runtunan aksi (sequence), pemilihan aksi (selection), pengulangan aksi (iteration) atau kombinasi dari ketiganya. Jadi struktur dasar pembangunan algoritma ada tiga, yaitu: M1 KB4: Halaman 213 (1) Struktur Runtunan/Beruntun: Digunakan untuk program yang pernyataannya sequential atau urutan. Contoh: (2) Struktur Pemilihan/Percabangan: Digunakan untuk program yang menggunakan pemilihan atau penyeleksian kondisi. Contoh Struktur percabangan untuk masalah batasan umur. Sebuah aturan untuk menonton sebuah film tertentu adalah sebagai berikut, jika usia penonton lebih dari 17 tahun maka penonton diperbolehkan dan apabila kurang dari 17 tahun maka penonton tidak diperbolehkan nonton. Buatlah flowchart untuk permasalahan tersebut. Penyelesaian: Permasalahan diatas merupakan ciri permasalahan yang menggunakan struktur percabangan. Hal ini ditandai dengan adanya pernyataan jika ..maka ...(atau If ... Then dalam Bahasa Inggris. Bagan alir logika (Flowchart) penyelesaian masalah nonton film. M1 KB4: Halaman 214 (3) Struktur Perulangan: Digunakan untuk program yang pernyataannya akan dieksekusi berulang-ulang. Struktur pengulangan terdiri dari dua bagian: (a) Kondisi pengulangan, yaitu syarat yang harus dipenuhi untuk melaksanakan pengulangan. Syarat ini biasanya dinyatakan dalam ekspresi Boolean yang harus diuji apakah bernilai benar (true) atau salah (false) (b) Badan pengulangan (loop body), yaitu satu atau lebih instruksi yang akan diulang. Contoh bagan alir logika (flowchart) untuk mencetak pernyataan sebanyak 100 kali. M1 KB4: Halaman 215 Pengulangan dengan menggunakan For, merupakan salah teknik pengulangan yang paling tua dalam bahasa pemrograman. Hampir semua bahasa pemrograman menyediakan metode ini, meskipun sintaksnya mungkin berbeda. Pada struktur For kita harus tahu terlebih dahulu seberapa banyak badan loop akan diulang. Struktur ini menggunakan sebuah variable yang biasa disebut sebagai loop s counter, yang nilainya akan naik atau turun selama proses pengulangan. Contoh: Diketahui sebuah himpunan A yang beranggotakan bilangan 1, 3, 5,,,,19. Buatlah flowchart untuk mencetak anggota himpunan tersebut. Penyelesaian: Pada contoh ini, kita mencoba menentukan hasil dari sebuah flowchart. Bagaimana menurut kalian jawabannya? Marilah kita uraikan jalannya fowchart tersebut. Pada flowchart, setelah Start, kita meletakkan satu proses yang berisi pernyataan A = 1. Bagian inilah yang disebut inisialisasi. Kita memberi nilai awal untuk A = 1. Variabel counter-nya adalah X dengan nilai awal 1 dan nilai akhir 10, tanpa increment (atau secara default increment-nya adalah 1). Ketika masuk ke badan loop untuk pertama kali maka akan dicetak langsung nilai variabel A. Nilai variabel A masih sama dengan 1. Kemudian proses berikutnya adalah pernyataan A = A + 2. Pernyataan ini mungkin agak aneh, tap i ini adalah sesuatu yang pemrograman. Arti dari pernyataan ini adalah gantilah nilai A yang lama dengan hasil penjumlah nilai A lama ditambah 2. Sehingga A akan bernilai 3. Kemudian dilakukan pengulangan yang ke-dua. Pada kondisi ini nilai A adalah 3, sehingga yang tercetak oleh perintah print adalah 3. Baru kemudian nilai A kita ganti dengan penjumlahan A + 2. Nilai A baru adalah 5. Demikian seterusnya. Sehingga output dari flowchart ini adalah 1,3, 5, 7,,,,19. (a) Struktur pengulangan dengan While Pada pengulangan dengan For, banyaknya pengulangan diketahui dengan pasti karena nilai awal (start) dan nilai akhir (end) sudah ditentukan diawal pengulangan. Bagaimana jika kita tidak tahu pasti harus berapa kali mengulang? Pengulangan dengan While merupakan jawaban dari permasalahan ini. Seperti M1 KB4: Halaman 216 halnya For, struktur pengulangan dengan While juga merupakan struktur yang didukung oleh hampir semua bahasa pemrograman namun dengan sintaks yang berbeda. Struktur While akan mengulang pernyataan pada badan loop sepanjang kodisi pada While bernilai benar. Dalam artian kita tidak perlu tahu pasti berapa kali diulang. Yang penting sepanjang kondisi pada While dipenuhi maka pernyataan pada badan loop akan diulang. Penyelesaian: Perhatikan Gambar. bisakah kalian menentukan hasil dari flowchart tersebut? Perhatikan tahapan eksekusi flowchart berikut ini. (a) Pada flowchart ini ada dua variabel yang kita gunakan yaitu A dan B. Kedua variabel tersebut kita inisialisasi nilai awalnya (A = 1 dan B = 0) sebelum proses loop terjadi. Variabel A adalah variabel counter. (b) Pada simbol decision, nilai A akan diperiksa apakah memenuhi kondisi (<b10). Jika Ya maka perintah berikutnya dieksekusi, jika tidak maka program akan berhenti. Pada awal eksekusi ini kondisi akan terpenuhi karena nilai A=1. (c) Jalankan perintah Print B. M1 KB4: Halaman 217 (d) Nilai variabel A kemudian diganti dengan nilai A lama (1) ditambah 2. Sehingga nilai variabel A baru adalah 3. Sedangkan nilai variabel B = 9 (hasil perkalian A = 3). (e) Program akan berputar kembali untuk memeriksa apakah nilai variabel A masih lebih kecil dari 10. Pada kondisi ini nilai A = 3, sehingga kondisi masih terpenuhi. Kemudian langkah berulang ke langkah ke 3. Begitu seterusnya sampai nilai variabel A tidak lagi memenuhi syarat kurang dari 10. 4. Forum Diskusi a. CT belum banyak dikenal dalam dunia pendidikan di Indonesia, padahal CT merupakan salah satu metode untuk menyelesaikan (problem solving) dengan menerapkan teknik-teknik dalam bidang informatika. Menurut anda, bagaimana menerapkan CT dalam pembelajaran disekolah? C. Kesimpulan 1. Rangkuman a. CT merumuskan masalah dengan menguraikan masalah tersebut ke segmen yang lebih kecil dan lebih mudah dikelola. Strategi ini memungkinkan siswa untuk mengubah masalah yang kompleks menjadi beberapa prosedur atau langkah yang tidak hanya lebih mudah untuk dilaksanakan, akan tetapi juga menyediakan cara yang efisien untuk berpikir kreatif. b. Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis. c. Kata logis merupakan kata kunci dalam Algoritma. Langkah-langkah dalam Algoritmaharus logis dan harus dapat ditentukan bernilai salah atau benar. d. Bahasa pemrograman merupakan notasi yang dipergunakan untuk mendeskripsikan proses komputasi dalam format yang dapat dibaca oleh komputer dan manusia. M1 KB4: Halaman 218 2. Tes Formatif 1. Seperangkat keterampilan kognitif yang memungkinkan pendidik mengidentifikasi pola, memecahkan masalah kompleks menjadi langkahlangkah kecil disebut… a. Perangkat pembelajaran b. Kognitif c. Berpikir komputasi d. Alat pembelajaran e. Bahan pembelajaran 2. Kemampuan untuk melihat persamaan atau bahkan perbedaan pola disebut… a. Pattern Recognition b. Abstraksi c. Computational thinking d. Algorithm Design e. Decomposition 3. Karakteristik computational thinking, kecuali… a. Mampu melakukan generalisasi solusi b. Mampu melakukan identifikasi, c. Mampu melakukan representasi data d. Mampu memberikan pemecahan masalah e. Mampu berorganisasi 4. Yang bukan metode berpikir yang dipakai programmer ketika menulis program adalah… a. Decomposition b. Pattern Recognition c. Abstraksi d. Reorganisasi e. Algorithm Design 5. Dalam menyusun suatu program, langkah pertama yang harus dilakkukan adalah… M1 KB4: Halaman 219 a. Membuat program b. Membuat Algoritma c. Membeli komputer d. Proses e. Mempelajari program 6. Pseudocode yang digunakan pada penulisan algoritma berupa… a. Bahassa Inggris b. Bahasa Puitis c. Bahasa pemograman d. Sembarang bahasa asal terstruktur e. Bahasa Mesin 7. Perintah untuk menutup program dalam pascal adalah... a. End. b. Program c. Uses crt; d. Finish e. End; 8. Yang bukan komponen teks algoritma dalam pemrograman prosedural yaitu… a. Instruksi dasar seperti input/output, assignment b. Sequence (runtutan) c. Analisa kasus d. Analisa program e. Perulangan 9. Tipe data pascal untuk karakter adalah... a. Char b. Boolean c. Integer d. Real e. Byte 10. Istilah “perulangan” dalam pemograman pascal dikenal dengan ... M1 KB4: Halaman 220 a. Repeating b. Again c. Funtion d. Replay e. Looping 3. Tugas Akhir 1. Membuat Poster Peta Konsep Pengantar Sistem Komputer dan Teknologi Informasi. 2. Ubahlah bilangan dibawah ini : a. Bilangan Desimal 27, ubah ke bilangan Biner … b. Bilangan Heksadesimal 40, ubah ke bilangan Desimal … c. Bilangan Desimal 44, ubah ke bilangan Heksadesimal … d. Bilangan Biner 1001000, ubah ke bilangan Oktal … e. Bilangan Biner 100000, ubah ke bilangan Hexadesimal … f. Bilangan Oktal 60 menghasilkan bilangan Desimal yaitu … g. Bilangan Oktal 100, ubah ke bilangan Biner … 3. Ketiklah contoh berikut dalam excel anda dan hitunglah total tersebut dengan menggunakan fungsi penjumlahan. (total = Harga x Jumlah). 4. Setelah memahami prinsip dan teknis penulisan naskah media presentasi, Buatlah naskah untuk beberapa frame yang menarik dan tidak membosankan. Contoh: M1 KB4: Halaman 221 5. Buatlah Algoritma dan Flowchart untuk menentukan kelulusan siswa ? Dengan ketentuan: Jika Nilai >= 70 maka Lulus Jika Nilai <= 70 maka Tidak Lulus M1 KB4: Halaman 222 4. Tes Akhir (Tes Sumatif) 1. Kata teknologi secara harfiah berasal dari bahasa latin yaitu texere yang berarti… a. Menyusun b. Mengembangkan c. Mengelola d. Memudahkan e. Membantu 2. komponen informasi yang sifatnya semi mikro, namun keberadaannya sangat dibutuhkan adalah… a. Branch of Information b. Bud of Information c. Stick of Information d. Urgent of Information e. Important of Information 3. Peran yang dapat diberikan oleh aplikasi teknologi informasi, kecuali… a. Untuk mendapatkan informasi b. Sebagai sarana kerja sama antara pribadi atau kelompok c. Belanja online d. Memudahkan berkomunikasi jarak jauh e. Meningkatkan daya tahan tubuh 4. Istilah yang orang lain gunakan untuk mewakili studi transdisiplin desain, penyebaran dan menggunakan teknologi informasi… a. Teknologi informasi b. Konsep informasi teknologi c. Informatika sosial d. Informatika teknologi e. Bahasa informatika 5. Etika kewargaan digital berkaitan dengan komponen, yaitu a. Lingkungan M1 KB4: Halaman 223 b. Lingkungan keluarga c. Lingkungan belajar dan sekolah d. Lingkungan bermain e. Lingkungan belajar 6. Dibawah ini adalah undang-undang mengenai Hak Kekayaan Intelektual… a. UU No. 29 Tahun 2000 tentang Varietas Tanaman b. UU No. 14 Tahun 2001 tentang Paten c. UU No. 15 Tahun 2002 tentang Rahasia Dagang d. Jawaban A dan B salah e. Jawaban A dan B benar 7. Konsep norma perilaku yang tepat dan bertanggungjawab terkait dengan cara menggunakan teknologi disebut… a. Etika kewargaan digital b. Norma digital c. Fungsi etika digital d. Etika komunikasi digital e. Etika digital 8. Etika komunikasi digital untuk diterapkan, kecuali… a. Menyadari posisi kita b. Menggunakan tulisan dan bahasa yang jelas c. Mengendalikan emosi d. Selalu ingat tulisan bukan perwakilan dari kita e. Yang diajak berkomunikasi adalah manusia 9. Tujuan pokok sistem komputer adalah … a. Mengolah data menjadi imformasi b. Mengolah input menjadi proses c. Mengolah output menjadi input d. Mengolah output jadi proses e. Mengolah imformasi jadi output M1 KB4: Halaman 224 10. Komunikasi daring yang menggunakan perangkat komputer dan dilakukan secara tunda adalah komunikasi … a. Serempak b. Dalam jaringan c. Secara online d. Sinkron e. Asinkron 11. Proses representasi data dalam bentuk sama dengan pengertiannya, dengan menyembunyikan rincian dari implementasi diesbut… a. Data abstraksi b. Representasi data c. Tipe data d. Database e. Abstraksi data 12. Berikut tipe data, kecuali… a. Data alfanumerik b. Data nonnumeik c. Data biner d. Data bit-tunggal e. Data numerik 13. Sistem bilangan yang berbasis 2 dan 16 227 (10) dikonversikan ke sistem biner mempunyai nilai... a. 11001111 b. 11100011 c. 11110101 d. 110011 e. 1011011 14. Hasil pengurangan 110 (2) - 0101 (2) = … a. 11101 (2) b. 10011 (2) c. 100011 (2) M1 KB4: Halaman 225 d. 10001 (2) e. 10101 (2) 15. FBC(16) – 321 (16) = …(16) a. C9B(16) b. B2B(16) c. A7C(16) d. 12B(16) e. FD5 (16) 16. Jika angka yang tercantum pada sel A1=20, A2=20, dan A3=25, maka penggunaan formula untuk fungsi =SUM(A1:A3) pada sel A4 hasil yang didapat adalah … a. 15 b. 65 c. 45 d. 25 e. 35 17. Jenis perancangan presentasi baru yang masih kosong disebut… a. Autoconten wizard b. Blank presentation c. Desain template d. Open existing presentation e. Virgin presentation 18. Langkah-langkah yang tepat untuk menyisipkan tulisan seni dalam dokumen adalah…. a. Klik menu insert – picture – clip Art b. Klik menu file – picture – wordart c. Klik menu insert – wordart – picture d. Klik menu insert- picture- wordart e. Klik menu edit – picture – wordart 19. Digunakan untuk mendeteksi kesalahan penulisan dan ejaan bahasa pada kalimat, serta menyisipkan symbol secara cepat dan menuliskan kalimat M1 KB4: Halaman 226 dengan cepat hanya dengan menulis beberapa huruf adalah … a. Insert b. Auto Correct c. Find d. Replace e. Editing 20. Dibawah ini yang termasuk lembar kerja ms-excel adalah , kecuali… a. Menubar b. Toolbar c. Titlebar d. Excelbar e. Semua salah 21. Jumlah lembar kerja dalam buku kerja Microsoft excel terdiri atas… a. 256 kolom dan 65356 baris b. 256 kolom dan 65536 baris c. 256 kolom dan 63536 baris d. 256 kolom dan 65536 baris e. 265 kolom dan 65256 baris 22. Dibawah ini yang bukan termasuk fungsi statistic adalah… a. =sum() b. =count() c. =min() d. Max() e. =if() 23. Jenis e-book berdasarkan formatnya, kecuali a. Teks polos, b. PDF c. HTML d. png e. JPEG M1 KB4: Halaman 227 24. Seperangkat keterampilan kognitif yang memungkinkan pendidik mengidentifikasi pola, memecahkan masalah selain kompleks menjadi langkah-langkah kecil disebut… a. Perangkat pembelajaran b. Kognitif c. Berpikir komputasi d. Alat pembelajaran e. Bahan pembelajaran 25. Karakteristik computational thinking, kecuali… a. Mampu melakukan generalisasi solusi b. Mampu melakukan identifikasi, c. Mampu melakukan representasi data d. Mampu memberikan pemecahan masalah e. Mampu berorganisasi 26. Yang bukan metode berpikir yang dipakai programmer ketika menulis program adalah… a. Decomposition b. Pattern Recognition c. Abstraksi d. Reorganisasi e. Algorithm Design 27. Dalam menyusun suatu program,langkah pertama yang harus di lakkukan adalah… a. Membuat program b. Membuat Algoritma c. Membeli komputer d. Proses e. Mempelajari program 28. Perintah untuk menutup program dalam pascal adalah... a. End. b. Program M1 KB4: Halaman 228 c. Uses crt; d. Finish e. End; 29. Yang bukan komponen teks algoritma dalam pemrograman procedural yaitu… a. Instruksi dasar seperti input/output, assignment b. Sequence (runtutan) c. Analisa kasus d. Analisa program e. Perulangan 30. Tipe data pascal untuk karakter adalah... a. Char b. Boolean c. Integer d. Real e. Byte Daftar Pustaka Fatur, R. 2015. Computational Thinking = Computer Science ++.https://www. kompasiana.com/fathur_rachim/55e06cc71593736c0a109023/computati onal-thinking-computer-science?page=all. Diakses pada 9 September 2019 Munir, R. 2011. Algoritma dan Pemrograman Dalam Bahasa Pascal dan C:Edisi Revisi. Bandung: Informatika Yulikaspartono, 2004. Pengantar Logika dan Algoritma. Yogyakarta: Andi M1 KB4: Halaman 229 Kunci Jawaban Tes Formatif 1. C 6. C 2. A 7. A 3. E 8. D 4. D 9. A 5. B 10. E Kunci Jawaban Tes Sumatif 1. A 11. E 21. D 2. B 12. B 22. E 3. E 13. B 23. C 4. C 14. D 24. C 5. C 15. A 25. E 6. E 16. B 26. D 7. E 17. B 27. B 8. D 18. A 28. A 9. A 19. B 29. D 10. E 20. D 30. A M1 KB4: Halaman 230