You are on page 1of 32

Teknik Sipil Pemrograman Komputer

Pendahuluan
Pemrograman komputer adalah perpaduan antara ilmu-pengetahuan dan seni. Suatu program komputer mungkin dapat bekerja dengan baik - mungkin memberikan hasil yang benar dengan batasan-batasan yang diberikan tetapi juga 'dengan canggung' dapat dikurangi, atau 'kepintaran-nya dapat ditingkatkan setiap kali seorang programmer-ahli (expert) mengambil suatu gaya baru. Keberadaan berbagai jenis komputer dan bahasa komputer kemudian mempersulit tugas/tampilan beberapa program komputer. Pembelajaran tentang 'pemrograman-komputer' ini, ditujukan bagi pebelajar yang kurang lebih telah memahami dasar-dasar 'sistem-operasi' DOS/Windows. Pembelajaran mencakup bahasa pemrograman (berbasis DOS) BASIC, FORTRAN, dan Pascal. Tidak semua elemen dari ketiga bahasa tersebut di uraikan, tetapi minimal dapat mengenal bahasa -pemrograman ini dengan aturan-aturan dasarnya secara umum. Uraian lengkap dapat di lihat pada manual dari Compiler bahasa -nya. Tampilan hasil program masih konvensional (output pada konsol), dengan menggunakan program bantu Crimson-Editor (for Windows) Ingyu Kang, ketiga compiler dapat kita konfigurasikan dengan editor ini, selanjutnya ketiga bahasa dapat dituliskan dan dipelajari dalam satu editor. Untuk kalangan teknik sipil, banyak penulis telah menyertakan contoh program di dalam bukunya , mungkin hal itu dapat meningkatkan 'minat' siswa untuk belajar mengenal bahasa pemrograman .

Saran:

Pada 'tahap awal' belajarlah 'satu bahasa' saja.


1

Teknik Sipil Pemrograman Komputer

Ms-QuickBASIC, Ms-FORTRAN dan TurboPASCAL


1. File batch untuk Ms-QuickBASIC Buat file baru pada Crimson-Editor (pada Menu FileNew), dan ketik:
@echo off echo. BC %1.BAS /E/V/W/X/O/T/C:512; if not errorlevel 1 goto Linking goto Quit :Linking LINK /EX /NOE /NOD:BRUN45.LIB %1,,,BCOM45+QB; if not errorlevel 1 goto Run goto Quit :Run FOR %%A IN (*.MAP *.OBJ) DO DEL %%A > NUL %1.exe :Quit 2

Konfigurasi Crimson-Editor untuk Compiler:

Save-As File dengan nama

cBAS.CMD
Simpan pada Folder C:\BK31\QB45

Teknik Sipil Pemrograman Komputer

Ms-QuickBASIC, Ms-FORTRAN dan TurboPASCAL


2. File batch untuk Ms-FORTRAN Buat file baru pada Crimson-Editor (seprerti cara sebelumnya):
@echo off echo. FL /4Nt %1.FOR if not errorlevel 1 goto Run goto Quit :Run IF EXIST %1.OBJ DEL %1.OBJ > NUL %1.exe :Quit

Konfigurasi Crimson-Editor untuk Compiler:

Save-As File dengan nama

cFOR.CMD
Simpan pada Folder C:\BK31\FOR51
3

Teknik Sipil Pemrograman Komputer

Ms-QuickBASIC, Ms-FORTRAN dan TurboPASCAL


3. File batch untuk TurboPASCAL Buat file baru pada Crimson-Editor:
@echo off echo. TPC D+ %1.PAS if not errorlevel 1 goto Run goto Quit :Run %1.exe :Quit

Konfigurasi Crimson-Editor untuk Compiler:

Save-As File dengan nama

cPAS.CMD
Simpan pada Folder C:\BK31\TP70\BIN
4

Teknik Sipil Pemrograman Komputer

Ms-QuickBASIC, Ms-FORTRAN dan TurboPASCAL


Setelah ketiga file (cBAS.cmd, cFOR.cmd, dan cPAS.cmd) di buat, selanjutnya kita mengkonfigurasi Crimson Editor dengan ke tiga file CMD tersebut. Pada menu Tools di CE, pilih sub-menu Conf. User Tools (lihat Gambar)

Konfigurasi Crimson-Editor untuk Compiler:

Teknik Sipil Pemrograman Komputer

Akan tampak jendela seperti pada Gambar. Klik pada bagian User Tools dengan Hot-Key: Ctrl+1 Ketik teks BASIC pada bidang Menu Text Ketik pada bidang Command C:\BK31\QB45\cBAS.cmd Klik tombol pada bagian kanan bidang Argument, Klik File Title Klik tombol pada bagian kanan bidang Initial Dir, Klik File Directory Klik/Hilangkan tanda pada bagian Close on exit

Teknik Sipil Pemrograman Komputer

Dengan cara yang sama dapat dibuat konfigurasi untuk FORTRAN dan PASCAL. Tahap akhir adalah dengan menyimpan setting yang dibuat dengan meng-klik tombol Save Tools, dan berikan nama sesuai keinginan. Sewaktu-waktu jika konfigurasi dibutuhkan setelah ada konfigurasi baru lain yang dibuat, kita dapat mengklik tombol Load Tools, dan memilih kembali konfigurasi tersebut.

Teknik Sipil Pemrograman Komputer

