Library Automation and Digital Archive
LONTAR
Fakultas Ilmu Komputer
Universitas Indonesia

Pencarian Sederhana

Find Similar Add to Favorite

Call Number SK-0531(Softkopi SK-23)
Collection Type Skripsi
Title Penerjemahan Kode Numerik: Bahasa Pemrograman Fortran 77 ke Java ( Numerical Fortran Code to Java Translator)/ Jimmy
Author Jimmy;
Publisher Depok: Fasilkom UI, 2003
Subject FORTRAN 77 (Computer program language)
Location FASILKOM-UI;
Lokasi : Perpustakaan Fakultas Ilmu Komputer
Nomor Panggil ID Koleksi Status
SK-0531(Softkopi SK-23) 03/10091 TERSEDIA
Tidak ada review pada koleksi ini: 6512
Berbagai jenis bahasa pemrograman dikenal dalam dunia ilmu komputer. Masing-masing bahasa pemrograman memiliki kelebihan dan kekurangan. Ada bahasa-bahasa pemrograman yang lebih populer dibandingkan bahasa-bahasa lainnya. Namun, apakah popularitas dari suatu bahasa pemrograman berarti perfoma dari bahasa tersebut juga lebih baik? Laporan ini menjelaskan mengenai perbandingan terhadap 2 (dua) jenis bahasa pemrograman. Kedua bahasa pemrograman yang dipakai sebagai studi kasus adalah bahasa pemrograman Fortran dan Java. Bahasa pemrograman Fortran dikenal sebagai bahasa pemrograman yang biasa digunakan dalam pemrograman yang berhubungan dengan komputasi matematika. Sedangkan, bahasa pemrograman Java merupakan bahasa pemrograman yang banyak sekali digunakan oleh para pembuat program komputer di dunia saat ini. Sebuah alat bantu penerjemah kode bahasa pemrograman Fortran menjadi bahasa pemrograman Java dibangun untuk memfasilitasi perbandingan antara kedua bahasa tersebut. Penerjemah akan menerima masukan berupa kode program dalam bahasa Fortran dan menghasilkan sebuah kode program dalam bahasa Java yang memiliki perilaku eksekusi yang serupa. Program-program tersebut akan diteliti performanya dengan mengukur waktu eksekusi yang dibutuhkan oleh masing-masing program. Teori kompilator menjadi landasan teori yang mendasari pengembangan penerjemah kode. Proses penerjemahan berlangsung dalam 4 (empat) tahap. Tahap-tahap tersebut adalah: 1. Pemrosesan awal (preprocessing), yaitu tahap untuk melakukan penyesuaian-penyesuaian terhadap kode masukan agar pemrosesan pada tahap berikutnya lebih mudah untuk dilakukan. Penyesuaian-penyesuaian tersebut mencakup antara lain: menjaga jumlah maksimum karakter per baris, perubahan seluruh karakter menjadi huruf kecil, dan eliminasi baris kontinuasi. 2. Analisa leksikal, yaitu proses pengelompokkan karakter-karakter menjadi token-token. Token adalah sederetan karakter dengan panjang satu atau lebih yang memiliki arti tersendiri. Token-token tersebut menjadi masukan bagi proses selanjutnya. 3. Analisa sintaksis, yaitu proses pencocokan (matching) dari token-token dengan tata bahasa yang telah didefinisikan sebelumnya. Tata bahasa biasanya tersusun atas produksi-produksi yang ditulis dalam notasi context-free grammar (CFG). 4. Pembentukan kode, yaitu tahap akhir untuk menghasilkan kode keluaran. Tahap ini akan melakukan penerjemahan berdasarkan masing-masing produksi dari tata bahasa. Implementasi untuk tahap analisa leksikal dilakukan dengan memanfaatkan alat bantu yang disebut dengan JLex. JLex merupakan sebuah utilitas yang digunakan untuk menghasilkan sebuah penganalisa leksikal dalam bahasa pemrograman Java berdasarkan definisi tiap token yang dinyatakan dalam bentuk ekspresi reguler. Sedangkan, implementasi penganalisa sintaksis dilakukan dengan memanfaatkan utilitas Java CUP, yaitu utilitas yang digunakan untuk menghasilkan penganalisa sintaksis dalam bahasa pemrograman Java. Dan dua tahap lainnya diimplementasikan dengan melakukan pemrograman dalam bahasa Java. Pengembangan penerjemah kode menghasilkan 1 buah file JLex, 1 buah file Java CUP, dan 16 file Java.. Satu di antara keenam belas file Java tersebut tidak termasuk ke dalam satu kesatuan aplikasi penerjemah. File tersebut merupakan sebuah file yang harus tersedia ketika hendak melakukan kompilasi terhadap kode keluaran yang dihasilkan oleh penerjemah. Penerjemah kode yang dihasilkan memiliki batasan-batasan tertentu. Tidak semua karakteristik bahasa pemrograman Fortran 77 mampu diterjemahkan ke dalam bahasa pemrograman Java. Penyebab keterbatasan-keterbatasan tersebut antara lain diakibatkan oleh perbedaan yang signifikan antara karakteristik Fortran dengan Java, seperti: akses terhadap lokasi memori dan terdapatnya tipe-tipe variabel yang khusus. Selain itu, ada pula keterbatasan yang diakibatkan oleh penanganan yang memerlukan waktu dan penanganan lebih karena kompleksitas dari karakteristik bahasa tersebut, yaitu penanganan file. Uji coba telah dilakukan terhadap penerjemah kode. Uji coba dilakukan dalam beberapa aspek. Aspek-aspek tersebut antara lain: 1. Penanganan variabel 2. Penanganan array 3. Penanganan kontrol program 4. Penanganan subprogram function 5. Penanganan function statement 6. Penanganan input dari user Keseluruhan aspek di atas telah diujicobakan. Hasil uji coba menunjukkan bahwa penerjemah telah dapat menerjemahkan aspek-aspek uji coba tersebut dengan baik. Penerjemah mampu menghasilkan kode keluaran dalam bahasa pemrograman Java dan apabila kode-kode tersebut dikompilasi dan dieksekusi, maka perilaku eksekusi yang diperoleh adalah sama dengan eksekusi dari kode-kode masukan. Setelah uji coba, eksperimen diadakan untuk mencapai tujuan dari Tugas Akhir ini. Pelaksanaan eksperimen dilakukan dengan mempersiapkan beberapa kode program dalam bahasa Fortran yang melakukan perhitungan perkalian matriks dengan vektor dan matriks dengan matriks. Kode-kode tersebut diterjemahkan ke dalam bahasa Java dengan memanfaatkan alat bantu penerjemah yang telah diimplementasikan. Kemudian, perbandingan waktu eksekusi dilakukan untuk tiap pasang kode program Fortran dan Java. Hasil yang diperoleh dari eksperimen menunjukkan bahwa eksekusi dari program-program dalam bahasa pemrograman Fortran membutuhkan waktu yang lebih singkat dibandingkan dengan program-program dalam bahasa pemrograman Java. Salah satu faktor yang menyebabkan hal tersebut adalah kurang optimalnya penerjemahan yang dilakukan oleh alat bantu penerjemah, yaitu menghasilkan operasi penjumlahan tambahan pada perhitungan indeks array. Akan tetapi, faktor tersebut bukan menjadi faktor utama karena tidak selarasnya perbedaan waktu eksekusi dengan perbedaan jumlah operasi penjumlahan yang didapatkan pada pelaksanaan eksperimen.