ikp213-02-pendahuluan

1,105 views

Published on

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,105
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
52
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

ikp213-02-pendahuluan

  1. 1. Bahasa Pemrograman (IKP213.v.2)Pertemuan 2: Pendahuluan bagian ke-2, 17 September 2012
  2. 2. Bahasa Pemrograman• 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 2
  3. 3. Bahasa Pemrograman• 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 3
  4. 4. Bahasa Pemrograman• 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 4
  5. 5. Kompilasi dan Interpretasi• Program dan Proses – Untuk bisa dieksekusi di CPU – Program dimuat ke memori utama – Program mendeskripsikan proses dinamis yang dijalankan CPU• Bahasa sumber – Ditulis dalam bahasa tingkat tinggi (Java, C, dkk) – Syntax Bahasa Pemrograman – IKP213 5
  6. 6. Kompilasi dan Interpretasi• Bahasa mesin – Diterjemahkan dari bahasa sumber – Rangkaian aksi yang dijalankan CPU• Problem: Perbedaan arsitektur dan set instruksi• Penerjemahan ke bahasa mesin – Kompilasi atau Interpretasi – Syntax analysis – Syntax tree – Object generation Bahasa Pemrograman – IKP213 6
  7. 7. Kompilasi dan Interpretasi – Target machine language (tergantung arsitektur)• Kompilasi – Sebelum dieksekusi – Tidak tergantung kepada kompilator• Interpretasi – Penerjemahan dan Eksekusi dilakukan bersamaan – Selalu tergantung kepada interpreter Bahasa Pemrograman – IKP213 7
  8. 8. Kompilasi dan Interpretasi• Tahapan – Analisis leksikal – Analisis sintaks • Backus-Naur Form (John Backus) – Analisis semantik – Pembangkitan kode antara – Optimasi kode – Pembangkitan kode target Bahasa Pemrograman – IKP213 8
  9. 9. Kompilasi dan Interpretasi• Write once, Run eveywhere• Bytecode• Virtual machines – JVM – Python interpreter Bahasa Pemrograman – IKP213 9
  10. 10. Komputabilitas• Computer – to Compute• Apa bedanya dengan Calculator? – to Calculate• Compute F to C• Compute reverse of "Hello"• Compute gene transcription Bahasa Pemrograman – IKP213 10
  11. 11. Komputabilitas• Definite Procedure – Precise set of steps – Finite• Turing Machine – Tape, infinitely long to the left and right – Head, read from or write to the tape – States – Transitions Bahasa Pemrograman – IKP213 11
  12. 12. Turing Machine• Determine whether there is an odd or even number of 1s in "011..11110" – Write a single 0 on the tape if even, – write a single 1 otherwise• States: {start, even, odd}• Transitions: – If in start state, and read 0, Change to Even state, replace 0 with blank, move right Bahasa Pemrograman – IKP213 12
  13. 13. Komputabilitas• Input  Process  Output• 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 13
  14. 14. Komputabilitas• Komputasi; Program; Algoritma• Contoh 1 – f: x  x^2 + 2x – Nilai masukan x diterapkan langkah-langkah – t1 = x * x – t2 = 2 * x – t3 = t1 + t2 – f(x) = t3 Bahasa Pemrograman – IKP213 14
  15. 15. Komputabilitas• Contoh 2 – g: (x, y)  i = 0; for j=0; j<y; j++: i = i+x; g(x,y) = i – Menghitung perkalian x dan y Bahasa Pemrograman – IKP213 15
  16. 16. Komputabilitas• 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 16
  17. 17. Komputabilitas• 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 17
  18. 18. Komputabilitas• 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 ada sebuah program yang mengkomputasikannya – Fungsi f:A  B computable jika ada algoritma untuk menghitungnya – Diberikan x, algoritma tsb berhenti dengan hasil y Bahasa Pemrograman – IKP213 18
  19. 19. Komputabilitas• Noncomputable Functions – Ada fungsi yang tidak bisa dibuat algoritmanya – Tidak ada output yang mungkin dihasilkan – Running forever Bahasa Pemrograman – IKP213 19
  20. 20. 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 20
  21. 21. Universal Turing Machine• Universal Turing Machine (U)• Turing Machine dengan input mesin Turing yang lain (M)• Mensimulasikan cara kerja mesin Turing yang menjadi input – U(M) Bahasa Pemrograman – IKP213 21
  22. 22. Komputabilitas• Fungsi fHalt tidak computable• Definisikan sebuah fungsi U(M, x) – U(M, x) = "stop" jika M(x) = "stop" – U(M, x) = "tidak stop" jika M(x) = "tidak stop" Bahasa Pemrograman – IKP213 22
  23. 23. Komputabilitas• 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 23
  24. 24. Komputabilitas• Contoh program akan dikompilasi i = 0; while (i != f(i)) i = g(i); print(i);• Bagaimana menentukan bahwa program ini berfungsi sebagaimana yang diinginkan? Bahasa Pemrograman – IKP213 24
  25. 25. Pustaka• John Mitchell, "Concepts in Programming Languages"• http://tjerdastangkas.blogspot.com/search/la bel/ikp213 Bahasa Pemrograman – IKP213 25
  26. 26. Akhir Pertemuan 2Senin, 17 September 2012

×