laporan lengkap fisika komputasi ii nalin sumarlin 2010

110
2010 PERCOBAAN I STRUKTUR KONTROL A. TUJUAN 1. Mengetahui Struktur Kontrol (Penyeleksian) Kondisi (If Then Else). 2. Mengetahui Struktur Kontrol (Penyeleksian) Kondisi (Case Of). 3. Membuat Program Sederhana. B. TEORI Setiap program yang kompleks mengandung suatu pernyataan alternatif. Dengan pernyataan alternatif, program dapat menentukan tindakan apa yang harus dikerjakan tergantung dari hasil kondisi yang dipilih tersebut. Di dalam Pascal pernyataan alternatif dipergunakan statement if dan case. 1. Pernyataan If Pernyataan if hanyalah menguji suatu kondisi. Jika kondisi ini benar, pernyataan if mengakibatkan pelaksanaan pernyataan sesudah then; pernyataan ini dilaksanakan satu kali. Jika kondisi tersebut salah, pernyataan sesudah else dilaksanakan. Jika tak terdapat else, maka tidak ada yang terjadi, dan pernyataan berikutnya di dalam program yang bersangkutan dilaksanakan (Zaks, 86: 1988). Struktur pernyataan if dengan satu alternatif percabangan. Bentuk dari struktur ini adalah: If Kondisi Then

Upload: nalin-sumarlin

Post on 31-Jul-2015

323 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 0

2010

PERCOBAAN I

STRUKTUR KONTROL

A. TUJUAN

1. Mengetahui Struktur Kontrol (Penyeleksian) Kondisi (If Then Else).

2. Mengetahui Struktur Kontrol (Penyeleksian) Kondisi (Case Of).

3. Membuat Program Sederhana.

B. TEORI

Setiap program yang kompleks mengandung suatu pernyataan

alternatif. Dengan pernyataan alternatif, program dapat menentukan tindakan

apa yang harus dikerjakan tergantung dari hasil kondisi yang dipilih tersebut.

Di dalam Pascal pernyataan alternatif dipergunakan statement if dan case.

1. Pernyataan If

Pernyataan if hanyalah menguji suatu kondisi. Jika kondisi ini

benar, pernyataan if mengakibatkan pelaksanaan pernyataan sesudah then;

pernyataan ini dilaksanakan satu kali. Jika kondisi tersebut salah,

pernyataan sesudah else dilaksanakan. Jika tak terdapat else, maka tidak

ada yang terjadi, dan pernyataan berikutnya di dalam program yang

bersangkutan dilaksanakan (Zaks, 86: 1988).

Struktur pernyataan if dengan satu alternatif percabangan. Bentuk

dari struktur ini adalah:

If Kondisi Then

Page 2: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 1

2010

Pernyataan 1

Artinya bila kondisi terpenuhi (benar), pernyataan 1 diproses, dan bila

tidak terpenuhi pernyataan selanjutnya akan diproeses.

Gambar 1.1. Struktur Kontrol if

2. Pernyataan Case

Pernyataan case (case statement) berisi ungkapan pemilih

(selector) dan sederetan pernyataan yang masing-masing diawali dengan

satu atau lebih tetapan (case constant) atau dengan kata kunci else.

Semua tetapan case harus khas dan tipe berurutan yang digunakan

harus sesuai dengan tipe pemilih. Sama halnya dengan pernyataan if, pada

pernyataan case jika pernyataan yang akan dijalankan lebih dari satu

Kondisi Kondisi

Salah Benar

Pernyataan 1 Pernyataan 2

Pernyataan Selanjutnya

Pernyataan Selanjutnya

Page 3: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 2

2010

pernyataan maka sebelum pernyataan-pernyataan tersebut, harus diawali

dengan begin dan diakhiri dengan end (Yulianto, 2006).

Pernyataan case dapat berbentuk:

a. Case-Of

Bentuk struktur dari case-of adalah:

Case ungkapan

Label 1 : pernyataan 1;

Label 2 : pernyataan 2;

Label n : pernyataan n;

End.

Bila suatu ungkapan terpenuhi (nilai ungkapan sama dengan nilai

label) maka pernyatan tersebut diproses. Bila tidak ada ungkapan

terpenuhi berarti tidak ada pernyataan diproses.

b. Case-Of-Else

Struktur case-of-else merupakan pengembangan dari case-of. Pada

struktur ini, bila tidak ada ungkapan terpenuhi, maka yang akan

diproses adalah pernyataan yang ada di else (Jahiding, 2009).

C. LANGKAH-LANGKAH PERCOBAAN

1. Ketik pada editor turbo Pascal dan jalankan program di bawah ini :

Program Suhu1; { -------------------------------------- } { Contoh Sederhana Pemakaian If}

Page 4: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 3

2010

{ -------------------------------------- } Uses wincrt; Var Suhu : Real; Begin Write ('Suhu Tubuh : '); Readln (suhu); If Suhu > 37 Then Writeln ('Suhu Tinggi !'); Writeln (' Selesai '); End.

2. Ketik pada editor turbo Pascal dan jalankan program di bawah ini :

Program Suhu2; { --------------------------------- } { Contoh Pemakaian If - Else } { --------------------------------- } Uses wincrt; Var suhu : Real; Begin Clrscr; Write ('Suhu Tubuh : '); Readln (suhu); If Suhu > 37 Then Writeln ('SUHU TINGGI !') Else Writeln ('Suhu Tidak Tinggi !'); Writeln ('Selesai'); End.

3. Ketik pada editor turbo Pascal dan jalankan program di bawah ini : Program menu; Uses wincrt; Var Pilih : byte; R,L,T,A : real; Begin Clrscr; Gotoxy (10,2); writeln (' MENU '); Gotoxy (10,4); writeln (' 1. Luas Lingkaran '); Gotoxy (10,6); writeln (' 2. Luas Segitiga '); Gotoxy (10,8); writeln (' Pilih 1 atau 2 '); Readln (pilih); Clrscr; Case Pilih Of 1 : Begin

Page 5: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 4

2010

Write ('Radius Lingkaran'); readln (R); L := pi*sqr (R); Writeln ('Luas Lingkaran n= ',L:9:2); End; 2 : Begin Write ('Panjang Sisi Alas'); readln (A); Write ('Tinggi Segitiga'); readln (T); L := 0.5*A*T; Writeln ('Luas Segitiga = ',L:9:2); End Else Begin Write ('Pilihannya hanya 1 dan 2'); End; End; End.

Keterangan:

1. Clrscr adalah suatu prosedur standard untuk membersihkan layar dari

tampilan sebelumnya (melibatkan unit crt).

2. GotoXY merupakan suatu prosedur standar untuk meletakkan kursor ke

posisi layar yang akan ditunjukkan oleh nilai (X,Y).

D. PROGRAM DAN HASIL EKSEKUSI

1. Program Suhu 1 Program Suhu1;

Uses wincrt; Var Suhu : Real; Begin Write ('Suhu Tubuh : '); Readln (suhu); If Suhu > 37 Then Writeln ('Suhu Tinggi !'); Writeln (' Selesai '); End.

Page 6: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 5

2010

Hasil Eksekusi Program Suhu 1

2. Program Suhu 2

Program Suhu2; Uses wincrt; Var suhu : Real; Begin Clrscr; Write ('Suhu Tubuh : '); Readln (suhu); If Suhu > 37 Then Writeln ('SUHU TINGGI !') Else Writeln ('Suhu Tidak Tinggi !'); Writeln ('Selesai'); End.

Hasil Eksekusi Program Suhu 2

Page 7: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 6

2010

3. Program Menu

Program Menu; Uses wincrt; Var Pilih : Byte; R,L,T,A : Real; Begin Clrscr; Gotoxy (10,2); writeln (' MENU '); Gotoxy (10,4); writeln (' 1. Luas Lingkaran '); Gotoxy (10,6); writeln (' 2. Luas Segitiga '); Gotoxy (10,8); writeln (' Pilih 1 atau 2 '); Readln (pilih); Clrscr; Case Pilih Of 1 : Begin Write ('Radius Lingkaran = '); readln (R); L := pi*sqr (R); Writeln ('Luas Lingkaran = ',L:7:2); End; 2 : Begin Write ('Panjang Sisi Alas = '); readln (A); Write ('Tinggi Segitiga = '); readln (T); L := 0.5*A*T; Writeln ('Luas Segitiga = ',L:7:2); End Else Begin Write ('Pilihannya hanya 1 dan 2'); End; End; End.

Page 8: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 7

2010

Hasil Eksekusi Program Menu

Page 9: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 8

2010

E. PEMBAHASAN

Sebuah program Pascal berisi kepala program, anak kalimat uses (tidak

harus ada), serta blok pengumuman dan pernyataan. Kepala program

menunjukkan nama program. Anak kalimat uses menggunakan unit-unit yang

dipakai oleh program tersebut. Bagian terakhir merupakan blok yang berisi

pengumuman pernyataan yang akan dijalankan.

Unsur aturan penulisan dasar—disebut token—akan digabung

membentuk ungkapan (expressions), pengumuman atau deklarasi

(declarations), dan pernyataan (statements). Pernyataan menggambarkan

tindakan algoritma yang dapat dijalankan dalam program. Setiap ungkapan

adalah sebuah aturan kesatuan aturan penulisan yang terdapat dalam

pernyataan dan menunjukkan sebuah nilai. Setiap ungkapan terdiri dari

operator dan operand. Sedangkan deklarasi menegaskan sebuah pengenal

(identifier) yang dapat digunakan pada ungkapan atau pernyataan, dan bila

diperlukan memesan tempat pada pengingat untuk pengenal tersebut.

Di dalam Pascal pernyataan alternatif menggunakan Statement If dan

Case. Pada percobaan ini program-program yang dibuat adalah program

menggunakan statement if dan case. Pernyataan if digunakan untuk

Page 10: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 9

2010

menentukan pilihan atas beberapa kondisi yang merupakan syarat terhadap

pilihan yang sudah ditentukan. Dari bentuk bentuk pernyataan if yang harus

diperhatikan adalah untuk pernyataan if dan else, pernyataan-pernyataan

setelah then tanpa menggunakan “;”.

Ada tiga macam program yang dibuat pada percobaan ini yaitu

program suhu1, program suhu2 dan program menu. Program pertama

(program suhu 1) diawali dengan judul program yaitu Program_Suhu1, Judul

Program dalam pascal dimulai kata cadang (reserved word) “Program”,

diikuti nama program yang akan dibuat dan diakhiri tanda “;”.

Pada program suhu1 ini digunakan variabel suhu yang bertipe data

real. Variabel dipakai untuk menampung nilai-nilai yang diharapkan berubah

dalam suatu program. Pendeklarasian variabel diawali dengan kata cadang

var, kemudian nama variabel diikuti tanda “;“. Jadi nilai-nilai suhu yang

dihasilkan oleh program berada pada jangkauan bilangan real. Bagian

pernyataan menggunakan operasi output write agar dapat menuliskan

pernyataan ‘Suhu Tubuh :’, dimana pernyataan tersebut diapit tanda petik

tunggal (‘). Pernyataan yang diapit tanda petik tunggal (‘) dalam prosedur

write merupakan penjelasan dan tidak diproses oleh program.

Karena menggunakan kata cadang write maka setelah pernyataan

dituliskan, cursor akan berada di samping pernyataan tersebut, sehingga nilai

yang dimasukkan saat eksekusi berada di samping pernyataan ‘Suhu Tubuh : ’.

Setelahnya terdapat operasi input readln, dimana nilai yang dimasukkan akan

dibaca sebagai variabel pada readln tersebut. Misalnya pada program ini, jika

Page 11: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 10

2010

diisi suhu yang lebih rendah (<37) maka komputer tidak akan memproses

tetapi jika kita isi dengan suhu lebih besar (>37) atau maka komputer akan

membaca program tersebut. Adapun writeln setelah menulis data, kursor akan

pindah ke kolom 1 dari baris berikutnya.

Pada program kedua (Program Suhu2), variabel yang dideklarasikan

adalah suhu yang juga bertipe data real. Program ini merupakan contoh

sederhana untuk pemakaian if-else dan tidak jauh berbeda dengan program

suhu1. Pada bagian pernyataan terdapat pernyataan ”writeln (’suhu tidak

tinggi!’);” dalam pernyataan else artinya apabila kita memasukkan nilai suhu

yang kurang dari 37 º maka komputer akan membacanya dan

menampilkannya pada layar eksekusi dengan pernyataan suhu tidak tinggi.

Adapun untuk program yang ketiga (Program Menu), variabel yang

dideklarasikan adalah pilih yang bertipe byte. Byte merupakan salah satu tipe

data dasar integer (bilangan bulat) yang memiliki jangkauan nilai 0 s/d 255.

Sehingga input pilihannnya merupakan bilangan bulat positif.

Pada program tersebut disajikan dua macam pilihan kepada pemakai

untuk menghitung luas segitiga atau luas lingkaran. Peubah pilih digunakan

untuk pemakai guna menentukan pilihannya.

Selain itu pada program ini juga digunakan pernyataan gotoxy. Layar

eksekusi pascal memiliki titik koordinat seperti bidang ordinat kartesius. Dan

titik (0,0) dari pascal berada pada sudut kiri atas layar. Sehingga letak

pernyataan pada layar eksekusi dapat diatur dengan menggunakan deklarasi

ini. Nilai X untuk menyatakan letak pernyataan pada arah horizontal dan Y

Page 12: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 11

2010

pada arah vertikal. Percobaan ini merupakan program yang menggunakan

pilihan menu, dimana program ini memilki dua buah pernyataan. Pernyataan

yang pertama kita perintahkan komputer untuk membaca radius lingkaran

dengan luas lingkaran yang masing-masing telah divariabelkan pada bagian

deklarasi. Untuk pernyataan ”writeln (’Luas Lingkaran = ’, L:7:2);” berarti

nilai luas lingkaran harus terdiri dari 7 digit angka dengan dua angka

dibelakang koma. Adapun pada bagian pernyataan yang kedua kita

perintahkan komputer untuk membaca luas sebuah segitiga yang panjang sisi

alas dan tinggi segitiga telah telah dimasukkan terlebih dahulu.

Pada struktur case of bila tidak ada ungkapan terpenuhi maka yang

akan diproses adalah pernyataan yang ada di else. Case of else merupakan

pengembangan dari case of yang mana bila salah satu ungkapan terpenuhi

(nilai ungkapan sama dengan nilai label) dan pernyataan tersebut diproses

lagi. Bila tidak ada ungkapan terpenuhi berarti tidak ada pernyataan yang akan

diproses.

Seluruh program di atas menggunakan unit wincrt dan perintah clear

screen (clrscr), perintah clrscr ini hanya dapat dijalankan jika pada bagian

deklarasi dicantumkan unit wincrt, karena unit ini merupakan salah satu unit

yang mengontrol tampilan layar. Dengan adanya perintah clrscr, maka layar

akan dibersihkan dari tampilan eksekusi yang telah dilakukan sebelumnya.

Keseluruhan program, pada bagian pernyataan diawali dengan kata begin

tanpa diikuti tanda titik koma (;) yang menandakan awal dari pernyataan yang

Page 13: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 12

2010

akan dijalankan, dan bagian pernyataan diakhiri dengan kata end dan diikuti

tanda titik (.) yang menandakan akhir dari pernyataan.

F. KESIMPULAN

Dari hasil percobaan dan pembahasan, dapat disimpulkan beberpa hal

sebagai berikut:

1. Untuk mengetahui struktur kontrol digunakan penyeleksian kondisi IF

Then artinya bila kondisi terpenuhi (benar), pernyataan 1 diproses dan

bila tidak terpenuhi maka pernyataan selanjutnya yang akan diproses.

Adapun penyeleksian kondisi IF Else menyatakan bahwa bila kondisi

terpenuhi (benar) pernyataan 1 diproses dan sebaliknya bila tidak

terpenuhi maka pernyataan 2 akan diproses.

2. Struktur Case Of menyatakan bila salah satu ungkapan terpenuhi (nilai

ungkapan sama dengan nilai label) dan pernyataan tersebut diproses lagi.

