Upload
nalin-sumarlin
View
323
Download
2
Embed Size (px)
Citation preview
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 0
2010
PERCOBAAN I
STRUKTUR KONTROL
A. TUJUAN
1. Mengetahui Struktur Kontrol (Penyeleksian) Kondisi (If Then Else).
2. Mengetahui Struktur Kontrol (Penyeleksian) Kondisi (Case Of).
3. Membuat Program Sederhana.
B. TEORI
Setiap program yang kompleks mengandung suatu pernyataan
alternatif. Dengan pernyataan alternatif, program dapat menentukan tindakan
apa yang harus dikerjakan tergantung dari hasil kondisi yang dipilih tersebut.
Di dalam Pascal pernyataan alternatif dipergunakan statement if dan case.
1. Pernyataan If
Pernyataan if hanyalah menguji suatu kondisi. Jika kondisi ini
benar, pernyataan if mengakibatkan pelaksanaan pernyataan sesudah then;
pernyataan ini dilaksanakan satu kali. Jika kondisi tersebut salah,
pernyataan sesudah else dilaksanakan. Jika tak terdapat else, maka tidak
ada yang terjadi, dan pernyataan berikutnya di dalam program yang
bersangkutan dilaksanakan (Zaks, 86: 1988).
Struktur pernyataan if dengan satu alternatif percabangan. Bentuk
dari struktur ini adalah:
If Kondisi Then
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 1
2010
Pernyataan 1
Artinya bila kondisi terpenuhi (benar), pernyataan 1 diproses, dan bila
tidak terpenuhi pernyataan selanjutnya akan diproeses.
Gambar 1.1. Struktur Kontrol if
2. Pernyataan Case
Pernyataan case (case statement) berisi ungkapan pemilih
(selector) dan sederetan pernyataan yang masing-masing diawali dengan
satu atau lebih tetapan (case constant) atau dengan kata kunci else.
Semua tetapan case harus khas dan tipe berurutan yang digunakan
harus sesuai dengan tipe pemilih. Sama halnya dengan pernyataan if, pada
pernyataan case jika pernyataan yang akan dijalankan lebih dari satu
Kondisi Kondisi
Salah Benar
Pernyataan 1 Pernyataan 2
Pernyataan Selanjutnya
Pernyataan Selanjutnya
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 2
2010
pernyataan maka sebelum pernyataan-pernyataan tersebut, harus diawali
dengan begin dan diakhiri dengan end (Yulianto, 2006).
Pernyataan case dapat berbentuk:
a. Case-Of
Bentuk struktur dari case-of adalah:
Case ungkapan
Label 1 : pernyataan 1;
Label 2 : pernyataan 2;
Label n : pernyataan n;
End.
Bila suatu ungkapan terpenuhi (nilai ungkapan sama dengan nilai
label) maka pernyatan tersebut diproses. Bila tidak ada ungkapan
terpenuhi berarti tidak ada pernyataan diproses.
b. Case-Of-Else
Struktur case-of-else merupakan pengembangan dari case-of. Pada
struktur ini, bila tidak ada ungkapan terpenuhi, maka yang akan
diproses adalah pernyataan yang ada di else (Jahiding, 2009).
C. LANGKAH-LANGKAH PERCOBAAN
1. Ketik pada editor turbo Pascal dan jalankan program di bawah ini :
Program Suhu1; { -------------------------------------- } { Contoh Sederhana Pemakaian If}
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 3
2010
{ -------------------------------------- } Uses wincrt; Var Suhu : Real; Begin Write ('Suhu Tubuh : '); Readln (suhu); If Suhu > 37 Then Writeln ('Suhu Tinggi !'); Writeln (' Selesai '); End.
2. Ketik pada editor turbo Pascal dan jalankan program di bawah ini :
Program Suhu2; { --------------------------------- } { Contoh Pemakaian If - Else } { --------------------------------- } Uses wincrt; Var suhu : Real; Begin Clrscr; Write ('Suhu Tubuh : '); Readln (suhu); If Suhu > 37 Then Writeln ('SUHU TINGGI !') Else Writeln ('Suhu Tidak Tinggi !'); Writeln ('Selesai'); End.
3. Ketik pada editor turbo Pascal dan jalankan program di bawah ini : Program menu; Uses wincrt; Var Pilih : byte; R,L,T,A : real; Begin Clrscr; Gotoxy (10,2); writeln (' MENU '); Gotoxy (10,4); writeln (' 1. Luas Lingkaran '); Gotoxy (10,6); writeln (' 2. Luas Segitiga '); Gotoxy (10,8); writeln (' Pilih 1 atau 2 '); Readln (pilih); Clrscr; Case Pilih Of 1 : Begin
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 4
2010
Write ('Radius Lingkaran'); readln (R); L := pi*sqr (R); Writeln ('Luas Lingkaran n= ',L:9:2); End; 2 : Begin Write ('Panjang Sisi Alas'); readln (A); Write ('Tinggi Segitiga'); readln (T); L := 0.5*A*T; Writeln ('Luas Segitiga = ',L:9:2); End Else Begin Write ('Pilihannya hanya 1 dan 2'); End; End; End.
Keterangan:
1. Clrscr adalah suatu prosedur standard untuk membersihkan layar dari
tampilan sebelumnya (melibatkan unit crt).
2. GotoXY merupakan suatu prosedur standar untuk meletakkan kursor ke
posisi layar yang akan ditunjukkan oleh nilai (X,Y).
D. PROGRAM DAN HASIL EKSEKUSI
1. Program Suhu 1 Program Suhu1;
Uses wincrt; Var Suhu : Real; Begin Write ('Suhu Tubuh : '); Readln (suhu); If Suhu > 37 Then Writeln ('Suhu Tinggi !'); Writeln (' Selesai '); End.
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 5
2010
Hasil Eksekusi Program Suhu 1
2. Program Suhu 2
Program Suhu2; Uses wincrt; Var suhu : Real; Begin Clrscr; Write ('Suhu Tubuh : '); Readln (suhu); If Suhu > 37 Then Writeln ('SUHU TINGGI !') Else Writeln ('Suhu Tidak Tinggi !'); Writeln ('Selesai'); End.
Hasil Eksekusi Program Suhu 2
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 6
2010
3. Program Menu
Program Menu; Uses wincrt; Var Pilih : Byte; R,L,T,A : Real; Begin Clrscr; Gotoxy (10,2); writeln (' MENU '); Gotoxy (10,4); writeln (' 1. Luas Lingkaran '); Gotoxy (10,6); writeln (' 2. Luas Segitiga '); Gotoxy (10,8); writeln (' Pilih 1 atau 2 '); Readln (pilih); Clrscr; Case Pilih Of 1 : Begin Write ('Radius Lingkaran = '); readln (R); L := pi*sqr (R); Writeln ('Luas Lingkaran = ',L:7:2); End; 2 : Begin Write ('Panjang Sisi Alas = '); readln (A); Write ('Tinggi Segitiga = '); readln (T); L := 0.5*A*T; Writeln ('Luas Segitiga = ',L:7:2); End Else Begin Write ('Pilihannya hanya 1 dan 2'); End; End; End.
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 7
2010
Hasil Eksekusi Program Menu
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 8
2010
E. PEMBAHASAN
Sebuah program Pascal berisi kepala program, anak kalimat uses (tidak
harus ada), serta blok pengumuman dan pernyataan. Kepala program
menunjukkan nama program. Anak kalimat uses menggunakan unit-unit yang
dipakai oleh program tersebut. Bagian terakhir merupakan blok yang berisi
pengumuman pernyataan yang akan dijalankan.
Unsur aturan penulisan dasar—disebut token—akan digabung
membentuk ungkapan (expressions), pengumuman atau deklarasi
(declarations), dan pernyataan (statements). Pernyataan menggambarkan
tindakan algoritma yang dapat dijalankan dalam program. Setiap ungkapan
adalah sebuah aturan kesatuan aturan penulisan yang terdapat dalam
pernyataan dan menunjukkan sebuah nilai. Setiap ungkapan terdiri dari
operator dan operand. Sedangkan deklarasi menegaskan sebuah pengenal
(identifier) yang dapat digunakan pada ungkapan atau pernyataan, dan bila
diperlukan memesan tempat pada pengingat untuk pengenal tersebut.
Di dalam Pascal pernyataan alternatif menggunakan Statement If dan
Case. Pada percobaan ini program-program yang dibuat adalah program
menggunakan statement if dan case. Pernyataan if digunakan untuk
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 9
2010
menentukan pilihan atas beberapa kondisi yang merupakan syarat terhadap
pilihan yang sudah ditentukan. Dari bentuk bentuk pernyataan if yang harus
diperhatikan adalah untuk pernyataan if dan else, pernyataan-pernyataan
setelah then tanpa menggunakan “;”.
Ada tiga macam program yang dibuat pada percobaan ini yaitu
program suhu1, program suhu2 dan program menu. Program pertama
(program suhu 1) diawali dengan judul program yaitu Program_Suhu1, Judul
Program dalam pascal dimulai kata cadang (reserved word) “Program”,
diikuti nama program yang akan dibuat dan diakhiri tanda “;”.
Pada program suhu1 ini digunakan variabel suhu yang bertipe data
real. Variabel dipakai untuk menampung nilai-nilai yang diharapkan berubah
dalam suatu program. Pendeklarasian variabel diawali dengan kata cadang
var, kemudian nama variabel diikuti tanda “;“. Jadi nilai-nilai suhu yang
dihasilkan oleh program berada pada jangkauan bilangan real. Bagian
pernyataan menggunakan operasi output write agar dapat menuliskan
pernyataan ‘Suhu Tubuh :’, dimana pernyataan tersebut diapit tanda petik
tunggal (‘). Pernyataan yang diapit tanda petik tunggal (‘) dalam prosedur
write merupakan penjelasan dan tidak diproses oleh program.
Karena menggunakan kata cadang write maka setelah pernyataan
dituliskan, cursor akan berada di samping pernyataan tersebut, sehingga nilai
yang dimasukkan saat eksekusi berada di samping pernyataan ‘Suhu Tubuh : ’.
Setelahnya terdapat operasi input readln, dimana nilai yang dimasukkan akan
dibaca sebagai variabel pada readln tersebut. Misalnya pada program ini, jika
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 10
2010
diisi suhu yang lebih rendah (<37) maka komputer tidak akan memproses
tetapi jika kita isi dengan suhu lebih besar (>37) atau maka komputer akan
membaca program tersebut. Adapun writeln setelah menulis data, kursor akan
pindah ke kolom 1 dari baris berikutnya.
Pada program kedua (Program Suhu2), variabel yang dideklarasikan
adalah suhu yang juga bertipe data real. Program ini merupakan contoh
sederhana untuk pemakaian if-else dan tidak jauh berbeda dengan program
suhu1. Pada bagian pernyataan terdapat pernyataan ”writeln (’suhu tidak
tinggi!’);” dalam pernyataan else artinya apabila kita memasukkan nilai suhu
yang kurang dari 37 º maka komputer akan membacanya dan
menampilkannya pada layar eksekusi dengan pernyataan suhu tidak tinggi.
Adapun untuk program yang ketiga (Program Menu), variabel yang
dideklarasikan adalah pilih yang bertipe byte. Byte merupakan salah satu tipe
data dasar integer (bilangan bulat) yang memiliki jangkauan nilai 0 s/d 255.
Sehingga input pilihannnya merupakan bilangan bulat positif.
Pada program tersebut disajikan dua macam pilihan kepada pemakai
untuk menghitung luas segitiga atau luas lingkaran. Peubah pilih digunakan
untuk pemakai guna menentukan pilihannya.
Selain itu pada program ini juga digunakan pernyataan gotoxy. Layar
eksekusi pascal memiliki titik koordinat seperti bidang ordinat kartesius. Dan
titik (0,0) dari pascal berada pada sudut kiri atas layar. Sehingga letak
pernyataan pada layar eksekusi dapat diatur dengan menggunakan deklarasi
ini. Nilai X untuk menyatakan letak pernyataan pada arah horizontal dan Y
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 11
2010
pada arah vertikal. Percobaan ini merupakan program yang menggunakan
pilihan menu, dimana program ini memilki dua buah pernyataan. Pernyataan
yang pertama kita perintahkan komputer untuk membaca radius lingkaran
dengan luas lingkaran yang masing-masing telah divariabelkan pada bagian
deklarasi. Untuk pernyataan ”writeln (’Luas Lingkaran = ’, L:7:2);” berarti
nilai luas lingkaran harus terdiri dari 7 digit angka dengan dua angka
dibelakang koma. Adapun pada bagian pernyataan yang kedua kita
perintahkan komputer untuk membaca luas sebuah segitiga yang panjang sisi
alas dan tinggi segitiga telah telah dimasukkan terlebih dahulu.
Pada struktur case of bila tidak ada ungkapan terpenuhi maka yang
akan diproses adalah pernyataan yang ada di else. Case of else merupakan
pengembangan dari case of yang mana bila salah satu ungkapan terpenuhi
(nilai ungkapan sama dengan nilai label) dan pernyataan tersebut diproses
lagi. Bila tidak ada ungkapan terpenuhi berarti tidak ada pernyataan yang akan
diproses.
Seluruh program di atas menggunakan unit wincrt dan perintah clear
screen (clrscr), perintah clrscr ini hanya dapat dijalankan jika pada bagian
deklarasi dicantumkan unit wincrt, karena unit ini merupakan salah satu unit
yang mengontrol tampilan layar. Dengan adanya perintah clrscr, maka layar
akan dibersihkan dari tampilan eksekusi yang telah dilakukan sebelumnya.
Keseluruhan program, pada bagian pernyataan diawali dengan kata begin
tanpa diikuti tanda titik koma (;) yang menandakan awal dari pernyataan yang
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 12
2010
akan dijalankan, dan bagian pernyataan diakhiri dengan kata end dan diikuti
tanda titik (.) yang menandakan akhir dari pernyataan.
F. KESIMPULAN
Dari hasil percobaan dan pembahasan, dapat disimpulkan beberpa hal
sebagai berikut:
1. Untuk mengetahui struktur kontrol digunakan penyeleksian kondisi IF
Then artinya bila kondisi terpenuhi (benar), pernyataan 1 diproses dan
bila tidak terpenuhi maka pernyataan selanjutnya yang akan diproses.
Adapun penyeleksian kondisi IF Else menyatakan bahwa bila kondisi
terpenuhi (benar) pernyataan 1 diproses dan sebaliknya bila tidak
terpenuhi maka pernyataan 2 akan diproses.
2. Struktur Case Of menyatakan bila salah satu ungkapan terpenuhi (nilai
ungkapan sama dengan nilai label) dan pernyataan tersebut diproses lagi.
Bila tidak ada ungkapan terpenuhi berarti tidak ada pernyataan yang
diproses. Case Of Else menyatakan bila tidak adanya ungkapan terpenuhi
maka yang akan diproses adalah pernyataan yang di Else.
3. Program sederhana dapat dibuat dengan memperhatikan struktur utama
dari pemrograman pascal, yaitu judul program (program heading),
bagian deklarasi (declaration), dan bagian pernyataan (statements).
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 13
2010
G. SARAN
Sebaiknya jaringan listrik di dalam Lab. Komputasi diperhatikan agar
pada saat praktikum berlangsung bisa berjalan lancar tanpa ada gangguan
dengan padamnya sebagian komputer.
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 14
2010
PERCOBAAN II
STRUKTUR PERULANGAN
A. TUJUAN
1. Mengetahui Struktur Perulangan For.
2. Mengetahui Struktur Perulangan While Do.
3. Mengetahui Struktur Perulangan Repeat-Until.
B. TEORI
Dalam hampir setiap program yang kompleks mutlak memerlukan
suatu perulangan dan percabangan. Tujuan perulangan disini adalah untuk
mengulang statement atau blok statement berulang kali sesuai
sejumlah yang ditentukan pemakai. Kondisi perulangan merupakan proses
berjalannya program secara terus menerus dan akan berhenti ketika proses
mendapatkan kondisi yang sudah ditentukan (http://materi-
praktek.blogspot.com/2007/03/bab-3-bentuk-perulangan-penyeleksian.html).
Pernyataan Perulangan memiliki tiga pernyataan, repeat, while, dan
for. Pernyataan perulangan dipakai untuk melakukan proses berulang terhadap
pernyataan sederhana atau pernyataan terstruktur (Yulianto, 2006).
Di dalam pemrograman sering dijumpai pernyataan yang diulang-
ulang, agar efesien digunakan struktur perulangan. Dalam Pascal dikenal 3
macam perulangan yaitu:
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 15
2010
1. Perulangan For
Pernyataan for (for statements) juga digunakan untuk melakukan
proses perulangan. Hanya saja proses perulangan pada pernyataan for
langsung dikendalikan oleh suatu peubah yang disebut peubah kendali
(control variables) yang harus bertipe berurutan. Jadi pada pernyataan for
pada dasar sudah diketahui jumlah perulangannya.
Perulangan dengan pernyataan for dapat berupa perulangan positif
('to') dan perulangan negatif ('downto'). Jika pernyataan yang akan
mengalami perulangan lebih dari satu pernyataan, maka harus diawali
dengan begin dan diakhiri dengan end; (Yulianto, 2006).
a. Perulangan For positif (maju)
Perulangan for positif dibentuk dengan menggunakan pernyataan for-
to-do, bentuk umumnya adalah
For variabel kontrol = Nilai awal To nilai akhir Do
b. Perulangan For negatif (mundur)
Perulangan for negatif dibentuk dengan menggunakan pernyataan for-
downto-do, bentuk umumnya adalah
For variabel kontrol = Nilai akhir Downto nilai awal Do
(Jahiding, 2009).
2. Perulangan While Do
Pernyataan while (while statements) hampir sama dengan
pernyataan repeat, dengan sedikit perbedaan bahwa pernyataan while
melakukan pengujian syarat pada awal proses berulang (pernyataan repeat
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 16
2010
melakukannya di akhir proses). Pengujian awal digunakan untuk agar
program dapat menyeleksi kondisi, sehingga program dapat menentukan
tindakan apa yang harus dikerjakan, tergantung dari kondisi yang diseleksi
tersebut. Pada pernyataan-pernyataan yang ada pada while tidak akan
dijalankan jika kondisi tidak terpenuhi. (Yulianto, 2006)
Perulangan ini digunakan untuk proses perulangan suatu
pernyataan (blok pernyataan) terus menerus selama kondisi terpenuhi
(logika benar). Struktur while-do ditunjukkan pada gambar berikut:
Gambar 2.1. Struktur Perulangan While-Do
(Jahiding, 2009).
3. Perulangan Repeat-Until
Pernyataan repeat (repeat statements) digunakan untuk melakukan
perulangan terhadap suatu pernyataan, dimana proses pemeriksaan
syaratnya berada pada akhir pernyataan repeat tersebut. Pernyataan-
Kondisi
Loop
Pernyataan 1
Salah
Pernyataan 2
Benar
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 17
2010
pernyataan yang ada pada repeat akan dijalankan (diulang terus) sampai
kondisi yang diseleksi di until tidak terpenuhi (Yulianto, 2006).
Blok penyataan yang akan diulang-ulang dalam perulangan repeat-
until tidak memerlukan lagi begin dan end untuk batas perulangan karena
batas perulangan ini ditunjukkan oleh repeat-until. Struktur repeat-until
adalah:
Gambar 2.2. Struktur Perulangan Repeat-Until
(Jahiding, 2009).
C. LANGKAH-LANGKAH PERCOBAAN
1. Ketik pada editor turbo pascal dan jalankan program dibawah ini:
{Perulangan For} Program Suhu; Uses Wincrt; Var
Kondisi
Loop
Pernyataan 1
Benar
Pernyataan 2
Salah
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 18
2010
X : Integer; C,F : Real; Begin Writeln ('-----------------------------'); Writeln ('| Celcius | Fahrenheit |'); Writeln ('-----------------------------'); C := 0; FOR X := 1 TO 10 DO Begin F := 1.8*C + 32; Writeln ('|' ,C:8:2,' |',F:9:2, ' |'); C := C+ 0.25; End; Writeln ('-----------------------------'); Readln; End.
Keterangan:
Program di atas membuat konversi suhu dari C ke F dengan 7 data, mulai
C = 2 disebut inisialisasi dan kelipatan 5 (C = 5).
2. Ketik pada editor turbo Pascal dan jalankan program dibawah ini:
{ Perulangan While Do } Program Suhu; Uses Wincrt; Var Lagi : Char; R,C,F : Real; Begin Lagi := 'Y'; While Lagi = 'Y' DO Begin Clrscr; Write ('Nilai Celcius = '); Readln (C); F := 1.8*C+32; R := 4/5*C; Writeln ('Fahrenheit = ',F:7:2); Writeln ('Reamur = ',R:7:2); Writeln ('Menghitung Lagi ? (Y/T)'); Readln (Lagi); End;
End.
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 19
2010
3. Ketik pada editor turbo Pascal dan jalankan program dibawah ini:
{ Perulangan Repeat Until } Program Suhu; Uses Wincrt; Const Awal = 0; Akhir = 100; Delta = 10; Var R,C,F : Real; Begin Clrscr; Writeln (' ---------------------------------- '); Writeln (' | Celcius | Fahrenheit | Reamur | '); Writeln (' ---------------------------------- '); C:= Awal; Repeat F:= 1.8*C+32; R:= 4/5*C; Writeln (' |',C:7:2,' |',F:9:2,' |',R:7:2,' |'); C:= C + Delta; Until C > Akhir; Writeln (' ---------------------------------- '); Readln; End.
D. PERCOBAAN DAN HASIL EKSEKUSI
1. Perulangan FOR
{Perulangan For} Program Suhu; Uses Wincrt; Var X : Integer; C,F : Real; Begin Writeln ('-----------------------------'); Writeln ('| Celcius | Fahrenheit |'); Writeln ('-----------------------------'); C := 0; FOR X := 1 TO 10 DO Begin
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 20
2010
F := 1.8*C + 32; Writeln ('|' ,C:8:2,' |',F:9:2, ' |'); C := C+ 0.25; End; Writeln ('-----------------------------'); Readln; End.
Hasil Eksekusi
2. Perulangan While Do
{ Perulangan While Do } Program Suhu; Uses Wincrt; Var Lagi : Char; R,C,F : Real; Begin Lagi := 'Y'; While Lagi = 'Y' DO Begin Clrscr; Write ('Nilai Celcius = '); Readln (C); F := 1.8*C+32; R := 4/5*C; Writeln ('Fahrenheit = ',F:7:2); Writeln ('Reamur = ',R:7:2); Writeln ('Menghitung Lagi ? (Y/T)'); Readln (Lagi); End;
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 21
2010
End. Hasil Eksekusi
3. Perulangan Repeat-Until
{ Perulangan Repeat Until } Program Suhu; Uses Wincrt; Const Awal = 0; Akhir = 100; Delta = 10; Var R,C,F : Real; Begin Clrscr; Writeln (' ---------------------------------- '); Writeln (' | Celcius | Fahrenheit | Reamur | '); Writeln (' ---------------------------------- '); C:= Awal; Repeat F:= 1.8*C+32; R:= 4/5*C; Writeln (' |',C:7:2,' |',F:9:2,' |',R:7:2,' |'); C:= C + Delta; Until C > Akhir; Writeln (' ---------------------------------- '); Readln;
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 22
2010
End. Hasil Eksekusi
E. PEMBAHASAN
Pada percobaan ini dibuat 3 macam program suhu, dimana tiap-tiap
program suhu tersebut terdiri dari perulangan yang berbeda satu sama lain.
Ketiga macam perulangan tersebut yaitu perulangan For, perulangan While-
Do, dan perulangan Repeat-Until. Pernyataan perulangan dipakai untuk
melakukan proses berulang terhadap pernyataan sederhana atau pernyataan
terstruktur.
Program pertama yang pertama yaitu program suhu yang
menggunakan perulangan for yaitu perulangan positif (for-to-do). Perulangan
dengan statemen for adalah perulangan yang digunakan untuk melakukan
suatu proses dalam sebuah blok program. Perulangan dengan statemen for-to-
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 23
2010
do digunakan untuk mengulang statemen atau blok statemen berulang kali
sejumlah yang ditentukan. Proses perulangan ini dimulai dengan nilai terkecil
ke nilai terbesar oleh karena itu perulangan ini disebut juga sebagai
perulangan positif.
Program suhu ini dideklarasikan dengan deklarasi variabel, dimana X
bertipe data integer (tipe data integer merupakan tipe data bilangan bulat yang
hanya mengenal bilangan decimal, dimana tipe data integer tidak mengenal
pecahan), adapun C dan F bertipe data real (tipe data real adalah tipe data
dari suatu tanda pengenal selain mengenal bilangan bulat utuh tipe data ini
juga mengenal nilai angka yang mengenal pecahan). Pada program suhu ini
mengkonversi suhu dari celcius (C) ke fahrenheit (F) dan pada bagian
pernyataan terdapat statement “For X := 1 To 10 Do” yang berarti bahwa
nilai X akan diulangi sampai 10 kali. Pada program ini juga terdapat
pernyataan “F := 1,8C + 32” yang menyatakan nilai F dan pernyataan “C := C
+ 0.25” yang menyatakan besar nilai C yang akan dimasukkan pada rumus
untuk menentukan nilai F, jadi nilai C akan terus bertambah dengan kelipatan
0,25 sampai 10 data. Kemudian pernyataan “writeln (C:8:2, F:9:2)” yang
menyatakan nilai C harus terdiri dari 8 digit dengan 2 angka dibelakang koma
dan nilai F harus terdiri dari 9 digit dengan 2 angka dibelakang koma.
Pada program kedua yaitu program suhu dengan perulangan while do,
variabel yang dideklarasikan yaitu Lagi yang bertipe data char (tipe data real
merupakan salah satu jens tipe data selain mengenal angka disini tipe data ini
dapat juga mengenal data berupa huruf maupun tanda baca, dari segi kapsitas
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 24
2010
ruang tipe data char jauh lebih sedikit karena hanya mengenal 1 karakter).
Adapun R,C,F dideklarasikan dengan tipe data real. Program ini juga akan
mengkonversi suhu dalam satuan celcius kedalam satuan fahrenheit dan
reamur. Perulangan yang digunakan pada program suhu yang kedua adalah
perulangan while-do. Perulangan ini adalah statement perulangan yang akan
terus melakukan suatu proses selama kondisi/syarat yang ditentukan bernilai
benar. Pada bagian pernyataan terdapat tampilan “While Lagi = ‘Y’ Do”, ini
berarti apabila kita akan mengulang program tersebut maka kita harus
mengetik Y pada hasil eksekusi program dan bila kita tidak ingin mengulang
program tersebut kita harus mengetik T.
Pada program ketiga yang menggunakan perulangan repeat-until.
Proses program diantara repeat-until akan dikerjakan sampai syarat yang
diberikan di belakang until terpenuhi. Yang perlu diingat bahwa sebelum
pernyataan repeat nilai awal pencacah (counter) perlu diset (diberi nilai awal)
lebih dahulu. Program ini dideklarasikan dengan beberapa konstanta seperti
awal = 0, akhir = 100, dan delta = 10. Pada bagian pernyataan terdapat
tampilan “Repeat F:= 1.8*C+32; R:= 4/5*C; Writeln (' |',C:7:2,' |',F:9:2,'
|',R:7:2,' |'); C:= C + Delta; Until C > Akhir;”, Ini berarti bahwa perhitungan
akan dilakukan berulang dari suhu dalam celcius bernilai 0 sampai 100 dengan
kelipatan 10.
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 25
2010
F. KESIMPULAN
Dari hasil percobaan dan pembahasan, dapat disimpulkan beberpa hal
sebagai berikut:
1. Perulangan For terdiri atas 2 jenis, yaitu perulangan positif yang
dibentuk dengan menggunakan pernyataan For-To-Do (dari data yang
terkecil hingga data yang terbesar) dan perulangan negatif yang dibentuk
dengan menggunakan pernyataan For-Down To-Do (dari data yang besar
hingga data yang terkecil).
2. Perulangan While Do digunakan untuk memproses perulangan suatu
pernyataan terus-menerus selama syarat yang ditentukan bernilai benar
atau terpenuhi.
3. Pada perulangan Repeat Until, Proses program diantara repeat-until akan
dikerjakan sampai syarat yang diberikan di belakang until terpenuhi.
G. SARAN
Sebaiknya sebelum praktikum dimulai, asisten terlebih dahulu
menjelaskan tentang teori (selain yang ada di penuntun) mengenai percobaan
yang akan dilakukan agar praktikan tidak hanya tahu mengetik program saja
tetapi juga bisa mengetahui fungsi dari bagian yang ada dalam sebuah
program.
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 26
2010
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 27
2010
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 28
2010
PERCOBAAN III
TIPE DATA ARRAY DAN RECORD
A. TUJUAN
1. Mengetahui Tipe-tipe Data Array.
2. Mengetahui Tipe-tipe Data Record.
3. Membuat Program Array dan Record.
B. TEORI
3. Tipe Data Array
Array merupakan struktur data yang statis, yaitu jumlah elemen
yang ada harus ditentukan terlebih dahulu dan tak bisa diubah saat
program berjalan. Untuk menyatakan array dalam Pascal kita harus
terlebih dahulu:
Mendefinisikan jumlah elemen array.
Mendefinisikan tipe data dari elemen array.
Contoh :
Const
N=10;
Type
A= array [1..N] of integer;
(Yulianto, 2006).
Array adalah tipe data terstruktur yang terdiri dari sejumlah
komponen-komponen yang mempunyai tipe sama. Komponen-komponen
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 29
2010
tersebut disebut sebagai komponen type, larik mempunyai jumlah
komponen yang jumlahnya tetap. Banyaknya komponen dalam larik
ditunjukkan oleh suatu index, dimana tiap komponen di array dapat
diakses dengan menunjukkan nilai indexnya atau subskript. Array dapat
bertipe data sederhana seperti byte, word, integer, real, bolean, char,
string dan tipe data scalar atau subrange. Tipe larik mengartikan isi dari
larik atau komponen- komponenya mempunyai nilai dengan tipe data
tersebut.
Contoh:
Var
Untai : array[1..50] of Integer;
Pada contoh array dengan nama untai telah dideklarasikan dengan
tipe integer, dengan jumlah elemen maksimum 50 elemen, nilai dari
elemen array tersebut di atas harus bertipe integer (http://materi-
praktek.blogspot.com/2007/03/bab-4-array-pascal.html).
Array sendiri dibedakan menjadi:
Array dimensi satu
Gambar berikut melukiskan sebuah array berdimesni satu yang
dipakai untuk menyimpan data nilai hasil ujian.
100 75 60 65 80
Pendeklarasian array nilai tes di atas adalah
Const
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 30
2010
MaxTes = 5;
Type
Nilai = Array [1..MaxTes] Of Byte
Var
NilaiTes : Nilai;
Array dimensi dua (multidimensi)
Array multidimensi merupakan array yang bertipe array. Array
multidimensi yang paling umum adalah array dimensi dua yaitu dalam
bentuk tabel dan matriks. Indeks pertama menunjukkan baris dan
indeks kedua menunjukkan kolom dari tabel atau matriks. Bentuk
array multidimensi ini adalah:
Nama array = Array [indeks1] Of Array [indeks2] Of Type
Atau dapat pula dideklarasikan dalam bentuk
Nama array = Array [indeks1, indeks2] Of Type
4. Tipe Data Record
Record merupakan jenis data terstruktur yang mengandung
sejumlah elemen bisa mengandung tipe data yang berlaianan. Tiap-tiap
elemen dalam record disebut field dan setiap field memiliki nama
tersendiri. Bentuk pendeklarasian record adalah:
Record
Field-1 : Tipe Record-1;
Field-2 : Tipe Record-2;
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 31
2010
Field-N : Tipe Record-N;
End.
(Jahiding, 2009).
C. LANGKAH-LANGKAH PERCOBAAN
1. Ketik pada editor turbo pascal dan jalankan program dibawah ini:
{ Tipe Data Array } Program Matriks (Input,Output); Uses Wincrt; Type Mat1 = Array [1..50, 1..50] of Real; Var I,J,Baris,Kolom : Integer; A : Mat1; Begin Clrscr; Write ('Berapa Ukuran Matriks <Baris><Kolom> :'); Readln (Baris,Kolom); FOR I:= 1 TO Baris DO FOR J:= 1 TO Kolom DO Read (A[I,J]); Writeln ('Sudah Dibaca Matriks : '); FOR I:= 1 TO Baris DO FOR J:= 1 TO Kolom DO Writeln ('A[',I,',',J,'] = ', A[I,J]:5:2); Readln; End.
2. Ketik pada editor turbo pascal dan jalankan program dibawah ini:
{Tipe Data Record} Program KRS_Mahasiswa (Input,Output); Uses Wincrt; Type KRS = Record NamaMhs : STRING [20]; NoMhs : Integer; KodeFak : STRING [5]; End; Var DataKRS : Array [1..100] of KRS; JumlahMhs,NoRek,I : Integer; Reply : CHAR;
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 32
2010
Begin Clrscr; Writeln ('ISILAH RECORD BERIKUT : '); Write ('Ada Berapa Jumlah Record : ') ; Readln (JumlahMhs); FOR I:= 1 TO JumlahMhs DO Begin Write ('Nama Mahasiswa : ') ; Readln (DataKRS[I].NamaMhs); Write ('Nmr. Mahasiswa : ') ; Readln (DataKRS[I].NoMhs); Write ('Kode Fakultas : ') ; Readln (DataKRS[I].KodeFak); End; Reply:='Y'; WHILE (Reply = 'Y') OR (Reply = 'y') DO Begin Clrscr; Write ('Mau menampilkan record ke berapa : ') ; Readln (NoRek); Writeln ('Nama Mahasiswa : ',DataKRS [NoRek].NamaMhs); Writeln ('Nmr. Mahasiswa : ',DataKRS [NoRek].NoMhs); Writeln ('Kode Fakultas : ',DataKRS [NoRek].KodeFak); Writeln ('Mau Menampilkan Lagi ? (Y/N)'); Readln (Reply); End; End.
D. PERCOBAAN DAN HASIL EKSEKUSI
4. Tipe Data Array
{ Tipe Data Array } Program Matriks (Input,Output); Uses Wincrt; Type Mat1 = Array [1..50, 1..50] of Real; Var I,J,Baris,Kolom : Integer; A : Mat1; Begin Clrscr; Write ('Berapa Ukuran Matriks <Baris><Kolom> :'); Readln (Baris,Kolom);
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 33
2010
FOR I:= 1 TO Baris DO FOR J:= 1 TO Kolom DO Read (A[I,J]); Writeln ('Sudah Dibaca Matriks : '); FOR I:= 1 TO Baris DO FOR J:= 1 TO Kolom DO Writeln ('A[',I,',',J,'] = ', A[I,J]:5:2); Readln; End.
Hasil Eksekusi
5. Tipe Data Record
{Tipe Data Record} Program KRS_Mahasiswa (Input,Output); Uses Wincrt; Type KRS = Record NamaMhs : STRING [20]; NoMhs : Integer; KodeFak : STRING [5]; End; Var DataKRS : Array [1..100] of KRS; JumlahMhs,NoRek,I : Integer; Reply : CHAR; Begin Clrscr; Writeln ('ISILAH RECORD BERIKUT : '); Write ('Ada Berapa Jumlah Record : ') ; Readln (JumlahMhs); FOR I:= 1 TO JumlahMhs DO Begin
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 34
2010
Write ('Nama Mahasiswa : ') ; Readln (DataKRS[I].NamaMhs); Write ('Nmr. Mahasiswa : ') ; Readln (DataKRS[I].NoMhs); Write ('Kode Fakultas : ') ; Readln (DataKRS[I].KodeFak); End; Reply:='Y'; WHILE (Reply = 'Y') OR (Reply = 'y') DO Begin Clrscr; Write ('Mau menampilkan record ke berapa : ') ; Readln (NoRek); Writeln ('Nama Mahasiswa : ',DataKRS [NoRek].NamaMhs); Writeln ('Nmr. Mahasiswa : ',DataKRS [NoRek].NoMhs); Writeln ('Kode Fakultas : ',DataKRS [NoRek].KodeFak); Writeln ('Mau Menampilkan Lagi ? (Y/N)'); Readln (Reply); End; End.
Hasil Eksekusi
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 35
2010
E. PEMBAHASAN
Percobaan kali ini membahas tentang dua tipe data yaitu tipe data
array dan tipe data record. Tipe data array adalah tipe data terstruktur yang
terdiri dari sejumlah komponen-komponen yang mempunyai tipe sama.
Didalam penulisan bahasa pemograman pascal setiap penggunaan array harus
dideklarsikan terlebih dahulu. Pendeklarasian array diawali dengan nama
variabel array diikuti dengan indeks array yang dituliskan didalam tanda “[ ]”
, diikuti dengan kata cadangan of dan tipe data yang dibutuhkan. Adapun
untuk record disusun oleh beberapa field. Tiap field berisi data dari tipe dasar /
bentukan tertentu. Record mempunyai kelebihan untuk menyimpan suatu
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 36
2010
sekumpulan elemen data yang berbeda-beda tipenya (di banding array). Cara
pendeklarasian dari record adalah mendefinisikan tipe dari record (jumlah
field, jenis tipe data yang dipakai), dan mendefinisikan variabel untuk
dilakukan operasi.
Untuk program yang pertama, tipe data yang digunakan adalah tipe
data array, dengan judul Program Matriks. Pada program ini digunakan
kembali perulangan for untuk membaca baris dan kolom pada matriks yang
akan diulang. Setelah program ini dijalankan maka pada layar eksekusi akan
muncul tampilan yang memerintahkan kita untuk mengisi ukuran matriks
yang diinginkan serta elemen-elemen matriks tersebut. Pada saat elemen-
elemen matriks tersebut telah cukup maka pada saat kita menekan enter,
program akan menunjukkan pada kolom berapa dan baris berapa elemen-
elemen matriks tersebut. Jadi, seperti pada hasil eksekusi program di atas
ukuran matriks yang dimasukkan berukuran 3 x 4, sehingga kita harus
memasukkan elemen-elemen matriks sebanyak 12 angka. Pada bagian
deklarasi type tampak tampilan “Mat1 = Array [1..50, 1..50] of Real”, ini
berarti dalam program tersebut ada lima elemen dalam array Mat1 yang
dinyatakan dengan Mat1[1] sampai dengan Mat1[50]. Yang dimaksud indeks
array adalah 1 s/d 50, yang menunjukkan banyaknya data yang mampu
disimpan. Adapun tipe data real menunjukkan bahwa data yang diinput
berupa bilangan real.
Selanjutnya untuk program yang kedua dengan tipe data record dapat
dilihat pada program yang berjudul Program KRS_Mahasiswa (Input,Output)
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 37
2010
yang mengandung perulangan while-do dan perulangan for untuk mengulangi
pernyataan yang diinginkan. Program tersebut menggunakan record
dikombinasi dengan array, bertujuan untuk mengisi data lebih dari satu. Pada
bagian deklarasi juga terdapat “NamaMhs : STRING [20]” dan “KodeFak
STRING [5]”, yang berarti jumlah karakter pada nama mahasiswa tidak boleh
lebih dari 20 dan nomor mahasiswa tidak boleh lebih dari 5 karakter. Pada
hasil eksekusi program ini pertama-tama meminta kita untuk mengisi ada
berapa jumlah record yang diinginkan kemudian kita mengisi nama
mahasiswa, nomor mahasiswa dan kode fakultas sebanyak record yang
diinginkan sesuai jumlah karakter yang telah ditentukan. Setelah mengisi data-
data tersebut maka program akan menuliskan data yang sebelumnya telah
tersimpan sesuai dengan urutan record yang ingin kita tampilkan kembali, jika
kita ingin menampilkan record yang lain, kita mengetikkan Y, kemudian kita
tinggal mengetikkan nomor record yang akan ditampilkan, dan jika tidak
ketik N.
F. KESIMPULAN
Kesimpulan yang dapat diambil dari percobaan ini adalah sebagai
berikut :
1. Tipe data Array adalah tipe data terstruktur yang terdiri dari sejumlah
komponen-komponen yang mempunyai tipe sama.
2. Tipe data Record adalah tipe data yang menyimpan sekumpulan elemen
data yang tipenya berbeda-beda.
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 38
2010
3. Tipe data array dalam program matriks digunakan untuk menyatakan
elemen-elemen matriks beserta hasil-hasil perkalianya. Adapun program
dengan tipe data record digunakan untuk memasukkan sejumlah data dan
menampilkan data dengan sesuai dengan nomor yang kita inginkan.
G. SARAN
Saran saya untuk para praktikan agar tidak hanya menggunakan satu
sumber saja (penuntun) dalam belajar tapi juga menggunakan referensi lain
yang berhubungan dengan turbo pascal guna menambah pengetahuan tentang
pemrograman pascal.
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 39
2010
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 40
2010
PERCOBAAN IV
FILE DAN DATA
A. TUJUAN
1. Memahami Tipe-tipe Data File.
2. Mencoba Data File Tipe Skalar Dan Tipe Teks.
3. Mencoba Program Pengisi File.
4. Mencoba Program Membaca Isi File.
5. Mencoba Program Membuat File Teks.
B. TEORI
Contoh-contoh program sebelum ini hanya menggunakan
mainmemeory. Ada beberapa kelemahan yang dijumpai yaitu ;
Kapasitas memory terbatas
Setelah komputer dimatikan, data hasil proses akan hilang karena tidak
mempunyai simpanan data dan hasil.
Untuk mengatasi hal ini diguakan secondary memory untuk
menyimpan data dan hasil pemrosesan program dalam bentuk file. Disamping
itu program yang dibicarakan terdahulu bersifat interaktif yaitu input dari
keyboard dan output di monitor. Sebagai alternatif digunakan pemrosesan
bath (bath processing). Dengan cara ini hasil bisa ditampilkan melalui
monitor bisa juga disimpan dalam bentuk suatu file, dan input bisa dalam
bentuk file pula. File bisa dibuat melalui editor Pascal dan ws non document.
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 41
2010
Untuk membedakan dengan file-file yang ada biasanya nama file yang dibuat
diberi ekstensi .DAT atau HSL (Jahiding, 2009).
File Teks disusun sebagai runtunan beberapa baris .
Tiap baris terdiri dari runtunan karakter.
Tiap baris diakhiri oleh karakter khusus, yaitu END-OF-LINE (EOLN) .
Karakter yang terakhir dari file teks adalah END-OF-FILE (EOF).
EOF adalah menerima argumen nama file dan menghasilkan nilai true
jika sudah tidak ada data yang bisa dibaca lagi. Dan EOLN adalah menerima
argumen nama file dan menghasilkan nilai true jika sudah tidak ada lagi data
yang bisa lagi dalam satu baris.
Untuk melakukan operasi pada file teks, kita perlu mendeklarasikan
suatu variabel dengan tipe teks seperti berikut:
var
F : text;
F adalah sembarang variabel file teks dan readme adalah nama file teks
yang akan dibaca, pertama kita harus memanggilnya dengan fungsi:
assign(F,'README');
Sebelum kita bisa membaca kita harus membuka file tersebut.
reset(F);
Kita bisa membaca file baris demi baris, misalkan dengan menyatakan suatu
variabel s sebagai string:
readln(F,s);
Setelah selesai membaca keseluruhan teks kita harus menutupnya dengan:
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 42
2010
close(F);
Kita membuat suatu file teks dengan mengubah kata kunci :
reset(F); menjadi rewrite(F);
Kemudian: Gunakan readln(F,s) untuk membaca file yang akan dikopi dan
writeln(F,s) untuk menulis ke file tujuan (misal kita punya suatu file dengan
path ‘D:\file1.txt’) dan kita akan memgkopinya ke file dengan path
‘D:\file1.txt’).
Untuk mengatasi error pada pembacaan file teks digunakan
errorhandling, yaitu :
{$I-} --> membuat Pascal stabil,
: --> proses pada file,
{$I+} --> deteksi terhadap error.
Error dapat di deteksi dengan memanggil fungsi IOResult. Jika
IOresult adalah 0, maka tidak terjadi error (Yulianto, 2006).
Variabel adalah bentuk penyimpanan internal ketika program dijalankan.
Setelah program selesai, maka nilai variabel tersebut akan hilang. Ada
banyak kasus dimana diinginkan agar nilai variabel bisa disimpan
kemudian dipakai kembali. Untuk melakukan penyimpanan tersebut, kita
bisa menggunakan file (berkas).
File adalah suatu bentuk penyimpanan eksternal dalam suatu media
penyimpanan. Program yang ditulis adalah sebuah file, hasil kompilasi
(program) juga adalah sebuah file. Ketika Anda mengedit dengan editor,
yang Anda edit merupakan file yang jenisnya adalah teks.
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 43
2010
File berguna untuk menyimpan data yang akan dipakai kembali, karena
apa yang disimpan di file akan ada di media penyimpanan sekunder
(harddisk atau disket), dan dapat dipakai kembali meskipun komputer
sudah dimatikan. Hal ini berbeda dengan variabel yang nilainya akan
hilang ketika program selesai berjalan.
(www.unsoed.ac.id/.../Pemrograman/PAF%2008217%20Pemrograman
%20Komp%20Pascal.pdf).
C. LANGKAH-LANGKAH PERCOBAAN
1. Ketik pada editor turbo pascal dan jalankan program di bawah ini: Program Mengisi_File; { Program membuat dan mengisi data pada file dengan type integer } Uses Wincrt; Type Filink = File of Integer; Var Bil : Integer; Fil : Filink; Begin Clrscr; Assign (Fil,'Data.Int'); Rewrite (Fil); Writeln ('Masukkan Bilangan-Bilangan Bulat ! '); Writeln ('Tiap Satu Bilangan Ditekan Return'); Writeln ('Jika Selesai Isikan Bilangan 0 '); Read (bil); Write (' '); While bil <> 0 Do Begin Write (fil,bil); Read (bil); Write (' '); End; Close (Fil); End.
2. Ketik pada editor turbo pascal dan jalankan program dibawah ini:
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 44
2010
Program Membaca_Isi_File; {Program membaca isi file yang telah dibuat sebelumnya} Uses Wincrt; Type Filink = File of Integer; Var Bil,I : Integer; Fil : Filink; Begin Clrscr; Assign (Fil,'Data.Int'); Reset (Fil); Writeln ('Data yang dibaca dari file Data.Int'); Writeln ('Adalah sebagai berikut : '); Writeln; I:=0; While not EOF (Fil) Do Begin I:= I + 1; Read (Fil,Bil); Write (bil,' '); End; Writeln; Writeln; Writeln('Banyaknya data yang dibaca adalah : ',I); Close (Fil); Readln; End.
3. Ketik pada editor turbo pascal dan jalankan program dibawah ini:
Program Membuat_File_Text; {Program membuat dan mengisi data pada file dengan type text} Uses Wincrt; Var Fteks : Text; Nafil : String [15]; Teks : String [80]; Begin Clrscr; Write ('Tulis nama filenya : '); Readln (Nafil); Assign (Fteks,nafil); Rewrite (Fteks); Write ('Tulis datanya, jika selesai tulis titik (.)'); Writeln; Readln (teks);
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 45
2010
While Teks <> '.' Do Begin Write (Fteks,teks); Readln (teks); End; Close (Fteks); End.
D. PERCOBAAN DAN HASIL EKSEKUSI
6. Program Mengisi File
Program Mengisi_File; { Program membuat dan mengisi data pada file dengan type integer } Uses Wincrt; Type Filink = File of Integer; Var Bil : Integer; Fil : Filink; Begin Clrscr; Assign (Fil,'Data.Int'); Rewrite (Fil); Writeln ('Masukkan Bilangan-Bilangan Bulat ! '); Writeln ('Tiap Satu Bilangan Ditekan Return'); Writeln ('Jika Selesai Isikan Bilangan 0 '); Read (bil); Write (' '); While bil <> 0 Do Begin Write (fil,bil); Read (bil); Write (' '); End; Close (Fil); End.
Hasil Eksekusi
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 46
2010
7. Program Membaca Isi File
Program Membaca_Isi_File; {Program membaca isi file yang telah dibuat sebelumnya} Uses Wincrt; Type Filink = File of Integer; Var Bil,I : Integer; Fil : Filink; Begin Clrscr; Assign (Fil,'Data.Int'); Reset (Fil); Writeln ('Data yang dibaca dari file Data.Int'); Writeln ('Adalah sebagai berikut : '); Writeln; I:=0; While not EOF (Fil) Do Begin I:= I + 1; Read (Fil,Bil); Write (bil,' '); End; Writeln; Writeln; Writeln('Banyaknya data yang dibaca adalah : ',I); Close (Fil); Readln; End.
Hasil Eksekusi
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 47
2010
8. Program Membuat File Text
Program Membuat_File_Text; {Program membuat dan mengisi data pada file dengan type text} Uses Wincrt; Var Fteks : Text; Nafil : String [15]; Teks : String [80]; Begin Clrscr; Write ('Tulis nama filenya : '); Readln (Nafil); Assign (Fteks,nafil); Rewrite (Fteks); Write ('Tulis datanya, jika selesai tulis titik (.)'); Writeln; Readln (teks); While Teks <> '.' Do Begin Write (Fteks,teks); Readln (teks); End; Close (Fteks); End.
Hasil Eksekusi
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 48
2010
E. PEMBAHASAN
Pada percobaan ini kita membuat 3 program yaitu program mengisi
file, program membaca file, program membuat file_teks.
Pada program mengisi file, tipe yang dideklarasikan adalah filink yang
berupa file of integer dan variabel yang dideklarasikan adalah bilangan (bil)
yang berupa integer dan fil yang berupa file of integer. Sebelum suatu file
digunakan, maka nama file (external file) tersebut harus dihubungkan dengan
variabel file. Pada bagian pernyataan dideklarasikan “Assign (Fil,’Data.int’)”,
Fil adalah variabel file, dan Data.int adalah external file. Prosedur assign akan
menjalani tipe file pada nama file eksternal atau piranti logika yang ditentukan
oleh strim nama file. Adanya prosedur rewrite pada bagian pernyataan
memungkinkan untuk membuka file baru atau menulis di atas file yang sudah
ada yang disebut filename. Selain itu pada pernyataan juga terdapat
perulangan while-do yaitu “While bil < > 0 Do”, artinya bilangan yang kita
input ke program, kita akan terus-menerus akan mengisi data sampai kita
memasukkan nilai nol (0). Selanjutnya prosedur write pada “Write (fil,bil)”
digunakan untuk merekam satu atau lebih nilai ke dalam file.
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 49
2010
Selanjutnya pada program membaca isi file, program ini dapat
membaca isi file yang telah dibuat sebelumnya. Program ini menggunakan
deklarasi type yaitu filink yang berupa file of integer dan deklarasi variabel
yaitu bil dan I yang berupa integer dan fil sebagai filink. Pada bagian
pernyataan ”While not EOF (Fil) Do” dalam program ini terdapat EOF (End-
Of-File) yang berfungsi untuk menerima argumen nama file dan menghasilkan
nilai true jika sudah tidak ada data yang bisa dibaca lagi.
Berikutnya adalah program membuat file text dalam percobaan ini
berbeda dengan program mengisi file yang hanya dapat membaca data dalam
bentuk angka saja. Pada program membuat file text menggunakan deklarasi
variabel yaitu Fteks sebagai tipe text, nafil yang bertipe data string dengan
subscribe 15 dan teks yang bertipe data string dengan subscribe 80 dan kita
dapat memasukkan data baik dalam bentuk angka maupun teks. Pada Program
membuat file kita dapat memasukkan data dalam bentuk angka dan huruf/text
yang akan disimpan. Untuk membuka kembali isi file tersebut digunakan
program membuka isi file, yang menampilkan kembali nilai-nilai yang telah
kita simpan dalam program mengisi file.
F. KESIMPULAN
Kesimpulan yang dapat diambil dari hasil percobaan dan pembahasan
adalah sebagai berikut :
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 50
2010
1. File adalah tempat menyimpan data dan hasil pemrosesan program dan file
bisa dibuat melalui editor pascal dan ws non document.
2. Pada program mengisi file menggunakan dua deklarasi yaitu deklarasi
type adalah filink yang berupa file of integer dan deklarasi variabel adalah
bil yang bertype integer dan kita hanya dapat memasukkan data dalam
bentuk angka saja.
3. Pada program membaca isi file, yang dideklarasikan adalah filink yang
berupa file of integer, sedangkan variabel yang dideklarasikan adalah bil
dan I yang bertipe data integer dan fil sebagai bertipe filink yang berupa
file of integer.
4. Pada program membuat file text menggunakan deklarasi variabel yaitu
Fteks sebagai tipe text, nafil yang bertipe data string dengan subscribe 15
dan teks yang bertipe data string dengan subscribe 80 dan kita dapat
memasukkan data baik dalam bentuk angka maupun teks.
G. SARAN
Sebaiknya asisten tidak hanya menjelaskan program yang ada dalam
penuntun tapi juga dapat diambil dari buku-buku lain yang terkait dengan
turbo pascal.
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 51
2010
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 52
2010
PERCOBAAN V
PROSEDUR DAN FUNGSI
A. TUJUAN
1. Memahami Struktur Subprogram (Subroutine).
2. Menyusun Program Menggunakan Procedure.
3. Menyusun Program Menggunakan Function.
B. TEORI
Subprogram adalah suatu program terpisah dalam blok tersendiri
program utama, dan dilaksanakan bila judul subprogram dipanggil pada
program utama. Subprogram tidak dapat berdiri sendiri artinya tidak dapat
dijalankan tanpa subprogram utama. Pascal menyediakan 2 (dua) macam
subprogram yaitu procedure dan function (Jahiding, 2009).
Program Pascal akan menjadi mudah dibuat jika ditulis dalam bentuk
modul-modul. Sistem modul ini memiliki beberapa keuntungan, diantaranya :
Untuk langkah-langkah yang sering dilakukan (bukan perulangan), akan
terhindar dari pembuatan pernyataanpernyataan yang sama.
Suatu modul program hanya sekali ditetapkan dan dapat dipanggil dari
beberapa tempat dalam program. Sekumpulan data yang berbeda juga
dapat diproses setiap kali modul tersebut dijalankan.
Dengan menggunakan sistem modul ini panjang program akan dapat
dikurangi. Dalam pascal terdapat dua tipe modul, yaitu prosedur dan fungsi
(procedures and functions). Dua tipe modul program ini sama, hanya cara
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 53
2010
pemanggilannya berbeda, dan memberikan informasi dengan cara yang
berbeda.
Prosedur (Procedures) memiliki struktur yang sama dengan struktur
program, yaitu terdiri dari nama prosedur, pengumuman-pengumuman atau
deklarasi (kecuali pengumuman uses), dan bagian utama (pernyataan) dari
prosedur tersebut. Di dalam prosedur juga dimungkinkan terdapat prosedur
(atau fungsi) lainnya, sehingga dapat disebut dengan prosedur bersarang
(nested procedures).
(Yulianto, 2006).
Alasan penggunaan prosedur adalah sebagai berikut.
1. Digunakan untuk penggalan program yang akan digunakan secara
berulang – ulang dalam suatu proses program.
2. Digunakan untuk memecah – mecah program menjadi sebuah modul
program, sehingga listing program menjadi lebih sederhana.
Adapun syarat penulisan nama prosedur adalah:
1. Harus diawali dengan karakter.
2. Untuk nama prosedur dengan menggunakan dua kata atau lebih
penulisannya tidak boleh menggunakan spasi, harus digabung atau
dihubungkan dengan underscore ( _ )
3. Tidak mengenal tanda baca.
PROCEDURE nama(daftar_parameter)
Bagian deklarasi / pengumuman;
Bagian pernyataan;
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 54
2010
(http://materi-praktek.blogspot.com/2007/03/bag-iv-prosedur-perulangan-
dan-megenal.html)
Fungsi (functions) hampir sama dengan prosedur, dengan sedikit
perbedaan bahwa nama fungsi sekaligus berfungsi sebagai suatu ungkapan
(pada blok pemanggil fungsi tersebut). Sehingga setiap fungsi harus
diumumkan tipe datanya.
(Yulianto, 2006).
Dan penulisan program fungsi ditempatkan pada program utama. Satu
hal yang perlu diperhatikan dalam penulisan fungsi adalah harus diikuti
dengan tipe datanya. Bentuk Umum penulisan Fungsi :
Fuction indentifier(daftar-parameter) : type;
Contoh :
Function hitung(var a,b : real) :real;
Penulisan blok fungsi diawali dengan kata cadang begin dan diakhiri
dengan end; (http://materi-praktek.blogspot.com/2007/03/bag-v-fungsi.html).
C. LANGKAH-LANGKAH PERCOBAAN
1. Ketik pada editor turbo pascal dan jalankan program dibawah ini: Program Coba1; Uses Wincrt; Var I,T : Integer;
FUNCTION nama_fungsi(daftar_parameter ): tipe;
Bagian deklarasi / pengumuman;
Bagian pernyataan;
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 55
2010
Jawab : Char; Procedure Gambar_Segitiga (Tinggi : Integer); Var Puncak, Alas, Sisi, Blank : Integer; Begin Alas := Tinggi; For Puncak := 1 To Alas Do Begin For Blank := 1 To (Alas-Puncak) Do Write (' '); For Sisi := 1 To (2*Puncak-1) Do Write ('*'); Writeln; End; End; Procedure Tanya; Begin Write ('Mau Menggambar Kembali? (Y/T) : '); Readln (Jawab); End; Begin Clrscr; Gambar_Segitiga (10); Tanya; While (jawab = 'Y') or (jawab = 'y') Do Begin Write ('Tinggi Segitiga : '); Readln (T); Clrscr; Gambar_Segitiga (T); Tanya; End; End.
2. Ketik pada editor turbo pascal dan jalankan program dibawah ini:
Program Coba2; Uses Wincrt; Var N : Integer; Fak : Real; Procedure Faktorial (N:Integer; Var Fak:Real); Var I : Integer; Begin Fak := 1; For I:= 1 To N Do Fak := Fak*I; End; Begin Clrscr; Write('Bilangan yang akan dicari faktorialnya:');
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 56
2010
Readln (N); Faktorial (N, Fak); Writeln ('Faktorial dari ',N,' adalah : ',Fak:10:2); Readln; End.
3. Ketik pada editor turbo pascal dan jalankan program dibawah ini: Program Coba3; Uses Wincrt; Var A,N,P : Integer; Function Pangkat (Bil, Pangk : Integer) : Integer; Var I,K : Integer; Begin K:=1; For I:= 1 To Pangk Do K:= K*Bil; Pangkat:=K; End; Begin Clrscr; Writeln ('2 Pangkat 5 adalah ', pangkat (2,5)); Writeln; Writeln ('Masukkan bilangan yang akan dipangkatkan'); Read (A); Write ('Pangkat '); Readln (N); P := Pangkat (A,N); Writeln (A,' Pangkat ',N,' adalah : ',P); Readln; End.
D. PROGRAM DAN HASIL EKSEKUSI
9. Program Coba1
Program Coba1; Uses Wincrt; Var I,T : Integer; Jawab : Char; Procedure Gambar_Segitiga (Tinggi : Integer); Var
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 57
2010
Puncak, Alas, Sisi, Blank : Integer; Begin Alas := Tinggi; For Puncak := 1 To Alas Do Begin For Blank := 1 To (Alas-Puncak) Do Write (' '); For Sisi := 1 To (2*Puncak-1) Do Write ('*'); Writeln; End; End; Procedure Tanya; Begin Write ('Mau Menggambar Kembali? (Y/T) : '); Readln (Jawab); End; Begin Clrscr; Gambar_Segitiga (10); Tanya; While (jawab = 'Y') or (jawab = 'y') Do Begin Write ('Tinggi Segitiga : '); Readln (T); Clrscr; Gambar_Segitiga (T); Tanya; End; End.
Hasil Eksekusi
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 58
2010
10. Program Coba2
Program Coba2; Uses Wincrt; Var N : Integer; Fak : Real; Procedure Faktorial (N:Integer; Var Fak:Real); Var I : Integer; Begin Fak := 1; For I:= 1 To N Do Fak := Fak*I; End; Begin Clrscr; Write ('Bilangan yang akan dicari faktorialnya : '); Readln (N); Faktorial (N, Fak); Writeln ('Faktorial dari ',N,' adalah : ',Fak:10:2); Readln; End.
Hasil Eksekusi
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 59
2010
11. Program Coba3
Program Coba3; Uses Wincrt; Var A,N,P : Integer; Function Pangkat (Bil, Pangk : Integer) : Integer; Var I,K : Integer; Begin K:=1; For I:= 1 To Pangk Do K:= K*Bil; Pangkat:=K; End; Begin Clrscr; Writeln ('2 Pangkat 5 adalah ', pangkat (2,5)); Writeln; Writeln ('Masukkan bilangan yang akan dipangkatkan'); Read (A); Write ('Pangkat '); Readln (N); P := Pangkat (A,N); Writeln (A,' Pangkat ',N,' adalah : ',P); Readln; End.
Hasil Eksekusi
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 60
2010
E. PEMBAHASAN
Program yang pertama yaitu program coba1 menggunakan deklarasi
varaibel yaitu I, T yang berupa integer dan jawab yang berupa character.
Program ini menggunakan subprogram procedure. Prosedur adalah suatu
program terpisah dan berdiri dalam suatu blok program dan befungsi sebagai
sebuah sub program (program bagian). Penulisan prosedur diawali dengan
kata procedure pada bagian deklarasi program dan cukup menuliskan nama
prosedur yang dibuat pada bagian Implementasi. Dalam program ini terdapat
“Procedure Gambar_Segitiga (Tinggi : Integer)”, yang menyatakan bahwa
nama prosedurnya adalah gambar segitiga dengan tinggi sebagai parameternya
yang bertype data integer. Prosedur ini menggunakan deklarasi variabel yaitu
puncak, alas, sisi, blank yang bertipe data integer. Pada bagian pernyataan
terdapat ”Alas := Tinggi;” menunjukkan bahwa alas sama dengan tinggi
dengan puncak yang tingginya sampai dengan alas, dan ”For Puncak := 1 To
Alas Do” menyatakan bahwa untuk puncak dimulai dari 1 sampai berapa
jumlah alas yang nantinya akan diinput pada saat program di eksekusi.
Selanjutnya pada pernyataan ”For Blank := 1 To (Alas-Puncak) Do Write (' ');
For Sisi := 1 To (2*Puncak-1) Do Write ('*');”, menyatakan bahwa bagian
blank mulai dari 1 sampai dengan alas-puncak dan sisi yang dimulai dari 1
sampai dengan 2 kali puncak-1. Pada hasil eksekusi terlihat sebuah segitiga
dengan tinggi segitiga sesuai dengan yang kita inginkan dengan alas segitiga 2
kali banyaknya blank yang menyatakan tinggi segitiga tersebut. Adapun
prosedur yang kedua pada program ini yaitu ”Procedure Tanya;”. Pernyataan
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 61
2010
” While (jawab = 'Y') or (jawab = 'y') Do ” pada bagian ini, akan meminta kita
untuk memasukkan pernyataan apakah kita ingin menggambar ulang sebuah
segitiga atau tidak dengan opsi/pilihan Y untuk ya dan T untuk tidak. Jika kita
menuliskan Y maka program akan meminta kita untuk memasukkan tinggi
segitiga yang kita inginkan sedangkan jika kita menuliskan T maka program
tidak meneruskan pernyataan tersebut.
Selanjutnya program yang kedua yaitu program coba2 yang
menggunakan deklarasi variabel yaitu N yang bertipe data integer dan fak
yang bertipe real, percobaan ini juga menggunakan subprogram prosedur
yaitu ”Procedure Faktorial (N : Integer; Var Fak : Real);”. Pada prosedur ini
menggunakan deklarasi variabel yaitu I yang bertipe data integer. Program ini
menentukan hasil faktorial dari sebuah bilangan yang diinput pada ssat
program di eksekusi, dimana output dari bilangan yang akan dicari
faktorialnya adalah N dan nilai N harus terdiri dari 10 angka dengan 2 angka
dibelakang koma.
Sedangkan pada percobaan yang ketiga yaitu Program coba3 yang
menggunakan deklarasi variabel yaitu A, N, P yang bertipe data integer dan
program ini merupakan contoh untuk penggunaan subprogram fungsi yaitu
”Function Pangkat (Bil,pangk:integer) yang bertipe integer. Pada deklarasi
subprogram ini menggunakan deklarasi variabel yaitu I, K yang bertipe
integer. Hasil eksekusi program akan menampilkan hasil perpangkatan dari 25
yang hasilnya adalah 32 dan selanjutnya pada hasil eksekusi kita juga dapat
memasukkan angka yang ingin kita pangkatkan.
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 62
2010
F. KESIMPULAN
Adapun kesimpulan dari percobaan ini adalah sebagai berikut :
1. Subprogram adalah suatu program terpisah dalam blok tersendiri program
utama, dan dilaksanakan bila judul subprogram dipanggil pada program
utama. Subprogram tidak dapat berdiri sendiri artinya tidak dapat
dijalankan tanpa subprogram utama.
2. Prosedur adalah suatu program terpisah dan berdiri dalam suatu blok
program dan befungsi sebagai sebuah sub program (program bagian).
3. Fungsi hampir sama dengan prosedur, dengan sedikit perbedaan bahwa
nama fungsi sekaligus berfungsi sebagai suatu ungkapan (pada blok
pemanggil fungsi tersebut).
G. SARAN
Saran saya pada percobaan ini adalah sebaiknya program yang salah
pada buku penuntun bisa diperbaiki agar kedepannya pada saat praktikum bisa
berjalan lancar.
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 63
2010
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 64
2010
PERCOBAAN VI
GRAFIK
A. TUJUAN
1. Memahami Unit Grafik Turbo Pascal.
2. Mengetahui Perintah-Perintah dalam Unit Graph.
3. Menggambar Kotak dengan Turbo Pascal.
4. Menggambar Lingkaran dengan Turbo Pascal.
5. Menggambar Grafik Sinusoidal.
B. TEORI
Turbo pascal menyediakan fasilitas untuk membuat grafik, pembuatan
grafik harus disesuaikan dengan jenis monitor. Menggambar pada monitor
mempunyai kesamaan pada kertas grafik, bedanya bila sudut kiri bawah kertas
grafik biasa dipakai sebagai pusat koordinat, sedangkan pada layar monitor
sudut kiri atas sebagai pusat koordinat dengan arah ke kanan sebagai x positif
dan arah ke bawah sebagai y positif.
Beberapa program pembantu yang sering dipakai dalam menggambar
grafik.
Circle (x,y,r); digunakan untuk menggambar lingkaran dengan pusat (x,y)
dan radius r.
Rectangle (x1,y1,x2,y2); digunakan untuk menggambar segiempat dengan
titik sudut kiri atas di (x1,y1) dan sudut kanan bawah di (x2,y2).
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 65
2010
Line (x1,y1,x2,y2); digunakan untuk menggambar garis dan titik (x1,y1)
ke titik (x2,y2).
Bar (x1,y1,x2,y2); digunakan untuk menggambar kotak dengan titik sudut
(x1,y1) dan (x2,y2) . (Tim Penyusun,2009:14)
Untuk dapat bekerja dalam mode grafik harus menggunakan unit graph
karena dalam unit ini tersimpan prosedur dan fungsi untuk menggambar
(File Graph TPU). Pastikan bahwa pada disket kerja tersimpan file-file
dengan ekstensi BGI dan Ekstensi CHR. Disamping itu bekerja dengan
mode grafik mempunyai aturan tertentu yaitu diawali dengan bagian
pembukaan dan diakhiri dengan bagian penutup.
Mendefinisikan macam driver yang ada dalam komputer, misalnya
dengan perintah :
Graphdriver := Detect; (mencari sendiri macam driver)
Memberitahukan bahwa bekerja dengan mode grafik dengan perintah :
Inithgraph(graphdriver,Graphmode,’a : ’);
Salah satu cara menggambar grafik pada Pascal yaitu
menggunakan Graphyx Toolbox. Pada Graphyx Toolbox tidak diperlukan
lagi penskalaan karena dikerjakan oleh Graphyx Toolbox sendiri. Sebelum
bekerja dengan Graphyx Toolbox, pada disket kerja disalin file
GDRIVER.TPU, GKERNEL.TPU, ERROR.MSG dan 4X6.FON.
Sebenarnya ada beberapa unit dalam Graphyx Toolbox tetapi yang dipakai
dalam buku ini hanya Gkernel dan Gdriver. Seperti pada unit grafik, sudut
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 66
2010
kiri atas layar monitor koordinatnya (0,0) sedangkan ujung kanan bawah
koordinat (xmaxglb, ymaxglb), bagian layar monitor yang dipakai sebagai
bidang gambar disebut jendela (window), sedang sesuatu yang digambar
disebut semesta (world). Layar monitor dapat diisikan 16 jendela dan
semesta yang dapat dilayani hanya 4 buah.
Untuk memilih semesta n dan jendela m adalah,
Definewindow(m,0,0,xmaxglb,ymaxglb);
Defineworld(n,xmin,ymin,xmax,ymax);
Untuk memberitahu semesta n digambar pada jendela m adalah
Selectworld(n);
Selectwindow9m);
Untuk memberijudul pada gambar di layar monitor, dengan perintah
Defineheader(n,’nama judul’);
Setheaderon;
(M. Jahiding, S.Si., M.Si,2009: )
C. LANGKAH-LANGKAH PERCOBAAN
1. Ketik pada editor turbo pascal dan jalankan program di bawah ini:
Program Menggambar_Kotak; {Digunakan procedure standart untuk menggambar garis yaitu : Draw (X1,Y1,X2,Y2,Warna); dimana X = 0 sampai dengan 319 dan Y = 0 sampai dengan 199)} Uses Graph3; Begin Grapcolormode; Draw (20,10,300,10,3); Draw (300,10,300,190,3); Draw (300,190,20,190,3);
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 67
2010
Draw (20,190,20,10,3); End.
2. Ketik pada editor turbo pascal dan jalankan program di bawah ini:
Program Menggambar_Lingkaran; {digunakan procedure standar untuk menggambar garis yaitu : Circle (X1,Y1,R,Warna)} Uses Graph3; Var Jari2 : Integer; Begin Grapcolormode; Write (‘Berapa nilai jari-jari lingkaran’); Readln (jari2); Jari2 := 199; I:= 1 Repeat Repeat Circle (160,100,jari2,3); Jari2 := jari2 - 5 Until Jari2 > 195; Until I = 5 End.
3. Ketik pada editor turbo pascal dan jalankan program di bawah ini:
Program Sinusoidal; Uses Crt, Graph; Var Xmax, Ymax, X,Y,Y1,Y2 : Integer; Errorcode, Graphmode, Grapdriver : Integer; Begin Graphmode := CGAC2 Grapdriver : CGA; Initgraph := Graphhresult; Errorcode := GraphrsuIt; If Errorcode <> Grok Then Halt; Xmax := Getmaxx; Ymax := Getmaxy; For X := 0 To Xmax Do Begin Yl := Round (Ymax Div 4*sin (X*3.5*Pi/Xmax); Y2 := Round (Ymax Div 6*sin (X*3.5*Pi/Xmax); Y = Y1 + Y2; Yl :=Ymax Div 2-Y1; Putpixel (X, Yl, Getmaxcolor); Y2 := Ymax Div 2-Y2; Putpixel (X, Y2, Getmaxcolor-1);
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 68
2010
Y := Ymax Div 2-Y; Putpixel (X, Y, Getmaxcolor-2); End; Repeat until Readkey = #27; Closegraph; End.
D. PERCOBAAN DAN HASIL EKSEKUSI
1. Progam Menggambar Kotak
Program Menggambar_Kotak; {Digunakan procedure standart untuk menggambar garis yaitu : Draw (X1,Y1,X2,Y2,Warna); dimana X = 0 sampai dengan 319 dan Y = 0 sampai dengan 199)} Uses Graph3; Begin Grapcolormode; Draw (20,10,300,10,3); Draw (300,10,300,190,3); Draw (300,190,20,190,3); Draw (20,190,20,10,3); End.
Hasil Eksekusi
Untuk hasil eksekusi pada percobaan ini tidak dapat dilakukan sebab pada
tipe pascal yang digunakan tidak tersedia unit yang dibutuhkan untuk
mengeksekusi program untuk menggambar kotak.
2. Program Menggambar Lingkaran
Program Menggambar_Lingkaran; {digunakan procedure standar untuk menggambar garis yaitu : Circle (X1,Y1,R,Warna)} Uses Graph3; Var Jari2 : Integer; Begin Grapcolormode; Write (‘Berapa nilai jari-jari lingkaran’); Readln (jari2); Jari2 := 199; I:= 1
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 69
2010
Repeat Repeat Circle (160,100,jari2,3); Jari2 := jari2 - 5 Until Jari2 > 195; Until I = 5 End.
Hasil Eksekusi
Untuk hasil eksekusi pada percobaan ini tidak dapat dilakukan sebab pada
tipe pascal yang digunakan tidak tersedia unit yang dibutuhkan untuk
mengeksekusi program untuk menggambar lingkaran.
3. Program Sinusoidal
Program Sinusoidal; Uses Crt, Graph; Var Xmax, Ymax, X,Y,Y1,Y2 : Integer; Errorcode, Graphmode, Grapdriver : Integer; Begin Graphmode := CGAC2 Grapdriver : CGA; Initgraph := Graphhresult; Errorcode := GraphrsuIt; If Errorcode <> Grok Then Halt; Xmax := Getmaxx; Ymax := Getmaxy; For X := 0 To Xmax Do Begin Yl := Round (Ymax Div 4*sin (X*3.5*Pi/Xmax); Y2 := Round (Ymax Div 6*sin (X*3.5*Pi/Xmax); Y = Y1 + Y2; Yl :=Ymax Div 2-Y1; Putpixel (X, Yl, Getmaxcolor); Y2 := Ymax Div 2-Y2; Putpixel (X, Y2, Getmaxcolor-1); Y := Ymax Div 2-Y; Putpixel (X, Y, Getmaxcolor-2); End; Repeat until Readkey = #27; Closegraph;
End.
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 70
2010
Hasil Eksekusi
Untuk hasil eksekusi pada percobaan ini tidak dapat dilakukan sebab pada tipe
pascal yang digunakan tidak tersedia unit yang dibutuhkan untuk
mengeksekusi program untuk sinusoidal.
E. PEMBAHASAN
Turbo Pascal, menyediakan fasilitas untuk membuat grafik. Dimana
pada pembuatan grafik yang dilakukan harus disesuaikan dengan luas layar
monitor yang digunakan. Menggambar pada monitor mempunyai kesamaan
dengan menggambar pada kertas grafik, bedanya bila sudut kiri bawah kertas
grafik biasa dipakai sebagai pusat koordinat, layar pada monitor memakai
sudut kiri atas sebagai pusat koordinat dengan arah ke kanan sebagai X positif
dan arah kebawah sebagai Y positif. Untuk dapat bekerja dalam mode grafik
harus menggunakan unit graph karena dalam unit ini tersimpan prosedur dan
fungsi untuk menggambar (File Graph TPU). Pastikan bahwa pada disket
kerja tersimpan file-file dengan ekstensi BGI dan Ekstensi CHR. Disamping
itu bekerja dengan mode grafik mempunyai aturan tertentu yaitu diawali
dengan bagian pembukaan dan diakhiri dengan bagian penutup.
Program menggambar kotak, digunakan prosedur standard untuk
menggambar garis yaitu Draw (X1,Y1,X2,Y2,Warna). Pada program ini
dapat digunakan tiga jenis warna yaitu nomor 1 menandakan warna hijau,
nomor 2 menandakan warna merah dan nomor 3 menandakan warna oranye
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 71
2010
kecoklatan. Jadi kita dapat mengganti warna sesuai dengan yang kita
inginkan dengan cara mengganti nilai warna dari prosedur draw di atas.
Untuk program membuat/menggambar lingkaran, digunakan prosedur
standard untuk menggambar lingkaran yaitu Circle (X1,Y1,R, Warna). Pada
hasil eksekusi nilai jari-jari yang digunakan adalah 30, untuk nilai X=160 dan
nilai Y=100, dan warna pada tampilan yang muncul adalah warna oranye
karena menggunkan kode warna 3.
Bukan hanya warna, kita dapat pula mengubah besarnya kotak
ataupun lingkaran yang kita buat dengan mengubah nilai x dan y dari
prosedur standardnya.
Salah satu cara menggambar grafik pada Pascal yaitu menggunakan
Graphyx Toolbox. Pada Graphyx Toolbox tidak diperlukan lagi penskalaan
karena dikerjakan oleh Graphyx Toolbox sendiri. Sebelum bekerja dengan
Graphyx Toolbox, pada disket kerja disalin file GDRIVER.TPU,
GKERNEL.TPU, ERROR.MSG dan 4X6.FON. Program yang ketiga yaitu
program menggambar grafik sinusoidal, program ini sudah dapat dibuat dan
dikompile dengan benar, namun hasil eksekusinya tidak dapat ditampilkan
oleh komputer yang digunakan, karena pada komputer tersebut tidak terdapat
program yang digunakan untuk grafik sinusoidal.
F. KESIMPULAN
Dari percobaan yang dilakukan, dapat ditarik kesimpulan sebagai
berikut :
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 72
2010
1. Unit graph merupakan unit yang di dalamnya tersimpan prosedur dan
fungsi untuk menggambar (File Graph TPU).
2. Perintah-Perintah dalam Unit Graph yaitu Circle (x,y,r); digunakan untuk
menggambar lingkaran dengan pusat (x,y) dan radius r. Rectangle
(x1,y1,x2,y2); digunakan untuk menggambar segiempat dengan titik
sudut kiri atas di (x1,y1) dan sudut kanan bawah di (x2,y2). Line
(x1,y1,x2,y2); digunakan untuk menggambar garis dan titik (x1,y1) ke
titik (x2,y2). Bar (x1,y1,x2,y2); digunakan untuk menggambar kotak
dengan titik sudut (x1,y1) dan (x2,y2).
3. Pada program menggambar kotak digunakan prosedur standart untuk
menggambar garis yaitu draw (X1,Y1,X2,Y2,warna) dimana X=0 sampai
319 dan Y=0 sampai 199.
4. Pada program menggambar lingkaran digunakan prosedur standart untuk
menggambar garis yaitu circle (X1,Y1,R,warna).
5. Grafik dibuat dengan mendeklarasikan program pembantu Line
(X1,Y1,X2,Y2) dengan koordinat X1,Y1 adalah sebagai titik pangkal
garis dan X2,Y2 sebagai titik akhir garis.
G. SARAN
Sebaiknya program yang tidak bisa dieksekusi untuk computer lab
diganti dengan program lain, atau pihak laboratorium menyediakan computer
dan jenis turbo pascal selain yang digunakan saat ini, agar semua program
yang ada dipenuntun bisa dieksekusi.
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 73
2010
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 74
2010
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 75
2010
PERCOBAAN VII
PROGRAM PEMBANTU (SUB PROGRAM)
A. TUJUAN
1. Memahami Program Pembantu
2. Membuat Program yang Mengandung Program Pembantu.
B. TEORI
Sesuai dengan namanya, program pembantu tidak dapat berdiri sendiri,
artinya suatu program pembantu tidak dapat dijalankan tanpa ada program
utama. Seperti halnya dengan variabel yang terdiri dari dua kelompok,
program pembantu juga terdiri dari dua kelompok, yaitu:
program pembantu standar; program pembantu yang disediakan oleh turbo
pascal,
program pembantu buatan; program pembantu yang dibuat oleh
pemrogram.
Selain itu, baik program pembantu standard maupun program
pembantu buatan masing-masing dibagi lagi menjadi dua kelompok menurut
banyaknya keluaran yang dihasilkan, yaitu
program pembantu prosedur, bila banyaknya keluaran yang dihasilkan
lebih dari satu,
program pmbantu fungsi, bila banyaknya keluaran hanya satu.
Telah disebutkan bahwa program pembantu tidak berdiri sendiri, harus
ada program utama yang memanggilnya. Tugas suatu program pembantu
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 76
2010
adalah melakukan sebagian tugas dari program utama, yang dalam kaitan
dengan keperluan kita disini adalah melakukan sebagian dari perhitungan
yang menjadi tugas dari program utama. Mengingat fungsinya tersebut, maka
program pembantu dapat dikelompokkan sebagai berikut:
Program pembantu yang bergantung pada program utama. Program
pembantu kelompok ini mendapat masukan data dari program utama dan
kemudian mengeluarkan hasilnya juga ke program utama. Masukkan
disebut parameter nilai dan keluaran ini disebut parameter variabel.
Program pembantu yang setengah bebas. Program pembantu kelompok ini
mendapat masukan dari data program utama, tetapi hasilnya tidak
dikembalikan ke program utama melainkan langsung ke alat keluaran,
misalnya monitor atau alat cetak. Masukan untuk program pembantu disini
juga disebut parameter nilai.
Program pembantu yang bebas. Program pembantu kelompok ini tidak
mendapat masukan dari data program utama dan juga tidak mengeluarkan
hasilnya ke program utama. Jadi, untuk kelompok ini tidak ada parameter.
Bagian-bagian suatu program pembantu pada prinsipnya sama dengan
bagian-bagian suatu program sederhana, yaitu terdiri dari tiga bagian.
a. Bagian judul yang terdiri dari kata simpanan procedure, untuk program
pembantu prosedur, atau function, untuk program pembantu fungsi, dan
diikuti oleh nama program pembantu. Bila program pembantu termasuk
kelompok program pembantu yang bergantung pada program utama dan
kelompok program pembantu yang setengah bebas maka setelah nama
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 77
2010
program pembantu diikuti lagi dengan parameter yang diletakkan antara
tanda kurung. Contoh:
Procedure Isi_benda (p,l,t : Real; Var isi : Real);
Function Isi_benda (p,l,t : Real) : Real;
b. Bagian deklarasi. Sama dengan bagian deklarasi pada program sederhana.
c. Bagaian badan. Ini juga sama dengan bagian badan pada program
sederhana, hanya akhirnya adalah kata simpanan END yang diikuti oleh
tanda titik-koma (;).
Sesuai dengan prinsip Pascal bahwa sesuatu yang akan dipakai harus
dideklarasikan dahulu (ada beberapa yang menyimpang dari prinsip ini) maka
program pembantu diletakkan pada bagian deklarasi program utama (Jahiding,
2009).
Pemanggilan prosedur terdapat dalam bagian implementation, pada
umumnya pemanggilan prosedur terdapat dalam suatu ruang lingkup object
yang mempunyai sebuah event. Cara pemenggilannya cukup hanya dituliskan
nama prosedurnya saja.atau ketika program prosedur digunakan pada object
yang lain untuk memanggil program yang sama kita hanya cukup menuliskan
nama prosedurnya tanpa dibutuhkan pendeklarasian prosedur baru
(http://materi-praktek.blogspot.com/2007/03/bag-iv-prosedur-perulangan-
dan-megenal.html).
Procedure dan Function ( program pembantu ) pada kedua program di atas
menggunakan variabel yang berbeda (panjang,lebar,tebal dan p,l,t).
Variabel p, l dan t merupakan variabel lokal, sehingga ketiga variabel itu
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 78
2010
tidak dikenal oleh program utama dan juga oleh program pembantu yang
lain (procedure atau function yang lain). Sebaliknya variabel panjang,
lebar dan tebal merupakan variabel global, sehingga yang digunakan oleh
program utama, sehingga dikenal juga oleh program pembantu ( procedure
atau function yang lain ). Perhatikan cara penulisan procedure dan function
berikut:
Procedure IsiLuas(p,l,t : real; Var a,v : real);
dan
Function Vol(p,l,t : real) : real;
Kedua program pembantu tsb merupakan program pembantu yang
tergantung pada program utama dan program pembantu yang setengah
bebas, karenanya setelah nama procedure atau nama Function harus diikuti
parameter yang diletakkan diantara tanda kurung.
(www.achsan.staff.gunadarma.ac.id/Downloads/files/12616/Modul+Pasca
l.pdf).
C. LANGKAH-LANGKAH PERCOBAAN
12. Ketik pada editor turbo pascal dan jalankan program di bawah ini:
{Program yang Menggunakan Program Pembantu Prosedur} Program Isi_luas_balok_1; Uses wincrt; Var panjang, lebar, tebal, luas, isi : Real; Procedure Isi_luas (p, l, t : Real; Var a, v : Real); Begin v := p * l * t; a := 2 * (p * l + l * t + t * p); End;
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 79
2010
Begin {Program utama} Write ('Panjang :'); Readln (panjang); Write ('Lebar :'); Readln (lebar); Write ('Tebal :'); Readln (tebal); Isi_luas (panjang, lebar, tebal, luas, isi); Writeln ('Luas permukaan balok :',luas:10:2); Writeln ('Isi balok :',isi:10:2); End. {Program utama}
13. Ketik pada editor turbo pascal dan jalankan program di bawah ini:
{Pemakaian Program Pembantu Fungsi} Program Isi_Luas_balok_2; Uses Wincrt; Var panjang, lebar, tebal, luas, isi : Real; Function Vol (p, l, t : Real) : Real; Begin Vol := p * l * t; End; Function Area (p, l, t : Real) : Real; Begin Area := 2 * (p * l + l * t + t * p); End; Begin {program utama} Write ('Panjang :'); Readln (panjang); Write ('Lebar :'); Readln (lebar); Write ('Tebal :'); Readln (tebal); Luas := Area (panjang, lebar, tebal); Isi := Vol (panjang, lebar, tebal); Writeln ('Luas permukaan balok :', Luas:10:2); Writeln ('Isi balok :',Isi:10:2) End. {program utama}
14. Ketik pada editor turbo pascal dan jalankan program di bawah ini:
{Program yang Mengandung Program Pembantu 1} Program isi_luas_balok_3; Uses Wincrt; Var p,l,t,luas,isi :real; Procedure isi_luas; Begin isi:=p*l*t; luas:=2*(p*l+l*t+t*p); End; Begin {Program utama}
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 80
2010
Write ('Panjang :');readln (p); Write ('Lebar :');readln (l); Write ('Tebal :');readln (t); Isi_luas; Writeln ('Luas permukaan balok :',luas:10:2); Writeln ('Isi balok :',isi:10:2); End.{Program utama}
15. Ketik pada editor turbo pascal dan jalankan program di bawah ini:
{Program yang Mengandung Program Pembantu 2} Program Isi_Luas_Balok_4; Uses Wincrt; Var p,l,t,luas,isi : Real; Function Vol : Real; Begin Vol := p*l*t; End; Function Area : Real; Begin Area := 2*(p*l+l*t+t*p); End; Begin {Program utama} Write ('Panjang : '); Readln (p); Write ('Lebar : '); Readln (l); Write ('Tebal : '); Readln (t); luas := Area; isi := Vol; Writeln ('Luas permukaan balok : ',luas:10:2); Writeln ('Isi balok : ',isi:10:2); End. {Program utama}
16. Ketik pada editor turbo pascal dan jalankan program di bawah ini:
Program Pembantu Beda File 1
{Program pembantu procedure} Unit isiluas; Interface Uses Wincrt; Procedure Isi_luas (panjang,lebar,tebal : real; var a,v : real); Implementation Procedure isi_luas; Begin v := panjang*lebar*tebal; a := 2*(panjang * lebar + lebar * tebal +
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 81
2010
tebal * panjang); End; End.
Program utama
Program Isi_luas_balok_5; Uses isiluas; Var panjang, lebar, tebal, a, v : Real; Begin {Program utama} Write (‘Panjang : ‘); Readln (panjang); Write (‘Lebar : ‘); Readln (lebar); Write (‘Tebal : ‘); Readln (tebal); Isi_luas (panjang, lebar, tebal, a, v); Writeln (‘Luas permukaan balok: ’,a:10:2); Writeln (‘Isi balok : ’,v:10:2); End. {Program utama}
17. Ketik pada editor turbo pascal dan jalankan program di bawah ini:
Program Pembantu Beda File 2
{Program pembantu function} Unit luasisi; Interface Uses Wincrt; Function vol (p, l, t : Real) : Real; Function area (p, l, t : Real) : Real; Implementation Function vol (p, l, t : Real) : Real; Begin Vol := P * l * t; End; Function area (p, l, t : Real) : Real; Begin Area : 2 * (p * l + l * t + t * p); End; End.
Program utama
Program Isi_luas_balok_6; Uses luasisi; Var P, l, t, areal, volume : Real; Begin {Program utama} Write (‘Panjang : ‘); Readln (p);
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 82
2010
Write (‘Lebar : ‘); Readln (l); Write (‘Tebal : ‘); Readln (t); Areal := Area (p, l, t); Volume := vol (p, l, t); Writeln (‘Luas permukaan balok : ’ ,areal:10:2); Writeln (‘Isi balok : ’,volume:10:2); End.
D. PROGRAM DAN HASIL EKSEKUSI
1. Program yang Menggunakan Program Pembantu Prosedur
Program Isi_luas_balok_1; Uses wincrt; Var panjang, lebar, tebal, luas, isi : Real; Procedure Isi_luas (p, l, t : Real; Var a, v : Real); Begin v := p * l * t; a := 2 * (p * l + l * t + t * p); End; Begin {Program utama} Write ('Panjang : '); Readln (panjang); Write ('Lebar : '); Readln (lebar); Write ('Tebal : '); Readln (tebal); Isi_luas (panjang, lebar, tebal, luas, isi); Writeln ('Luas permukaan balok = ',luas:10:2); Writeln ('Isi balok = ',isi:10:2); End. {Program utama}
Hasil Eksekusi
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 83
2010
2. Pemakaian Program Pembantu Fungsi
Program Isi_Luas_balok_2; Uses Wincrt; Var panjang, lebar, tebal, luas, isi : Real; Function Vol (p, l, t : Real) : Real; Begin Vol := p * l * t; End; Function Area (p, l, t : Real) : Real; Begin Area := 2 * (p * l + l * t + t * p); End; Begin {program utama} Write ('Panjang : '); Readln (panjang); Write ('Lebar : '); Readln (lebar); Write ('Tebal : '); Readln (tebal); Luas := Area (panjang, lebar, tebal); Isi := Vol (panjang, lebar, tebal); Writeln ('Luas permukaan balok = ', Luas:10:2); Writeln ('Isi balok = ',Isi:10:2) End. {program utama}
Hasil Eksekusi
3. Program yang Mengandung Program Pembantu 1
Program isi_luas_balok_3; Uses Wincrt; Var p,l,t,luas,isi :real; Procedure isi_luas; Begin isi:=p*l*t; luas:=2*(p*l+l*t+t*p); End;
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 84
2010
Begin {Program utama} Write ('Panjang : ');readln (p); Write ('Lebar : ');readln (l); Write ('Tebal : ');readln (t); Isi_luas; Writeln ('Luas permukaan balok = ',luas:10:2); Writeln ('Isi balok = ',isi:10:2); End.{Program utama}
Hasil Eksekusi
4. Program yang Mengandung Program Pembantu 2
Program Isi_Luas_Balok_4; Uses Wincrt; Var p,l,t,luas,isi : Real; Function Vol : Real; Begin Vol := p*l*t; End; Function Area : Real; Begin Area := 2*(p*l+l*t+t*p); End; Begin {Program utama} Write ('Panjang : '); Readln (p); Write ('Lebar : '); Readln (l); Write ('Tebal : '); Readln (t); luas := Area; isi := Vol; Writeln ('Luas permukaan balok : ',luas:10:2); Writeln ('Isi balok : ',isi:10:2); End. {Program utama}
Hasil Eksekusi
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 85
2010
5. Program Pembantu Beda File 1
Program pembantu
Unit isiluas; Interface Uses Wincrt; Procedure Isi_luas (panjang,lebar,tebal : real; var a,v : real); Implementation Procedure isi_luas; Begin v := panjang*lebar*tebal; a := 2*(panjang * lebar + lebar * tebal + tebal * panjang); End; End.
Program utama
Program Isi_luas_balok_5; Uses isiluas; Var panjang, lebar, tebal, a, v : Real; Begin {Program utama} Write (‘Panjang : ‘); Readln (panjang); Write (‘Lebar : ‘); Readln (lebar); Write (‘Tebal : ‘); Readln (tebal); Isi_luas (panjang, lebar, tebal, a, v); Writeln (‘Luas permukaan balok: ’,a:10:2); Writeln (‘Isi balok : ’,v:10:2); End. {Program utama}
Hasil Eksekusi
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 86
2010
6. Program Pembantu Beda File 2
Program pembantu
Unit luasisi; Interface Uses Wincrt; Function vol (p, l, t : Real) : Real; Function area (p, l, t : Real) : Real; Implementation Function vol (p, l, t : Real) : Real; Begin Vol := P * l * t; End; Function area (p, l, t : Real) : Real; Begin Area : 2 * (p * l + l * t + t * p); End; End.
Program utama
Program Isi_luas_balok_6; Uses luasisi; Var P, l, t, areal, volume : Real; Begin {Program utama} Write (‘Panjang : ‘); Readln (p); Write (‘Lebar : ‘); Readln (l); Write (‘Tebal : ‘); Readln (t); Areal := Area (p, l, t); Volume := vol (p, l, t); Writeln (‘Luas permukaan balok : ’ ,areal:10:2); Writeln (‘Isi balok : ’,volume:10:2); End.
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 87
2010
Hasil Eksekusi
E. PEMBAHASAN
Pada percobaan sebelumnya program yang dipakai adalah program
sederhana, yaitu program yang pada bagian deklarasinya tidak terdapat
program pembantu. Bila suatu program mempunyai program pembantu maka
program tadi disebut program utama. Suatu program pembantu tidak dapat
dijalankan tanpa ada program utama. Seperti halnya dengan variabel yang
terdiri dari dua kelompok, program pembantu juga terdiri dari dua kelompok
yaitu, program pembantu standard; program pembantu yang disediakan oleh
Pascal Turbo, dan program pembatu buatan; program pembantu yang dibuat
oleh pemrogram.
Program Isi luas balok 51 dan Isi balok 52 di atas program utama dan
program pembantu menggunakan nama variabel yang berbeda untuk besaran
yang sama. Sesuai dengan aturan yang berlaku maka variabel-variabel p, l dan
t tidak dikenal oleh program utama dan juga program pembantu yang lain;
oleh karena itu disebut variabel lokal. Sebaliknya variabel-variabel panjang,
lebar dan tebal yang dipakai oleh program utama dikenal juga oleh program
pembantu; oleh karena itu disebut juga variabel global.
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 88
2010
Program yang mengandung program pembantu yang dibuat pada
percobaan ini (program isi luas balok 3 dan program isi luas balok 4) adalah
program pembantu versi biasa, karena pada bahasa pemrograman apapun
keadaan program pembantu adalah seperti itu. Yaitu terletak dalam satu file
dengan program utama, hanya tempatnya yang mungkin berbeda; ada yang
sesudah program utama, dan ada pula yang sesudah program utama.
Salah satu keunggulan Pascal Turbo dalam hal program pembantu
adalah bahwa program pembantu tidak selalu harus berada dalam satu file
dengan program utamanya, dalam percobaan ini adalah Program isi luas
balok 5 dan Program isi luas balok 6. Program pembantu tersebut disebut
program pembantu beda file.
Meskipun program pembantu beda file memberikan kemudahan yang
menggembirakan, namun kemudahan itu meminta pengorbanan. Apa
pengorbanan yang harus diberikan? Untuk menjawab pertanyaan ini lebih
dahulu kita tinjau bagaimana Pascal Turbo memperlakukan program yang
anda buat.
Program yang dibuat, yang terdiri dari karakter-karakter ASCII,
disebut “Source code“. Bila program ini dijalankan, maka mula-mula Pascal
Turbo akan memeriksa baris demi baris barangkali ada kesalahan sintaks (bila
anda menggunakan Pascal Turbo versi 3.0 maka proses ini dapat dilihat pada
layar monitor). Bila tidak ada kesalahan sintaks maka sebelum dapat
dijalankan lebih dahulu akan diubah menjadi bahasa mesin, atau istilahnya
di“compile“.
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 89
2010
Proses di atas berlaku untuk semua program yang tidak di “compile”,
meskipun program tersebut telah berkali-kali dipakai dan tidak ada kesalahan
sintaks di dalamnya.
Dari penjelasan di atas jelaslah bahwa program pembantu yang dibuat
juga akan mengalami pemeriksaan setiap kali dirangkaikan dengan suatu
program utama. Ini jelas merupakan kerugian akan waktu yang dapat
dikatakan sebanding dengan panjangnya program.
Untuk mengatasi kerugian ini, Pascal Turbo versi 5.0 menyediakan
fasilitan unit yang antara lain dapat diisi dengan program pembantu yang
sudah di“compile“. Dengan demikian bila Pascal Turbo berjumpa dengan
bagian program yang sudah di-compile maka tidak akan diperiksanya lagi.
untuk memanggil unit dipakai kata simpanan uses yang diikuti oleh
daftar nama atau nama-nama file tempat penyimpanan unit. Harap diingat
bahwa disket kerja berada di dalam pemutar disket yang aktif, dan file unit
berada pada disket kerja tersebut.
Sebuah unit tidak perlu hanya berisi sebuah program pembantu, tetapi
dapat juga berisi lebih dari satu.
F. KESIMPULAN
Kesimpulan yang dapat diambil dari percobaan ini adalah sebagai
berikut.
1. Program pembantu (sub program) adalah suatu program terpisah dalam
blok tersendiri program utama, dan dilaksanakan bila judul subprogram
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 90
2010
dipanggil pada program utama, dan tidak dapat dijalankan tanpa
subprogram utama.
2. Program pembantu dapat diletakkan satu tempat dengan program utama
disebut program pembantu satu file, sedangkan program pembantu yang
diletakkan tempatnya berbeda dengan program utama disebut program
pembantu beda file.
G. SARAN
Saran yang dapat saya kemukakan dari praktikum ini adalah agar
program-program pascal yang digunakan bisa lebih diperlengkap lagi, agar
semua program yang dipercobakan bisa dijalankan dengan baik.
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 91
2010
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 92
2010
PERCOBAAN VIII
ANIMASI DAN SIMULASI
A. TUJUAN
1. Memahami Proses Animasi dan Simulasi
2. Membuat Program Animasi dan Simulasi
B. TEORI
Ada dua gejala fisika yang dapat divisualisasikan, yaitu:
Yang berhubugan dengan dengangerak seperti gejala gelombang,
gerak electron dalam atom, dan sebagainya. Visualisasi ini disebut
animasi.
Yang tidak berhubugan denga gerak listrik, pola interferensi dan
difraksi, dan sebagainya.Visualisasi ini disebut simulasi.
Salah satu contoh animasi yang dapat dibahas adalah pelayangan
gelombang. Pelayangan gelombang terjadi bila dua gelombang yang
frekuensinya berbeda sedikit, menjalar bersama-sama disuatu tempat. Bila
peristiwa ini terjadi pada gelombang bunyi maka yang diamati adalah
bunyi yang terdengar keras dan lemah silih berganti. Karena keras dan
lemah bunyi ditentukan oleh amplitudo gelombang maka peristiwa ini
dilukiskan sebagai gelombang sinusoidal yang amplitudonya berubah
secara periodik dengan frekuensi lebih kecil.
(M. Jahiding, S.Si., M.Si,2009: )
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 93
2010
Simulasi adalah program (software) komputer yang berfungsi
untuk menirukan perilakusistem nyata (realitas) tertentu. Tujuan simulasi
antara lain untuk pelatihan (training),studi perilaku sistem (behaviour) dan
hiburan / permainan (game).Beberapa contoh simulasi komputer, antara
lain : simulasi terbang (ight simulation), simulasi sistem ekonomi makro,
simulasi sistem perbankan, simulasi antrian layanan bank (service queue),
simulasi game strategi pemasaran (market game), simulasi perang (war
game simulation), simulasi mobil (car simulation), simulasi tenaga listrik
(power plan simulation), simulasi tata kota (sim city). Simulasi waktu
nyata (real time) merupakan bagian dari ilmu informatika (teknologi
informasi) yang sedang berkembang sangat pesat saat ini.
(www.geocities.com/bsridadi/bsridadi page.html).
Ada tiga pilihan simulator sistem kontrol yang animatif dan
interaktif. Animatif maksudnya, simulator dapat menampilkan hasil
simulasi dengan grafik yang hidup. Sementara itu interaktif berarti
pemakai dapat memberi masukan selama simulator bekerja. Ketiga pilihan
tersebut adalah:
• Simulator berbasis Spreadsheet. Simulator ini mudah dibuat, serta
praktis digunakan karena perangkat lunak spreadsheet sudah luas`dikenal
khalayak umum. Tanpa pemrograman yang rumit, perangkat lunak ini
dapat digunakan untuk menghitung dan menampilkan grafik sistem orde 1
atau orde 2 dengan pengontrol PID. Simulator ini cocok digunakan untuk
mengajar di depan kelas dengan proyektor multimedia.
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 94
2010
• Simulator berbasis Flash. Keunggulan utama simulator ini adalah
kemampuannya dipakai sebagai bahan ajar melalui World Wide Web.
Disamping itu, Flash mampu menyuguhkan animasi interaktif yang sangat
atraktif tanpa pemrograman yang terlalu sulit. Mahasiswa maupun dosen
dapat menggunakan simulator ini untuk belajar mandiri melalui E-
Learning berbasis Web.
• Simulator Virtual Control. Dibanding dua sebelumnya, simulator ini
relatif sulit dibuat karena membutuhkan pemrograman yang serius.
Kelebihannya, simulator ini dapat dihubungkan ke perangkat nyata melalui
antarmuka AD/DA yang memadai. Dengan demikian, simulator ini dapat
dipakai untuk mengajar di depan kelas, maupun praktikum di
laboratorium.
(www.amutiara.staff.gunadarma.ac.id/Downloads/files/.../simulasi_kom
puter.pdf).
Untuk contoh dari animasi dan simulasi, dipilih pelayangan dan
interferensi celah. Bila ada N buah celah yang masing-masing lebarnya b,
didatangakan gelombang monokromatik dan koheren dengan panjang
gelombang λ, maka pola interferensi yang tertangkap pada layar adalah:
ܫ = ܫsinଶߣsinଶ ߣ
Dengan
ߣ =12 sinߠ =
ߨߣ sin ߠ
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 95
2010
.adalah sudut antara normal pada bidang celah dengan arah gelombang ߠ
(Tim Penyusun,2009:21)
C. LANGKAH-LANGKAH PERCOBAAN
1. Ketik pada editor turbo pascal dan jalankan program di bawah ini:
Program Pelayangan; Uses Wincrt, Gdriver, Gkernel; Var a, i, j, m, n : Integer; f1,f2,dt,xx,sx,sy,xmin,xmax,ymin,ymax,x,a1,a2, sxmin, sxmax,symin,symax,delatx,deltay : Real; y : Array [1..3] of Real; nama, namax, zz : String [15]; ans : Boolean; ch : char; Begin {-----Menentukan bidang gambar-----} Clrscr; Write ('Amplitudo gelombang-1 (antara 1 dan 10): '); Readln (a1); Write ('Frekuensi gelombang-1 (antara 5 dan 15): '); Readln (f1); Write ('Amplitudo gelombang-2 (antara 1 dan 10): '); Readln (a2); Write ('Frekuensi gelombang-2 (antara 5 dan 15): '); Readln (f2); symin := 0; sxmax := 720; symin := -(a1+a2); symax := (a1+a2); nama := 'gambar'; deltax := (sxmax - sxmin) / 5; deltay := (symax - symin) / 5; xmin := sxmin - deltax; xmax := sxmax+deltax; ymin := symin - deltay; ymax := symax+deltay; Clrscr; Initgraphic; Definewindow (1, 0, 0, xmaxglb, Trunc (0.95 * ymaxgib / xmaxglb)); Definewindow (2,0 Trunc (0.95 * ymaxglb / 3), xmaxglb, Trunc (1.9 * ymaxglb / 3));
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 96
2010
Definewindow (3, 0 Trunc (1.9 * ymaxglb / 3), xmaxglb, Trunc (0.95 * ymaxglb / 3)); Definewindow (1, xmin, ymax, xmax, ymin); For a := 0 To 9 Do Begin Defineheader (1,'GELOMBANG - 1'); Defineheader (2,'GELOMBANG - 2'); Defineheader (3,'SUPERPOSISI GELOMBANG – 1 DAN GELOMBANG - 2'); Setheaderon; For n := 1 To 3 Do Begin Selectworld (1); Selectwindow (n); Drawborder; {-----sumbu koordinat-----} sx := 0.3 * deltax; sy := 0.3 * deltay; Drawline(sxmin - sx, symin - sy, sxmax + sx, symin - sy); Drawline(sxmin - sx, 0, sxmax + sx, 0); Drawline(sxmin - sx, symin - sy, sxmin - sx, symax + sy); Drawtext(sxmax + 1.5 * sx, 0, 1, 'X'); Drawtext(sxmin - sx, symax + 2 * sx, 1,'Y'); {-----Skala pada sumbu X-----} xmin := sxmin; While xmin <= sxmax Do Begin str (xmin:5:3,zz); Drawtextw(xmin - 0.5 * sx, symin - 0.6 * deltay, 1, 'zz'); Drawline (xmin - symin - sy, xmin, symin – sy + 0.3 * sy); Setlinestyle (1); Drawline (xmin, symin, xmin, symax); Setlinestyle (0); Xmin := xmin + deltax; End; {-----Skala pada sumbu Y-----} ymin := symin; While ymin <= symax Do Begin str (ymin:5:1,zz); Drawtextw (sxmin - 0.85 * deltax, ymin + 0.2 * Dsy, 1, zz); Drawline (sxmin - sx, ymin, sxmin - sx + 0.1 * sy, ymin); Setlinestyle (1); Drawline (symin, ymin, sxmin, ymax); Setlinestyle (0); ymin := ymin + deltay;
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 97
2010
End; End; {-----Kurva-----} x := sxmin; dt := (sxmax - sxmin)/100; While x <= sxmax Do Begin {-----Bagian ini dapat berubah sesuai dengan bentuk fungsinya-----} y[1] := a1*sin ((f1 * x - 36 * a) / 57.3); y[2] := a2*sin ((f2 * x - 36 * a) / 57.3); y[3] := y[1] + y[2]; {------------------------------------------- ----------------------} If (y[3] <= symax) anda (y[3] >= symin) Then Begin For n := 1 To 3 Do Begin Selectworld (1); Selectwindow (n); Drawpoint (x, y[n]); End; End; x := x + dt; End; zz := 'Tekan <Esc>'; Definetextwindow (4,79-Lenght(zz),25,79,25, 0); Selectwindow (4); Goto xy (79, Lenght (zz), 25); Write (zz); Str (a,zz); Namax := 'b' := nama + zz + '.gbr'; Savescreen (namax); If a <> 9 then clearscreen; End; {-----Menampilkan Gambar-----} Ans := false; Repeat Begin For a := 0 To 9 Do Begin Str (a,zz); namax := nama + zz + '.gbr'; loadscreen ('b:' + namax); If Keypressed Then Begin ch := Readkey; if ch = #27 Then Begin Leavegraphic; End; End;
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 98
2010
End; Until ans = true; Leavegraphic;
End.
2. Ketik pada editor turbo pascal dan jalankan program di bawah ini:
Program Interferensi; Uses Crt, Gdriver, Gkernel; Var X1 : Real; I,j,n,m,jumlah : Integer; Gamma, lamda, jarak, dt, xx, sx, xmin, xmax, ymin, ymax, sxmin, sxmax, symin, symax, deltax, deltay : Real; zz : String [15]; Begin Clrscr; Write (‘jumlah celah :’); Readln (jumlah); Write (‘Panjang gelombang cahaya (angstrom) :’); Readln (lamda); Write (‘panjang celah (angstrom > 2 pg) :’); Readln (jarak); Sxmin := -PI; Sxmax := PI; Symin := 0; Symax := sqr (jumlah); Deltax := (sxmax – sxmin)/5; Deltay := (symax – symin)/5; Xmin := sxmin – deltax; Xmax := sxmax + deltax; Ymin := symin – deltay; Ymax := symax + deltay; Clrscr; Initgraphic; Definewindow (1,0,0,xmaxglb, ymaxglb); Defineworld (1,xmin,ymax,xmax,ymin); Selectworld (1); Setbagckgroundcolor(blue); Sx := 0.3 * deltax; Sy := 0.3 * deltay; Drawline (sxmin – sx, symin - sy, sxmax + sx, symax + sy); Drawline (sxmin – sx, symin - sy, sxmax - sx, symax – sy); If symin <= 0 then Begin Drawline (sxmin – sx, symax + sx,0);
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 99
2010
Drawtext (sxmax + 1,5*sx,0,1,’gamma’); End; Else Drawtext (sxmax + 1, 5*sx, symin – sy,1, ’gamma,); If sxmin <= 0 then Begin Drawline (symin – sy, sxmax + sx,0); Drawtext (0,symax + 2*sy,1,’intensitas’); End; Else Drawtext (sxmin – sx, symax + 2*sy, 1,’ intensitas’); Xmin := sxmin; For i := 1 to 6 Do Begin Str (min:5:3,zz); Drawtext (xmin – 0, 5*sx, symin – 0, 6* deltay,1,zz); Drawline (xmin, symin – sy,xmin,symin –sy+0, 3*sy); Setlinestyle (1); If i >= 5 then Drawline (xmin, symin, xmin, symax – deltay); Else Drawline (xmin, symin, xmin, symax); Setlinestyle (0); Xmin := xmin + deltax; End; Ymin := symin; For i := 1 To 6 Do Begin Str (ymin:5:3,zz); Drawtext (sxmin – 0, 85*deltax, ymin + 0, 2*sy, 1, zz); Drawline (sxmin – sy, ymin, sxmin – sx + 0, 1* sx, ymin); Setlinestyle (0); Ymin := ymin + deltay; End; Str (jumlah:10,zz); Drawtext (sxmin – 2 * deltax, symax, 0.1*deltay, 1, ’jumlah celah:’+zz); Str (lamda:10,zz); Drawtext (sxmax – 2*deltax, symax – 0.3*deltay, 1, ’panjang gel:’ + zz + ’A’); Str (jarak:10,zz); Drawtext (sxmax – 2*deltax, symax – 0.6*deltay, 1, ’jarak celah:’ + zz + ’A’); dt := (sxmax – sxmin)/50000; Repeat
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 100
2010
Begin Gamma := (PI/lamda)*jarak*sin(x); If sin (gamma) := 0 Then Y := sqr (jumlah * cos(jumlah*gamma) / cos(gamma))); If (y <= synax) and (y >= symin) Then Begin If gamma <= PI/2 Then Drawpoint(gamma,y); End; X := x + dt; End; Until gamma > PI Drawtext (sxmax, symin – 0, 8*deltay, 1,’tekan <esc>’); Repeat Until readkey = #27; Leavegraphic;
End.
D. PERCOBAAN DAN HASIL EKSEKUSI
18. Program Pelayangan
Program Pelayangan; Uses Wincrt, Gdriver, Gkernel; Var a, i, j, m, n : Integer; f1,f2,dt,xx,sx,sy,xmin,xmax,ymin,ymax,x,a1,a2, sxmin, sxmax,symin,symax,delatx,deltay : Real; y : Array [1..3] of Real; nama, namax, zz : String [15]; ans : Boolean; ch : char; Begin {-----Menentukan bidang gambar-----} Clrscr; Write ('Amplitudo gelombang-1 (antara 1 dan 10): '); Readln (a1); Write ('Frekuensi gelombang-1 (antara 5 dan 15): '); Readln (f1); Write ('Amplitudo gelombang-2 (antara 1 dan 10): '); Readln (a2); Write ('Frekuensi gelombang-2 (antara 5 dan 15): ');
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 101
2010
Readln (f2); symin := 0; sxmax := 720; symin := -(a1+a2); symax := (a1+a2); nama := 'gambar'; deltax := (sxmax - sxmin) / 5; deltay := (symax - symin) / 5; xmin := sxmin - deltax; xmax := sxmax+deltax; ymin := symin - deltay; ymax := symax+deltay; Clrscr; Initgraphic; Definewindow (1, 0, 0, xmaxglb, Trunc (0.95 * ymaxgib / xmaxglb)); Definewindow (2,0 Trunc (0.95 * ymaxglb / 3), xmaxglb, Trunc (1.9 * ymaxglb / 3)); Definewindow (3, 0 Trunc (1.9 * ymaxglb / 3), xmaxglb, Trunc (0.95 * ymaxglb / 3)); Definewindow (1, xmin, ymax, xmax, ymin); For a := 0 To 9 Do Begin Defineheader (1,'GELOMBANG - 1'); Defineheader (2,'GELOMBANG - 2'); Defineheader (3,'SUPERPOSISI GELOMBANG – 1 DAN GELOMBANG - 2'); Setheaderon; For n := 1 To 3 Do Begin Selectworld (1); Selectwindow (n); Drawborder; {-----sumbu koordinat-----} sx := 0.3 * deltax; sy := 0.3 * deltay; Drawline(sxmin - sx, symin - sy, sxmax + sx, symin - sy); Drawline(sxmin - sx, 0, sxmax + sx, 0); Drawline(sxmin - sx, symin - sy, sxmin - sx, symax + sy); Drawtext(sxmax + 1.5 * sx, 0, 1, 'X'); Drawtext(sxmin - sx, symax + 2 * sx, 1,'Y'); {-----Skala pada sumbu X-----} xmin := sxmin; While xmin <= sxmax Do Begin str (xmin:5:3,zz); Drawtextw(xmin - 0.5 * sx, symin - 0.6 * deltay, 1, 'zz'); Drawline (xmin - symin - sy, xmin, symin – sy + 0.3 * sy); Setlinestyle (1); Drawline (xmin, symin, xmin, symax); Setlinestyle (0); Xmin := xmin + deltax;
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 102
2010
End; {-----Skala pada sumbu Y-----} ymin := symin; While ymin <= symax Do Begin str (ymin:5:1,zz); Drawtextw (sxmin - 0.85 * deltax, ymin + 0.2 * Dsy, 1, zz); Drawline (sxmin - sx, ymin, sxmin - sx + 0.1 * sy, ymin); Setlinestyle (1); Drawline (symin, ymin, sxmin, ymax); Setlinestyle (0); ymin := ymin + deltay; End; End; {-----Kurva-----} x := sxmin; dt := (sxmax - sxmin)/100; While x <= sxmax Do Begin {-----Bagian ini dapat berubah sesuai dengan bentuk fungsinya-----} y[1] := a1*sin ((f1 * x - 36 * a) / 57.3); y[2] := a2*sin ((f2 * x - 36 * a) / 57.3); y[3] := y[1] + y[2]; {------------------------------------------- ----------------------} If (y[3] <= symax) anda (y[3] >= symin) Then Begin For n := 1 To 3 Do Begin Selectworld (1); Selectwindow (n); Drawpoint (x, y[n]); End; End; x := x + dt; End; zz := 'Tekan <Esc>'; Definetextwindow (4,79-Lenght(zz),25,79,25, 0); Selectwindow (4); Goto xy (79, Lenght (zz), 25); Write (zz); Str (a,zz); Namax := 'b' := nama + zz + '.gbr'; Savescreen (namax); If a <> 9 then clearscreen; End; {-----Menampilkan Gambar-----} Ans := false; Repeat
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 103
2010
Begin For a := 0 To 9 Do Begin Str (a,zz); namax := nama + zz + '.gbr'; loadscreen ('b:' + namax); If Keypressed Then Begin ch := Readkey; if ch = #27 Then Begin Leavegraphic; End; End; End; Until ans = true; Leavegraphic; End.
Hasil Eksekusi
Untuk hasil eksekusi pada percobaan ini tidak dapat dilakukan sebab pada
tipe pascal yang digunakan tidak tersedia unit yang dibutuhkan untuk
mengeksekusi program untuk membuat program pelayangan.
19. Program Interferensi
Program Interferensi; Uses Crt, Gdriver, Gkernel; Var X1 : Real; I,j,n,m,jumlah : Integer; Gamma, lamda, jarak, dt, xx, sx, xmin, xmax, ymin, ymax, sxmin, sxmax, symin, symax, deltax, deltay : Real; zz : String [15]; Begin Clrscr; Write (‘jumlah celah :’); Readln (jumlah); Write (‘Panjang gelombang cahaya (angstrom) :’); Readln (lamda); Write (‘panjang celah (angstrom > 2 pg) :’); Readln (jarak);
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 104
2010
Sxmin := -PI; Sxmax := PI; Symin := 0; Symax := sqr (jumlah); Deltax := (sxmax – sxmin)/5; Deltay := (symax – symin)/5; Xmin := sxmin – deltax; Xmax := sxmax + deltax; Ymin := symin – deltay; Ymax := symax + deltay; Clrscr; Initgraphic; Definewindow (1,0,0,xmaxglb, ymaxglb); Defineworld (1,xmin,ymax,xmax,ymin); Selectworld (1); Setbagckgroundcolor(blue); Sx := 0.3 * deltax; Sy := 0.3 * deltay; Drawline (sxmin – sx, symin - sy, sxmax + sx, symax + sy); Drawline (sxmin – sx, symin - sy, sxmax - sx, symax – sy); If symin <= 0 then Begin Drawline (sxmin – sx, symax + sx,0); Drawtext (sxmax + 1,5*sx,0,1,’gamma’); End; Else Drawtext (sxmax + 1, 5*sx, symin – sy,1, ’gamma,); If sxmin <= 0 then Begin Drawline (symin – sy, sxmax + sx,0); Drawtext (0,symax + 2*sy,1,’intensitas’); End; Else Drawtext (sxmin – sx, symax + 2*sy, 1,’ intensitas’); Xmin := sxmin; For i := 1 to 6 Do Begin Str (min:5:3,zz); Drawtext (xmin – 0, 5*sx, symin – 0, 6* deltay,1,zz); Drawline (xmin, symin – sy,xmin,symin –sy+0, 3*sy); Setlinestyle (1); If i >= 5 then Drawline (xmin, symin, xmin, symax – deltay); Else Drawline (xmin, symin, xmin, symax);
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 105
2010
Setlinestyle (0); Xmin := xmin + deltax; End; Ymin := symin; For i := 1 To 6 Do Begin Str (ymin:5:3,zz); Drawtext (sxmin – 0, 85*deltax, ymin + 0, 2*sy, 1, zz); Drawline (sxmin – sy, ymin, sxmin – sx + 0, 1* sx, ymin); Setlinestyle (0); Ymin := ymin + deltay; End; Str (jumlah:10,zz); Drawtext (sxmin – 2 * deltax, symax, 0.1*deltay, 1, ’jumlah celah:’+zz); Str (lamda:10,zz); Drawtext (sxmax – 2*deltax, symax – 0.3*deltay, 1, ’panjang gel:’ + zz + ’A’); Str (jarak:10,zz); Drawtext (sxmax – 2*deltax, symax – 0.6*deltay, 1, ’jarak celah:’ + zz + ’A’); dt := (sxmax – sxmin)/50000; Repeat Begin Gamma := (PI/lamda)*jarak*sin(x); If sin (gamma) := 0 Then Y := sqr (jumlah * cos(jumlah*gamma) / cos(gamma))); If (y <= synax) and (y >= symin) Then Begin If gamma <= PI/2 Then Drawpoint(gamma,y); End; X := x + dt; End; Until gamma > PI Drawtext (sxmax, symin – 0, 8*deltay, 1,’tekan <esc>’); Repeat Until readkey = #27; Leavegraphic; End.
Hasil Eksekusi
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 106
2010
Hasil eksekusi pada percobaan ini tidak dapat dilaksanakan sebab pada tipe
pascal yang digunakan tidak tersedia unit yang dibutuhkan untuk
mengeksekusi program untuk membuat simulasi suatu interferensi.
E. PEMBAHASAN
Fisika banyak mengandung konsep yang abstrak, sehingga sukar untuk
membayangkannya, akibatnya banyak yang langsung bekerja dengan rumus-
rumus fisika tanpa berusaha mempelajari latar belakang yang mendasarinya.
Konsep yang abstrak bisa dibuat nyata dengan memvisualisasikan di
komputer.
Pada dasarnya visualisasi komputer adalah bagaimana menempatkan
titik-titik pada layar monitor dengan dikendalikan oleh konsep-konsep fisika.
Misalnya, membuat visualisasi gerak satelit. Visualisasi ini tidak cukup hanya
menggambarkan sebuah ellips lalu menyatakan bahwa ellips itu adalah
lintasan satelit. Tetapi harus mulai dari konsep fisika seperti hukum gravitasi
Newton dan hukum II Newton. Bertolak dari konsep fisika ini dapat
dijabarkan persamaan lintasan satelit yang selanjutnya divisualisasikan.
Apabila besaran fisis yang terkait ini berubah, maka visualisasi yang
bersangklutan harus dapat menunjukkan akibat perubahan tersebut. Contoh
bila kecepatan satelit berubah, ellipsnya juga berubah baik eksentrisitasnya
maupun kemiringannya.
Ada dua gejala fisika yang dapat divisualisasikan, yaitu yang
berhubungan dengan gerak seperti gejala gelombang, gerak elektron dalam
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 107
2010
atom, dan sebagainya, visualisasi ini disebut animasi. Visualisasi yang kedua
adalah yang tidak berhubungan dengan gerak seperti gaya gerak listrik, pola
interferensi dan difraksi, dan sebagainya. Visualisasi ini disebut simulasi.
Salah satu contoh program animasi ditampilkan pada percobaan ini
adalah pelayangan gelombang. Pelayangan gelombang terjadi bila dua
gelombang yang frekuensinya berbeda sedikit, menjalar bersama-sama di
suatu tempat. Bila peristiwa ini terjadi pada gelombang bunyi maka yang
diamati adalah bunyi yang terdengar keras dan lemah silih berganti. Karena
keras dan lemahnya bunyi ditentukan oleh amplitudo gelombang maka
peristiwa ini dilukiskan sebagai gelombang sinusoidal yang amplitudonya
berubah secara periodik dengan frekuensi lebih kecil. Akan tetapi program
visualisasi di atas tidak dapat dijalankan berhubung unit program visualisasi
tidak terdapat pada komputer yang ada dilaboratorium.
F. KESIMPULAN
Berdasarkan hasil percobaan, maka dapat disimpulkan beberapa hal
sebagai berikut.
1. Kejadian-kejadian dalam fisika yang tidak dijelaskan hanya dengan
persamaan dapat lebih diperjelas dengan menggunakan program simulasi.
2. Program simulasi dalam pascal menggunakan unit Crt, Gdriver, Gkernel.
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 108
2010
G. SARAN
Saran saya pada percobaan ini adalah sebaiknya jumlah asisten
ditambah, agar pada saat praktikum berlangsung asisten tidak terlalu repot
dalam membimbing praktikan, selain itu program-program yang ada di buku
penuntun bisa ditambah dan dikembangkan lagi.
Laporan Lengkap Fisika Komputasi 1
Nalin_physic’s 08 Page 109
2010
DAFTAR PUSTAKA
Jahiding, M. et. al. 2009. Penuntun Praktikum Fisika Komputasi 1. Kendari:
Jurusan Fisika FMIPA Universitas Haluoleo.
http://materi-praktek.blogspot.com/2007/03/bab-3-bentuk-perulangan-
penyeleksian.html, diakses 28 Desember 2009.
http://materi-praktek.blogspot.com/2007/03/bab-4-array-pascal.html, diakses 28
Desember 2009.
http://materi-praktek.blogspot.com/2007/03/bag-iv-prosedur-perulangan-dan-
megenal.html, diakses 28 Desember 2009.
http://materi-praktek.blogspot.com/2007/03/bag-v-fungsi.html, diakses 28
Desember 2009.
http://materi-praktek.blogspot.com/2007/03/bag-vi-array.html, diakses 28
Desember 2009.
http://materi-praktek.blogspot.com/2007/03/fungsi-fungsi-string-pada-
pascal.html, diakses 28 Desember 2009.
Yulianto, Kristian T., et.al. 2006. Modul Praktikum Pemrograman Pascal
Didasarkan pada Turbo Pascal 7.0. Malang: Sekolah Tinggi Informatika
dan Komputer Indonesia.
Zaks, Rodnay. 1988. Pengantar Pascal Termasuk Turbo Pascal. Jakarta:
Erlangga.