Strategi algoritmik dan pemrograman (SAP)

 Proses Pemrograman


Pada buku Informatika SMA Kelas X, kalian telah


mempelajari proses menulis kode program atau yang kita sebut sebagai coding. Pada Kelas XI, kalian akan mempelajari kegiatan yang lebih kompleks dari coding yang kita sebut sebagai pemrograman. Pemrograman menurut buku "Oxford Dictionary of Computer Science" adalah seluruh aktivitas teknis yang dilakukan untuk menghasilkan suatu program, termasuk analisis kebutuhan dan seluruh langkah desain dan


implementasi suatu program.


Program dapat menjadi solusi dari suatu permasalahan. Untuk menghasilkan program yang benar dan dapat membantu manusia dalam melakukan tugasnya, ada empat langkah yang dilakukan pada saat melakukan pemrograman, yaitu


Algoritma dan Pemrograman


Pada jenjang sebelumnya dalam materi Informatika Kelas X, kalian telah mempelajari mengenai beberapa bahasa pemrograman, salah satunya adalah bahasa Cyang telah dipelajari pada elemen Algoritma dan Pemrograman. Kemampuan bahasa pemrograman terutama bahasa C akan kalian gunakan dalam topik ini. Selanjutnya untuk lebih meningkatkan pemahaman kalian dalam elemen Algoritma dan Pemrograman, kalian akan mempelajari konsep larik serta karakter dan string. Kedua konsep ini sangat penting dalam membuat program dan akan kalian gunakan untuk menyelesaikan berbagai permasalahan yang diberikan pada bagian D dalam bab ini.

1.praktik lintas bidang


Latihan Strategi Algoritmik dan Pemrograman Lintas Bidang


Pada bagian ini kalian akan membuat berbagai program berdasarkan permasalahan yang tersedia, tiap permasalahan memiliki sub permasalahannya tersendiri yang tingkat kesulitannya meningkat. Kalian akan membuat program dimulai dari perancangan, yaitu merancang algoritma untuk menyelesaikan permasalahan tersebut. Selanjutnya algoritma tersebut kalian terjemahkan ke dalam bahasa pemrograman yang kalian kuasai, misalnya bahasa C, Python, dsb. Permasalahan tersebut akan meningkatkan kemampuan programming kalian dengan mempelajari bagian ini dengan menyelesaikan berbagai sub permasalahan yang tersedia.


2. Berpikir komputasional


Berpikir Komputasional


Berpikir komputasional ini merupakan suatu kerangka dan proses berpikir yang mencakup perangkat keras, perangkat lunak, dan menalar (reasoning) mengenai sistem dan persoalan. Moda berpikir (thinking mode) ini didukung dan dilengkapi dengan pengetahuan teoritis dan praktis, serta teknik untuk menganalisis, memodelkan dan menyelesaikan persoalan. Berikut ini pembahasan beberapa konsep dan strategi berpikir komputasional yang biasa digunakan dalam menyelesaikan persoalan komputasi.


a.Rekursi


Suatu masalah dapat didekomposisi menjadi permasalahan yang serupa, namun ukurannya lebih kecil. Saat kita diminta untuk memindahkan satu kardus buku yang sangat berat dan ridak dapat kita angkat, kita akan membagi kardus tersebut ke dalam beberapa kardus yang lebih ringan sehingga pekerjaan tersebut menjadi lebih mudah untuk dikerjakan. Ketika menghitung suatu nilai faktorial, kita pun harus menghitung nilai faktorial yang lebih kecil. Misalnya, ketika menghitung 10 faktorial, kita juga harus menyelesaikan 1 faktorial, 2 faktorial, hingga 9 faktorial terlebih dahulu.

Secara alami, terdapat banyak permasalahan yang dapat dimodelkan dengan lebih mudah menggunakan konsep rekursif ini. Pada bagian ini, kalian akan mempelajari konsep dasar rekursi yang akan sangat berguna untuk melakukan dekomposisi pada suatu permasalahan besar dalam bentuk permasalahan yang lebih kecil dan lebih mudah untuk diselesaikan. Rekursi didefinisikan sebagai "sesuatu" yang mengandung "sesuatu" itu sendiri. Dapatkah kalian melihat rekursi dalam gambar-gambar sebagai berikut (lihat Gambar 2.5)


b.algoritma greedy


Greedy secara harfiah berarti rakus atau tamak. Meskipun dalam pengertian sehari-hari, kata "rakus" dan "tamak" memiliki konotasi negatif, namun dalam konteks Informatika, kita mengartikan greedy dalam konteks sebagai sebuah strategi penyelesaian masalah yang dapat berguna dalam merancang sebuah algoritma atau solusi bagi sebuah permasalahan komputasional. Oleh karena itu, diharapkan tidak ada konotasi negatif pada kata greedy dalam konteks ini.


