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