Setelah konfigurasi BASIC, FORTRAN, dan PASCAL dibuat, pada jendela utama menu Tools akan tampak gambar seperti berikut: Dengan konfigurasi ini, ketiga jenis program yang dibuat dari bahasa BASIC, FORTRAN dan PASCAL dapat di Compile/Run melalui Crimson Editor dengan menekan tombol keyboard: Ctrl+1 Ctrl+2 Ctrl+3 ( BASIC ) ( FORTRAN ) ( PASCAL )

Teknik Sipil Pemrograman Komputer

Struktur Program Dasar (BASIC, FORTRAN, dan Pascal) Setiap bahasa pemprograman mempunyai beberapa istilah/kata penting yang disebut keywords. Pada beberapa jenis editor keywords akan ditandai dengan warna berbeda. Dalam pembahasan ini keywords pada BASIC, FORTRAN, dan Pascal berwarna biru. Struktur program dasar dari ketiga bahasa dapat dilihat pada tabel berikut:

Ms-QuickBASIC

Ms-FORTRAN

TurboPascal

[daftar variabel] [statement-1] [statement-2] [statement-n] END

C234567 [PROGRAM Utama] [daftar variabel] [statement-1] [statement-2] [statement-n] END

[PROGRAM Utama;] [daftar variabel] Begin [statement-1;] [statement-2;] [statement-n;] End.

Teknik Sipil Pemrograman Komputer

Format Penulisan Program


Ms-QuickBASIC
Format penulisan bebas: Pemrogram dapat menuliskan programnya dibagian mana saja pada layar editor. Penulisan komentar program menggunakan karakter aposothrope (kutip tunggal) atau dengan menggunakan statement REM di awal komentar. Dengan karakter komentar dapat ditulis dibagian akhir suatu baris program, REM hanya boleh ditempatkan pada awal dari suatu baris komentar.

Ms-FORTRAN
Format penulisan dengan format kolom dan format bebas. Untuk format kolom: Kolom 1-5 untuk no.label program Kolom 6 untuk tanda penghubung baris program yang di tulis lebih dari 1 baris. Kolom 7-72 untuk penulisan program Kolom 73-80 untuk dokumentasi Komentar harus di awali dengan karakter , c, atau C pada kolom-1. Untuk format bebas harus digunakan metacommand $FREEFORM di awal program. Komentar harus di awali karakter (kutip ganda) pada kolom-1 Karakter ! digunakan sebagai awal komentar pada bagian akhir baris program.

TurboPascal
Format penulisan bebas. Komentar program harus diawali dengan dua karakter ( dan diakhiri dengan dua karakter ) Dua karakter ini tidak boleh diantarai oleh karakter lain. Komentar program juga dapat diawali karakter { dan diakhir karakter }.

10

Teknik Sipil Pemrograman Komputer

Format Penulisan Program ( lanjutan . . . )


Ms-QuickBASIC
Menulis dua statement dalam satu baris harus dipisahkan dengan karakter : (titik dua). Dengan editor lain, karakter underscore _ (garis bawah) pada akhir baris program sebagai tanda bahwa baris berikutnya adalah lanjutan dari baris tersebut. Label dapat berupa karakter alphabetik, numerik integer, atau alphanumerik. Label alphanumerik harus diawali dengan huruf dan diakhiri karakter titik dua :

Ms-FORTRAN
Setiap statement harus ditulis dalam satu baris. Penulisan statement yang melebihi kolom 72, dapat dilanjutkan ke baris berikutnya, dengan memberi tanda satu karakter pada kolom ke-6 pada baris lanjutan tersebut. Karakter pada kolom ke-6 ini dapat berupa semua karakter yang ada, kecuali angka nol, atau spasi. Nomor label pada kolom 1-5 adalah suatu angka bulat (integer) 1 sampai 99999. Penulisan no.label tidak harus berurut.

TurboPascal
Beberapa statement dapat ditulis dalam satu baris. Karakter titik-koma ; sebagai akhir dari suatu statement. Statement End pada akhir program utama diakhiri tanda titik, spt: End. Label didefenisikan dengan menuliskan statement label. Label 10, lanjut; goto 10; statement; 10: writeln; Penulisan label sama dgn BASIC.

Penulisan statement atau variabel dengan huruf besar (uppercase), maupun huruf kecil (lowercase), memiliki arti yang sama pada ke-tiga jenis bahasa pemrograman ini, pada bahasa C/C++, nama variabel bersifat case-sensitive.

11

Teknik Sipil Pemrograman Komputer

Himpunan karakter ( Character Set )


Ms-QuickBASIC
Karakter alphabetik AZ, az Karakter numerik 09, AF, af Karakter khusus * simbol perkalian + tanda positif tanda negatif . desimal / simbol pembagian < lebih kecil dari = simbol operator-relasi atau operator penugasan > lebih besar dari \ simbol pembagian bil.bulat ^ simbol perpangkatan/eksponen ! akhiran tipe data single-precision # akhiran tipe data double-precision $ akhiran tipe data string % akhiran tipe data integer & akhiran tipe data long-integer

Ms-FORTRAN
Karakter alphabetik AZ, az Karakter numerik 09 Karakter khusus *|+| |. | / BASIC ** simbol pangkat/exponent = operator penugasan/assignment Karakter untuk format data I, F format data Integer, Real E format data Real/eksponen D format data Real Double-precision L format data Logika A format data Karakter/String / format karakter Enter X format karakter spasi $, \ format input data

