TE1314 – Algoritma, Pemrograman, dan Lab

advertisement
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
Download