Sabtu, 07 Januari 2012

Perbedaan Interpreter dengan Compiler


*Interpreter adalah perangkat lunak yang mampu mengeksekusi code program (yang ditulis oleh programmer) lalu menterjemahkannya ke dalam bahasa mesin, sehingga mesin melakukan instruksi yang diminta oleh programmer tersebut. Perintah-perintah yang dibuat oleh programmer tersebut dieksekusi baris demi baris, sambil mengikuti logika yang terdapat di dalam kode tersebut. Proses ini sangat berbeda dengan compiler, dimana pada compiler, hasilnya sudah langsung berupa satu kesatuan perintah dalam bentuk bahasa mesin, dimana proses penterjemahan dilaksanakan sebelum program tersebut dieksekusi.

*Sedangkan Compiler sendiri adalah program sistem yang digunakan sebagai alat bantu dalam pemrogaman.Perangkat lunak yang melakukan proses penterjemahan code (yang dibuat programmer) ke dalam bahasa mesin. Hasil dari terjemahan ini adalah bahasa mesin. Pada beberapa compiler, output berupa bahasa mesin dilaksanakan dengan proses assembler yang berbeda.

*Untuk lebih jelas mengenai perbedaan antara Interpreter dengan Compiler, ada baiknya saya jelaskan lebih terperinci mengenai dua hal ini.

Perbedaan antara Compiler dengan Interpreter :
1. Jika hendak menjalankan program hasil kompilasi dapat dilakukan tanpa butuh kode sumber. Kalau interpreter butuh kode sumber.
2. Jika dengan kompiler, maka pembuatan kode yang bisa dijalankan mesin dilakukan dalam 2 tahap terpisah, yaitu parsing ( pembuatan kode objek ) dan linking ( penggabungan kode objek dengan library ) . Kalau interpreter tidak ada proses terpisah.
3. JIka compiler membutuhkan linker untuk menggabungkan kode objek dengan berbagai macam library demi menghasilkan suatu kode yang bisa dijalankan oleh mesin. Kalau interpreter tidak butuh linker untuk menggabungkan kode objek dengan berbagai macam library.
4. Interpreter cocok untuk membuat / menguji coba modul ( sub-routine / program-program kecil ). Maka compiler agak repot karena untuk mengubah suatu modul / kode objek kecil, maka harus dilakukan proses linking / penggabungan kembali semua objek dengan library yang diperlukan.
5. Pada kompiler bisa dilakukan optimisasi / peningkatan kualitas kode yang bisa dijalankan. Ada yang dioptimasi supaya lebih cepat, ada yang supaya lebih kecil, ada yang dioptimasi untuk sistem dengan banyak processor. Kalau interpreter susah atau bahkan tidak bisa dioptimasikan.