Bila tidak ada ungkapan terpenuhi berarti tidak ada pernyataan yang

diproses. Case Of Else menyatakan bila tidak adanya ungkapan terpenuhi

maka yang akan diproses adalah pernyataan yang di Else.

3. Program sederhana dapat dibuat dengan memperhatikan struktur utama

dari pemrograman pascal, yaitu judul program (program heading),

bagian deklarasi (declaration), dan bagian pernyataan (statements).

Page 14: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 13

2010

G. SARAN

Sebaiknya jaringan listrik di dalam Lab. Komputasi diperhatikan agar

pada saat praktikum berlangsung bisa berjalan lancar tanpa ada gangguan

dengan padamnya sebagian komputer.

Page 15: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 14

2010

PERCOBAAN II

STRUKTUR PERULANGAN

A. TUJUAN

1. Mengetahui Struktur Perulangan For.

2. Mengetahui Struktur Perulangan While Do.

3. Mengetahui Struktur Perulangan Repeat-Until.

B. TEORI

Dalam hampir setiap program yang kompleks mutlak memerlukan

suatu perulangan dan percabangan. Tujuan perulangan disini adalah untuk

mengulang statement atau blok statement berulang kali sesuai

sejumlah yang ditentukan pemakai. Kondisi perulangan merupakan proses

berjalannya program secara terus menerus dan akan berhenti ketika proses

mendapatkan kondisi yang sudah ditentukan (http://materi-

praktek.blogspot.com/2007/03/bab-3-bentuk-perulangan-penyeleksian.html).

Pernyataan Perulangan memiliki tiga pernyataan, repeat, while, dan

for. Pernyataan perulangan dipakai untuk melakukan proses berulang terhadap

pernyataan sederhana atau pernyataan terstruktur (Yulianto, 2006).

Di dalam pemrograman sering dijumpai pernyataan yang diulang-

ulang, agar efesien digunakan struktur perulangan. Dalam Pascal dikenal 3

macam perulangan yaitu:

Page 16: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 15

2010

1. Perulangan For

Pernyataan for (for statements) juga digunakan untuk melakukan

proses perulangan. Hanya saja proses perulangan pada pernyataan for

langsung dikendalikan oleh suatu peubah yang disebut peubah kendali

(control variables) yang harus bertipe berurutan. Jadi pada pernyataan for

pada dasar sudah diketahui jumlah perulangannya.

Perulangan dengan pernyataan for dapat berupa perulangan positif

('to') dan perulangan negatif ('downto'). Jika pernyataan yang akan

mengalami perulangan lebih dari satu pernyataan, maka harus diawali

dengan begin dan diakhiri dengan end; (Yulianto, 2006).

a. Perulangan For positif (maju)

Perulangan for positif dibentuk dengan menggunakan pernyataan for-

to-do, bentuk umumnya adalah

For variabel kontrol = Nilai awal To nilai akhir Do

b. Perulangan For negatif (mundur)

Perulangan for negatif dibentuk dengan menggunakan pernyataan for-

downto-do, bentuk umumnya adalah

For variabel kontrol = Nilai akhir Downto nilai awal Do

(Jahiding, 2009).

2. Perulangan While Do

Pernyataan while (while statements) hampir sama dengan

pernyataan repeat, dengan sedikit perbedaan bahwa pernyataan while

melakukan pengujian syarat pada awal proses berulang (pernyataan repeat

Page 17: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 16

2010

melakukannya di akhir proses). Pengujian awal digunakan untuk agar

program dapat menyeleksi kondisi, sehingga program dapat menentukan

tindakan apa yang harus dikerjakan, tergantung dari kondisi yang diseleksi

tersebut. Pada pernyataan-pernyataan yang ada pada while tidak akan

dijalankan jika kondisi tidak terpenuhi. (Yulianto, 2006)

Perulangan ini digunakan untuk proses perulangan suatu

pernyataan (blok pernyataan) terus menerus selama kondisi terpenuhi

(logika benar). Struktur while-do ditunjukkan pada gambar berikut:

Gambar 2.1. Struktur Perulangan While-Do

(Jahiding, 2009).

3. Perulangan Repeat-Until

Pernyataan repeat (repeat statements) digunakan untuk melakukan

perulangan terhadap suatu pernyataan, dimana proses pemeriksaan

syaratnya berada pada akhir pernyataan repeat tersebut. Pernyataan-

Kondisi

Loop

Pernyataan 1

Salah

Pernyataan 2

Benar

Page 18: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 17

2010

pernyataan yang ada pada repeat akan dijalankan (diulang terus) sampai

kondisi yang diseleksi di until tidak terpenuhi (Yulianto, 2006).

Blok penyataan yang akan diulang-ulang dalam perulangan repeat-

until tidak memerlukan lagi begin dan end untuk batas perulangan karena

batas perulangan ini ditunjukkan oleh repeat-until. Struktur repeat-until

adalah:

Gambar 2.2. Struktur Perulangan Repeat-Until

(Jahiding, 2009).

C. LANGKAH-LANGKAH PERCOBAAN

1. Ketik pada editor turbo pascal dan jalankan program dibawah ini:

{Perulangan For} Program Suhu; Uses Wincrt; Var

Kondisi

Loop

Pernyataan 1

Benar

Pernyataan 2

Salah

Page 19: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 18

2010

X : Integer; C,F : Real; Begin Writeln ('-----------------------------'); Writeln ('| Celcius | Fahrenheit |'); Writeln ('-----------------------------'); C := 0; FOR X := 1 TO 10 DO Begin F := 1.8*C + 32; Writeln ('|' ,C:8:2,' |',F:9:2, ' |'); C := C+ 0.25; End; Writeln ('-----------------------------'); Readln; End.

Keterangan:

Program di atas membuat konversi suhu dari C ke F dengan 7 data, mulai

C = 2 disebut inisialisasi dan kelipatan 5 (C = 5).

2. Ketik pada editor turbo Pascal dan jalankan program dibawah ini:

{ Perulangan While Do } Program Suhu; Uses Wincrt; Var Lagi : Char; R,C,F : Real; Begin Lagi := 'Y'; While Lagi = 'Y' DO Begin Clrscr; Write ('Nilai Celcius = '); Readln (C); F := 1.8*C+32; R := 4/5*C; Writeln ('Fahrenheit = ',F:7:2); Writeln ('Reamur = ',R:7:2); Writeln ('Menghitung Lagi ? (Y/T)'); Readln (Lagi); End;

End.

Page 20: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 19

2010

3. Ketik pada editor turbo Pascal dan jalankan program dibawah ini:

{ Perulangan Repeat Until } Program Suhu; Uses Wincrt; Const Awal = 0; Akhir = 100; Delta = 10; Var R,C,F : Real; Begin Clrscr; Writeln (' ---------------------------------- '); Writeln (' | Celcius | Fahrenheit | Reamur | '); Writeln (' ---------------------------------- '); C:= Awal; Repeat F:= 1.8*C+32; R:= 4/5*C; Writeln (' |',C:7:2,' |',F:9:2,' |',R:7:2,' |'); C:= C + Delta; Until C > Akhir; Writeln (' ---------------------------------- '); Readln; End.

D. PERCOBAAN DAN HASIL EKSEKUSI

1. Perulangan FOR

{Perulangan For} Program Suhu; Uses Wincrt; Var X : Integer; C,F : Real; Begin Writeln ('-----------------------------'); Writeln ('| Celcius | Fahrenheit |'); Writeln ('-----------------------------'); C := 0; FOR X := 1 TO 10 DO Begin

Page 21: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 20

2010

F := 1.8*C + 32; Writeln ('|' ,C:8:2,' |',F:9:2, ' |'); C := C+ 0.25; End; Writeln ('-----------------------------'); Readln; End.

Hasil Eksekusi

2. Perulangan While Do

{ Perulangan While Do } Program Suhu; Uses Wincrt; Var Lagi : Char; R,C,F : Real; Begin Lagi := 'Y'; While Lagi = 'Y' DO Begin Clrscr; Write ('Nilai Celcius = '); Readln (C); F := 1.8*C+32; R := 4/5*C; Writeln ('Fahrenheit = ',F:7:2); Writeln ('Reamur = ',R:7:2); Writeln ('Menghitung Lagi ? (Y/T)'); Readln (Lagi); End;

Page 22: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 21

2010

End. Hasil Eksekusi

3. Perulangan Repeat-Until

{ Perulangan Repeat Until } Program Suhu; Uses Wincrt; Const Awal = 0; Akhir = 100; Delta = 10; Var R,C,F : Real; Begin Clrscr; Writeln (' ---------------------------------- '); Writeln (' | Celcius | Fahrenheit | Reamur | '); Writeln (' ---------------------------------- '); C:= Awal; Repeat F:= 1.8*C+32; R:= 4/5*C; Writeln (' |',C:7:2,' |',F:9:2,' |',R:7:2,' |'); C:= C + Delta; Until C > Akhir; Writeln (' ---------------------------------- '); Readln;

Page 23: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 22

2010

End. Hasil Eksekusi

E. PEMBAHASAN

Pada percobaan ini dibuat 3 macam program suhu, dimana tiap-tiap

program suhu tersebut terdiri dari perulangan yang berbeda satu sama lain.

Ketiga macam perulangan tersebut yaitu perulangan For, perulangan While-

Do, dan perulangan Repeat-Until. Pernyataan perulangan dipakai untuk

melakukan proses berulang terhadap pernyataan sederhana atau pernyataan

terstruktur.

Program pertama yang pertama yaitu program suhu yang

menggunakan perulangan for yaitu perulangan positif (for-to-do). Perulangan

dengan statemen for adalah perulangan yang digunakan untuk melakukan

suatu proses dalam sebuah blok program. Perulangan dengan statemen for-to-

Page 24: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 23

2010

do digunakan untuk mengulang statemen atau blok statemen berulang kali

sejumlah yang ditentukan. Proses perulangan ini dimulai dengan nilai terkecil

ke nilai terbesar oleh karena itu perulangan ini disebut juga sebagai

perulangan positif.

Program suhu ini dideklarasikan dengan deklarasi variabel, dimana X

bertipe data integer (tipe data integer merupakan tipe data bilangan bulat yang

hanya mengenal bilangan decimal, dimana tipe data integer tidak mengenal

pecahan), adapun C dan F bertipe data real (tipe data real adalah tipe data

dari suatu tanda pengenal selain mengenal bilangan bulat utuh tipe data ini

juga mengenal nilai angka yang mengenal pecahan). Pada program suhu ini

mengkonversi suhu dari celcius (C) ke fahrenheit (F) dan pada bagian

pernyataan terdapat statement “For X := 1 To 10 Do” yang berarti bahwa

nilai X akan diulangi sampai 10 kali. Pada program ini juga terdapat

pernyataan “F := 1,8C + 32” yang menyatakan nilai F dan pernyataan “C := C

+ 0.25” yang menyatakan besar nilai C yang akan dimasukkan pada rumus

untuk menentukan nilai F, jadi nilai C akan terus bertambah dengan kelipatan

0,25 sampai 10 data. Kemudian pernyataan “writeln (C:8:2, F:9:2)” yang

menyatakan nilai C harus terdiri dari 8 digit dengan 2 angka dibelakang koma

dan nilai F harus terdiri dari 9 digit dengan 2 angka dibelakang koma.

Pada program kedua yaitu program suhu dengan perulangan while do,

variabel yang dideklarasikan yaitu Lagi yang bertipe data char (tipe data real

merupakan salah satu jens tipe data selain mengenal angka disini tipe data ini

dapat juga mengenal data berupa huruf maupun tanda baca, dari segi kapsitas

Page 25: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 24

2010

ruang tipe data char jauh lebih sedikit karena hanya mengenal 1 karakter).

Adapun R,C,F dideklarasikan dengan tipe data real. Program ini juga akan

mengkonversi suhu dalam satuan celcius kedalam satuan fahrenheit dan

reamur. Perulangan yang digunakan pada program suhu yang kedua adalah

perulangan while-do. Perulangan ini adalah statement perulangan yang akan

terus melakukan suatu proses selama kondisi/syarat yang ditentukan bernilai

benar. Pada bagian pernyataan terdapat tampilan “While Lagi = ‘Y’ Do”, ini

berarti apabila kita akan mengulang program tersebut maka kita harus

mengetik Y pada hasil eksekusi program dan bila kita tidak ingin mengulang

program tersebut kita harus mengetik T.

Pada program ketiga yang menggunakan perulangan repeat-until.

Proses program diantara repeat-until akan dikerjakan sampai syarat yang

diberikan di belakang until terpenuhi. Yang perlu diingat bahwa sebelum

pernyataan repeat nilai awal pencacah (counter) perlu diset (diberi nilai awal)

lebih dahulu. Program ini dideklarasikan dengan beberapa konstanta seperti

awal = 0, akhir = 100, dan delta = 10. Pada bagian pernyataan terdapat