TurboPascal
Karakter alphabetik A-Z, a-z Karakter numerik 0-9 Karakter khusus *|+| |. | / |< | > BASIC := statement penugasan [ ] pembatas nilai array . . tanda batasan nilai array Karakter prefix/suffix bilangan $ awalan bil. heksa-desimal B akhiran bil. biner O akhiran bil. oktal H akhiran bil. Heksa-desimal Karakter untuk format data :

12

Teknik Sipil Pemrograman Komputer

Struktur Program ( lanjutan . . . )


Ms-QuickBASIC
Declare . . . DEFtype . . . Const . . . Option Base n Dim . . . AS type Common . . . Static . . . Shared . . . Type . . . ... End Type statement ... End sub program def. tipe data konstanta bts.bwh array def. variabel var. global antar modul var. statis var. global awal blok type daftar variabel akhir blok type statement BASIC akhir program

Ms-FORTRAN
Program . . . Implicit . . . Parameter . . . Real . . . Integer . . . Character . . . Logical . . . Dimension . . . Double Precision . . . Common . . . Data . . . statement ... End Subroutine . . . ! ! ! ! ! ! ! ! ! ! nama program def. tipe data konstanta var. bil. real var. bil. bulat var. string var. logika var. array var. presisi ganda var. global

TurboPascal
Program . . . ; Uses . . . ; Const . . . ; Label . . . ; Type . . . ; Var . . . ; Procedure . . . ; Function . . . ; { { { { { { nama program } klausa uses } konstanta } label } def. tipe data} variabel }

{ prosedur } { fungsi }

! data program ! statement ! FORTRAN ! akhir program ! sub program

Begin
statement ; ... End. { statement-Pascal} { akhir prg.utama }

13

Teknik Sipil Pemrograman Komputer

Struktur Program ( lanjutan . . . )


Ms-QuickBASIC
Declare Sub S1 Declare Function F1
Blok program utama

Ms-FORTRAN
Program Utama
Blok program utama

TurboPascal
Program Utama; ... Procedure S1( ); Begin
prosedur S1

End Sub S1( )


Blok sub program S1

sub program fungsi awal prg.utama dapat memanggil S1 dan F1 akhir prg.utama awal Sub S1 dapat memanggil fungsi F1 akhir Sub S1 awal fungsi F1 dapat memanggil Sub S1 akhir fungsi F1

! awal prg.utama ! dapat memanggil ! S1 dan F1 ! akhir prg.utama ! awal Subrutin S1 ! dapat memanggil ! fungsi F1 ! akhir Subrutin S1 ! awal fungsi F1 ! dapat memanggil ! Sub S1 ! akhir fungsi F1

{ nama prog. utama } { awal Prosedur S1 } { Begin prosedur S1 }

End Subroutine S1( )


Blok Subrutin S1

End;
Function F1( ) : type; Begin
fungsi F1

{ End prosedur S1 }
{ { { { { { { { { awal Fungsi F1 } Begin Fungsi F1 } dapat memanggil } prosedur S1 } End Fungsi F1 } Begin prog.utama } dapat memanggil } S1 dan F1 } End prog.utama }

End Sub Function F1( ) As type


Blok fungsi F1

End type Function F1( )


Blok fungsi F1

End;
Begin
prog. utama

End Function

End

End.

14

Teknik Sipil Pemrograman Komputer

Ekspresi/Ungkapan dan Operator


Ms-QuickBASIC Ms-FORTRAN TurboPascal

Suatu ekspresi/ungkapan terdiri atas operand dan operator, operand dapat berupa ekspresi karakter/string, konstanta numerik, variabel, atau suatu nilai yang diperoleh dari kombinasi konstanta, variabel dan ekspresi lain dengan operator, atau operand dapat berupa suatu fungsi standar pada bahasa bersangkutan. Operator Aritmatika ^ * / \ + mod mod = sisa bagi Contoh: 19 mod 6.7 = 5 Operator Relasi/Hubungan = <> < > <= >= Hasil berupa tipe Logika: bukan nol = benar, nol = salah output BASIC: 1 = benar, 0 = salah Operator Logika
NOT AND OR XOR EQV IMP

Operator Aritmatika ** * / + Menghitung sisa-bagi digunakan fungsi mod(arg1, arg2)

Operator Aritmatika * / div + mod div = pembagian bil. Bulat K mod J = K (K div J) * J Menghitung pangkat dua digunakan fungsi Sqr(x) Operator Relasi/Hubungan = <> < > <= >= Hasil berupa tipe Logika: bukan nol = benar, nol = salah output Pascal: TRUE /1 = benar, FALSE/0 = salah Operator Logika/Boolean

Operator Relasi/Hubungan

.EQ. .NE. .LT. .GT. .LE. .GE. Hasil berupa tipe Logika: .TRUE. = benar, .FALSE. = salah

output FORTRAN: T = benar, F = salah Operator Logika


.NOT. .AND. .OR. .XOR. .EQV. .NEQV.

not and or xor

15

Teknik Sipil Pemrograman Komputer

Tipe Data
Ms-QuickBASIC
Tipe Data Suffix
INTEGER LONG SINGLE DOUBLE STRING*n | | | | | % & ! # $

