Teori Pemrograman Terstruktur Bahasa Fortran BAB I PENDAHULUAN 1.

1 Sekilas Tentang FORTRAN Fortran adalah salah satu bahasa tingkat tinggi (High Level Language) yang berfungsi menterjemahkan bahasa manusia (program) kedalam bahasa mesin (kode-kode mesin) yang siap dieksekusi oleh komputer. Fortran merupakan singkatan dari FORmula TRANslation. Bahasa Pemrograman Fortran lebih umum digunakan untuk menyelesaikan masalah pemrograman yang lebih umum berorientasi kepada masalah teknik. Bahasa Fortran merupakan salah satu bahasa tertua komputer, sehingga dari tahun-ketahun mengalami kemajuan dan perubahan, sehingga setiap pabrik software memakai cara dan pemakaian berbeda. Maka pada tahun 1977 dilakukan pembakuan (standard) Bahasa Fortran yang dikenal dengan nama FORTRAN77. Pada FORTRAN77 mencakup semua pernyataan dari versi sebelumnya serta ciri-ciri baru yang melengkapi dan memperbaharuinya, maka Bahasa Fortran yang dipelajari sekarang ini adalah Fortran versi 77 (FORTRAN77). Untuk membuat program Fortran dapat digunakan editor apa saja, apaka SideKick (SK), WordStart (WS), dan lain-lain. Dalam membuat program Fortran, setiap nama program harus diakhiri dengan ".FOR" (titik FOR). Cara pemberian nama tidak boleh lebih dari 8 digit karakter dan tidak boleh ada space kosong (blank). 1.2 Struktur Program Salah satu konsep dasar yang sangat penting dan perlu diketahui dalam membuat program Fortran adalah mengetahui bentuk dari struktur bahasa Fortran itu sendiri, karena jika tidak memahami dan mengetahui strukturnya maka program tersebut tidak dapat diterjemahkan oleh komputer. Struktur program Fortran didasari atas pembagian kolom dalam penulisan program. 1 (satu) baris hanya boleh ada 1 (satu) pernyataan yang terbagi kedalam 80 kolom, dimana pembagian kolom-kolom tersebut adalah sebagai berikut : Kolom 1 Jika diisi dengan : - "C" ,"c" atau "*" menyatakan baris tersebut hanya merupa kan baris komentar (tidak dieksekusi oleh komputer). - "$" (dollar) menyatakan baris tersebut berisi dengan meta command. Kolom 1-5 Digunakan untuk penulisan nomor label pernyataan, yang berupa suatu angka bilangan bulat diantara 1 sampai dengan 99999. Kolom 6 Berfungsi untuk meletakkan tanda sambungan, bahwa baris tersebut merupakan sambungan dari baris sebelumnya. Dapat berisi semua jenis karakter yang ada kecuali 0 (nol). Baris sambungan dapat mencapai 19 (sembilan belas) baris berturut-turut. Kolom 7-72 Digunakan untuk menulis pernyataan atau perintah (statement) Fortran. JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK”
Halaman : 1

Teori Pemrograman Terstruktur Bahasa Fortran Kolom 73-80 Kolom ini tidak digunakan oleh Fortran, boleh berisi komentar bebas yang diinginkan programmer. Pembagian kolom dalam 1 (satu) baris dapat dilihat pada gambar berikut : tanda komentar atau metacommand (c/$) tanda sambung |1-----5|6|7-------------------------------------------------------------------------------72|73---------80| pernyataan / perintah (statement) komentar bebas nomor label Contoh Kolom 0 1 2 3 4 8 12345678901234567890123456789012345678901234567............0 $DEBUG ---> Metacommand WRITE (*,5) ---> pernyataan 5 FORMAT ('progam Fortran - Contoh Saja') 1.3 Metacommand Metacommand atau compiler directive adalah bahasa pengontrol (control language) dari compiler Fortran yang gerfungsi untuk berkomunikasi antara programmer dengan compiler mengenai informasi-informasi tertentu. Metacommand dengan argumenya harus ditulis dalam1 (satu) baris, tidak boleh lebih, dan tidak boleh menggunakan tanda sambung. Disini tidak dijelaskan semua metacommand tersebut, hanya metacommand yang dirasa perlu saja bagi programmer tingkat formula atau menengah kebawah. Metacommand tersebut adalah sebagai berikut : a. $DEBUG dan $NODEBUG Bentuk umum : $[NO]DEBUG $DEBUG untuk mendeteksi kesalahan program pada saat run time (logika program). Jika terjadi kesalahan compiler akan memberitahukan dilayar monitor nomor baris berapa yang salah dan apa nama program Fortrannya. Defaultnya adalah $NODEBUG, yaitu bila tidak dibuat $DEBUG maka program tersebut dalam keadaan $NODEBUG (kalau ada kesalahan run time maka compiler tidak memberitahukan). Contoh : Jika terjadi kesalahan dalam menjalankan program seperti : ? Error: Data format error in file USER Error Code 12244, status 000F Line 5 In MAIN Of CONTOH.FOR PC = 0001: 4c2f; SS = 536C, FP = 0C17, SP = FF30D kesalahan terletak dibaris ke 5 nama source program CONTOH.FOR JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK”
Halaman : 2

Teori Pemrograman Terstruktur Bahasa Fortran b. $INCLUDE Bentuk umum : $INCLUDE: 'nama_program.FOR' Digunakan untuk menyisip program lain (source program) pada posisi $INCLUDE. Program yang lain (source program) sebaiknya tidak diakhiri dengan END bila disisip didepan atau ditengah program. Contoh : -------------------------------------------------------------------------------------------------------------Kolom 12345678901234567890123456789012345678901234567.........……………………...0 1 2 3 4 8 -------------------------------------------------------------------------------------------------------------C program 1 nama program CONTOH1.FOR $DEBUG WRITE (*,10) 10 FORMAT ('Ini Pada Contoh 1') -----------------------------------------------------------C program 2 nama program CONTOH2.FOR $DEBUG $INCLUDE: 'CONTOH1.FOR' WRITE (*,25) 25 FORMAT ('Ini Pada Contoh 2') END Bila program CONTOH2.FOR dijalankan, maka akan keluar hasil sebagai berikut : Ini Pada Contoh 1 ---> hasil program CONTOH1.FOR (include) Ini Pada Contoh 2 ---> hasil program CONTOH2.FOR 1.4. Tipe Data Nilai-nilai data didalam program Fortran disimpan oleh variabel data. Untuk membuat variabel yang pertama sekali harus ditentukan adalah nama dari variabel dan besar nilai yang dapat ditampung oleh variabel tersebut. Cara pemberian nama variabel adalah sebagai berikut : - Panjang yang dikenal hanya 6 digit - Harus didahului dengan huruf (karakter pertama harus huruf) - Tidak boleh ada blank atau spasi kosong - Tidak boleh memakai karakter khusus ("*","+","-",dll) - Tidak boleh kata-kata yang didefinisikan oleh Fortran. Contoh: Data ---> boleh 2XY ---> salah karena didahului oleh angka X Y ---> salah karena ada blank Write ---> salah karena pernyataan Fortran Data-a ---> salah karena ada "-" Untuk tipe data bilangan (angka), menentukan besar nilai yang dapat ditampung oleh sebuah variabel ditentukan dari banjang byte memory yang dibutuhkan untuk, yaitu dengan memakai rumus : Besar_nilai = 2 pangkat (8 x byte_memory) JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK”
Halaman : 3

Teori Pemrograman Terstruktur Bahasa Fortran Karena didalam variabel bilangan (angka) mempunyai 2 (dua) jenis nilai, yaitu positif dan negatif, maka jangkauan nilainya dari -(2^(8*byte)/2) sampai dengan +(2^(8*byte)/2-1). Dikurang satu karen 0 (nol) termasuk kedalam bilangan positif. Nilai byte dalam bilangan bulat kelipatan 2 (dua) pangkat n , dimana nilai n bilangan bulat positif dan 0 (nol). Besarnya nilai byte tergantung dari jenis Prosesor Komputer. Contoh : Integer*4 A Artinya nama variabel A dengan tipe data bilangan bulat yang panjang byte memorynya 8 byte. Nilai yang sanggup ditampung oleh A adalah -(2^(8*4)/2) = -2147483648 sampai dengan +(2^(8*4)/2-1) = +2147483647 Untuk menentukan tipe data dalam Fortran dapat dilakukan dengan 2 (dua) cara, yaitu : - Implisit - Eksplisit. 1.4.1. Implisit Tipe data yang dikandung oleh sebuah variabel ditentukan dengan huruf pertama nama variabel tersebut. Jika nama vaiabel diawali denga huruf I, J, K, L, M, N maka nilai yang dikandung adalah bilangan bulat (Integer), selain dari itu nilai yang dikandung adalah bilangan pecahan (real) yang panjang nilainya 4 byte. Pemesanan lain dengan cara ini adalah untuk memesan variabel logika (LOGICAL), yaitu variabel yang hanya mempunyai nilai .TRUE. dan .FALSE. saja. Pemesanan dapat dilakukan dengan memberikan nilai .TRUE. atau .FALSE. kedalam sebuah nama variabel (huruf awal nama variabel boleh dari a-z atau A-Z). Contoh : MAD = .TRUE. DBS = .FALSE. 1.4.2. Eksplisit Tipe data variabel dengan metode ini dilakukan dengan pernyataan khusus, yaitu: - INTEGER - REAL - CHARACTER - LOGICAL. 1.4.2.1 INTEGER INTEGER, yaitu digunakan untuk memesan tipe data bilangan bulat. Pemesanan dengan cara ini dikhususkan untuk nama variabel dengan awalan selain dari I, J, K, L, M, dan N, baik huruf kecil maupun huruf besar. Bentuk umum dari pernyataan ini adalah ; INTEGER[*byte] nama_variabel1, ..., nama_variabeln Contoh : INTEGER umur, Berat INTEGER*2 Besar1

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK”

Halaman : 4