tampilan “Repeat F:= 1.8*C+32; R:= 4/5*C; Writeln (' |',C:7:2,' |',F:9:2,'

|',R:7:2,' |'); C:= C + Delta; Until C > Akhir;”, Ini berarti bahwa perhitungan

akan dilakukan berulang dari suhu dalam celcius bernilai 0 sampai 100 dengan

kelipatan 10.

Page 26: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 25

2010

F. KESIMPULAN

Dari hasil percobaan dan pembahasan, dapat disimpulkan beberpa hal

sebagai berikut:

1. Perulangan For terdiri atas 2 jenis, yaitu perulangan positif yang

dibentuk dengan menggunakan pernyataan For-To-Do (dari data yang

terkecil hingga data yang terbesar) dan perulangan negatif yang dibentuk

dengan menggunakan pernyataan For-Down To-Do (dari data yang besar

hingga data yang terkecil).

2. Perulangan While Do digunakan untuk memproses perulangan suatu

pernyataan terus-menerus selama syarat yang ditentukan bernilai benar

atau terpenuhi.

3. Pada perulangan Repeat Until, Proses program diantara repeat-until akan

dikerjakan sampai syarat yang diberikan di belakang until terpenuhi.

G. SARAN

Sebaiknya sebelum praktikum dimulai, asisten terlebih dahulu

menjelaskan tentang teori (selain yang ada di penuntun) mengenai percobaan

yang akan dilakukan agar praktikan tidak hanya tahu mengetik program saja

tetapi juga bisa mengetahui fungsi dari bagian yang ada dalam sebuah

program.

Page 27: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 26

2010

Page 28: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 27

2010

Page 29: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 28

2010

PERCOBAAN III

TIPE DATA ARRAY DAN RECORD

A. TUJUAN

1. Mengetahui Tipe-tipe Data Array.

2. Mengetahui Tipe-tipe Data Record.

3. Membuat Program Array dan Record.

B. TEORI

3. Tipe Data Array

Array merupakan struktur data yang statis, yaitu jumlah elemen

yang ada harus ditentukan terlebih dahulu dan tak bisa diubah saat

program berjalan. Untuk menyatakan array dalam Pascal kita harus

terlebih dahulu:

Mendefinisikan jumlah elemen array.

Mendefinisikan tipe data dari elemen array.

Contoh :

Const

N=10;

Type

A= array [1..N] of integer;

(Yulianto, 2006).

Array adalah tipe data terstruktur yang terdiri dari sejumlah

komponen-komponen yang mempunyai tipe sama. Komponen-komponen

Page 30: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 29

2010

tersebut disebut sebagai komponen type, larik mempunyai jumlah

komponen yang jumlahnya tetap. Banyaknya komponen dalam larik

ditunjukkan oleh suatu index, dimana tiap komponen di array dapat

diakses dengan menunjukkan nilai indexnya atau subskript. Array dapat

bertipe data sederhana seperti byte, word, integer, real, bolean, char,

string dan tipe data scalar atau subrange. Tipe larik mengartikan isi dari

larik atau komponen- komponenya mempunyai nilai dengan tipe data

tersebut.

Contoh:

Var

Untai : array[1..50] of Integer;

Pada contoh array dengan nama untai telah dideklarasikan dengan

tipe integer, dengan jumlah elemen maksimum 50 elemen, nilai dari

elemen array tersebut di atas harus bertipe integer (http://materi-

praktek.blogspot.com/2007/03/bab-4-array-pascal.html).

Array sendiri dibedakan menjadi:

Array dimensi satu

Gambar berikut melukiskan sebuah array berdimesni satu yang

dipakai untuk menyimpan data nilai hasil ujian.

100 75 60 65 80

Pendeklarasian array nilai tes di atas adalah

Const

Page 31: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 30

2010

MaxTes = 5;

Type

Nilai = Array [1..MaxTes] Of Byte

Var

NilaiTes : Nilai;

Array dimensi dua (multidimensi)

Array multidimensi merupakan array yang bertipe array. Array

multidimensi yang paling umum adalah array dimensi dua yaitu dalam

bentuk tabel dan matriks. Indeks pertama menunjukkan baris dan

indeks kedua menunjukkan kolom dari tabel atau matriks. Bentuk

array multidimensi ini adalah:

Nama array = Array [indeks1] Of Array [indeks2] Of Type

Atau dapat pula dideklarasikan dalam bentuk

Nama array = Array [indeks1, indeks2] Of Type

4. Tipe Data Record

Record merupakan jenis data terstruktur yang mengandung

sejumlah elemen bisa mengandung tipe data yang berlaianan. Tiap-tiap

elemen dalam record disebut field dan setiap field memiliki nama

tersendiri. Bentuk pendeklarasian record adalah:

Record

Field-1 : Tipe Record-1;

Field-2 : Tipe Record-2;

Page 32: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 31

2010

Field-N : Tipe Record-N;

End.

(Jahiding, 2009).

C. LANGKAH-LANGKAH PERCOBAAN

1. Ketik pada editor turbo pascal dan jalankan program dibawah ini:

{ Tipe Data Array } Program Matriks (Input,Output); Uses Wincrt; Type Mat1 = Array [1..50, 1..50] of Real; Var I,J,Baris,Kolom : Integer; A : Mat1; Begin Clrscr; Write ('Berapa Ukuran Matriks <Baris><Kolom> :'); Readln (Baris,Kolom); FOR I:= 1 TO Baris DO FOR J:= 1 TO Kolom DO Read (A[I,J]); Writeln ('Sudah Dibaca Matriks : '); FOR I:= 1 TO Baris DO FOR J:= 1 TO Kolom DO Writeln ('A[',I,',',J,'] = ', A[I,J]:5:2); Readln; End.

2. Ketik pada editor turbo pascal dan jalankan program dibawah ini:

{Tipe Data Record} Program KRS_Mahasiswa (Input,Output); Uses Wincrt; Type KRS = Record NamaMhs : STRING [20]; NoMhs : Integer; KodeFak : STRING [5]; End; Var DataKRS : Array [1..100] of KRS; JumlahMhs,NoRek,I : Integer; Reply : CHAR;

Page 33: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 32

2010

Begin Clrscr; Writeln ('ISILAH RECORD BERIKUT : '); Write ('Ada Berapa Jumlah Record : ') ; Readln (JumlahMhs); FOR I:= 1 TO JumlahMhs DO Begin Write ('Nama Mahasiswa : ') ; Readln (DataKRS[I].NamaMhs); Write ('Nmr. Mahasiswa : ') ; Readln (DataKRS[I].NoMhs); Write ('Kode Fakultas : ') ; Readln (DataKRS[I].KodeFak); End; Reply:='Y'; WHILE (Reply = 'Y') OR (Reply = 'y') DO Begin Clrscr; Write ('Mau menampilkan record ke berapa : ') ; Readln (NoRek); Writeln ('Nama Mahasiswa : ',DataKRS [NoRek].NamaMhs); Writeln ('Nmr. Mahasiswa : ',DataKRS [NoRek].NoMhs); Writeln ('Kode Fakultas : ',DataKRS [NoRek].KodeFak); Writeln ('Mau Menampilkan Lagi ? (Y/N)'); Readln (Reply); End; End.

D. PERCOBAAN DAN HASIL EKSEKUSI

4. Tipe Data Array

{ Tipe Data Array } Program Matriks (Input,Output); Uses Wincrt; Type Mat1 = Array [1..50, 1..50] of Real; Var I,J,Baris,Kolom : Integer; A : Mat1; Begin Clrscr; Write ('Berapa Ukuran Matriks <Baris><Kolom> :'); Readln (Baris,Kolom);

Page 34: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 33

2010

FOR I:= 1 TO Baris DO FOR J:= 1 TO Kolom DO Read (A[I,J]); Writeln ('Sudah Dibaca Matriks : '); FOR I:= 1 TO Baris DO FOR J:= 1 TO Kolom DO Writeln ('A[',I,',',J,'] = ', A[I,J]:5:2); Readln; End.

Hasil Eksekusi

5. Tipe Data Record

{Tipe Data Record} Program KRS_Mahasiswa (Input,Output); Uses Wincrt; Type KRS = Record NamaMhs : STRING [20]; NoMhs : Integer; KodeFak : STRING [5]; End; Var DataKRS : Array [1..100] of KRS; JumlahMhs,NoRek,I : Integer; Reply : CHAR; Begin Clrscr; Writeln ('ISILAH RECORD BERIKUT : '); Write ('Ada Berapa Jumlah Record : ') ; Readln (JumlahMhs); FOR I:= 1 TO JumlahMhs DO Begin

Page 35: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 34

2010

Write ('Nama Mahasiswa : ') ; Readln (DataKRS[I].NamaMhs); Write ('Nmr. Mahasiswa : ') ; Readln (DataKRS[I].NoMhs); Write ('Kode Fakultas : ') ; Readln (DataKRS[I].KodeFak); End; Reply:='Y'; WHILE (Reply = 'Y') OR (Reply = 'y') DO Begin Clrscr; Write ('Mau menampilkan record ke berapa : ') ; Readln (NoRek); Writeln ('Nama Mahasiswa : ',DataKRS [NoRek].NamaMhs); Writeln ('Nmr. Mahasiswa : ',DataKRS [NoRek].NoMhs); Writeln ('Kode Fakultas : ',DataKRS [NoRek].KodeFak); Writeln ('Mau Menampilkan Lagi ? (Y/N)'); Readln (Reply); End; End.

Hasil Eksekusi

Page 36: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 35

2010

E. PEMBAHASAN

Percobaan kali ini membahas tentang dua tipe data yaitu tipe data

array dan tipe data record. Tipe data array adalah tipe data terstruktur yang

terdiri dari sejumlah komponen-komponen yang mempunyai tipe sama.

Didalam penulisan bahasa pemograman pascal setiap penggunaan array harus

dideklarsikan terlebih dahulu. Pendeklarasian array diawali dengan nama

variabel array diikuti dengan indeks array yang dituliskan didalam tanda “[ ]”

, diikuti dengan kata cadangan of dan tipe data yang dibutuhkan. Adapun

untuk record disusun oleh beberapa field. Tiap field berisi data dari tipe dasar /

bentukan tertentu. Record mempunyai kelebihan untuk menyimpan suatu

Page 37: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 36

2010

sekumpulan elemen data yang berbeda-beda tipenya (di banding array). Cara

pendeklarasian dari record adalah mendefinisikan tipe dari record (jumlah

field, jenis tipe data yang dipakai), dan mendefinisikan variabel untuk

dilakukan operasi.

Untuk program yang pertama, tipe data yang digunakan adalah tipe

data array, dengan judul Program Matriks. Pada program ini digunakan

kembali perulangan for untuk membaca baris dan kolom pada matriks yang

akan diulang. Setelah program ini dijalankan maka pada layar eksekusi akan

muncul tampilan yang memerintahkan kita untuk mengisi ukuran matriks

yang diinginkan serta elemen-elemen matriks tersebut. Pada saat elemen-

elemen matriks tersebut telah cukup maka pada saat kita menekan enter,

program akan menunjukkan pada kolom berapa dan baris berapa elemen-

elemen matriks tersebut. Jadi, seperti pada hasil eksekusi program di atas

ukuran matriks yang dimasukkan berukuran 3 x 4, sehingga kita harus

memasukkan elemen-elemen matriks sebanyak 12 angka. Pada bagian

deklarasi type tampak tampilan “Mat1 = Array [1..50, 1..50] of Real”, ini

berarti dalam program tersebut ada lima elemen dalam array Mat1 yang

dinyatakan dengan Mat1[1] sampai dengan Mat1[50]. Yang dimaksud indeks

array adalah 1 s/d 50, yang menunjukkan banyaknya data yang mampu

disimpan. Adapun tipe data real menunjukkan bahwa data yang diinput

berupa bilangan real.

Selanjutnya untuk program yang kedua dengan tipe data record dapat

dilihat pada program yang berjudul Program KRS_Mahasiswa (Input,Output)

Page 38: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 37

2010

yang mengandung perulangan while-do dan perulangan for untuk mengulangi

pernyataan yang diinginkan. Program tersebut menggunakan record

dikombinasi dengan array, bertujuan untuk mengisi data lebih dari satu. Pada

bagian deklarasi juga terdapat “NamaMhs : STRING [20]” dan “KodeFak

STRING [5]”, yang berarti jumlah karakter pada nama mahasiswa tidak boleh

lebih dari 20 dan nomor mahasiswa tidak boleh lebih dari 5 karakter. Pada

hasil eksekusi program ini pertama-tama meminta kita untuk mengisi ada

berapa jumlah record yang diinginkan kemudian kita mengisi nama

mahasiswa, nomor mahasiswa dan kode fakultas sebanyak record yang

diinginkan sesuai jumlah karakter yang telah ditentukan. Setelah mengisi data-

data tersebut maka program akan menuliskan data yang sebelumnya telah

tersimpan sesuai dengan urutan record yang ingin kita tampilkan kembali, jika

kita ingin menampilkan record yang lain, kita mengetikkan Y, kemudian kita

tinggal mengetikkan nomor record yang akan ditampilkan, dan jika tidak

ketik N.

F. KESIMPULAN

Kesimpulan yang dapat diambil dari percobaan ini adalah sebagai

berikut :

1. Tipe data Array adalah tipe data terstruktur yang terdiri dari sejumlah

komponen-komponen yang mempunyai tipe sama.

2. Tipe data Record adalah tipe data yang menyimpan sekumpulan elemen

data yang tipenya berbeda-beda.

Page 39: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 38

2010

3. Tipe data array dalam program matriks digunakan untuk menyatakan

elemen-elemen matriks beserta hasil-hasil perkalianya. Adapun program

dengan tipe data record digunakan untuk memasukkan sejumlah data dan

menampilkan data dengan sesuai dengan nomor yang kita inginkan.

G. SARAN

Saran saya untuk para praktikan agar tidak hanya menggunakan satu

sumber saja (penuntun) dalam belajar tapi juga menggunakan referensi lain

yang berhubungan dengan turbo pascal guna menambah pengetahuan tentang

pemrograman pascal.

Page 40: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 39

2010

Page 41: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 40

2010

PERCOBAAN IV

FILE DAN DATA

A. TUJUAN

1. Memahami Tipe-tipe Data File.

2. Mencoba Data File Tipe Skalar Dan Tipe Teks.

3. Mencoba Program Pengisi File.

4. Mencoba Program Membaca Isi File.

5. Mencoba Program Membuat File Teks.

B. TEORI

Contoh-contoh program sebelum ini hanya menggunakan

mainmemeory. Ada beberapa kelemahan yang dijumpai yaitu ;

Kapasitas memory terbatas

Setelah komputer dimatikan, data hasil proses akan hilang karena tidak

mempunyai simpanan data dan hasil.

Untuk mengatasi hal ini diguakan secondary memory untuk

menyimpan data dan hasil pemrosesan program dalam bentuk file. Disamping

itu program yang dibicarakan terdahulu bersifat interaktif yaitu input dari

keyboard dan output di monitor. Sebagai alternatif digunakan pemrosesan

bath (bath processing). Dengan cara ini hasil bisa ditampilkan melalui

monitor bisa juga disimpan dalam bentuk suatu file, dan input bisa dalam

bentuk file pula. File bisa dibuat melalui editor Pascal dan ws non document.

Page 42: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 41

2010

Untuk membedakan dengan file-file yang ada biasanya nama file yang dibuat

diberi ekstensi .DAT atau HSL (Jahiding, 2009).

File Teks disusun sebagai runtunan beberapa baris .

Tiap baris terdiri dari runtunan karakter.

Tiap baris diakhiri oleh karakter khusus, yaitu END-OF-LINE (EOLN) .

Karakter yang terakhir dari file teks adalah END-OF-FILE (EOF).

EOF adalah menerima argumen nama file dan menghasilkan nilai true

jika sudah tidak ada data yang bisa dibaca lagi. Dan EOLN adalah menerima

argumen nama file dan menghasilkan nilai true jika sudah tidak ada lagi data

yang bisa lagi dalam satu baris.

Untuk melakukan operasi pada file teks, kita perlu mendeklarasikan

suatu variabel dengan tipe teks seperti berikut:

var

F : text;

F adalah sembarang variabel file teks dan readme adalah nama file teks

yang akan dibaca, pertama kita harus memanggilnya dengan fungsi:

assign(F,'README');

Sebelum kita bisa membaca kita harus membuka file tersebut.

reset(F);

Kita bisa membaca file baris demi baris, misalkan dengan menyatakan suatu

variabel s sebagai string:

readln(F,s);

Setelah selesai membaca keseluruhan teks kita harus menutupnya dengan:

Page 43: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 42

2010

close(F);

Kita membuat suatu file teks dengan mengubah kata kunci :

reset(F); menjadi rewrite(F);

Kemudian: Gunakan readln(F,s) untuk membaca file yang akan dikopi dan

writeln(F,s) untuk menulis ke file tujuan (misal kita punya suatu file dengan

path ‘D:\file1.txt’) dan kita akan memgkopinya ke file dengan path

‘D:\file1.txt’).

Untuk mengatasi error pada pembacaan file teks digunakan

errorhandling, yaitu :

{$I-} --> membuat Pascal stabil,

: --> proses pada file,

{$I+} --> deteksi terhadap error.

Error dapat di deteksi dengan memanggil fungsi IOResult. Jika

IOresult adalah 0, maka tidak terjadi error (Yulianto, 2006).

Variabel adalah bentuk penyimpanan internal ketika program dijalankan.

Setelah program selesai, maka nilai variabel tersebut akan hilang. Ada

banyak kasus dimana diinginkan agar nilai variabel bisa disimpan

kemudian dipakai kembali. Untuk melakukan penyimpanan tersebut, kita

bisa menggunakan file (berkas).

File adalah suatu bentuk penyimpanan eksternal dalam suatu media

penyimpanan. Program yang ditulis adalah sebuah file, hasil kompilasi

(program) juga adalah sebuah file. Ketika Anda mengedit dengan editor,

yang Anda edit merupakan file yang jenisnya adalah teks.

Page 44: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 43

2010

File berguna untuk menyimpan data yang akan dipakai kembali, karena

apa yang disimpan di file akan ada di media penyimpanan sekunder

(harddisk atau disket), dan dapat dipakai kembali meskipun komputer

sudah dimatikan. Hal ini berbeda dengan variabel yang nilainya akan

hilang ketika program selesai berjalan.

(www.unsoed.ac.id/.../Pemrograman/PAF%2008217%20Pemrograman

%20Komp%20Pascal.pdf).

C. LANGKAH-LANGKAH PERCOBAAN

1. Ketik pada editor turbo pascal dan jalankan program di bawah ini: Program Mengisi_File; { Program membuat dan mengisi data pada file dengan type integer } Uses Wincrt; Type Filink = File of Integer; Var Bil : Integer; Fil : Filink; Begin Clrscr; Assign (Fil,'Data.Int'); Rewrite (Fil); Writeln ('Masukkan Bilangan-Bilangan Bulat ! '); Writeln ('Tiap Satu Bilangan Ditekan Return'); Writeln ('Jika Selesai Isikan Bilangan 0 '); Read (bil); Write (' '); While bil <> 0 Do Begin Write (fil,bil); Read (bil); Write (' '); End; Close (Fil); End.