Contoh Program Menu dalam Cobol


       IDENTIFICATION DIVISION.
       PROGRAM-ID. SITI.
       AUTHOR. FANA.       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SOURCE-COMPUTER. TOSHIBA.
       OBJECT-COMPUTER. THOSHIBA.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 BIODATA.
           02 NAMA1 PIC A(16).
           02 NPM1 PIC 9(8).
           02 KELAS1 PIC X(5).
       01 EDIT.
           02 NAMA2 PIC A(4).
           02 NPM2 PIC Z(3).
           02 KELAS2 PIC X(3)/X(5).
       01 DAFTAR.
           02 NILAI1 PIC 99.
           02 NILAI2 PIC 99.
           02 NILAI3 PIC 99.
       01 JAWAB PIC X VALUE SPACE.
           88 LAGI VALUE "Y", "y".
           88 TIDAK VALUE "T", "t".
       77 PIL PIC X.
       SCREEN SECTION.
       01 HAPUS-LAYAR.
           02 BLANK SCREEN.
       01 MENU.
           02 LINE 2 COLUMN 20 VALUE '>>>MENU<<<', FOREGROUND-COLOR 9.
           02 LINE 3 COLUMN 20 VALUE '[1]. MASUKKAN DATA',
           FOREGROUND-COLOR 9, BACKGROUND-COLOR 4, BLINK.
           02 LINE 4 COLUMN 20 VALUE '[2]. LIHAT HASIL', HIGHLIGHT.
           02 LINE 5 COLUMN 20 VALUE '[3]. SELESAI', REVERSE-VIDEO.
           02 LINE 6 COLUMN 20 VALUE 'SILAKAN MASUKKAN PILIHAN ANDA'.
           02 COLUMN PLUS 2 PIC X TO PIL.
       01 INPUT-DATA.
           02 LINE 4 COLUMN 6 VALUE 'NAMA  : '.
           02 COLUMN PLUS 2 PIC A(16) TO NAMA1.
           02 LINE 5 COLUMN 6 VALUE 'NPM   : '.
           02 COLUMN PLUS 2 PIC 9(8) TO NPM1.
           02 LINE 6 COLUMN 6 VALUE 'KELAS :'.
           02 COLUMN PLUS 2 PIC X(5) TO KELAS1.
       01 MASUKAN.
           02 LINE 3 COLUMN 10 VALUE '>>>MASUKAN DATA<<<'.
           02 LINE 4 COLUMN 6 VALUE 'NAMA  : '.
           02 COLUMN PLUS 2 PIC A(16) TO NAMA1.
           02 LINE 5 COLUMN 6 VALUE 'NPM   : '.
           02 COLUMN PLUS 2 PIC 9(8) TO NPM1.
           02 LINE 6 COLUMN 6 VALUE 'KELAS : '.
           02 COLUMN PLUS 2 PIC X(5) TO KELAS1.
        01 MASUKAN-DATA.
           02 LINE 6 COLUMN 6 VALUE 'NILAI A ='.
           02 COLUMN PLUS 2 PIC 99 TO NILAI1.
           02 LINE 7 COLUMN 6 VALUE 'NILAI B ='.
           02 COLUMN PLUS 2 PIC 99 TO NILAI2.
       01 TAMPIL.
           02 LINE 9 COLUMN 6 VALUE 'HASIL   ='.
           02 COLUMN PLUS 2 PIC 99 FROM NILAI3.
       01 LULUS.
           02 LINE 13 COLUMN 6 VALUE 'ANDA LULUS'.
       01 TIDAK-LULUS.
           02 LINE 13 COLUMN 6 VALUE 'ANDA TIDAK LULUS'.
       PROCEDURE DIVISION.
       MULAI.
           DISPLAY HAPUS-LAYAR.
           DISPLAY MENU.
           ACCEPT MENU.
       SELEKSI.
           IF PIL=1
           PERFORM HASIL
           PERFORM TANYA.
           IF PIL=2
           PERFORM HASIL1
           PERFORM DATAKU
           PERFORM HASIL2.
           IF PIL=3
           PERFORM LAYAR-KELUAR
           PERFORM SELEKSI2
           ELSE GO TO
           SELESAI.
       SELESAI.
           STOP RUN.
       TANYA.
           DISPLAY SPACE.
           DISPLAY 'APAKAH ANDA INGIN MEMASUKKAN DATA BARU [Y/T] :'.
           ACCEPT JAWAB.
           IF LAGI GO TO HASIL.
           IF TIDAK GO TO MULAI
           ELSE GO TO SELESAI.
       HASIL.
           DISPLAY HAPUS-LAYAR.
           DISPLAY INPUT-DATA.
           ACCEPT INPUT-DATA.
           GO TO TANYA.
       HASIL1.
           DISPLAY HAPUS-LAYAR.
           DISPLAY MASUKAN.
           ACCEPT MASUKAN.
       DATAKU.
           MOVE NAMA1 TO NAMA2.
           MOVE NPM1 TO NPM2.
           MOVE KELAS1 TO KELAS2.
       HASIL2.
           DISPLAY SPACE.
           DISPLAY SPACE.
           DISPLAY HAPUS-LAYAR.
           DISPLAY '    ***PERUBAHAN***'.
           DISPLAY NAMA1  '  MENJADI  ' NAMA2.
           DISPLAY NPM1 '  MENJADI  ' NPM2.
           DISPLAY KELAS1 '  MENJADI  ' KELAS2.
       LAYAR-KELUAR.
           DISPLAY HAPUS-LAYAR.
           DISPLAY MASUKAN-DATA.
           ACCEPT MASUKAN-DATA.
           COMPUTE NILAI3=(NILAI1 + NILAI2)/2.
           DISPLAY TAMPIL.
           DISPLAY SPACE.
           DISPLAY SPACE.
       SELEKSI2.
           IF NILAI3 =60
           DISPLAY LULUS.
           IF NILAI3 >60
           DISPLAY LULUS.
           IF NILAI3 <60
           DISPLAY TIDAK-LULUS
           ELSE GO TO
           SELESAI.











                                                                                                                                      











