Lecture 1 pendahuluan Bahasa Python

32
Lecture 1: Pendahuluan Reza Fuad Telematics Laboratory

description

Materi Algoritma dan Pemrograman Bpk. Reza Fuad

Transcript of Lecture 1 pendahuluan Bahasa Python

Page 1: Lecture 1 pendahuluan Bahasa Python

Lecture 1: Pendahuluan

Reza Fuad

Telematics Laboratory

Page 2: Lecture 1 pendahuluan Bahasa Python

Selamat Datang Di TE1314

Algoritma

Pemrograman

Lab

Sep-13 2

Page 4: Lecture 1 pendahuluan Bahasa Python

About You

Asal ?

Anda tahu tentang pemrograman ?

Anda tahu tentang algoritma ?

Sep-13 Algoritma, Pemrograman, dan Lab 4

Page 5: Lecture 1 pendahuluan Bahasa Python

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

Page 6: Lecture 1 pendahuluan Bahasa Python

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

Page 7: Lecture 1 pendahuluan Bahasa Python

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

Page 8: Lecture 1 pendahuluan Bahasa Python

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

Page 9: Lecture 1 pendahuluan Bahasa Python

Kita Latihan

• Cari akar dari 25

Sep-13 Algoritma, Pemrograman, dan Lab 9

g g*g x/g ½(g + x/g)

Page 10: Lecture 1 pendahuluan Bahasa Python

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

Page 11: Lecture 1 pendahuluan Bahasa Python

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

Page 12: Lecture 1 pendahuluan Bahasa Python

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

Page 13: Lecture 1 pendahuluan Bahasa Python

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

Page 14: Lecture 1 pendahuluan Bahasa Python

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

Page 15: Lecture 1 pendahuluan Bahasa Python

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

Page 16: Lecture 1 pendahuluan Bahasa Python

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

Page 17: Lecture 1 pendahuluan Bahasa Python

Arsitektur Mesin Secara Sederhana

Sep-13 Algoritma, Pemrograman, dan Lab 17

Page 18: Lecture 1 pendahuluan Bahasa Python

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

Page 19: Lecture 1 pendahuluan Bahasa Python

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

Page 20: Lecture 1 pendahuluan Bahasa Python

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

Page 21: Lecture 1 pendahuluan Bahasa Python

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

Page 22: Lecture 1 pendahuluan Bahasa Python

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

Page 23: Lecture 1 pendahuluan Bahasa Python

Alur Pembuatan/Jalannya Program

Sep-13 Algoritma, Pemrograman, dan Lab 23

Kode Program

Checker

Kompiler Kode Objek

Interpreter Output

Page 24: Lecture 1 pendahuluan Bahasa Python

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

Page 25: Lecture 1 pendahuluan Bahasa Python

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

Page 26: Lecture 1 pendahuluan Bahasa Python

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

Page 27: Lecture 1 pendahuluan Bahasa Python

EXTRA SLIDES

Sep-13 Algoritma, Pemrograman, dan Lab 27

Page 28: Lecture 1 pendahuluan Bahasa Python

Administratif

Presentase Nilai

Pengumpulan Tugas

Proyek

Jadwal (tentatif)

Sep-13 Algoritma, Pemrograman, dan Lab 28

Page 29: Lecture 1 pendahuluan Bahasa Python

Presentase Nilai

Deskripsi Presentase

Tugas Individu 30 %

Proyek Kelompok 30 %

Praktikum 10 %

UTS 15 %

UAS 15 %

Sep-13 Algoritma, Pemrograman, dan Lab 29

Page 30: Lecture 1 pendahuluan Bahasa Python

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

Page 31: Lecture 1 pendahuluan Bahasa Python

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

Page 32: Lecture 1 pendahuluan Bahasa Python

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