2. Ketik pada editor turbo pascal dan jalankan program dibawah ini:

Page 45: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 44

2010

Program Membaca_Isi_File; {Program membaca isi file yang telah dibuat sebelumnya} Uses Wincrt; Type Filink = File of Integer; Var Bil,I : Integer; Fil : Filink; Begin Clrscr; Assign (Fil,'Data.Int'); Reset (Fil); Writeln ('Data yang dibaca dari file Data.Int'); Writeln ('Adalah sebagai berikut : '); Writeln; I:=0; While not EOF (Fil) Do Begin I:= I + 1; Read (Fil,Bil); Write (bil,' '); End; Writeln; Writeln; Writeln('Banyaknya data yang dibaca adalah : ',I); Close (Fil); Readln; End.

3. Ketik pada editor turbo pascal dan jalankan program dibawah ini:

Program Membuat_File_Text; {Program membuat dan mengisi data pada file dengan type text} Uses Wincrt; Var Fteks : Text; Nafil : String [15]; Teks : String [80]; Begin Clrscr; Write ('Tulis nama filenya : '); Readln (Nafil); Assign (Fteks,nafil); Rewrite (Fteks); Write ('Tulis datanya, jika selesai tulis titik (.)'); Writeln; Readln (teks);

Page 46: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 45

2010

While Teks <> '.' Do Begin Write (Fteks,teks); Readln (teks); End; Close (Fteks); End.

D. PERCOBAAN DAN HASIL EKSEKUSI

6. Program Mengisi File

Program Mengisi_File; { Program membuat dan mengisi data pada file dengan type integer } Uses Wincrt; Type Filink = File of Integer; Var Bil : Integer; Fil : Filink; Begin Clrscr; Assign (Fil,'Data.Int'); Rewrite (Fil); Writeln ('Masukkan Bilangan-Bilangan Bulat ! '); Writeln ('Tiap Satu Bilangan Ditekan Return'); Writeln ('Jika Selesai Isikan Bilangan 0 '); Read (bil); Write (' '); While bil <> 0 Do Begin Write (fil,bil); Read (bil); Write (' '); End; Close (Fil); End.

Hasil Eksekusi

Page 47: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 46

2010

7. Program Membaca Isi File

Program Membaca_Isi_File; {Program membaca isi file yang telah dibuat sebelumnya} Uses Wincrt; Type Filink = File of Integer; Var Bil,I : Integer; Fil : Filink; Begin Clrscr; Assign (Fil,'Data.Int'); Reset (Fil); Writeln ('Data yang dibaca dari file Data.Int'); Writeln ('Adalah sebagai berikut : '); Writeln; I:=0; While not EOF (Fil) Do Begin I:= I + 1; Read (Fil,Bil); Write (bil,' '); End; Writeln; Writeln; Writeln('Banyaknya data yang dibaca adalah : ',I); Close (Fil); Readln; End.

Hasil Eksekusi

Page 48: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 47

2010

8. Program Membuat File Text

Program Membuat_File_Text; {Program membuat dan mengisi data pada file dengan type text} Uses Wincrt; Var Fteks : Text; Nafil : String [15]; Teks : String [80]; Begin Clrscr; Write ('Tulis nama filenya : '); Readln (Nafil); Assign (Fteks,nafil); Rewrite (Fteks); Write ('Tulis datanya, jika selesai tulis titik (.)'); Writeln; Readln (teks); While Teks <> '.' Do Begin Write (Fteks,teks); Readln (teks); End; Close (Fteks); End.

Hasil Eksekusi

Page 49: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 48

2010

E. PEMBAHASAN

Pada percobaan ini kita membuat 3 program yaitu program mengisi

file, program membaca file, program membuat file_teks.

Pada program mengisi file, tipe yang dideklarasikan adalah filink yang

berupa file of integer dan variabel yang dideklarasikan adalah bilangan (bil)

yang berupa integer dan fil yang berupa file of integer. Sebelum suatu file

digunakan, maka nama file (external file) tersebut harus dihubungkan dengan

variabel file. Pada bagian pernyataan dideklarasikan “Assign (Fil,’Data.int’)”,

Fil adalah variabel file, dan Data.int adalah external file. Prosedur assign akan

menjalani tipe file pada nama file eksternal atau piranti logika yang ditentukan

oleh strim nama file. Adanya prosedur rewrite pada bagian pernyataan

memungkinkan untuk membuka file baru atau menulis di atas file yang sudah

ada yang disebut filename. Selain itu pada pernyataan juga terdapat

perulangan while-do yaitu “While bil < > 0 Do”, artinya bilangan yang kita

input ke program, kita akan terus-menerus akan mengisi data sampai kita

memasukkan nilai nol (0). Selanjutnya prosedur write pada “Write (fil,bil)”

digunakan untuk merekam satu atau lebih nilai ke dalam file.

Page 50: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 49

2010

Selanjutnya pada program membaca isi file, program ini dapat

membaca isi file yang telah dibuat sebelumnya. Program ini menggunakan

deklarasi type yaitu filink yang berupa file of integer dan deklarasi variabel

yaitu bil dan I yang berupa integer dan fil sebagai filink. Pada bagian

pernyataan ”While not EOF (Fil) Do” dalam program ini terdapat EOF (End-

Of-File) yang berfungsi untuk menerima argumen nama file dan menghasilkan

nilai true jika sudah tidak ada data yang bisa dibaca lagi.

Berikutnya adalah program membuat file text dalam percobaan ini

berbeda dengan program mengisi file yang hanya dapat membaca data dalam

bentuk angka saja. Pada program membuat file text menggunakan deklarasi

variabel yaitu Fteks sebagai tipe text, nafil yang bertipe data string dengan

subscribe 15 dan teks yang bertipe data string dengan subscribe 80 dan kita

dapat memasukkan data baik dalam bentuk angka maupun teks. Pada Program

membuat file kita dapat memasukkan data dalam bentuk angka dan huruf/text

yang akan disimpan. Untuk membuka kembali isi file tersebut digunakan

program membuka isi file, yang menampilkan kembali nilai-nilai yang telah

kita simpan dalam program mengisi file.

F. KESIMPULAN

Kesimpulan yang dapat diambil dari hasil percobaan dan pembahasan

adalah sebagai berikut :

Page 51: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 50

2010

1. File adalah tempat menyimpan data dan hasil pemrosesan program dan file

bisa dibuat melalui editor pascal dan ws non document.

2. Pada program mengisi file menggunakan dua deklarasi yaitu deklarasi

type adalah filink yang berupa file of integer dan deklarasi variabel adalah

bil yang bertype integer dan kita hanya dapat memasukkan data dalam

bentuk angka saja.

3. Pada program membaca isi file, yang dideklarasikan adalah filink yang

berupa file of integer, sedangkan variabel yang dideklarasikan adalah bil

dan I yang bertipe data integer dan fil sebagai bertipe filink yang berupa

file of integer.

4. Pada program membuat file text menggunakan deklarasi variabel yaitu

Fteks sebagai tipe text, nafil yang bertipe data string dengan subscribe 15

dan teks yang bertipe data string dengan subscribe 80 dan kita dapat

memasukkan data baik dalam bentuk angka maupun teks.

G. SARAN

Sebaiknya asisten tidak hanya menjelaskan program yang ada dalam

penuntun tapi juga dapat diambil dari buku-buku lain yang terkait dengan

turbo pascal.

Page 52: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 51

2010

Page 53: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 52

2010

PERCOBAAN V

PROSEDUR DAN FUNGSI

A. TUJUAN

1. Memahami Struktur Subprogram (Subroutine).

2. Menyusun Program Menggunakan Procedure.

3. Menyusun Program Menggunakan Function.

B. TEORI

Subprogram adalah suatu program terpisah dalam blok tersendiri

program utama, dan dilaksanakan bila judul subprogram dipanggil pada

program utama. Subprogram tidak dapat berdiri sendiri artinya tidak dapat

dijalankan tanpa subprogram utama. Pascal menyediakan 2 (dua) macam

subprogram yaitu procedure dan function (Jahiding, 2009).

Program Pascal akan menjadi mudah dibuat jika ditulis dalam bentuk

modul-modul. Sistem modul ini memiliki beberapa keuntungan, diantaranya :

Untuk langkah-langkah yang sering dilakukan (bukan perulangan), akan

terhindar dari pembuatan pernyataanpernyataan yang sama.

Suatu modul program hanya sekali ditetapkan dan dapat dipanggil dari

beberapa tempat dalam program. Sekumpulan data yang berbeda juga

dapat diproses setiap kali modul tersebut dijalankan.

Dengan menggunakan sistem modul ini panjang program akan dapat

dikurangi. Dalam pascal terdapat dua tipe modul, yaitu prosedur dan fungsi

(procedures and functions). Dua tipe modul program ini sama, hanya cara

Page 54: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 53

2010

pemanggilannya berbeda, dan memberikan informasi dengan cara yang

berbeda.

Prosedur (Procedures) memiliki struktur yang sama dengan struktur

program, yaitu terdiri dari nama prosedur, pengumuman-pengumuman atau

deklarasi (kecuali pengumuman uses), dan bagian utama (pernyataan) dari

prosedur tersebut. Di dalam prosedur juga dimungkinkan terdapat prosedur

(atau fungsi) lainnya, sehingga dapat disebut dengan prosedur bersarang

(nested procedures).

(Yulianto, 2006).

Alasan penggunaan prosedur adalah sebagai berikut.

1. Digunakan untuk penggalan program yang akan digunakan secara

berulang – ulang dalam suatu proses program.

2. Digunakan untuk memecah – mecah program menjadi sebuah modul

program, sehingga listing program menjadi lebih sederhana.

Adapun syarat penulisan nama prosedur adalah:

1. Harus diawali dengan karakter.

2. Untuk nama prosedur dengan menggunakan dua kata atau lebih

penulisannya tidak boleh menggunakan spasi, harus digabung atau

dihubungkan dengan underscore ( _ )

3. Tidak mengenal tanda baca.

PROCEDURE nama(daftar_parameter)

Bagian deklarasi / pengumuman;

Bagian pernyataan;

Page 55: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 54

2010

(http://materi-praktek.blogspot.com/2007/03/bag-iv-prosedur-perulangan-

dan-megenal.html)

Fungsi (functions) hampir sama dengan prosedur, dengan sedikit

perbedaan bahwa nama fungsi sekaligus berfungsi sebagai suatu ungkapan

(pada blok pemanggil fungsi tersebut). Sehingga setiap fungsi harus

diumumkan tipe datanya.

(Yulianto, 2006).

Dan penulisan program fungsi ditempatkan pada program utama. Satu

hal yang perlu diperhatikan dalam penulisan fungsi adalah harus diikuti

dengan tipe datanya. Bentuk Umum penulisan Fungsi :

Fuction indentifier(daftar-parameter) : type;

Contoh :

Function hitung(var a,b : real) :real;

Penulisan blok fungsi diawali dengan kata cadang begin dan diakhiri

