Lecture 1: Pendahuluan 
Reza Fuad 
Telematics Laboratory
Selamat Datang Di TE1314 
Algoritma 
Pemrograman 
Lab 
Sep-13 
2
About Me 
Reza Fuad Rachmadi 
Email: rezafuad@gmail.com, fuad@its.ac.id, fuad@elect-eng.its.ac.id 
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

Lecture 1 pendahuluan Bahasa Python

  • 1.
    Lecture 1: Pendahuluan Reza Fuad Telematics Laboratory
  • 2.
    Selamat Datang DiTE1314 Algoritma Pemrograman Lab Sep-13 2
  • 3.
    About Me RezaFuad Rachmadi Email: [email protected], [email protected], [email protected] Sep-13 Algoritma, Pemrograman, dan Lab 3
  • 4.
    About You Asal? Anda tahu tentang pemrograman ? Anda tahu tentang algoritma ? Sep-13 Algoritma, Pemrograman, dan Lab 4
  • 5.
    Tujuan Dari KuliahIni 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
  • 6.
    Komputasi Apa itukomputasi ? –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
  • 7.
    Pengetahuan Deklaratif “yadalah 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
  • 8.
    Pengetahuan Imperatif Berikutmerupakan 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
  • 9.
    Kita Latihan •Cariakar dari 25 Sep-13 Algoritma, Pemrograman, dan Lab 9 g g*g x/g ½(g + x/g)
  • 10.
    Kita Latihan •Cariakar dari 25 Sep-13 Algoritma, Pemrograman, dan Lab 10 g g*g x/g ½(g + x/g) 10 100 2.5 6.25
  • 11.
    Kita Latihan •Cariakar 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
  • 12.
    Kita Latihan •Cariakar 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
  • 13.
    Kita Latihan •Cariakar 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
  • 14.
    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
  • 15.
    Bagaimana mengimplementasikan resepdalam 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
  • 16.
    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
  • 17.
    Arsitektur Mesin SecaraSederhana Sep-13 Algoritma, Pemrograman, dan Lab 17
  • 18.
    Pembuatan “Resep” Setiapbahasa 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
  • 19.
    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
  • 20.
    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
  • 21.
    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
  • 22.
    Kesalahan Yang BisaTerjadi 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
  • 23.
    Alur Pembuatan/Jalannya Program Sep-13 Algoritma, Pemrograman, dan Lab 23 Kode Program Checker Kompiler Kode Objek Interpreter Output
  • 24.
    Opsi untuk BahasaPemrograman 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
  • 25.
    Opsi untuk BahasaPemrograman 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
  • 26.
    Opsi untuk BahasaPemrograman 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
  • 27.
    EXTRA SLIDES Sep-13 Algoritma, Pemrograman, dan Lab 27
  • 28.
    Administratif Presentase Nilai Pengumpulan Tugas Proyek Jadwal (tentatif) Sep-13 Algoritma, Pemrograman, dan Lab 28
  • 29.
    Presentase Nilai Deskripsi Presentase Tugas Individu 30 % Proyek Kelompok 30 % Praktikum 10 % UTS 15 % UAS 15 % Sep-13 Algoritma, Pemrograman, dan Lab 29
  • 30.
    Pengumpulan Tugas Tugasbisa 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
  • 31.
    Proyek Proyek dilakukanper 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
  • 32.
    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