kota -->panajang digit nilai alamat dan kota 15 byte (karakter). maksimal 127 byte. Bentuk umum dari operaasi aritmetik adalah sebagai berikut : nama_variabel = ekspresi nama_variabel yang dipakai dalam operasi ini haruslah dengan tipe data bilangan (numerik) baik pecahan ataupun bilangan bulat. CHARACTER CHARACTER. Cara diatas juga dapat dibuat seperti : CHARACTER nama*4 --> panjang digit nilai nama 4 byte (karakter) CHARACTER Alamat*15.. Pemesanan cara ini dikhususkan untuk nama variabel yang berawal I. nomor REAL*8 Jumlah 1. L. Contoh : CHARACTER nama --> panjang digit nilai nama 4 byte (karakter) CHARACTER*15 alamat. Bentuk umum pernyataan ini adalah : REAL[*byte] nama_variabel1.2. dan N.5.. 1. Bentuk umum dari deklarasi ini adalah : LOGICAL nama_variabel1. baik huruf kecil maupun huruf besar.2.. yaitu digunakan untuk memesan tipe data bilangan pecahan (berkoma). yang nilai dari variabel tersebut hanya . saja. M. .4.. Operasi Aritematika Operasi aritmetik adalah melakukan perhitungan dengan menggunakan operator aritmetik.4.4.Teori Pemrograman Terstruktur Bahasa Fortran 1. nama_variabeln Contoh : LOGICAL mad. Bentuk umum pernyataan ini adalah : CHARACTER*n nama_variabel1. Jika nilai n tidak dibuat maka panjang digitnya adalah 4 byte.FALSE. ekspresi dapat berupa nilai bilangan atau merupakan mengoperasikan bilangan (nilai numerik) atau variabel numerik dengan menggunakan operator arotmetik. Dbs 1. REAL REAL... dan .2..2. .. nama_variabeln Contoh : REAL nilai.. Operator yang dipakai adalah sebagai berikut : JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 5 .4. LOGICAL LOGICAL digunakan untuk memesan variabel logika. K. kota*10 -->panjang digit yang ditampung oleh nilai untuk variabel nama sebanyak 15 digit dan kota 10 digit.TRUE.3. J. nama_variabeln n => panjang digit yang dapat ditampung. yaitu digunakan untuk memesan tipe data karakter (string) atau nilai variabel tersebut diapit oleh tanda kutip ('). .

Operator Aritematika Operator () ** * / + Keterangan Tingkat blok operasi 1 perpangkata 2 n 3 perkalian 3 pembagian 4 penambahan 4 pengurangan Tingkat merupakan tingkatan operasi.5.5. A = 3 * 16 A = 12 ** 2 A = 48. Begitu juga untuk operasi aritmetik bilangan pecahan. Ungkapan operasi sama dengan (=) juga dapat mengopersikan pemberian nilai terhadap variabel karakter dengan nilai string (yang diapit tanda kutip). Maka untuk operasi pembagian. variabel penampungnya juga harus pecahan supaya tidak terjadi pemancungan nilai. I=0 A = 2. dari contoh diatas 1/2 akan menghasilkan nilai 0.5 hasilnya adalah : hasilnya adalah .5 hasilnya adalah : hasilnya adalah . maka A nilainya 144 A = 35 Nilai = 80 Dalam operasi pembagian (/). maka B nilainya 13. maka nilai I adalah 0.5. maka nilai J adalah 1.0 K = 4. jika tingkat lebih kecil angkanya maka operasi tersebut dikerjakan terlebih dahulu.Teori Pemrograman Terstruktur Bahasa Fortran Tabel 1-1. maka K nilainya 13 Dari contoh diatas dapat dilihat. jika bilangan yang dioperasikan dengan tipe data bilangan bulat dibagi dengan bilangan bulat hasilnya akan dipancung. maka A nilainya 2. maka K nilainya 7 B = 4. maka nilai A adalah 48. tetapi karena tempat variabel penampung data bertipe bilangan bulat maka angka dibelakang koma dihilangkan. sehingga hasilnya menjadi 0 (nol). J = 4 ** 0 K=7 J = 1.0 J = 4 ** (1/2) K = 4 + 3. Contoh : I=1/2 A = 4 ** 0. B = 13. variabel penampung nilai harus bertipe bilangan pecahan.5 * 3. Contoh : Nama = 'Riandy' Alamat = 'Alai' nilai string nama variabel kharkter Operasi sama dengan (=) untuk variabel karakter atau nilai string tidak bisa dilakukan operasi JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 6 .5 K = 13 B = 13. A = 144.5 * 3. Contoh : A = 3 * 4 ** 2 A = ( 3 * 4 ) ** 2 hasilnya adalah : hasilnya adalah .0 I = 0.0 hasilnya adalah : hasilnya adalah . tipe data sangat berpengaruh sekali.

JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 7 .Teori Pemrograman Terstruktur Bahasa Fortran aritmetik. Contoh : Nama = Panggilan Variabel kaharakter Variabel kharakter. Tetapi operasi dapat dilakukan terhadap sesama variabel kharakter.

Keterangan : [r] => menunjukan banyaknya pengulangan (repeat) [w] => menunjukan panjang digit nilai data (width). I7 -> sebuah data biangan bulat dengan panjang 7 digit.Teori Pemrograman Terstruktur Bahasa Fortran BAB II PERINTAH MASUKAN DAN KELUARAN (I/O) Pembuatan perintah dan nama variabel nantinya di dalam program dapat dibuat dengan memakai huruf besar. tipe. minimal harus disediakan 1 spasi kosong di sudut kiri layar. (titik desimal). dan panjang dari nilai data yang dimasukan atau ditampilkan yang disebut dengan Edit Descriptor. Dan untuk menampilkan dilayar. Yang dimasukan atau yang dikeluarkan oleh perintah ini adalah data-data yang telah ditetapkan oleh programmer. yang perlu diperhatikan adalah jika panjang digit yang disediakan lebih sedikit dari panjang nilai data yang ada maka yang akan keluar nantinya adalah tanda **** (tanda kali sebanyak panjang digit yang disediakan). Perintah masukan dan keluaran merupakan perintah untuk melakukan pengaksesan terhadap media input dan output komputer. Bentuk umumnya adalah : [r]I[w] Dari bentuk umum diatas yang diapit oleh kurung siku ([]) adalah option (boleh dibuat kalau dibutuhkan dan kalau tidak dibutuhkan boleh ditinggalkan saja).1. tetapi ejaannya harus sama dengan yang telah ditetapkan. Bentuk umumnya adalah : [r]F[w].1 Edit Descriptor Untuk memasukan atau menampilkan data.1 Edit Descriptor I Edit descriptor ini digunakan untuk tipe data bilangan bulat (Integer). Monitor.2 Edit Descriptor F Edit descriptor ini digunakan untuk tipe data bilangan pecahan (Real). Diantara pernyataan diatas tidak boleh ada spasi kosong (blank). dan Printer. [d] => menunjukan panjang digit nilai dibelakang koma (desimal). didalam Fortran disebut dengan Format Specification. JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 8 . 2. 2.[d] Keterangan : [r] => menunjukan banyaknya pengulangan (repeat) [w] => menunjukan panjang digit (width) nilai data keseluruhan termasuk . 2. didalam Fortran harus ditetapkan bagaimana bentuk tampilan atau bentuk masukan yang diinginkan.1. huruh kecil atau kombinasi dari huruf besar dan huruf kecil. Didalam format specification terdapat informasi tentang letak. seperti Keyboard. Untuk menampilkan data. Nilai untuk r dan w adalah bilangan bulat positif (integer). Contoh : 3I6 -> 3 buah data bilangan bulat dengan panjang masing-masingnya 6 digit.

2 -> 3 buah data bilangan pecahan dengan panjang masing-masingnya 6 digit (termasuk titik desimal) dan 2 digit dibelakang koma.Teori Pemrograman Terstruktur Bahasa Fortran Contoh : 3F6.3 Edit Descriptor A Edit descriptor ini digunakan untuk tipe data alfanumerik atau karakter. 2.1.1.5 Edit Descriptor Konstanta Karakter Edit descriptor ini digunakan untuk perintah keluaran saja (output). F7. Contoh : 3A16 -> 3 buah data karakter dengan panjang masing-masingnya 16.4 Edit Descriptor L Edit descriptor ini digunakan untuk tipe data Logika. 2. hanya ditampilkan sekali saja. L5 -> sebuah data logika dengan panjang 5 digit.6 Edit Descriptor X Edit descriptor ini digunakan untuk menampilkan saja yang berfungsi untuk membuat spasi kosong (blank). Edit descriptor ini tidak dapat diulang.A15 -> sebuah data karakter (huruf) dengan panjang 15 digit. 2. Bentuk umumnya adalah : [r]A[w] Keterangan : [r] => menunjukan banyaknya pengulangan (repeat) [w] => menunjukan panjang digit (width) nilai data karakter keseluruhan.3 -> sebuah data biangan pecahan (real) dengan panjang 7 digit dengan 2 digit dibelakang koma (desimal). JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 9 . Bentuk umumnya adalah : 'konstanta karakter' Keterangan : 'konstanta karakter' => merupakan kata-kata apa saja yang diapit olehtanda petik tunggal (') Contoh : 'Saya Fortran' -> maka yang tampil nantinya kemedia output adalah : Saya Fortran 2. Bentuk umumnya adalah : [r]L[w] Keterangan : [r] => menunjukan banyaknya pengulangan (repeat) [w] => menunjukan panjang digit (width) nilai data karakter keseluruhan.1.1. Jadi nilai positifnya hanya 6-(1+2)=3 digit. Contoh : 3L8 -> 3 buah data logika dengan panjang masing-masingnya 8 digit.

1. Bentuk umumnya adalah : / 2. Perintah format merupakan pasangan dari perintah memasukan data (READ) dan menampilkan data (WRITE). yang perlu dilakukan adalah memgatur letak. menentukan tipe data.7 Edit Descriptor / Edit descriptor ini digunakan untuk menampilkan jarak spasi baris. 2.1. Bentuk umumnya adalah : \ 2.8 Edit Descriptor \ Edit descriptor ini digunakan untuk menyatakan posisi berikutnya dalam baris yang sama. Edit Descriptor ini khusus untuk media tampilan (layar monitor).1.9 Edit Descriptor Berulang Edit descriptor ini digunakan untuk menyatakan perulangan edit descriptor yang sama sebanyak beberapa kali (dalam bilangan bulat positif). Berapa banyaknya tanda slash ini. dan panjang digit dari data yang akan dimasukana atau ditampilkan media input atau output komputer. Edit Descriptor ini khusus untuk media tampilan (layar monitor).Teori Pemrograman Terstruktur Bahasa Fortran Bentuk umumnya adalah : [w]X Keterangan : [w] => panjang digit spasi yang ditampilkan. Contoh : 5(/) => maka akan dibuat sebanyak 5 buah baris kosong. 3('Fortran') => maka akan tampil kata fortran sebanyak 3 kali. Dalam pengeditan data pada perintah Format. sebanyak itu pula baris kosong yang ditampilkan. Bentuk umumnya adalah : [n](ed) Keterangan : [n] => menunjukan berapa kali perulangan yang diinginkan (dalam bilangan bulat positif).2 Perintah FORMAT Perintah Format digunakan untuk mengedit data pada media input dan output komputer. ed => edit descriptor yang ingin diulang dan harus diapit oleh tanda kurung "()". FortranFortranForrtran. Edit Descriptor ini khusus untuk media tampilan (layar monitor atau printer). Bentuk umum dari perintah Format adalah : nl FORMAT fs JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 10 . 2.

505) A. tampil Nilai A dan B dan tampil nilai variabel A ( 75. fs => adalah menunjukan format specification.REC=nr][.ERR=nl2])daftar_variabel Keterangan : Yang ditulis dengan huruf besar.END=nl1][. Format specification harus ditulis dalam tanda kurung.B 505 FORMAT (5X.F7. nilai variabel B ( 45. sebelum nilai 75. 2. dan sebagainya).3. () dan isinya adalah edit descriptor. tipe data dan panjang digit dari data. beitu juga untuk nilai B.F7. Sedangkan yang diapit oleh kurung siku bersifat option (kalau ada dibuat. Contoh : A=75. Nomor label berupa angka bilangan bulat dari 0 sampai dengan 99999.53 akan keluar 3 buah spasi kosong karena digit yang disediakan 7 dan yang terpakai hanya 5 digit.34 Keterangan : => memasukan data kevariabel A dan B dengan nomor label 505 dan type data bilangan pecahan (lihat cara pemberian tipe data pada bab sebelumnya). Setiap data yang dimasukan harus disesuaikan dengan tipe data dari variabel tersebut. => perintah ini pasangan dari perintah tampilan WRITE dengan nomor label yang sama (505). Perintah READ Perintah READ digunakan untuk memasukan data dari media input komputer yang ditampung oleh sebuah variabel. Bentuk Umum dari perintah READ adalah sebagai berikut : READ(nu[. Perintah FORMAT bebas diletakan pada baris berapa saja tetapi nomor label yang digunakan harus sesuai dengan perintah READ atau WRITE pasangannya.Teori Pemrograman Terstruktur Bahasa Fortran Keterangan : nl => adalah menunjukan nomor label yang digunakan pada perintah READ dan WRITE yang menjadi pasangan dari perintah FORMAT. maka diantaranya harus ditambahkan (dibuat) pembatas dengan tanda koma (.2. Pada format specification dalam perintah format lebih dari 1 (satu) jenis edit descriptor. reC.53 45.34 WRITE(*. read. yang merupakan pengaturan terhadap letak. Bentuk tampilannya adalah 5 (lima) digit space kosong.34). nu => Nomor Unit JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 11 .fs][.). kalau tidak tinggalkan) dan yang ditulis dengan huruf kecil merupakan pengenal yang disesuaikan dengan ketentuan yang telah ditetapkan oleh Fortran.'Nilai A dan B '. yang ditulis antara kolom 1 (satu) sampai dengan kolom 5 (lima). kalau ada (dibutuhkan) ejaannya harus sama dengan bentuk umum diatas.2) Bentuk hasil keluarn program : 1 2 3 4 5¦ 12345678901234567890123456789012345678901234567890 ¦ kolom ----------------------------------------------------------------------------------------Nilai A dan B 75.53). Rec. reAD.53 B=45. dan dapat dibuat dengan huruf besar atau huruf kecil (dapat ditulis seperti : Read.

JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 12 . READ(*.F7.5) X.Teori Pemrograman Terstruktur Bahasa Fortran Nomor unit atau unit specifier dapat disebut dengan istilah Logical Unit Number (LUN). Nomor label ini menunjukan apabila terjadi kesalahan dalam pembacaan data dari file di disk maka proses akan pindah ke nomor label yang dituju. dan panjang digit yang ada (edit description). Daftar edit descriptior diapit diantara tanda petik satu (') dan tanda kurung "()". b. Jika variabel yang dibaca lebih dari 1 (satu) maka diantara variabel tersebut diberi tanda pemisah koma (. nl2 => nomor label2 Juga digunakan hanya untuk membaca data dari file di disk.). dimana nr dalam bilangan atau variabel bilangan bulat (integer) yang merupakan penunjuk nomor record yang di tulis (diisi).2. letak. Contoh 2. Format specificaion dapat berupa nomor label yang merupakan nomor label perintah Format yang memuat daftar edit descriptor dari data yang dimasukan.I4. nr => nomor record Hanya digunakan untuk membaca data dari file di disk secara langsung (direct accses).3) 5 .Format specification dalam bentuk nomor a.Y FORMAT(F5.Format specification dalam bentuk nomor b. Contoh 1. Spesifikasi dari pengenal alat ini terdiri dari tanda asterik (*) atau angka 0 menunjukan alat input yang dipakai adalah media keyboard komputer dan angka dari -32768 sampai dengan 32767 selain nol (0) menunjukan alat input yang dipakai adalah file eksternal seperti printer atau file pada Disk (akan dijelaskan pada BAB berikutnya). Nomor label ini menunjukan apabila telah habis data dibaca maka proses akan pindah ke nomor label yang dituju. yaitu : a.55) Nilai --> variabel penampung nilai data 55 FORMAT(I3) 3 adalah panjang digit nilai I adalah Edit descriptor untuk variabel Nilai (integer) 55 merupakan nomor label perintah FORMAT yang ditunjuk oleh READ. Contoh perintah READ : . fs => format specification Menunjukan format specification data yang dibaca seperti tipe data. daftar_variabel Merupakan daftar variabel yang dipakai untuk menampung data. Daftar edit discriptor disimpan dalam bentuk sebuah varia bel karakter. Dalam format specification dapat dibuat dalam 3 bentuk. * menunjukana mengambil nilai dari keyboard 55 merupakan nomor label untuk perintah FORMAT READ(*. nl1 => nomor label1 Juga digunakan hanya untuk membaca data dari file di disk. c. Contoh 1.J. yang merupakan spesifikasi dari alat input yang digunakan.

CHARACTER TAMPIL*14 TAMPIL = '(F5. yang ditunjukan oleh nomor unit yang dipakai. fs => format specification Menunjukan format specification data yang ditampilkan seperti tipe data. nu => Nomor Unit Nomor atau unit specifier dapat disebut dengan istilah Logical Unit Number (LUN).'(F5.Teori Pemrograman Terstruktur Bahasa Fortran READ(*. yaitu : a.FS) Nilai Contoh 2.Format specification dalam bentuk c. letak. Contoh 1. nr => nomor record Hanya digunakan untuk membaca data dari file di disk secara langsung (direct accses).F7. Untuk Edit descriptor konstanta karakter harus diapit oleh tanda petik satu (') 2 (dua) kali. JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 13 . yang merupakan spesifikasi dari alat output yang digunakan. Spesifikasi dari pengenal alat ini terdiri dari tanda asterik (*) atau angka 0 menunjukan alat input yang dipakai adalah media layar monitor komputer dan angka dari -32768 sampai dengan 32767 selain nol (0) menunjukan alat input yang dipakai adalah file eksternal seperti printer atau file pada Disk (akan dijelaskan pada BAB berikutnya). dan panjang digit yang ada (edit description).3)') X. Format specificaion dapat berupa nomor label yang merupakan nomor label perintah FORMAT yang memuat daftar edit descriptor dari data yang dimasukan. Bentuk umum dari perintah ini adalah : WRITE(nu[.4.2.Y .I4. atau file ke disk).'(I3)') Nilai --> variabel penampung nilai data Contoh 2.TAMPIL) X.Y 2.2. b.J. Untuk Edit descriptor konstanta karakter harus diapit oleh tanda petik satu (') 2 (dua) kali.ERR=nl][. CHARACTER FS*4 FS=’(I3)’ READ(*.J.F7.REC=nr])daftar_variabel Keterangan : Cara penulisan sama dengan perintah READ. c.I4. Daftar edit descriptior diapit diantara tanda petik satu (') dan tanda kurung "()". Perintah WRITE Perintah WRITE berfungsi memindahkan atau menampilkan data dari daftar variabel kemedia output komputer (monitor.fs][. Dalam format specification dapat dibuat dalam 3 bentuk. Daftar edit discriptor disimpan dalam bentuk sebuah variabel karakter.3)' READ(*. READ(*. printer.

''Nilai dari variabel A =''. Nomor label ini menunjukan apabila terjadi kesalahan dalam penyimpanan data dari file di disk maka proses akan pindah ke nomor label yang dituju. A=456.Y 5 FORMAT(F5.Format specification dalam bentuk nomor b.10) 'Nilai dari variabel A ='.I4.A 10 FORMAT(5X.'Nilai dari variabel A ='.67 WRITE(*.I4. WRITE(*.F7.Format specification dalam bentuk nomor a.2) hasilnya: Nilai dari variabel A = 456. nl => nomor label Digunakan hanya untuk membaca data dari file di disk. * menunjukan perintah menampilkan ke layar monitpr 55 adalah nomor label untuk perintah FORMAT WRITE(*.3) Catatan: Garis-garis dengan tanda panah diatas hanya merupakan keterangan dari pasangan antara variabel dengan edit descriptor yang digunakan.F7.3)') X.J.F7.Teori Pemrograman Terstruktur Bahasa Fortran dimana nr dalam bilangan atau variabel bilangan bulat (integer) yang merupakan penunjuk nomor record yang di tulis (diisi).2)')A JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 14 . Contoh 2.F7.67 WRITE(*.2.A.2.'(F5.F7. A=456.).'(5x. Contoh perintah READ : . WRITE(*.'(I3)') Nilai Contoh 2.Y Contoh 3.10) A 10 FORMAT (5x.3) .daftar_variabel Merupakan daftar variabel yang ditampilkan.67 dari contoh 3 diatas dapat dirubah menjadi (hasilnya sama) : A=456.67 WRITE(*. Contoh 3.5) X. Contoh 1.J. Contoh 1.55) Nilai 55 FORMAT(I3) Nilai adalah nama variabel yang akan ditampilkan nilainya 3 menunjukan panjang digit nilai I adalah Edit descriptor untuk variabel Nilai (integer) 55 adalah nomor label perintah FORMAT. WRITE(*. Jika variabel yang ditampilkan lebih dari 1 (satu) maka diantara variabel tersebut diberi tanda pemisah koma (.

FS) Nilai Contoh 2.F7.A .'(5X.A Contoh Program Lengkap.J.67 dari contoh 3 diatas dapat dirubah menjadi (hasilnya sama) : A=456.67 WRITE(*.67 Tampil='(5x. CHARACTER Tampil*37 A=456. Nilai Quiz.67 dari contoh 3 diatas dapat dirubah menjadi (hasilnya sama) : CHARACTER Tampil*11 A=456.2)' WRITE(*.Tampil) 'Nilai dari variabel A ='.A.A.2)' WRITE(*.2.Nomor BP. .67 Tampil='(5x.tampil) A hasilnya: Nilai dari variabel A = 456.I4.3)' WRITE(*.F7. Nilai ujian Mid.F7.F7. CHARACTER TAMPIL*14 TAMPIL = '(F5. Nama. Nilai Tugas. Keyboard.TAMPIL) X.3)')'Nilai dari variabel A ='.Y Contoh 3. CHARACTER FS*4 FS='(I3)' WRITE(*. Contoh 1. (layout) Nilai Akhir Matakuliah Fortran ====================== Nomor BP : xxxxxxxx Nama Mahasiswa : xxxxxxxxxxxxxxxxxxxxx Nilai Tugas : 999 Nilai Quiz : 999 Nilai Ujian Mid : 999 Nilai Ujian Akhir : 999 Nilai Akhir : 999.''Nilai dari variabel A =''.Nilai Akhir = 10% x Nilai Tugas + 15% x Nilai Quiz + 35% x Ujian Akhir Jawaban : JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 15 Nilai Ujian Akhir di input dari Nilai Ujian Mid + 40% x Nilai .Format specification dalam bentuk c.99 Proses : .Teori Pemrograman Terstruktur Bahasa Fortran hasilnya: Nilai dari variabel A = 456.

30) 30 Format(13X.'Nilai Tugas :'.\) Read(*.\) Read(*.70) 70 Format(13X.\) Read(*.2) c Akhir Program END JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 16 .'======================') c Memasukan data dari keyboard Write(*.'Nilai Akhir Matakuliah Fortran') Write(*.35)Nama 35 Format(A15) Write(*.Teori Pemrograman Terstruktur Bahasa Fortran Menentukan variabel untuk masing-masing data Name BP Nama NT NQ NM NU NA Type Character Character Integer Integer Integer Integer Real Width 8 15 3 3 3 3 6 Decimal 2 Description Nomor BP Nama Mahasiswa Nilai Tugas Nilai Quiz Nilai Ujian Mid Nilai Uj.40) 40 Format(13X.65)NM 65 Format(I3) Write(*.45)NT 45 Format(I3) Write(*.F6.80)NA 80 Format(13X.1*NT+0.60) 60 Format(13X.'Nilai Ujian Mid :'.55)NQ 55 Format(I3) Write(*.'Nilai Quiz :'.35*NM+0. NAMA*15 Real NA c Menghapus layar Write(*.10) 10 Format(13X.\) Read(*.\) Read(*.75)NT 75 Format(I3) c Proses mencari nilai akhir NA=0.1*NT+0.35*NM+0.4*NU c Menampilkan Nilai Akhir Write(*.15*NQ+0.\) Read(*.Menentukan operasi aritmetik NA=0.15) 15 Format(13X.Tampilkan NA Program : $DEBUG Character BP*8.'Nilai Akhir :'.50) 50 Format(13X.Akhir Nilai Akhir .'Nama mahasiswa :'.20) 20 Format(13X.15*NQ+0.25)BP 25 Format(A8) Write(*.'Nomor BP :'.5) 5 Format(24(/)) c Buat judul Write(*.4*NU .'Nilai Ujian Akhir :'.

15*NQ+0.4*NU c Menampilkan Nilai Akhir Write(*.1*NT+0.'(I3)')NM Write(*.'(I3)')NQ Write(*.35*NM+0. $DEBUG Character BP*8.'(I3)')NT Write(*.A.'(I3)')NT c Proses mencari nilai akhir NA=0.'(13X.'(13X.\)') Read(*.'(13X.\)')'Nama mahasiswa :' Read(*.F6.\)') Read(*.'(13X.1*NT+0.'(13X.A.A.\)')'Nilai Quiz :' Read(*.'(I3)')NT Write(*.'(I3)')NM Write(*.'(13X.'(13X.''Nilai Tugas :''.'(13X.'(13X.'(13X.'(13X.F6.'(13X.’(24(/)’) c Buat judul Write(*.\)')'Nilai Ujian Mid :' Read(*.A. NAMA*15 Real NA c Menghapus layar Write(*.'(13X.\)')'Nilai Ujian Akhir :' Read(*.4*NU c Menampilkan Nilai Akhir Write(*.NA END JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 17 .'(I3)')NU c Proses mencari nilai akhir NA=0.A.''Nilai Akhir :''.''Nilai Ujian Akhir :''.'(A15)')Nama Write(*.\)')'Nilai Tugas :' Read(*.'(I3)')NQ Write(*.'(13X.A)')'==============================' c Memasukan data dari keyboard Write(*.'(13X.'(13X.'(13X.5) 5 Format(24(/)) c Buat judul Write(*.''=============================='')') c Memasukan data dari keyboard Write(*.'(13X.\)') Read(*.2) NA c Akhir Program END Program diatas juga dapat disederhanakan dengan hasil yang sama.\)')'Nomor BP :' Read(*.\)') Read(*.''Nilai Akhir Matakuliah Fortran'')') Write(*.2)')'Nilai Akhir :'.35*NM+0.'(A8)')BP Write(*.'(A15)')Nama Write(*.''Nomor BP :''.'(A8)')BP Write(*.A)')'Nilai Akhir Matakuliah Fortran' Write(*. NAMA*15 Real NA c Menghapus layar Write(*.A.\)') Read(*.Teori Pemrograman Terstruktur Bahasa Fortran Program diatas dapat disederhanakan dengan hasil yang sama.A.''Nilai Ujian Mid :''. $DEBUG Character BP*8.''Nilai Quiz :''.\)') Read(*.15*NQ+0.''Nama mahasiswa :''.

Bentuk umum dari perintah ini adalah : PAUSE [konstanta] Perintah ini boleh diikuti oleh konstanta numerik (angka) yang panjangnya tidak boleh lebih dari 5 digit (99999) atau konstanta karakter (komentar).Teori Pemrograman Terstruktur Bahasa Fortran BAB III PERINTAH KONTROL Perintah kontrol adalah perintah yang mengatur atau mengontrol pengolahan data yang dilaksanakan dalam sebuah program. maka proses akan berhenti dan didalam sebuah program perintah ini tidak harus ada (boleh tidak ada). maka pada saat pengerjaan program bertemu dengan perintah ini akan keluar pesan : Stop .2. maka pada saat pengerjaan program bertemu dengan perintah ini akan keluar pesan : Please press <return> to continue.1. tetapi setiap pengerjaan program bertemu dengan perintah ini. dan idealnya sebuah program memiliki satu buah perintah END. Jika PAUSE tidak diikuti oleh konstanta. Umumnya perintah ini terletak diakhir sebuah program.3. Perintah STOP Perintah STOP berfungsi menghentikan atau mengakhiri pengerjaan program. Tetapi jika diikuti dengan konstanta maka pada saat pengerjaan perintah ini akan tampil (keluar) konstanta yang mengikuti perintah tersebut. Bentuk umum dari perintah ini adalah : END Pada perintah END ini tidak boleh diikuti oleh argumen lain. Contoh : STOP 5 STOP STOP 'Program berhenti' 3. Perintah PAUSE Perintah ini berfungsi menghentikan pengerjaan program selama ditekan tombol RETURN pada keyboard. Perintah kontrol juga berfungsi mengendalikan logika pengolahan data dalam program.Program terminated. JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 18 sampai . 3. Perintah END Perintah END digunakan untuk mengontrol akhir proses sebuah program (akhir program). Bentuk umumdari perintah ini adalah : STOP [konstanta] Perintah ini boleh diikuti oleh konstanta numerik (angka) yang panjangnya tidak boleh lebih dari 5 digit (99999) atau konstanta karakter (komentar). Jika STOP tidak diikuti oleh konstanta. Perintah ini bleh berada pada baris berapa saja dalam program. 3.

0 Program Selesai..''Panjang sisi vertikal :''.Teori Pemrograman Terstruktur Bahasa Fortran Tetapi jika diikuti dengan konstanta maka pada saat pengerjaan perintah ini akan tampil (keluar) konstanta yang mengikuti perintah tersebut.''Panjang sisi Diagonal :''.0 <= keyboard Tekan Enter unntuk lanjut .F5...'(F5.''========================'')') Write(*..'(15X.! <.. Contoh : PAUSE PAUSE 6 PAUSE 'Tekan Enter Untuk Lanjut !' Contoh : Write(*. JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 19 .''Panjang sisi horizontal :''..\)') Read(*.\)') Read(*.5 Pause 'Tekan Enter untuk lanjut .0 <= diinput dari Panjang sisi horizontal :3.'(15X..'(15X..'(15X.' End Hasil : Program Rumus Phitagoras =================== Panjang sisi vertikal :4.'(F5.''Program Rumus Phitagoras'')') Write(*...tekan enter Panjang sis Diagnal : 5.'(15X.2)') A Write(*.2)')C Stop 'Program Selesai.2)') B C=(A**2+B**2)**0.!' Write(*.

1.1.!'')') End Hasil : Proses percabangan perintah GOTO Ini Baru Dikerjakan.1. 4..!'')') 10 Write(*. Bentuk umum perintah ini adalah : GOTO nl nl adalah nomor label yang dituju oleh perintah GOTO yang akan dikerjakan.[.. Bentuk umum perintah ini adalah : GOTO (nl_1[... Contoh : JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 20 ...GOTO bersyarat (conditional GOTO). Jika variabel bernilai 1 maka proses akan pindah ke nl_1.variabel adalah variabel percabangan dengan tipe data bilangan bulat (integer). Nomor label yang dituju tersebut adalah nomor label perintah lainnya yang ditulis antara kolom 1 sampai kolom 5.''Ini Baru Dikerjakan...2. dan bernilai 2 ke nr_2..Teori Pemrograman Terstruktur Bahasa Fortran BAB IV PERINTAH PERCABANGAN Perintah bercabang adalah perintah yang melakukan penyeleksiaan pengerjaan program sehingga terjadi perloncatan atau percabangan proses pengolahaan data. Contoh : $DEBUG Write(*.''Proses percabangan perintah GOTO'')') GOTO 10 Write(*... .nl_n adalah nomor label yang dituju.''Ini Tidak dikerjakan . Perintah GOTO Bersyarat Perintah GOTO bersyarat digunakan untuk mengontrol loncatan pengerjaan proses program ke suatu nomor label perintah yang memakai nomor label yang dituju. Perintah GOTO Perintah GOTO melakukan perloncatan pengerjaan program ke bagian-bagian program tertentu.nl_2.GOTO tak bersyarat (unconditional GOTO) .'(5X.nl_2][. 4. dan seterusnya.'(5X.'(5X.nl_1.nl_3].nl_n]) variabel Keterangan : ...! 4. Perintah GOTO terdiri atas: . GOTO Tak Bersyarat Perintah GOTO tak bersyarat digunakan untuk mengontrol proses pengerjaan program kecabang proses yang dituju berdasarkan nomor label perintah.nl3.1.

F6.20X.''Menu Program Segitiga Siku-siku'')') Write(*. yaitu : .''Input Nilai Lebar :''.'(20X..'(/.Blok IF.''1.''Luas Segitiga :''.\)') Read(*.Aritematika IF . Bentuk umum dari perintah ini adalah : IF(ekspresi) pernyataan Keterangan : .'(20X.Variabel yang dibandingkan ..\)') Read(*.'(/. Semua ekspresi yang ada dalam perintah percabagan (IF) semuanya sama. yaitu : .Logikal IF .2. Mencari Luas'')') Write(*.'(20X. 4. Perintah IF Perintah IF adalah perintah yang digunakan untuk percabangan proses berdasarkan kondisi (syarat) tertentu. Perintah IF terbagi atas 3 kelompok.'(F5. Logikal IF Perintah logikal IF digunakan untuk menyeleksi suatu ekspresi logika yang dapat bernilai benar (TRUE) atau alah (False).1.!' Goto 5 1000 Stop 'Selesai' END 4.F6.''3.'(20X. yaitu ekspresi terdiri atas 3 element pokok.'(F5.''==============================='')') Write(*.''Keliling Segitiga :''.'(20X.20X.20X. Percabangan pengerjaan berdasarkan kondisi yang terpenuhi (benar).1000) Pilih Goto 5 10 Luas = Panjang * Tinggi / 2 Write(*.2)')Tinggi Write(*.'(20X..Luas 5 Write(*.2)')Kel Pause 'Tekan Enter untuk lanjut .''2.Operator pembanding JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 21 .!' Goto 5 100 Kel = Panjang + Tinggi+(Panjang**2+Tinggi**2)**0.5 Write(*.Ekspresi. Jika ekspersi bernilai benar maka pernyataan sebelah IF akan dilaksanakan.'(I1)') Pilih GOTO (10. Mencari Keliling'')') Write(*. Selesai'')') Write(*.2.2)')Luas Pause 'Tekan Enter untuk lanjut .Teori Pemrograman Terstruktur Bahasa Fortran $DEBUG Integer Pilih Real Kel.100. Ekspresi adalah ungkapan logika atau ungkapan operasi perbandingan.\)') Read(*.2)')Panjang Write(*.'(20X..''Pilih [1-3] :''.'(/.''Input Nilai Tinggi :''.

\)') Read(*.''2. Mencari Keliling'')') Write(*.'(I1)') Pilih IF (Pil. Operator jamak digunakan untuk menggabungkan 2 (dua) atau lebih operator tunggal. .'(20X.''Pilih [1-3] :''.LT.LE. yang dapat dilihat pada tabel berikut : Tabel 4-1.''Menu Program Segitiga Siku-siku'')') Write(*. Bentuk umum Ekspresi adalah . Opearator Tunggal.pernyataan.\)') Read(*. = . > .'(20X. < .''Input Nilai Tinggi :''.2)')Tinggi Write(*.''Input Nilai Lebar :''.''3. .NE.'(20X.AND. Pernyataan merupakan proses yang dikerjakan apabila kondisi ekspresi bernilai benar (terpenuhi). <= .NOT.\)') Read(*. <variabel> <operator> <variabel/nilai> Antara variabel yang dibandingkan dengan variabel atau nilai pembanding harus mempunyai tipe data yang sama.20X. Operator pembanding dapat berupa tunggal (membandingkan satu variabel) dan jamak (membandingkan lebih dari satu variabel / operator logika gabungan dari operator tunggal). Contoh.'(20X.OR.GE.EQ.Luas 5 Write(*.'(F5. Keterangan Tidak sama dengan Dan Atau Keterangan Kecil dari Kecil sama dengan Besar dari Besar sama dengan Sama dengan Tidak sama dengan $DEBUG Integer Pilih Real Kel.''==============================='')') Write(*. Operator Tanda .1) Goto 10 IF (Pil.'(/. Mencari Luas'')') Write(*.'(F5. .'(20X.Variabel atau nilai pembanding.EQ.'(20X. Selesai'')') Write(*.''1. <> Tabel 4-2. >= . Operator .GT. Pernyataan berupa perintah dan argument yang mengikuti perintah tersebut.2)')Panjang Write(*.2) Goto 100 JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 22 . Pada pernyataan ini tidak boleh memakai perintah yang memakai ekspresi (misalnya IF).'(20X. Operator Jamak.Teori Pemrograman Terstruktur Bahasa Fortran .EQ.

3.nl_2. yaitu : .\)') Read(*.'(15X..!'')') Goto 40 40 End 4. nol (0).'(/.30 10 Write (*.''Ini bilangan Negatif.nl_3 adalah nomor label yang akan dituju oleh dalam pemindahan proses berdasarkan nilai dari variabel.2.F6. Blok IF ini terbagi atas 3 jenis.''Input Sebuah Bilangan =''..'(15X.F6.IF-THEN-ENDIF .. Banyak nomor label dalam IF ini hanya 3 (tiga) buah dan tidak boleh lebih.2.20X.'(15X. dan tidak semua pernyataan itu dilaksanakan.''Keliling Segitiga :''.''Luas Segitiga :''.!'')') Goto 40 30 Write (*..!' Goto 5 Stop 'Selesai' END 10 100 1000 4. 4.nl_3 Keterangan : . Bentuk umum dari aritematika IF adalah : IF (variabel) nl_1.OR.nl_2.3..IF-THEN-ELSE-ENDIF ..''Ini bilangan Kosong (Nol). IF-THEN-ENDIF Perintah IF-THEN-ENDIF hanya mempunyai 1 (satu) blok pernyataan yang JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 23 .1..'(I3)') Bil IF (Bil) 10.IF-THEN-ELSEIF-THEN-ELSEIF.LT.!' Goto 5 Kel = Panjang + Tinggi+(Panjang**2+Tinggi**2)**0. Blok IF Blok IF diawali dengan perintah IF dan diakhiri oleh ENDIF. jika nilai variabel sama dengan nol (0) maka proses akan pindah ke nl_2..EQ.variabel yang dipakai sebagai kondisi adalah variabel yang bertipe bilangan bulat (Integer).'(15X.''Ini bilangan Positif. dan jika nilai variabel besar dari nol atau positif (+) maka proses akan pindah ke nl_3.. Jika nilai variabel kurang dari nol atau minus (-) maka proses akan pindah ke nl_1. Contoh : $DEBUG Integer Bil Write(*.'(/.ENDIF.2)')Luas Pause 'Tekan Enter untuk lanjut . apakah bernilai minus (-).20.5 Write(*. atau plus (+). karena ada IF yang bertingkat.1.GT.Pil..Teori Pemrograman Terstruktur Bahasa Fortran IF (Pil.2.3) Goto 1000 IF (Pil. Pernyataan yang dilaksanakan oleh Blok IF adalah pernyataan yang terdapat antara IF dengan ENDIF. Aritematika IF Perintah aritematika IF digunakan untuk meyeleksi nilai dari variabel kondisi dari pernyataan aritematika.!'')') Goto 40 20 Write (*.3) Goto 5 Luas = Panjang * Tinggi / 2 Write(*.2.20X. ..nl_1.2)')Kel Pause 'Tekan Enter untuk lanjut .

A)')'================================' Write(*.\)')'Nomor BP :' Read(*.'(14X. Dalam blok boleh terdiri dari 1 (satu) pernyataan atau lebih. Contoh : Predikat Nilai Fortran Mahasiswa ========================= Nomor BP : xxxxxxxxx Nama : xxxxxxxxxxxxxxxx Nilai Akhir : 999.GE.'(14X.GE.55.A.'(14X.0) THEN Bobot = 'E' Mutu = 0 Ket = 'Gagal' ENDIF IF(Nilai.80. .0) THEN Bobot = 'C' Mutu = 2 Ket = 'Cukup' ENDIF IF(Nilai. Ket*10 Real Nilai Write(*. jika kondisi pada IF terpenuhi (benar).GE. Pengerjaan Blok pernyataan ini.A. Bobot*1. Nama*15.'(A15)')Nama Write(*.99 Nilai Bobot : x Nilai Mutu : 9 Keterangan : xxxxxxxxxx Program : $DEBUG Character Bp*8.'(14X.2)')Nilai IF(Nilai.'(F6.'(A8)')Bp Write(*.\)')'Nama :' Read(*.A.Blok_pernyataan adalah baris-baris pernyataan (perintah dan argument) yang terletak diantara THEN sampai ENDIF.40.0) THEN Bobot = 'B' Mutu = 3 Ket = 'Memuaskan' ENDIF IF(Nilai.Teori Pemrograman Terstruktur Bahasa Fortran terletak antara THEN sampai ENDIF.GE.65.0) THEN Bobot = 'D' Mutu = 1 Ket = 'Kurang' ENDIF IF(Nilai.A)')'Predikat Nilai Fortran Mahasiswa' Write(*. Bentuk umumnya adalah : IF (ekspresi) THEN blok_pernyataan ENDIF Keterangan : .Ekspresi pada IF ini sama dengan ekspresi pada IF logika.GE.\)')'Nilai Akhir :' Read(*.'(14X.0) THEN Bobot = 'A' Mutu = 4 JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 24 .0.

'(14X.0) THEN Ket = 'Lulus' Write(*.\)')'Nomor BP :' Read(*.I1)')'Nilai Mutu :'. Nama*15.A.Ket End 4.A.99 Nilai Program Informasi : 999.2)')Info Total = Entri + Trans + Info IF(Total.\)')'Nilai Program Entry :' Read(*.)')'Sukses' ELSE Ket = 'Gagal' JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 25 . tetapi kalau tidak yang dikerjakan blok yang kedua.'(A15)')Nama Write(*.A. Bentuk umumnya adalah : IF (ekspresi) THEN blok_1 ELSE blok_2 ENDIF Contoh : Predikat Nilai Ujian Profesional Programing ================================ Nomor BP : xxxxxxxxx Nama : xxxxxxxxxxxxxxxx Nilai Program Entri : 999.\)')'Nama :' Read(*.'(14X.A.99 Keterangan : xxxxxxxxxx [ Sukses / Ulang Lagi ] Program : $DEBUG Character Bp*8.\)')'Nilai Program Transaksi :' Read(*.'(A8)')Bp Write(*.'(14X. Jika kondisi ekspresi terpenuhi maka yang dikerjakan adalah blok yang pertama.'(14X.2)')Trans Write(*.A.'(14X.\)')'Nilai Program Informasi :' Read(*.A.'(14X. Dari kedua blok pernyataan ini yang dilaksanakan hanya satu blok pernyataan.'(F6. Ket*5 Real Info Write(*.'(F6.A.A.'(14X.Bobot Write(*.'Predikat Nilai Ujian Profesional Programing' Write(*.'(F6.2)')Entri Write(*. IF-THEN-ELSE-ENDIF Perintah IF-THEN-ELSE-ENDIF mempunyai 2 (dua) blok pernyataan.A1)')'Nilai Bobot :'.55.A.'(14X.'(14X.A)') .Mutu Write(*.'================================' Write(*. yang pertama terletak antara THEN sampai ELSE dan yang kedua terletak antara ELSE sampai ENDIF.2.A)') .A10)')'Keterangan :'.'(14X.'(14X.GE.2.Teori Pemrograman Terstruktur Bahasa Fortran Ket = 'Terpuji' ENDIF Write(*.3.99 Nilai Program Transaksi : 999.

'(14X.2)')Nilai IF(Nilai.3.A)')'Ulang Lagi' ENDIF Write(*.'(14X.'(14X.'(14X.'(14X.A.0) THEN Bobot = 'D' Mutu = 1 Ket = 'Kurang' ELSEIF(Nilai.'(A15)')Nama Write(*.LT.-ENDIF.LT.A.A. IF-THEN-ELSEIF-THEN-ELSEIF-.A)')'Predikat Nilai Fortran Mahasiswa' Write(*..'(A8)')Bp Write(*. Bentuk umum perintah ini adalah : IF (ekspresi_1) THEN blok_pernyataan_1 ELSEIF (ekspresi_2) THEN blok_pernyataan_2] : [ELSEIF (ekspresi_n) THEN blok_pernyataan_n] [ELSE blok_pernyataan_n+1] ENDIF Setiap ekspresi memiliki satu blok pernyataan yang dikerjakan.80.A10)')'Keterangan :'.A.'(F6.0) THEN Bobot = 'B' Mutu = 3 Ket = 'Memuaskan' ELSE Bobot = 'A' Mutu = 4 JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 26 .\)')'Nomor BP :' Read(*.0) THEN Bobot = 'E' Mutu = 0 Ket = 'Gagal' ELSEIF(Nilai.0) THEN Bobot = 'C' Mutu = 2 Ket = 'Cukup' ELSEIF(Nilai..-ENDIF Perintah IF-THEN-ELSEIF-THEN-ELSEIF-. Pada perintah ini hanya satu blok yang dieksekusi oleh program berdasarkan kondisi yang terpenuhi.\)')'Nilai Akhir :' Read(*.. dimana memiliki lebih dari 2 (dua) blok pernyataan.Ket End 4.'(14X.\)')'Nama :' Read(*. Apabila kondisi ekspresi tersebut terpenuhi maka pengerjaan program melaksanakan blok pernyataan setelah THEN-nya. $DEBUG Character Bp*8. Ket*10 Real Nilai Write(*.'(14X.Teori Pemrograman Terstruktur Bahasa Fortran Write(*. Akhir dari perintah ini diakhiri dengan satu ENDIF. Nama*15. Bobot*1.40.3.LT...A)')'========================' Write(*.2.-ENDIF adalah perintah percabangan bertingkat.65.. Contoh diambil dari contoh program perintah IF-THEN-ENDIF yang dirubah kedalam IFTHEN-ELSEIF-THEN-.LT.55. Pada perintah ini sama dengan perintah yang berfungsi untuk melakukan penyeleksian.

'(14X.Ket End JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 27 .A10)')'Keterangan :'.'(14X.Teori Pemrograman Terstruktur Bahasa Fortran Ket = 'Terpuji' ENDIF Write(*.A.A.Mutu Write(*.A1)')'Nilai Bobot :'.Bobot Write(*.I1)')'Nilai Mutu :'.A.'(14X.

dimana nomor label pada DO harus sama dengan nomor label pada CONTINUE.5. variabel => adalah variabel kondisi.dan kenaikan merupakan variabel atau nilai pertipe data bilangan bulat. dimana variabel ini harus bertipe bilangan bulat (integer). Jika nilai awal lebih tinggi dari nilai akhir maka kenaikan harus minus (-). awal adalah nilai kondisi awal dan akhir adalah nilai kondisi akhir.akhir. Contoh : DO 5 I=1. FORTRAN FORTRAN FORTRAN Contoh lain menjumlahkan nilai dari 1 sampai dengan 20.'(15X. Bentuk umumnya penulisan perintah ini adalah : DO nl variabel=awal. yang merupakan pasangannya.2 WRITE(*. JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 28 .Perulangan kwantitatif . dan sebaliknya jika nilai awal lebih kecil dari nilai akhir maka kenaikannya plus (+). Keterangan : nl => nomor label. Perulangan Kwantitatif Perulangan pengerjaan program secara kwantitatif adalah perulangan dimana sudah diketahui berapa kali proses program terjadi sebelum program dieksekusi oleh komputer (melihat dari bentuk atau listing program).kenaikan : : <blok pernyataan> : nl CONTINUE Setiap perintah DO diikuti oleh CONTINUE dan diantaranya merupakan blok pernyataan (proses) yang dikerjakan berulang selama nilai variabel diantara awal sampai dengan akhir.perulangan selama kondisi salah. yaitu : .''FORTRAN'')') CONTINUE 5 Hasil Program ini adalah mencetak kata-kata FORTRAN sebanyak 3 (tiga) kali.1.Teori Pemrograman Terstruktur Bahasa Fortran BAB V PERINTAH PERULANGAN Perulangan proses (looping) adalah pengerjaan eksekusi program terhadap proses yang sama secara berulang (berkali-kali). perulangan ini disebut dengan istilah LOOP FORNEXT. Proses perulangan didalam logika pengerjaan program terbagi atas 3 bagian.akhir. sedangkan kenaikan adalah tingkat perubahan nilai dari variabel kondisi. 5. awal.Perulangan selama kondisi benar . kalau kenaikannya tidak dibuat maka kenaikan nilai variabel kondisi dinyatakan satu per satu. Didalam Bahasa Pemrograman Fortran perintah untuk perulangan ini adalah DOCONTINUE.

. Perulangan Selama Kondisi Benar Perintah perulangan ini merupakan perulangan blok pernyataan yang sama. : : CONTINUE : : CONTINUE : : CONTINUE Struktur yang salah DO 10 . : : DO 15 ..2.. dimana blok pernyataan tersebut diawali dengan ekspresi....Teori Pemrograman Terstruktur Bahasa Fortran Program : $DEBUG Write(*.''Mencetak jumlah bilangan dari 1-10'')') Jumlah=0 DO 15 J=1. : : 10 CONTINUE : : CONTINUE 15 15 20 10 5 5.''Jumlah = ''.. : : DO 15 .I3)') Jumlah END Hasil: Mencetak jumlah bilangan dari 1-10 Jumlah = 55 Didalam perulangan DO-CONTINUE juga dapat dibuat perulanga DOCONTINUE lagi (perulangan DO-CONTINUE berlapis).... Bentuk umum dari perintah ini adalah : nl1 IF (ekspresi) THEN : <blok pernyataan> : GOTO nl1 ENDIF JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 29 . ekspresi harus terpenuhi terlebih dahulu....10 Jumlah = jumlah + J 15 CONTINUE Write(*. : : DO 10 ...'(5X.. : : CONTINUE : : DO 20 ... tetapi dalam strukturnya perulang DO awal harus berpasangan dengan CONTINUE terluar (akhir)..'(5X. Sebelum blok pernyataan dieksekusi. Contoh strukturnya adalah sebagai berikut : Struktur yang benar DO 5 .

F6..!' ENDIF IF(Pilih. Sebelum memasuki perintah IF.'(F5.1) THEN Luas = Panjang * Lebar / 2 Write(*.99 Nilai Bobot : x Nilai Mutu : 9 Keterangan : xxxxxxxxxx Masih Ada Data [Y/T] : X $DEBUG Character Bp*8. $DEBUG Integer Pilih Real Kel. variabel untuk ekspresi harus diberi nilai dengan memenuhi kondisi dari ekspresi tersebut. Contoh program diambil dari kasus pada BAB IV : Contoh 1.'(20X.'(20X. Selesai'')') Write(*.Eq.20X.2) THEN Kel = Panjang + Lebar + (Panjang**2+Lebar**2)**0. Nama*15.\)') Read(*.LT.Teori Pemrograman Terstruktur Bahasa Fortran Untuk perintah perulangan selama kondisi benar (While-DO) dibentuk dari gabungan perintah IF-THEN-ENDIF dengan perintah GOTO.2)')Luas Pause 'Tekan Enter untuk lanjut .'(24(/))') JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 30 .''2.Mad.'(F5.2)')Kel Pause 'Tekan Enter untuk lanjut .3) THEN Write(*.!' ENDIF GOTO 30 ENDIF Stop 'Selesai' END Contoh 2.'Y'.'(20X..'(/. dan didalam blok pernyataan harus dibuat perintah untuk memberi nilai baru terhadap variabel ekspresi tersebut.''Luas Segitiga :''.'y') THEN Write(*.'(I1)')Pilih IF(Pilih.''3.''1.''Pilih [1-3] :''.'(20X.OR.20X. Ket*10.EQ.2)')Lebar Write(*. Bobot*1.''Input Nilai Tinggi :''.EQ..''Input Nilai Lebar :''.''Keliling Segitiga :''.'(20X.''Menu Program Segitiga Siku-siku'')') Write(*. Predikat Nilai Fortran Mahasiswa ======================== Nomor BP : xxxxxxxxx Nama : xxxxxxxxxxxxxxxx Nilai Akhir : 999. Mencari Keliling'')') Write(*.\)') Read (*.'(/.20X.F6.\)') Read(*. Mad*1 Real Nilai Mad='Y' 5 IF(Mad..Luas Pilih = 0 30 IF(Pilih.''==============================='')') Write(*. Mencari Luas'')') Write(*.EQ.'(/. apakah melalui perintah memasukan data dari keyboard atau pemberian nilai (assignment) dengan operasi aritematika sama dengan (=).2)')Tinggi Write(*.5 Write(*.'(20X.'(20X.

\)')'Masih Ada Data [Y/T] :' Read(*.A.14X.A)')'Predikat Nilai Fortran Mahasiswa' Write(*.A.'(14X.A1)')'Nilai Bobot :'.0) THEN Bobot = 'E' Mutu = 0 Ket = 'Gagal' ELSEIF(Nilai.Bobot Write(*. Perulangan Selama Kondisi Salah Perintah perulangan ini merupakan perulangan blok pernyataan yang sama.LT.A10)')'Keterangan :'.40.'(14X.'(A8)')Bp Write(*.'(14X.\)')'Nama :' Read(*.'(A15)')Nama Write(*.'(14X.Ket Write(*.0) THEN Bobot = 'B' Mutu = 3 Ket = 'Memuaskan' ELSE Bobot = 'A' Mutu = 4 Ket = 'Terpuji' ENDIF Write(*.\)')'Nilai Akhir :' Read(*.A.2)')Nilai IF(Nilai.'(14X.LT.'(F6.LT. Diawal perulangan (nomor label awal perulangan) tidak diperlukan pemberian nilai terhadap variabel ekspresi.Teori Pemrograman Terstruktur Bahasa Fortran Write(*. variabel untuk ekspresi harus diberi nilai terlebih dahulu.'(A1)')Mad GOTO 5 Endif End 5.'(14X. Jika kondisi tidak terpenuhi blok pernyataan dikerjakan kembali.Mutu Write(*. dimana blok pernyataan dikerjakan terlebih dahulu dan diakhiri dengan ekspresi (baru ditanya kondisi dari ekspresi).A.3. Sebelum memasuki perintah IF.A)')'================================' Write(*.'(14X.A.LT.55. tetapi kalau terpenuhi pengerjaan program dilanjutkan ke perintah berikutnya.80.'(/.A.\)')'Nomor BP :' Read(*. apakah melalui JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 31 .0) THEN Bobot = 'C' Mutu = 2 Ket = 'Cukup' ELSEIF(Nilai.'(14X.A.I1)')'Nilai Mutu :'.65.0) THEN Bobot = 'D' Mutu = 1 Ket = 'Kurang' ELSEIF(Nilai. Bentuk umum dari perintah ini adalah : nl1 : : <blok pernyataan> : IF (ekspresi) GOTO nl2 GOTO nl1 nl2 : Untuk perintah perulangan selama kondisi salah (Repeat-Until) dibentuk dari gabungan perintah Logikal IF dengan perintah GOTO.

$DEBUG Integer Pilih Real Kel.'(F5.Teori Pemrograman Terstruktur Bahasa Fortran perintah memasukan data dari keyboard atau pemberian nilai (assignment) dengan operasi aritematika sama dengan (=). Ket*10.'(/.'(14X.'(F5..'(14X.GE.''2.LT.'(20X.2)')Nilai IF(Nilai. Bobot*1.''Pilih [1-3] :''.\)') Read(*..A. merubah perulangan selama kondisi benar (While-DO) menjadi selama kondisi salah (Repeat-Until).1) THEN Luas = Panjang * Lebar / 2 Write(*.'(20X. Contoh program.''Input Nilai Lebar :''.20X.'(20X.'(20X.\)')'Nama :' Read(*.20X.Luas 30 Write(*.!' ENDIF IF(Pilih. Selesai'')') Write(*.''Keliling Segitiga :''.A.20X.\)') Read(*.pemberian nilai baru kondisi IF(Pilih.A.'(I1)')Pilih <. $DEBUG Character Bp*8. Nama*15.F6. Mad*1 Real Nilai 5 Write(*.2)')Kel Pause 'Tekan Enter untuk lanjut .'(20X.''3.A)')'Predikat Nilai Fortran Mahasiswa' Write(*.'(24(/))') Write(*.EQ.LT.. Mencari Keliling'')') Write(*.'(20X.F6.'(A15)')Nama Write(*.0) THEN Bobot = 'E' Mutu = 0 Ket = 'Gagal' ELSEIF(Nilai.2)')Tinggi Write(*.'(/.2)')Luas Pause 'Tekan Enter untuk lanjut .55.''Menu Program Segitiga Siku-siku'')') Write(*.2)')Lebar Write(*. Mencari Luas'')') Write(*.!' ENDIF IF(Pilih.40.\)')'Nilai Akhir :' Read(*.'(14X.''Luas Segitiga :''. Contoh 1.2) THEN Kel = Panjang + Lebar + (Panjang**2+Lebar**2)**0.3) GOTO 40 GOTO 30 40 Stop 'Selesai' END Contoh 2.'(A8)')Bp Write(*.'(14X..''==============================='')') Write(*.0) THEN Bobot = 'D' Mutu = 1 Ket = 'Kurang' JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 32 .'(/.''1.'(20X.A)')'================================' Write(*.''Input Nilai Tinggi :''.\)')'Nomor BP :' Read(*.'(F6.5 Write(*.EQ.\)') Read(*.'(14X.

't') GOTO 10 GOTO 5 End 10 JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 33 .LT.'T'.65.Mad.EQ.'(A1)')Mad IF(Mad.A1)')'Nilai Bobot :'.Mutu Write(*.'(14X.OR.Teori Pemrograman Terstruktur Bahasa Fortran ELSEIF(Nilai.A.A.A10)')'Keterangan :'.LT.80.'(14X.\)')'Masih Ada Data [Y/T] :' Read(*.A.Ket Write(*.Bobot Write(*.'(/.0) THEN Bobot = 'C' Mutu = 2 Ket = 'Cukup' ELSEIF(Nilai.EQ.I1)')'Nilai Mutu :'.A.'(14X.0) THEN Bobot = 'B' Mutu = 3 Ket = 'Memuaskan' ELSE Bobot = 'A' Mutu = 4 Ket = 'Terpuji' ENDIF Write(*.14X.

([var_1]..'(/. Fungsi Perintah (Statement Function) Fungsi perintah merupakan sebuah fungsi yang didefenisikan sebagai perintah tunggal.'(F5.\)') Read(*.'(20X.2)')Panjang Write(*.Tinggi)=Panjang+Tinggi+(Panjang**2+Tingi**2)**0.''3.operasi_aritematik sama dengan operasi aritematik pada bab sebelumnya. dimana nama dari fungsi juga sebagai variabel.var_n]) = operasi_aritematik Keterangan : .1.nama_fungsi adalah nama dari fungsi perintah.2)')Luas(panjang.''1.100. Mencari Luas'')') Write(*.. Mencari Keliling'')') Write(*.''Pilih [1-3] :''. Selesai'')') Write(*.Fungsi intrinsic (Instrinsic Function).''Input Nilai Tinggi :''.var_n]) merupakan variabel yang menjadi param eter input yang akan diproses oleh fungsi dan nama dari variabel parameter pengerjaan dengan pemanggil boleh sama atau tidak dengan syarat tipe data harus sama.1000) Pilih Goto 5 10 Write(*..'(20X.'(20X. Fungsi perintah harus diletakkan sebelum perintah pengerjaan dan fungsi perintah ini tidak termasuk kedalam perintah pengerjaan.!' JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 34 . yaitu : Luas = Panjang * Tinngi / 2 Kel = Panjang + Tinggi + (Panjang**2+Tinggi**2)**0.20X. .Tinggi) Pause 'Tekan Enter untuk lanjut .'(F5..'(I1)') Pilih GOTO (10.Tinggi) = Panjang * Tinggi / 2 Kel(panjang.''==============================='')') Write(*. Fungsi perintah dieksekusi oleh perintah pengerjaan lainnya seperti Write dan yang dieksekusi oleh program bukan fungsinya tetapi adalah perintahnya.'(20X.[.''2.Fungsi eksternal (External Function) .''Menu Program Segitiga Siku-siku'')') Write(*. .'(20X. Bentuk umum dari fungsi ini adalah : nama_fungsi([var_1].5 Program $DEBUG Integer Pilih Real Kel..Fungsi perintah (Statment Function) .Luas Luas(Panjang.''Luas Segitiga :''.''Input Nilai Lebar :''.'(20X.20X.[.F6. yaitu : . 6.Teori Pemrograman Terstruktur Bahasa Fortran BAB VI FUNGSI Funsi merupakan sub program untuk pengerjaan tertentu.'(/.5 5 Write(*. Contoh 1 membuat fungsi perintah untuk rumus luas dan keliling segitiga siku-siku..'(20X. karena tidak dieksekusi untuk menghasilkan sesuatu.\)') Read(*.\)') Read(*.2)')Tinggi Write(*. Fungsi didalam bahasa Fortran terbagi atas 3 (tiga) bagian.

35*N3+0.F6.'(I3)')NQ Write(*.5) 5 Format(24(/)) c Buat judul Write(*.F6.LT.A)')'Nilai Akhir Matakuliah Fortran' Write(*.'(13X.NA(NT.\)')'Nilai Ujian Akhir :' Read(*.NU).\)')'Nilai Tugas :' Read(*.'Y'.'(A15)')Nama Write(*..'(13X.'(13X.Eq.2)')'Nilai Akhir :'. Bobot*1.15*N2+0.'(I3)')NM Write(*.A.NU) IF(NA(NT.'(/.'(13X.\)')'Nomor BP :' Read(*. Nilai Akhir Matakuliah Fortran ====================== Nomor BP : xxxxxxxx Nama Mahasiswa : xxxxxxxxxxxxxxxxxxxxx Nilai Tugas : 999 Nilai Quiz : 999 Nilai Ujian Mid : 999 Nilai Ujian Akhir : 999 Nilai Akhir : 999.NQ.n4)=0.mad.20X.NQ.n3. Nama*15.\)')'Nilai Ujian Mid :' Read(*.'(13X.4*N4 mad='Y' 15 IF(Mad..Tinggi) Pause 'Tekan Enter untuk lanjut .Eq.A)')'==============================' c Memasukan data dari keyboard Write(*.'(A8)')BP Write(*.40.A. Ket*10.\)')'Nilai Quiz :' Read(*. mad*1 Real NA NA(n1.0) THEN Bobot = 'E' Mutu = 0 Ket = 'Gagal' JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 35 .99 Nilai Bobot :x Nilai Mutu :9 Keterangan : xxxxxxxxxx Masih Ada Data [Y/T] : x Yang dibuat fungsi perintahnya adalah untuk mencari nilai akhir.1*N1+0.A.'(13X.Teori Pemrograman Terstruktur Bahasa Fortran 100 Goto 5 Write(*.A.'(13X.'y') THEN c Menghapus layar Write(*.NM.A.'(I3)')NT Write(*.2)')Kel(Panjang.'(I3)')NU c Proses mencari nilai akhir c Menampilkan Nilai Akhir Write(*.or. $DEBUG Character Bp*8.!' Goto 5 Stop 'Selesai' END 1000 Contoh 2.NM.n2.'(13X.A.\)')'Nama mahasiswa :' Read(*.''Keliling Segitiga :''.A.'(13X.

. Fungsi eksternal diletakkan setelah perintah pengerjaan atau diakhir (diluar) program induk dan fungsi eksternal ini termasuk kedalam perintah pengerjaan.'(13X.NQ.NQ.var_n]) merupakan variabel yang menjadi param eter input yang akan diproses oleh fungsi.[.0) THEN Bobot = 'B' Mutu = 3 Ket = 'Memuaskan' ELSE Bobot = 'A' Mutu = 4 Ket = 'Terpuji' ENDIF Write(*.Bobot Write(*.'(A1)')mad Goto 13 ENDIF End 6.Mutu Write(*. Contoh 1 membuat fungsi perintah untuk rumus luas dan keliling segitiga siku-siku.NU). . Fungsi Eksternal (External Function) Fungsi eksternal merupakan sebuah fungsi yang didefenisikan sebagai nama dari blok pernyataan.2. IF..0) THEN Bobot = 'C' Mutu = 2 Ket = 'Cukup' ELSEIF(NA(NT. Semua pernyataan (perintah dan argument) dapat dilakukan disini. nama variabel parameter Fungsi dengan parameteter pemanggil harus berbeda tetapi tipe data harus sama.A1)')'Nilai Bobot :'.([var_1].'(13X. .A10)')'Keterangan :'.'(13X. dan sebagainya.[.Ket Write(*. Bentuk umum dari fungsi ini adalah : [tipe_data] nama_fungsi([var_1]..A. tetapi tidak dapat berupa CHARACTER.LT.0) THEN Bobot = 'D' Mutu = 1 Ket = 'Kurang' ELSEIF(NA(NT.NM.65.'(13X.NU)..80.Teori Pemrograman Terstruktur Bahasa Fortran ELSEIF(NA(NT.<blok pernyataan>.LT.LT. yaitu : JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 36 .55.[tipe_data] adalah identifikasi tipe data secara eksplisit .I1)')'Nilai Mutu :'.\)')'Masih Ada Data [Y/T] : ' Read(*.A.NM.nama_fungsi adalah nama dari fungsi eksternal. Fungsi eksternal akan dieksekusi oleh perintah pengerjaan lainnya seperti Write. merupakan kumpulan perintah untuk menda pat kan nilai dari untuk nama fungsi tersebut.NQ. dan yang dieksekusi oleh program tidak hanya perintah pengerjaan tetapi juga fungsi itu sendiri. karena dieksekusi untuk menghasilkan sesuatu nilai.NU).var_n]) : : <blok pernyataan> : END Keterangan : FUNCTION .NM.A.A.

'(/.'(A8)')BP Write(*.5 END Contoh 2.'(13X.T) Luas = P * T / 2 END c fungsi eksternal untuk menghitung keliling REAL FUNCTION Kel(pan. masalahnya sama dengan contoh dua pada fungsi perintah (Statment Function). Mencari Keliling'')') Write(*.!' Goto 5 100 Write(*.5 Program $DEBUG Integer Pilih 5 Write(*.'(F5.Teori Pemrograman Terstruktur Bahasa Fortran Luas = Panjang * Tinggi / 2 Kel = Panjang + Tinggi + (Panjang**2+Tinggi**2)**0.2)Kel(Panjang.A.'(I3)')NQ JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 37 .''Input Nilai Lebar :''.A.\)')'Nomor BP :' Read(*.20X.F6.'(F5.'(20X. mad*1 mad='Y' 15 IF(Mad.20X.\)') Read(*.A)')'Nilai Akhir Matakuliah Fortran' Write(*.20X.'(13X.''3. Mencari Luas'')') Write(*.'(I1)') Pilih GOTO (10.\)')'Nama mahasiswa :' Read(*.'(20X.Eq.'Y'.\)') Read(*.F6.'(/.'(13X..'(20X.\)')'Nilai Tugas :' Read(*.''Keliling Segitiga :''.''Input Nilai Tinggi :''.2)')Luas(panjang. yaitu : $DEBUG Character Bp*8.2)')Panjang Write(*.100. Ket*10.'(/.'(20X. Nama*15.'(13X.'(13X.\)') Read(*. Selesai'')') Write(*.'(20X.'(A15)')Nama Write(*.Ting) Kel=Pan+Ting+(Pan**2+Ting**2)**0..'(13X.A)')'==============================' c Memasukan data dari keyboard Write(*.5) 5 Format(24(/)) c Buat judul Write(*.\)')'Nilai Quiz :' Read(*.2)')Tinggi Write(*.Tinggi) Pause 'Tekan Enter untuk lanjut .!' Goto 5 1000 Stop 'Selesai' END c fungsi eksternal untuk menghitung luas REAL FUNCTION Luas(P.A.''==============================='')') Write(*.A.''1.'y') THEN c Menghapus layar Write(*..or.''Menu Program Segitiga Siku-siku'')') Write(*.1000) Pilih Goto 5 10 Write(*. Bobot*1.Eq..''2.'(20X.mad.''Luas Segitiga :''.''Pilih [1-3] :''.Tinggi) Pause 'Tekan Enter untuk lanjut .'(20X.'(I3)')NT Write(*. Yang dibuat fungsi eksternalnya adalah untuk mencari nilai akhir.

A.\)')'Nilai Ujian Akhir :' Read(*.A1)')'Nilai Bobot :'.0) THEN Bobot = 'E' Mutu = 0 Ket = 'Gagal' ELSEIF(NA(NT. Tipe Data Tipe Data Keterangan Parameter Hasil Real*4 Integer Merubah bilangan desimal ke bilangan Integer bulat Real*4 Integer Merubah bilangan real ke pecahan Real*8 Integer Merubah bilangan real ketetapan ganda ke bil.NQ.2)')'Nilai Akhir :'.\)')'Masih Ada Data [Y/T] : ' Read(*.NU).0) THEN Bobot = 'D' Mutu = 1 Ket = 'Kurang' ELSEIF(NA(NT.NU). Fungsi Konversi Tipe Data Pada fungsi ini memiliki satu variabel parameter masukan (input) yang diproses oleh fungsi tersebut.55.'(13X.'(13X.40.4*N4 END 6.A. Fungsi Intrinsik (Intrinsic Function) Fungsi intrinsik merupakan fungsi pustaka yang telah terdeklarasi pada Library Compiler Fortran.n3.n2.NM.A.LT. dimana fungsi ini tidak perlu dideklarasikan dan didefinisikan pada program Fortran.'(13X.0) THEN Bobot = 'C' Mutu = 2 Ket = 'Cukup' ELSEIF(NA(NT.Mutu Write(*.NA(NT.NM.LT.'(I3)')NU c Proses mencari nilai akhir c Menampilkan Nilai Akhir Write(*.'(13X.'(13X.A.A.'(13X.n4) NA=0.35*N3+0.'(I3)')NM Write(*.A.Teori Pemrograman Terstruktur Bahasa Fortran Write(*.'(A1)')mad Goto 13 ENDIF End REAL FUNCTION NA(n1.A10)')'Keterangan :'.LT.Bobot Write(*.80. Tabel 6-1.1. 6.NU) IF(NA(NT. Fungsi Konversi Tipe Data.1*N1+0.NU).Ket Write(*.0) THEN Bobot = 'B' Mutu = 3 Ket = 'Memuaskan' ELSE Bobot = 'A' Mutu = 4 Ket = 'Terpuji' ENDIF Write(*.NQ.3.NM.\)')'Nilai Ujian Mid :' Read(*.A.NQ. Fungsi ini disebut juga dengan istilah fungsi standar (Standard Function).NU).F6.65.LT.NQ. Programmer tinggal memakai saja bila diperlukan.NQ.NM.NM.15*N2+0.I1)')'Nilai Mutu :'.'(13X.3. Bulat Universitas Putra Indonesia “YPTK” Halaman : 38 Nama Fungsi INT(X) IFIX(X) IDINT(X) JUFRIADIF NA’AM .

'(5X.2)')DINT(A) Write(*.F8.'(5X.'(5X.2)')AINT(B) Write(*.'(I2)') I Write(*.87 B=1234.pecahan Merubah bilangan ke karakter Merubah karakter ke bilangan bulat Merubah bilangan pecahan ganda ke tunggal Merubah nilai bilangan ke bilangan pecahan ke tetapan ganda Contoh.\)') Read(*.'(5X.''Nilai IDNINT(A) =''.I5)')INT(A) Write(*.'(5X.I5)')IFIX(A) Write(*. Nama Tipe Data Tipe Data Keterangan Fungsi Parameter Hasil AINT(X) Real*4 Real*4 Menghilangkan nilai pecahan (desimal) DINT(X) Real*8 Real*8 Menghilangkan nilai desimal (pecahan) ANINT(X) Real*4 Real*4 Membulatkan ke nilai terdekat DNINT(X) Real*8 Real*8 Membulatkan ke nilai terdekat NINT(X) Real*4 Integer Membulatkan ke nilai terdekat IDNINT(X Real*8 Integer Membulatkan ke nilai terdekat ) Catatan : yang dibulatkan khusus nilai desimal atau pecahannya saja menjadi nilai bilangan bulat Contoh : $DEBUG Real*8 A A=123456789. Tabel 6-2.'(5X.I8)')NINT(B) Write(*.''Nilai ICHAR(I) =''. Fungsi Pembulatan.2)')ANINT(B) Write(*.2)')Real(I) END 6.'(5X.A5)')ICHAR(I) Write(*.F12.''Nilai INT(A) =''.I5)')IDINT(A) Write(*.''Nilai REAL(I) =''.''Nilai DNINT(A) =''.F12.'(F5.2)') A Write(*.''Nilai AINT(B) =''.567 Write(*.''Nilai NINT(B) =''.''Nilai SNGL(A) =''.'(5X.I12)')IDNINT(A) END JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 39 .2)')SNGL(A) Write(*.'(5X.2.''Nilai DINT(A) =''.\)') Read(*.'(5X.'(5X.''Nilai ANINT(B) =''. $DEBUG Write(*.'(5X.F7.Teori Pemrograman Terstruktur Bahasa Fortran REAL(X) FLOAT(X) CHAR(X) ICHAR(X) SNGL(X) DBLE(X) Real*4 Integer Integer Integer Character Real*8 Integer Real*4 Real*8 Real Real Character Integer Real*4 Real*8 Merubah bilangan ke bilangan pecahan merubah bil.'(5X.''Nilai IFIX(A) =''.3.F7. Fungsi Pembulatan Pada fungsi ini memiliki satu variabel parameter masukan (input) yang diproses oleh fungsi tersebut.bulat ke bil.''Masukan bilangan bulat (I) =''.''Masukan bilangan pecahan (A) =''.''Nilai IDINT(A) =''.2)')DNINT(A) Write(*.F8.'(5X.

I5)')K END Hasil : Selisih I = 1234 dengan J = 2000 sama dengan = 8766 6.''sisa sama dengan ''.Y) Real*8 Real*8 Sisa pembagian bilan Real ganda Contoh : $DEBUG I=10 J=4 K=MOD(I.J) Integer Integer Sisa pembagian bilan bulat AMOD(X.3. Fungsi Sisa Pembagian Fungsi sisa pembagian merupakan nilai sisa dari operasi pembagian bilangan.J. Fungsi Absolut Pada fungsi ini berfungsi untuk memutlakan nilai bilangan (menghilangkan tanda minus).''sama dengan = ''.00 Nilai IDNINT(A) = 123456790.I5.3.'(5X. Fungsi Absolut. Fungsi Sisa Pembagian.I3.00 Nilai DINT(A) = 123456789. Tipe data Keterangan Hasil Integer Memutlakkan bilangan bulat Real*4 Memutlakkan bilangan bulat Real*8 Memutlakkan bilangan Real ganda Nama Fungsi IABS(X) ABS(X) DABS(X) Contoh.00 Nilai NINT(B) = 1235.00 Nilai DNINT(A) = 123456790.K END JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 40 .\)')I Write(*.'(5X.4.''dengan J = ''.'(5X.J) Write(*. Tabel 6-3.''bagi''.I3)')I. Tabel 6-4.Y) Real*4 Real*4 Sisa pembagian bilan Real tunggal DMOD(X.I3.00 Nilai ANINT(B) = 1235.Teori Pemrograman Terstruktur Bahasa Fortran Hasil : Nilai AINT(B) = 1234.I5.3.00 6.\)')J K=IABS(i-j) Write(*. Nama Fungsi Tipe Data Tipe Data Keterangan Parameter Hasil MOD(I.'(5X.''Selisi I = ''. Tipe Data Parameter Integer Real*4 Real*8 $DEBUG I=1234 J=2000 Write(*.

real ganda Contoh : $DEBUG I=-10 J=4 K=ISIGN(I.'(5X.J) Write(*. Nama Fungsi IDIM(I.I3)')I.'(5X.3. tetapi jika nilai selisihnya negatif maka nilai dari fungsi sama dengan 0 (nol).J) DIM(X.J Write(*.''karena J=''.real tung Pengiriman tanda untuk bil. Fungsi Perbedaan Nilai Bilangan.J) Write(*.I3.Y) Contoh : $DEBUG I=4 J=-10 K=IDIM(I.''Nilai I''.I3. Variabel pemberi tanda diletakkan setelah koma dan yang mendapat tanda sebelum koma. Tabel 6-6.K Write(*.Y) DDIM(X.''adalah K=''.Y) Real*4 DSIGN(X.6.''Selisih I=''.Teori Pemrograman Terstruktur Bahasa Fortran 6.J) Integer SIGN(X. Fungsi Pengiriman Tanda Fungsi pengiriman tanda adalah merubah tanda (+ atau -) kedalam nilai variabel pemberian nilai dari yang memberi nilai.I3)')I.''dengan J=''.'(5X.I3)')K END Hasil : Selisih I= 4 dengan J=-10 adalah K= 14 JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 41 Tipe Data Tipe Parameter Hasil Integer Integer Real*4 Real*4 Real*8 Real*8 Data Keterangan Untuk data bilangan bulat (integer) Untuk data real tunggal Untuk data bilangan real ganda . Nama Fungsi Tipe Data Parameter ISIGN(I. jika selisihnya positif maka nilai dari fungsi ini sesuai dengan bilangan nilai selisihnya.I3. Fungsi Pengiriman Tanda. Tabel 6-5.5.''menjadi ''. Bulat Pengiriman tanda untuk bil. Fungsi Perbedaan Nilai Bilangan Fungsi perbedaan tanda merupakan fungsi untuk mencari selisih nilai dari 2 (dua) buah nilai bilangan atau variabel.Y) Real*8 Tipe Data Hasil Integer Real*4 Real*8 Keterangan Pengiriman untuk Bil.3.'(5X.'' positif'')')J END Hasil: Nilai I -10 menjadi 10 karena J= 4 positif 6.

…) AMIN0(i..I3)')ma END Hasil : Nilai Tertinggi adalah = 9 6.M. Variabel parameter (yang dibandingkan) bisa banyak. Nama Fungsi MIN0(i. Nama Fungsi MAX0(i.Teori Pemrograman Terstruktur Bahasa Fortran 6.3.J. Fungsi Mencari Nilai Terkecil Fungsi ini membandingkan nilai dari variabel parameter yang ada dan mencari mana nilai yang terkecil (terendah).…) Contoh : $DEBUG I=4 J=9 K=7 L=-10 JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 42 Tipe Data Parameter Integer Real*4 Integer Real*4 Real*8 Tipe Data Hasil Integer Real*4 Real*4 Integer Real*8 Keterangan Untuk Data Bilangan bulat Untuk data bilangan pecahan ketetaoan tunggal Untuk data bilangan bulat ke pecahan Untuk data bilangan pecahan ke bilangan bulat Untuk data bilangan real ganda Tipe Data Parameter Integer Real*4 Integer Real*4 Real*8 Tipe Data Hasil Integer Real*4 Real*4 Integer Real*8 Keterangan Untuk Data Bilangan bulat Untuk data bilangan pecahan ketetaoan tunggal Untuk data bilangan bulat ke pecahan Untuk data bilangan pecahan ke bilangan bulat Untuk data bilangan real ganda . Fungsi Mencari Nilai Terbesar.) DMIN1(x. MAX1(x.) DMAX1(x. Variabel parameter (yang dibandingkan) bisa banyak.j.…).…).…) AMAX0(i.y.…) AMAX1(x. MIN1(x.j.'(5X. Tabel 6-8.…) AMIN1(x. Fungsi Mencari Nilai Terkecil.j. Tabel 6-7.N) Write(*.j.8..…) Contoh : $DEBUG I=4 J=9 K=7 L=-10 M=2 N=6 Ma=Max0(I..''Nilai Tertinggi adalah =''.7.3.y.L. Fungsi Mencari Nilai Terbesar Fungsi ini membandingkan nilai dari variabel parameter yang ada dan mencari mana nilai yang tertinggi (terbesar).y.y.y..K.y.

Fungsi Akar Kuadrat Fungsi ini mengcari akar kuadrat sebuah bilangan pecahan (real). Tabel 6-9.y) Contoh : $DEBUG X1=1234.00 Z1=SQRT(Y1) Write(*.2.00 Y1=5678.L.F8.'' x ''.Z1 END Hasil : Akar dari 25.00 6.71828).11.F8.00 = 5.Teori Pemrograman Terstruktur Bahasa Fortran M=2 N=6 Mi=Min0(I. Fungsi Perkalian Dua Variabel Bilangan Real Tipe Data Parameter Tipe Data Hasil Keterangan Real*4 Real*8 Untuk data bilangan pecahan tunggal ke ganda Nama Fungsi DPROD(x. JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 43 .''Akar dari''.'(5X. Fungsi Akar Kuadrat Tipe Data Parameter Tipe Data Hasil Keterangan Real*4 Real*4 Untuk data bilangan pecahan tunggal Real*8 Real*8 Untuk data bilangan pecahan ganda Nama Fungsi SQRT(x) DSQRT(x) Contoh : $DEBUG Y1=25.Y1) Write(*.F12.2.3.F8.I3)')mi END Hasil : Nilai Terendah adalah = -10 6.'(5X.00 6.'' = ''. Fungsi Perkalian Dua Variabel Bilangan Real Fungsi ini mengalikan (*) dua buah bilangan real.''Nilai Terendah adalah =''.Y1. dengan rumus eX (e=2.F8.3. yang nilai dari hasil perkalian tersebut disimpan didalam nama fungsi. Fungsi Eksponensial Fungsi ini mencari nilai eksponensial dari bilangan real.N) Write(*.K.Z1 END Hasil : 1234.3.2)')X1.9.'' = ''.J.00 = 7006652. Tabel 6-10.'(5X.10.00 Z1=DPROD(X1.00 x 5678.M.2)')Y1.2.

13.00 Z1=ALOG(Y1) Write(*.00 Z1=EXP(Y1) Write(*.''Eksponensial dari''.2.3. Fungsi Logarithma Fungsi ini mencari nilai logarithma sebuah variabel bilangan.F8.00 = 3. Tabel 6-12.'(5X.4)') Y1.'(5X.2958 radian. Tabel 6-13.Teori Pemrograman Terstruktur Bahasa Fortran Tabel 6-11.3. dengan rumus : 1 derjad biasa (degree) = phi/180 radian atau sama dengan 1/57.2.38904 6.'' = ''.F8.5)') Y1.00 = 7. Fungsi Eksponensial Nama Fungsi EXP(x) DEXP(x) Tipe Data Parameter Real*$ Real*8 Tipe Data Hasil Real*4 Real*8 Keterangan Untuk data bilangan pecahanl tunggal Untuk data bilangan pecahan ganda Contoh : $DEBUG Y1=2.Z1 END Hasil : Logarithma dari 1000.''Logarithma dari''. Fungsi Logarithma Nama Fungsi ALOG(x) DLOG(x) ALOG10(x) DLOG10(x) Tipe Data Parameter Real*$ Real*8 Real*$ Real*8 Tipe Data Hasil Real*4 Real*8 Real*4 Real*8 Keterangan Loge(X) Untuk data bilangan pecahanl tunggal Loge(X) Untuk data bilangan pecahan ganda Log10(X) Untuk data bilangan pecahanl tunggal Log10(X) Untuk data bilangan pecahan ganda ada lah Logarithma biasa Catatan : Loge adalah Logarithma natural dan Log10 Contoh : $DEBUG Y1=1000. Fungsi Trigonometri Fungsi ini mencari nilai derjad sebuah sudut.12.F8.F8.Z1 END Hasil : Eksponensial dari 2. satuan dari nilai sudut hasil fungsi ini adalah derjad radian.'' = ''.0000 6. Fungsi Trigonometri Nama Fungsi JUFRIADIF NA’AM Tipe Data Parameter Tipe Data Hasil Keterangan Halaman : 44 Universitas Putra Indonesia “YPTK” . Maka variabel atau nilai yang akan difungsikan harus terlebih dahulu dirubah kedalam derjad degree (biasa).

Anak2 Anak1='Riandy' Anak2='Arrianda' Write(*.'(5X.00 Z1=COS(Y1/57.h2) LLE(h1.L1)')LGT(Anak1.''Kecil sama dengan : ''. Fungsi Logika Karakter Fungsi ini membandingkan dua buah data karakter.14.h2) Contoh : $DEBUG CHARACTER*8 Anak1.'(5X. untuk salah).y) DATAN2(x.''Besar dari : ''.Teori Pemrograman Terstruktur Bahasa Fortran SIN(x) DSIN(x) COS(x) DCOS(x) TAN(x) DTAN(x) ASIN(x) DASIN(x) ACOS(x) DACOS(x) ATAN(x) DATAN(x) ATAN2(x.y) SINH(x) DSINH(x) COSH(x) DCOSH(x) TANH(x) DTANH(x) Contoh : $DEBUG Y1=60.L1)') LGE(Anak1.''Besar sama dengan : ''.h2) LGT(h1.F8.'(5X. Fungsi Logika Karakter Nama Fungsi LGE(h1.00 = .'(5X.F8. Cara perbandingan yang dilakukan adalah membandingkan nilai numerik kode ASCII dari nilai data tersebut.T.3.5000 6. dan nilai fungsi ini merupakan hasil dari perbandingan tersebut dalam bentuk tipe data logika (.2.Anak2) Write(*. untuk benar dan .Anak2) Write(*.F.Anak2) JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 45 Real*4 Real*8 Real*4 Real*8 Real*4 Real*8 Real*4 Real*8 Real*4 Real*8 Real*4 Real*8 Real*4 Real*8 Real*4 Real*8 Real*4 Real*8 Real*4 Real*8 Real*4 Real*8 Real*4 Real*8 Real*4 Real*8 Real*4 Real*8 Real*4 Real*8 Real*4 Real*8 Real*4 Real*8 Real*4 Real*8 Real*4 Real*8 Real*4 Real*8 Sinus X Sinus X Cosinus X Cosinus X Tangen X Tangen X ArcSinus X ArcSinus X ArcCosinus X ArcCosinus X ArcTangen X ArcTangen X ArcTangen X/Y ArcTangen X/Y Sinus X hiperbolik Sinus X hiperbolik Cosinus X hiperbolik Cosinus X hiperbolik Tangen X hiperbolik Tangen X hiperbolik Tipe Data Parameter Character Character Character Character Tipe Data Hasil Logical Logical Logical Logical Keterangan Besar atau sama dengan (>=) Besar atau sama dengan (>) Besar atau sama dengan (<=) Besar atau sama dengan (<) . Tabel 6-14. mulai dari huruf pertama sampai akhir.''Nilai Cosinus dari ''.2958) Write(*.Z1 END Hasil : Nilai Cosinus dari 60.4)') Y1.'' = ''.h2) LLT(h1.L1)') LLE(Anak1.

T. Besar sama dengan : .L1)')LTT(Anak1.F.'(5X.F.''Kecil dari : ''. Kecil dari : . Kecil sama dengan : .Teori Pemrograman Terstruktur Bahasa Fortran Write(*.Anak2) END Hasil : Besar dari : . JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 46 .T.

Teori Pemrograman Terstruktur Bahasa Fortran BAB VII PROGRAM INDUK DAN PROSEDUR Suatu program yang lengkap dapat dibagi-bagi berdasarkan sub pengerjaan tertentu (dipecah-pecah), dimana dari kesuluruhan pecahan ini saling mendukung dan saling keterkaitan dalam mencapai suatu tujuan. Pecahan-pecahan ini terdiri dari 1 (satu) sub induk program (main) dan beberapa bagian program anak yang dinamakan dengan prosedur. 7.1. Perintah PROGRAM Sub induk program utama (main) dapat diberi nama identitasnya dengan memakai perintah PROGRAM dan juga boleh tidak dibuat. Bentuk umumnya adalah : PROGRAM Nama_program Nama_program adalah nama identitas sebuah program, dimana nama ini boleh bebas selai dari pada perintah atau kata-kata yang sudah terdefinisi didalam Bahasa Fortran. Cara pemberian nama program ini sama dengan pemberian nama variabel sebuah data. Jika nama program tidak dibuat maka Bahasa Fortran menganggap nama dari program tersebut adalah MAIN. Contoh : PROGRAM Nilai PROGRAM Latihan 7.2. Perintah SUBROUTINE Dan CALL Prosedur adalah kumpulan pernyataan yang merupakan subprogam (subrutin bagian) yang terpisah dari program utama (induk). Biasanya prosedur ini tidak selalu atau sering dikerjakan dalam eksekusi program, hanya pada saat-saat dibutuhkan saja. Didalam prosedur, kumpulan pernyataan mendukung suatu tujuan tertentu yang merupakan sub atau bagian tujuan dari program secara keseluruhan. Procedur didalam program Fortran diletakkan dibawah program induk, yang dipanggil dengan memakai perintah CALL. Dalam pembuatan prosedur digunakan perintah SUBROUTINE dan diakhiri dengan END atau RETURN, dengan bentuk umum penulisannya sebagai berikut : SUBROUTINE nama_prosedur [(para_1[,para_2]...[,para_n])] : : END Keterangan: - nama_prosedur adalah nama dari rutin bagian, yang cara pemberian namanya sama dengan pemberian nama variabel. - [(para_1[,para_2]...[,para_n])] adalah nama variabel parameter yang digunakan sebagai data masukan untuk prose dur (input) atau data hasil keluaran dari prosedur (output) yang akan diproses atau dieksekusi didalam prose dur. Variabel parameter ini boleh ada dan boleh tidak sesuai dengan kebutuhan program, jika ada maka perintah CALL untuk memanggil prosedur tersebut juga harus mema kai variabel parameter sesuai dengan jumlahnya. Nama variabel parameter pada SUBROUTINE dengan CALL boleh sama boleh tidak, dengan syarat tipe variabel yang bersesuaian JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK”
Halaman : 47

Teori Pemrograman Terstruktur Bahasa Fortran (urutan) harus sama. Bentuk umum pemanggilan prosedur adalah : CALL nama_prosedur [(para_1[,para_2]...[,para_n])] : : END Didalam prosedur juga dapat memanggil prosedur lainnya, dengan syarat prosedur yang dipanggil tersebut harus terletak dibawah rutin bagian pemanggil. Juga didalam prosedur dapat dilakukan deklarasi atau pemesanan variabel secara eksplisit. Contoh : $DEBUG Character Bp*8, Nama*15, mad*1 mad='Y' 15 IF(Mad.Eq.'Y'.or.mad.Eq.'y') THEN c Menghapus layar Write(*,5) 5 Format(24(/)) c Buat judul Write(*,'(13X,A)')'Nilai Akhir Matakuliah Fortran' Write(*,'(13X,A)')'==============================' c Memasukan data dari keyboard Read(*,'(A8)')BP Write(*,'(13X,A,\)')'Nama mahasiswa :' Read(*,'(A15)')Nama CALL Isi(NT,NQ,NM,NU) Akhir=0.1*NT+0.15*NQ+0.35*NM+0.4*NU CALL Tampil(Akhir) Write(*,'(13X,A,\)')'Masih Ada Data [Y/T] : ' Read(*,'(A1)')mad Goto 13 ENDIF End c Prosedur atau sub rutinnya disebelah halam berikutnya SUBROUTINE Isi (NT,NQ,NM,NU) Write(*,'(13X,A,\)')'Nilai Tugas :' Read(*,'(I3)')NT Write(*,'(13X,A,\)')'Nilai Quiz :' Read(*,'(I3)')NQ Write(*,'(13X,A,\)')'Nilai Ujian Mid :' Read(*,'(I3)')NM Write(*,'(13X,A,\)')'Nilai Ujian Akhir :' Read(*,'(I3)')NU END SUBROUTINE Tampil(A) Character Bobot*1, Ket*10 Write(*,'(13X,A,F6.2)')'Nilai Akhir :',A IF(A.LT.40.0) THEN Mutu = 0 Bobot = 'E' Ket = 'Gagal' ELSEIF(A.LT.55.0) THEN Mutu = 1 Bobot = 'D' JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK”
Halaman : 48

Teori Pemrograman Terstruktur Bahasa Fortran Ket = 'Kurang' ELSEIF(A.LT.65.0) THEN Mutu = 2 Bobot = 'C' Ket = 'Cukup' ELSEIF(A.LT.80.0) THEN Mutu = 3 Bobot = 'B' Ket = 'Memuaskan' ELSE Mutu = 4 Bobot = 'A' Ket = 'Terpuji' ENDIF Write(*,'(13X,A,I1)')'Nilai Mutu :',Mutu Write(*,'(13X,A,A1)')'Nilai Bobot :',Bobot Write(*,'(13X,A,A10)')'Keterangan :',Ket RETURN

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK”

Halaman : 49

Teori Pemrograman Terstruktur Bahasa Fortran BAB VIII ARRAY Array adalah variabel tempat penampungan jajaran nilai data yang sejenis (tipe, panjang). Nilai-nilai data tersebut disimpan dengan memakai satu nama variabel dan setiap nilai varibel tersebut dibedakan dengan indek jajaran nama variabelnya. Nilai indek merupakan bilangan bulat yang dapat bernilai positif dan juga negatif (+ dan -). Perintah Fortran untuk memesan variabel array digunakan perintah DIMENSION, yang bentuk umum penulisannya adalah sebagai berikut : DIMENSION Var_array(dim_1[,dim_2]...[,dim_7]) Keterangan : - Var_array : merupakan nama variabel array, cara pemberian nama array sama dengan cara pemberian nama variabel. Untuk tipe data dari variabel tersebut dapat dilakukan secara implisit atau secara eksplisit sebelum deklarasi array. - dim_1[,dim_2]...[[,dim_7] : merupakan jumlah indek jajaran data yang dapat ditampung oleh jajaran array. Dalam 1 variabel array dapat berdimensi 1 (satu) sampai dengan 7 (tujuh) dan ukuran maksimum pemakaian memory hanya 64 kilo byte (65536 byte). Dalam satu perintah DIMENSION dapat dilakukan lebih dari satu variabel array dengan cara menampahkan tanda koma (,) didepan nama variabel berikutnya. Contoh : Character nama*15, bobot*1 Real nilai Dimension nama(45),bobot(45), nilai(45,9), J(-3) Pembacaan dan menampilkan data array dapat dilakukan dengan penerapan perulangan dari perintah DO didalam READ atau WRITE (Implied do list). Contoh : $Debug Dimension Nilai(5) Write(*,'(5X,''Masukan nilai bilang integer 5 kali'')') Read(*,'(5(5X,I2))') (Nilai(I), I=1,5) Write(*,'(5X,''Data Yang Dimasukan adalh'')') Write(*,'(5(5X,I2))') (Nilai(I), I=1,5) End Kasus : Sekolah Tinggi Manajemen Informatika & Komputer (STMIK) Yayasan Perguruan Tinggi Komputer (YPTK) Padang KARTU HASIL STUDI ================= Nobp / Nama : xxxxxxxx / xxxxxxxxxxxxxxx Semester : III No Kode Nama Mata Kuliah SKS Nilai Mutu x SKS Bobot Mutu 99 Xxxx Xxxxxxxxxxxxxxxxxxxx 9 X 9 999 : : : : : : : : : : : : : : Jumlah 99 999 JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK”
Halaman : 50

cara

''S k s :''.'(10x.''Nama Matakuliah :''.'(1X.'(1X.''Nomor BP :''.'(1X.eq.A)')'¦ ¦ ¦ ¦ |---------------.'(A15)')bobot(n) 10 Continue c Tahap informasi Write(*.''===================='')') Write(*.'(10x.A)')'Sekolah Tinggi Manajemen Informatika & Komputer (STMIK)' Write(*.'(10x. bobot(7).'(A15)')nama(n) Write(*.eq.eq.A8.\)') Read(*.A)')'Nobp / Nama :'.'(10x.'(10x.''Matakuliah ke-:''.'(A15)')kode(n) Write(*.A)')’--------------------------------------------------------------------------------------¦’ Jsks=0 Jms=0 DO 20 n=1.'D') Then mutu=1 Else mutu=0 Endif Ms=Mutu*Sks(n) Jsks=Jsks+Sks(n) Jms=Jms+ms JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 51 .99 : 99 Write(*.' / '.\)') Read(*.eq.D.A15.\)') Read(*. nama*15.'(24(/))') Write(*.nobp.'(A15)')Sks(n) Write(*.7 Write(*.A)') 'Yayasan Perguruan Tinggi Komputer (YPTK) Padang' Write(*.A)')'¦ No ¦ Kode ¦ Nama Mata Kuliah ¦ SKS | N i l a i ¦ ---------' ¦' : 9.7 If(bobot(n).'(10x.'C') Then mutu=2 Elseif(bobot(n). kuliah*15.A)')'¦ ¦ ¦ ¦ ¦ Bobot ¦ Mutu ¦ ¦' Write(*.B.'(1X.\)') Read(*.'(1X.'(A8)')nobp Write(*. kuliah(7).C.\)') Read(*.'(24(/))') Write(*.Teori Pemrograman Terstruktur Bahasa Fortran Indeks Prestasi SKS Yad Program: $DEBUG c Deklarasi data Character nobp*8.I1)')n Write(*.'(1X.''Kode Matakuliah :''. kode*4.'A') Then mutu=4 Elseif(bobot(n).'(A15)')nama DO 10 n=1.'(10x.''Entri Data Mahasiswa'')') Write(*.'(10x.''Nilai [A.A.'(1X.''Nama Mahasiswa :''.A.bobot*1 Integer Sks.'(10x.'Semester = III' Write(*.'B') Then mutu=3 Elseif(bobot(n).'(1X.E] :''.¦ MutuxSks ¦' Write(*.Syad real ip Dimension kode(7).\)') Read(*.A)')’-----------------------------------------------------------------------------Write(*. Sks(7) c Tahap isi data Write(*.

'(1X.2.\)')sks(n) Write(*.Jsm.GE.3.A)')'¦ Jumlah ¦ '.25) Syad=24 Write(*.\)')' ¦ ' Write(*.'(A1.2.00) Syad=15 If(Ip.Ip Write(*.A.2)')'Indeks Prestasi : '.\)')'¦ ' Write(*.'(A4.\)')' ¦ ' Write(*.'(A.I2)')'SKS Yad : '.'(1X.'(A)')' ¦' Continue Write(*.'(A15.A.'(A.\)')' ¦ ' Write(*.Jsks.'(A.\)')ms Write(*.'(1X.'(1X.'(I1.A)') ’---------------------------------------------------------------------------------------' Ip=Jsm/Jsks If(Ip.\)')kuliah(n) Write(*.A.\)')'¦ ' Write(*.Syad End 20 JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 52 .'(A.GE.\)')' ¦ ' Write(*.A.I2.GE.A)') ’---------------------------------------------------------------------------------------' Write(*.00) Syad=12 If(Ip.\)')mutu Write(*.\)')bobot(n) Write(*.F4.2.0.'(I2.'(A.'(1X.50) Syad=18 If(Ip.75) Syad=21 If(Ip.' ¦' Write(*.'(1x.'(I1.A.GE.Teori Pemrograman Terstruktur Bahasa Fortran Write(*.I3.GE.'(I2.\)')Kode(n) Write(*.' ¦ ¦ -.'(A.\)')' ¦ ' Write(*.\)')n Write(*.

Teori Pemrograman Terstruktur Bahasa Fortran BAB IX FILE File adalah tempat penampungan berkas data.format adalah bentuk format record.1. . . Mencetak Ke Printer Untuk membuat laporan yang dicetak ke printer digunakan perintah Open dengan nama filenya adalah 'PRN' dan perintah Write. nomur unit yang digunakan harus sama dengan nomor unit pada OPEN. yaitu : SEQUENTIAL (default). BACKSPACE. ENDFILE.FORM='format'] [.nu adalah nomor unit antara 1 sampai dengan 32767. . Didalam program Fortran File ini digunakan untuk pengenal nomor alat unit untuk menampung data.ACCESS='akses'][. . yaitu digunakan untuk file yang belum pernah dibuka atau jika status sama dengan NEW maka data yang lama hilang (over write).stautus terdiri atas 2 (dua)bagian yaitu : NEW. yaitu metoda pengaksesan secara acak atau random.panjang adalah panjang digit dalam satu record. yaitu metoda pengaksesan secara urut. CLOSE. Nama bebas panjangnya maksimal 8 digit dan tidak boleh ada spasi kosong. 9. Dan yang paling menentukan dalam file ini adalah perintah OPEN. yang digunakan pada file yang berakses deirect (acak). Bentuk umum perintah ini adalah : OPEN(nu[. . Dan huruf pertama dalam argument yang dicetak dapat menentukan hasil cetakan. menyebabkan pencetakan akan mencetak pada halaman baru. yang terdiri dari FORMATTED untuk file sequential (urut). Nama file terdiri atas 2 bagian yaitu PRN untuk mencetak ke printer dan nama bebas yang diberikan oleh programmer. DIRECT. (default) yaitu digunakan untuk file yang telah pernah digunakan dan fungsinya menambah data ke dalam file. Perintah OPEN digunakan untuk membuka file atau mengaktifkan file. Perintah-perintah yang berhubungan dengan file ini terdiri dari OPEN. Akses ini terbagi 2 bagian. Contoh : OPEN(1. READ.FILE='nfile'][. seperti : .Angka 1 (satu).FILE='PRN') Pada setiap pencetakan pada perintah Write. JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 53 . dan REWIND. UNFORMATTED untuk file direct (acak) dan BINERY untuk data yang disimapan dalam bentuk bilang bit (binary digit).RECL=panjang]) Keterangan : . Nomor alat unit ini berupa bilangan integer dari 1 (satu) sampai dengan 32767.nfile adlah nama file yang akan diberikan.akses adalah metoda pengaksesan yang dilakukan. WRITE. OLD.STATUS='status'][.

'(1x.'(''1Teori Pemrograman Terstruktur'')') Write(1.''Huruf Besar''.b a=17691 b=17947 Write(2.''Huruf Kecil''.A3.b1 Open(2.a3)')a.A3. Tanda + (tambah).a3)')a.b a=15 b=18 Write(2.''Naik 1/2 space''.File='PRN') Write(1.''Huruf Tebal''.A3.'(1x.b a=77083 b=11547 Write(2.'(1x.File='PRN') a=14 b=20 Write(2. Angka pengatur pencetakan.'(''1Teori Pemrograman Terstruktur'')') Write(1. menyebabkab terjadinya tumpang tindih pencetakan (over write). Tabel 9-1.a1.Teori Pemrograman Terstruktur Bahasa Fortran Contoh : OPEN(1.b a=21275 b=21531 Write(2.a3)')a.''Garis Bawah''. Disamping cara diatas juga dapat diatur bentuk huruf pencetakan. yaitu dengan mengkonversikan nilai karakter ke angka.'(''+Bahasa Fortran'')') Hasilnya : Maka "Teori Pemrograman Terstruktur" dan "Bahasa Fortran" akan dicetak pada baris dan kolom yang sama atau kata-kata "Bahasa Fortran" akan menindih kata-kata "Teori Pemrogra".File='PRN') Write(1.A3.A3.'(1x. Contoh : OPEN(1.b JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 54 Efek ke pencetakan pada printer huruf menjadi besar huruf menjadi kecil huruf menjadi normal dari huruh kecil huruf menjadi normal dari huruf besar garis bawah aktif garis bawah pasif huruf tebal aktif huruf tebal pasif huruf naik keatas (pangkat) aktif huruf naik keatas (pangkat) pasif .a3)')a.b.'(''1Bahasa Fortran'')') Hasilnya : Maka "Teori Pemrograman Terstruktur" dan "Bahasa Fortran" akan dicetak masing-masing pada satu halaman.'(1x.a3)')a. Angka 14 15 18 20 77083 11547 17691 17947 21275 21531 Contoh : $Debug Character*3 a.