dengan end; (http://materi-praktek.blogspot.com/2007/03/bag-v-fungsi.html).

C. LANGKAH-LANGKAH PERCOBAAN

1. Ketik pada editor turbo pascal dan jalankan program dibawah ini: Program Coba1; Uses Wincrt; Var I,T : Integer;

FUNCTION nama_fungsi(daftar_parameter ): tipe;

Bagian deklarasi / pengumuman;

Bagian pernyataan;

Page 56: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 55

2010

Jawab : Char; Procedure Gambar_Segitiga (Tinggi : Integer); Var Puncak, Alas, Sisi, Blank : Integer; Begin Alas := Tinggi; For Puncak := 1 To Alas Do Begin For Blank := 1 To (Alas-Puncak) Do Write (' '); For Sisi := 1 To (2*Puncak-1) Do Write ('*'); Writeln; End; End; Procedure Tanya; Begin Write ('Mau Menggambar Kembali? (Y/T) : '); Readln (Jawab); End; Begin Clrscr; Gambar_Segitiga (10); Tanya; While (jawab = 'Y') or (jawab = 'y') Do Begin Write ('Tinggi Segitiga : '); Readln (T); Clrscr; Gambar_Segitiga (T); Tanya; End; End.

2. Ketik pada editor turbo pascal dan jalankan program dibawah ini:

Program Coba2; Uses Wincrt; Var N : Integer; Fak : Real; Procedure Faktorial (N:Integer; Var Fak:Real); Var I : Integer; Begin Fak := 1; For I:= 1 To N Do Fak := Fak*I; End; Begin Clrscr; Write('Bilangan yang akan dicari faktorialnya:');

Page 57: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 56

2010

Readln (N); Faktorial (N, Fak); Writeln ('Faktorial dari ',N,' adalah : ',Fak:10:2); Readln; End.

3. Ketik pada editor turbo pascal dan jalankan program dibawah ini: Program Coba3; Uses Wincrt; Var A,N,P : Integer; Function Pangkat (Bil, Pangk : Integer) : Integer; Var I,K : Integer; Begin K:=1; For I:= 1 To Pangk Do K:= K*Bil; Pangkat:=K; End; Begin Clrscr; Writeln ('2 Pangkat 5 adalah ', pangkat (2,5)); Writeln; Writeln ('Masukkan bilangan yang akan dipangkatkan'); Read (A); Write ('Pangkat '); Readln (N); P := Pangkat (A,N); Writeln (A,' Pangkat ',N,' adalah : ',P); Readln; End.

D. PROGRAM DAN HASIL EKSEKUSI

9. Program Coba1

Program Coba1; Uses Wincrt; Var I,T : Integer; Jawab : Char; Procedure Gambar_Segitiga (Tinggi : Integer); Var

Page 58: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 57

2010

Puncak, Alas, Sisi, Blank : Integer; Begin Alas := Tinggi; For Puncak := 1 To Alas Do Begin For Blank := 1 To (Alas-Puncak) Do Write (' '); For Sisi := 1 To (2*Puncak-1) Do Write ('*'); Writeln; End; End; Procedure Tanya; Begin Write ('Mau Menggambar Kembali? (Y/T) : '); Readln (Jawab); End; Begin Clrscr; Gambar_Segitiga (10); Tanya; While (jawab = 'Y') or (jawab = 'y') Do Begin Write ('Tinggi Segitiga : '); Readln (T); Clrscr; Gambar_Segitiga (T); Tanya; End; End.

Hasil Eksekusi

Page 59: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 58

2010

10. Program Coba2

Program Coba2; Uses Wincrt; Var N : Integer; Fak : Real; Procedure Faktorial (N:Integer; Var Fak:Real); Var I : Integer; Begin Fak := 1; For I:= 1 To N Do Fak := Fak*I; End; Begin Clrscr; Write ('Bilangan yang akan dicari faktorialnya : '); Readln (N); Faktorial (N, Fak); Writeln ('Faktorial dari ',N,' adalah : ',Fak:10:2); Readln; End.

Hasil Eksekusi

Page 60: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 59

2010

11. Program Coba3

Program Coba3; Uses Wincrt; Var A,N,P : Integer; Function Pangkat (Bil, Pangk : Integer) : Integer; Var I,K : Integer; Begin K:=1; For I:= 1 To Pangk Do K:= K*Bil; Pangkat:=K; End; Begin Clrscr; Writeln ('2 Pangkat 5 adalah ', pangkat (2,5)); Writeln; Writeln ('Masukkan bilangan yang akan dipangkatkan'); Read (A); Write ('Pangkat '); Readln (N); P := Pangkat (A,N); Writeln (A,' Pangkat ',N,' adalah : ',P); Readln; End.

Hasil Eksekusi

Page 61: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 60

2010

E. PEMBAHASAN

Program yang pertama yaitu program coba1 menggunakan deklarasi

varaibel yaitu I, T yang berupa integer dan jawab yang berupa character.

Program ini menggunakan subprogram procedure. Prosedur adalah suatu

program terpisah dan berdiri dalam suatu blok program dan befungsi sebagai

sebuah sub program (program bagian). Penulisan prosedur diawali dengan

kata procedure pada bagian deklarasi program dan cukup menuliskan nama

prosedur yang dibuat pada bagian Implementasi. Dalam program ini terdapat

“Procedure Gambar_Segitiga (Tinggi : Integer)”, yang menyatakan bahwa

nama prosedurnya adalah gambar segitiga dengan tinggi sebagai parameternya

yang bertype data integer. Prosedur ini menggunakan deklarasi variabel yaitu

puncak, alas, sisi, blank yang bertipe data integer. Pada bagian pernyataan

terdapat ”Alas := Tinggi;” menunjukkan bahwa alas sama dengan tinggi

dengan puncak yang tingginya sampai dengan alas, dan ”For Puncak := 1 To

Alas Do” menyatakan bahwa untuk puncak dimulai dari 1 sampai berapa

jumlah alas yang nantinya akan diinput pada saat program di eksekusi.

Selanjutnya pada pernyataan ”For Blank := 1 To (Alas-Puncak) Do Write (' ');

For Sisi := 1 To (2*Puncak-1) Do Write ('*');”, menyatakan bahwa bagian

blank mulai dari 1 sampai dengan alas-puncak dan sisi yang dimulai dari 1

sampai dengan 2 kali puncak-1. Pada hasil eksekusi terlihat sebuah segitiga

dengan tinggi segitiga sesuai dengan yang kita inginkan dengan alas segitiga 2

kali banyaknya blank yang menyatakan tinggi segitiga tersebut. Adapun

prosedur yang kedua pada program ini yaitu ”Procedure Tanya;”. Pernyataan

Page 62: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 61

2010

” While (jawab = 'Y') or (jawab = 'y') Do ” pada bagian ini, akan meminta kita

untuk memasukkan pernyataan apakah kita ingin menggambar ulang sebuah

segitiga atau tidak dengan opsi/pilihan Y untuk ya dan T untuk tidak. Jika kita

menuliskan Y maka program akan meminta kita untuk memasukkan tinggi

segitiga yang kita inginkan sedangkan jika kita menuliskan T maka program

tidak meneruskan pernyataan tersebut.

Selanjutnya program yang kedua yaitu program coba2 yang

menggunakan deklarasi variabel yaitu N yang bertipe data integer dan fak

yang bertipe real, percobaan ini juga menggunakan subprogram prosedur

yaitu ”Procedure Faktorial (N : Integer; Var Fak : Real);”. Pada prosedur ini

menggunakan deklarasi variabel yaitu I yang bertipe data integer. Program ini

menentukan hasil faktorial dari sebuah bilangan yang diinput pada ssat

program di eksekusi, dimana output dari bilangan yang akan dicari

faktorialnya adalah N dan nilai N harus terdiri dari 10 angka dengan 2 angka

dibelakang koma.

Sedangkan pada percobaan yang ketiga yaitu Program coba3 yang

menggunakan deklarasi variabel yaitu A, N, P yang bertipe data integer dan

program ini merupakan contoh untuk penggunaan subprogram fungsi yaitu

”Function Pangkat (Bil,pangk:integer) yang bertipe integer. Pada deklarasi

subprogram ini menggunakan deklarasi variabel yaitu I, K yang bertipe

integer. Hasil eksekusi program akan menampilkan hasil perpangkatan dari 25

yang hasilnya adalah 32 dan selanjutnya pada hasil eksekusi kita juga dapat

memasukkan angka yang ingin kita pangkatkan.

Page 63: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 62

2010

F. KESIMPULAN

Adapun kesimpulan dari percobaan ini adalah sebagai berikut :

1. Subprogram adalah suatu program terpisah dalam blok tersendiri program

utama, dan dilaksanakan bila judul subprogram dipanggil pada program

utama. Subprogram tidak dapat berdiri sendiri artinya tidak dapat

dijalankan tanpa subprogram utama.

2. Prosedur adalah suatu program terpisah dan berdiri dalam suatu blok

program dan befungsi sebagai sebuah sub program (program bagian).

3. Fungsi hampir sama dengan prosedur, dengan sedikit perbedaan bahwa

nama fungsi sekaligus berfungsi sebagai suatu ungkapan (pada blok

pemanggil fungsi tersebut).

G. SARAN

Saran saya pada percobaan ini adalah sebaiknya program yang salah

pada buku penuntun bisa diperbaiki agar kedepannya pada saat praktikum bisa

berjalan lancar.

Page 64: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 63

2010

Page 65: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 64

2010

PERCOBAAN VI

GRAFIK

A. TUJUAN

1. Memahami Unit Grafik Turbo Pascal.

2. Mengetahui Perintah-Perintah dalam Unit Graph.

3. Menggambar Kotak dengan Turbo Pascal.

4. Menggambar Lingkaran dengan Turbo Pascal.

5. Menggambar Grafik Sinusoidal.

B. TEORI

Turbo pascal menyediakan fasilitas untuk membuat grafik, pembuatan

grafik harus disesuaikan dengan jenis monitor. Menggambar pada monitor

mempunyai kesamaan pada kertas grafik, bedanya bila sudut kiri bawah kertas

grafik biasa dipakai sebagai pusat koordinat, sedangkan pada layar monitor

sudut kiri atas sebagai pusat koordinat dengan arah ke kanan sebagai x positif

dan arah ke bawah sebagai y positif.

Beberapa program pembantu yang sering dipakai dalam menggambar

grafik.

Circle (x,y,r); digunakan untuk menggambar lingkaran dengan pusat (x,y)

dan radius r.

Rectangle (x1,y1,x2,y2); digunakan untuk menggambar segiempat dengan

titik sudut kiri atas di (x1,y1) dan sudut kanan bawah di (x2,y2).

Page 66: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 65

2010

Line (x1,y1,x2,y2); digunakan untuk menggambar garis dan titik (x1,y1)

ke titik (x2,y2).

Bar (x1,y1,x2,y2); digunakan untuk menggambar kotak dengan titik sudut

(x1,y1) dan (x2,y2) . (Tim Penyusun,2009:14)

Untuk dapat bekerja dalam mode grafik harus menggunakan unit graph

karena dalam unit ini tersimpan prosedur dan fungsi untuk menggambar

(File Graph TPU). Pastikan bahwa pada disket kerja tersimpan file-file

dengan ekstensi BGI dan Ekstensi CHR. Disamping itu bekerja dengan

mode grafik mempunyai aturan tertentu yaitu diawali dengan bagian

pembukaan dan diakhiri dengan bagian penutup.

Mendefinisikan macam driver yang ada dalam komputer, misalnya

dengan perintah :

Graphdriver := Detect; (mencari sendiri macam driver)

Memberitahukan bahwa bekerja dengan mode grafik dengan perintah :

Inithgraph(graphdriver,Graphmode,’a : ’);

Salah satu cara menggambar grafik pada Pascal yaitu

menggunakan Graphyx Toolbox. Pada Graphyx Toolbox tidak diperlukan

lagi penskalaan karena dikerjakan oleh Graphyx Toolbox sendiri. Sebelum

bekerja dengan Graphyx Toolbox, pada disket kerja disalin file

GDRIVER.TPU, GKERNEL.TPU, ERROR.MSG dan 4X6.FON.

Sebenarnya ada beberapa unit dalam Graphyx Toolbox tetapi yang dipakai

dalam buku ini hanya Gkernel dan Gdriver. Seperti pada unit grafik, sudut

Page 67: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 66

2010

kiri atas layar monitor koordinatnya (0,0) sedangkan ujung kanan bawah

koordinat (xmaxglb, ymaxglb), bagian layar monitor yang dipakai sebagai

bidang gambar disebut jendela (window), sedang sesuatu yang digambar

disebut semesta (world). Layar monitor dapat diisikan 16 jendela dan

semesta yang dapat dilayani hanya 4 buah.

Untuk memilih semesta n dan jendela m adalah,

Definewindow(m,0,0,xmaxglb,ymaxglb);

Defineworld(n,xmin,ymin,xmax,ymax);

Untuk memberitahu semesta n digambar pada jendela m adalah

Selectworld(n);

Selectwindow9m);

Untuk memberijudul pada gambar di layar monitor, dengan perintah

Defineheader(n,’nama judul’);

Setheaderon;

(M. Jahiding, S.Si., M.Si,2009: )

C. LANGKAH-LANGKAH PERCOBAAN

1. Ketik pada editor turbo pascal dan jalankan program di bawah ini:

Program Menggambar_Kotak; {Digunakan procedure standart untuk menggambar garis yaitu : Draw (X1,Y1,X2,Y2,Warna); dimana X = 0 sampai dengan 319 dan Y = 0 sampai dengan 199)} Uses Graph3; Begin Grapcolormode; Draw (20,10,300,10,3); Draw (300,10,300,190,3); Draw (300,190,20,190,3);

Page 68: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 67

2010

Draw (20,190,20,10,3); End.

2. Ketik pada editor turbo pascal dan jalankan program di bawah ini:

Program Menggambar_Lingkaran; {digunakan procedure standar untuk menggambar garis yaitu : Circle (X1,Y1,R,Warna)} Uses Graph3; Var Jari2 : Integer; Begin Grapcolormode; Write (‘Berapa nilai jari-jari lingkaran’); Readln (jari2); Jari2 := 199; I:= 1 Repeat Repeat Circle (160,100,jari2,3); Jari2 := jari2 - 5 Until Jari2 > 195; Until I = 5 End.

3. Ketik pada editor turbo pascal dan jalankan program di bawah ini:

