daskom - ringkasan pemrograman pascal dan...

16
Kuliah DASKOM. Dasar-Dasar Pemrograman dalam FORTRAN 77 dan Turbo PASCAL Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 20 Kuliah 3, 4, & 5 Dasar-Dasar Bahasa Pemrograman dalam FORTRAN 77 dan Turbo PASCAL Dalam mata kuliah Dasar Komputer yang diberikan untuk para mahasiswa- mahasiswa di Fakultas Teknik UI, ada 2 bahasa pemrograman yang akan digunakan untuk implemetasi pemrograman terstruktur (structured programming), yaitu FORTRAN 77 dan Turbo PASCAL. Pada dasarnya, kedua bahasa pemrograman tersebut memiliki beberapa kesamaan dan kemudahan untuk dapat digunakan dalam pemrograman-pemrograman numerik saintifik (ilmiah), khususnya untuk komputasi dalam bidang ilmu teknik. Bahan kuliah ini dimaksudkan untuk menyajikan secara ringkas dan sederhana, khususnya untuk memberikan dasar dan pengertian ringkas tentang, bahasa-bahasa memprograman tersebut kepada para mahasiswa sekalian. 1. Sekilas Tentang Bahasa FORTRAN dan PASCAL Bahasa FORTRAN yang dipakai, pada dasarnya adalah yang mengikuti standar FORTRAN 77. Namun demikian, para mahasiswa sangat diharapkan untuk mau mempelajari dan atau memperdalam varian dialek lainnya, seperti FORTRAN 90 dan FORTRAN 95. Seperti telah sedikit disinggung pada Bab 1, bahasa pemrogram FORTRAN (singkatan dari FORmula TRANslation) merupakan bahasa pemrograman yang paling lama populer, yaitu sejak diperkenalkan pertama kali pada tahun 1953 oleh John Bachus dan diproduksi pertama kali sebagai compiler (kompilator) pada tahun 1957. Fitur utama dari bahasa FORTRAN, terutama yang disusun sejak tahun 1977, adalah bahasa yang lebih mengutamakan penulisan program yang tepat, efisien dan dapat berulang dalam suatu sub-program tertentu (structured-oriented language). Sampai saat ini, bahasa FORTRAN telah mengalami berbagai kemajuan dan perkembangan dalam standar internasional, yang dapat disebutkan secara kronologis sebagai berikut: FORTRAN 66 – dikenal juga sebagai FORTRAN IV, sebagai standar yang pertamakali diperkenalkan oleh American National Standards Institute atau ANSI, dan diterima secara internasional pada tahun 1972. FORTRAN 77 – ANSI X3.9-1978 – sebagai standar bahasa pemrograman FORTRAN terstruktur (structured programming) yang pertama Kuliah DASKOM. Dasar-Dasar Pemrograman dalam FORTRAN 77 dan Turbo PASCAL Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 21 diperkenalkan. FORTRAN 90 – ISO/IEC 1539:1991 – mengalami berbagai revisi untuk menjadikan bahasa FORTRAN sebagai bahasa pemrograman komputer yang modern. FORTRAN 95 – ISO/IEC 1539-1: 1997 – merupakan perbaikan minor dari versi FORTRAN 90. FORTRAN 2003 – ISO/IEC 1539-1:2004(E) – mengalami beberapa penambahan object-oriented support dan interoperabilitas dengan bahasa C (sebagai natifnya). Dewasa ini, cukup banyak piranti lunak bahasa FORTRAN tersedia di pasaran, yang paling banyak adalah dalam dialek FORTRAN-77 dan FORTRAN- 95. Beberapa versi bebas-unduh (free download), meskipun dengan berbagai pembatasan yang bervariasi, yang dapat dijumpai di jaringan internet adalah: 1. Intel ® Visual Fortran: http://www.intel.com/cd/software/products/asmo- na/eng/278834.htm, 2. Compaq Visual Fortran: saat ini sudah tidak ada lagi (discontinued), karena hanya diproduksi sampai tanggal 31 Desember 2005, yang kemudian disarankan untuk beralih ke Intel ® Visual Fortran. 3. Silverfrost FTN95: http://www.silverfrost.com/ 4. GNU Fortran: http://gcc.gnu.org/wiki/GFortran, 5. g95: http://www.g95.org/, dan 6. g77: http://www.gnu.org/software/fortran/fortran.html. Gambar 1. Kompilator Compaq Visual Fortran yang sudah tidak diproduksi lagi.

Upload: trinhanh

Post on 22-Apr-2018

218 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: DASKOM - Ringkasan Pemrograman Pascal dan Fortranstaff.ui.ac.id/system/files/users/setijo.bismo/material/... · program FORTRAN 77 dapat sangat besar, yang tentunya sangat bergantung

Kuliah DASKOM. Dasar-Dasar Pemrograman dalam FORTRAN 77 dan Turbo PASCAL Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 20

Kuliah

3, 4, & 5 Dasar-Dasar Bahasa Pemrograman dalam FORTRAN 77 dan Turbo PASCAL

Dalam mata kuliah Dasar Komputer yang diberikan untuk para mahasiswa-mahasiswa di Fakultas Teknik UI, ada 2 bahasa pemrograman yang akan digunakan untuk implemetasi pemrograman terstruktur (structured programming), yaitu FORTRAN 77 dan Turbo PASCAL. Pada dasarnya, kedua bahasa pemrograman tersebut memiliki beberapa kesamaan dan kemudahan untuk dapat digunakan dalam pemrograman-pemrograman numerik saintifik (ilmiah), khususnya untuk komputasi dalam bidang ilmu teknik. Bahan kuliah ini dimaksudkan untuk menyajikan secara ringkas dan sederhana, khususnya untuk memberikan dasar dan pengertian ringkas tentang, bahasa-bahasa memprograman tersebut kepada para mahasiswa sekalian. 1. Sekilas Tentang Bahasa FORTRAN dan PASCAL

Bahasa FORTRAN yang dipakai, pada dasarnya adalah yang mengikuti standar FORTRAN 77. Namun demikian, para mahasiswa sangat diharapkan untuk mau mempelajari dan atau memperdalam varian dialek lainnya, seperti FORTRAN 90 dan FORTRAN 95. Seperti telah sedikit disinggung pada Bab 1, bahasa pemrogram FORTRAN (singkatan dari FORmula TRANslation) merupakan bahasa pemrograman yang paling lama populer, yaitu sejak diperkenalkan pertama kali pada tahun 1953 oleh John Bachus dan diproduksi pertama kali sebagai compiler (kompilator) pada tahun 1957. Fitur utama dari bahasa FORTRAN, terutama yang disusun sejak tahun 1977, adalah bahasa yang lebih mengutamakan penulisan program yang tepat, efisien dan dapat berulang dalam suatu sub-program tertentu (structured-oriented language). Sampai saat ini, bahasa FORTRAN telah mengalami berbagai kemajuan dan perkembangan dalam standar internasional, yang dapat disebutkan secara kronologis sebagai berikut:

• FORTRAN 66 – dikenal juga sebagai FORTRAN IV, sebagai standar yang pertamakali diperkenalkan oleh American National Standards Institute atau ANSI, dan diterima secara internasional pada tahun 1972.

• FORTRAN 77 – ANSI X3.9-1978 – sebagai standar bahasa pemrograman FORTRAN terstruktur (structured programming) yang pertama

Kuliah DASKOM. Dasar-Dasar Pemrograman dalam FORTRAN 77 dan Turbo PASCAL Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 21

diperkenalkan. • FORTRAN 90 – ISO/IEC 1539:1991 – mengalami berbagai revisi untuk

menjadikan bahasa FORTRAN sebagai bahasa pemrograman komputer yang modern.

• FORTRAN 95 – ISO/IEC 1539-1: 1997 – merupakan perbaikan minor dari versi FORTRAN 90.

• FORTRAN 2003 – ISO/IEC 1539-1:2004(E) – mengalami beberapa penambahan object-oriented support dan interoperabilitas dengan bahasa C (sebagai natifnya).

Dewasa ini, cukup banyak piranti lunak bahasa FORTRAN tersedia di pasaran, yang paling banyak adalah dalam dialek FORTRAN-77 dan FORTRAN-95. Beberapa versi bebas-unduh (free download), meskipun dengan berbagai pembatasan yang bervariasi, yang dapat dijumpai di jaringan internet adalah:

1. Intel ® Visual Fortran: http://www.intel.com/cd/software/products/asmo-na/eng/278834.htm,