Ms-FORTRAN
Tipe Data
IMPLICIT type (v...) INTEGER*1 (Byte) INTEGER*2 INTEGER [*4] REAL [*4] REAL*8 DOUBLE PRECISION COMPLEX [*8|*16] DOUBLE COMPLEX LOGICAL [*1|*2|*4] CHARACTER [*n] -128 ~ 127 -32768 ~ 32767 2.1E+9 ~ 2,1E+9 1,4E-45 ~ 3.4E+38 2,2D-308~ 1.8D+308 REAL*8 REAL [*4 | *8] COMPLEX*16 n = 1 ~ 32767

TurboPascal
Tipe Data
Shortint Byte Integer Word Longint Real Single Double Extended Comp String | String[ ] Boolean Char Set

Setiap bahasa pemrograman mempunyai tipe/jenis data dan batasan/rentang dari tipe data tersebut. Batasan
-32767 ~ 32767 -2.1E+9 ~ 2,1E+9 1,4E-45 ~ 3.4E+38 4,9D-324~ 1.8D+308 0 ~ 32767 v adalah huruf awal dari nama variabel yg diantarai dengan koma, dan dapat ditulis dgn cara, spt: AZ (variabel dgn huruf awal A s/d var. dgn huruf awal Z).

Batasan

Batasan
-128 ~ 127 0 ~ 255 -32768 ~ 32767 0 ~ 65535 2.1E+9 ~ 2,1E+9 2.9e-39 ~ 1.7e38 1.5e-45 ~ 3.4e38 5.0e-324 ~ 1.7e308 3.4e-4932 ~ 1.1e4932 -9.2e18 ~ 9.2e18 1 ~ 255

Tipe dengan DEF DEFINT v, . . . DEFLNG v, . . . DEFSNG v, . . . DEFDBL v, . . . DEFSTR v, . . .

User define

di buat pemrogram

User define

di buat pemrogram

User define

di buat pemrogram

16

Teknik Sipil Pemrograman Komputer

Pendeklarasian Konstanta, Variabel dan Data-program menurut Tipe Data


Ms-QuickBASIC
DEFINT IN DEFSNG AH, OZ CONST PI = 3.14159265, TRUE = 1 DIM P AS SINGLE, Q AS SINGLE DIM I AS INTEGER, J AS INTEGER DIM Vektor(1 TO 10) AS SINGLE DIM Nama AS STRING*15 DIM Lagi AS STRING*1 DIM X(1 TO 3) AS SINGLE DIM Y(1 TO 3) AS SINGLE

Ms-FORTRAN
IMPLICIT INTEGER (IN) IMPLICIT REAL (AH, OZ) PARAMETER REAL INTEGER LOGICAL DIMENSION CHARACTER (PI = 3.14159265) P, Q I, J Oke, Error Vektor(10), X(3) , Y(3) Nama*15, Lagi ! data X ! data Y

TurboPascal

DATA 0.0, 2.5, 3.5 DATA 2.1, 4.2, 5.2

data X data Y

DATA X / 0.0, 2.5, 3.5 / DATA Y / 2.1, 4.2, 5.2 /

Const EBaja = 2100000; Var P, Q : Real; I, J : Integer; Oke, Error : Boolean; Vektor : Array[1..10] of Real; Nama : String[15]; Lagi : Char; Const X : Array[1..3] of Real = (0.0, 2.5, 3.5); Y : Array[1..3] of Real = (2.1, 4.2, 5.2);

Oke = TRUE : Lagi = TRUE Statement DATA selalu berpasangan dengan statement READ Dua baris statement IMPLICIT di atas adalah default pada FORTRAN

17

Teknik Sipil Pemrograman Komputer

Proses Input/Output ( I/O )

Ms-QuickBASIC
PRINT [ daftareksp ] [ { , | ; } ] PRINT USING formatstr; daftareksp [ { , | ; } ] INPUT [ ; ] [ promptstr { ; | , } ] daftar-var LINE INPUT [ ; ] [ promptstr ; ] varstr Formatstring untuk data numerik # mewakili setiap dgit angka . titik desimal ^^^^ format eksponen E+^^ +| tanda positif atau negatif ** | $$ mencetak tanda * atau $ *$$ kombinasi tanda * dan $ , tanda koma untuk angka seribuan _ data berikutnya adalah literal Formatstring untuk data string ! mencetak karakter pertama string \ \ mencetak 2+n (n=spasi) & mencetak semua bidang-data string

Ms-FORTRAN
PRINT { *, | formatspec } [, dftr-io] WRITE (unitspec, formatspec) dftr-io READ (unitspec, formatspec) dftr-io label FORMAT(daftar-edit) Formatspec untuk tipe data Iw[.m] bilangan bulat/Integer Fw.d bilangan real Ew.d[Ee] bilangan real eksponen Dw.d real double-precision A[w] data karakter/string Lw tipe data Logika Ket: m = jumlah digit nol w = lebar data d = jum. digit setelah titik desimal e = eksponen Formatspec umum \ | $ mencetak tanpa Enter X mencetak spasi / sama dengan ENTER

TurboPascal
Writeln ( V1 [, V2, ... , Vn ] ) ; Write ( V1 [, V2, ... , Vn ] ) ; Readln ( V1 [, V2, ... , Vn ] ) ; Read ( V1 [, V2, ... , Vn ] ) ; Format Output data numerik Writeln ( [ . . . . ,] V : w : d ) ; Format Intput data Write ( . . . . . . ) ; Ket: V = variabel w = lebar data d = jum. digit setelah titik desimal Write dan Read umum digunakan dalam menulis dan membaca data pada media berupa file.

18

