LEMBAR KERJA PRAKTIKUM PEMROGRAMAN KOMPUTER II Praktikum 1 Dosen : Narwen, M.Si. Tujuan Praktikum: 1. Dapat merubah program yang dibuat dengan bahasa pemrogramam Pascal tanpa subrogram / subrutin (prosedur atau dan fungsi) menjadi menjadi bahasa pemrogramam Pascal dengan subrogram / subrutin. 2. Dapat mendefinisikan dan menggunakan prosedur tanpa parameter dan prosedur dengan parameter.
Soal Praktikum 1. Buat program untuk menghitung luas dan keliling lingkaran dimana jari-jari (r) di input dari keyboard. Program tersebut dibagi ke dalam beberapa prosedur tanpa parameter, yaitu prosedur Masukan, Proses dan prosedur Keluaran. (---------- Nama File : PRAK211.PAS ------------)
2. Seperti soal No.1, tetapi program tersebut pada prosedur Proses dibuat dalam bentuk prosedur dengan paramater, dimana parameternya adalah r. (---------- Nama File : PRAK212.PAS ------------)
3. Buat program biasa tanpa prosedur dengan menggunakan bahasa pemrograman Pascal untuk mengkonversi suhu dari derajat Celsius ke Reamur, Fahrenheit dan Kelvin dengan ketentuan sebagai berikut : • • • •
• •
Berikan keterangan mengenai data-data pemrogram di awal program. Setiap kali program dijalankan, maka hasil output yang dihasilkan sebelumnya dihapus. Data yang di input dari keyboard adalah suhu dalam derajat Celsius dan tampilkan juga informasi mengenai input tersebut. Rumus konversi adalah : Reamur = 4/5 x Celsius Fahrenheit = 9/5 x Celsius + 32 Kelvin = Celsius + 273 Format untuk bilangan real adalah 10 digit, 4 digit dibelakang koma dan untuk bilangan integer 8 digit. Hapus semua informasi mengenai input sehingga bentuk tampilan output yang muncul di layar adalah :
1
<<<<< Konversi Suhu >>>>> ------------------------Suhu dengan temperatur ……… derajat Celsius setara dengan suhu dengan temperatur : - …………… derajat Reamur. - …………… derajat Fahrenheit. - …………… derajat Kelvin. (---------- Nama File : PRAK213.PAS ------------)
4. Seperti No.3, tetapi program tersebut dibagi ke dalam beberapa prosedur tanpa parameter, yaitu prosedur Masukan, Proses dan prosedur Keluaran. (---------- Nama File : PRAK214.PAS ------------)
5. Seperti No.4, tetapi program tersebut dibagi ke dalam beberapa prosedur dengan parameter dan tanpa parameter. (---------- Nama File : PRAK215.PAS ------------)
2
LEMBAR KERJA PRAKTIKUM PEMROGRAMAN KOMPUTER II Praktikum 2 Dosen : Narwen, M.Si. Tujuan Praktikum: 1. Dapat mendefinisikan dan menggunakan prosedur tanpa parameter dan prosedur dengan parameter. 2. Dapat mendefinisikan dan menggunakan fungsi dalam pemrograman Pascal. 3. Dapat membedakan penggunaan fungsi dan prosedur dalam pemrograman Pascal.
Soal Praktikum 1. Buat program untuk menghitung n buah barisan Fibonancci, dimana a1 = 1, a2 = 1 dan an = an-1 + an-2, n ≠ 1, 2. Masukan pada program ini adalah n. Misalkan jika n = 6, maka barisan yang terjadi adalah 1 1 2 3 5 8. Program tersebut dibuat ke dalam beberapa prosedur dengan parameter, yaitu prosedur Masukan, Fibo dan prosedur Keluaran. (---------- Nama File : PRAK221.PAS ------------)
2. Seperti soal No.1, tetapi program tersebut pada prosedur Fibo dibuat dalam bentuk fungsi, yang mana fungsi tersebut bernilai integer.. (---------- Nama File : PRAK222.PAS ------------)
3. Menghitung nilai suatu fungsi. Misalkan diketahui suatu fungsi tiga variabel berikut : 5x 2 + y 3 dan g ( x, y, z ) = x 2 + y − 2 z . 10 z yang mana x, y dan z mempunyai tipe integer. Perhatikan bahwa dalam mendefinisikan dan menghitung nilai dari fungsi tersebut, batasi nilai inputnya sehingga fungsi tersebut terdefinisi. Buat program untuk menghitung penjumlahan dan perkalian dari kedua fungsi di atas. Kedua fungsi tersebut dideklarasikan sebagai fungsi. f ( x, y , z ) =
(---------- Nama File : PRAK223.PAS ------------)
4. Buat program dengan menggunakan subprogram untuk menghitung nilai Tangen (x), dimana x adalah bilangan real dalam besaran radian. Bila x di input dalam besaran derajat, konversi nilai tersebut kedalam radian, sehingga hasil yang muncul pada layar adalah sebagai berikut :
3
<<<<< Nilai Tangen >>>>> ------------------------Sudut ……… derajat setara dengan Dengan nilai - Cosinus(……………) derajat = - Sinus (……………) derajat = - Tangen (……………) derajat = (---------- Nama File : PRAK224.PAS ------------)
4
……… radian …………… …………… ……………
LEMBAR KERJA PRAKTIKUM PEMROGRAMAN KOMPUTER II Praktikum 3 Dosen : Narwen, M.Si. Tujuan Praktikum: 1. Dapat mendefinisikan dan menggunakan data dengan tipe record pada Pascal. 2. Dapat membedakan antara data bertipe record dengan data bertipe array. 3. Dapat menggunakan with untuk data bertipe record.
Soal Praktikum 1. Misalkan akan dibuat sebuah program untuk menghitung nilai akhir seorang mahasiswa. Dalam hal ini, • Data Mahasiswa terdiri dari field-field: NoBp, Nama, UTS, UAS, Tugas, NA, dan Indeks. Data Mahasiswa tersebut dideklarasikan sebagai record. • Input dari program tersebut adalah NoBp, Nama, UTS, UAS, dan Tugas. • NA = 0.45*UTS + 0.35*UAS + 0.2*Tugas • Indeks dihitung sebagai berikut: Jika NA ≥ 81 maka Indeks = ‘A’ Jika 66 ≤ NA < 81 maka Indeks = ‘B’ Jika 56 ≤ NA < 66 maka Indeks = ‘C’ Jika 41 ≤ NA < 56 maka Indeks = ‘D’ Jika NA < 41 maka Indeks = ‘E’ • Setiap selesai memproses data seorang mahasiswa, munculkan sebuah pertanyaan Apakah akan menginput data mahasiswa lain [Y/T]. Jika dijawab dengan Y atau y, maka input data mahasiswa yang baru, sedangkan data mahasiswa yang lama dihapus dari layar.. Sebaliknya jika T atau t, maka selesai. Dalam hal ini, gunakan fungsi UPCASE. (---------- Nama File : PRAK231.PAS ------------)
2. Seperti soal No.1, tetapi program tersebut menggunakan WITH dalam menggunakan data yang bertipe Record (---------- Nama File : PRAK232.PAS ------------) 3. Misalkan akan dibuat sebuah program untuk menghitung nilai akhir dari beberapa orang mahasiswa. Dalam hal ini, Data Mahasiswa mempunyai field-field, rumus penghitungan NA dan Indeks seperti soal no.1, tetapi data ini merupakan array bertipe record. Ketentuan lainnya adalah : • Input terlebih dahulu banyaknya mahasiswa, misalkan n. • Untuk masing-masing mahasiswa, input NoBp, Nama, UTS, UAS, dan Tugas. • Hitung juga berapa orang mahasiswa yang mendapatkan nilai A, B, C, D, dan E. 5
•
Setelah memasukkan data-data dari setiap mahasiswa, yaitu sebanyak n orang mahasiswa dan proses perhitungan lainnya, maka hasil output yang diinginkan adalah dalam bentuk tabel seperti berikut ini. <<<<< Daftar Nilai Mahasiswa >>>>> --------------------------------------------------------------------------------------No NoBP Nama UTS UAS Tugas NA Indeks -----------------------------------------------------1. …………… ……………………… ……… ……… ……… ……… ……… 2. …………… ……………………… ……… ……… ……… ……… ……… … n. …………… ……………………… ……… ……… ……… ……… ……… -----------------------------------------------------Nilai A = …………… Orang Nilai B = …………… Orang Nilai C = …………… Orang Nilai D = …………… Orang Nilai E = …………… Orang
(---------- Nama File : PRAK233.PAS ------------) 4. Seperti soal No.3, tetapi program tersebut menggunakan WITH dalam menggunakan data Array yang bertipe Record (---------- Nama File : PRAK234.PAS ------------)
6
LEMBAR KERJA PRAKTIKUM PEMROGRAMAN KOMPUTER II Praktikum 4 Dosen : Narwen, M.Si. Tujuan Praktikum: 1. Dapat mendefinisikan sebuah variabel file yang dapat digunakan untuk membuat file teks pada pemrograman Pascal. 2. Dapat membuat file teks serta field-field (variabel-variabel) yang dilibatkan sebagai file eksternal baru yang belum ada sebelumnya. 3. Dapat membaca file teks yang sudah ada serta field-fieldnya dan menampilkan isinya ke layar monitor. 4. Dapat menggunakan compiler directive untuk menghindari terhapusnya isi file eksternal yang sudah pernah dibuat.
Soal Praktikum 1. Misalkan data mahasiswa yang dibuat pada praktikum 3, setiap kali program dijalankan data yang telah dimasukkan akan hilang karena tidak disimpan ke dalam file. Untuk mengatasi masalah tersebut, yaitu data yang telah dimasukan tidak hilang, maka data akan disimpan ke dalam file di drive A:\ dengan nama MHS.DAT. Karena file tersebut belum ada sebelumnya, maka buat dengan menggunakan REWRITE. Data yang disimpan hanya field-field yang diinput dari keyboard, sedangkan field yang diperoleh dari hasil proses perhitungan tidak disimpan, dengan tujuan agar media penyimpanan tidak cepat penuh. Gunakan pengulangan untuk memasukkan data mahasiswa yang lebih dari satu orang. Jadi untuk data mahasiswa tersebut yang disimpan adalah field-field : NoBp, Nama, UTS, UAS dan Tugas. Sedangkan fieldfiled NA dan Indeks tidak disimpan. Gunakan format penulisan untuk masingmasing field sesuai dengan panjang yang diinginkan. Setelah data diinput, coba lihat hasilnya dengan membuka file MHS.DAT menggunakan editor pascal seperti membuka program pascal, tetapi tidak bisa dijalankan. Perhatikan bahwa Rewrite hanya untuk membuat file teks baru. Jika file teks yang dibuka dengan rewrite sudah ada, maka isinya akan terhapus karena dianggap file teks baru. (---------- Nama File : PRAK241.PAS ------------)
2. File teks yang dibuat pada No.1 akan dibaca dan hasilkan akan ditampilkan ke layar monitor. Baca field-field NoBp, Nama, UTS, UAS dan Tugas dari file MHS.DAT di A:\ dan panjangnya format masing-masing field harus sesuai dengan panjang format waktu menyimpan. Kalau berbeda, maka hasil yang diperoleh akan salah karena akan mengambil sebagian dari isi field lain. Sedangkan field NA dan Indeks sebelum ditampilkan dilakukan proses berikut: • NA = 0.45*UTS + 0.35*UAS + 0.2*Tugas
7
•
Indeks dihitung sebagai berikut: Jika NA ≥ 81 maka Indeks = ‘A’ Jika 66 ≤ NA < 81 maka Indeks = ‘B’ Jika 56 ≤ NA < 66 maka Indeks = ‘C’ Jika 41 ≤ NA < 56 maka Indeks = ‘D’ Jika NA < 41 maka Indeks = ‘E’ Pembacaan data pada file teks dilanjutkan sampai akhir dari file (EOF) ditemukan. Dalam hal ini file teks dibuka dengan RESET. Bentuk tampilan dilayar adalah : <<<<< Daftar Nilai Mahasiswa >>>>> --------------------------------------------------------------------------------------No NoBP Nama UTS UAS Tugas NA Indeks -----------------------------------------------------1 …………… ……………………… ……… ……… ……… ……… ……… 2 …………… ……………………… ……… ……… ……… ……… ……… … n …………… ……………………… ……… ……… ……… ……… ……… -----------------------------------------------------Nilai A = …………… Orang Nilai B = …………… Orang Nilai C = …………… Orang Nilai D = …………… Orang Nilai E = …………… Orang (---------- Nama File : PRAK242.PAS ------------)
3. Seperti No.1, akan tetapi akan dimunculkan sebuah pesan kalau data yang akan dibuat sudah ada. Karena itu modifikasi program yang telah dibuat pada No.1 dengan menggunakan compiler directive {$I+} dan {$I-}. Tampilkan pesan : “ Apakah file ini akan dihapus ? [Y/T]”. Jika dijawab dengan ‘Y’ maka file teks yang sudah ada isinya akan terhapus sebaliknya jika dijawab dengan ‘T’, maka proses tidak dilanjutkan dan keluar dengan menggunakan HALT. Gunakan IORESULT untuk mengecek kesalahan. Dalam hal ini, kombinasikan untuk membuka file antara RESET dengan REWRITE.
(---------- Nama File : PRAK243.PAS ------------)
Catatan : Fungsi dan prosedur yang digunakan adalah ASSIGN, REWRITE, RESET, CLOSE, UPCASE, IORESULT, HALT.
8
LEMBAR KERJA PRAKTIKUM PEMROGRAMAN KOMPUTER II Praktikum 5 Dosen : Narwen, M.Si. Tujuan Praktikum: 1. Dapat mencari field-field tertentu yang telah disimpan pada file teks pada media penyimpanan seperti hardisk atau disket. 2. Dapat menambahkan data baru ke dalam file teks yang telah disimpan pada media penyimpanan seperti hardisk atau disket. 3. Dapat mengedit data pada file teks untuk mengkoreksi kesalahan pada file teks tersebut.
Soal Praktikum 1. Misalkan file teks yang telah disimpan pada Praktikum 4 yaitu file teks MHS.DAT. Buat program untuk mencari data pada file tersebut berdasarkan NOBP. (---------- Nama File : PRAK251.PAS ------------)
2. Modifikasi program pada soal No.1, bila data yang dicari berdasarkan NOBP tersebut ingin diedit. Simpan kembali hasil perubahan yang telah diedit ke dalam file teks MHS.DAT. Selanjutnya tampilkan semua data, baik yang telah dirubah tersebut atau yang tidak dirubah ke layar monitor seperti soal no. 2 pada Praktikum 4. (---------- Nama File : PRAK252.PAS ------------)
3. Modifikasi program pada soal No.2, selain data tersebut dicari berdasarkan NOBP tersebut, juga dapat menambahkan data baru. Buat sebuah menu pilihan dengan pilihannya adalah 1. untuk mengedit data dan 2. untuk menambah data baru.. Simpan kembali hasil perubahan yang telah diedit dan telah ditambahkan data baru ke dalam file teks MHS.DAT. Selanjutnya tampilkan semua data, baik yang telah dirubah, ditambah maupun yang tidak dirubah ke layar monitor seperti soal no. 2 pada Praktikum 4. (---------- Nama File : PRAK253.PAS ------------)
9
LEMBAR KERJA PRAKTIKUM PEMROGRAMAN KOMPUTER II Praktikum 6 Dosen : Narwen, M.Si. Tujuan Praktikum: 1. Dapat mendefinisikan dan membuat sebuah unit pada Turbo Pascal. 2. Dapat menjalankan unit dan meletakkan unit yang telah dibuat di dalam komputer. 3. Dapat menggunakan unit tersebut untuk membantu program-program lainnya.
Soal Praktikum 1. Buat sebuah unit dengan nama Proses. Unit tersebut berisi fungsi dan prosedur yang ada pada Praktikum 1 dan Praktikum 2. Jalankan program tersebut dan amati apa file yang terjadi. (---------- Nama File : PROSES.PAS ------------) Pastikan unit PROSES yang dihasilkan ada di dalam folder program Pascal. 2. Gunakan unit yang telah dibuat pada soal No.1, untuk menyelesaikan masalah pada Praktikum 1 dan Praktikum 2. (---------- Nama File : PRAK261.PAS ------------)
10
LEMBAR KERJA PRAKTIKUM PEMROGRAMAN KOMPUTER II Praktikum 7 Dosen : Narwen, M.Si. Tujuan Praktikum: 1. Dapat membuat bentuk tampilan dilayar yang lebih menarik. 2. Dapat membuat animasi sederhana pada layar monitor dalam bentuk tipe text. 3. Dapat membuat tulisan dalam kotak dan bayangan dari kotak tersebut.
Soal Praktikum 1. Jalankan program berikut dan pelajari apa maksud dari masing-masing perintah dari program tersebut dan amati hasilnya pada layar monitor. Program Praktikum; uses crt; const tulisan = 'Jurusan Matematika'; var i, j, p_tulisan, kiri, kanan, atas, bawah : integer; selesai : boolean; begin textbackground(blue) ; clrscr; kiri := 8; atas := 3; kanan := 80-kiri+1; bawah := 25-atas+1; window(kiri, atas, kanan, bawah); textbackground(cyan); clrscr; p_tulisan := Length(tulisan); i := 1; j := 1; selesai := false; repeat if i < (kanan - kiri - p_tulisan + 3) then begin gotoxy(i,11);textcolor(black);write(tulisan); delay(100); gotoxy(i,11);textcolor(cyan);write(tulisan) ; delay(1); inc(i); end else begin gotoxy(kanan - kiri - p_tulisan + 2 -j, 11); textcolor(black);write(tulisan); delay(100); gotoxy(kanan - kiri - p_tulisan + 2 -j,11); textcolor(cyan); write(tulisan); delay(5); inc(j); if ((kanan - kiri - p_tulisan + 2-j) = 0) then begin selesai := true; gotoxy(kanan - kiri - p_tulisan + 3 -j, 11); textcolor(black);write(tulisan); delay(100); end; end until selesai; repeat until keypressed; end.
(---------- Nama File : PRAK271.PAS ------------)
11
2. Rubah program pada No.1, sehingga hasil yang diperoleh sama dengan di atas, tetapi perbedaannya adalah sebagai berikut : • Tulisan yang muncul adalah Nama dan NOBP anda • tulisan muncul pertama kali ditengah-tengah layar • bergerak ke kiri sampai huruf pertama dari tulisan menyentuh bingkai kiri • bergerak ke kanan sampai huruf terakhir dari tulisan menyentuh bingkai kanan • bergerak lagi ke kiri dan seterusnya sampai sembarang tombol di tekan. (---------- Nama File : PRAK272.PAS ------------) 3. Jalankan program berikut dan pelajari apa maksud dari masing-masing perintah dari program tersebut dan amati hasilnya pada layar monitor. Program Prak273_pas; uses crt; var i, j, p_tulisan, kiri, kanan, atas, bawah : integer; begin textcolor(cyan); textbackground(black); clrscr; for i:=1 to 26 do for j:=1 to 80 do write(chr(176)); kiri := 8; atas := 3; kanan := 80-kiri; bawah := 25-atas-1; textcolor(black); for i:=1 to (kanan-kiri) do begin gotoxy(kiri+2+i,bawah+1);write(chr(176)); end; for i:=1 to (bawah-atas) do for j:= 1 to 2 do begin gotoxy(kanan+j,atas+i);write(chr(176)); end; window(kiri,atas, kanan, bawah); textbackground(blue); clrscr; textcolor(white); gotoxy(2,1);write(chr(218)); gotoxy(kanan-kiri,1);write(chr(191)); for i:=3 to kanan-kiri-1 do begin gotoxy(i ,1);write(chr(196)); gotoxy(i ,bawah-atas+1);write(chr(196)); end; for j:=2 to bawah-atas do begin gotoxy(2,j); write(chr(179)); gotoxy(kanan-kiri ,j);write(chr(179)); end; gotoxy(2,j+1);write(chr(192)); gotoxy(kanan-kiri,j+1);write(chr(217)); window(kiri+2,atas+1, kanan-2,bawah-1); textcolor(yellow); gotoxy(17,2);writeln('Isikan Data Anda di bawah ini'); gotoxy(16,3); for i:=1 to 31 do write(chr(196)); repeat until keypressed; end.
(---------- Nama File : PRAK273.PAS ------------)
12
4. Lengkapi program pada No.3, sehingga hasil yang diperoleh berisi data pribadi anda, yaitu : • 1. Nama : ………………. • 2. NoBP : ………………. • 3. Tempat / Tanggal Lahir : ………………. • 4. Alamat : ………………. ………………. • 5. Motto Hidup : ………………. Atur letak data anda sedemikian rupa sehingga kelihatannya bagus pada layar yang telah disediakan. (---------- Nama File : PRAK274.PAS ------------)
13
LEMBAR KERJA PRAKTIKUM PEMROGRAMAN KOMPUTER II Praktikum 8 Dosen : Narwen, M.Si. Tujuan Praktikum: 1. Bekerja dalam mode grafik dan dapat berpindah dari mode text ke mode grafik. 2. Dapat membuat transformasi dari bentuk koordinat di monitor ke bentuk koordinat pada gambar. 3. Dapat menggambarkan sebuah grafik fungsi sederhana dengan menggunakan transformasi koordinat.
Soal Praktikum 1. Jalankan program berikut dan pelajari apa maksud dari masing-masing perintah dari program tersebut dan amati hasilnya pada layar monitor. Program Prakt281; Uses crt, graph; const delx = 0.001; var x, y, xl, yl, xmin, ymin, xmax, ymax, xk, yk : real; Procedure Membuka_Grafik; Var gd, gm ,error : integer; begin gd := detect; InitGraph(gd,gm,''); error := Graphresult; if error <> GrOk then Halt; end; Procedure Menutup_Grafik; begin repeat until Readkey = #27; closegraph; end; Procedure Bidang_Gambar(Var xmin, ymin, xmax, ymax :real); begin xmin := -2*Pi; ymin := -2; xmax := 2*Pi; ymax := 2; end; Procedure Transformasi(xmin,ymin,xmax,ymax,xgambar,ygambar : real; var xlayar, ylayar :real); begin xlayar := Getmaxx/(xmax-xmin)*(-xmin+xgambar); ylayar := Getmaxy/(ymax-ymin)*(ymax-ygambar); end; begin { ----- Program Utama ------- } clrscr; Bidang_Gambar(xmin,ymin,xmax,ymax); Membuka_Grafik; Rectangle(0,0,Getmaxx,Getmaxy); x := xmin; repeat y := sin(x); Transformasi(xmin, ymin, xmax, ymax, x, y, xl, yl); putpixel(trunc(xl), trunc(yl), red); x := x + delx; until (x >= xmax) or (y >= ymax); Menutup_Grafik; end.
(---------- Nama File : PRAK281.PAS ------------)
14
2. Lengkapi program pada No.1, sehingga hasil yang diperoleh adalah sebagai berikut : • Bidang gambar yang berisi nilai dari variabel-variabel xmin, ymin, xmax dan ymax di input dari keyboard. • Tambahkan sumbu koordinat X dan sumbu koordinat Y pada gambar yang muncul, yaitu dengan menambahkan program berikut pada program utama. Transformasi(xmin, ymin, xmax, ymax, 0, ymin, x1, y1); Transformasi(xmin, ymin, xmax, ymax, 0, ymax, x2, y2); line(trunc(x1),trunc(y1),trunc(x2),trunc(y2)); Transformasi(xmin, ymin, xmax, ymax, xmin, 0, x1, y1); Transformasi(xmin, ymin, xmax, ymax, xmax, 0, x2, y2); line(trunc(x1),trunc(y1),trunc(x2),trunc(y2));
(Tambahkan variabel-variabel baru yang belum terdeklarasi pada bagian pendeklarasian). (---------- Nama File : PRAK282.PAS ------------) 3. Lengkapi program pada No.2, sehingga hasil yang diperoleh di samping grafik fungsi y = sin (x) dengan warna merah juga secara bersamaan tampilkan juga grafik fungsi z = cos (x) dengan warna cyan. (---------- Nama File : PRAK283.PAS ------------) 4. Rubah fungsi dari soal pada No.2, menjadi fungsi y = x 3 dengan batas bidang gambar xmin, ymin, xmax dan ymax masing-masing adalah -3, -30, 3 dan 30.
(---------- Nama File : PRAK284.PAS ------------) Catatan : Kalau terjadi kesalahan bahwa initialisasi grafik belum dilakukan, maka file dengan ekstension .BGI tidak pada tempat yang sama dengan program yang aktif. Copy file-file .BGI tersebut dari direktori / folder PASCAL\BGI ke dalam folder yang aktif yaitu PASCAL\BIN atau nama folder yang lain sesuai dengan komputer yang digunakan.
15
LEMBAR KERJA PRAKTIKUM PEMROGRAMAN KOMPUTER II Praktikum 9 Dosen : Narwen, M.Si. Tujuan Praktikum: 1. Bekerja dalam mode grafik dan dapat berpindah dari mode text ke mode grafik. 2. Dapat membuat transformasi dari bentuk koordinat di monitor ke bentuk koordinat pada gambar. 3. Dapat membuat sebuah animasi dalam mode grafik.
Soal Praktikum 1. Jalankan program berikut dan pelajari apa maksud dari masing-masing perintah dari program tersebut dan amati hasilnya pada layar monitor. Uses crt, graph; const delx =0.001; var x, y, xl,yl,xmin,ymin,xmax,ymax,xk,yk,x1,x2,y1,y2 :real; dtx, dty : string[5]; Procedure Membuka_Grafik; Var gd, gm ,errorcode : integer; begin gd := detect; InitGraph(gd,gm,''); errorcode := Graphresult; if errorcode <> GrOk then Halt; end; Procedure Menutup_Grafik; begin setcolor(white); settextstyle(smallfont, horizdir,5); settextjustify(centertext, righttext); outtextxy(Getmaxx div 2, 19*Getmaxy div 20,'Tekan <ESC>'); repeat until Readkey = #27; closegraph; end; Procedure Bidang_Gambar(Var xmin,ymin,xmax,ymax :real); begin xmin := -2*Pi; ymin := -2; xmax := 2*Pi; ymax := 2; end; Procedure Transformasi(xmin,ymin,xmax,ymax, xgambar,ygambar :real; var xlayar, ylayar :real); begin xlayar := 3*Getmaxx div 4 /(xmax-xmin)*(-xmin+xgambar); ylayar := 9*Getmaxy div 10/(ymax-ymin)*(ymax-ygambar); end; procedure Kerangka; begin Rectangle(0,0,3*Getmaxx div 4, 9*Getmaxy div 10); Rectangle(3*Getmaxx div 4, 0, Getmaxx, 9*Getmaxy div 10); Rectangle(0, 9*Getmaxy div 10, Getmaxx, Getmaxy ); settextstyle(Smallfont, horizdir,5); settextjustify(centertext, centertext); outtextxy(7*Getmaxx div 8, Getmaxy div 10,'DATA :'); end;
16
Procedure Sumbu_Koordinat; begin setcolor(Blue); Transformasi(xmin, ymin, xmax, ymax, 0, ymin, x1, Transformasi(xmin, ymin, xmax, ymax, 0, ymax, x2, line(trunc(x1),trunc(y1),trunc(x2),trunc(y2)); Transformasi(xmin, ymin, xmax, ymax, xmin, 0, x1, Transformasi(xmin, ymin, xmax, ymax, xmax, 0, x2, line(trunc(x1),trunc(y1),trunc(x2),trunc(y2)); setcolor(white); end; begin clrscr; Bidang_Gambar(xmin,ymin,xmax,ymax); Membuka_Grafik; kerangka; sumbu_koordinat; x := xmin; repeat y := sin(x); setcolor(white); str(x:5:2,dtx); str(y:5:2,dty); outtextxy(7*Getmaxx div 8, 2*Getmaxy div 10,'X outtextxy(7*Getmaxx div 8, 3*Getmaxy div 10,'Y Transformasi(xmin, ymin, xmax, ymax, x, y, xl, putpixel(trunc(xl), trunc(yl), red); setcolor(black); outtextxy(7*Getmaxx div 8, 2*Getmaxy div 10,'X outtextxy(7*Getmaxx div 8, 3*Getmaxy div 10,'Y x := x + delx; until (x >= xmax) or (y >= ymax); setcolor(cyan); outtextxy(7*Getmaxx div 8, 2*Getmaxy div 10,'X = outtextxy(7*Getmaxx div 8, 3*Getmaxy div 10,'Y = Menutup_Grafik; end.
y1); y2); y1); y2);
= ' + dtx); = ' + dty); yl);
= ' + dtx); = ' + dty);
' + dtx); ' + dty);
(---------- Nama File : PRAK291.PAS ------------) 2. Lengkapi program pada No.1, sehingga hasil yang diperoleh adalah sebagai berikut : • Tampilkan nilai y maksimum dan y minimum serta nilai x masing-masing dimana y maksimum dan y minimum terjadi. • Tampilkan juga informasi nilai x dimana fungsi itu memotong sumbu-X.
(---------- Nama File : PRAK292.PAS ------------) 3. Rubah fungsi dari soal pada No.2, menjadi fungsi y = x 3 dengan batas bidang gambar xmin, ymin, xmax dan ymax masing-masing adalah -3, -30, 3 dan 30.
(---------- Nama File : PRAK293.PAS ------------)
17