ikp213-02-pendahuluan
Upcoming SlideShare
Loading in...5
×
 

ikp213-02-pendahuluan

on

  • 880 views

 

Statistics

Views

Total Views
880
Views on SlideShare
880
Embed Views
0

Actions

Likes
0
Downloads
33
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

ikp213-02-pendahuluan ikp213-02-pendahuluan Presentation Transcript

  • Bahasa Pemrograman (IKP213.v.2)Pertemuan 2: Pendahuluan bagian ke-2, 17 September 2012
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • Kompilasi dan Interpretasi• Write once, Run eveywhere• Bytecode• Virtual machines – JVM – Python interpreter Bahasa Pemrograman – IKP213 9
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • Komputabilitas• Noncomputable Functions – Ada fungsi yang tidak bisa dibuat algoritmanya – Tidak ada output yang mungkin dihasilkan – Running forever Bahasa Pemrograman – IKP213 19
  • 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
  • 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
  • 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
  • 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
  • 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
  • Pustaka• John Mitchell, "Concepts in Programming Languages"• http://tjerdastangkas.blogspot.com/search/la bel/ikp213 Bahasa Pemrograman – IKP213 25
  • Akhir Pertemuan 2Senin, 17 September 2012