Dokumen tersebut merangkum materi pertemuan pertama mata kuliah Bahasa Pemrograman. Materi yang disampaikan meliputi konvensi perkuliahan, penilaian, visi dan misi jurusan teknik informatika, arsitektur von Neumann, sejarah bahasa pemrograman, kompilasi dan interpretasi, komputabilitas, serta tugas yang diberikan.
2. Administratif
2
Konvensi perkuliahan
Kedatangan maksimal 15 menit (why?)
Berlaku untuk dosen dan mahasiswa
Penilaian
Kuis 10%
Tugas 20% (ditentukan kemudian)
UTS 30% (27 Okt 2011, 0800 WIB; sifat ditentukan kemudian)
UAS 40% (12 Jan 2012, 0800 WIB; sifat ditentukan kemudian)
Legibilitas UAS
Minimal kehadiran 70% dari seluruh tatap muka yang diadakan
Bahasa Pemrograman – IKP213
3. Visi Misi Teknik Informatika dan Road
3
Map Perkuliahan
Pesan sponsor Jurusan
Di mana kita?
Matematika Diskrit: Automata dan Mesin Turing
Pemrograman
Organisasi Komputer, Arsitektur Komputer
Sistem Operasi
Jaringan Komputer
Pemrograman Berbasis Komponen
Pemrograman Berbasis Web
Bahasa Pemrograman – IKP213
4. Road Map Perkuliahan
4
Ke mana kita?
Cloud computing
Mobile application
Web 2.0, Personalization
E-Learning
Sumber daya multimedia
Ubiquitous computing (komputasi sarwega)
Bahasa Pemrograman – IKP213
6. Arsitektur von Neumann
6
Tigas unit dasar (three basic units)
Input
Output
Memory
Fetch-Decode-Execute cycle
Fetch instruksi dari memory (ke mana?)
Decode apa keinginan instruksi (add, sub, mult, div,
jump, branch?)
Bahasa Pemrograman – IKP213
7. Arsitektur von Neumann
7
Fetch-Decode-Execute cycle
Execute instruksi (di mana dilakukan?)
Satuan Hz dalam CPU
Peningkatan kinerja
Pipelining
Cache
Optimasi kompilator (mis. "gcc –O2")
Membuat program komputer
Bahasa Pemrograman – IKP213
10. Bahasa Pemrograman
10
Menyalakan tombol switch on dan off
Hasil komputasi?
Tape
Printer
Bahasa Mesin (Machine Language)
Assembly Language (Bahasa Rakitan)
Mnemonic dari bahasa mesin
ADD, SUB, MULT, DIV, BRANCH, JUMP
Bahasa Pemrograman – IKP213
11. Bahasa Pemrograman
11
Bahasa pemrograman generasi 1
Fortran
COBOL
Bahasa pemrograman lain
ADA, B, C, C++, BASIC, Pascal
Visual Basic, Delphi, Qt, Tcl/Tk, Python, Ruby
PHP
Android
Prolog, Haskell, LISP
Bahasa Pemrograman – IKP213
12. Bahasa Pemrograman
12
Kebutuhan untuk
Bahasa yang lebih mudah
Lebih bebas dari kesalahan
Mendukung multitasking
Berorientasi objek
Dapat berjalan dalam lingkungan terdistribusi / web
Dapat berjalan dalam lingkungan terbatas (mobile
devices)
Bahasa Pemrograman – IKP213
13. Kompilasi dan Interpretasi
13
Bahasa sumber
Ditulis dalam bahasa tingkat tinggi (Java, C, dkk)
Bahasa mesin
Diterjemahkan
Kompilasi atau Interpretasi
Problem: Perbedaan arsitektur dan set instruksi
Penerjemahan ke bahasa mesin
Penerjemahan menjadi bahasa mesin
Hasil penerjemahan dijalankan
Syntax analysis
Bahasa Pemrograman – IKP213
14. Kompilasi dan Interpretasi
14
Syntax tree
Object generation
Target machine language (tergantung arsitektur)
Kompilasi
Dilakukan oleh kompilator
Tidak tergantung kepada kompilator
Interpretasi
Dilakukan oleh interpreter
Selalu tergantung kepada interpreter
Bahasa Pemrograman – IKP213
15. Kompilasi dan Interpretasi
15
Write once, Run eveywhere
Bytecode
Virtual machines
JVM
Python interpreter
Bahasa Pemrograman – IKP213
16. Komputabilitas
16
Computability
Sebuah program mendefinisikan sebuah fungsi
matematik
Tabel basis data SQL Hasil kueri
Dokumen Google Dokumen relevan hasil kueri
Bilangan bulat Konversi Suhu Bilangan dalam
satuan Celsius
Komputasi: Langkah-langkah mendapatkan hasil
fungsi dari input yang diberikan
Bahasa Pemrograman – IKP213
17. Komputabilitas
17
Komputasi; Program; Algoritma
Himpunan
Kumpulan objek
Objek matematika: A = {1, 2, 3}; B = {a, b, c}
Relasi
Pemetaan antara objek-objek dalam himpunan
berbeda
f: A B = { (1, b), (2, a), (3, c) }
f(1) = ?
Bahasa Pemrograman – IKP213
18. Komputabilitas
18
Fungsi
Bentuk khusus dari relasi
Aturan (rule) yang memetakan elemen unik y di
himpunan B dengan setiap elemen x di himpunan A
f:A B
f(x) = y
Domain: Himpunan A
Range (Codomain): Himpunan B
Bahasa Pemrograman – IKP213
19. Komputabilitas
19
f(x) = x^2 + 2x + 3
f(x) = if x = 0 then 0 else x + f(x-2)
Partial Functions
Tidak selalu terdefinisi untuk semua input
Sebuah fungsi bisa dikomputasikan (computable)
jika sebuah program yang mengkomputasikannya
Fungsi f:A B computable jika ada algoritma untuk
menghitungnya
Diberikan x, algoritma tsb berhenti dengan luaran y
Bahasa Pemrograman – IKP213
20. Komputabilitas
20
Noncomputable Functions
Ada fungsi yang tidak bisa dibuat algoritmanya
Halting Problem
Sebuah program P yang menerima masukan sebuah
string x
Luaran dari program P ditulis sebagai P(x)
Tentukan apakah program P berhenti untuk masukan x
Fungsi fHalt(P x) = "stop" jika P berhenti; fHalt(P x) =
, ,
"tidak stop" jika P tidak berhenti
Bahasa Pemrograman – IKP213
21. Komputabilitas
21
Fungsi fHalt tidak computable
Definisikan sebuah fungsi Q(P, x)
Q(P, x) = "stop" jika P(x) = "stop"
Q(P x) = "tidak stop" jika P(x) = "tidak stop"
,
Definisikan sebuah fungsi D(P)
D(P) = "run forever" jika Q(P P) = "stop"
,
D(P) = "stop" jika Q(P P) = "tidak stop"
,
D(P) = "run forever" jika P(P) = "stop"
D(P) = "stop" jika P(P) = "tidak stop"
Bahasa Pemrograman – IKP213
22. Pustaka
22
John Mitchell, "Concepts in Programming Languages"
Arsitektur von Neumann,
http://id.wikipedia.org/wiki/Arsitektur_von_Neuma
nn
PDP-8, http://en.wikipedia.org/wiki/PDP-8
PDP-8, http://www.pdp8.net/
http://tjerdastangkas.blogspot.com/
Bahasa Pemrograman – IKP213
23. Tugas 1
23
Cari informasi di internet tentang siapa itu
John von Neumann
Alan M. Turing
Cari informasi tentang sejarah bahasa Fortran
Bahasa Pemrograman – IKP213
24. Tugas 1
24
Tulis dalam laporan singkat di:
kertas A4
blog
Batas waktu: 19 September 2011, pukul 13.30
WIB
Diloker / sekretariat (pak Haryono)
By e-mail barliant@gmail.com (sertakan URL, Nama,
dan NIM)
Be Creative and be Honest!
Bahasa Pemrograman – IKP213
25. Moral of the Story
25
Multitasking doesn't work for people
Perluwaktu 20 menit untuk berpindah fokus dari satu
pekerjaan ke pekerjaan lain
Seberapa jauh manusia bisa mendayagunakan
komputer?
Seberapa cepat manusia mengetikkan input melalui
keyboard?
Procrastination
Bahasa Pemrograman – IKP213