MEMBUAT PROGRAM FORTRAN YANG USER-FRIENDLY DI LINUX

Tulisan pertama dari 2 tulisan

Dr. Leonard Lisapaly
Program Geofisika - Universitas Indonesia
Depok 16424

Go back to main page |  Go back to articles list |

PENDAHULUAN

Pada era 1980-an bahasa FORTRAN merupakan salah satu bahasa pemrograman yang banyak digunakan karena akurasi dalam perhitungan dan kemudahan dalam pemrograman. Namun bahasa FORTRAN kemudian banyak ditinggalkan orang setelah muncul beberapa bahasa pemrograman lain seperti Pascal, C/C++, dan Delphi. Beberapa faktor yang mengakibatkan bahasa FORTRAN banyak ditinggalkan orang adalah :

Maksud dari tulisan ini adalah untuk memperlihatkan kepada pembaca bahwa dengan Linux beberapa kendala di atas dapat diatasi. Bagi pemrogram FORTRAN tua seperti penulis, bekerja dengan FORTRAN kini menjadi lebih mudah. Selain itu, dokumen-dokumen FORTRAN yang dihasilkan oleh berbagai pemrogram FORTRAN kini dapat dijalankan dengan cara yang lebih mudah dan menarik. Melalui tulisan ini dan tulisan berikutnya akan diperlihatkan beberapa contoh program dasar dalam membuat program FORTRAN yang user-friendly di Linux.

Linux sendiri kini menjadi sistem operasi alternatif yang mulai banyak digunakan di Indonesia. Selain karena sistem operasinya sama seperti UNIX yang banyak digunakan di dunia industri namun tidak memerlukan lisensi, kini banyak program-program menarik untuk aplikasi tertentu dapat diperoleh secara bebas melalui internet. Dalam tulisan berikutnya akan disajikan beberapa contoh membuat gambar dengan gnuplot yang sudah merupakan bagian dari distribusi Linux yang populer seperti SuSE ataupun RedHat.

Sebelum kita lanjutkan pembahasan kita, asumsi yang digunakan oleh penulis adalah bahwa pembaca yang ingin melakukan percobaan telah memiliki :

Perlu diingat bahwa semua yang disyaratkan di atas biasanya sudah tersedia dalam distribusi Linux yang ada. Jika belum ada, biasanya dapat diambil dari internet secara bebas. Catatan lain adalah bahwa dengan shell script pembaca tidak saja dapat menjalankan program FORTRAN secara interaktif, tetapi juga dapat memadukan program FORTRAN dengan program yang ditulis dengan bahasa pemrograman lain ataupun software bebas yang diambil dari internet (Kuliah umum : Integrating FORTRAN, C, shell script and free software in Linux oleh penulis di Jurusan Fisika - FMIPA UI, 11 September 1999). Dengan demikian perlu digaris-bawahi bawah tulisan ini tidak saja dapat bermanfaat bagi pemrogram FORTRAN, tetapi juga pemrogram yang menggunakan bahasa lainnya. Untuk mereka yang terbiasa bekerja dengan Linux/UNIX kadang-kadang belajar suatu bahasa pemrograman tidaklah mutlak. Dengan keberadaan free software yang dapat didownload dari suatu situs tertentu, mereka dapat membuat program yang user-friendly versi mereka sendiri dengan pengetahuan yang memadai tentang script maupun perintah dasar Linux/UNIX seperti sed, awk, cut, echo, dan lain sebagainya. Pengetahuan tentang GUI seperti Tcl/Tk juga akan sangat bermanfaat.

Membuat menu program

Sebagai langkah awal kita untuk membuat program FORTRAN yang user-friendly maka pada bagian ini akan disajikan program sederhana untuk membuat menu program. Menu ini hanya terdiri dari pilihan RUN dan EXIT sebagai percobaan awal. Menu lainnya dapat dicoba oleh pembaca dengan menambahkan pilihan yang diinginkannya secara mudah pada program yang diberikan dalam tulisan ini. Di bawah pilihan RUN kita dapat menempatkan program FORTRAN apa saja yang telah kita buat ataupun perintah-perintah yang dimiliki oleh Linux.

Hal yang penting diingat adalah bahwa Linux secara otomatis akan menambahkan direktori /home/username/bin ke dalam setting PATH setiap seorang user melakukan login. Direktori /home/username/bin adalah direktori dimana seorang user dapat meletakkan executable file-nya sehingga dapat dijalankan dari direktori mana saja. Bagi seorang pengguna Linux atau UNIX yang berpengalaman, hal ini memudahkan dia dalam menempatkan file-file output secara sistematis sehingga memudahkan dia dalam menganalisa hasil dari program-programnya. Dengan demikian, setiap program FORTRAN yang telah di-compile dapat diletakkan di dalam direktori tersebut. Apabila kita tidak ingin menempatkan executable file kita ke dalam direktori tersebut, kita dapat melakukannya dengan menambahkan setting PATH dengan direktori dimana program tersebut diletakkan. Sebagai contoh, kita dapat saja menambahkan baris-baris berikut ini ke dalam file /home/username/.bashrc kita :

PATH="$PATH:/home/username/FORTRAN/bin"
export PATH

dimana direktori /home/username/FORTRAN/bin adalah direktori tempat program FORTRAN kita yang sudah dalam bentuk executable berada.

Kini kita siap untuk memulai membuat menu untuk koleksi program FORTRAN kita. Kita asumsikan bahwa kita memiliki dua direktori penting untuk menyimpan koleksi program FORTRAN dan GUI kita yaitu :

