TE1314 – Algoritma, Pemrograman, dan Lab • Tujuan Umum: – Menjadi ahli untuk membuat komputer melakukan apa yang dinginkan. – Mempelajari bagaimana berpikir secara komputasi – Mempelajari seni dari penyelesaian permasalahan dengan komputasi Komputasi • Apa itu komputasi ? – Apa itu pengetahuan ? – Pengetahuan Deklaratif • Kalimat yang berisi fakta – Pengetahuan Imperatif • “how to” metode atau resep Pengetahuan Deklaratif • “y adalah akar dari x jika dan hanya jika y*y = x” • Apakah dari kalimat/pengetahuan di atas dapat menjadi akar dari suatu angka x? Pengetahuan Imperatif • Berikut merupakan resep untuk mencari akar dari suatu angka x – diperkenalkan oleh Heron dari Alexandria pada abad pertama masehi • Mulai dengan tebakan, g • Jika g*g dekat dengan x, g merupakan kandidat yang bagus untuk akar dari x • Jika tidak maka buat tebakan baru, dengan merata-rata g dengan x/g • Dengan menggunakan g yang baru, lakukan proses yang sama dari nomor 2 Contoh • Cari akar dari 25 g g*g x/g ½(g + x/g) Algoritma Adalah Resep • Untuk bumbu halus, bersihkan bawang putih, ketumbar dan kencur. Haluskan semuanya bersama garam. • Iris tempe tipis-tipis dengan ukuran 3 x 3 cm. • Bersihkan, iris tipis daun bawang. • Untuk adonan tepung, campur tepung, irisan daun bawang, bumbu halus dan air. Aduk sampai merata. • Panaskan minyak goreng. Celupkan tempe ke dalam adonan tepung. Goreng tempe dengan api sedang sampai kering. Angkat. Bgmn mengimplementasikan resep dalam alat? • Membuat mesin untuk menghitung akar – Fixed Program Computer • Kalkulator • Atanasoff dan Berry (1941) membuat komputer untuk menghitung persamaan linear • Alan Turing (1940) bombe – memecahkan kode Enigma • Membuat mesin yang menyimpan dan memanipulasi instruksi – Stored Program Computer Stored program computer • Runtutan instruksi (program) yg disimpan pada komputer – Dibuat dari beberapa set instruksi primitif • Aritmatika dan Logik • Simple test • Memindah data • Program spesial (interpreter) mengeksekusi setiap instruksi berdasarkan urutan – Menggunakan test untuk mengubah flow dari instruksi Arsitektur Mesin Secara Sederhana Pembuatan “Resep” • Setiap bahasa pemrograman menyediakan set dari instruksi primitif • Setiap bahasa pemrograman menyediakan mekanisme untuk menggabungkan instruksi primitif untuk membentuk instruksi yg lebih komplek • Setiap bahasa pemrograman menyediakan mekanisme untuk menyimpulkan arti atau angka yang berasosiasi dengan komputasi atau instruksi Aspek Dari Bahasa • Membangun primitif – Bahasa Pemrograman – angka, string, operator sederhana – Indonesia – kata • Sintak – string dari karakter dan simbol yang tertata dengan benar – Bahasa Pemrograman – contoh dlm python ekspresi 3.2 + 3.2 – Indonesia – “kucing kuda anak” Aspek Dari Bahasa • Statik simantik – selain sintaknya valid, juga mempunyai arti – English – “I are big” • Ada yang tahu kenapa error? – Bahasa Pemrograman – contoh, <literal> <operator> <literal> adalah bentuk yang valid, tapi 2.5 / “abc” merupakan ekspresi yg mempunyai statik simantik error. Aspek Dari Bahasa • Simantik – arti dari suatu string dan simbol yang valid secara sintak dan tdk ada error pada statik simantiknya – English – bisa saja ambigu • “I cannot praise this student too highly” – Bahasa pemrograman – selalu mempunyai satu arti Kesalahan Yg Bisa Terjadi • Sintak Error – Biasa terjadi dan dpt dideteksi oleh komputer • Statik Simantik Error – Beberapa bahasa pemrograman melakukan pengecekan sebelum menjalankan program – Jika tdk terdeteksi, behavior program tdk dpt diprediksi • Program tidak punyai simantik error, tapi program berjalan tdk seperti yg dinginkan. – Crashes (berhenti berjalan) – Berjalan selamanya (run forever) – Menghasilkan jawaban, tapi tidak sesuai Tujuan Kelas Ini • Mempelajari sintak dan simantik dari bahasa pemrograman • Mempelajari bagaimana menggunakan elemen tersebut untuk menyelesaikan permasalahan ke dalam bentuk yg dimengerti oleh komputer