c.Programan dinamis


(mencari nilai terbesar/terkecil), terkadang kita harus memperhitungkan beberapa kemungkinan pengambilan langkah untuk menyelesaikan permasalahan tersebut. Kemungkinan- kemungkinan tersebut mungkin memiliki akibat/konsekuensi terhadap langkah-langkah selanjutnya, sehingga pendekatan seperti teknik greedy mungkin tidak akan menghasilkan jawaban yang optimal. Dalam hal ini, teknik pemrograman dinamis atau dynamic programming (DP) mungkin akan lebih sesuai diterapkan. Teknik DP mengandung dua unsur utama, yaitu:


3.algoritma dan programnya


Pada jenjang sebelumnya dalam materi Informatika Kelas X, kalian telah mempelajari mengenai beberapa bahasa pemrograman, salah satunya adalah bahasa Cyang telah dipelajari pada elemen Algoritma dan Pemrograman. Kemampuan bahasa pemrograman terutama bahasa C akan kalian gunakan dalam topik ini. Selanjutnya untuk lebih meningkatkan pemahaman kalian dalam elemen Algoritma dan Pemrograman, kalian akan mempelajari konsep larik serta karakter dan string. Kedua konsep ini sangat penting dalam membuat program dan akan kalian gunakan untuk menyelesaikan berbagai permasalahan yang


diberikan pada bagian D dalam bab ini.

a.Larik (Array)


selama diberikan manusia Saat ini mungkin kalian memiliki pertanyaan sepe "mengapa contoh dan permasalahari yang ini adalah hal yang dapat diselesaikan oleh manual atau dengan kalkulator?" Jawabannya adalah proses kalian menguasai kompetensi dalam algoritma dan pemrograman. secki karena mendukung


Misalnya Pada praktiknya, program digunakan untuk mengolah data yang berukuran besar dan membutuhkan waktu yang sangat lama jika dikerjakan manual oleh manusia. kangat perlu menghitung statistika deskriptif (seperti rata. rata, nilai minimal, nilai maksimal, standar deviasi, dan sebagainya) dari data seluruh penduduk Indonesia. Walaupun masalahnya sederhana, namun dikarenakan jumlah data yang diolah sangat banyak dan berukuran besar mengakibatkan waktu pengerjaan pun menjadi sangat lama bagi manusia untuk menyelesaikannya. Bahkan ada kemungkinan data berukuran besar tersebut tidak dapat diolah menggunakan aplikasi pengolah data (spreadsheet) yang tidak dirancang untuk mengolah data sebesar itu. Untuk solusinya kalian dapat menggunakan program khusus untuk mengolah data berukuran besar atau membuat program sendiri yang mampu menyimpan dan mengolah data berukuran besar.


Kita pun sampai pada pertanyaan besar: "bagaimana caranya membuat program yang mampu menyimpan dan mengolah data berukuran besar?". Sebelumnya kalian telah mengenal konsep variabel yang mampu menyimpan satu buah nilai dengan tipe data tertentu (variabel tunggal). Permasalahan akan muncul ketika program kita harus mengolah sebanyak satu juta data, apakah kita harus membuat satu juta variabel? Bukankah hal tersebut sangat sulit dipraktikkan dalam kode program yang kita tulis? Untuk mengatasi hal tersebut, bahasa pemrograman


b.karakter dan string


karakter kalian temui melakukan memasukkan rangkaian karakter seperti kata. Hal ini telah lazim misalnya ketika mengetikkan kata kunci untuk pencarian di mesin pencari atau ketika kalian kata sandi saat login. Oleh karena itu, program dilengkap dengan kemampuan untuk membaca, menyimpan, mengolah dan mencetak rangkaian karakter tersebut. Rangkaian karakter tersebut dalam pemrograman disebut sebagai string.

Definisi string dalam pemrograman adalah rangkaian karakteris Karakter sendiri merupakan suatu data berupa huruf, angka, simbol, dan karakter lain yang mengikuti suatu Standa a netentu seperti "American Standard Code for Information Interchange" (ASCII) atau Unicode. Karakter pada pemrograman pada umumnya diimplementasikan dalam program menggunakan tipe data char. Di sisi lain, ada beberapa cara yang lazim digunakan untuk mengimplementasikan string dalam pemrograman.


Pada bahasa C, string diimplementasikan sebagai larik karakter yang diakhiri oleh karakter '\0'. Dengan kata lain, kalian dapat membuat dan memproses suatu string seperti halnya kalian mengolah larik. Bahasa pemrograman lain seperti C++ atau Java memilih sebuah tipe data string sendiri yang menyembunyikan beberapa detail terkait pengelolaan data string yang dilakukan oleh program.


