180 likes | 650 Views
Sub Program pada FORTRAN Pertemuan 8. Matakuliah : S0683/Algoritma dan Pemrograman Tahun : 2007. Sub Program.
E N D
Sub Program pada FORTRANPertemuan 8 Matakuliah : S0683/Algoritma dan Pemrograman Tahun : 2007
Sub Program Salah satu metode perancangan program yang baik adalah menggunakan konsep modular (pemrograman modular) dimana suatu masalah dipecah menjadi beberapa masalah yang lebih kecil (ke dalam modul-modul/sub program),sehingga program dapat lebih mudah disusun dan dipahami. Dalam FORTRAN, modul direalisasi dengan function dan subroutine. 3
Keuntungan menggunakan modul • Rancangan top-down, program besar dibagi menjadi modul-modul yang lebih kecil • Dapat dikerjakan oleh beberapa orang dengan koordinasi yang relatif mudah • Mencari kesalahan relatif mudah karena alur logika lebih jelas dan kesalahan sudah teralokasi • Modifikasi dapat dilakukan tanpa mengganggu program secara keseluruhan • Mempermudah dokumentasi
Function Function terdiri dari 3 macam, yaitu: • Statement Function (Fungsi Statement) Suatu fungsi yang didefinisikan dalam bentuk sebuah statement yang ada dalam program utama • External Function (Fungsi Eksternal) Fungsi yang berupa unit program tersendiri, terpisah dari program utama • Intrinsic Function (Fungsi Intrinsik) Fungsi yang telah disediakan oleh FORTRAN 5
Fungsi Statement Bentuk umum: <fname> (<farg>) = <expr> <fname> adalah nama fungsi statement yang didefinisikan <farg> adalah nama formal argumen fungsi yang berupa data yang diberikan kepada fungsi tersebut <expr> adalah suatu ungkapan fungsi statement yang didefinisikan Fungsi statement harus diletakkan sebelum suatu executable statement, sedangkan fungsi statement itu sendiri tidak termasuk sebagai executable statement, karena tidak dieksekusi untuk menghasilkan sesuatu, tetapi hanya didefinisikan saja. Executable statement yang menggunakan fungsi ini yang akan dieksekusi 6
Contoh Fungsi Statement FAH(C) = 1.8 * C + 32 Write(*,*) ‘CELCIUS FAHRENHEIT’ Write(*,*) ‘---------------------’ Celcius = 0.0 5 WRITE(*,’(1X,F7.2,4X,F10.2)’) Celcius,FAH(Celcius) IF (Celcius .LT. 10.0) THEN Celcius = Celcius + 0.5 GOTO 5 END IF END Fungsi Statement 7
Fungsi Eksternal Bentuk umum: <type> FUNCTION <fname> (<farg>) <type> adalah tipe dari fungsi eksternal, dapat berupa: INTEGER,REAL, DOUBLE PRECISION, LOGICAL <fname> adalah nama fungsi eksternal yang didefinisikan <farg> adalah nama formal argumen fungsi yang berupa data yang diberikan kepada fungsi tersebut Nama dari fungsi eksternal harus digunakan sebagai suatu variabel di dalam unit program fungsi eksternal tersebut, yang menampung hasil akhir dari fungsi eksternal 8
Contoh Fungsi Eksternal Write(*,*) ‘CELCIUS FAHRENHEIT’ Write(*,*) ‘---------------------’ Celcius = 0.0 5 WRITE(*,’(1X,F7.2,4X,F10.2)’) Celcius,FAH(Celcius) IF (Celcius .LT. 10.0) THEN Celcius = Celcius + 0.5 GOTO 5 END IF END C Fungsi eksternal menghitung konversi Celcius ke Farenheit REAL FUNCTION FAH(C) FAH = 1.8 * C + 32 END 9
Fungsi Intrinsik • Beberapa fungsi instrinsik yang sering digunakan: • MOD(I,J) -> fungsi untuk mendapatkan sisa pembagian • Sisa = MOD(13,3) -> isi dari variabel Sisa = 1 • SQRT(X) -> fungsi untuk menghitung akar dari suatu nilai real • Akar = SQRT(9.0) -> isi dari variabel Akar =3.0 • MAX0(I,J,...) -> fungsi untuk memilih nilai yang paling besar • Besar = MAX0(30,25,13,27,41) -> isi dari variabel Besar = 41 • MIN0(I,J,...) -> fungsi untuk memilih nilai yang paling kecil • Kecil = MIN0(30,25,13,27,41) -> isi dari variabel Kecil = 13 10
Fungsi Intrinsik Lanj. • EXP(X) -> fungsi untuk menghitung eksponen dari suatu nilai real • Y = EXP(12.75) -> isi dari variabel Y = 344551.9 • SIN(X) -> fungsi untuk menghitung nilai sinus dari suatu nilai real • Y = SIN(60.00) -> isi dari variabel Y = 0.86603 • COS(X) -> fungsi untuk menghitung nilai cosinus dari suatu nilai real • Y = COS(60.00) -> isi dari variabel Y = 0.5 • TAN(X) -> fungsi untuk menghitung nilai tangen dari suatu nilai real • Y = TAN(60.00) -> isi dari variabel Y = 1.73 11
Perbedaan FUNCTION dan SUBROUTINE • Function didesain untuk mengembalikan sebuah nilai. Subroutine dapat mengembalikan lebih dari sebuah nilai atau tidak mengembalikan nilai apapun • Function mengembalikan nilai melalui nama fungsi, subroutine mengembalikan nilai melalui argumen • Function dipanggil dengan menggunakan namanya, subroutine dipanggil dengan menggunakan CALL statement
Subroutine Bentuk umum: SUBROUTINE <subroutine-name> (<farg>) <subroutine-name> adalah nama dari subroutine <farg> adalah nama formal argumen yang berupa data yang diberikan atau dikirimkan kepada atau dari subroutine 13
Contoh Subroutine Write(*,*) ‘CELCIUS FAHRENHEIT’ Write(*,*) ‘---------------------’ Celcius = 0.0 5 WRITE(*,’(1X,F7.2,4X,F10.2)’) Celcius, CALL FAH(Celcius,Fahrenheit) IF (Celcius .LT. 10.0) THEN Celcius = Celcius + 0.5 GOTO 5 END IF END C Subroutine menghitung konversi Celcius ke Farenheit SUBROUTINE FAH(C,F) F = 1.8 * C + 32 END 14