Teknik Sipil Pemrograman Komputer

Proses Pengulangan ( Looping )

Ms-QuickBASIC
FOR var = awal TO akhir [ STEP inc ] [ statement ] [ EXIT FOR ] Keluar dari FOR..NEXT [ statement ] NEXT [ var [ , var . . . ] ] DO [ { WHILE | UNTIL } eks-logika ] [ statement ] [ EXIT DO ] Keluar dari DO..LOOP [ statement ] LOOP DO [ statement ] [ EXIT DO ] Keluar dari DO..LOOP [ statement ] LOOP [ { WHILE | UNTIL } eks-logika ] WHILE kondisi [ statement ] WEND

Ms-FORTRAN
DO [ label [,] ] dovar = awal, akhir [, inc] [ statement ] [ CYCLE ] ! Ke awal DO Loop [ EXIT ] ! Keluar dari DO Loop [ statement ] label CONTINUE | END DO DO [ label [, ] ] WHILE ( eks-logika ) [ statement ] [ CYCLE ] ! Ke awal DO Loop [ EXIT ] ! Keluar dari DO Loop [ statement ] label CONTINUE | END DO

TurboPascal
While eks-logika Do statement ; While eks-logika Do Begin statement ; . . . ; [ break; | continue; ] . . . ; End; For var := awal To akhir Do statement ; For var := awal DownTo akhir Do Begin statement ; . . . ; [ break; | continue; ] . . . ; End; Repeat statement ; [ break; | continue; ] . . . ; Until eks-logika;

19

Teknik Sipil Pemrograman Komputer

Pengambilan Keputusan ( Decision Making )

Ms-QuickBASIC
IF eksp-logika THEN bgn-then [ ELSE bgn-else ] IF eksp-logika1 THEN [ blok-statement-1 ] [ ELSE IF eksp-logika2 THEN [ blok-statement-2 ] ] ... [ ELSE [ blok-statement-n ] ] END IF SELECT CASE test-ekspresi [ CASE daftar-ekspresi1 ] [ blok-statement-1 ] [ CASE daftar-ekspresi2 [ blok-statement-2 ] ] . . . [ CASE ELSE [ blok-statement-n ] ] END SELECT

