Anda di halaman 1dari 110

Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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}
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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.

Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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

Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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.






Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 08 Page 7

2010
Hasil Eksekusi Program Menu






Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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 dasardisebut tokenakan 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
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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).



Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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.

Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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:

Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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.

Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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;
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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;
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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-
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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.



Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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.

Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 08 Page 26

2010

Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 08 Page 27

2010























Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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;
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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;
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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);
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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




Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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)
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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.
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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.



Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 08 Page 39

2010























Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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.
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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:
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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.
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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:
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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);
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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.
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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 :
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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.




Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 08 Page 51

2010

Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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;
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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;
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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:');
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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


Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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

Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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 2
5

yang hasilnya adalah 32 dan selanjutnya pada hasil eksekusi kita juga dapat
memasukkan angka yang ingin kita pangkatkan.
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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.



Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 08 Page 63

2010


Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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).
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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);
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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);
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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.
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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 :
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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.
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 08 Page 73

2010


Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 08 Page 74

2010


Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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;
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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}
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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 +
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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);
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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



Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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;
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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.

Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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.
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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
dicompile.
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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 dicompile. 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
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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.





Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 08 Page 91

2010


Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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: )

Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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.
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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:
I = I
o
si n
2
Nz
si n
2
z

Dengan
z =
1
2
kb si n 0 =
nb
z
si n 0
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 08 Page 95

2010
0 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));
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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;
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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;
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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);
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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):
');
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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;
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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);
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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);
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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
Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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.


Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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.






















Laporan Lengkap Fisika Komputasi 1

Nal i n_physi cs 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.