Sks(7) c Tahap isi data Write(*.b End Hasil : Huruf Besar Huruf Kecil Garis Bawah Huruf Tebal Naik 1/2 space HurufBesardigarisbawah Contoh kasus : $DEBUG c Deklarasi data Character nobp*8.\)') Read(*..'(1x.A)')'Yayasan Perguruan Tinggi Komputer (YPTK) Padang' Write(2.Syad real ip Open(2.'(1X.''HurufBesardigarisbawah''.b1.A8.1.'(A15)')Sks(n) Write(*.B.¦ MutuxSks ¦' Write(*.'(10x.''Matakuliah ke-:''.A.nama.'(1X.2(A3).File='PRN') Dimension kode(7).'(A)') ‘Sekolah Tinggi Manajemen Informatika & Komputer (STMIK)' Write(2.\)') Read(*.'(A15)')bobot(n) 10 Continue c Tahap informasi Pause 'Hidupkan Printer ..A)')’---------------------------------------------------------------------------------------' Write(*.A)')'¦ ¦ ¦ ¦ |---------------.Teori Pemrograman Terstruktur Bahasa Fortran a=14 b=20 a1=77083 b1=11547 Write(2.''Nilai [A.'(10x. kuliah*15.'(1X.'(10x.'Semester = III' Write(*.'(1X.\)') Read(*.'(A15)')nama DO 10 n=1.'(1X.''Nomor BP :''.'(10x.bobot*1 Integer Sks.E] :''.I1)')n Write(*. kuliah(7).A)')’--------------------------------------------------------------------------------------¦’ Jsks=0 JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 55 . bobot(7).'(1X.'(24(/))') Write(*.A.''Nama Matakuliah :''.C.!' Write(2.'(10x.\)') Read(*..'(A15)')kode(n) Write(*.\)') Read(*.nobp.''Kode Matakuliah :''.! Siap tekan Enter.'(A15)')nama(n) Write(*.2(a3))') a1.'(10x.'(10x.A)')'Nobp / Nama :'.'(1X. nama*15.'(A8)')nobp Write(*. kode*4.7 Write(*.''S k s :''.' / '.D.\)') Read(*.'(10x.A)')'¦ ¦ ¦ ¦ ¦ Bobot ¦ Mutu ¦ ¦' Write(*.'(10x.''Entri Data Mahasiswa'')') Write(*.A15.A)')'¦ No ¦ Kode ¦ Nama Mata Kuliah ¦ SKS | N i l -a i ¦ ¦' Write(*.''Nama Mahasiswa :''.''================'')') Write(*.

'(1X.7 If(bobot(n).'(I1.Jsm.'C') Then mutu=2 Elseif(bobot(n).'(1x.Syad End 20 9.2)')'Indeks Prestasi : '.' ¦' Write(*.\)')kuliah(n) Write(2.A)')'¦ Jumlah ¦ '.A)') ’---------------------------------------------------------------------------------------' Write(*.\)')n Write(2. yang perlu diperhatikan adalah bagaimana penympanan logika record tersebut.25) Syad=24 Write(2.'(A.'(A)')' ¦' Continue Write(*.F4. yaitu menentukan nama-nama dari field yang membentuk sebuah file serta panjang dari setiap record yang menyusunnya.GE. Penyimpanan data pada disk dilakukan dengan penyimpanan (tersusun) secara phisik (phisical record).'(A.eq.'(1X.' ¦ ¦ -.\)')' ¦ ' Write(2. Panjang record secara phisik pada disk dapat ditampung sebesar 128 byte. Menyimpan Data Ke Disk (FILE) File adalah kumpulan dari record.Jsks.\)')mutu Write(2.'(A.00) Syad=15 If(Ip.A.GE.0.Ip Write(2. field kumpulan dari byte dan byte kumpulan dari bit.2.2.'(I2.\)')ms Write(2.\)')'¦ ' Write(2. Penyimpanan data ke disk ini disebut juga dengan file eksternal (memory luar JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 56 .'B') Then mutu=3 Elseif(bobot(n).75) Syad=21 If(Ip.00) Syad=12 If(Ip.'(A. Didalam penyimpanan data pada disk.A.I2.GE.GE.A)') ’---------------------------------------------------------------------------------------' Ip=Jsm/Jsks If(Ip. Semuanya tersebut tersusun secara logis dan terstruktur.'(I1.'A') Then mutu=4 Elseif(bobot(n). record kumpulan dari field.2.I2)')'SKS Yad : '.eq.'(A.GE.'(1X.\)')' ¦ ' Write(2.'(A15.50) Syad=18 If(Ip.'(I2.\)')' ¦ ' Write(2.\)')' ¦ ' Write(2.2.\)')'¦ ' Write(2.\)')Kode(n) Write(2.A.'D') Then mutu=1 Else mutu=0 Endif Ms=Mutu*Sks(n) Jsks=Jsks+Sks(n) Jms=Jms+ms Write(2.A.\)')sks(n) Write(2.Teori Pemrograman Terstruktur Bahasa Fortran Jms=0 DO 20 n=1.3.'(1X.'(A1.'(A.eq.'(A4.'(1X.\)')' ¦ ' Write(2.\)')bobot(n) Write(2.eq.A.I3.

karena hampir sama dengan perintah END (akhir program). Perintah ini digunakan untuk memindahkan record yang aktif ke satu record sebelumnya.status='Delete') b.status adalah konstanta karakter sebagai penunjuk status dari file yang ditutup.STAUS='satatus']) Keterangan : . Contoh : CLOSE(1) CLOSE(2. Perintah CLOSE.yang cara pengaksesannya dapat dilakukan 2 (dua) cara. Setelah perintah ENDFILE data-data (record) yang akan disimpan selanjutnya tidak terekam ke disk. 'DELETE'. juga perintah-perintah sebagai berikut : a. Bentuk umum dari perintah ini adalah : ENDFILE(nu) Keterangan : -nu adalah nomor unit pengenal dari file. File yang telah ditutup biasanya file yang tidak diakses lagi. Status dapat berupa : 'KEEP'. Perintah Backspace digunakan pada file akses urut (sequential). dan OPEN yang telah dijelaskan terdahulu. Bentuk umum dari perintah ini adalah : CLOSE(nu[. yaitu file ditutup dan dihapus dari disk. Printah ini jarang digunakan dalam pengelolaan File. Perintah ini boleh tidak digunakan dalam pengelolaan file. ENDFILE.nu adalah nomor unit. BACKSPACE.Teori Pemrograman Terstruktur Bahasa Fortran Komputer). Perintah-perintah yang digunakan selain WRITE (menyimpan ke disk). Perintah Close digunakan untuk menutup file yang telah dibuka (OPEN). sesuai dengan yang ada pada perintah OPEN. . karena setiap selesai pengerjaan program (Perintah END) secara otomatis semua file akan ditutup kembali.status='KEEP') CLOSE(1. yaitu secara Sequential (urut) dan Direct (langsung). READ (membacadari disk). Contoh : ENDFILE(2) c. Bentuk umum perintah ini adalah : BACKSPACE nu JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 57 . yaitu (default) file ditutup dan disimpan. Perintah Endfile digunakan untuk menentukan bahwa record berikutnya adalah akhir dari file.

Delete) .Nilai akhir = 10%*Nilai Program Entri + 35%*Nilai Program Transaksi + 55%*Nilai Program Informasi.Jika Nilai Akhir >= 55 maka Keterangan=Lulus. Contoh : BACKSPACE 1 d. Contoh : REWIND 1 9. .99 Nilai Program Transaksi : 999. yaitu : Predikat Nilai Ujian Profesional Programing =============================== Nomor BP : xxxxxxxxx Nama : xxxxxxxxxxxxxxxx Nilai Program Entri : 999.99 Keterangan : xxxxxxxxxx Proses : . Perintah REWIND digunakan pada file akses urut (sequential). Untuk program pengolahan data file urut terdiri dari : .1. Untuk kasus dalam pengolahan data file urut ini diambil pengolahan Data Nilai Ujian Profesional Programing yang telah dibahas pada bab sebelumnya. kalau tidak Keterangan=Gagal Data-data yang disimpan adalah : JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 58 . Perintah ini digunakan untuk memindahkan record yang aktif ke record pertama (top). REWIND.membuat file .2. Bentuk umum perintah ini adalah : REWIND nu Keterangan : -nu adalah nomor unit pengenal dari file. File Akses Urut Cara kerja yang khusus pada file akses urut adalah data disimapan dan dibaca mulai dari record pertama urut sampai dengan record terakhir.menampilkan record.memodifikasi record (Edit.menambah record .99 Nilai Program Informasi : 999.Teori Pemrograman Terstruktur Bahasa Fortran Keterangan : -nu adalah nomor unit pengenal dari file.

'Y'. Mad*1.1.dbs.'(F6.''Nilai Prog. Info.''Nomor BP : ''.Nilai Program Transaksi .'(5x.or.'(5x. tran.or.Eq.'(24(/))') c Isi data baru dari keyboard ke dalam field record Write(*.'y') Then c Simpan data Write(1.'(5x.''Input Data Ujian'')') Write(*.Nilai Program Entri .2)')mad c Jika tidak ada data lagi keluar dari pengisian data JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 59 staus='NEW' dan setelah diisi .'(/.2)')Info Write(*.'(A1)')dbs c Jika data sudah benar IF(dbs.mad.'(5x.''Data Sudah Benar [Y/T] : ''. Dbs*1 Real Info c Buka file OPEN(1. : ''.Status='NEW') c memasukan data dari keyboard mad='Y' 5 IF(mad.''Nama Mahasiswa : ''.FILE='Ujian.'(a8)')nobp Write(*.'Y'.''================'')') Write(*.'(F6.Doc'.'(15x. Program : $Debug c Program membuat file urut c Pesan Variabel secara eksplisit untuk field dalam record Character nama*15.Nilai Program Informasi Struktur Record Field Name Nobp Nama Entri Tran Info Type Character Character Real Real Real Width 8 15 6 6 6 Decimal 2 2 2 Description Nomor BP Nama Mahasiswa Nilai Program Entri Nilai Program Transaksi Nilai Program Informasi 9.'(F6.entri.\)') Read(*.\)') Read(*.info Endif c Kalau tida salah dilewati saja dan isi massih ada data atau c tidak Write(*.\)') Read(*.1.'(15x.2.2)')Entri Write(*.'(a15)')nama Write(*.\)') Read(*.2.2.'(a5.'(5x.\)') Read(*.''Masih Ada Data [Y/T] : ''. nobp*8.'(/.a15. file dibuka dengan simpan.f6.5x. Tran. Entri : ''.2)')Tran Write(*.f6.2)')nobp.5x. : ''.''Nilai Prog.f6.'y') Then c Hapus Layar Write(*.\)') Read(*.nama.Nama .\)') Read(*.eq.eq.'(F6.Teori Pemrograman Terstruktur Bahasa Fortran .''NIlai Prog.eq. Membuat File Urut Baru Untuk membuat fle urut.Nomor BP .

2.''NIlai Prog. Entri : ''.info c Kalau salah lompati Endif c Isi variabel semu untuk masih ada data Write(*.nama.entri.dbs.f6.'(A8.2.2)'.2)')dbs c Jika data sudah benar IF(dbs.'(F6.2.eq. nobp*8.\)') Read(*.'(F6.tran.f6.'(a5.Kemudian data baru dapat diisi dan disimpan. Mad*1.2. -tran.'(24(/))') c Isi nilai variabel field Write(*.\)') Read(*.2)')Info c Isi variabel semu untuk menyatakan data sudah benar Write(*.'(5x.'(5x.1.End=20)nobp. Dbs*1 Real Info c Buka file OPEN(1.'(5x. .''Input Data Ujian'')') Write(*.FILE='Ujian.entri.5x.2.'(15x.''Nomor BP : ''.\)') Read(*.'(F6. : ''.'(a15)')nama Write(*.2)')mad JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 60 .a15.\)') Read(*.File dibuka memakai perintah OPEN dengan status='OLD'.'(F6.2)')Tran Write(*.''================'')') Write(*. Info.or.a15.2)')nobp.'(5x.Pada akhir record harus memakai perintah BACKSPACE. : ''.'(F6.'Y'.mad. supaya data dapat ditambah.''Masih Ada Data [Y/T] : ''.''Data Sudah Benar [Y/T] : ''. . Menambah Data File Urut Untuk menambah data. Program : $Debug c Program menambah data pada file urut c Pesan variabel field secara eksplisit Character nama*15.'(a8)')nobp Write(*.5x.eq.''Nilai Prog.Eq.'(/.f6.eq.Membaca seluruh data yang ada secara urut sampai habis memakai perintah READ.\)') Read(*.Doc') c Membaca record keseluruhan sampai habis untuk mencariakhir c file 10 Read(1.or.''Nama Mahasiswa : ''.f6.'Y'.'(5x.f6.'y') Then c Simpan data Write(1. harus dilakukan logika pengolah sebagai berikut : .''Nilai Prog.info goto 10 c Mundur satu record 20 Backspace 1 c memasukan data dari keyboard mad='Y' 5 IF(mad.'(15x.2)')Entri Write(*.Teori Pemrograman Terstruktur Bahasa Fortran Goto 5 Endif c Tutup file data Close(1) End 9. .nama.'(/.\)') Read(*.\)') Read(*.'y') Then c Hapus Layar Write(*.2.f6. Tran.

\)') Read(*.f6.\)')'Nomor BP cari :' Read(*. Program Pencarian berdasarkan Nomor Bp : $Debug c Program menampilkan record tertentu c Pesan variabel field data Character nama*15.''Data Yang Dicari'')') Write(*.bpc) then c Jika bertemu tampilkan isi record Write(*. : ''.'(F6.File dibuka memakai perintah OPEN dengan status='OLD'.''Data Tidak Ada Pada FIle. Tran. lalu isi varibel tersebut dengan nilai sesuai dengan nilai yang akan dicari. Menampilkan Data Tertentu Pada File Urut Untuk menampilkan data tertentu.. nobp*8. Mad*1.a15.'(24(/))') Write(*.''================'')') Write(*.'(5x.f6.info c Seleksi pada data di file apa adda nobp yang sama dengan ya c ng dicari If(nobp.a8)')nobp Write(*.f6.''NIlai Prog.!' c Masukan nilai masih ada data ? 15 Write(*. berarti data tersebut tidak ada.'(5x.'(5x. kalau sampai sudah habis data juga tidak ada yang sama.'(15x.''Nomor BP : ''.''Masih Ada Data [Y/T] : ''.3.entri.2)')infor goto 15 Else c Jika tidak bertemu ulang membaca data samapi record trakhir goto 10 Endif c Jika tidak ada nobp yang sama tampilkan data tidak ada 20 Write(*.'(/.'(15x.''Nilai Prog. Entri : ''.!'')') Pause 'Tekan Enter Untuk Lanjut. : ''.nama. .Teori Pemrograman Terstruktur Bahasa Fortran c Jika masih ada data ulangi proses pengisian Goto 5 Endif c Jiak tidak ada data lagi tutup file Close(1) End 9.End=20)nobp.FILE='Ujian..2)')Entri Write(*.1.'(5x.Baca data dari awal sampai akhir dan tanyakan nilai yang dicari tersebut apa sama atau tidak.''Nilai Prog.f6.f6.eq.2)'. Info.2.2.tran.a15)')nama Write(*.'(A8)')bpc c Membaca record keseluruhan sampai habis 10 Read(1.2.5x..f6.2)')mad c Jika tidak ada lagi pergi keakhir program JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 61 .Doc') c Hapus Layar Write(*. jika ya tampilkan.'(A8.a. harus dilakukan logika pengolah sebagai berikut : . bpc*8 Real Info c Buka file 5 OPEN(1..'(5x.2)')Tran Write(*.Buat variabel bebas sesuai dengan tipe data kunci yang akan di cari.'(5x.''Nama Mahasiswa : ''. ..'(5x.'(24(/))') c masukan nomor BP yang dicari Write(*.

f6.''=>''. jika ketemu lakukan : .2.F6.\) info Read(*. Tran.2.f6.dbs*1 Real Info c Buka file data dan file sementara 5 OPEN(1.ulangi baca file data dari awal sampai ketemu kunci data koreksi .'(15x.'=>.'(A8)')vnobp c Cari record pada file data sesuai kunci 10 Read(1.\)') entri Read(*.isi nilai baru kedalam veriabel sementara .Membuka file kedua sebagai file menampung data sementara. .\)')'Nomor BP cari :' Read(*.f6.2)')vInfo JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 62 .vMad*1.pindahkan (simapan ulang) file sementara ke file data.mad.''Input Data Ujian'')') Write(*.FILE='Ujian. Info.4. karena pada penyimpanan data variabel bebas ke file data data berikutnya hilang.2.'(5x.File dibuka memakai perintah OPEN dengan status='OLD'. Program : $Debug c Program mengoreksi data tertentu c Pesan variabel bebas Character nama*15.\)') nobp Read(*.'(5x. .nama.'(a15)')vnama Write(*.\)') nama Read(*.''================'')') Write(*.'(5x.nobp*8.End=20)nobp.'(15x.f6.vnobp) then c Tampilkan data tersebut dan isi nilai data baru 25 Write(*. :''.Baca data dari awal sampai akhir dan tanyakan nilai yang dicari tersebut apa sama atau tidak. Entri :''.Buat variabel bebas sesuai dengan tipe data untuk semua data yang akan menampung data baru.''Nilai Prog.2.2.or.2)'.1.''Nama Mahasiswa :''.vnama*15.'T'.2.f6.'(F6. dan isikan nilai variabel kode tertentu sebagai kunci pencarian.'(F6.a.''=>''. :''.vnobp*8.simpan data sisa kedalam file sementara .\)') tran Read(*.Teori Pemrograman Terstruktur Bahasa Fortran IF(mad.'(F6.''Nilai Prog.2)')vEntri Write(*.'(5x.eq.Doc') Open(2) c Hapus Layar Write(*.'(5x.'(A8.'(24(/))') Write(*.'t') Goto 25 c Jika masih ada data pindahkan pointer ke record pertama Rewind 1 Goto 5 25 Close(1) End 9.tran.f6. .''=>''.'(24(/))') c masukan nomor BP yang dicari Write(*.a15.'(5x.2)')vTran Write(*.2.simpan data yang tersimpan pada varibel sementara ke file data .entri.''=>''.eq.info c Jika bertemu (sama) If(nobp.'(a8)')vnobp Write(*.eq.2.''NIlai Prog.f6.''Nomor BP :''.tampilkan nilai data tersebut . Mengoreksi Data File Urut Untuk mengoreksi data pada file dapat dilakukan logika pengolah sebagai berikut : .

f6.'(F6.f6.2.f6.5.1.nama.a15.f6.? 20 Pause 'Data Tidak Ada .End=35)nobp.5x.eq.2)')dbs c Jika salah If(dbs.'(/.f6.'y') Then Close(1) Close(2) Goto 5 Endif c Kalau tidak ada lagi tutup semua file dan selesai program Close(1) Close(2) End 9.tran.''Masih Ada Data [Y/T] : ''.'(A8.f6.2.2.nama.2)')mad c Jika masih ada data tutup semua file dan ulang proses dari c awal if(mad.''Data Sudah Benar [Y/T] : ''. tran.ventri.'(a5..nama.2)')nobp.f6.2)'.'(A8.2.2.eq. logika yang digunakan sama dengan logika pada koreksi data.2)'.f6. entri.vinfo c Pindah ke record pertama pada file sementara Rewind 2 c Pindahkan isi record file sementara ke file data seluruhnya 50 Read(2.f6.Teori Pemrograman Terstruktur Bahasa Fortran c Masukan nilai untuk kondisi sudah benar Write(*.a15.info goto 30 c Pergi ke record pertama 35 Rewind 1 c Baca isi File data 40 Read(1.info Write(1.'Y'.vtran.'(a5.'T'.'(/. Menghapus Data File Urut Untuk menghapus data pada file.or.info c Jika ketemu (sama) If(nobp..2.vtran.ventri.2.2.vnama.entri.eq.'t') Then c Ulangi proses pengisian data Goto 25 Else c Jika benar pindahkan sisa data lain ke file sementara 30 Read(1.a15.2)')nobp.vinfo Goto 50 Else goto 40 Endif Endif Else Goto 10 Endif c Jika tidak bertemu beri pesan data tidak ada.or.2.a15.a15.tran. hanya data record yang dikoreksi atau data record yang dicari tidak disimapan pada file.eq.5x.mad.f6.entri.entri.2.f6.\)') Read(*.f6..nama.'(A8.tran.f6.!' c Masukan nilai masih ada data yang diperbaiki atau tidak ? 45 Write(*. JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 63 .info Write(2.vnobp) then c Pindahkan posisi record ke satu record sebelumnya Backspace 1 c Simpan data yang telah dikoreksi tadi (data berikutnya akan c hilang) Write(1.\)') Read(*.f6.End=45)nobp.2)')vnobp.'(F6.f6.2.2)')nobp.f6.nama.dbs.f6.2.'(a5.a15.2.f6.eq.

2)')nobp.''=>''.dbs.f6.eq.nama.eq.\)')'Nomor BP cari :' Read(*.2)'.f6.'(A8.f6.a15.a15.\)') nama Write(*.entri.2)'.f6.''Input Data Ujian'')') Write(*.a15.'(F6.2.'(/.a15.f6.eq.''============'')') Write(*.vnobp*8.End=45)nobp.info Write(1.a.''Nama Mahasiswa :''.FILE='Ujian.5x.'(5x.''Nomor BP :''.ventri.'(a5.f6.f6.2.a15.entri.'(5x.\)')nobp Write(*. :''.vinfo Goto 50 Else goto 40 Endif Else goto 45 Endif Else JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 64 .f6.f6.'(A8.F6.2.f6.''=>''.vnobp) then c Jika bertemu pindah satu record sebelumnya dan hapus data c selanjutnya Backspace 1 Rewind 2 c Lompati record yang dicari.f6.2.vnobp) then c Tampilkan isi record data Write(*.dbs*1 Real Info c Buka file data dan file sementara 5 OPEN(1.'y') Then c Jika jadi dihapus.2.f6. dan pindahkan data file semenc tara ke file data 50 Read(2.'(a5.f6.'(5x.info c Apakah sudah betemu If(nobp.'(5x.f6. :''.tran.2.2)')nobp.f6.eq.''=>''.'(5x.Doc') Open(2) c Hapus Layar Write(*.nama.\)') Tran Write(*.nama.f6.2.'=>.2)')dbs c Masukan veriabel bebas untuk data jadi dihapus atau tidak If(dbs.info Write(2.nama.2.'Y'.f6.End=20)nobp.2)'.2. tran.or.''Nilai Prog.f6.2.2)')nobp.tran.tran.vtran.2.'(15x.\)')Entri Write(*.a15.f6.''Nilai Prog.''NIlai Prog.\)') Info Write(*.f6.'(5x.2.'(A8.'(24(/))') Write(*.info c Jika bertemu nobp yang dicari If(nobp.2. Entri :''.nama.f6.''=>''.tran.'(24(/))') c masukan nomor BP yang dicari Write(*.f6. vMad*1.2.Teori Pemrograman Terstruktur Bahasa Fortran Program : $Debug c Program menghapus data file urut c Pesan variabel memory Character nama*15.2.info goto 30 c Pindah ke record pertama 35 Rewind 1 c Baca file data dari pertama sampai record yang dicari 40 Read(1.End=35)nobp.entri.entri.'(15x.entri. nobp*8. Tran.nama.2. pindahkan sisa record berikunya ke file c sementara 30 Read(1.'(A8.''Data Jadi Dihapus [Y/T] : ''.'(A8)')vnobp c Cari record pada file data sesuai kunci 10 Read(1. Info.\)') Read(*.2.

6.na c Buka file OPEN(1. nobp*8.Doc') c Set variabel total dan jumlah dengan nol Jl=0 Jg=0 nom=0 c Hapus Layar dan buat judul 5 Write(*. status ='OLD' b.eq. Buat judul laporan c.'(24(/))') JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 65 . Ulangi dari c.99 yang ditampilkan No 99 Keterangan xxxxxxxxxxxxxx Jumlah Lulus Jumlah Gagal Program : = 999 Orang = 999 Orang c Pesan variabel sementara $Debug Character nama*15.2.1. Bentuk Layout Laporan : Daftar Nilai Ujian Profesional Programing ============================== NOBP Nama Mahasiswa Nilai Akhir 99999999 Xxxxxxxxxxxxxxxxxxxxx 999.'(F6.'y') Then c Jika masih ada ulang proses dari awal Close(1) Close(2) Goto 5 Endif c Jika tidak tutup semua file dan akhir program Close(1) Close(2) End 9.\)') Read(*. tampilkan pesan data tidak ada 20 Pause 'Data Tidak Ada . Ket*5 Real Info.. Tutup file.Teori Pemrograman Terstruktur Bahasa Fortran Goto 10 Endif c Jika data tidak bertemu. Tampilakan nilai-nilai dari variabel data tersebut f..FILE='Ujian.5x. Lakukan proses pencarian nilai untuk semua variabel data e.'Y'.or. tutup daftar laporan h. Menampilakan Seluruh Data File Urut Untuk menampilkan seluruh data pada file dapat dilakukan logika pemrosesan sebagai berikut : a. Baca file data d. Jika data habis.mad.!' c Masih ada data atau tidak 45 Write(*. samapi data habis g. Buka file dengan perintah OPEN.eq.''Masih Ada Data [Y/T] : ''.'(/.2)')mad if(mad.

'(1x.nom.End=20)nobp.a)')'¦No.'(1x.'(1x. Dalam menggunakan metode ini akan lebih cepat dalam pemrosesan data.'(1x..a)')'¦ Jumlah Gagal = '.2)'.2. satu buah file untuk menyimpan data dan satu buah file lagi untuk menyimpan kunci atau penomoran record dari file data tersebut.i2.2.'(10x. Pada metode langsung ini setiap data menggunakan 2 (dua) buah file.'(10x.1.' Orang ¦' Write(*.na.jl.f6.I3.20) Then c Jika nomor baris sudah mencapai 20.!' goto 5 Else goto 10 Endif c Jika sudah habis dibaca semua record buat garis penutup 20 Write(*.'(1x.35*tran+0.55*info If (na.a)')'================================' Write(*. Contoh program yang diambil dalam materi ini sama dengan metoda akses urut.info c Lakukan proses data na=0.nama.1.a)')'------------------------------------------------------------------------------‘ Pause 'Tekan Enter untuk lanjut.a)')'¦ Jumlah Lulus = '.'(A8.nama.'(1x.a)')'------------------------------------------------------------------------------‘ c Tutup File close(1) End 9.a15.a)')'------------------------------------------------------------------------------‘ c Tampilkan jumlah dan total Write(*. 9. berhenti sejenak dan c ulangi menampilkan data berikutnya Write(*.a)')'Daftar Nilai Ujian Profesional Programming' Write(*.a)')'------------------------------------------------------------------------------' Write(*.' ¦ '.jg.a)')'------------------------------------------------------------------------------‘ nb=5 c Membaca record keseluruhan sampai habis 10 Read(1.f6.f6.i3.1.' Orang ¦' Write(*.eq.ket.a.1*entri+0.a)')'¦ '..tran.a.'(1x.a.a15.'¦ '.a.2.a.Teori Pemrograman Terstruktur Bahasa Fortran c Tampilkan judul laporan Write(*.0) then Ket='Lulus' jl=jl+1 Else Ket='Gagal' jg=jg+1 Endif nom=nom+1 nb=nb+1 c Tampilkan semua nilai yang telah diproses Write(*.a8.'(1x.' ¦ '.a.2.'(1x.¦ N O B P ¦ Nama Mahasiswa ¦ Nilai Akhir ¦ Keterangan ¦' Write(*. JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 66 ..f6..' ¦ '.. Membuat File Acak Baru Logika yang digunakan sama dengan membuat file baru pada metoda akses urut.a5. hanya file yang dibuka 2 (dua) buah sekaligus.55.entri.ge. File Akses Acak File akses Direct (langsung) merupakan metoda pengaksesan data yang dapat merekam (menyimpan) dan mengambil (membaca) secara langsung dari medie penyimpanan.a. hanya merobah dalam bentuk akses urut ke acak.' -¦' If(nb.nobp.2.

'(F6.''Nilai Prog.\)') Read(*.''================'')') Write(*. : ''.2. Tran.or.''Nilai Prog.'(/.'(24(/))') c Isikan nilai data dari keyboard Write(*.'(F6.'(F6.'(5x.dbs. Entri : ''.Teori Pemrograman Terstruktur Bahasa Fortran Program : $Debug c Program membuat file acak c Pesan variabel memori Character nama*15.\)') Read(*.2)')dbs c Jika data benar IF(dbs.'y') Then c Simpan data nr=nr+1 Write(1.Rec=1)nr c Tutup kedua file data Close(1) Close(2) End 9.''NIlai Prog.'(a15)')nama Write(*.2. Mad*1. Dbs*1 Real Info c Buka file OPEN(1.'(/.\)') Read(*.\)') Read(*.eq.Recl=41) OPEN(2.'Y'. : ''.\)') Read(*. Info.Rec=nr)nobp.Access='DIRECT'.2)')mad c Jika iya ulangi pengisian Goto 5 Endif c kalau tidak ada lagi simpan file kunci Write(2.'(15x.eq.or.eq.FILE='Ujian.\)') Read(*.'(5x.5x.Doc'.'(F6.'(5x.nama.FILE='Ujian.2.5x.2)')Tran Write(*.Eq.''Input Data Ujian'')') Write(*.''Nama Mahasiswa : ''.'(15x.'y') Then c Hapus Layar Write(*.'(F6.Status='NEW'.2)')Info c Masukan nilai kondisi data benar Write(*.info Endif c Masukan nilai untuk kondis masih ada data Write(*. Menambah Data File Acak Logika yang digunakan juga sama dengan menambah data pada metoda akses urut.'(5x.entri.Access='DIRECT'.\)') Read(*.Status='NEW'.'(5x. nobp*8.'(a8)')nobp Write(*. Program : $Debug c Program menambah data file urut JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 67 .''Data Sudah Benar [Y/T] : ''.''Nomor BP : ''.tran.Key'.'Y'.mad. karena belum ada data nr=0 c memasukan data dari keyboard sampai kondisi data habis mad='Y' 5 IF(mad.2)')Entri Write(*. Recl=5) c Set nomor record = 0.''Masih Ada Data [Y/T] : ''.

Menampilkan Data Tertentu Pada File Acak Program : $Debug c Pesan variabel memory Character nama*15. simpan data file kunci Write(2.info c Jika tidak lompati penyimpanan data Endif c Isi nilai kondisi masih ada data Write(*.'y') Then c Hapus Layar Write(*.eq.'(5x.'Y'.\)') Read(*.\)') Read(*.'(a15)')nama Write(*.5x.2)')Info c Isi variabel untuk kondisi benar Write(*.'(5x.'(/.eq.or.entri. Entri : ''.Access='DIRECT'. : ''.'(5x.FILE='Ujian.Teori Pemrograman Terstruktur Bahasa Fortran c Pesan variabel memory Character nama*15.nama.''NIlai Prog.'(F6. Mad*1.Rec=nr)nobp.''=============='')') Write(*.2)')mad c Ulangi proses ke awal program Goto 5 Endif c Jika tidak ada data lagi.2)')Entri Write(*.''Nilai Prog.Rec=1)nr c Set masih ada data dengan benar mad='Y' c Jika masih ada data 5 IF(mad.\)') Read(*.'(F6.Doc'. vnobp*8 Real Info c Buka file JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 68 .tran.'(F6.''Nama Mahasiswa : ''.'(24(/))') c Isikan data baru dari keyboard Write(*.3.'(F6.2. nobp*8.'y') Then c Simpan data nr=nr+1 Write(1. Dbs*1 Real Info c Buka file OPEN(1.''Masih Ada Data [Y/T] : ''.2.2)')dbs c Jika kondisi benar IF(dbs.Key'.'(5x. Tran.'Y'.''Data Sudah Benar [Y/T] : ''.mad.'(F6. Info.FILE='Ujian.'(/.Access='DIRECT'.'(15x.Rec=1)nr c Tutup file Close(1) Close(2) End 9.5x.'(5x.\)') Read(*.2)')Tran Write(*. Mad*1.''Nilai Prog.'(15x. nobp*8.Recl=41) OPEN(2.or.Eq.\)') Read(*.'(a8)')nobp Write(*. : ''.\)') Read(*.dbs.Recl=5) c Ambil nomor record terakhir pada file kunci Read(2.''Nomor BP : ''.\)') Read(*.''Tambah Data Ujian'')') Write(*.eq.

Entri : ''.nama.''NIlai Prog.''====================='')') Write(*.''Nomor BP : ''.'(15x.!' c Isi nilai variabel kondisi masih ada data 15 Write(*. dbs*1 Real Info c Buka file OPEN(1.2)')mad c Jika masih ada data ulang proses dari awal If(mad.F6.Rec=1)nr c Masukan nilai variabel data yang dicari mad='Y' 5 Write(*.''Data Yang Akan Dikoreksi'')') Write(*. : ''.'(/.2.''Nomor BP : ''.'(5x.info c Apakah data bertemu (nomor bp cari sama dengan nobp data If(nobp.Rec=1)nr c memasukan kunci data yang akan dikoreksi mad='Y' 5 Write(*. Info.Teori Pemrograman Terstruktur Bahasa Fortran OPEN(1.vnobp) then c Tampilkan nilai record tersebut Write(*.Rec=i)nobp.FILE='Ujian.'(15x.'(15x.Doc'.'(5x.'y'.Recl=41) OPEN(2.2)')Info goto 15 Endif 10 Continue c Jika tidak bertemu.4.Rec=i)nobp. Mad*1.\)') Read(*.eq.'Y') Goto 5 c Jika idak ada tutup file Close(1) Close(2) End 9.''Nama Mahasiswa : ''.nama.info JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 69 .'(a8)')vnobp Do 10 I=1.nr c Baca data dari record pertama sampai record terakhir Read(1.'(24(/))') Write(*.\)') Read(*.FILE='Ujian. tampilkan pesan data tidak ada Pause 'Data Tidak Ada.'(24(/))') Write(*.\)') Read(*.2)')Entri Write(*.f6.'(5x.tran.''==================='')') Write(*.tran.'(5x.eq. Tran.nr c Baca file data sampai habis Read(1.''Nilai Prog. nobp*8.'(a8)')vnobp Do 10 I=1.FILE='Ujian.''Nilai Prog.5x.a15)')nama Write(*.f6.'(5x. Mengoreksi Data File Acak Program : $Debug c Pesan variabel memory Character nama*15.Access='DIRECT'.'(15x.''Masih Ada Data [Y/T] : ''.''Data Yang Akan Ditampilkan'')') Write(*.Key'.2)')Tran Write(*.Recl=41) OPEN(2.Recl=5) c Ambil nomor record pada file kunci Read(2.FILE='Ujian.Key'. : ''.2.entri. vnobp*8.entri..Doc'.'(F6.Access='DIRECT'..Access='DIRECT'.'(5x.mad.Access='DIRECT'.or.Recl=5) c Ambil nomor record pada file kunci Read(2.

'(/. Untuk menghindari banyaknya record kosong pada file data.Access='DIRECT'.'(/.\)') Read(*.2)')mad c Jika masih ada data ulangi proses dari awal If(mad.''NIlai Prog.or.5x.a15)')nama Write(*.'(5x.f6.'(5x.''Nilai Prog.'(a15)')nama Write(*..FILE='Ujian.Key'.\)') Read(*. jika tidak ulangi isi data baru Write(1.2.Rec=1)nr JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 70 .''Nomor BP : ''.FILE='Ujian.'(5x.10X.2)')Entri Write(*.'(10X. Info.Access='DIRECT'. Menghapus Data File Acak Dalam menghapus data pada file acak secara pisik data tidak dihapus.Entri.eq.Tran.Recl=41) OPEN(2.''Nama Mahasiswa : ''.!' c Isi nilai variabel kondisi masih ada data 25 Write(*. Info. yang programnya pada Sub Bab berikutnya.\)') Read(*.''Data Sudah Benar [Y/T] : ''. vnobp*8.2)')Entri Write(*. Entri : ''.'(F6.2)')Info c Isi data baru 15 Write(*. : ''.vnobp) then c Jika bertemu tampilkan record tersebut Write(*.''Nama Mahasiswa : ''.f6. Program : $Debug c Pesan variabel memory Character nama*15.''============='')') Write(*.Recl=5) c Ambil nomor record pada file kunci Read(2.'(5x. : ''.eq.\)') Read(*.''NIlai Prog. dbs*1. Tran.'(5x.Doc'.5.'t') goto 15 c Simpan data baru tersebut..'(F6.2)')dbs c Jika benar IF(dbs.'(F6.\)') Read(*.'(5x.mad. maka dilakukan peremajaan file.'(5x. kosong*8 Real Info c Buka file data OPEN(1.''Masih Ada Data [Y/T] : ''.'(F6.2.''Nilai Prog.2)')Tran Write(*.F6.Teori Pemrograman Terstruktur Bahasa Fortran If(nobp.'(F6.''Nilai Prog.dbs.\)') Read(*. : ''.'(5x.'y'. hanya nilai dari data record tersebut diisi denga blank (kosong).''Data Koreksinya'')') Write(*.2)')Tran Write(*.'(5x.2)')Info c Isi untuk kondisi data sudah benar Write(*.eq.eq.nama.\)') Read(*. beri pesan Pause 'Data Tidak Ada.Rec=I)nobp. nobp*8. Entri : ''.'Y') Goto 5 c Jika tidak ada lagi tutup file Close(1) Close(2) End 9. Tran.''Nilai Prog. : ''.'(/.'(a8)')nobp Write(*.'T'.or. Mad*1.5x.Info Goto 25 Endif 10 Continue c Jika data tidak bertemu.

Tran.'(5x. Entri : ''.Rec=i)nobp. ambil nilai jumlah record Read(2. Info.''==================='')') Write(*.nr c Baca data sampai record terakhir Read(1..6.or. : ''.FILE='Ujian.eq.'(5x.''Nilai Prog.Access='DIRECT'.5x.\)') Read(*.''Nilai Prog.'(/.Teori Pemrograman Terstruktur Bahasa Fortran c Pesan variabel kosong (blank) kosong=' ' c memasukan kode data yang akan dicari mad='Y' 5 Write(*. tampilkan pesan data tidak ada Pause 'Data Tidak Ada.vnobp) then c Jika data bertemu tampilkan Write(*.2)')mad c Jika masih ada data ulangi proses dari awal If(mad.Key'. Ket*5 Real Info. Menampilakan Seluruh Data File Acak Untuk menampilkan seluruh data pada file dapat logika pemrosesan sama dengan file menampilkan seluruh data file urut.'(a8)')vnobp Do 10 I=1.2)')Tran Write(*.FILE='Ujian. Program : $Debug c Pesan variabel memory Character nama*15.dbs.'(15x.2)')Entri Write(*.'(/.f6.Rec=I) kosong Endif c Kalau tidak lewati menyimpan record kosong Goto 25 Endif 10 Continue c Jika data tidak ada.'(15x.eq. nobp*8.F6.Access='DIRECT'.\)') Read(*.''Nama Mahasiswa : ''.nama.''NIlai Prog.\)') Read(*.'(5x.Recl=41) OPEN(2.or.2.2)')Info c Masukan nilai untuk kondisi jadi dihapus atau tidak Write(*.f6.'(F6.na c Buka file OPEN(1.'(5x.entri.'(24(/))') Write(*.'y') Then c simpan record kosong Write(1.Recl=5) c Baca file kunci.'y'.info If(nobp.eq.''Data JadiDihapus [Y/T] : ''.'(F6.Rec=1)nr Jl=0 Jg=0 JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 71 .''Data Yang Akan Dihapus'')') Write(*..eq.Doc'.!' c Isi nilai variabel kondisi masih ada data 25 Write(*.'Y'.''Nomor BP : ''.2.'(5x. : ''.tran.a15)')nama Write(*.5x.'Y') Goto 5 c Jika tidak ada tutup file Close(1) Close(2) End 9.2)')dbs c Jika jadi dihapus IF(dbs.mad.''Masih Ada Data [Y/T] : ''.

a.na.'(1x.a)')'-------------------------------------------------------------..¦ '.nom.jl.Keterangan ¦' Write(*.nobp.i2.a)')'-----------------------------------------------------------------------------' Write(*.'(24(/))') c Buat judul laporan Write(*.55*info If (na.info c mencek apakah record kosong..0) then Ket='Lulus' jl=jl+1 Else Ket='Gagal' jg=jg+1 Endif nom=nom+1 nb=nb+1 c Tampilkan nilai-nilai data tersebut Write(*.'(1x.ne.Teori Pemrograman Terstruktur Bahasa Fortran c Hapus Layar dan buat judul Write(*.REC=I)nobp.' ¦ '.'(1x.'¦ '.a)')'¦ '.nama.a.1*entri+0.--------------' nb=5 Endif Endif 60 Continue c Jika sudah habis data dibaca dan dilaporkan buat gari pec nutup 20 Write(*.'(1x.a)')'------------------------------------------------------------.55.'(1x.ket.'(1x.' Orang ¦' JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 72 .'(24(/))') Write(*.a)')'¦ Jumlah Lulus = '.a.a)')'----------------------------------------------------------------------------' Write(*. kalau ya tidak ditampilkan IF(nobp.a)')'Daftar Nilai Ujian Profesional Programing' Write(*.¦ N O B P ¦ Nama Mahasiswa ¦ Nilai Akhir ¦ Keterangan ¦' Write(*.a.a)')'-----------------------------------------------------------------------------' c Set variabel nomor dan nomor baris nb=5 nom=0 DO 60 I=1.' ¦' c Jika sudah sampai baris 20 If(nb.--------------' c Berhenti sejenak untuk melihat laporan data Pause 'Tekan Enter untuk lanjut..'(1x.a)')'Daftar Nilai Ujian Profesional Programing' Write(*.'(1x.eq.a15.a5.a)')'-----------------------------------------------------------------------------' c Tampilkan nilai jumlah total Write(*.2.entri.nr c Membaca record keseluruhan sampai habis Read(1.a)')'¦No.35*tran+0.'(1x.'(1x.!' c Ulangi buat judul laporan Write(*.ge.' ') Then c Jika tidak kosong lakukan proses pencarian nilai data yang c akan ditampilkan na=0..20) Then c Buat garis penutup laporan Write(*.'(1x.' .¦ N O B P ¦ Nama Mahasiswa ¦ Nilai Akhir ¦ .'(1x.' ¦ -'.tran.a8..a)')'==============================’ Write(*.a)')'==============================’ Write(*.'(1x.nama.'(1x.a.a)')'¦No.a.I3.f6.

eq. .Rec=J) kosong Write(1. nobp*8..FILE='Ujian.Key'.info c Jika data kosong buang If(nobp.ventri.tran.a.nr c Baca data dari record pertama sampai habis Read(1.Doc'.2.' Orang ¦' Write(*.vtran. karena data yang tidak diperlukan (record kosong) masih memakai memory media penyimpanan data.7.jg..nama.info If(nobp.Access='DIRECT'.FILE='Ujian.yaitu dengan logika sebagai berikut : . vnama*15.nr c Lompati data kosong dan baca sampai bertemu data tidak c kosong Read(1.Rec=i)nobp.2.kosong) Then c Pindahkan ke data varaiabel sementara vnobp=nobp vnama=nama ventri=Entri vtran=tran vinfo=info c Lakukan perpindahan tempat. vnobp*8.Buka file data dan file kunci .5). jika kosong lompati penyimpanan data .entri. varibel tidak kosong menempati c data yang kodong dan variabel kosong menempati record berc ikutnya Write(1.Cek record kosong.Teori Pemrograman Terstruktur Bahasa Fortran Write(*.a)')'-----------------------------------------------------------------------------' c Tutup file close(1) close(2) End 9.Recl=5) c Ambil nomor record pada file kunci Read(2.vinfo goto 5 Endif 10 Continue Goto 15 Endif JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 73 satu record.Rec=i)vnobp. Untuk menghilangkan data record kosong tersebut perlu dilakukan peremajaan file.!'')') DO 5 I=1.tran.Rec=j)nobp.Access='DIRECT'.2.i3.a)')'¦ Jumlah Gagal = '.Rec=1)nr Kosong=' ' c Beri pesan tunggu lagi proses Write (*.vnama. Peremajaan File Acak Seperti yang telah diuraikan pada sub bab menghapus data pada file acak (9.'(15X.Recl=41) OPEN(2.ne.kosong) Then Do 10 J=I+1.Ulangi proses sampai data habis dibaca.''Tunggu Lagi Prose.2. Program : $Debug c Pesan vaiabel memory Character nama*15.nama.'(1x. bahwa data tidak dihapus secara phisik sehingga memnyebabkan pemborosan dalam pemakaian memory.. kosong*8 Real Info c Buka file OPEN(1.entri.'(1x.

' ') Then c Jika data tidak kosong pindahkan ke record berikutnya c nomor record yang baru tambah dengan 1 nr1=nr1+1 c simpan data tersebut Write(3.Key.Doc dan Dupli.Rec=1)nr1 c Tutup semua file Close (1) Close (2) Close (3) Close (4) End Seielah program ini dijalankan pada diskette data dihapus file (del) nilai.doc dan nilai.tran.. Contoh progam dapat dilihat seperti berikut : Program : $Debug c Pesan variabel memori Character nama*15. JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 74 .entri.Doc menjadi Nilai.info If(nobp.key.info Endif 10 Continue c Jika sudah habis terbaca simpan nomor record yang tidak c kosong kedalam file kunci 2 Write(4.!'')') DO 5 I=1.nama.nama.FILE='Ujian.Recl=5) c buka file duplicat OPEN(3. setelah itu ditukar nama file (ren) Dupli. nobp*8 Real Info c Buka file OPEN(1..Doc'. peremajaan file data juga dapat dilakukan dengan membuat file duplikat dari data tersebut dengan membuang data-data yang kosong atau menyimpan data yang pelum pernah dihapus saja.'(15X.Access='DIRECT'..Access='DIRECT'.Status='New'.''Tunggu Lagi Prose.FILE='Dupli.Teori Pemrograman Terstruktur Bahasa Fortran c Ulangi sampai tidak ada lagi data kosong 5 Continue nr=I-1 c Kurangi jumlah record yang terisi dengan 1 (1 adalah set c pertama jumlah record ditambahkan dengan 1 record kosong c Simpan jumlah record tersebut pada file kunci 15 Write(2.Rec=1)nr c Tutup file Close (1) Close (2) End Selain cara logika program seperti diatas.Key'.Recl=41) OPEN(4.Rec=i)nobp.Rec=1)nr Write (*.tran.entri.Kay menjadi Nilai.Key'.nr c Baca semua record Read(1.Rec=nr1)nobp.Status='New'.ne.Recl=41) OPEN(2.FILE='Ujian.FILE='Dupli.Recl=5) nr1=0 c Ambil nomor record pada file kunci Read(2.Access='DIRECT'.Access='DIRECT'.Doc'.

Bentuk Layout : LAPORAN TRANSAKSI ================== Satuan : xxxxxxxxx Harga : 99999 Jumlah No 99 Tanggal xx-xx-xx Jual 99999999 Beli 99999999 Total Harga Juyal 999999999 Beli 999999999 Kode Barang : 99999 Nama Barang : xxxxxxx Stock Akhir : 999 Total 99999999999 9999999999 9999999999999 999999999999 Proses : . Recl=30) OPEN(2. .Key'.1.FILE='Barang. Buat File Barang Program : $Debug c Pesan variabel memory Character nama*10.Begitu juga dengan total . Keuntungan diambil dari discount yang diberikan oleh distributor.Access='DIRECT'.mad*1. jika jumlah penjualan besar dari stock maka penjualan tidak dapat terjadi.Sat*8. kalau kecil transaksi dapat terjadi dan nilai stock berkurang.Dbs*1 Integer har.stoc c Buka file barang baru OPEN(1. tampilkan pada kelompok pembelian . Jika pembelian nilai stock bertam bah.Transaksi dilakukan berdasarkan data file barang.Access='DIRECT'.Teori Pemrograman Terstruktur Bahasa Fortran 9.FILE='Barang.3.Jika jen='J' maka tampilkan pada kelompok penjualan dan jen=k.Kode barang berdasarkan nomor record (ketetapan program).Status='NEW'.Doc'.3.Recl=5) JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 75 Width 5 10 8 5 3 Decimal 0 0 0 Description Kode Barang Nama Barang Satuan Harga Barang Stock Barang Width 58 1 3 Decimal 0 0 Description Tanggal Jenis Jumlah . Aplikasi Program 2 File Data Pada aplikasi 2 (dua) buah file data ini diambil kasus tentang laporan transaksi barang pada sebuah toko yang bergerak dalam jual beli barang. Struktur Data : * File Barang Name Type Kode Numeric Nama Character Sat Character Har Numeric Stoc Numeric * File Transak Name Type Tgl Character Jen Character Jum Numeric 9.Status='NEW'.

eq.'(24(/))') c Isi data nilai record baru dengan kode sudah ditetapkan c sama dengan nomor record Write(*. Tambah Data File Barang Program : $Debug c Pesan variabel memory Character nama*10.Mad.mad*1.Rec=kode)nama.2.''============='')') Write(*.Sat*8.'(5x.Rec=1)kode c Tutup file data Close(1) Close(2) End 9.Recl=5) c Ambil kode (nomor record terakhir Read(2.2)')dbs c Jika data sudah benar IF(dbs.eq.sat.'(/.''Input Data Barang'')') Write(*.eq.''Satuan : ''.''Kode : ''.dbs.'(5x.Access='DIRECT'.'(5x.stoc c Buka file barang baru OPEN(1.'(5x.'y.\)') Read(*.eq.'(I3)')Stoc c Isi variabel kondisi data benar Write(*.'Y'.Rec=1)kode c Set variabel kondisi masih ada data dengan benar mad='Y' c Jika masih ada data JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 76 .Access='DIRECT'.har.'(F6.5x.Key'.Eq.'Y'.'(I5)')Har Write(*.Y.\)') Read(*.Doc'.mad.FILE='Barang.''Stock Awal : ''.'(a10)')nama Write(*.\)') Read(*.'(/.2)')mad c Jika masih ada data nomor recor atau kode ditambah 1 If(mad.\)') Read(*.eq.Recl=30) OPEN(2.'(5x.''Harga Satuan : ''.stoc Endif c Isi variabel kondisi masih ada data Write(*.'y') Then c Hapus layar Write(*.''Nama : ''.'(F6.'(A8)')sat Write(*.FILE='Barang.\)') Read(*.''Masih Ada Data [Y/T] : ''.I5)')Kode Write(*.'(15x.or.\)') Read(*.3.Dbs*1 Integer har.'(15x.''Data Sudah Benar [Y/T] : ''. simpan file kunci Write(2.') kode=kode+1 Goto 5 Endif c Jika data sudah habis.5x.or.Teori Pemrograman Terstruktur Bahasa Fortran c Set nomor record = 1 kode=1 c Set variabel kondisi masih ada data dengan benar mad='Y' c Jika masih ada data 5 IF(mad.or.'y') Then c Simpan data record tersebut Write(1.

Sat*8.''Nama : ''.'(5x.vkode c Buka file data OPEN(1.Access='DIRECT'.'(15x.or.'(5x.'(a10)')nama Write(*.'y.'y') Then c Simpan data record tersebut Write(1.''Data Sudah Benar [Y/T] : ''.mad.''Koreksi Data Barang'')') Write(*.'(24(/))') Write(*.5x.'(/.I5)') Read(*.3.'(24(/))') c Isi data nilai record baru dengan kode sudah ditetapkan c sama dengan nomor record Write(*.''Satuan : ''.eq.''Stock Awal : ''.eq.5x.eq.I5)')Kode Write(*.'Y'.'(5x.''Input Data Barang'')') Write(*.'(F6.''Masih Ada Data [Y/T] : ''.'(15x. Koreksi Data File Barang Program : $Debug c Pesan variabel memory Character nama*10.Access='DIRECT'.Recl=5) c Ambil nomor record (kode) dari file kunci Read(2.\)') Read(*.eq.'(15x.'(I5)')Har Write(*.or.FILE='Barang.or.'(/.2)')mad c Jika masih ada data nomor recor atau kode ditambah 1 If(mad.Rec=1)kode c Tutup file data Close(1) Close(2) End 9.3.eq.\)') Read(*.har.Y.\)') Read(*.dbs.\)') Read(*.'y') Then c Hapus layar Write(*.''Harga Satuan : ''.'(5x.'(I5)')vKode c Jika kode kecil atau sama dengan nomor record JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 77 .mad*1.'(I3)')Stoc c Isi variabel kondisi data benar Write(*.'(F6.Doc'.''Kode : ''.stoc.''Kode : ''.Rec=1) kode mad='Y' c Masukan kode yang di koreksi 5 Write(*.'Y'.'(5x. simpan file kunci Write(2.Teori Pemrograman Terstruktur Bahasa Fortran 5 IF(mad.''==============='')') Write(*.'(5x.Rec=kode)nama.Recl=30) OPEN(2.sat.') kode=kode+1 Goto 5 Endif c Jika data sudah habis.\)') Read(*.'(15x.FILE='Barang.2)')dbs c Jika data sudah benar IF(dbs.Dbs*1 Integer har.Mad.Eq.\)') Read(*.stoc Endif c Isi variabel kondisi masih ada data Write(*.''============='')') Write(*.'(A8)')sat Write(*.Key'.

har.''Harga Satuan : ''.\)') Read(*.har.'(5x.5.'(/.Mad.3.''Input Data Koreksi Barang'')') Write(*.or.'(24(/))') Write(*.eq.''Nama : ''.''==================='')') Write(*. tampil c kan pesan data tidak ada Pause 'Data Tidak Ada. ulangi proses dari awal If(mad.or.stoc Else c Kalau salah ulangi pengisian data Goto 10 Endif Endif Else c Jika kode yang dimasukan besar dari kode yang ada.2)')dbs c Jika data sudah benar IF(dbs.\)') Read(*.''Satuan : ''.eq.Y.dbs.5x.'(15x.le.2)')dbs c Jika jadi dikoreksi IF(dbs.sat.'y') Then c Simpan data record baru Write(1.'(/.'(F6..'(5x.'y') Then c Isi data baru 10 Write(*.'(5x.''Stock Awal : ''.''Kode : ''.'(5x.2)')mad c Jika masih ada data.eq.'Y'.5x.I5)')har Write(*..'(/.'(5x.') Goto 5 c Jika tidak ada data lagi tutup file Close(1) Close(2) End 9.\)') Read(*.5x.''Stock Awal : ''.i3)')stoc c Masukan nilai untuk variabel kondisi koreksi Write(*.'(5x.eq.or.\)') Read(*.''Nama : ''.''Data Sudah Benar [Y/T] : ''.a8)')satuan Write(*.Rec=vkode)nama.kode) Then c Baca file data dengan nomor record tersebut Read(1.dbs.'(F6.'(A8)')sat Write(*..'(5x.\)') Read(*.eq.!' Endif c Masukan nilai variabel kondisi masih ada data Write(*.Rec=kode)nama.I5)')Kode Write(*.stoc c Tampilkan isi record Write(*.'(5x.a10)')nama Write(*.'(F6.eq.'(a10)')nama Write(*. Hapus Data File Barang Program : $Debug c Pesan variabel memory JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 78 .'(15x.'Y'.\)') Read(*..'y.''Masih Ada Data [Y/T] : ''.'(I3)')Stoc c Masukan nilai variabel data sudah benar Write(*.'(5x.''Harga Satuan : ''.\)') Read(*.'(I5)')Har Write(*.''Data Jadi Dikoreksi [Y/T] : ''.sat.Teori Pemrograman Terstruktur Bahasa Fortran If(Vkode.''Satuan : ''.

.Key'.''Masih Ada Data [Y/T] : ''.eq.sat.''Data Jadi Dihapus [Y/T] : ''.'(5x.5x.'(15x.!' Endif c Masukan nilai variabel kondisi masih ada data Write(*.\)') Read(*.eq.mad*1.Dbs*1 Integer har.i3)')stoc c Masukan nilai untuk variabel kondisi dihapus Write(*.'(/.FILE='Barang.') Goto 5 c Jika tidak ada data lagi tutup file Close(1) Close(2) End 9.'(24(/))') Write(*.FILE='Barang.'(5x. ulangi proses dari awal If(mad.'(/.'(15x.'y.'Y'.''Satuan : ''.Sat*8.Sat*8.le.'(5x.'y') Then c Isi data baru c Simpan data record kosong Write(1.eq.6.'(F6.Recl=5) c Ambil nomor record (kode) dari file kunci Read(2.vkode c Buka file data OPEN(1.stoc.FILE='Barang.Doc'.or.a8)')satuan Write(*.''Nama : ''.5x.Access='DIRECT'.I5)') Read(*.Recl=30) OPEN(2.mad*1.Rec=kode) ' ' Endif c Kalua kondisi tidak jadi dihapus lompati penyimpanan c record kosong Else c Jika kode yang dimasukan besar dari kode yang ada.. tampil c kan pesan data tidak ada Pause 'Data Tidak Ada.or.''==============='')') Write(*.Mad.Teori Pemrograman Terstruktur Bahasa Fortran Character nama*10.dbs.kode) Then c Baca file data dengan nomor record tersebut Read(1.2)')dbs c Jika jadi dihapus IF(dbs...stoc c Tampilkan isi record Write(*.'(I5)')vKode c Jika kode kecil atau sama dengan nomor record If(Vkode.Dbs*1.'(5x.2)')mad c Jika masih ada data.''Koreksi Data Barang'')') Write(*.Doc'.3.'(5x. Buat File Transaksi Program : $Debug c Pesan variabel memory Character nama*10.''Stock Awal : ''.stoc c Buka file OPEN(1.a10)')nama Write(*.Access='DIRECT'.\)') Read(*.Access='DIRECT'.'(F6.Rec=1) kode mad='Y' c Masukan kode yang di hapus 5 Write(*.''Harga Satuan : ''.Recl=30) JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 79 .''Kode : ''.I5)')har Write(*.Jen*1 Integer har.har.eq.Y.Rec=vkode)nama.tgl*8.

''Satuan [J=jual.har.'(15x.Recl=5) OPEN(3.'(24(/))') c Masukan kode barang transaksi Write(*.Key'.'(5x.'(5x..''Input Kode Barang Data Transaksi''.''Tanggal [dd-mm-yy] :''.Rec=kodec)nama. Recl=5) c Set nomor record transaksi = 0 kode1=0 c Baca nomor record fiile barang Read(2.''==============='')') Write(*.sat.''Data Barang Tidak Ada.eq.'(5x.5x.Teori Pemrograman Terstruktur Bahasa Fortran OPEN(2.eq.gt.or.1'')') Pause 'Tekan Enter untuk lanjut .'t') Goto 10 c Cek jenis taransaksi (jual atau beli) If(sat.10x. kalau tidak IF(dbs.Doc'. baca c data barang Read(1.sat.i5)')har Write(*.'(5x..Access='DIRECT'.''Nama : ''.2)')dbs c Jika data salah ulangi pengisian.B=beli]] : ''. Recl=30) OPEN(4.''Input Data Transaksi'')') Write(*.I3)')stoc c Isi data transaksi Write(*.'T'.'(/.eq.Rec=kodec)nama..'j') Then c Jika jenis transaksi jual.'(5x.FILE='Transak.Access='DIRECT'.'(I3)')jum c Isi variabel kondisi benar Write(*.\)') Read(*. jumlah c Stock dikurangi dengan jumlah transaksi Stoc=stock-jum c Simpan kembali data barang Write(1.sat.''Stock Awal : ''.gt..'(5x.!' Else c Jika kecil atau sama dengan kode yang dimasukan.'(15x. cek jumlah stock barang.''Data Sudah Benar [Y/T] : ''.dbs.eq.\)') Read(*..'J'.'(5x.stoc) then c Jika iya transaksi tidak bisa jalan Pause 'Transaksi TIDAK bisa dilaksanakan .'(a8)')tgl Write(*.'(A1)')sat Write(*..stoc 10 Write(*.''Satuan : ''.!' Else c Jika jumlah jual lebih kecil atau sama dengan stock.\)') Read(*.stoc c Nomor record transaksi ditambah dengan sat kode1=kode1+1 c Simpan data transaksi JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 80 .'(15x.a10)')nama Write(*.'(5x.a8)')sat Write(*.FILE='Barang.'(24(/))') c Tampilkan data barang Write(*.Key'.\)') Read(*..Rec=1)kode mad='Y' c Hapus layar 5 Write(*.or.har.'(F6.FILE='Transak.'(i5)kodec c Jika kode besar dari nomor record file barang (kode) If(kodec. apakah c kecil dari jumlah transaksi If(jum..Status='NEW'.Access='DIRECT'.''Kode Barang : ''.''Jumlah (satuan) : ''.\)') Read(*.''Harga Satuan : ''.I5)')kodec Write(*.Status='NEW'.'(/.kode) Then c Tampilkan pesan data barang tidak ada Write(*.

.5x.'(/.1'')') Pause 'Tekan Enter untuk lanjut .Recl=5) OPEN(3.Sat*8.Access='DIRECT'.har.jen.Rec=kode1)kodec.eq.Doc'.Rec=1)kode mad='Y' c Hapus layar 5 Write(*. simapan nomor recor file transaksi Write(4.Recl=30) OPEN(2.kode) Then c Tampilkan pesan data barang tidak ada Write(*.Mad.'(15x.gt.'(F6.\)') Read(*..Rec=kodec)nama.tgl.''Data Barang Tidak Ada.stoc c Buka file OPEN(1.jum Endif Else c Jika jenis transaksi beli.7..Doc'. stoc ditambah dengan jumlah Stoc=stock+jum c Simpan kembali data barang Write(1.tgl*8.FILE='Transak. Tambah Data File Transaksi Program : $Debug c Pesan variabel memory Character nama*10. baca c data barang Read(1.') Goto 5 c Jika tidak..Rec=kodec)nama.sat.Jen*1 Integer har.FILE='Barang.eq.Dbs*1.'(24(/))') c Masukan kode barang transaksi Write(*.Recl=30) OPEN(4.''Masih Ada Data [Y/T] : ''.Key'.Y.Access='DIRECT'.'y.sat.Access='DIRECT'.'(i5)kodec c Jika kode besar dari nomor record file barang (kode) If(kodec.Key'.jum Endif Endif c Isi variabel kondisi masih ada data Write(*.Recl=5) cAmbil nomor record file kunci transaksi Read(4.FILE='Barang.stoc c Nomor record transaksi tambah dengan satu kode1=kode1+1 c Simpan data transaksi Write(3.2)')mad c Jika masih ada data ulangi proses dari awal If(mad.or.Rec=1)kode1 c Baca nomor record fiile barang Read(2.Rec=kode1)kodec.3.FILE='Transak.\)') Read(*.jen.'(/.Teori Pemrograman Terstruktur Bahasa Fortran Write(3.Access='DIRECT'.stoc JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 81 .mad*1.!' Else c Jika kecil atau sama dengan kode yang dimasukan..tgl.10x..Rec=1)kode1 c Tutup semua file Close(1) Close(2) Close(3) Close(4) End 9.''Input Kode Barang Data Transaksi''.har.

''Nama : ''.'(5x.Rec=1)kode1 c Tutup semua file Close(1) JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 82 .sat.\)') Read(*. kalau tidak IF(dbs.eq.2)')mad c Jika masih ada data ulangi proses dari awal If(mad.'(15x..jum Endif Else c Jika jenis transaksi beli..'t') Goto 10 c Cek jenis taransaksi (jual atau beli) If(sat.''Stock Awal : ''.Rec=kodec)nama.'(5x.or.'T'.eq.Mad.'(/. jumlah c Stock dikurangi dengan jumlah transaksi Stoc=stock-jum c Simpan kembali data barang Write(1.''Harga Satuan : ''.Rec=kodec)nama.i5)')har Write(*.'(F6.\)') Read(*.'y.I3)')stoc c Isi data transaksi Write(*.B=beli]] : ''.'(5x.''Satuan : ''.''Jumlah (satuan) : ''.'(/. cek jumlah stock barang.''Masih Ada Data [Y/T] : ''.gt. apakah c kecil dari jumlah transaksi If(jum.or.stoc c Nomor record transaksi tambah dengan satu kode1=kode1+1 c Simpan data transaksi Write(3.\)') Read(*.Y.jum Endif Endif c Isi variabel kondisi masih ada data Write(*.''==============='')') Write(*. stoc ditambah dengan jumlah Stoc=stock+jum c Simpan kembali data barang Write(1.eq.!' Else c Jika jumlah jual lebih kecil atau sama dengan stock.jen.Rec=kode1)kodec.'(A1)')sat Write(*.'(24(/))') c Tampilkan data barang Write(*.'J'.'(5x.') Goto 5 c Jika tidak.har.'j') Then c Jika jenis transaksi jual.'(5x.I5)')kodec Write(*.har.eq.Teori Pemrograman Terstruktur Bahasa Fortran 10 Write(*.''Kode Barang : ''.'(5x.''Input Data Transaksi'')') Write(*.'(a8)')tgl Write(*.a8)')sat Write(*.''Satuan [J=jual.2)')dbs c Jika data salah ulangi pengisian.'(5x.\)') Read(*.5x.5x.or.jen.stoc c Nomor record transaksi ditambah dengan sat kode1=kode1+1 c Simpan data transaksi Write(3.sat.eq.Rec=kode1)kodec.'(15x.stoc) then c Jika iya transaksi tidak bisa jalan Pause 'Transaksi TIDAK bisa dilaksanakan .dbs.'(5x.'(I3)')jum c Isi variabel kondisi benar Write(*. simapan nomor recor file transaksi Write(4.\)') Read(*.tgl.tgl.'(F6.''Tanggal [dd-mm-yy] :''.sat.''Data Sudah Benar [Y/T] : ''.eq.a10)')nama Write(*.

A.''Stock Awal : ''.I5.Recl=30) OPEN(2.kode) Then c Jika kode sama.FILE='Barang.A10)')'Kode Barang : '.tjb.Rec=J)kodec.'(1x.a)') '------------------------------------------------------------------------------' Write(*.Jen*1 Integer har.A.Sat*8.Access='DIRECT'.sat.stoc.ttb c Buka file OPEN(1.eq.kode1 c Baca file transaksi Read(3.13X.A8.A.A.Access='DIRECT'.or.'(1x.mad*1.Access='DIRECT'.Access='DIRECT'.Rec=1)kode c Lakukan proses perulangan sampai data barang habis dibaca Do 5 I=1.sat.I3)')stoc Wirte(*.Doc'.tgl.'(1x.'(1x.'(1x.har.''LAPORAN TRANSAKSI'')') Write(*. ¦ Tanggal -----------------------------------------------------¦' Write(*.a)') '¦ ¦ ¦ Jumlah ¦ Total Harga ¦' Write(*.'J'.tgl*8.tjj.jen.'(1x.eq.i5)')'Satuan : '.eq.har Write(*.'j') then jh=jum*har tjj=tjj+jum ttj=ttj+jh c jika jenis = jual tampilkan pada kelompok jual JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 83 .jum c Cek apakah kode barang sama dengan kode transaksi If(kodec.FILE='Transak.Rec=I)nama.'(1x.'(1x. lakukan proses pengisian nilai variabel c yang akan dilaporkan nom=nom+1 If(jen.Key'.Teori Pemrograman Terstruktur Bahasa Fortran Close(2) Close(3) Close(4) c Akhir program End 9.Rec=1)kode1 Read(2.'Nama : '.kode c Baca file barang Read(1.8.a)') '¦ ¦ ¦ Jual ¦ Beli ¦ Jual ¦ Beli ¦' Wirte(*.'Harga Satuan : '. Laporan Data Transaksi Program : $Debug c Set variabel memory Character nama*10.FILE='Transak.FILE='Barang.Recl=5) OPEN(3.stoc c Buat judul laporan Write(*.Dbs*1.a)') '------------------------------------------------------------------------------' c Set semua variabel jumlah dan total sama dengan nol Nom=0 tjj=0 tjb=0 ttj=0 ttb=0 c Lakukan pengulangan membaca file transaksi sampai habis Do 10 J=1.ttj.Key'.Recl=30) OPEN(4.3.'(15x.kode.'(24(/))') Write(*.nama Write(*.Doc'.Recl=5) c Ambil nilai nomor record file barang & transaksi (kode) Read(4.'(15x.jen.A)')'¦ No.7x.''==================='')') c Tampilkan data barang Write(*.

tjb.' | |’ Else jh=jum*har tjb=tjb+jum ttb=ttb+jh c jika jenis = beli tampilkan pada kelompok jual Write(*.a)') '------------------------------------------------------------------------------' c Diam sejenak untuk per kode barang Pause 'Tekan Enter Untuk Lanjut .I2.' ¦ .a.'..'(1x.a.' ¦' Wirte(*.a.!' c Lanjutkan baca data barang berikutnya 5 Continue c Tutup file data Close(1) Close(2) Close(3) Close(4) c Tutup program End JUFRIADIF NA’AM Universitas Putra Indonesia “YPTK” Halaman : 84 .a)') '------------------------------------------------------------------------------' Write(*.a)')'¦ Total ¦'.a8.nom.I8.jh.' ¦ '.a.'(1x.a.tjj..tgl.a.a)')'¦ '.a.' ¦'.I8.jh.a.i4.ttb.' ¦ '.'(1x.Teori Pemrograman Terstruktur Bahasa Fortran Write(*.'(1x.i9.a.' ¦ ¦'.a..jum.'(1x.nom.a)')'¦ '.' ¦''.¦ '.i4.i3.' ¦' Endif 10 Continue c Jika sudah habis data transaksi dibaca.a.' ¦ '.i3. tampilkan total Wirte(*.I2.' ¦'.ttj.i9.' ¦ ¦ .a8.jum.tgl.a.

Sign up to vote on this title
UsefulNot useful