Cara Membuat Pizza @_@

Bahan-Bahan:
Roti:
300 gr terigu
1 sdm ragi instan
1 btr telur
2 sdt gula pasir
30 ml olive oil (minyak zaitun)
150 ml air
garam secukupnya

Saus:
1-2 sdm minyak zaitun
1/2 bh bawang bombay,cincang kotak2
1 siung bawang putih, cincang halus
250 gr tomat kaleng/pasta tomat(bisa diganti tomat 5-7 buah, direbus trus diparut)
1 sdt garam
1/2 sdt gula
1/2 sdt basil
1 sdt oregano
Topping:
50 gr daging cincang/smoked beef
50 gr daging ayam,cincang kotak2 kecil
1 kaleng ikan tuna
1/4 bh bawang bombay, iris bulat tipis
1/4 bh paprika merah,hijau, kuning, potong kotak bulat tipis
1/2 kaleng jamur/jamur segar 25 gr
1 bh keju mozarella, parut

Cara Membuat:
Roti:
1. ayak tepung, lalu campurkan garam dan ragi instan.
2. masukkan air hangat dan minyak zaitun sambil diuleni selama -/+ 10 menit(sampai kalis). lalu bulatkan adonan..
3. diamkan adonan selama -/+ 15 menit.
4. taburi talenan dan adonan dgn sedikit tepung, lalu giling adonan sesuai bentuk loyang,
5.oles loyang dgn minyak zaitun.
6. taruh adonan yg sudah dibentuk ke dalam loyang.
Saus:
1. panaskan minyak zaitun. tumis bwg bombay dan bwg putih sampai layu.
2. masukkan pasta tomat. masak sampai kental dan meletup2(sambil diaduk).
3. masukkan garam, gula, oregano dan basil.
4. masukkan daging cincang/ daging ayam/ ikan tuna. masak sampai matang, lalu diangkat.
Penyelesaian:
1. taruh saus-nya diatas adonan roti pizza, yg sebelumnya telah diolesi minyak zaitun pada permukaannya.
2. taburkan bawang bombay, paprika, daing cincang/ayam/tuna, jamur dan keju mozarella.
3. oven selama 20 menit dlm suhu 200 derajat celcius.

Tips :
- Jika terlalu basah adonannya, maka tambahkan tepung(sedikit2) dan bila terlalu kering kaku, tambahkan air(sedikit2).
- resep ini akan menghasilkan roti pizza dgn ketebalan sempurna, bila menggunakan ukuran loyang bundar diameter 24-26cm.
- bila ingin membuat 2 loyang pizza, dgn ukuran loyang lebih kecil dari 24-26cm, tambahkan bahan2 diatas, sesuai perbandingan besar loyangnya.
- ketika menaruh saus, jangan sampai ke tepi adonan roti pizza. sisakan sekitar 1cm. untuk menghindari saus keluar dari adonan(krn roti pizza akan mengembang ketika di oven) yang menyebabkan proses pematangan pizza lebih lama lagi.
- taburan keju digunakan pada topping paling akhir, yang gunanya selain untuk penambah rasa juga utk merekatkan semua topping.
- untuk mengecek apakah pizza sudah matang atau belum, tusuk adonan pizza dgn tusuk gigi/garpu/ujung pisau. tusuk pada bagian tepi luar (yang tidak terkena saus), lalu lihat apakah roti sudah mengembang sempurna ato belum. kalo masih lembek berarti belum matang.