Karena proses pada string berbeda dengan proses pada bilangan, untuk itu bahasa pemrograman telah dilengkapi dengan fungsi-fungsi untuk mengolah karakter dan string. Misalnya untuk melakukan konversi dari huruf kapital ke on kapital, penggabungan string, pencarian substring, dan erbagai fungsi lainnya. Pada bahasa C, kalian dapat akses ngsi-fungsi tersebut pada pustaka <string.h>. Pada contoh


4. Latihan SAP lintas bidang


1. Seberapa paham kalian dengan konsep larik pada pemrograman?


2. Seberapa paham kalian dengan konsep karakter dan string pada pemrograman?


3. Seperti apa pengalaman yang kalian rasakan saat membaca dokumentasi bahasa pemrograman yang disediakan?


Pelajaran paling berkesan yang kalian dapatkan dari aktivitas latihan ini?


D. Latihan Strategi Algoritmik dan Pemrograman Lintas Bidang

Pada bagian ini kalian akan membuat berbagai program berdasarkan permasalahan yang tersedia, tiap permasalahan memiliki sub permasalahannya tersendiri yang tingkat kesulitannya meningkat. Kalian akan membuat program dimulai dari perancangan, yaitu merancang algoritma untuk menyelesaikan permasalahan tersebut. Selanjutnya algoritma tersebut kalian terjemahkan ke dalam bahasa pemrograman yang kalian kuasai, misalnya bahasa C, Python, dsb. Permasalahan tersebut akan meningkatkan kemampuan programming kalian dengan mempelajari bagian ini dengan menyelesaikan berbagai sub permasalahan yang tersedia.


1. Problem Simulasi Burung


Pada bagian ini, kalian akan membuat program untuk mensimulasikan gerak burung yang diluncurkan dengan menggunakan alat ketapel. Secara prinsip, gerakan burung yang diluncurkan dengan menggunakan ketapel menggunakan prinsip gerak lurus berubah beraturan (GLBB). Terdapat komponen sudut, gravitasi serta kecepatan dan waktu yang menjadi penentu jauhnya burung tersebut dapat meluncur dengan menggunakan ketapel. Konsep ini menggunakan kaidah gerak parabola yang telah kalian pelajari pada Mata


Bab 2 Strategi Algoritmik dan Pemrograman


a.berpikir kritis dan pengambilan keputusan


Berpikir kritis dalam mengambil Keputusan Dalam hidup sehari-hari, barangkali kalian juga sudah pernah menerapkan keterampilan berpikir kritis ini. Misalnya saar kalian memutuskan akan mengenakan baju apa saat menghadiri acara di sekolah, membeli tas sekolah yang seperti apa, melewati jalan yang mana ketika akan pergi ke suatu tujuan, dan sebagainya. Dalam situasi-situasi tersebut, mungkin kalian tidak asal melakukan apa yang diperintahkan oleh orang lain, namun kalian membuat keputusan berdasar beberapa pertimbangan. Perhatikan ilustrasinya pada gambar 3.4 berikut.


b.elemen berpikir


Setelah mengenal tentang berpikir kritis serta kaitannya dengan pengambilan keputusan, selanjutnya kalian akan mendalami lebih jauh bagaimana berpikir kritis ini penting untuk melakukan kajian kritis terhadap suatu bacaan dengan cara merumuskan pertanyaan berdasar bacaan. Sebelumnya, kalian perlu membaca terlebih dahulu bacaan singkat berikut ini. Perhatikan catatan "Marl Sadari" di bagian Ayo Membacal

Aktivitas Individu


Aktivitas BKDSI-K11-04-U: Apa itu Elemen Berpikir, Standar Intelektual, dan Karakter Intelektual Menurut Paul dan Elder (2006), orang yang berpikir kritis akan mampu:


• Merumuskan pertanyaan dan masalah yang penting secara jelas dan tepat karena berpikir kritis selalu dimulai dari mempertanyakan (questioning) dan mencari tahu lebih jauh, mendalam, dan menyeluruh atas suatu hal yang menjadi pokok bahasan;


• Mengumpulkan dan menilai informasi yang relevan, serta menafsirkannya secara efektif;


• Mengambil kesimpulan dan menemukan solusi yang masuk akal, serta menguji kesimpulan dan solusinya berdasar kriteria dan standar yang relevan;

Komentar

Postingan populer dari blog ini

CATATAN,DESAIN GRAFIS (KLS XII MATRIKS)

PERANGKAT KERAS AKSES INTERNET

UNDANG UNDANG ITE