lecture 1 pendahuluan bahasa python
DESCRIPTION
Materi Algoritma dan Pemrograman Bpk. Reza FuadTRANSCRIPT
Lecture 1: Pendahuluan
Reza Fuad
Telematics Laboratory
Selamat Datang Di TE1314
Algoritma
Pemrograman
Lab
Sep-13 2
About Me
Reza Fuad Rachmadi
Email: [email protected], [email protected], [email protected]
Sep-13 Algoritma, Pemrograman, dan Lab 3
About You
Asal ?
Anda tahu tentang pemrograman ?
Anda tahu tentang algoritma ?
Sep-13 Algoritma, Pemrograman, dan Lab 4
Tujuan Dari Kuliah Ini
Anda bisa merancang dan membuat aplikasi pada komputer
Mempelajari bagaimana berpikir secara komputasi
Mempelajari seni dari penyelesaian permasalahan dengan komputasi
Sep-13 Algoritma, Pemrograman, dan Lab 5
Komputasi
Apa itu komputasi ?
–Kita harus break down ke bawah, yaitu apa itu pengetahuan ?
–Pengetahuan Deklaratif
• Kalimat yang berisi fakta
–Pengetahuan Imperatif
• “How to” metode atau resep
Sep-13 Algoritma, Pemrograman, dan Lab 6
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?
Sep-13 Algoritma, Pemrograman, dan Lab 7
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
Sep-13 Algoritma, Pemrograman, dan Lab 8
Kita Latihan
• Cari akar dari 25
Sep-13 Algoritma, Pemrograman, dan Lab 9
g g*g x/g ½(g + x/g)
Kita Latihan
• Cari akar dari 25
Sep-13 Algoritma, Pemrograman, dan Lab 10
g g*g x/g ½(g + x/g)
10 100 2.5 6.25
Kita Latihan
• Cari akar dari 25
Sep-13 Algoritma, Pemrograman, dan Lab 11
g g*g x/g ½(g + x/g)
10 100 2.5 6.25
6.25 39.0625 4 5.125
Kita Latihan
• Cari akar dari 25
Sep-13 Algoritma, Pemrograman, dan Lab 12
g g*g x/g ½(g + x/g)
10 100 2.5 6.25
6.25 39.0625 4 5.125
5.125 26.265625 4.878 5.001
Kita Latihan
• Cari akar dari 25
Sep-13 Algoritma, Pemrograman, dan Lab 13
g g*g x/g ½(g + x/g)
10 100 2.5 6.25
6.25 39.0625 4 5.125
5.125 26.265625 4.878 5.001
5.001 25.01525 4.999 5
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.
Sep-13 Algoritma, Pemrograman, dan Lab 14
Bagaimana 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
Sep-13 Algoritma, Pemrograman, dan Lab 15
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
Sep-13 Algoritma, Pemrograman, dan Lab 16
Arsitektur Mesin Secara Sederhana
Sep-13 Algoritma, Pemrograman, dan Lab 17
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
Sep-13 Algoritma, Pemrograman, dan Lab 18
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”
Sep-13 Algoritma, Pemrograman, dan Lab 19
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.
Sep-13 Algoritma, Pemrograman, dan Lab 20
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
Sep-13 Algoritma, Pemrograman, dan Lab 21
Kesalahan Yang Bisa Terjadi Sintak Error
– Biasa terjadi dan dapat dideteksi oleh komputer
Statik Simantik Error – Beberapa bahasa pemrograman melakukan
pengecekan sebelum menjalankan program – Jika tdk terdeteksi, behavior program tidak dapat
diprediksi
Program tidak punyai simantik error, tapi program berjalan tidak seperti yg dinginkan. – Crashes (berhenti berjalan) – Berjalan selamanya (run forever) – Menghasilkan jawaban, tapi tidak sesuai
Sep-13 Algoritma, Pemrograman, dan Lab 22
Alur Pembuatan/Jalannya Program
Sep-13 Algoritma, Pemrograman, dan Lab 23
Kode Program
Checker
Kompiler Kode Objek
Interpreter Output
Opsi untuk Bahasa Pemrograman
Bahasa low level menggunakan instruksi yang sama dengan control unit/ALU – Pindah data dari satu lokasi ke lokasi yg lain – Menjalankan operasi ALU sederhana – Meloncat ke lokasi baru berdasarkan test
Checker melakukan pengecakan sintak dan simantik
Interpreter menerjemahkan instruksi
Sep-13 Algoritma, Pemrograman, dan Lab 24
Kode Program (Low Level)
Checker Interpreter Output
Opsi untuk Bahasa Pemrograman
Bahasa tingkat tinggi (high level) menggunakan istilah yang lebih abstrak
Pada kode program yang telah dikompilasi, abstraksi tersebut diubah kembali ke dalam bahasa low level lalu dijalankan
Sep-13 Algoritma, Pemrograman, dan Lab 25
Kode Program (High Level)
Checker
Kompiler Kode Objek
Interpreter Output
Opsi untuk Bahasa Pemrograman
Pada interpreter, instruksi bahasa tingkat tinggi diubah ke dalam ke dalam bahasa low level lalu dikerjakan.
Proses tersebut dilakukan per baris sesuai dengan kode program masukan yang diberikan.
Python, bahasa pemrograman yang digunakan dalam kelas ini, termasuk dalam jenis ini.
Sep-13 Algoritma, Pemrograman, dan Lab 26
Kode Program (High Level)
Checker Interpreter Output
EXTRA SLIDES
Sep-13 Algoritma, Pemrograman, dan Lab 27
Administratif
Presentase Nilai
Pengumpulan Tugas
Proyek
Jadwal (tentatif)
Sep-13 Algoritma, Pemrograman, dan Lab 28
Presentase Nilai
Deskripsi Presentase
Tugas Individu 30 %
Proyek Kelompok 30 %
Praktikum 10 %
UTS 15 %
UAS 15 %
Sep-13 Algoritma, Pemrograman, dan Lab 29
Pengumpulan Tugas
Tugas bisa berupa:
– Online (pilihan berganda atau isian).
– Offline (jawaban diupload dan soal disediakan di server).
Pengumpulan/Pengerjaan Tugas Melalui
– http://web.ee.its.ac.id/lms (Elektro LMS)
INGAT!!!: Format Pengumpulan Adalah dalam PDF bukan docx/doc!!!
Sep-13 Algoritma, Pemrograman, dan Lab 30
Proyek
Proyek dilakukan per kelompok
– Kelompok akan ditentukan kemudian
Terdapat kurang lebih dua proyek
Laporan Proyek diupload melalui LMS Elektro dan dalam format PDF
Laporan dibuat per individu (bukan per kelompok) dan bercerita tentang tugas masing-masing individu dalam kelompok!
Sep-13 Algoritma, Pemrograman, dan Lab 31
Jadwal 01 02 03 04
Pengenalan (hari ini)
Algoritma, Flowchart, dan
contohnya
Tipe Data: Integer, Float, String, Tuple,
Lists, dll
Percabangan, Perulangan, Fungsi,
dan Prosedur
Sep-13 Algoritma, Pemrograman, dan Lab 32
05 06 07 08
Studi Kasus I Permasalahan untuk Matrik, array, dan List
Studi Kasus II / Tugas Mandiri
UTS
09 10 11 12
UTS Pembahasan UTS Algoritma Rekursif Debugging Dalam Pembuatan
Program
13 14 15 16
Simulasi Dalam Penyelesaian
Masalah
File I/O Studi Kasus Tugas Mandiri