Ms-FORTRAN
IF ( eksp-logika ) statement IF ( eksp-logika1 ) THEN [ blok-statement-1 ] [ ELSE IF ( eksp-logika2 ) THEN [ blok-statement-2 ] ] ... [ ELSE [ blok-statement-n ] ] END IF SELECT CASE ( test-ekspresi ) [ CASE ( daftar-ekspresi1 ) [ blok-statement ] [ CASE ( daftar-ekspresi2 ) [ blok-statement-2 ] ] . . . [ CASE DEFAULT [ blok-statement-n ] ] END SELECT

TurboPascal
If eksp Then statement ; If eksp Then Begin statement ; . . .; End; If eksp Then statement ; Else statement ; If eksp Then Begin statement ; . . .; End Else Begin statement ; . . .; End; { Ket: eksp adalah suatu ekspresi-logika } Case test-ekspresi Of daftar-ekspresi1: statement ; ... daftar-ekspresi2: statement ; [ Else statement ; ] End;

20

Teknik Sipil Pemrograman Komputer

Operasi Matematika
Ms-QuickBASIC
Operasi x , | x | Min, Maks Sine, Cosine x Tangent x ArcTangent x Eksponen (e x) e Log x Pembulatan x Konv. ke Integer Konv. ke Real
10 Log x

Ms-FORTRAN
Operasi x , | x | Min, Maks Sine, Cosine x Tangent x Arc-SCT x Cotangent HyperbolycSCT Eksponen (e x) e Log x 10 Log x Pembulatan x Pembulatan x Konv. ke Integer Konv. ke Real Fungsi SQRT(x), ABS(x) MIN(), MAX() SIN(x), COS(x) TAN(x) A{SIN|COS|TAN}(x) COTAN(x) {SIN|COS|TAN}H(x) EXP(x) LOG(x) LOG10(x) {A|D}INT(x) {A|D}NINT(x) {NINT|IDNINT}(x) INT(x) | IFIX(x) REAL(x) | FLOAT(x) Operasi , x , | x | Min, Maks Sine, Cosine x ArcTangent Eksponen (e x) e Log x Nilai pecahan Pembulatan x Pembulatan x Pembulatan x xn Tan(x) ArcSin(x) ArcCos(x) 10 Log x

TurboPascal
Fungsi Pi , Sqrt (x), Abs (x) Min (), Max () Sin (x), Cos (x) ArcTan (x) Exp (x) Ln (x) Frac (x) Trunc (x) Round (x) Int (x) Exp (n * Ln(x)) Sin (x) / Cos(x) ArcTan (x/Sqrt (1Sqr(x))) ArcTan (Sqrt (1Sqr(x)) / x) Ln(x) / Ln(10)

Fungsi SQR(x), ABS(x) MIN(), MAX() SIN(x), COS(x) TAN(x) ATN(x) EXP(x) LOG(x) INT(x) | FIX(x) CINT(x) | CLNG(x) CSNG(x) | CDBL(x) LOG(x)/LOG(10.#)

21

Teknik Sipil Pemrograman Komputer

Sub Program
Ms-QuickBASIC Ms-FORTRAN TurboPascal

Semua bahasa pemrograman memiliki prosedur/modul-modul program bawaan yang telah siap digunakan, modul program bawaan ini dapat berupa suatu prosedur/subprogram atau suatu fungsi yang tersimpan pada Library Compiler Bahasa tersebut. Modul dalam bentuk Prosedur dapat langsung dijalankan dengan menuliskan nama prosedurnya (dan argumen yang mengikutinya jika ada), dan yang berupa fungsi dapat diproses seperti halnya istilah fungsi pada matematika. Prosedur atau fungsi juga dapat dibuat sendiri oleh pembuat program sesuai dengan keperluan. Beberapa prosedur/fungsi bawaan dari BASIC, FORTRAN dan Pascal, dapat dilihat seperti berikut Fungsi INKEY$ LEFT$(arg) RIGHT$(arg) LCASE$(arg) UCASE$(arg) LEN(arg) dll . . . dan fungsi matematika Ket Untuk fungsi data string terdapat karakter $ sebagai akhiran nama fungsinya. Subrutin SEED(arg) RANDOM(arg) GETTIM(arg) GETDAT(arg) dll . . . Prosedur/subrutin diproses dgn cara CALL namasubrutin Fungsi LEN(arg) LEN_TRIM (arg) INDEX(arg) dll . . . dan fungsi matematika Prosedur Writeln(arg) ; Write(arg) ; Readln(arg) ; Read(arg) ; Clrscr; dll . . . Beberapa prosedur/ fungsi biasanya ber dasarkan pada unit yang digunakan. Fungsi Length(arg) ; Upcase(arg) ; Readkey; Keypressed; dll . . . dan fungsi matematika

22

Teknik Sipil Pemrograman Komputer

Ms-QuickBASIC

Ms-FORTRAN

TurboPascal

Contoh Program
Tugas; Jelaskan arti dari setiap baris program Buat Flow-Chart program

Compiler Tools

BASIC FORTRAN Pascal Editor

Microsoft QuickBASIC v4.5 (C) Copyright Microsoft Corporation, 1985-1988. Microsoft (R) FORTRAN Optimizing Compiler Version 5.10. Copyright (c) Microsoft Corp 1982-1991. Turbo Pascal Version 7.0 Copyright (c) 1983,92 Borland International.. Crimson Editor 3.70 Release (Freeware). Copyright (C) 1999-2004 Ingyu Kang,

23

Teknik Sipil Pemrograman Komputer

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43

PROGRAM-1 (BASIC) POLYGON.BAS PROGRAM UNTUK MENGHITUNG LUAS POLYGON DIM X(21) AS SINGLE, Y(21) AS SINGLE, LUAS AS SINGLE DIM I AS INTEGER, JT AS INTEGER, LAGI AS STRING*1 DO DO CLS PRINT MENGHITUNG LUAS POLYGON INPUT JUMLAH TITIK PADA POLYGON = , JT LOOP WHILE (JT < 3 OR JT > 20) PRINT PRINT INPUT DATA KOORDINAT (M): PRINT FOR I = 1 TO JT PRINT X(; I; ), Y(; I; ) = ; INPUT X(I), Y(I) NEXT LUAS = 0 X(JT+1) = X(1) Y(JT+1) = Y(1) FOR I = X1 = Y1 = LUAS NEXT 1 TO JT X(I) + X(I+1) Y(I) - Y(I+1) = LUAS + 0.5 * X1 * Y1

LUAS = ABS(LUAS) PRINT PRINT USING LUAS POLYGON = ###.### M2; LUAS PRINT INPUT MASIH MAU MENGHITUNG (Y,T) = , LAGI LOOP UNTIL UCASE$(LAGI) <> Y END

Teknik Sipil Pemrograman Komputer

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42

PROGRAM-2 (BASIC) INTERPOL.BAS PROGRAM INTERPOLASI LINEAR DIM X(5) AS SINGLE, Y(5) AS SINGLE DIM I AS INTEGER DATA 0.0, 2.5, 3.5, 4.5, 6.5 DATA 2.123, 4.235, 5.201, 7.781, 10.015 FOR I = 1 TO 5: READ X(I): NEXT FOR I = 1 TO 5: READ Y(I): NEXT CLS PRINT << INTERPOLASI LINEAR >> PRINT PRINT [TABEL] PRINT --------------------- PRINT X Y PRINT --------------------- FOR I = 1 TO 5 PRINT USING "###.# ##.###"; X(I); Y(I) NEXT PRINT --------------------- Lagi: PRINT : INPUT INPUT NILAI X = , XN IF (XN < X(1) OR XN > X(5)) THEN PRINT NILAI, DILUAR [TABEL] GOTO Lagi END IF FOR I = 1 TO 5 IF (XN >= X(I) AND XN <= X(I + 1)) THEN YN = Y(I) + (XN-X(I)) * (Y(I+1) - Y(I)) / (X(I+1) - X(I)) PRINT USING NILAI Y = ##.###; YN END END IF NEXT END

Teknik Sipil Pemrograman Komputer

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51

PROGRAM-3 (BASIC) BALOK.BAS PROGRAM MENGHITUNG REAKSI & MOMEN BALOK SEDERHANA DIM P(1 TO 5) AS SINGLE, XP(1 TO 5) AS SINGLE DIM JP AS INTEGER, j AS INTEGER, i AS INTEGER CLS : PRINT REAKSI DAN MOMEN BALOK (SENDI.ROL) PRINT AKIBAT BEBAN TERPUSAT, (P): PRINT INPUT Jumlah Beban Terpusat (P) = , JP INPUT Panjang Batang (m) = , XL PRINT PRINT Input Beban P (Ton), dan Jaraknya (XP) dari Tump.Kiri (m) FOR i = 1 TO JP Ulang: PRINT P(; i; ), XP(; i; ) = ; INPUT , P(i), XP(i) IF XP(i) < 0 OR XP(i) > XL THEN PRINT Jarak Beban tidak memenuhi ! GOTO Ulang END IF SP = SP + P(i) SPX = SPX + P(i) * (XL - XP(i)) NEXT VA = SPX/XL: VB = SP VA ---Reaksi Tumpuan, VA dan VB PRINT: PRINT Reaksi Tumpuan: PRINT USING VA = ###.##### T; VA PRINT USING VB = ###.##### T; VB --- Hitung & Cetak Momen pada posisi Beban P PRINT: PRINT Momen: TX = 0 FOR i = 1 TO JP SMP = 0 FOR j = 1 TO i - 1 IF i = 1 THEN EXIT FOR SMP = SMP + P(j) * (XP(i) - XP(j)) NEXT TMX = VA * XP(i) - SMP PRINT USING Titik ## = ###.##### Tm; i; TMX IF TMX > TX THEN TMAX = TMX TX = TMAX NEXT --- Momen Maksimum PRINT PRINT USING Momen Maksimum = ###.##### Tm; TMAX END

Teknik Sipil Pemrograman Komputer

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48

* PROGRAM-1 (FORTRAN) * POLYGON.FOR C234567 REAL CHARACTER LOGICAL X(21), Y(21), X1, Y1, LUAS LAGI*1 YA/.TRUE./

DO WHILE (YA) PRINT * !--> atau WRITE(*,*) PRINT *, MENGHITUNG LUAS POLYGON WRITE(*,*) MENGHITUNG LUAS POLYGON JT = 0 DO WHILE (JT .LT. 3 .OR. JT .GT. 20) PRINT 1, Jumlah Titik pada Polygon = READ(*,*) JT !--> atau READ *, JT END DO PRINT (/1X,A/), INPUT DATA KOORDINAT (M) DO 10 I=1,JT PRINT 2, X(,I,), Y(,I,) = READ(*,*) X(I), Y(I) !--> atau READ *, X(I), Y(I) CONTINUE LUAS = 0 X(JT+1) = X(1) Y(JT+1) = Y(1) DO I=1,JT X1 = X(I) + X(I+1) Y1 = Y(I) - Y(I+1) LUAS = LUAS + 0.5*X1*Y1 END DO LUAS = ABS(LUAS) C38= PRINT (/1X,A,F8.3,A), Luas Polygon = ,LUAS, M2 WRITE(*,(/1X,A,F8.3,A)) Luas Polygon = ,LUAS, M2 PRINT 1, Masih mau Menghitung ? (Y,T) = READ(*,(A1)) LAGI ! atau READ (A1), LAGI IF (LAGI .EQ. T .OR. LAGI .EQ. t) YA = .FALSE. END DO 1 2 FORMAT(/1X,A\) FORMAT(1X,2(A,I2),A\) END

C12=

10

Teknik Sipil Pemrograman Komputer

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41

* PROGRAM-2 (FORTRAN) * INTERPOL.FOR C234567 REAL DATA X(5), Y(5) X /0.0, 2.5, 3.5, 4.5, 6.5/, Y /2.123, 4.235, 5.201, 7.781, 12.015/

PRINT *, << INTERPOLASI LINEAR >> PRINT * PRINT PRINT PRINT PRINT 10 20 *, *, *, *, [TABEL XY] ---------------------- X Y ----------------------

FORMAT(1X,F5.1,7X,F6.3) DO 20 I=1,5 WRITE(*,10) X(I), Y(I) PRINT *, ----------------------

30

WRITE(*,(/1X,A\)) INPUT NILAI X = READ *, XN IF (XN .LT. X(1) .OR. XN .GT. X(5)) THEN PRINT *, NILAI, DILUAR [TABEL]... GOTO 30 ENDIF DO I=1,5 IF (XN .GE. X(I) .AND. XN .LE. X(I+1)) THEN YN = Y(I) + (XN-X(I))*(Y(I+1)-Y(I))/(X(I+1)-X(I)) WRITE (*,(1X,A,F6.3/)) NILAI Y = ,YN READ * ! Tunggu penekanan tombol <enter> EXIT ENDIF END DO END

Teknik Sipil Pemrograman Komputer

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49

$FREEFORM PROGRAM-3 (FORTRAN) BALOK.FOR DIMENSION P(5), XP(5) PRINT *, REAKSI DAN MOMEN BALOK (SENDI.ROL) PRINT *, AKIBAT BEBAN TERPUSAT, (P) PRINT (/1X,A\), Jumlah Beban Terpusat (P) = READ *, JP PRINT (1X,A\), Panjang Batang (m) = READ *, XL PRINT * PRINT *,Input Beban P (Ton), dan Jarak (XP) dari Tump.Kiri (m) DO i=1,JP 2 WRITE(*,(1X,A,I2,A,I2,A\)) P(, I, ), XP(, I, ) = READ *, P(i), XP(i) IF (XP(i) .LT. 0 .OR. XP(i) .GT. XL) THEN PRINT *, Jarak Beban tidak memenuhi ! GOTO 2 ENDIF SP = SP+P(i) SPX = SPX+P(i) * (XL-XP(i)) END DO VA = SPX/XL VB = SPVA PRINT (/A), Reaksi Tumpuan: WRITE(*,(1X, VA = ,F9.5, T)) VA WRITE(*,(1X, VB = ,F9.5, T)) VB PRINT (/A), Momen: TX = 0 DO i=1,JP SMP = 0 DO j = 1, i-1 IF (i .EQ. 1) EXIT SMP = SMP + P(j) * (XP(i)-XP(j)) END DO TMX = VA * XP(i) - SMP PRINT (1X,A,I2,A,F9.5,A), Titik , i, = , TMX, Tm IF (TMX .GT. TX) TMAX = TMX TX = TMAX END DO PRINT (/1X,A,F9.5,A), Momen Maksimum = ,TMAX, Tm END

Teknik Sipil Pemrograman Komputer

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50

(* PROGRAM-1 (Pascal) POLYGON.PAS *) Uses Crt; Var X, Y : Array[1..21] of Real; X1, Y1, Luas : Real; I, JT : Integer; Lagi : Char; Begin Repeat JT := 0; While (JT < 3) Or (JT > 20) Do Begin ClrScr; Writeln(MENGHITUNG LUAS POLYGON); Write(JUMLAH TITIK PADA POLYGON = ); ReadLn(JT); End; {--> Akhir While... } Writeln; Writeln(INPUT DATA KOORDINAT (M)); WriteLn; For I := 1 To JT Do Begin Write(X[, I,], Y[, I, ] = ); ReadLn(X[I], Y[I]); End; Luas := 0; X[JT+1] := X[1]; Y[JT+1] := Y[1]; For I := 1 To JT Do Begin X1 := X[I] + X[I+1]; Y1 := Y[I] Y[I+1]; Luas := Luas + 0.5*X1*Y1; End; Luas := Abs(Luas); WriteLn; WriteLn(LUAS POLYGON = ,Luas:7:3, M2); WriteLn; Write(MASIH MAU MENGHITUNG (Y,T) = ); ReadLn(Lagi); Until UpCase(Lagi) <> Y; End. { --> Akhir Repeat...Until }

Teknik Sipil Pemrograman Komputer

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49

(* PROGRAM-2 (Pascal) INTERPOL.PAS *) Uses Crt; Const X : Array[1..5] of Real = (0.0,2.5,3.5,4.5,6.5); Y : Array[1..5] of Real = (2.123,4.235,5.201,7.781,10.015); Var Xn, Yn : Real; i : Integer; Label Lagi; Begin Clrscr; WriteLn(<< INTERPOLASI LINEAR>>); WriteLn; WriteLn([TABEL-XY]); WriteLn(---------------------'); WriteLn( X Y '); WriteLn(---------------------'); For i := 1 To 5 Do WriteLn(X[i]:5:1, ,Y[i]:6:3); WriteLn(---------------------); Lagi: WriteLn; Write(INPUT NILAI X = ); ReadLn(Xn); If (Xn < X[1]) OR (Xn > X[5]) Then Begin WriteLn(NILAI, DILUAR [TABEL]...); Goto Lagi; End; For i := 1 To 5 Do Begin If (Xn >= X[i]) AND (Xn < X[i+1]) Then Begin Yn := Y[i]+(Xn-X[i])*(Y[i+1]-Y[i])/(X[i+1]-X[i]); WriteLn( NILAI Y = ,Yn:6:3); ReadLn; Halt; End; End; End.

Teknik Sipil Pemrograman Komputer

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51

{ PROGRAM-3 (Pascal) BALOK.PAS } Uses Crt; Var P, XP : Array[1..10] of Real; XL, SP, SPX, VA, VB, TX, TMX, TMAX, SMP : Real; JP, i, j : Integer; Label 20; Begin ClrScr; WriteLn(REAKSI DAN MOMEN BALOK (SENDI.ROL)); WriteLn(AKIBAT BEBAN TERPUSAT, (P)); WriteLn; Write(Jumlah Beban Terpusat (P) = ); ReadLn(JP); Write(Panjang Batang (m) = ); ReadLn(XL); WriteLn; WriteLn(Beban P (Ton), dan Jaraknya (XP) dari Tump. Kiri (m)); SP := 0; SPX := 0; For i := 1 To JP Do Begin 20: Write(P[,i,], XP[,i,] = ); ReadLn(P[i], XP[i]); If (XP[i] < 0) Or (XP[i] > XL) Then Begin WriteLn(Jarak Beban tidak memenuhi !); Goto 20; End; SP := SP + P[i]; SPX := SPX + P[i] * (XL-XP[i]); End; VA := SPX/XL; VB := SP-VA; { Reaksi Tumpuan VA & VB } WriteLn; WriteLn(Reaksi Tumpuan:); WriteLn(VA = , VA:9:4, T); WriteLn(VB = , VB:9:4, T); WriteLn; WriteLn(Momen:); TX := 0; TMAX := 0; For i := 1 To JP Do Begin SMP := 0; For j := 1 To i-1 Do Begin If i=1 Then Break; SMP := SMP + P[j] * (XP[i] - XP[j]); End; TMX := VA * XP[i] - SMP; WriteLn(Titik , i:2, = , TMX:9:4, Tm); If TMX > TX Then TMAX := TMX; TX := TMAX; End; WriteLn; WriteLn(Momen Maksimum = ,TMAX:9:4, Tm); ReadLn; End.

You might also like