2. Compaq Visual Fortran: saat ini sudah tidak ada lagi (discontinued), karena hanya diproduksi sampai tanggal 31 Desember 2005, yang kemudian disarankan untuk beralih ke Intel ® Visual Fortran.

3. Silverfrost FTN95: http://www.silverfrost.com/ 4. GNU Fortran: http://gcc.gnu.org/wiki/GFortran, 5. g95: http://www.g95.org/, dan 6. g77: http://www.gnu.org/software/fortran/fortran.html.

Gambar 1. Kompilator Compaq Visual Fortran yang sudah tidak diproduksi lagi.

Page 2: DASKOM - Ringkasan Pemrograman Pascal dan Fortranstaff.ui.ac.id/system/files/users/setijo.bismo/material/... · program FORTRAN 77 dapat sangat besar, yang tentunya sangat bergantung

Kuliah DASKOM. Dasar-Dasar Pemrograman dalam FORTRAN 77 dan Turbo PASCAL Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 22

Walaupun sudah tidak diproduksi lagi, namun untuk melakukan kompilasi-kompilasi program dalam buku ini, piranti lunak Compaq Visual Fortran (CVF) versi 6.5 masih tetap digunakan karena alasan-alasan kemudahan dan juga kepraktisannya. Selain CVF tersebut, kompailer lain yang digunakan adalah versi GNU Project (piranti lunak bebas alias open source, dapat juga dilihat situsnya: http://www.gnu.org/), yaitu g77 dan g95.

Sebagai bahasa pemrogram pendamping FORTRAN yang tidak kalah pentingnya dalam penyajian mata kuliah Metode Numerik, yaitu bahasa PASCAL yang digunakan dalam mata kuliah ini adalah berdasarkan varian atau dialek yang dikembangkan oleh Philippe Kahn dari Borland Corporation pada tahun 1982, yaitu Turbo PASCAL atau kadang dikenal juga sebagai Borland PASCAL. Ada beberapa versi Turbo PASCAL yang dapat berjalan dalam platform MS-DOS (MicroSoft – Disk Operating Sistem), yaitu versi-versi 1.0, 3.0, 4.0, 5.0, 5.5, 6.0 dan 7.0. Sedangkan versi yang dapat berjalan dalam platform MS-Windows ada 2, yaitu versi 1.0 dan 1.5. Semua versi dari Turbo pascal tersebut sudah lama tida diproduksi lagi. Konon kabarnya, sebagai kelanjutan dari Turbo Pascal tersebut, dikembangkanlah bahasa pemrograman yang lebih maju lagi yang dikenal sebagai Borland Delphi.

Gambar 2. Kompilator Turbo Pascal yang juga sudah tak diproduksi lagi.

Setelah versi Turbo pascal tidak beredar lagi di pasaran, maka dewasa ini telah dikembangkan suatu dialek bahasa PASCAL yang juga hampir identik dengan Turbo PASCAL, namun dengan arsitektur 32/64-bit yang lebih maju, yaitu

Kuliah DASKOM. Dasar-Dasar Pemrograman dalam FORTRAN 77 dan Turbo PASCAL Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 23

Free PASCAL (lihat situsnya: www.freepascal.org). Free PASCAL (dikenal juga sebagai FPK PASCAL atau FPC) adalah piranti lunak keluarga “piranti lunak bebas” (free software), yang dapat digunakan di berbagai platform (portable), serta dikembangkan dengan metodologi terbuka (open source). 2. Ciri-ciri Kompilator FORTRAN 77 dan Turbo PASCAL

Berdasrkan sejarah perkembangannya, yaitu sampai awal tahun 1980an, Bahasa FORTRAN lebih banyak dipakai dan dikembangkan pada komputer-komputer besar (mainframes dan mini-computers) bukan pada komputer pribadi (PC, personal computer), karena ukuran kompilatornya yang relatif sangat besar dan umumnya dipergunakan untuk perhitungan-perhitungan (matematik numerik) dengan ukuran yang besar pula (pada waktu itu).

Secara umum pula, karena ukuran kompilatornya yang sangat besar (untuk mainframe), kompilator FORTRAN 77 dirancang hanya untuk dapat digunakan secara terpisah dengan “editor teks”, yaitu editor teks “vi” yang umum dipakai pada sistem operasi UNIX (dan, sekarang telah dikembangkan pula untuk sistem operasi LINUX). Penggunaan secara terpisah antara kompilator dan editor teks seperti di atas, disebut sebagai kompilator non-IDE (Integrated Development Environtment). Setelah perkembangan sistem operasi MicroSoft Windows yang semakin pesat pada komputer-komputer pribadi dengan prosesor Intel™, maka beberapa perusahaan yang dipelopori oleh Microsoft Corp. sendiri, kemudian diikuti oleh Lahey Corp., Intel Corp. (yang juga berkolaborasi dengan HP dan Compaq) mulai mengembangkan berbagai versi IDE dari kompilator FORTRAN pada awal tahun 1990an.

Berbeda dengan FORTRAN, kompilator Turbo PASCAL secara spesifik dikembangkan dengan komprehensif untuk komputer-komputer pribadi (PCs). Oleh karenanya, kompilator Turbo PASCAL telah dilengkapi dengan IDE (editor yang terintegrasi dengan kompilatornya) sejak awal dikembangkan pada tahun 1982 oleh Philippe Kahn dari Borland Corporation. Demikian pula untuk kompilator Free PASCAL (FPC), yang dikembangkan oleh Florian Paul Klämpfl pada awal tahun 200an, juga memiliki IDE yang sampai saat ini tetap terjaga oleh komunitas open source (http://www.freepascal.org).

Page 3: DASKOM - Ringkasan Pemrograman Pascal dan Fortranstaff.ui.ac.id/system/files/users/setijo.bismo/material/... · program FORTRAN 77 dapat sangat besar, yang tentunya sangat bergantung

Kuliah DASKOM. Dasar-Dasar Pemrograman dalam FORTRAN 77 dan Turbo PASCAL Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 24

2.1. Penulisan Program FORTRAN 77

Penulisan bahasa pemrograman FORTRAN 77 memiliki struktur dan aturan yang baku, dan bisanya akan lebih mudah jika dilakukan dalam suatu lembar penulisan program yang disebut Fortran Coding Form. Pada awalnya, Fortran Coding Form tersebut dipakai untuk penulisan program FORTRAN melalui alat bantu yang disebut “Punch Card”, yaitu suatu lembaran kertas tebal (setebal kertas karton manila) yang kira-kira bentuknya seperti disajikan pada gambar 3.4. Kemudian, kertas Punch Card tersebut akan dibaca oleh “Card Reader” dari komputer yang akan kita pakai, sebelum melakukan kompilasi.

Gambar 3. Fortran Coding Form (dari IBM) untuk penulisan program FORTRAN.

Mengacu pada Fortran Coding Form atau pun Fortran Punch Card seperti di

atas, maka cara penulisan program dalam bahasa FORTRAN 77 yang sederhana dan ringkas dapat disebutkan beberapa di antaranya sebagai berikut:

1. Isi program ditulis secara baris-per-baris, dengan jumlah kolom setiap barisnya sebanyak 80,

2. Kolom pertama, dari setiap barisnya, dapat dikosongkan, dan bila diisi dengan karakter “C” atau “*” berarti berfungsi sebagai “baris komentar”,

3. Selanjutnya, kolom 2 – 5 dapat dikosongkan jika tidak dipakai sebagai kolom “nomor pernyataan” (ingat : penulisan baku !)

4. Jika diperlukan, pada kolom 6 dapat digunakan sebagai tempat

Kuliah DASKOM. Dasar-Dasar Pemrograman dalam FORTRAN 77 dan Turbo PASCAL Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 25

penulisan untuk tanda khusus, yaitu karakter untuk sambungan dengan baris di atasnya (karakter-karakter yang diperbolehkan, di antaranya: “*”, “0”, “1”, “2”,…,”9”, dan karakter-karakter abjad lainnya),

5. Penggunaan “identifier” harus dimulai dengan karakter alfabet (a-z, atau A-Z), kemudian dapat dikombinasikan dengan karakter-karakter numeris (0 – 9),

6. Penggunaan karakter besar (kapital) maupun kecil dapat dicampur, 7. Program harus ditulis mulai pada kolom ke 7 sampai dengan kolom ke

72, 8. Kolom ke 73 sampai ke 80 tidak dipakai untuk keperluan yang khusus,

dalam hal ini hanya dipakai sebagai lokasi nomor-nomor identifikasi.

Suatu “baris kosong” dapat juga berperan sebagai “baris pemisah” antara suatu pernyataan dengan pernyataan lain di bawahnya. Sedangkan, jika diinginkan, nomor baris harus diisikan pada kolom-kolom 2 ampai dengan 5, baik digunakan untuk untuk pernyataan continue, goto (untuk tujuan khusus) ataupun tujuan lainnya. Ukuran program ataupun “source code” maksimum dari suatu program FORTRAN 77 dapat sangat besar, yang tentunya sangat bergantung pada kapasitas editor teks yang dipakai.

Untuk memperoleh panduan tentang cara penulisan program FORTRAN 77 yang lebih baik, maka pembaca sekalian dapat memperhatikan contoh program sederhana seperti di bawah ini.

Gambar 4. Fortran Punch Card dan contoh program dalam bahasa FORTRAN.

Hal terpenting yang harus diperhatikan dalam penulisan program (coding)

FORTRAN 77 dalam suatu file (berkas), adalah sebagai berikut: Perekaman berkas (file saving) harus dalam format “text file” (ASCII atau

ASCII unicode), Ekstensi berkas hasil perekaman harus dalam bentuk “.for” atau “.f”,

Page 4: DASKOM - Ringkasan Pemrograman Pascal dan Fortranstaff.ui.ac.id/system/files/users/setijo.bismo/material/... · program FORTRAN 77 dapat sangat besar, yang tentunya sangat bergantung

Kuliah DASKOM. Dasar-Dasar Pemrograman dalam FORTRAN 77 dan Turbo PASCAL Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 26

Penulisan program dapat dilakukan pada sembarang editor teks, seperti: NOTEPAD, WORDPAD, Microsoft WORD, dan lain-lain.

3.2.2. Sintaks (Syntax) Program FORTRAN 77

Struktur dasar penulisan program FORTRAN 77, secara ringkas, mengikuti sistematika penulisan berikut:

Definisi dan atau Deklarasi PARAMETER dan VARIABEL, Program Utama (Main Program) Sub-Program SUBROUTINE dan atau Sub-Program FUNCTION.

Definisi atau deklarasi PARAMETER dan VARIABEL, misalnya:

PARAMETER (PM = …) INTEGER … REAL …

Program Utama … … … …

STOP (optional)

END

SUBROUTINE Sub001(…, …) … … … …

RETURN

END

FUNCTION Fun001(…, …) … … … …

RETURN

END

Gambar 5. Blok struktur dan sintaks program dalam bahasa FORTRAN.

Aturan-aturan umum dari sistematika atau struktur penulisan seperti di atas memiliki beberapa kekhususan, yang dapat disebutkan di antaranya:

− Penempatan definisi variabel harus lebih dahulu dari isi program, − Predefinisi dan atau kata-baku (seperti : Real, Real*8, Double

Kuliah DASKOM. Dasar-Dasar Pemrograman dalam FORTRAN 77 dan Turbo PASCAL Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 27

Precision, Complex, Integer, Integer*4, dsb) tidak dapat dipakai lagi untuk penamaan variabel (identifier) dalam program,

− Kelompok subprogram ditempatkan secara terpisah setelah tanda akhir dari program utama,

− Subprogram FUNCTION mempunyai jenis tunggal (misalnya: REAL, INTEGER, dan lain-lain),

− Subprogram SUBROUTINE digunakan atau dipanggil berdasarkan pengalamatan (passing by address),

− Subprogram tidak dapat bersifat “recursif” atau memanggil dirinya sendiri

− Suatu program (termasuk subprogram) diakhiri atau ditutup dengan kata (predefinisi) END (untuk subprogram, sebelumnya ada kata RETURN yang diikuti dengan END pada baris berikutnya).

2.3. Penulisan Program Turbo PASCAL

Sama halnya pada pemrograman FORTRAN 77, penulisan program Turbo PASCAL juga memiliki struktur dan aturan yang baku, bahkan dapat dikatakan, bahwa struktur bahasa PASCAL lebih tersusun secara sistematis dibandingkan bahasa FORTRAN. Namun, perbedaan keduanya yang cukup mencolok, adalah dalam hal fleksibilitas penulisan program Turbo PASCAL yang lebih luwes dan sederhana bagi sebagian besar user.

Secara ringkas, sistematika penulisan program dalam Turbo PASCAL adalah sebagai berikut:

• Jumlah kolom maksimum dari setiap baris program adalah 128 kolom (bergantung pada editor teks yang dipergunakan), dan bila hal ini tidak mencukupi maka dapat diteruskan ke baris di bawahnya tanpa persyaratan khusus seperti pada FORTRAN 77.

• Penggunaan “identifier” harus dimulai dengan karakter alfabet (a-z, atau A-Z), kemudian dapat dicampur dengan karakter numeris (0 – 9) dan atau garis bawah (underscore atau “_”) sebagai variasinya, tanpa harus memperhatikan ketentuan-ketentuan yang terlalu rumit karena: − Penggunaan karakter besar (kapital) maupun kecil dapat dicampur, − Penggunaan baris selanjutnya tidak memerlukan persyaratan khusus, − Program dapat ditulis mulai pada kolom dan baris berapapun.

• Bila pada suatu baris terdapat karakter “{” (tanda kurung kurawal terbuka ke kanan), hal ini berarti bahwa “baris komentar” (comment) dimulai

Page 5: DASKOM - Ringkasan Pemrograman Pascal dan Fortranstaff.ui.ac.id/system/files/users/setijo.bismo/material/... · program FORTRAN 77 dapat sangat besar, yang tentunya sangat bergantung

Kuliah DASKOM. Dasar-Dasar Pemrograman dalam FORTRAN 77 dan Turbo PASCAL Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 28

pada tanda tersebut dan diakhiri pada karakter “}” (tanda kurung kurawal terbuka ke kiri) yang ada setelahnya.

• Suatu “baris komentar” dapat juga ditulis dengan cara lain, yaitu dalam bentuk: “(* ---- komentar --- *)”.

• Nomor baris tidak ada secara khusus, kecuali didefinisikan sebagai label untuk pernyataan goto (namun, dapat ditulis dengan persyaratan khusus).

• Ukuran “source code” (ukuran file hasil penulisan program) maksimum untuk program yang ditulis dalam Turbo PASCAL adalah 64 KB (karena sangat bergantung pada kapasitas editor IDE-nya), sedangkan untuk yang ditulis dalam Free PASCAL (FPC) dapat lebih besar lagi, sampai lebih dari 4 kalinya.

• Penulisan program PASCAL (Turbo PASCAL maupun FPC) dapat dilakukan pada editor teks yang lain, misalnya: NOTEPAD, WORDPAD, Microsoft WORD, dan lain-lain. Dalam hal ini, persyaratan penulisan yang harus diperhatikan, adalah bahwa perekaman berkas (file saving) harus dinyatakan dalam format “text file” dan dalam ekstensi “.pas”.

2.4. Sintaks Program Turbo PASCAL

Agak berbeda dengan struktur dasar penulisan program pada FORTRAN 77, maka penulisan program pada Turbo PASCAL secara ringkas dapat dijelaskan sebagai berikut:

Definisi mode masukan dan atau keluaran sistem berkas (I/O file systems, termasuk juga layar monitor dan keyboard), menggunakan predefinisi kata “uses”,

Predefinisi, definisi dan deklarasi KONSTANTA dan VARIABEL, yang dapat belaku untuk “Program Utama” sekaligus dapat juga berlaku untuk “Sub-Program” (Procedure atau Function),

Program Utama (Main Program), dimulai dengan predefinisi kata “begin” dan diakhiri dengan “end.”,

Sub-Program PROCEDURE, yang dimulai dengan “begin” dan diakhiri dengan “end;”. Di antara kata PROCEDURE dan “begin” tersebut di atas, dapat juga diisi dengan “definisi” dan atau “deklarasi” KONSTANTA dan atau VARIABEL yang baru, namun dalam hal ini hanya “berlaku lokal” di dalam sub-program PROCEDURE tersebut,

Sub-Program FUNCTION, yang juga harus dimulai dengan “begin” dan diakhiri dengan “end;”. Di antara FUNCTION dan “begin” dapat diisi

Kuliah DASKOM. Dasar-Dasar Pemrograman dalam FORTRAN 77 dan Turbo PASCAL Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 29

dengan “definisi”/“deklarasi” KONSTANTA/VARIABEL yang baru, namun dalam hal ini juga hanya “berlaku lokal”,

Setiap “baris pernyatan” (termasuk predefinisi, definisi dan deklarasi) harus ditutup dengan tanda baca “;” (titik koma), kecuali yang berada tepat sebelum kata “end;” atau “end.”.

Predefinisi, definisi dan deklarasi: Uses, Type, Consts, Var, sebagai contoh:

Uses WinCRT; {hanya untuk versi MS Windows}

Type Vektor = Array[1..10] of Real;

Var B,V: Vektor; I,J,K: Integer; Sum: Real;

Procedure Proc01(…, …);

Var …, …; Begin

… … … …

End;

Function Func01(…, …);

Var …, …; Begin

… … … …

End;

Program Utama;

Begin

… … … …

End.

Gambar 6. Blok struktur dan sintaks program dalam bahasa PASCAL.

Sama halnya dengan penulisan pada bahasa FORTRAN, maka pada bahasa PASCAL pun memiliki aturan-aturan umum dari sistematika atau struktur penulisan serta beberapa kekhususan, di antaranya:

Page 6: DASKOM - Ringkasan Pemrograman Pascal dan Fortranstaff.ui.ac.id/system/files/users/setijo.bismo/material/... · program FORTRAN 77 dapat sangat besar, yang tentunya sangat bergantung

Kuliah DASKOM. Dasar-Dasar Pemrograman dalam FORTRAN 77 dan Turbo PASCAL Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 30

− Penempatan predefinisi, definisi, dan deklarasi variabel harus ditempatkan sebelum isi program,

− Predefinisi dan atau kata-baku (seperti : Uses, Real, Integer, Boolean, dsb) tidak dapat dipakai lagi untuk penamaan variabel (identifier) dalam program,

− Kelompok subprogram (Procedure dan Function) harus ditempatkan sebelum program utama,

− Subprogram Function mempunyai jenis tunggal atau skalar (misalnya: Real, Integer, dan lain-lain),

− Subprogram Procedure digunakan atau dapat dipanggil berdasarkan pengalamatan dan atau penilaian (passing by address atau passing by value),

− Subprogram dalam PASCAL dapat bersifat “recursif”, yaitu sub-program yang dapat memanggil dirinya sendiri

Jika dalam cara penulisan program FORTRAN 77 lebih banyak hal-hal atau

batasan yang harus difahami, sehingga penulisan program tersebut terkesan cukup merepotkan dan rumit. Namun sebaliknya, jika contoh program yang analogi seperti pada gambar 3.4 di atas dituliskan dalam Turbo PASCAL, maka kesannya akan menjadi lebih sederhana, seperti di bawah ini.

Var Val,X : Real; {atau dapat pula digunakan Extended} Begin Val := 10.0; X := 0.0; For I := 1 to 10 do Begin X := X*Sqr(I) + Val; Val := Val – I; End; Writeln(‘Val = ‘,Val:10:3); End.

Gambar 7. Contoh program dalam Turbo PASCAL yang analogi dengan gambar 3.4.

Kuliah DASKOM. Dasar-Dasar Pemrograman dalam FORTRAN 77 dan Turbo PASCAL Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 31

3. Operator dan Sintaks Program FORTRAN 77 dan Turbo PASCAL

Secara umum, penulisan program dalam FORTRAN 77 dan Turbo PASCAL sudah tentu banyak perbedaannya. Dalam hal sintaks penulisan pernyataan-pernyataan kondisional (if-then-else), operasi numerik (perpangkatan, perkalian, pembagian, penambahan, dan pengurangan), komparasi pernyataan logika (boolean expression, disingkat sebagai “be”), penugasan iterasi (for, while, dan sebagainya), dan penulisan larik (array), perbedaan-perbedaan tersebut akan cukup kontras terlihat seperti disenaraikan dalam tabel 1. di bawah ini.

Tabel 1. Perbandingan beberapa operator terpenting dan sintaks penulisannya.

Sintaks Penulisan No. Pernyataan Operasi

FORTRAN 77 Turbo PASCAL

1. Operator penyangkalan (unary) .NOT. not

2. Operator perpangkatan (power) ** t.a.

3. Operator perkalian (multiplication) * *

4. Operator pembagian (division) / /

5. Operator pembagian, khusus integer t.a. div

6. Operator “sisa pembagian” (modulo) t.a. mod

7. Operator “gerbang (bitwise) and” .AND. and

8. Operator “gerbang or” .OR. or

9. Operator “gerbang xor” t.a. xor

10. Operator “shift left” t.a. shl

11. Operator “shift right” t.a. shr

12. Operator penambahan (addition) + +

13. Operator pengurangan (substraction) – –

14. Tanda penugasan (assignment) = :=

15. Tanda kurung dalam operasi matematis (…) (…)

16. Tanda kurung untuk indeks larik (array) (…) […]

17. Komparasi identik (equal to) .EQ. =

18. Komparasi tak identik (not equal to) .NE. <> atau ><

19. Komparasi lebih besar (greater than) .GT. >

20. Komparasi lebih kecil (less than) .LT. <

Page 7: DASKOM - Ringkasan Pemrograman Pascal dan Fortranstaff.ui.ac.id/system/files/users/setijo.bismo/material/... · program FORTRAN 77 dapat sangat besar, yang tentunya sangat bergantung

Kuliah DASKOM. Dasar-Dasar Pemrograman dalam FORTRAN 77 dan Turbo PASCAL Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 32

Tabel 1. Perbandingan beberapa operator terpenting dan sintaks penulisannya (lanjutan…).

Sintaks Penulisan No. Pernyataan Operasi

FORTRAN 77 Turbo PASCAL

21. Komparasi lebih besar atau sama dengan .GE. >= atau =>

22. Komparasi lebih kecil atau sama dengan .LE. <= atau =<

23. Pernyataan nilai variabel dalam anggota t.a. in […]

24. Pernyataan kondisional sederhana if (…be…) … if (…be…) then …;

25. Pernyataan kondisional bersarang (blok) if (…be…) then … … endif

if (…be…) then begin … … end;

26. Pernyataan kondisional bertingkat

if (…be…) then … … else … … endif

if (…be…) then begin … … end else begin … … end;

27. Pernyataan kondisional selektif t.a.

case (…be…) of aa: …; bb: …; …: …; end;

28. Pernyataan pengulangan terhitung naik (iterasi naik)

do var = first,last … …

enddo

for v := a to b do begin … … end;

29. Pernyataan pengulangan terhitung turun (iterasi turun)

do var = first,last,-1 … …

enddo

for v := a downto b do begin … … end;

30. Pernyataan iterasi tak-terhitung t.a. repeat … … until …be…;

31. Pernyataan pengulangan bersyarat do while (…be…) … … enddo;

while (…be…) do begin … … end;

Kuliah DASKOM. Dasar-Dasar Pemrograman dalam FORTRAN 77 dan Turbo PASCAL Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 33

4. Kisi-Kisi Dasar Pemrograman FORTRAN 77 dan Turbo PASCAL

Seperti telah ditunjukkan dalam tabel 3.1. di atas, tampak jelas beberapa perbedaan penulisan dan sintaks antara program FORTRAN 77 dan Turbo PASCAL. Mungkin saja, bagi para programer pemula dalam mata kuliah Metode Numerik ini, perbedaan-perbedaan tersebut dapat menjadi kendala ataupun masalah tersendiri dalam membanguan suatu solusi melalui sebuah program, baik dalam bahasa pemrograman FORTRAN 77 atau Turbo PASCAL atau pun kedua-duanya.

Sebagai suatu petunjuk sistematis tentang dasar-dasar pembuatan program FORTRAN 77 ataupun Turbo PASCAL, pada paragraf-paragraf berikut ini diberikan kisi-kisi ringkas yang berkaitan dengan pembuatan program yang lebih komprehensif untuk keduanya sekaligus juga menyajikan perbedaan-perbedaannya jika ada. 4.1. Predefinisi dalam FORTRAN 77 dan Turbo PASCAL

Berdasarkan standar yang telah ditentukan, khususnya dalam ANSI X3.9-1978, semua pengenal (identifier) ataupun variabel sudah terdefinisi dan tersusun peruntukannya dengan ketentuan baku dalam pemrograman FORTRAN 77 sedemikian rupa sehingga tidak banyak lagi kemungkinan ataupun modifikasi dapat dilakukan oleh seorang programer. Salah satu deklarasi predifinisi yang sering dipakai dalam FORTRAN adalah:

1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 … … I M P L I C I T E n o n e

Perlu diingat dengan baik oleh pembaca sekalian, bahwa programer harus

mengikuti tata-penulisan yang sudah terdefinisi dengan baik (bahkan cenderung kaku !) dalam penulisan program FORTRAN (khususnya FORTRAN 66 dan 77). Sebagai contoh, penulisan kata IMPLICITE harus berada dalam kolom-kolom antara posisi ke-7 sampai ke-72, dan kemudian diikuti dengan penulisan kata none yang dipisahkan dengan (minimal satu) spasi dengan kata sebelumnya.

Penulisan predefinisi dalam kata-kata IMPLICITE none seperti di atas, berarti bahwa si pemrogram memerintahkan kepada compiler (yang bertugas menyusun dan menterjemahkan sintaks bahasa FORTRAN ke dalam bahasa mesin) untuk secara bebas menggunakan awalan dan abjad apapun dalam penulisan program FORTRAN.

Page 8: DASKOM - Ringkasan Pemrograman Pascal dan Fortranstaff.ui.ac.id/system/files/users/setijo.bismo/material/... · program FORTRAN 77 dapat sangat besar, yang tentunya sangat bergantung

Kuliah DASKOM. Dasar-Dasar Pemrograman dalam FORTRAN 77 dan Turbo PASCAL Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 34

Sebaliknya, jika penulisan IMPLICITE none tidak dilakukan, maka programer harus mengikuti predefinisi yang telah dibakukan dalam bahasa FORTRAN, yaitu:

Semua pengenal atau variabel yang diawali (huruf pertamanya) dengan huruf-huruf A, B, D sampai dengan H, dan kemudian O sampai dengan Z merupakan predefinisi untuk jenis REAL. Sebagai contoh, variabel-variabel ASUM, GIANT, PI, dan WOLF semuanya termasuk dalam jenis REAL.

Semua pengenal/variabel akan memiliki jenis bilangan COMPLEX, jika huruf pertamanya adalah huruf C. Sebagai contoh: pengenal atau nama-nama CMPLX, CIMP dapat digunakan sebagai variabel bilangan COMPLEX.

Semua pengenal/variabel yang huruf pertamanya dimulai dengan huruf-huruf I sampai dengan N merupakan predefinisi untuk INTEGER. Contohnya adalah: variabel-variabel ITER, JAR, KEY, dan NODE semuanya termasuk dalam jenis INTEGER.

Di sisi lain, seorang programer harus berhati-hati, bahwa semua pengenal (identifier) yang telah digunakan secara baku dalam FORTRAN, seperti: CHARACTER, COMPLEX, END, FORMAT, INTEGER, READ, REAL, RETURN, STOP, WRITE, dll. tidak dapat lagi digunakan dalam penulisan program.

Berbeda dengan standar yang diberlakukan pada FORTRAN 77, dalam pemrograman Turbo PASCAL masih sangat banyak yang dapat (dan harus) didefinisikan untuk penggunaan suatu pengenal (idendifier), baik jenisnya (type) maupun variabelnya (var). Dalam hal ini, pemrograman menggunakan Turbo PASCAL dipandang lebih luwes (flexible) dibandingkan dengan FORTRAN. Sebagai contoh, deklarasi predefinisi (type) dala pemrograman Turbo PASCAL berikut ini bertujuan membuat predefinisi suatu vektor bilangan real (Rvektor), matriks bilangan integer (Imatriks), dan himpunan 3 warna (Warna), yang tidak dikenal dalam sintaks pemrograman FORTRAN:

Type RVektor = Array[1..10] of Real; Imatriks = Array[1..5,1..5] of Integer; Warna = (Hijau,Kuning,Merah);

Kuliah DASKOM. Dasar-Dasar Pemrograman dalam FORTRAN 77 dan Turbo PASCAL Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 35

4.2. Definisi Variabel dalam FORTRAN 77 dan Turbo PASCAL

Berbeda dengan penulisan predefinisi sebelumnya, penulisan definisi variabel program baik dalam bahasa pemrograman FORTRAN 77 ataupun Turbo PARCAL sudah lebih jelas dan terukur, meskipun keduanya memiliki beberapa perbedaan dalam pendefinisian struktur dan atau aturan yang baku.

Sebagai contoh, berikut ini diberikan cara penulisan definisi variabel-variabel yang akan dipakai dalam badan program, baik yang berjenis REAL, INTEGER, BOOLEAN (LOGICAL dalam FORTRAN), dan CHAR (CHARACTER dalam FORTRAN) sebagai berikut:

Pemrogram FORTRAN:

1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 … … R E A L X N E W , X O L D , Y 1 , Y 2 , Z

I N T E G E R I , I T E R , J , K , N

L O G I C A L F L A G , O K

C H A R A C T E R K E Y , P R E S S

Pemrogram Turbo PASCAL:

Var Xnew,Xold,Y1,Y2,Z : Real; I,ITER,J,K,N : Integer; Flag,OK = Boolean; Key,Press = Char;

Catatan:

Perhatikan baik-baik penulisan kedua pemrograman di atas, khususnya untuk 3 hal: (a). awalan kata “Var”, (b). posisi pengenal jenis variabel (REAL, INTEGER, dsb.), dan (c). tanda baca “;” (titik-koma).

4.3. Penulisan Subprogram FUNCTION

Di bawah ini, diberikan cara penulisan subprogram FUNCTION, baik dalam FORTRAN ataupun dalam Turbo PASCAL. Dalam pemrogram FORTRAN maupun Turbo PASCAL, subprogram FUNCTION digunakan untuk melakukan proses/operasi numerik dan atau non-numerik yang hasilnya disimpan dalam nama subprogram FUNCTION tersebut, khususnya sebagai “skalar” (variabel berdimensi 1, seperti: REAL, INTERGER, CHAR(ACTER), dan BOOLEAN atau LOGICAL dalam FORTRAN).

Page 9: DASKOM - Ringkasan Pemrograman Pascal dan Fortranstaff.ui.ac.id/system/files/users/setijo.bismo/material/... · program FORTRAN 77 dapat sangat besar, yang tentunya sangat bergantung

Kuliah DASKOM. Dasar-Dasar Pemrograman dalam FORTRAN 77 dan Turbo PASCAL Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 36

Pemrogram FORTRAN:

1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 … … F U N C T I O N F A C T O R I A L ( N )

I N T E G E R F A C T O R I A L , N

R E A L F A C T

I N T E G E R I

L O G I C A L F L A G , O K

C H A R A C T E R K E Y , P R E S S

… … …

… … …

R E T U R N

E N D

Pemrogram Turbo PASCAL:

Function Factorial(N : Integer) : Integer; Var

Fact : Real; I : Integer; Flag,OK = Boolean; Key,Press = Char;

Begin … … … … … … End;

Walaupun memiliki banyak kemiripan dalam fungsinya, baik dalam

pemrograman FORTRAN dan Turbo PASCAL, pembaca sangat diharapkan untuk memperhatikan dengan teliti dan seksama kedua cara penulisan tersebut, termasuk juga tanda-tanda bacanya. 4.4. Penulisan Subprogram SUBROUTINE dan PROCEDURE

Di bawah ini, diberikan cara penulisan subprogram SUBROUTINE (dalam pemrograman FORTRAN) ataupun subprogram PROCEDURE (dalam Turbo PASCAL) yang keduanya memiliki banyak kemiripan dalam fungsinya sebagai subprogram yang tidak menyimpan nilai prosesnya dalam nama subprogram tersebut, melainkan dalam parameter/argumen (passing by parameter) yang berada dalam tanda kurung “(…)”.

Kuliah DASKOM. Dasar-Dasar Pemrograman dalam FORTRAN 77 dan Turbo PASCAL Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 37

Pemrogram FORTRAN:

1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 … … S U B R O U T I N E P L O T ( X , Y )

R E A L X R , Y R

I N T E G E R I , J

L O G I C A L P R O C E E D

C H A R A C T E R K E Y P R E S S E D

… … …

… … …

R E T U R N

E N D

Pemrogram Turbo PASCAL:

Procedure Plot(X,Y : Real); Var

Xr,Yr : Real; I,J : Integer; Proceed = Boolean; KeyPressed = Char;

Begin … … … … … … End;

Perhatikan juga dengan teliti dan seksama, cara-cara penulisan kedua jenis

subprogram tersebut, termasuk juga tanda-tanda bacanya. 4.5. Pemasukan Data melalui Papan Ketik

Hampir dalam setiap aktivitas pemrograman, pemasukan data (data entry) selalu mengambil bagian yang terpenting bahkan ditempatkan pada bagian hulu (di awal) program. Yang dimaksud dengan pemasukan data adalah memberikan atau mengumpankan satu atau beberapa nilai variabel ataupun konstanta yang digunakan suatu program sedemikian rupa sehingga program tersebut dapat dieksekusi atau berjalan sesuai dengan yang diinginkan.

Beberapa contoh tentang pemasukan data melalui papan ketik (keyboard) diberikan di bawah ini. Pemasukan data melalui papan ketik merupakan hal yang umumnya lebih disenangi, terutama oleh programer-programer pemula, selain

Page 10: DASKOM - Ringkasan Pemrograman Pascal dan Fortranstaff.ui.ac.id/system/files/users/setijo.bismo/material/... · program FORTRAN 77 dapat sangat besar, yang tentunya sangat bergantung

Kuliah DASKOM. Dasar-Dasar Pemrograman dalam FORTRAN 77 dan Turbo PASCAL Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 38

karena mudah dan kepraktisannya, juga karena sifat interaktifnya (maksudnya: pertanyaan atau sesuatu yang bersifat INPUT, yang terbaca di layar monitor, dapat langsung dijawab oleh sang programer melalui papan ketik).

Pemrogram FORTRAN:

1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 … … C M A S U K A N D A R I “ K E Y B O A R D “ :

C - - - > T A N P A A T R I B U T :

R E A D ( * , * ) N , X

C - - - > D E N G A N A T R I B U T :

W R I T E ( * , * ) ‘ J M L I T E R : ‘

R E A D ( * , * ) N

W R I T E ( * , * ) ‘ X - A W A L : ‘

R E A D ( * , * ) X

Pemrogram Turbo PASCAL:

{ Masukan dari “Keyboard”: } (* Tanpa atribut: : *) Readln(N,X); (* Dengan atribut: : *) Write(‘Jml Iter : ‘); Readln(N); Write(‘X-awal = ‘);

Readln(X);

… … …; … … …;

4.6. Pemasukan Data melalui File (Input Data File)

Pemasukan data melalui “file” (umumnya sebagai file ASCII yang sering disebut sebagai file TEXT) dilakukan sebagai alternatif dari pemasukan melalui papan ketik, terutama untuk proses-proses “data entry” (input data) yang berulang dan dalam jumlah yang besar sehingga memerlukan ketelitian dan kecermatan yang baik.

Kuliah DASKOM. Dasar-Dasar Pemrograman dalam FORTRAN 77 dan Turbo PASCAL Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 39

Beberapa contoh tentang pemasukan data melalui file diberikan di bawah ini. Perhatikanlah hal-hal yang mungkin penting sebagai pembelajaran dalam membuat program dalam bahasa FORTRAN ataupun Turbo PASCAL, terutama sintaks-sintaks kedua bahasa pemrograman ini.

Pemrogram FORTRAN:

1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 … … C M A S U K A N D A R I F I L E D A T A ,

C B E R U P A F I L E A S C I I ( T E X T ) :

O P E N ( 8 , F I L E = ‘ I N P . D A T ‘ )

R E A D ( 8 , * ) N , X

C L O S E ( 8 )

E N D

Pemrogram Turbo PASCAL:

{ Masukan dari “file” data, berupa file ASCII (TEXT): } Var FileData: Text; Begin … … … Assign(FileData,’INP.DAT’); Reset(FileData); … … …; Read(FileData, N, X); { atau Readln(FileData, N, X); } … … …; Close(FileData);

… … …; End.

Page 11: DASKOM - Ringkasan Pemrograman Pascal dan Fortranstaff.ui.ac.id/system/files/users/setijo.bismo/material/... · program FORTRAN 77 dapat sangat besar, yang tentunya sangat bergantung

Kuliah DASKOM. Dasar-Dasar Pemrograman dalam FORTRAN 77 dan Turbo PASCAL Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 40

4.7. Keluaran ke Monitor (Output to Monitor)

Baik dalam bahasa pemrograman FORTRAN 77 maupun Turbo PASCAL, keluaran atau pencetakan (output) hasil proses komputasi dirakukan secara otamatis (by default) pada layar monitor. Kecuali jika programer menghendaki alat keluaran/cetakan yang lain, maka format penulisan keluaran tersebut diberikan seperti di bawah ini.

Pemrogram FORTRAN:

1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 … … C C O N T O H K E L U A R A N O T O M A T I S

C K E L A Y A R M O N I T O R ( S C R E E N ) :

W R I T E ( * , * ) X , Y

W R I T E ( 5 , * ) ‘ H A S I L : ‘ , Z R

E N D

Pemrogram Turbo PASCAL:

{ Contoh keluaran otomatis, Ke LAYAR MONITOR (SCREEN): } Var X,Y,ZR: Real; {Variabel harus terdefinis…!}

Begin … … … Write(X,Y); Writeln; Writeln(‘Hasil: ‘,Xr); … … …; … … …; End.

Penulisan keluaran dalam FORTRAN menggunakan pengenal baku WRITE

selalu diikuti dengan karakter “ganti baris” (carriage return atau new line atau ENTER atau karakter ke 13 atau hex-0D dalam tabel ASCII). Sebaliknya, dalam Turbo PASCAL, penulisan menggunakan Write adalah tanpa carriage return sedangkan jika menggunakan Writeln akan diikuti dengan carriage return.

Kuliah DASKOM. Dasar-Dasar Pemrograman dalam FORTRAN 77 dan Turbo PASCAL Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 41

4.8. Keluaran atau Perekaman ke File (Save to File)

Beberapa contoh tentang keluaran data melalui file diberikan di bawah ini. Seperti juga telah dijelaskan pada paragraf 3.4.6. tentang pemasukan data dar file, maka pernyataan untuk keluarannya adalah hampir sama, hanya kecuali kebalikannya. Perhatikan juga hal-hal yang penting sebagai pembelajaran dalam membuat program dalam bahasa FORTRAN ataupun Turbo PASCAL.

Pemrogram FORTRAN:

1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 … … C K E L U A R A N P A D A F I L E T E X T

C A T A U F I L E A S C I I :

O P E N ( 9 , F I L E = ‘ O U T . D A T ‘ )

W R I T E ( 9 , * ) X R ,Y R

C L O S E ( 9 )

E N D

Pemrogram Turbo PASCAL:

{ Masukan pada “file text” atau file ASCII: } Var OutFile: Text; Begin … … …; Assign(OutFile,’INP.DAT’); Rewrite(OutFile); … … …; Write(OutFile, XR, YR); { atau Writeln(OutFile, Xr, Yr); } … … …; Close(OutFile);

… … …; End.

Page 12: DASKOM - Ringkasan Pemrograman Pascal dan Fortranstaff.ui.ac.id/system/files/users/setijo.bismo/material/... · program FORTRAN 77 dapat sangat besar, yang tentunya sangat bergantung

Kuliah DASKOM. Dasar-Dasar Pemrograman dalam FORTRAN 77 dan Turbo PASCAL Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 42

4.9. Keluaran atau Pencetakan ke Printer (Output Printing)

Pencetakan hasil program (termasuk juga komputasi numerik) ke dalam printer (mesin pencetak) memiliki format yang beragam. Namun, dalam paragram ini hanya akan dibahas yang berhubungan dengan pencetakan ke printer secara umum, terutama yang mengikuti format ASCII (terutama printer-printer “dot-matrix”, seperti: EPSON, SEIKO, HP, dan XEROX).

Di bawah ini, diberikan contoh program dalam FORTRAN 77 dan Turbo PASCAL yang berhubungan dengan pernyataan pencetakan ke printer.

Pemrogram FORTRAN:

1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 … … C C O N T O H K E L U A R A N D A N

C P E N C E T A K A N P A D A P R I N T E R :

O P E N ( 2 , F I L E = ‘ L P R : ‘ )

W R I T E ( 2 , * ) X R ,Y R

C L O S E ( 2 )

E N D

Pemrogram Turbo PASCAL:

{ Contoh KELUARAN dan PENCETAKAN pada printer: } Uses CRT; {atau WinCRT untuk MS-Windows} Begin … … …; Write(LST, XR, YR); { atau Writeln(LST, Xr, Yr); } … … …; … … …; End.

Kuliah DASKOM. Dasar-Dasar Pemrograman dalam FORTRAN 77 dan Turbo PASCAL Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 43

5. Pernyataan Kondisional IF

Pernyataan kondisional IF merupakan piranti program yang digunakan untuk menyatakan keadaan bersyarat, baik yang berbentuk tunggal maupun jamak.

5.1. Pernyataan Kondisional Tunggal (IF..THEN..)

Pernyataan kondisional IF…THEN… merupakan piranti program yang digunakan untuk menyatakan keadaan bersyarat tunggal, yaitu: dikerjakan (dieksekusi) jika pernyataan dalan IF bernilai “benar” (= true). Beberapa contoh tentang pernyataan-pernyataan kondisional tunggal ini adalah sbb:

if ( 0x ≤ ) then STOP

if ( 100iter > ) and ( 0p ≥ ) then p p h p= + ⋅

Pada pernyataan kondisional yang pertama, akan dilakukan penghentian (STOP dapat berarti menghentikan program secara keseluruhan) jika harga x ternyata mencapai 0 (nol) atau bahkan negatif. Sedangkan pada pernyataan kedua, ungkapan matematis p p h p= + ⋅ hanya akan dieksekusi jika kedua persyaratan ( 100iter > ) dan ( 0p ≥ ) dipenuhi.

Penulisan kedua pernyataan kondisional di atas ke dalam bahasa FORTRAN 77 dan Turbo PASCAL diberikan di bawah ini.

Pemrogram FORTRAN:

1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 … … C B E N T U K K O N D I S I O N A L T U N G G A L

C ( 2 C O N T O H D A L A M F O R T R A N ) :

R E A L H , P , X

I N T E G E R I T E R

I F ( X . L E . 0 . 0 ) S T 0 P

I F ( I T E R . G T . 1 0 0 ) . A N D .

* ( P . G E . 0 ) P = P + H * S Q R T

* ( P )

E N D

Page 13: DASKOM - Ringkasan Pemrograman Pascal dan Fortranstaff.ui.ac.id/system/files/users/setijo.bismo/material/... · program FORTRAN 77 dapat sangat besar, yang tentunya sangat bergantung

Kuliah DASKOM. Dasar-Dasar Pemrograman dalam FORTRAN 77 dan Turbo PASCAL Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 44

Pemrogram Turbo PASCAL:

{ Bentuk KONDISIONAL TUNGGAL } { 2 contoh dalam Turbo PASCAL) {semua variabel harus didefinisikan} Var H, p, x : Real; Iter : Integer;

… … …; If (x <= 0.0) then halt; {penggunaan HALT untuk pengganti STOP} If (Iter > 100) and (p >= 0) then p := p + h*sqrt(p); … … …;

End.

5.2. Pernyataan Kondisional 2 Kemungkinan (IF..THEN..ELSE..)

Pernyataan kondisional IF…THEN…ELSE.. merupakan perangkat program yang digunakan untuk menyatakan keadaan bersyarat dengan 2 (dua) kemungkinan, yaitu bila ada 2 kondisi berbeda yang dipersyaratkan, seperti diberikan berikut ini:

if ( 0x ≤ ) then STOP else 0.01z z= +

if () and ( 0p ≥ ) then p p h p= + ⋅ else 3p p h p= + ⋅

Pada pernyataan kondisional yang pertama, akan dilakukan penghentian (STOP) jika harga x ternyata mencapai 0 (nol) atau bahkan negatif, bila tidak maka akan dieksekusi pernyataan 0.01z z= + .

Pada pernyataan kondisional yang kedua, ungkapan p p h p= + ⋅ akan dieksekusi jika kedua persyaratan ( 100iter > ) dan ( 0p ≥ ) dipenuhi, jika tidak dapat dipenuhi (yaitu jika 100iter ≤ atau 0p < ) maka yang akan dipenuhi adalah pernyataan 3p p h p= + ⋅ .

Untuk memberikan gambaran yang lebih jelas dan komprehensif kepada para pembaca sekalian, maka contoh-contoh program di bawah ini diberikan dalam pemrograman FORTRAN dan Turbo PASCAL, khusus untuk pernyataan-pernyataan kondisional IF..THEN..ELSE.

Kuliah DASKOM. Dasar-Dasar Pemrograman dalam FORTRAN 77 dan Turbo PASCAL Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 45

Pemrogram FORTRAN:

1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 … … …

R E A L H , P , X

I N T E G E R I T E R

I F ( X . L E . 0 . 0 ) T H E N

S T 0 P

E L S E

Z = Z + 0 . 0 1

E N D I F

I F ( I T E R . G T . 1 0 0 ) . A N D .

* ( P . G E . 0 ) T H E N P = P + H

* * S Q R T ( P )

E L S E

P = P + H * S Q R T (P * * 3 )

E N D I F

E N D

Pemrogram Turbo PASCAL:

… … …; Var H, p, x : Real; Iter : Integer;

… … …; If (x <= 0.0) then halt else z := z + 0.01; If (Iter > 100) and (p >= 0) then p := p + h*sqrt(p) else P := p + h*sqrt(p*p*p); … … …;

End.

Page 14: DASKOM - Ringkasan Pemrograman Pascal dan Fortranstaff.ui.ac.id/system/files/users/setijo.bismo/material/... · program FORTRAN 77 dapat sangat besar, yang tentunya sangat bergantung

Kuliah DASKOM. Dasar-Dasar Pemrograman dalam FORTRAN 77 dan Turbo PASCAL Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 46

5.3. Pernyataan Kondisional Berganda

Di dalam pemrograman Turbo PASCAL, dikenal pernyataan case…of yang dapat digunakan untuk pernyataan kondisional bertingkat, terutama untuk tujuan pemeringkatan suatu kondisi yang cukup beragam.

Untuk memberi lebih kejelasan kepada pembaca sekalian, contoh program tentang aplikasi case of disajikan seperti berikut ini:

Uses CRT; {untuk MS-Windows, gunakan WinCRT) Var Berat, Harga, Harga_per_kg: Integer; Kualitas : Char; Begin ClrScr; Write(‘Masukkan Kualitas Barang (A/B/C/D): ‘); Readln(Kualitas); Write(‘Berat barang yang dibeli: ‘); Readln(Berat); Case Kualitas of ‘A’,’a’: Harga_per_kg := 1000; ‘B’,’b’: Harga_per_kg := 750; ‘C’,’c’: Harga_per_kg := 500; ‘D’,’d’: Harga_per_kg := 250 Else Begin Harga_per_kg := 0; Writeln(‘Salah memasukkan kategori..!’) End End; Harga := Harga_per_kg*Berat; Writeln(‘Harga per kg: Rp. ‘, Harga_per_kg); Writeln(‘Harga Total: Rp. ‘, Harga); End.

Di sisi lain, aplikasi pernyataan kondisional yang sejenis dengan case of

seperti di atas tidak dikenal dalam pemrograman FORTRAN 77. Sebagai informasi lanjutan, dalam FORTRAN 90 sebenarnya sudah dikenal pernyataan kondisional menggunakan kata pengenal case yang hampir sejenis dengan yang digunakan oleh Turbo PASCAL. Namun, karena dalam diktat ini hanya dijelaskan sari-sari pemrogram menggunakan bahasa pemrograman FORTRAN 77, maka pembahasan lebih jauh dengan FORTRAN 90 tidak akan dilakukan disini.

Kuliah DASKOM. Dasar-Dasar Pemrograman dalam FORTRAN 77 dan Turbo PASCAL Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 47

Dalam hal ini, diperlukan sedikit modifikasi dalam traduksi (penterjemahan) program Turbo PASCAL di atas ke dalam bahasa pemrograman FORTRAN 77, seperti disajikan berikut ini.

1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 … … I N T E G E R B E R A T , H A R G A , H A R G

* A _ P E R _ K G

C H A R A C T E R K L T A S

W R I T E ( * , * ) ‘ M A S U K K A N K U A L

* I T A S B A R A N G ( A / B / C / D ) : ‘

R E A D ( * , * ) K L T A S

W R I T E ( * , * ) ‘ B E R A T B A R A N G

* Y A N G D I B E L I : ‘

R E A D ( * , * ) B E R A T

I F ( K L T A S . E Q . ‘ A ‘ ) . O R . ( K U A

* L I T A S . E Q . ‘ a ‘ ) T H E N

H A R G A _ P E R _ K G = 1 0 0 0

E L S E I F ( K L T A S . E Q . ‘ B ‘ ) . O R

* . ( K U A L I T A S . E Q . ‘ b ‘ ) T H E N

H A R G A _ P E R _ K G = 7 5 0

E L S E I F ( K L T A S . E Q . ‘ C ‘ ) . O R

* . ( K U A L I T A S . E Q . ‘ c ‘ ) T H E N

H A R G A _ P E R _ K G = 5 0 0

E L S E I F ( K L T A S . E Q . ‘ D ‘ ) .

* O R . ( K U A L I T A S . E Q . ‘ d ‘ ) T H E N

H A R G A _ P E R _ K G = 2 5 0

E L S E

H A R G A _ P E R _ K G = 0

W R I T E ( * , * ) ‘ S A L A H ! ‘

E N D I F

H A R G A = H A R G A _ P E R _ K G * B E R A T

W R I T E ( * , * ) ‘ H a r g a p e r k g :

* R p . ‘ , H A R G A _ P E R _ K G

W R I T E ( * , * ) ‘ H a r g a T o t a l :

R p . ‘ , H A R G A

E N D

Page 15: DASKOM - Ringkasan Pemrograman Pascal dan Fortranstaff.ui.ac.id/system/files/users/setijo.bismo/material/... · program FORTRAN 77 dapat sangat besar, yang tentunya sangat bergantung

Kuliah DASKOM. Dasar-Dasar Pemrograman dalam FORTRAN 77 dan Turbo PASCAL Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 48

6. Pernyataan Iterasi Suksesif

Pernyataan iterasi adalah perangkat atau kelengkapan program yang digunakan untuk melakukan suksesi penambahan atau pengurangan nilai suatu variabel dalam program. Baik dalam pemrograman FORTRAN 77 maupun Turbo PASCAL, dikenal beberapa macam pernyataan suksesif, seperti diuraikan pada paragraf-paragraf 3.6.1. dan 3.6.2. di bawah ini.

6.1. Pernyataan Iterasi DO atau FOR…DO

Merupakan pernyataan iteratif yang digunakan untuk melakukan suksesi penaikan atau penurunan nilai suatu variabel secara beraturan berdasarkan deret aritmatika.

Pemrogram FORTRAN:

1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 … … C C O N T O H P R O G R A M D O I T E R A S I

D O I = 1 , N E Q

D O J = 1 , N E Q

A ( I , J ) = 0 . 0

E N D D O

B ( I ) = 0 . 0

E N D D O

Pemrogram Turbo PASCAL:

{ Contoh Program Iterasi FOR…DO } { Variabel-variabel A,B,I,J,NEQ harus terdefinisi } … … …; For I:=1 to NEQ do Begin For J:=1 to NEQ do A[I,J] := 0.0; B[I] := 0.0; End; … … …;

Kuliah DASKOM. Dasar-Dasar Pemrograman dalam FORTRAN 77 dan Turbo PASCAL Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 49

6.2. Pernyataan Iterasi DO…WHILE atau WHILE…DO

Merupakan pernyataan iteratif yang digunakan untuk melakukan suksesi penaikan atau penurunan nilai suatu variabel secara beraturan berdasarkan deret aritmatika. Pernyataan DO…WHILE (dalam Turbo PASCAL: While do) ini mirip dengan pernyataan DO-iterasi, kecuali variabel pengendalinya (yang dijadikan syarat berlangsungnya iterasi) melakukan penambahan nilai di tengah operasi pernyataan ini (antara DO…WHILE dan END DO).

Sebagai ilustrasi dari aplikasi pernyataan DO…WHILE ini, di bawah ini diberikan contoh-contoh programnya, baik dalam FORTRAN 77 maupun dalam Turbo PASCAL.

Pemrogram FORTRAN:

1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 … … C C O N T O H P R O G R A M W H I L E … D O :

I = 0

D O W H I L E ( I . L T . 1 0 0 )

I = I + 1

R E A D ( * , * ) B ( I )

Q ( I ) = I * I - S Q R T ( I )

E N D D O

Pemrogram Turbo PASCAL:

{ Contoh Program Iterasi WHILE…DO } { Variabel-variabel B,I,Q harus terdefinisi } … … …; I := 0; While (I < 100) do Begin I := I + 1; {dapat juga ditulis: Succ(I);} Readln(B[I]); Q[I] := I*I – Sqrt(I); End; … … …;

Page 16: DASKOM - Ringkasan Pemrograman Pascal dan Fortranstaff.ui.ac.id/system/files/users/setijo.bismo/material/... · program FORTRAN 77 dapat sangat besar, yang tentunya sangat bergantung

Kuliah DASKOM. Dasar-Dasar Pemrograman dalam FORTRAN 77 dan Turbo PASCAL Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 50

6.3. Pernyataan Iterasi REPEAT…UNTIL

Pernyataan REPEAT…UNTIL merupakan pernyataan khas dari bahasa pemrograman Turbo PASCAL, yang tidak dijumpai dalam bahasa pemrograman FORTRAN. Pernyataan ini digunakan untuk melakukan suatu proses iterasi (pengulangan) yang syarat penghentian prosesnya berada di bagian akhir dari blok pernyataan ini (yaitu di depan atau setelah kata UNTIL).

Di bawah ini diberikan suatu contoh penggaalan program dalam Turbo PASCAL tentang aplikasi REPEAT…UNTIL, yang mungkin dapat dijadikan referensi oleh pembaca sekalian dalam membuat atau menulis program-program numerik dalam bahasa Turbo PASCAL.

{ Contoh Program Iterasi REPEAT…UNTIL } { Variabel-variabel B,I,Z harus terdefinisi } … … …; I := 100; Repeat B[I] := I*I – 5.0; Writeln(‘B[‘,I,’] = ‘,B[I]); Z[I] := Sqr(I) – B[I]*I/2.0; B[I] := B[I] + B[I]*Z[I] – I*I/3 Writeln(‘B[‘,I,’] = ‘,B[I]); Writeln(‘Z[‘,I,’] = ‘,Z[I]); I := I - 1; {dapat juga ditulis: Pred(I);} Until (I < 1); … … …;

Berhubung pernyataan perangkat pemrograman REPEAT...UNTIL tidak

dijumpai dalam bahasa pemrogram FORTRAN secara umum, maka kita perlu melakukan suatu modifikasi program sedemikian rupa sehingga dapat memiliki suatu program yang dapat dikatakan ekivalen dengan homolognya dalam pemrograman Turbo PASCAL.

Di bawah ini diberikan suatu bentuk modifikasi yang relatif sederhana tentang modifikasi REPEAT…UNTIL yang ditujukan untuk mencari kesamaan fungsi dari listing program Turbo PASCAL seperti di atas. Perhatikan dengan cermat dan seksama beberapa hal yang sama fungsinya, juga hal-hal lain yang fungsinya tidak sama dan atau sebaliknya, mengalami pergeseran fungsi.

Kuliah DASKOM. Dasar-Dasar Pemrograman dalam FORTRAN 77 dan Turbo PASCAL Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 51

1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 … … C C O N T O H E K I V A L E N P R O G R A M

C R E P E A T … U N T I L D A L A M F O R T R A N

C C A T A T A N :

C J A N G A N L U P A U N T U K M E N -

C D E K L A R A S I V A R I A B E L Y A N G

C D I G U N A K A N !

I = 1 0 0

D O W H I L E ( I . G E . 1 )

B ( I ) = I * I - 5 . 0

W R I T E ( * , * ) ‘ B ( ‘ , I ,

* ‘ ) = ‘ , B ( I )

Z ( I ) = I * I - B ( I ) * I / 2 . 0

B ( I ) = B ( I ) + B ( I ) * Z ( I )

* - I * I / 3 . 0

W R I T E ( * , * ) ‘ B ( ‘ , I ,

* ‘ ) = ‘ , B ( I )

W R I T E ( * , * ) ‘ Z ( ‘ , I ,

* ‘ ) = ‘ , Z ( I )

I = I - 1

E N D D O

Sesungguhnya ada beberapa variasi modifikasi program dari pernyataan

REPEAT…UNTIL dalam pemrograman Turbo PASCAL, dan penulisan program di atas adalah salah satunya. Namun, dalam hal ini pembaca perlu juga memikirkan program ekivalensi yang lainnya dalam pemrograman FORTRAN 77. Cobalah usulkan program tersebut !