/home/username/FORTRAN
dan
/home/username/tcltk

Langkah berikutnya adalah menuliskan program di bawah ini dengan menggunakan vi editor ataupun penyunting teks lainnya.

#!/bin/sh
INSTALL_DIR=/usr/local/lib
TCL_LIBRARY=$INSTALL_DIR/tcl8.1; export TCL_LIBRARY
TK_LIBRARY=$INTALL_DIR/tk8.1; export TK_LIBRARY
mypro

Simpanlah hasil suntingan Anda ke dalam sebuah file ASCII bernama, misalnya, /home/username/bin/mytcl lalu gantilah attribute-nya menjadi executable dengan

chmod u+x /home/username/bin/mytcl

bila Anda sendiri yang akan menggunakan program tersebut. Jika Anda ingin semua orang dapat menjalankan program tersebut, gunakanlah

chmod a+x /home/username/bin/mytcl

Program tersebut di atas hanya merupakan suatu bentuk inisialisasi dan digunakan untuk memanggil program yang sebenarnya berikut ini. Harap diperhatikan bahwa INSTALL_DIR adalah direktori dimana terdapat dua direktori penting yaitu direktori tcl8.1 dan direktori tk8.1. Jika versi tcl dan tk yang ada di komputer Anda berbeda dengan yang tertera di atas, gantilah dengan versi yang ada, misalnya tcl8.0 dan tk8.0 atau tcl4.2 dan tk4.2.

#!/usr/local/bin/wish8.1
eval destroy [winfo child .]
wm title . "LEONARD'S PROGRAM"
wm geometry . +50+50
. config -bg "#eeeed1"
set tcldir /home/llisapal/cobatcl
set tkdir /home/llisapal/cobatcl
label .info -bg "#eeeed1" -text {
Dr. Leonard Lisapaly
Seismology Group - Geophysics Program
Physics Department - University of Indonesia}
frame .menu -relief raised -borderwidth 1 -bg "#00a5aa" -bd 2
menubutton .menu.run -text "Run" -menu .menu.run.m -bg "#00a5aa"
menu .menu.run.m
.menu.run.m config -bg "#eeeea0"
.menu.run.m add command -label "Celcius ke Fahrenheit" \
            -command "source $tkdir/ctor.tcl"
.menu.run.m add command -label "Plot kurva y vs x" \
            -command "source $tkdir/plotyx.tcl"
.menu.run.m add command -label "Jalankan perintah/script" \
            -command "source $tkdir/lincom.tcl"
menubutton .menu.exit -text "Exit" -menu .menu.exit.m -bg "#00a5aa"
menu .menu.exit.m
.menu.exit.m config -bg "#eeeea0"
.menu.exit.m add command -label "Exit" -command exit
pack .menu -side top -fill x
pack .menu.run -side left
pack .menu.exit -side right
pack .info -padx 30

Simpanlah program tersebut dengan nama, misalnya, /home/username/bin/mypro dan gantilah attributenya menjadi executable. Sebelumnya kita perlu mengetahui dimana program wish8.0 atau wish berada. Untuk mengetahui lokasi program tersebut cukup ketik which wish8.0 atau which wish. Andaikan kita mendapatkan jawaban yang berbeda seperti diberikan di atas, gantilah baris yang mengandung kata wish tersebut dengan lokasi sebenarnya di komputer Anda.


Gambar 1


Gambar 2

Program mypro (lihat Gambar 1) merupakan sebuah program interaktif sederhana dengan dua pilihan yaitu Run dan Exit. Di bawah pilihan Run terdapat 3 sub pilihan, yaitu mengubah derajat Celcius menjadi Fahrenheit, membuat gambar dari kurva y vs x yang datanya disimpan dalam sebuah file ASCII, dan menghitung koefisien refleksi dan transmisi dari suatu gelombang dan menampilkan kurva perhitungannya. Sub pilihan pertama dan kedua merupakan kasus sederhana sebagai contoh awal, sedangkan sub pilihan terakhir merupakan contoh yang lebih kompleks. Melalui sub pilihan pertama penulis ingin memperlihatkan bagaimana interaksi antara user dan komputer melalui program dengan bahasa FORTRAN dapat dibuat menjadi mudah dan menarik. Melalui sub pilihan kedua ingin diperlihatkan bagaimana mengatasi kelemahan grafis dari FORTRAN dengan menggunakan gnuplot. Untuk sub pilihan terakhir, pembahasan hanya akan difokuskan pada bagaimana membaca data dan menuliskan hasil yang siap untuk ditampilkan dalam bentuk grafik dengan memanfaatkan gnuplot untuk menghasilkan tampilan kurva yang lebih rumit. Rincian program FORTRAN untuk sub pilihan ini tidak akan merupakan hal yang penting. Tampilan grafik yang lebih rumit juga dapat dihasilkan dengan menggunakan free software lainnya yang dapat dicari melalui internet.

Dalam tulisan berikutnya akan disajikan secara singkat penulisan program FORTRAN untuk mengubah derajat Celcius menjadi Fahrenheit dan implementasinya ke dalam program interaktif kita serta bagaimana menggunakan gnuplot untuk membuat gambar dari sebuah file ASCII yang terdiri dari variable x dan y. Pada bagian terakhir dari tulisan kedua tersebut akan disajikan pemrograman yang lebih rumit untuk sub pilihan menghitung koefisien refleksi.