Program Sinusoidal; Uses Crt, Graph; Var Xmax, Ymax, X,Y,Y1,Y2 : Integer; Errorcode, Graphmode, Grapdriver : Integer; Begin Graphmode := CGAC2 Grapdriver : CGA; Initgraph := Graphhresult; Errorcode := GraphrsuIt; If Errorcode <> Grok Then Halt; Xmax := Getmaxx; Ymax := Getmaxy; For X := 0 To Xmax Do Begin Yl := Round (Ymax Div 4*sin (X*3.5*Pi/Xmax); Y2 := Round (Ymax Div 6*sin (X*3.5*Pi/Xmax); Y = Y1 + Y2; Yl :=Ymax Div 2-Y1; Putpixel (X, Yl, Getmaxcolor); Y2 := Ymax Div 2-Y2; Putpixel (X, Y2, Getmaxcolor-1);

Page 69: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 68

2010

Y := Ymax Div 2-Y; Putpixel (X, Y, Getmaxcolor-2); End; Repeat until Readkey = #27; Closegraph; End.

D. PERCOBAAN DAN HASIL EKSEKUSI

1. Progam Menggambar Kotak

Program Menggambar_Kotak; {Digunakan procedure standart untuk menggambar garis yaitu : Draw (X1,Y1,X2,Y2,Warna); dimana X = 0 sampai dengan 319 dan Y = 0 sampai dengan 199)} Uses Graph3; Begin Grapcolormode; Draw (20,10,300,10,3); Draw (300,10,300,190,3); Draw (300,190,20,190,3); Draw (20,190,20,10,3); End.

Hasil Eksekusi

Untuk hasil eksekusi pada percobaan ini tidak dapat dilakukan sebab pada

tipe pascal yang digunakan tidak tersedia unit yang dibutuhkan untuk

mengeksekusi program untuk menggambar kotak.

2. Program Menggambar Lingkaran

Program Menggambar_Lingkaran; {digunakan procedure standar untuk menggambar garis yaitu : Circle (X1,Y1,R,Warna)} Uses Graph3; Var Jari2 : Integer; Begin Grapcolormode; Write (‘Berapa nilai jari-jari lingkaran’); Readln (jari2); Jari2 := 199; I:= 1

Page 70: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 69

2010

Repeat Repeat Circle (160,100,jari2,3); Jari2 := jari2 - 5 Until Jari2 > 195; Until I = 5 End.

Hasil Eksekusi

Untuk hasil eksekusi pada percobaan ini tidak dapat dilakukan sebab pada

tipe pascal yang digunakan tidak tersedia unit yang dibutuhkan untuk

mengeksekusi program untuk menggambar lingkaran.

3. Program Sinusoidal

Program Sinusoidal; Uses Crt, Graph; Var Xmax, Ymax, X,Y,Y1,Y2 : Integer; Errorcode, Graphmode, Grapdriver : Integer; Begin Graphmode := CGAC2 Grapdriver : CGA; Initgraph := Graphhresult; Errorcode := GraphrsuIt; If Errorcode <> Grok Then Halt; Xmax := Getmaxx; Ymax := Getmaxy; For X := 0 To Xmax Do Begin Yl := Round (Ymax Div 4*sin (X*3.5*Pi/Xmax); Y2 := Round (Ymax Div 6*sin (X*3.5*Pi/Xmax); Y = Y1 + Y2; Yl :=Ymax Div 2-Y1; Putpixel (X, Yl, Getmaxcolor); Y2 := Ymax Div 2-Y2; Putpixel (X, Y2, Getmaxcolor-1); Y := Ymax Div 2-Y; Putpixel (X, Y, Getmaxcolor-2); End; Repeat until Readkey = #27; Closegraph;

End.

Page 71: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 70

2010

Hasil Eksekusi

Untuk hasil eksekusi pada percobaan ini tidak dapat dilakukan sebab pada tipe

pascal yang digunakan tidak tersedia unit yang dibutuhkan untuk

mengeksekusi program untuk sinusoidal.

E. PEMBAHASAN

Turbo Pascal, menyediakan fasilitas untuk membuat grafik. Dimana

pada pembuatan grafik yang dilakukan harus disesuaikan dengan luas layar

monitor yang digunakan. Menggambar pada monitor mempunyai kesamaan

dengan menggambar pada kertas grafik, bedanya bila sudut kiri bawah kertas

grafik biasa dipakai sebagai pusat koordinat, layar pada monitor memakai

sudut kiri atas sebagai pusat koordinat dengan arah ke kanan sebagai X positif

dan arah kebawah sebagai Y positif. Untuk dapat bekerja dalam mode grafik

harus menggunakan unit graph karena dalam unit ini tersimpan prosedur dan

fungsi untuk menggambar (File Graph TPU). Pastikan bahwa pada disket

kerja tersimpan file-file dengan ekstensi BGI dan Ekstensi CHR. Disamping

itu bekerja dengan mode grafik mempunyai aturan tertentu yaitu diawali

dengan bagian pembukaan dan diakhiri dengan bagian penutup.

Program menggambar kotak, digunakan prosedur standard untuk

menggambar garis yaitu Draw (X1,Y1,X2,Y2,Warna). Pada program ini

dapat digunakan tiga jenis warna yaitu nomor 1 menandakan warna hijau,

nomor 2 menandakan warna merah dan nomor 3 menandakan warna oranye

Page 72: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 71

2010

kecoklatan. Jadi kita dapat mengganti warna sesuai dengan yang kita

inginkan dengan cara mengganti nilai warna dari prosedur draw di atas.

Untuk program membuat/menggambar lingkaran, digunakan prosedur

standard untuk menggambar lingkaran yaitu Circle (X1,Y1,R, Warna). Pada

hasil eksekusi nilai jari-jari yang digunakan adalah 30, untuk nilai X=160 dan

nilai Y=100, dan warna pada tampilan yang muncul adalah warna oranye

karena menggunkan kode warna 3.

Bukan hanya warna, kita dapat pula mengubah besarnya kotak

ataupun lingkaran yang kita buat dengan mengubah nilai x dan y dari

prosedur standardnya.

Salah satu cara menggambar grafik pada Pascal yaitu menggunakan

Graphyx Toolbox. Pada Graphyx Toolbox tidak diperlukan lagi penskalaan

karena dikerjakan oleh Graphyx Toolbox sendiri. Sebelum bekerja dengan

Graphyx Toolbox, pada disket kerja disalin file GDRIVER.TPU,

GKERNEL.TPU, ERROR.MSG dan 4X6.FON. Program yang ketiga yaitu

program menggambar grafik sinusoidal, program ini sudah dapat dibuat dan

dikompile dengan benar, namun hasil eksekusinya tidak dapat ditampilkan

oleh komputer yang digunakan, karena pada komputer tersebut tidak terdapat

program yang digunakan untuk grafik sinusoidal.

F. KESIMPULAN

Dari percobaan yang dilakukan, dapat ditarik kesimpulan sebagai

berikut :

Page 73: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 72

2010

1. Unit graph merupakan unit yang di dalamnya tersimpan prosedur dan

fungsi untuk menggambar (File Graph TPU).

2. Perintah-Perintah dalam Unit Graph yaitu Circle (x,y,r); digunakan untuk

menggambar lingkaran dengan pusat (x,y) dan radius r. Rectangle

(x1,y1,x2,y2); digunakan untuk menggambar segiempat dengan titik

sudut kiri atas di (x1,y1) dan sudut kanan bawah di (x2,y2). Line

(x1,y1,x2,y2); digunakan untuk menggambar garis dan titik (x1,y1) ke

titik (x2,y2). Bar (x1,y1,x2,y2); digunakan untuk menggambar kotak

dengan titik sudut (x1,y1) dan (x2,y2).

3. Pada program menggambar kotak digunakan prosedur standart untuk

menggambar garis yaitu draw (X1,Y1,X2,Y2,warna) dimana X=0 sampai

319 dan Y=0 sampai 199.

4. Pada program menggambar lingkaran digunakan prosedur standart untuk

menggambar garis yaitu circle (X1,Y1,R,warna).

5. Grafik dibuat dengan mendeklarasikan program pembantu Line

(X1,Y1,X2,Y2) dengan koordinat X1,Y1 adalah sebagai titik pangkal

garis dan X2,Y2 sebagai titik akhir garis.

G. SARAN

Sebaiknya program yang tidak bisa dieksekusi untuk computer lab

diganti dengan program lain, atau pihak laboratorium menyediakan computer

dan jenis turbo pascal selain yang digunakan saat ini, agar semua program

yang ada dipenuntun bisa dieksekusi.

Page 74: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 73

2010

Page 75: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 74

2010

Page 76: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 75

2010

PERCOBAAN VII

PROGRAM PEMBANTU (SUB PROGRAM)

A. TUJUAN

1. Memahami Program Pembantu

2. Membuat Program yang Mengandung Program Pembantu.

B. TEORI

Sesuai dengan namanya, program pembantu tidak dapat berdiri sendiri,

artinya suatu program pembantu tidak dapat dijalankan tanpa ada program

utama. Seperti halnya dengan variabel yang terdiri dari dua kelompok,

program pembantu juga terdiri dari dua kelompok, yaitu:

program pembantu standar; program pembantu yang disediakan oleh turbo

pascal,

program pembantu buatan; program pembantu yang dibuat oleh

pemrogram.

Selain itu, baik program pembantu standard maupun program

pembantu buatan masing-masing dibagi lagi menjadi dua kelompok menurut

banyaknya keluaran yang dihasilkan, yaitu

program pembantu prosedur, bila banyaknya keluaran yang dihasilkan

lebih dari satu,

program pmbantu fungsi, bila banyaknya keluaran hanya satu.

Telah disebutkan bahwa program pembantu tidak berdiri sendiri, harus

ada program utama yang memanggilnya. Tugas suatu program pembantu

Page 77: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 76

2010

adalah melakukan sebagian tugas dari program utama, yang dalam kaitan

dengan keperluan kita disini adalah melakukan sebagian dari perhitungan

yang menjadi tugas dari program utama. Mengingat fungsinya tersebut, maka

program pembantu dapat dikelompokkan sebagai berikut:

Program pembantu yang bergantung pada program utama. Program

pembantu kelompok ini mendapat masukan data dari program utama dan

kemudian mengeluarkan hasilnya juga ke program utama. Masukkan

disebut parameter nilai dan keluaran ini disebut parameter variabel.

Program pembantu yang setengah bebas. Program pembantu kelompok ini

mendapat masukan dari data program utama, tetapi hasilnya tidak

dikembalikan ke program utama melainkan langsung ke alat keluaran,

misalnya monitor atau alat cetak. Masukan untuk program pembantu disini

juga disebut parameter nilai.

Program pembantu yang bebas. Program pembantu kelompok ini tidak

mendapat masukan dari data program utama dan juga tidak mengeluarkan

hasilnya ke program utama. Jadi, untuk kelompok ini tidak ada parameter.

Bagian-bagian suatu program pembantu pada prinsipnya sama dengan

bagian-bagian suatu program sederhana, yaitu terdiri dari tiga bagian.

a. Bagian judul yang terdiri dari kata simpanan procedure, untuk program

pembantu prosedur, atau function, untuk program pembantu fungsi, dan

diikuti oleh nama program pembantu. Bila program pembantu termasuk

kelompok program pembantu yang bergantung pada program utama dan

kelompok program pembantu yang setengah bebas maka setelah nama

Page 78: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 77

2010

program pembantu diikuti lagi dengan parameter yang diletakkan antara

tanda kurung. Contoh:

Procedure Isi_benda (p,l,t : Real; Var isi : Real);

Function Isi_benda (p,l,t : Real) : Real;

b. Bagian deklarasi. Sama dengan bagian deklarasi pada program sederhana.

c. Bagaian badan. Ini juga sama dengan bagian badan pada program

sederhana, hanya akhirnya adalah kata simpanan END yang diikuti oleh

tanda titik-koma (;).

Sesuai dengan prinsip Pascal bahwa sesuatu yang akan dipakai harus

dideklarasikan dahulu (ada beberapa yang menyimpang dari prinsip ini) maka

program pembantu diletakkan pada bagian deklarasi program utama (Jahiding,

2009).

Pemanggilan prosedur terdapat dalam bagian implementation, pada

umumnya pemanggilan prosedur terdapat dalam suatu ruang lingkup object

yang mempunyai sebuah event. Cara pemenggilannya cukup hanya dituliskan

nama prosedurnya saja.atau ketika program prosedur digunakan pada object

yang lain untuk memanggil program yang sama kita hanya cukup menuliskan

nama prosedurnya tanpa dibutuhkan pendeklarasian prosedur baru

(http://materi-praktek.blogspot.com/2007/03/bag-iv-prosedur-perulangan-

dan-megenal.html).

Procedure dan Function ( program pembantu ) pada kedua program di atas

menggunakan variabel yang berbeda (panjang,lebar,tebal dan p,l,t).

Variabel p, l dan t merupakan variabel lokal, sehingga ketiga variabel itu

Page 79: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 78

2010

tidak dikenal oleh program utama dan juga oleh program pembantu yang

lain (procedure atau function yang lain). Sebaliknya variabel panjang,

lebar dan tebal merupakan variabel global, sehingga yang digunakan oleh

program utama, sehingga dikenal juga oleh program pembantu ( procedure

atau function yang lain ). Perhatikan cara penulisan procedure dan function

berikut:

Procedure IsiLuas(p,l,t : real; Var a,v : real);

dan

Function Vol(p,l,t : real) : real;

Kedua program pembantu tsb merupakan program pembantu yang

tergantung pada program utama dan program pembantu yang setengah

bebas, karenanya setelah nama procedure atau nama Function harus diikuti

parameter yang diletakkan diantara tanda kurung.

(www.achsan.staff.gunadarma.ac.id/Downloads/files/12616/Modul+Pasca

l.pdf).

C. LANGKAH-LANGKAH PERCOBAAN

12. Ketik pada editor turbo pascal dan jalankan program di bawah ini:

{Program yang Menggunakan Program Pembantu Prosedur} Program Isi_luas_balok_1; Uses wincrt; Var panjang, lebar, tebal, luas, isi : Real; Procedure Isi_luas (p, l, t : Real; Var a, v : Real); Begin v := p * l * t; a := 2 * (p * l + l * t + t * p); End;

Page 80: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 79

2010

Begin {Program utama} Write ('Panjang :'); Readln (panjang); Write ('Lebar :'); Readln (lebar); Write ('Tebal :'); Readln (tebal); Isi_luas (panjang, lebar, tebal, luas, isi); Writeln ('Luas permukaan balok :',luas:10:2); Writeln ('Isi balok :',isi:10:2); End. {Program utama}

13. Ketik pada editor turbo pascal dan jalankan program di bawah ini:

{Pemakaian Program Pembantu Fungsi} Program Isi_Luas_balok_2; Uses Wincrt; Var panjang, lebar, tebal, luas, isi : Real; Function Vol (p, l, t : Real) : Real; Begin Vol := p * l * t; End; Function Area (p, l, t : Real) : Real; Begin Area := 2 * (p * l + l * t + t * p); End; Begin {program utama} Write ('Panjang :'); Readln (panjang); Write ('Lebar :'); Readln (lebar); Write ('Tebal :'); Readln (tebal); Luas := Area (panjang, lebar, tebal); Isi := Vol (panjang, lebar, tebal); Writeln ('Luas permukaan balok :', Luas:10:2); Writeln ('Isi balok :',Isi:10:2) End. {program utama}

14. Ketik pada editor turbo pascal dan jalankan program di bawah ini:

{Program yang Mengandung Program Pembantu 1} Program isi_luas_balok_3; Uses Wincrt; Var p,l,t,luas,isi :real; Procedure isi_luas; Begin isi:=p*l*t; luas:=2*(p*l+l*t+t*p); End; Begin {Program utama}

Page 81: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 80

2010

Write ('Panjang :');readln (p); Write ('Lebar :');readln (l); Write ('Tebal :');readln (t); Isi_luas; Writeln ('Luas permukaan balok :',luas:10:2); Writeln ('Isi balok :',isi:10:2); End.{Program utama}

15. Ketik pada editor turbo pascal dan jalankan program di bawah ini:

{Program yang Mengandung Program Pembantu 2} Program Isi_Luas_Balok_4; Uses Wincrt; Var p,l,t,luas,isi : Real; Function Vol : Real; Begin Vol := p*l*t; End; Function Area : Real; Begin Area := 2*(p*l+l*t+t*p); End; Begin {Program utama} Write ('Panjang : '); Readln (p); Write ('Lebar : '); Readln (l); Write ('Tebal : '); Readln (t); luas := Area; isi := Vol; Writeln ('Luas permukaan balok : ',luas:10:2); Writeln ('Isi balok : ',isi:10:2); End. {Program utama}

16. Ketik pada editor turbo pascal dan jalankan program di bawah ini:

Program Pembantu Beda File 1

{Program pembantu procedure} Unit isiluas; Interface Uses Wincrt; Procedure Isi_luas (panjang,lebar,tebal : real; var a,v : real); Implementation Procedure isi_luas; Begin v := panjang*lebar*tebal; a := 2*(panjang * lebar + lebar * tebal +

Page 82: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 81

2010

tebal * panjang); End; End.

Program utama

Program Isi_luas_balok_5; Uses isiluas; Var panjang, lebar, tebal, a, v : Real; Begin {Program utama} Write (‘Panjang : ‘); Readln (panjang); Write (‘Lebar : ‘); Readln (lebar); Write (‘Tebal : ‘); Readln (tebal); Isi_luas (panjang, lebar, tebal, a, v); Writeln (‘Luas permukaan balok: ’,a:10:2); Writeln (‘Isi balok : ’,v:10:2); End. {Program utama}

17. Ketik pada editor turbo pascal dan jalankan program di bawah ini:

Program Pembantu Beda File 2

{Program pembantu function} Unit luasisi; Interface Uses Wincrt; Function vol (p, l, t : Real) : Real; Function area (p, l, t : Real) : Real; Implementation Function vol (p, l, t : Real) : Real; Begin Vol := P * l * t; End; Function area (p, l, t : Real) : Real; Begin Area : 2 * (p * l + l * t + t * p); End; End.

Program utama

Program Isi_luas_balok_6; Uses luasisi; Var P, l, t, areal, volume : Real; Begin {Program utama} Write (‘Panjang : ‘); Readln (p);

Page 83: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 82

2010

Write (‘Lebar : ‘); Readln (l); Write (‘Tebal : ‘); Readln (t); Areal := Area (p, l, t); Volume := vol (p, l, t); Writeln (‘Luas permukaan balok : ’ ,areal:10:2); Writeln (‘Isi balok : ’,volume:10:2); End.

D. PROGRAM DAN HASIL EKSEKUSI

1. Program yang Menggunakan Program Pembantu Prosedur

Program Isi_luas_balok_1; Uses wincrt; Var panjang, lebar, tebal, luas, isi : Real; Procedure Isi_luas (p, l, t : Real; Var a, v : Real); Begin v := p * l * t; a := 2 * (p * l + l * t + t * p); End; Begin {Program utama} Write ('Panjang : '); Readln (panjang); Write ('Lebar : '); Readln (lebar); Write ('Tebal : '); Readln (tebal); Isi_luas (panjang, lebar, tebal, luas, isi); Writeln ('Luas permukaan balok = ',luas:10:2); Writeln ('Isi balok = ',isi:10:2); End. {Program utama}

Hasil Eksekusi

Page 84: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 83

2010

2. Pemakaian Program Pembantu Fungsi

Program Isi_Luas_balok_2; Uses Wincrt; Var panjang, lebar, tebal, luas, isi : Real; Function Vol (p, l, t : Real) : Real; Begin Vol := p * l * t; End; Function Area (p, l, t : Real) : Real; Begin Area := 2 * (p * l + l * t + t * p); End; Begin {program utama} Write ('Panjang : '); Readln (panjang); Write ('Lebar : '); Readln (lebar); Write ('Tebal : '); Readln (tebal); Luas := Area (panjang, lebar, tebal); Isi := Vol (panjang, lebar, tebal); Writeln ('Luas permukaan balok = ', Luas:10:2); Writeln ('Isi balok = ',Isi:10:2) End. {program utama}

Hasil Eksekusi

3. Program yang Mengandung Program Pembantu 1

Program isi_luas_balok_3; Uses Wincrt; Var p,l,t,luas,isi :real; Procedure isi_luas; Begin isi:=p*l*t; luas:=2*(p*l+l*t+t*p); End;

Page 85: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 84

2010

Begin {Program utama} Write ('Panjang : ');readln (p); Write ('Lebar : ');readln (l); Write ('Tebal : ');readln (t); Isi_luas; Writeln ('Luas permukaan balok = ',luas:10:2); Writeln ('Isi balok = ',isi:10:2); End.{Program utama}

Hasil Eksekusi

4. Program yang Mengandung Program Pembantu 2

Program Isi_Luas_Balok_4; Uses Wincrt; Var p,l,t,luas,isi : Real; Function Vol : Real; Begin Vol := p*l*t; End; Function Area : Real; Begin Area := 2*(p*l+l*t+t*p); End; Begin {Program utama} Write ('Panjang : '); Readln (p); Write ('Lebar : '); Readln (l); Write ('Tebal : '); Readln (t); luas := Area; isi := Vol; Writeln ('Luas permukaan balok : ',luas:10:2); Writeln ('Isi balok : ',isi:10:2); End. {Program utama}

Hasil Eksekusi

Page 86: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 85

2010

5. Program Pembantu Beda File 1

Program pembantu

Unit isiluas; Interface Uses Wincrt; Procedure Isi_luas (panjang,lebar,tebal : real; var a,v : real); Implementation Procedure isi_luas; Begin v := panjang*lebar*tebal; a := 2*(panjang * lebar + lebar * tebal + tebal * panjang); End; End.

Program utama

Program Isi_luas_balok_5; Uses isiluas; Var panjang, lebar, tebal, a, v : Real; Begin {Program utama} Write (‘Panjang : ‘); Readln (panjang); Write (‘Lebar : ‘); Readln (lebar); Write (‘Tebal : ‘); Readln (tebal); Isi_luas (panjang, lebar, tebal, a, v); Writeln (‘Luas permukaan balok: ’,a:10:2); Writeln (‘Isi balok : ’,v:10:2); End. {Program utama}

Hasil Eksekusi

Page 87: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 86

2010

6. Program Pembantu Beda File 2

Program pembantu

Unit luasisi; Interface Uses Wincrt; Function vol (p, l, t : Real) : Real; Function area (p, l, t : Real) : Real; Implementation Function vol (p, l, t : Real) : Real; Begin Vol := P * l * t; End; Function area (p, l, t : Real) : Real; Begin Area : 2 * (p * l + l * t + t * p); End; End.

Program utama

Program Isi_luas_balok_6; Uses luasisi; Var P, l, t, areal, volume : Real; Begin {Program utama} Write (‘Panjang : ‘); Readln (p); Write (‘Lebar : ‘); Readln (l); Write (‘Tebal : ‘); Readln (t); Areal := Area (p, l, t); Volume := vol (p, l, t); Writeln (‘Luas permukaan balok : ’ ,areal:10:2); Writeln (‘Isi balok : ’,volume:10:2); End.

Page 88: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 87

2010

Hasil Eksekusi

E. PEMBAHASAN

Pada percobaan sebelumnya program yang dipakai adalah program

sederhana, yaitu program yang pada bagian deklarasinya tidak terdapat

program pembantu. Bila suatu program mempunyai program pembantu maka

program tadi disebut program utama. Suatu program pembantu tidak dapat

dijalankan tanpa ada program utama. Seperti halnya dengan variabel yang

terdiri dari dua kelompok, program pembantu juga terdiri dari dua kelompok

yaitu, program pembantu standard; program pembantu yang disediakan oleh

Pascal Turbo, dan program pembatu buatan; program pembantu yang dibuat

oleh pemrogram.

Program Isi luas balok 51 dan Isi balok 52 di atas program utama dan

program pembantu menggunakan nama variabel yang berbeda untuk besaran

yang sama. Sesuai dengan aturan yang berlaku maka variabel-variabel p, l dan

t tidak dikenal oleh program utama dan juga program pembantu yang lain;

oleh karena itu disebut variabel lokal. Sebaliknya variabel-variabel panjang,

lebar dan tebal yang dipakai oleh program utama dikenal juga oleh program

pembantu; oleh karena itu disebut juga variabel global.

Page 89: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 88

2010

Program yang mengandung program pembantu yang dibuat pada

percobaan ini (program isi luas balok 3 dan program isi luas balok 4) adalah

program pembantu versi biasa, karena pada bahasa pemrograman apapun

keadaan program pembantu adalah seperti itu. Yaitu terletak dalam satu file

dengan program utama, hanya tempatnya yang mungkin berbeda; ada yang

sesudah program utama, dan ada pula yang sesudah program utama.

Salah satu keunggulan Pascal Turbo dalam hal program pembantu

adalah bahwa program pembantu tidak selalu harus berada dalam satu file

dengan program utamanya, dalam percobaan ini adalah Program isi luas

balok 5 dan Program isi luas balok 6. Program pembantu tersebut disebut

program pembantu beda file.

Meskipun program pembantu beda file memberikan kemudahan yang

menggembirakan, namun kemudahan itu meminta pengorbanan. Apa

pengorbanan yang harus diberikan? Untuk menjawab pertanyaan ini lebih

dahulu kita tinjau bagaimana Pascal Turbo memperlakukan program yang

anda buat.

Program yang dibuat, yang terdiri dari karakter-karakter ASCII,

disebut “Source code“. Bila program ini dijalankan, maka mula-mula Pascal

Turbo akan memeriksa baris demi baris barangkali ada kesalahan sintaks (bila

anda menggunakan Pascal Turbo versi 3.0 maka proses ini dapat dilihat pada

layar monitor). Bila tidak ada kesalahan sintaks maka sebelum dapat

dijalankan lebih dahulu akan diubah menjadi bahasa mesin, atau istilahnya

di“compile“.

Page 90: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 89

2010

Proses di atas berlaku untuk semua program yang tidak di “compile”,

meskipun program tersebut telah berkali-kali dipakai dan tidak ada kesalahan

sintaks di dalamnya.

Dari penjelasan di atas jelaslah bahwa program pembantu yang dibuat

juga akan mengalami pemeriksaan setiap kali dirangkaikan dengan suatu

program utama. Ini jelas merupakan kerugian akan waktu yang dapat

dikatakan sebanding dengan panjangnya program.

Untuk mengatasi kerugian ini, Pascal Turbo versi 5.0 menyediakan

fasilitan unit yang antara lain dapat diisi dengan program pembantu yang

sudah di“compile“. Dengan demikian bila Pascal Turbo berjumpa dengan

bagian program yang sudah di-compile maka tidak akan diperiksanya lagi.

untuk memanggil unit dipakai kata simpanan uses yang diikuti oleh

daftar nama atau nama-nama file tempat penyimpanan unit. Harap diingat

bahwa disket kerja berada di dalam pemutar disket yang aktif, dan file unit

berada pada disket kerja tersebut.

Sebuah unit tidak perlu hanya berisi sebuah program pembantu, tetapi

dapat juga berisi lebih dari satu.

F. KESIMPULAN

Kesimpulan yang dapat diambil dari percobaan ini adalah sebagai

berikut.

1. Program pembantu (sub program) adalah suatu program terpisah dalam

blok tersendiri program utama, dan dilaksanakan bila judul subprogram

Page 91: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 90

2010

dipanggil pada program utama, dan tidak dapat dijalankan tanpa

subprogram utama.

2. Program pembantu dapat diletakkan satu tempat dengan program utama

disebut program pembantu satu file, sedangkan program pembantu yang

diletakkan tempatnya berbeda dengan program utama disebut program

pembantu beda file.

G. SARAN

Saran yang dapat saya kemukakan dari praktikum ini adalah agar

program-program pascal yang digunakan bisa lebih diperlengkap lagi, agar

semua program yang dipercobakan bisa dijalankan dengan baik.

Page 92: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 91

2010

Page 93: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 92

2010

PERCOBAAN VIII

ANIMASI DAN SIMULASI

A. TUJUAN

1. Memahami Proses Animasi dan Simulasi

2. Membuat Program Animasi dan Simulasi

B. TEORI

Ada dua gejala fisika yang dapat divisualisasikan, yaitu:

Yang berhubugan dengan dengangerak seperti gejala gelombang,

gerak electron dalam atom, dan sebagainya. Visualisasi ini disebut

animasi.

Yang tidak berhubugan denga gerak listrik, pola interferensi dan

difraksi, dan sebagainya.Visualisasi ini disebut simulasi.

Salah satu contoh animasi yang dapat dibahas adalah pelayangan

gelombang. Pelayangan gelombang terjadi bila dua gelombang yang

frekuensinya berbeda sedikit, menjalar bersama-sama disuatu tempat. Bila

peristiwa ini terjadi pada gelombang bunyi maka yang diamati adalah

bunyi yang terdengar keras dan lemah silih berganti. Karena keras dan

lemah bunyi ditentukan oleh amplitudo gelombang maka peristiwa ini

dilukiskan sebagai gelombang sinusoidal yang amplitudonya berubah

secara periodik dengan frekuensi lebih kecil.

(M. Jahiding, S.Si., M.Si,2009: )

Page 94: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 93

2010

Simulasi adalah program (software) komputer yang berfungsi

untuk menirukan perilakusistem nyata (realitas) tertentu. Tujuan simulasi

antara lain untuk pelatihan (training),studi perilaku sistem (behaviour) dan

hiburan / permainan (game).Beberapa contoh simulasi komputer, antara

lain : simulasi terbang (ight simulation), simulasi sistem ekonomi makro,

simulasi sistem perbankan, simulasi antrian layanan bank (service queue),

simulasi game strategi pemasaran (market game), simulasi perang (war

game simulation), simulasi mobil (car simulation), simulasi tenaga listrik

(power plan simulation), simulasi tata kota (sim city). Simulasi waktu

nyata (real time) merupakan bagian dari ilmu informatika (teknologi

informasi) yang sedang berkembang sangat pesat saat ini.

(www.geocities.com/bsridadi/bsridadi page.html).

Ada tiga pilihan simulator sistem kontrol yang animatif dan

interaktif. Animatif maksudnya, simulator dapat menampilkan hasil

simulasi dengan grafik yang hidup. Sementara itu interaktif berarti

pemakai dapat memberi masukan selama simulator bekerja. Ketiga pilihan

tersebut adalah:

• Simulator berbasis Spreadsheet. Simulator ini mudah dibuat, serta

praktis digunakan karena perangkat lunak spreadsheet sudah luas`dikenal

khalayak umum. Tanpa pemrograman yang rumit, perangkat lunak ini

dapat digunakan untuk menghitung dan menampilkan grafik sistem orde 1

atau orde 2 dengan pengontrol PID. Simulator ini cocok digunakan untuk

mengajar di depan kelas dengan proyektor multimedia.

Page 95: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 94

2010

• Simulator berbasis Flash. Keunggulan utama simulator ini adalah

kemampuannya dipakai sebagai bahan ajar melalui World Wide Web.

Disamping itu, Flash mampu menyuguhkan animasi interaktif yang sangat

atraktif tanpa pemrograman yang terlalu sulit. Mahasiswa maupun dosen

dapat menggunakan simulator ini untuk belajar mandiri melalui E-

Learning berbasis Web.

• Simulator Virtual Control. Dibanding dua sebelumnya, simulator ini

relatif sulit dibuat karena membutuhkan pemrograman yang serius.

Kelebihannya, simulator ini dapat dihubungkan ke perangkat nyata melalui

antarmuka AD/DA yang memadai. Dengan demikian, simulator ini dapat

dipakai untuk mengajar di depan kelas, maupun praktikum di

laboratorium.

(www.amutiara.staff.gunadarma.ac.id/Downloads/files/.../simulasi_kom

puter.pdf).

Untuk contoh dari animasi dan simulasi, dipilih pelayangan dan

interferensi celah. Bila ada N buah celah yang masing-masing lebarnya b,

didatangakan gelombang monokromatik dan koheren dengan panjang

gelombang λ, maka pola interferensi yang tertangkap pada layar adalah:

ܫ = ܫsinଶߣsinଶ ߣ

Dengan

ߣ =12 sinߠ =

ߨߣ sin ߠ

Page 96: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 95

2010

.adalah sudut antara normal pada bidang celah dengan arah gelombang ߠ

(Tim Penyusun,2009:21)

C. LANGKAH-LANGKAH PERCOBAAN

1. Ketik pada editor turbo pascal dan jalankan program di bawah ini:

Program Pelayangan; Uses Wincrt, Gdriver, Gkernel; Var a, i, j, m, n : Integer; f1,f2,dt,xx,sx,sy,xmin,xmax,ymin,ymax,x,a1,a2, sxmin, sxmax,symin,symax,delatx,deltay : Real; y : Array [1..3] of Real; nama, namax, zz : String [15]; ans : Boolean; ch : char; Begin {-----Menentukan bidang gambar-----} Clrscr; Write ('Amplitudo gelombang-1 (antara 1 dan 10): '); Readln (a1); Write ('Frekuensi gelombang-1 (antara 5 dan 15): '); Readln (f1); Write ('Amplitudo gelombang-2 (antara 1 dan 10): '); Readln (a2); Write ('Frekuensi gelombang-2 (antara 5 dan 15): '); Readln (f2); symin := 0; sxmax := 720; symin := -(a1+a2); symax := (a1+a2); nama := 'gambar'; deltax := (sxmax - sxmin) / 5; deltay := (symax - symin) / 5; xmin := sxmin - deltax; xmax := sxmax+deltax; ymin := symin - deltay; ymax := symax+deltay; Clrscr; Initgraphic; Definewindow (1, 0, 0, xmaxglb, Trunc (0.95 * ymaxgib / xmaxglb)); Definewindow (2,0 Trunc (0.95 * ymaxglb / 3), xmaxglb, Trunc (1.9 * ymaxglb / 3));

Page 97: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 96

2010

Definewindow (3, 0 Trunc (1.9 * ymaxglb / 3), xmaxglb, Trunc (0.95 * ymaxglb / 3)); Definewindow (1, xmin, ymax, xmax, ymin); For a := 0 To 9 Do Begin Defineheader (1,'GELOMBANG - 1'); Defineheader (2,'GELOMBANG - 2'); Defineheader (3,'SUPERPOSISI GELOMBANG – 1 DAN GELOMBANG - 2'); Setheaderon; For n := 1 To 3 Do Begin Selectworld (1); Selectwindow (n); Drawborder; {-----sumbu koordinat-----} sx := 0.3 * deltax; sy := 0.3 * deltay; Drawline(sxmin - sx, symin - sy, sxmax + sx, symin - sy); Drawline(sxmin - sx, 0, sxmax + sx, 0); Drawline(sxmin - sx, symin - sy, sxmin - sx, symax + sy); Drawtext(sxmax + 1.5 * sx, 0, 1, 'X'); Drawtext(sxmin - sx, symax + 2 * sx, 1,'Y'); {-----Skala pada sumbu X-----} xmin := sxmin; While xmin <= sxmax Do Begin str (xmin:5:3,zz); Drawtextw(xmin - 0.5 * sx, symin - 0.6 * deltay, 1, 'zz'); Drawline (xmin - symin - sy, xmin, symin – sy + 0.3 * sy); Setlinestyle (1); Drawline (xmin, symin, xmin, symax); Setlinestyle (0); Xmin := xmin + deltax; End; {-----Skala pada sumbu Y-----} ymin := symin; While ymin <= symax Do Begin str (ymin:5:1,zz); Drawtextw (sxmin - 0.85 * deltax, ymin + 0.2 * Dsy, 1, zz); Drawline (sxmin - sx, ymin, sxmin - sx + 0.1 * sy, ymin); Setlinestyle (1); Drawline (symin, ymin, sxmin, ymax); Setlinestyle (0); ymin := ymin + deltay;

Page 98: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 97

2010

End; End; {-----Kurva-----} x := sxmin; dt := (sxmax - sxmin)/100; While x <= sxmax Do Begin {-----Bagian ini dapat berubah sesuai dengan bentuk fungsinya-----} y[1] := a1*sin ((f1 * x - 36 * a) / 57.3); y[2] := a2*sin ((f2 * x - 36 * a) / 57.3); y[3] := y[1] + y[2]; {------------------------------------------- ----------------------} If (y[3] <= symax) anda (y[3] >= symin) Then Begin For n := 1 To 3 Do Begin Selectworld (1); Selectwindow (n); Drawpoint (x, y[n]); End; End; x := x + dt; End; zz := 'Tekan <Esc>'; Definetextwindow (4,79-Lenght(zz),25,79,25, 0); Selectwindow (4); Goto xy (79, Lenght (zz), 25); Write (zz); Str (a,zz); Namax := 'b' := nama + zz + '.gbr'; Savescreen (namax); If a <> 9 then clearscreen; End; {-----Menampilkan Gambar-----} Ans := false; Repeat Begin For a := 0 To 9 Do Begin Str (a,zz); namax := nama + zz + '.gbr'; loadscreen ('b:' + namax); If Keypressed Then Begin ch := Readkey; if ch = #27 Then Begin Leavegraphic; End; End;

Page 99: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 98

2010

End; Until ans = true; Leavegraphic;

End.

2. Ketik pada editor turbo pascal dan jalankan program di bawah ini:

Program Interferensi; Uses Crt, Gdriver, Gkernel; Var X1 : Real; I,j,n,m,jumlah : Integer; Gamma, lamda, jarak, dt, xx, sx, xmin, xmax, ymin, ymax, sxmin, sxmax, symin, symax, deltax, deltay : Real; zz : String [15]; Begin Clrscr; Write (‘jumlah celah :’); Readln (jumlah); Write (‘Panjang gelombang cahaya (angstrom) :’); Readln (lamda); Write (‘panjang celah (angstrom > 2 pg) :’); Readln (jarak); Sxmin := -PI; Sxmax := PI; Symin := 0; Symax := sqr (jumlah); Deltax := (sxmax – sxmin)/5; Deltay := (symax – symin)/5; Xmin := sxmin – deltax; Xmax := sxmax + deltax; Ymin := symin – deltay; Ymax := symax + deltay; Clrscr; Initgraphic; Definewindow (1,0,0,xmaxglb, ymaxglb); Defineworld (1,xmin,ymax,xmax,ymin); Selectworld (1); Setbagckgroundcolor(blue); Sx := 0.3 * deltax; Sy := 0.3 * deltay; Drawline (sxmin – sx, symin - sy, sxmax + sx, symax + sy); Drawline (sxmin – sx, symin - sy, sxmax - sx, symax – sy); If symin <= 0 then Begin Drawline (sxmin – sx, symax + sx,0);

Page 100: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 99

2010

Drawtext (sxmax + 1,5*sx,0,1,’gamma’); End; Else Drawtext (sxmax + 1, 5*sx, symin – sy,1, ’gamma,); If sxmin <= 0 then Begin Drawline (symin – sy, sxmax + sx,0); Drawtext (0,symax + 2*sy,1,’intensitas’); End; Else Drawtext (sxmin – sx, symax + 2*sy, 1,’ intensitas’); Xmin := sxmin; For i := 1 to 6 Do Begin Str (min:5:3,zz); Drawtext (xmin – 0, 5*sx, symin – 0, 6* deltay,1,zz); Drawline (xmin, symin – sy,xmin,symin –sy+0, 3*sy); Setlinestyle (1); If i >= 5 then Drawline (xmin, symin, xmin, symax – deltay); Else Drawline (xmin, symin, xmin, symax); Setlinestyle (0); Xmin := xmin + deltax; End; Ymin := symin; For i := 1 To 6 Do Begin Str (ymin:5:3,zz); Drawtext (sxmin – 0, 85*deltax, ymin + 0, 2*sy, 1, zz); Drawline (sxmin – sy, ymin, sxmin – sx + 0, 1* sx, ymin); Setlinestyle (0); Ymin := ymin + deltay; End; Str (jumlah:10,zz); Drawtext (sxmin – 2 * deltax, symax, 0.1*deltay, 1, ’jumlah celah:’+zz); Str (lamda:10,zz); Drawtext (sxmax – 2*deltax, symax – 0.3*deltay, 1, ’panjang gel:’ + zz + ’A’); Str (jarak:10,zz); Drawtext (sxmax – 2*deltax, symax – 0.6*deltay, 1, ’jarak celah:’ + zz + ’A’); dt := (sxmax – sxmin)/50000; Repeat

Page 101: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 100

2010

Begin Gamma := (PI/lamda)*jarak*sin(x); If sin (gamma) := 0 Then Y := sqr (jumlah * cos(jumlah*gamma) / cos(gamma))); If (y <= synax) and (y >= symin) Then Begin If gamma <= PI/2 Then Drawpoint(gamma,y); End; X := x + dt; End; Until gamma > PI Drawtext (sxmax, symin – 0, 8*deltay, 1,’tekan <esc>’); Repeat Until readkey = #27; Leavegraphic;

End.

D. PERCOBAAN DAN HASIL EKSEKUSI

18. Program Pelayangan

Program Pelayangan; Uses Wincrt, Gdriver, Gkernel; Var a, i, j, m, n : Integer; f1,f2,dt,xx,sx,sy,xmin,xmax,ymin,ymax,x,a1,a2, sxmin, sxmax,symin,symax,delatx,deltay : Real; y : Array [1..3] of Real; nama, namax, zz : String [15]; ans : Boolean; ch : char; Begin {-----Menentukan bidang gambar-----} Clrscr; Write ('Amplitudo gelombang-1 (antara 1 dan 10): '); Readln (a1); Write ('Frekuensi gelombang-1 (antara 5 dan 15): '); Readln (f1); Write ('Amplitudo gelombang-2 (antara 1 dan 10): '); Readln (a2); Write ('Frekuensi gelombang-2 (antara 5 dan 15): ');

Page 102: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 101

2010

Readln (f2); symin := 0; sxmax := 720; symin := -(a1+a2); symax := (a1+a2); nama := 'gambar'; deltax := (sxmax - sxmin) / 5; deltay := (symax - symin) / 5; xmin := sxmin - deltax; xmax := sxmax+deltax; ymin := symin - deltay; ymax := symax+deltay; Clrscr; Initgraphic; Definewindow (1, 0, 0, xmaxglb, Trunc (0.95 * ymaxgib / xmaxglb)); Definewindow (2,0 Trunc (0.95 * ymaxglb / 3), xmaxglb, Trunc (1.9 * ymaxglb / 3)); Definewindow (3, 0 Trunc (1.9 * ymaxglb / 3), xmaxglb, Trunc (0.95 * ymaxglb / 3)); Definewindow (1, xmin, ymax, xmax, ymin); For a := 0 To 9 Do Begin Defineheader (1,'GELOMBANG - 1'); Defineheader (2,'GELOMBANG - 2'); Defineheader (3,'SUPERPOSISI GELOMBANG – 1 DAN GELOMBANG - 2'); Setheaderon; For n := 1 To 3 Do Begin Selectworld (1); Selectwindow (n); Drawborder; {-----sumbu koordinat-----} sx := 0.3 * deltax; sy := 0.3 * deltay; Drawline(sxmin - sx, symin - sy, sxmax + sx, symin - sy); Drawline(sxmin - sx, 0, sxmax + sx, 0); Drawline(sxmin - sx, symin - sy, sxmin - sx, symax + sy); Drawtext(sxmax + 1.5 * sx, 0, 1, 'X'); Drawtext(sxmin - sx, symax + 2 * sx, 1,'Y'); {-----Skala pada sumbu X-----} xmin := sxmin; While xmin <= sxmax Do Begin str (xmin:5:3,zz); Drawtextw(xmin - 0.5 * sx, symin - 0.6 * deltay, 1, 'zz'); Drawline (xmin - symin - sy, xmin, symin – sy + 0.3 * sy); Setlinestyle (1); Drawline (xmin, symin, xmin, symax); Setlinestyle (0); Xmin := xmin + deltax;

Page 103: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 102

2010

End; {-----Skala pada sumbu Y-----} ymin := symin; While ymin <= symax Do Begin str (ymin:5:1,zz); Drawtextw (sxmin - 0.85 * deltax, ymin + 0.2 * Dsy, 1, zz); Drawline (sxmin - sx, ymin, sxmin - sx + 0.1 * sy, ymin); Setlinestyle (1); Drawline (symin, ymin, sxmin, ymax); Setlinestyle (0); ymin := ymin + deltay; End; End; {-----Kurva-----} x := sxmin; dt := (sxmax - sxmin)/100; While x <= sxmax Do Begin {-----Bagian ini dapat berubah sesuai dengan bentuk fungsinya-----} y[1] := a1*sin ((f1 * x - 36 * a) / 57.3); y[2] := a2*sin ((f2 * x - 36 * a) / 57.3); y[3] := y[1] + y[2]; {------------------------------------------- ----------------------} If (y[3] <= symax) anda (y[3] >= symin) Then Begin For n := 1 To 3 Do Begin Selectworld (1); Selectwindow (n); Drawpoint (x, y[n]); End; End; x := x + dt; End; zz := 'Tekan <Esc>'; Definetextwindow (4,79-Lenght(zz),25,79,25, 0); Selectwindow (4); Goto xy (79, Lenght (zz), 25); Write (zz); Str (a,zz); Namax := 'b' := nama + zz + '.gbr'; Savescreen (namax); If a <> 9 then clearscreen; End; {-----Menampilkan Gambar-----} Ans := false; Repeat

Page 104: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 103

2010

Begin For a := 0 To 9 Do Begin Str (a,zz); namax := nama + zz + '.gbr'; loadscreen ('b:' + namax); If Keypressed Then Begin ch := Readkey; if ch = #27 Then Begin Leavegraphic; End; End; End; Until ans = true; Leavegraphic; End.

Hasil Eksekusi

Untuk hasil eksekusi pada percobaan ini tidak dapat dilakukan sebab pada

tipe pascal yang digunakan tidak tersedia unit yang dibutuhkan untuk

mengeksekusi program untuk membuat program pelayangan.

19. Program Interferensi

Program Interferensi; Uses Crt, Gdriver, Gkernel; Var X1 : Real; I,j,n,m,jumlah : Integer; Gamma, lamda, jarak, dt, xx, sx, xmin, xmax, ymin, ymax, sxmin, sxmax, symin, symax, deltax, deltay : Real; zz : String [15]; Begin Clrscr; Write (‘jumlah celah :’); Readln (jumlah); Write (‘Panjang gelombang cahaya (angstrom) :’); Readln (lamda); Write (‘panjang celah (angstrom > 2 pg) :’); Readln (jarak);

Page 105: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 104

2010

Sxmin := -PI; Sxmax := PI; Symin := 0; Symax := sqr (jumlah); Deltax := (sxmax – sxmin)/5; Deltay := (symax – symin)/5; Xmin := sxmin – deltax; Xmax := sxmax + deltax; Ymin := symin – deltay; Ymax := symax + deltay; Clrscr; Initgraphic; Definewindow (1,0,0,xmaxglb, ymaxglb); Defineworld (1,xmin,ymax,xmax,ymin); Selectworld (1); Setbagckgroundcolor(blue); Sx := 0.3 * deltax; Sy := 0.3 * deltay; Drawline (sxmin – sx, symin - sy, sxmax + sx, symax + sy); Drawline (sxmin – sx, symin - sy, sxmax - sx, symax – sy); If symin <= 0 then Begin Drawline (sxmin – sx, symax + sx,0); Drawtext (sxmax + 1,5*sx,0,1,’gamma’); End; Else Drawtext (sxmax + 1, 5*sx, symin – sy,1, ’gamma,); If sxmin <= 0 then Begin Drawline (symin – sy, sxmax + sx,0); Drawtext (0,symax + 2*sy,1,’intensitas’); End; Else Drawtext (sxmin – sx, symax + 2*sy, 1,’ intensitas’); Xmin := sxmin; For i := 1 to 6 Do Begin Str (min:5:3,zz); Drawtext (xmin – 0, 5*sx, symin – 0, 6* deltay,1,zz); Drawline (xmin, symin – sy,xmin,symin –sy+0, 3*sy); Setlinestyle (1); If i >= 5 then Drawline (xmin, symin, xmin, symax – deltay); Else Drawline (xmin, symin, xmin, symax);

Page 106: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 105

2010

Setlinestyle (0); Xmin := xmin + deltax; End; Ymin := symin; For i := 1 To 6 Do Begin Str (ymin:5:3,zz); Drawtext (sxmin – 0, 85*deltax, ymin + 0, 2*sy, 1, zz); Drawline (sxmin – sy, ymin, sxmin – sx + 0, 1* sx, ymin); Setlinestyle (0); Ymin := ymin + deltay; End; Str (jumlah:10,zz); Drawtext (sxmin – 2 * deltax, symax, 0.1*deltay, 1, ’jumlah celah:’+zz); Str (lamda:10,zz); Drawtext (sxmax – 2*deltax, symax – 0.3*deltay, 1, ’panjang gel:’ + zz + ’A’); Str (jarak:10,zz); Drawtext (sxmax – 2*deltax, symax – 0.6*deltay, 1, ’jarak celah:’ + zz + ’A’); dt := (sxmax – sxmin)/50000; Repeat Begin Gamma := (PI/lamda)*jarak*sin(x); If sin (gamma) := 0 Then Y := sqr (jumlah * cos(jumlah*gamma) / cos(gamma))); If (y <= synax) and (y >= symin) Then Begin If gamma <= PI/2 Then Drawpoint(gamma,y); End; X := x + dt; End; Until gamma > PI Drawtext (sxmax, symin – 0, 8*deltay, 1,’tekan <esc>’); Repeat Until readkey = #27; Leavegraphic; End.

Hasil Eksekusi

Page 107: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 106

2010

Hasil eksekusi pada percobaan ini tidak dapat dilaksanakan sebab pada tipe

pascal yang digunakan tidak tersedia unit yang dibutuhkan untuk

mengeksekusi program untuk membuat simulasi suatu interferensi.

E. PEMBAHASAN

Fisika banyak mengandung konsep yang abstrak, sehingga sukar untuk

membayangkannya, akibatnya banyak yang langsung bekerja dengan rumus-

rumus fisika tanpa berusaha mempelajari latar belakang yang mendasarinya.

Konsep yang abstrak bisa dibuat nyata dengan memvisualisasikan di

komputer.

Pada dasarnya visualisasi komputer adalah bagaimana menempatkan

titik-titik pada layar monitor dengan dikendalikan oleh konsep-konsep fisika.

Misalnya, membuat visualisasi gerak satelit. Visualisasi ini tidak cukup hanya

menggambarkan sebuah ellips lalu menyatakan bahwa ellips itu adalah

lintasan satelit. Tetapi harus mulai dari konsep fisika seperti hukum gravitasi

Newton dan hukum II Newton. Bertolak dari konsep fisika ini dapat

dijabarkan persamaan lintasan satelit yang selanjutnya divisualisasikan.

Apabila besaran fisis yang terkait ini berubah, maka visualisasi yang

bersangklutan harus dapat menunjukkan akibat perubahan tersebut. Contoh

bila kecepatan satelit berubah, ellipsnya juga berubah baik eksentrisitasnya

maupun kemiringannya.

Ada dua gejala fisika yang dapat divisualisasikan, yaitu yang

berhubungan dengan gerak seperti gejala gelombang, gerak elektron dalam

Page 108: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 107

2010

atom, dan sebagainya, visualisasi ini disebut animasi. Visualisasi yang kedua

adalah yang tidak berhubungan dengan gerak seperti gaya gerak listrik, pola

interferensi dan difraksi, dan sebagainya. Visualisasi ini disebut simulasi.

Salah satu contoh program animasi ditampilkan pada percobaan ini

adalah pelayangan gelombang. Pelayangan gelombang terjadi bila dua

gelombang yang frekuensinya berbeda sedikit, menjalar bersama-sama di

suatu tempat. Bila peristiwa ini terjadi pada gelombang bunyi maka yang

diamati adalah bunyi yang terdengar keras dan lemah silih berganti. Karena

keras dan lemahnya bunyi ditentukan oleh amplitudo gelombang maka

peristiwa ini dilukiskan sebagai gelombang sinusoidal yang amplitudonya

berubah secara periodik dengan frekuensi lebih kecil. Akan tetapi program

visualisasi di atas tidak dapat dijalankan berhubung unit program visualisasi

tidak terdapat pada komputer yang ada dilaboratorium.

F. KESIMPULAN

Berdasarkan hasil percobaan, maka dapat disimpulkan beberapa hal

sebagai berikut.

1. Kejadian-kejadian dalam fisika yang tidak dijelaskan hanya dengan

persamaan dapat lebih diperjelas dengan menggunakan program simulasi.

2. Program simulasi dalam pascal menggunakan unit Crt, Gdriver, Gkernel.

Page 109: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 108

2010

G. SARAN

Saran saya pada percobaan ini adalah sebaiknya jumlah asisten

ditambah, agar pada saat praktikum berlangsung asisten tidak terlalu repot

dalam membimbing praktikan, selain itu program-program yang ada di buku

penuntun bisa ditambah dan dikembangkan lagi.

Page 110: Laporan Lengkap Fisika Komputasi II Nalin Sumarlin 2010

Laporan Lengkap Fisika Komputasi 1

Nalin_physic’s 08 Page 109

2010

DAFTAR PUSTAKA

Jahiding, M. et. al. 2009. Penuntun Praktikum Fisika Komputasi 1. Kendari:

Jurusan Fisika FMIPA Universitas Haluoleo.

http://materi-praktek.blogspot.com/2007/03/bab-3-bentuk-perulangan-

penyeleksian.html, diakses 28 Desember 2009.

http://materi-praktek.blogspot.com/2007/03/bab-4-array-pascal.html, diakses 28

Desember 2009.

http://materi-praktek.blogspot.com/2007/03/bag-iv-prosedur-perulangan-dan-

megenal.html, diakses 28 Desember 2009.

http://materi-praktek.blogspot.com/2007/03/bag-v-fungsi.html, diakses 28

Desember 2009.

http://materi-praktek.blogspot.com/2007/03/bag-vi-array.html, diakses 28

Desember 2009.

http://materi-praktek.blogspot.com/2007/03/fungsi-fungsi-string-pada-

pascal.html, diakses 28 Desember 2009.

Yulianto, Kristian T., et.al. 2006. Modul Praktikum Pemrograman Pascal

Didasarkan pada Turbo Pascal 7.0. Malang: Sekolah Tinggi Informatika

dan Komputer Indonesia.

Zaks, Rodnay. 1988. Pengantar Pascal Termasuk Turbo Pascal. Jakarta:

Erlangga.