Anda di halaman 1dari 24

Modul Pascal Bab I Pengenalan dan Struktur Dasar bahasa Pascal

Bahasa pascal adalah salah satu bahasa komputer yang menjembatani pemakai dengan mesin ( Komputer ) Dengan demikian komputer dapat diperintah melalui suatu bahasa yang dapat dimengerti oleh manusia, yang disebut dengan istilah bahasa tingkat tinggi Bahasa Pascal berkembang sampai sekarang yang dulu menggunakan cobol, fortan dan sekarang kita kita menggunakan Turbo Pascal for Dos Ver ! " Dalam Pemograman pada sistem komputer kita akan selalu berhubungan dengan operasi input output Pada umumnya system komputer menggunakan keyboard sebagai alat untuk menerima masukan ( #nput de$ices ) %truktur Dasar Bahasa Pascal Program &amaProgram ' Program Pascal' Type Type( ) DeklarasiTipe(* Type( ) DeklarasiTipe+* ,onst( ) Deklarasiconst(* ,onst( ) Deklarasiconst+* $ar Var( ' Type* Var+ ' Type* Procedure &amaProcedure(Parameter)* Begin -#nstruksi.* /nd* 0unction &ama0ungsi( Parameter )*type* Begin -#nstruksi.* /nd* -#nstruksi.* /nd 1ntuk memahami proses masukan data ( input ) harus terlebih dahullu diketahui jenis 2 jenis data, cara pendeklarasian data, dan format output data tersebut, pada bahasa pemograman pascal Tipe Tipe Data Bahasa Pascal ( Byte adalah tipe data numeric terkecil dalam bahasa pascal yang merupakan bilangan bulat Data ini menempati memori komputer sebesar ( byte ( merupakan susunan dari 3 bit bilangan biner ) sehingga rentang bilangannya berada antara " hingga +44 + Word adalah tipe data numeric yang menempati memoti computer sebesar + byte sehingga rentang bilangannya antara " hingga 54464 6 Integer adalah tipe data numeric yang menempati memoti computer sebesar + byte sehingga rentang bilangannya antara 76+!53 hingga 6+!5! 8 Real adalah suatu bilangan yang bertanda yang mampu menampung bilangan desimal antara 7+9 : ("9 hingga (,! : ("3 ;enis data ini menempati memori komputer sebesar 5 byte 4 Boolean adalah jenis data yang hanya memiliki du keadaan yaitu true ( benar ) dan false ( salah ) dan digunakan untuk penguji kondisi 5 Char adalah jenis data yang terdiri dari satu hurup dan menempati memori komputer ( byte ! String adalah kumpulan dari karakter dan menampung + milyar huruf 3 Longint adalah tipe data yang melebihi dari integer 9 Single double dan e!tanded adalah tipe data yang melebihi real

Deklarasi "ariabel Dala# Bahasa Pascal 1ntuk dapat menggunakan suatu jenis data tertentu dalam pascal, harus dilakukan pemesanan atau deklarasi jenis data tersebut dalam sebuah nama $ariabel Ketentuan untuk nama $ariabel tersebut adalah sebagai berikut ' Tidak boleh dimulai dengan angka Tidak boleh mengandung simbol operator aritmatika, dan simbol 2 simbol lain yang dipergunakan sebagai operator dalam pascal, seperti ' koma < = > ? @ titik dll Tidak boleh mengandung spasi atau blank Tidak boleh sama dengan nama fungsi dan keyAord bahasa pascal ,ontoh penggunaan ' Var BilBulat ' #nteger* BilBeal ' Beal* C(,C+,C6 ' Cord* D,B ' Byte* &ama, Dlamat ' %tring $perator %rit#atika ( Eperator pemangkatan yang menggunakan tanda pangkat ( > ) atau ( %Fr ) Contoh & a &' S(r)b*+ + Eperator perkalian yang menggunakan tanda bintang ( G )* Contoh & a &' b , c + 6 Eperator pembagian yang menggunakan tanda slash ( H ) dan kata di$ serta mod Contoh & a &' b - c+ a &' b Di. c+ a &' b Mod c+ 8 Eperator Penjumlahan yang menggunakan tanda Plus ( I ) Contoh & a &' b / c+ 4 Eperator pengurangan yang mengunakan tanda Jin ( 7 ) Contoh & a &' b 0 c+ Dalam penggunaan operator7operator ini terdapat urutan prioritas pengerjaannya yang dinamakan hirarki operator aritmatika Kirarki tersebut adalah seperti pada tabel berikut' Eperator ( LLLLL ) > ( %Fr ) G H ( Di$ atau Jod ) I 7 Drti Tanda Kurung Pangkat Perkalian Pembagian Penjumlahan Pengurangan Prioritas ( + 6 8 4 5

1or#at Data Real ) Bilangan Desi#al * %elain dapat ditentukan banyaknya kolom penempatan, untuk data real dapat ditentukan bentuk penulisan ( general, desimal ), dan banyaknya angka dibelakang koma, ,ara penulisan format data real adalah sebagai berikut ' 2 "ariabel Real 3 & 2 4u#lah 5olo# 3 & 2 Banyak angka dibelakang ko#a 3 ,ontoh pemakaian ' Write)R&67&8*+ ( B adalah real yang isinya (+6 845 ) Tampilkan pada layar ' ( Input + 6 8 5

Ddalah menerima suatu masukan data dari keyboard Perintah bahasa pascal untuk melakukan langkah ini antara lain ' ( Readln adalah suatu perintah untuk memasukan data dengan tipe sesuai dengan data yang dileAatkan padanya Contoh & readln ) 9 *+ )artinya #enga#bil#asukan dari keyboard untuk disi#pan di .ariabel 9 *: + Readkey adalah perintah untuk memasukan data bertipe karakter Dan berfungsi sebagai Bight Value dari penugasan ( Dssigment ) dan berada pada unit 1ses ,rt Contoh & Ch &' Readkey+ ) artinya ch bertipe data karakter * 6 5eypressed adalah sama dengan readkey tapi data ini menghasilkan tipe data boolean dan mendeteksi jika terjadi penekanan tuts keyboard maka akan menghasilkan nilai TB1/ ( biasanya dalam penggunaan looping until) Contoh & ;ntil 5eypressed: $utput Ddalah suatu proses menampilkan data pada layar monitor, perintah bahasa pascal untuk melakukan langkah ini antara lain ' ( Crite adalah perintah untuk menuliskan suatu data yang dileAatkan kepadanya dan setelah penulisan dilakukan posisi pointer atau kursor berada di sebelah kanan kalimat data yang kita tulis Dan data yang kita tulis boleh lebih dari satu dengan menggunakan pemisah tanda koma (,) ,ontoh ' Crite(M %elamat Datang M)* Crite(M &ama %isAa ' M)* Crite(M Kasil pnjumlahan ' M,,)* + Writeln adalahperintah yang sama dengan Arite perbedaannya terletak pada penempatan pointer penulisan setelah suatu data dituliskan kelayar dan posisi kursor berada disebelah kiri pada baris setelahnya ,ontoh ' Criteln(M 77777777777777777777777777777777777777777777777777777777777M)* Criteln(M Perhitungan Total Naji KaryaAan M)* Criteln(M 77777777777777777777777777777777777777777777777777777777777M)*

PR$<R%M0PR$<R%M L%TI=%> Program Tampilan* 1ses ,rt* Var D, B, , ' #nteger* Begin ,lrscr* Criteln(MProgram Jenampilkan #npit @ EutputO)* Criteln* Criteln(OPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPO)* Criteln(O Program PenjumlahanO)* Criteln(OPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPO)* Criteln* Crite(M &ilai Pertama ' M)*readln(D)* Crite(M &ilai Kedua ' M)*readln(B)* ,') D I B* Criteln(O Kasil Penjumlahan' O,,)* Criteln(OPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPO)* Crieln* Criteln(OPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPO)* Criteln(O Program PenguranganO)* Criteln(OPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPO)* Criteln* Crite(M &ilai Pertama ' M)*readln(D)* Crite(M &ilai Kedua ' M)*readln(B)* ,') D 7 B* Criteln(O Kasil Pengurangan' O,,)*

Criteln(OPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPO)* Criteln(* Criteln(O Program PerkalianO)* Criteln(OPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPO)* Criteln* Crite(M &ilai Pertama ' M)*readln(D)* Crite(M &ilai Kedua ' M)*readln(B)* ,') D G B* Criteln(O Kasil Perkalian' O,,)* Criteln(OPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPO)* Beadln* /nd* Progra# Data?#ahasis@a+ ;ses Crt + "ar &im,&ama,Dlamat,;urusan ' %tring* 1mur ' #nteger* #P ' Beal* Begin ,lrscr* Criteln(M7777777777777777777777777777777777777777777777777M)* Criteln(M Data JahasisAa %olusindo M)* Criteln(M7777777777777777777777777777777777777777777777777M)* Criteln* Criteln(M &im JahasisAa ' M)*readln(&im)* Criteln(M &ama JahasisAa ' M)*readln(&im)* Criteln(M Dlamat JahasisAa ' M)*readln(&im)* Criteln(M ;urusan JahasisAa ' M)*readln(&im)* Criteln(M 1mur JahasisAa ' M)*readln(&im)* Criteln(M #P JahasisAa ' M)*readln(&im)* Criteln* Criteln(M7777777777777777777777777777777777777777777777777M)* Beadln* /nd* 5asus & Buat program dalam Bahasa Pascal untuk menginput Penerimaan %isAa Baru %olusindo Dengan ketentuan &is, &ama %isAa, Dlamat %isAa, Belajar, Biaya Belajar, ,icilan Pertama, ,icilan Kedua Tunggakan adalah Biaya dikurang cicilan pertama ditambah cicilan kedua Eutput ' GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG Penerimaan %isAa Baru %olusindo GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG &is ' ""(+"65 &ama %isAa ' Bachmansyah Dlamat %isAa ' ;l ,imindi ,imahi Belajar ' Pemrograman Pascal Biaya Belajar ' Bp (4"""" ,icilan Pertama ' Bp (""""" ,icilan Kedua ' Bp 4"""" Tunggakan ' Bp " GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG

Bab II Decision Dan Selection ) Pengkondisian *


Didalam pemrograman bahasa pascal dimana ada perintah untuk memilih membandingkan atau memeriksa program Dalam sebuah program tidak selalu setiap baris dari program dilakukan dalam

eksekusi Dkan tetapi ada statement tertentu yang dilakukan hanya jika kondisinya memenuhi Dan untuk menguji kondisi ini dapat dilakukan dengan statement berikut ini ' 6: IA ::::::: Then :::::::::: Blse :::::::::::: Dengan menggunakan statement ini suatu ekspresi logika bila Q Tidak Rulus Q pada pengujian yang pertama diuji kembali pada kondisi yang berikutnya dan seterusnya Penggunaan jenis kondisi semacam ini berguna sekali dalam menyeleksi statement yang akan dilakukan sesuai dengan ekspresi kondisi yang diberikan, karena statement pengujian kondisi ini dapat disusun berantai sehingga didapat multi le$el checking %yntaS penulisannya adalah ' #f ( Kondisi 7( ) Then ( %tatement 7 ( ) /lse if (Kondisi 7+ ) Then ( %tatement 7 + ) #f ( Kondisi 2 n ) Then (statement 2 n ) /lse ( %tatement 2 n )* Keterangan ' Dalam pengujian kondisi ini, jika ekspresi kondisi 2 ( tidak terpenuhi akan diuji pada ekspresi kondisi 2 + dan seterusnya hingga kondisi terpenuhi ;ika kondisi tidak terpenuhi sampai akhir statement pengujian, maka statement yang berada setelah keyAord /lse yang terakhirlah yang dieksekusi Latihan Latihan Progra# Progra# Pe#ilihan?>ilai+ 1ses ,rt* ( GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG G Jenyeleksi suatu nilai menggunakan if then else G GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ) Var &ilai ' #nteger* Begin ,lrscr* Criteln(M@@@@@ Jenghitung Tingkatan &ilai @@@@O)* Criteln* Crite(MJasukan nilai ( " (" ) ' M)*Beadln(&ilai)* Criteln* #f nilai T 9 then #f nilai T ! then #f nilai T 4 then #f nilai T 6 then Criteln(MCaduh ?? &ilainya Kacau ??O) /lse Criteln(MPerlu Kerja Keras &ih ??O) /lse Criteln(MJasih Rumayan O) /lse Criteln(M&ilainya cukup baik M) /lse Criteln(M&ah ini baru nilai cumlaude M)* Crite(MTekan T /nter U M)* Beadln* /nd Program PemilihanVCarna* 1ses ,rt* Var Carna ' ,har* Begin ,lrscr*

Criteln(M== Jenentukan Aarna dari Kuruf DAalnya ==O)* Criteln* Crite (M Jasukan Kurup DAal Carna ' M)* Carna ') readkey* Criteln(Carna)* #f ( Carna ) MBO) or ( Carna ) MbO) then Criteln(MCarna yang beraAalan dari hurup B adalah BiruO)* /lse #f ( Carna ) MKO) or ( Carna ) MhO) then Criteln(MCarna yang beraAalan dari hurup K adalah KijauO)* /lse #f ( Carna ) MJO) or ( Carna ) MmO) then Criteln(MCarna yang beraAalan dari hurup J adalah JerahO)* /lse #f ( Carna ) MKO) or ( Carna ) MkO) then Criteln(MCarna yang beraAalan dari hurup K adalah KuningO)* /lse #f ( Carna ) M,O) or ( Carna ) McO) then Criteln(MCarna yang beraAalan dari hurup , adalah ,oklatO)* /lse #f ( Carna ) MVO) or ( Carna ) M$O) then Criteln(MCarna yang beraAalan dari hurup V adalah VioletO)* /lse #f ( Carna ) M;O) or ( Carna ) MjO) then Criteln(MCarna yang beraAalan dari hurup ; adalah ;inggaO)* /lse Criteln(MKuruf yang diketikan tidak ada dalam pilihanO)* Crite(MTekan T enter U M)* Beadln* /nd 5asus & Buatlah program dalam bahasa pascal untuk menghitung nilai Dkhir JahasisAa dengan mengunakan #f Then /lse Dengan ketentukan sebagai berikut &im, &ama JahasisAa, Dlamat JahasisAa, ;urusan, 1mur, &ilai 1D%, &ilai 1T%, &ilai WuiX dan &ilai Tugas 1ntuk &ilai Dkhir adalah 8"Y dari &ilai 1D% ditambah 6"Y dari &ilai 1T% ditambah +"Y dari niali WuiX ditambah ("Y dari &ilai Tugas &ilai Dkhir ditentukan oleh &ilai Nrade sebagai berikut ' ;ika &ilai Dkhir lebih besar dari 34 maka nilai Nrade adalah D ;ika &ilai Dkhir lebih besar dari !4 maka nilai Nrade adalah B ;ika &ilai Dkhir lebih besar dari 54 maka nilai Nrade adalah , ;ika &ilai Dkhir lebih besar dari 44 maka nilai Nrade adalah D ;ika &ilai Dkhir Kurang dari 44 maka &ilai Nrade adalah / Eutput ' ))))))))))))))))))))))))))))))))))))) &iali akhir JahasisAa ))))))))))))))))))))))))))))))))))))) &im ' &ama JahasisAa ' Dlamat JahasisAa ' ;urusan ' 1mur ' &ilai 1D% ' &ilai 1T% ' &ilai WuiX ' &ilai Tugas ' &ilai Dkhir ' &ilai Nrade ' )))))))))))))))))))))))))))))))))))))) 6: Case $A Bnd: Dlternatif lain yang digunakan untuk mengontrol statement yang akan dieksekusi dalam program dan hanya dapat menguji kesamaan suatu $ariabel tertentu denga nilai yang disajikan, $ariabel yang diuji hanyalah berupa$ariabel yang bertipe ( #nteger, Boolean, ,har, Byte dan Cord ) %edangkan tipe 2 tipe data yang kompleks (Beal, Drray, Becord dll ) tidak dapat digunakan didata yang disajikan %yntaS penulisannya '

,ase ( &ama $ariabel ) Ef Pilihan 2 ( ' %tatement 2 (* Pilihan 2 + ' %tatement 2 +*

Pilihan 2 n /lse

' %tatement 2 n* ' %tatement*

/nd* Keterangan ' Pilihan dapat berupa barisan yang tiap 2 tiap elemennya dipisahkan dengan koma ( , ) ;uga dapat memiliki range dengan menggunakan simbol dua buah titik ( ), yang dapat diartikan sebagai hingga ,ase Pilih Ef M(O ' Crite (MPilihannya angka ( M)* MaO,ODO ' Crite (Pilihannya a atau DO)* Mb* OXO ' Crite (Pilihannya diantara b hingga XO)* else ' Crite (Pilihannya salahO)* end* Latihan Latihan Progra# Progra# %lternatiA?5ondisi+ 1ses ,rt* (GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG G ,ontoh Perintah ,ase Ef G GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG) Var Pilih ' ,har* Begin ,lrscr* Criteln(MJenu PilihanO)* Criteln(M-D. P ilihan %atuO)* Criteln(M-B. Pilihan DuaO)* Criteln(M-,. Pilihan TigaO)* Criteln(M-D. Pilihan /mpatO)* Criteln(M-" 9. Pilihan DngkaO)* Criteln(M-/sc. Pilihan Tombol /scapeO)* Criteln* Crite(MPilihan anda ' M)*Pilih ')readkey* ,ase Pilih Ef MDO,OaO ' Criteln(MPilihan %atu dipilih,yaitu hurufO,Pilih)* MBO,ObO ' Criteln(MPilihan Dua dipilih,yaitu hurufO,Pilih)* M,O,OcO ' Criteln(MPilihan Tiga dipilih,yaitu hurufO,Pilih)* MDO,OdO ' Criteln(MPilihan /mpat dipilih,yaitu hurufO,Pilih)* M"O,O9O ' Criteln(MPilihan %atu dipilih,yaitu angkaO,Pilih)* <+! ' Criteln(MTombol /scape yang dipilihO)* else Criteln(M%alah memilihO)* /nd* Criteln(MTekan T enter U M)* Beadln* /nd Progra# <ar#ent?4aket+ 1ses ,rt* Var 1kuran ' ,har* &amaV;aket '%tring* Banyak ' #nteger* Karga,;umlah 'Beal* Begin

,lrscr* Criteln(M Program Pembayaran ;aket M)* Crite(M&ama ;aket ' M)*Beadln(&amaVjaket)* Crite(M1kuran ;aket %H J HR ' M)*Beadln(1kuran)* ,ase 1kuran of M%O ' Karga ')+4"""* MJO ' Karga ')64"""* MRO ' Karga ')4""""* end* Crite(MBanyak ;aket ' M)*Beadln(Banyak)* ;umlah ') Karga G Banyak* Criteln* Criteln* Criteln(M;umlah yang harus dibayar ) Bp O;umlah'3'")* Beadln* /nd 5asus & Buatlah program untuk menghitung 1pag karyaAan dengan mengunakan perintah case of Dengan ketentuan &ik, &ama KaryaAan, Dlamat KaryaAan, Nolongan, ;am Kerja ;ika Nol ) ( uang Karian ) +"""" dan 1ang Rembur ) ("""" ;ika Nol ) + uang Karian ) (4""" dan 1ang Rembur ) !4"" ;ika Nol ) 6 uang Karian ) ("""" dan 1ang Rembur ) 4""" 1ang Rembur dihitung bila jam kerjanya lebih dari 3 jam Rembur adalah jam kerja dikurangi 3 kali 1ang Rembur Tunjangan adalah (4Y 1ang Karian 1pah cari sendiri Eutput ' ))))))))))))))))))))))))))))))))))) 1pah KaryaAan ))))))))))))))))))))))))))))))))))) &ik ' &ama KaryaAan ' Dlamat KaryaAan ' Nolongan ' 1ang Karian ' ;am Kerja ' Rembur ' Tunjangan 1pah Total ' ))))))))))))))))))))))))))))))))))))

Bab III Pengulangan atau Looping


Dalam melakukan looping tentunya kita harus memiliki $ariabel penghitung ( pencacah ) yang dapat menentukan berapa kali kiranya pengulangan dilakukan Variabel pencacah ini haruslah $ariabel yang memiliki tipe original Tugas dari $ariabel ini yang diinginkan pengulangan akan terhenti Biasanya dalam program dituliskan sebagai ' 9 &' 9 / 6+ )Pencacah >aik * 9 &' 9 0 6+ )Pencacah Turun* Dimana : merupakan $ariabel bertipe integer, byte atau Aord ( dalam pemograman biasanya dipilih tipe integer ) atau dengan cara lain ' #nc(S) dan Dec(:)* Pengulangan dalam pemograman bahasa pascal terbagi atas 6 macam ' 6: 1or ::: to ::: do Begin :::: Bnd+

Ddalah suatu perintah looping yang mengunakan pencacah naik ( #ncrement ), Drtinya setiap pengulangan dilakukan $ariabel pencacah akan bertambah %yntaS penulisannya ' 0or - &ama Variabel . ') - #ndeks DAal . to - #ndeks Dkhir . Begin %tatement* /nd* Ratihan 2Ratihan Program Progra# Mate#atika+ 1ses ,rt* Var # ' Byte* Kuadrat, Dkar ' Beal* Begin ,lrscr* Criteln(MTabel Kuadrat dan Dkar KuadratO)* Criteln(M@@@@@@@@@@@@@@@@@O)* Criteln(M Bilangan Kuadrat Dkar Criteln(M@@@@@@@@@@@@@@@@@O)* Crteln* 0or # ') ( to (" do Begin Kuadrat ') %Fr(#)* Dkar ') %Frt(#)* Criteln(#'5, Kuadrat '("'", Dkar'(4'+O)* /nd* Criteln(M@@@@@@@@@@@@@@@@@O)* /nd* Progra# Menggeser?Bintang 1ses ,rt* Var Bintang ' #nteger* Begin ,lrscr* 0or Bintang ') 4 to +6 do Begin NotoSy(4,Bintang )* Criteln(MGO)* Delay (("")* /nd* 0or Bintang ') 4 to !4 do Begin NotoSy(Bintang,+6 )* Criteln(MGO)* Delay (("")* /nd* 0or Bintang ') +6 doAnto 4 do Begin NotoSy(!4,Bintang )* Criteln(MGO)* Delay (("")* /nd* 0or Bintang ') !4 doAnto 4 do Begin NotoSy(Bintang,4 )* Criteln(MGO)* Delay (("")* /nd*

KuadratO)*

/nd

8:

While Do Bnd+

Ddalah suatu langkah looping yang mengunakan eskpresi kondisi logika untuk menjajaki apakah pengulangan masih dilakukan atau tidak, jika kondisi benar (True) maka looping akan terus dilakukan dan sebaliknya %yntaS pemakaiannya adalah &ama $ariabel ') #ndeks DAal Chile ( Kondisi ) do Begin %tatement * #nc(&amaV$ariabel)* /nd* Latihan Latihan Progra# & Progra# Pitagoras+ 1ses ,rt* Var D,B,, ' Beal* # ' #nteger* Begin ,lrscr* #')"* Chile ( # T 6 ) do Begin Crite(M&ilai D adalah M)*Beadln(D)* Crite(M&ilai B adalah M)*Beadln(B)* , ') sFrt(%Frt(D) I %Frt(B))* Criteln* Criteln(MKasil adalahO,,'3'+)* #nc(#)* /nd* Beadln* /nd Progra# Bilangan?<enap 1ses ,rt* Var # '#nteger* Begin ,lrscr* #')"* Criteln(M%epuluh bilangan genap pertama ' O)* Chile (# T (" ) do Criteln(#I+)* Beadln* /nd C: Repeat ;ntil Ddalah proses looping kebalikan dari Ahile do Rangkah perintah ini proses pengulangan berlangsung jika kondisinya salah ;adi proses looping diulang dulu baru di kondisikan dan tidak perlu digunakan begin dan end lagi %yntaS penulisannya ' - &ama $ariabel . ') "* Bepeat %tatement* #nc(&ama Variabel)*

("

1ntil ( Kondisi)

Latihan Latihan Progra# Progra# "alidasi?>ilai 1ses ,rt* Var &ilai '#nteger* Benar ' Boolean* Begin ,lrscr* Bepeat Crite(MJasukan &ilai " sHd ("" ' M)*readln(&ilai)* Benar ') nilai in -" ("".* #f not (benar) then Criteln(MYY &ilainya %alah YYO)* Ariteln* 1ntil (Benar )* /nd Progra# De#ontrasi?Pengulangan+ 1ses ,rt* Var # ' #nteger* Begin ,lrscr* #')"* Chile (# T) ("" ) do Begin NotoSy((,()* Crite(Mposisi counter ' M ,#)* #nc(#)* Delay(("")* /nd* Beadln* /nd 5asus Buat program looping untuk menghitung + data kredit &asabah Bank , dengan ketentuan &o &asabah , &ama &asabah, alamat &asabah, Besar Pinjaman, %uku Bunga ,Rama Pinjaman 1ntuk mencari bunga adalah besar pinjaman dikali lama pinjaman dikali suku bunga, nilai pengembalian adalah besar pinjaman ditambah bunga Eutput ' <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Data Kredit &asabah Bank %Aasta <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< &omer &asabah ' &ama &asabah ' Dlamat &asabah ' Besar Pinjaman ' Rama pinjaman ' %uku Bunga ' Bunga ' &ilai Pengembalian ' &omer &asabah &ama &asabah Dlamat &asabah Besar Pinjaman Rama pinjaman ' ' ' ' '

((

%uku Bunga ' Bunga ' &ilai Pengembalian ' <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Bab I" Struktur Data 5o#plek


%alah satu kelebihan dalam bahasa pascal adalah tersedianya berbagai struktur data yang bisa dikatakan hanya terbatas pada imajinasi programer dalam mengaplikasikannya, beberapa struktur data yang komplek dengan manupulasi yang berbeda dengan manupulasi data original dan data real %truktur Data ini lebih efisien jika dideklarasikan dibaAah keyAord type sehingga dengan demikian kita mendapat data jenis baru yang sesuai dengan keinginan kita, dengan mendeklarasikan tipe data tertentu, maka akan didapat beberapa keuntungan antara lain ' Tidak memerlukan deklarasi yang berulang 2 ulang bila diperlukan banyak data yang bertipe komplek yang sama Tipe data yang komplek yang dideklarasikan dapat dipergunakan sebagai parameter dalam sebuah fungsi Jemungkinkan membuat tipe data baru yang merupakan kumpulan dari tipe data 2 tipe data yang baru pula Programer tidak terbatas dengan tipe data yang baku yang disediakan oleh bahasa pascal Dengan tipe data ini program lebih dapat dimengerti sehingga seolah7olah programer menulis bahasa pascal dalam bahasa inggris 1ntuk pelindung atau proteksi bagi keamanan program %rray Ddalah kumpulan dari beberapa nilai semuanya memiliki tipe data yang sama %yntaS penulisannya ' "ar >a#a "ariabel & array2indeks %@al ::: Indeks %khir3 oA Tipedata+ Begin Dengan nama $ariabel adalah nama yang kita berikan untuk mengidentifikasi data array tersebut, sedangkan indeks aAal dan indeks akhir berturut 2 turut merupakan indeks array terkecil dan indeks array terbesar, yang menentukan beberapa banyak elemen array yang kita pesan Latihan Latihan Progra# Progra# Pengurutan 1ses ,rt* Var Data ' Drray-( ("". of integer* #,;,D,& '#nteger* Begin ,lrscr* Crite(MJasukan Data 'O)*Beadln(n)* Criteln(MData sebelum DiurutkanO)* 0or # ')( to n do Begin Crite(MJasukan &ilai ke ' M,#'+)*Beadln(Data-#.)* /nd* 0or #')( to n do 0or ;')# I ( to n do Begin #f Data-#. T Data-;. then Begin D')Data-#.* Data-#. ') Data-;.* Data-;. ') D /nd* /nd*

(+

/nd* Criteln* Criteln(Data setelah diurutO)* 0or #')i to n do Begin Crite(M M,Data-#.)* Beadln* /nd Progra# Perkalian?Matrik+ 1ses crt Type Rarik ' Drray-( +4,( +4. of real* Var #,;,K ' Byte* R,J,& ' Byte D,B,, ' Rarik* Begin ,lrscr* Crite(MBaris Jatrik pertama ' M)*readln(J)* Crite(MKolom Jatrik PertamaH Baris Jatrik Kedua ' M)*readln(&)* Crite(MKolom Jatrik Kedua ' M)*readln(R)* Criteln(MJatrik yang pertama ' M)* 0or # ')( to J do Begin 0or ;')( to & do Begin Crite(M&ilai -M, # ,O , O,;,O , O. Z M)*readln(D-#,;.)* /nd*Ariteln* /nd* Criteln* Criteln(MJatrik yang keduaO)* 0or i') ( to n do Begin 0or ;') ( to R do Begin Crite(M&ilai -M, # ,O , O,;,O , O. Z M)*readln(B-#,;.)* /nd*Ariteln* /nd* [proses Perkalian matrik \ 0or i')( to J do Begin 0or j ') ( to & do Begin ,-#,;. ')"* 0or k')( to R do ,-#,;.') ,-#,;. I (D-#,K. G B-#,K.)* /nd* /nd* ,lrscr* Criteln(MKasil Dari Perkalian Jatrik ' M)* Criteln* 0or #')( to J do Begin 0or ;')( to R do Crite(,-#,;.'9'+)*Criteln* /nd*readln* /nd Progra# PenDualan?Barang

(6

1ses ,rt* Var # ' #nteger* &B ' Drray-( 3. of %tring* &o, %D,BT,%isa ' Drray-( 3. of #nteger* Begin ,lrscr* Criteln(M=======================O)* Criteln(M Data %tok Barang di Nudang M)* Criteln(M&o &ama Barang %tok DAal Terjual %isaO)* 0or i') i to 3 do Begin NotoSy(+,8I()*Beadln(&o-#.)* NotoSy(4,8I()*Beadln(&B-#.)* NotoSy(+",8I()*Beadln(%D-#.)* NotoSy(+4,8I()*Beadln(BT-#.)* Data-#. ') (%D-#. 2 BT-#.)* NotoSy(64,8I#)*Crite(Data-#.)* /nd* Beadln* /nd* Record %uatu jenis struktur data komplek yang memungkinkan untuk mencampur beberapa jenis data dalam satu struktur ;ika elemen dari struktur data array haruslah memiliki tipe data yang sama, maka pada struktur record batasan ini tidak ada Becord dapat memiliki tipe data apa saja, %yntak penulisannya ' Type &amarecord ) Becord &amaVariabel &amaVariabel &amaVariabel /nd* Var &amaVariabel ' Tipe Data Becord Latihan latihan Progra# Progra#?data?bertipe?ko#plek+ 1ses crt* Type DataVPegaAai ) Becord &ip ' #nteger* &ama,Dlamat,;abatan ' %tring* Nol ' ,har* Napok,Pajak,Naber ' Beal* /nd* Var PegaAai ' Drray-( +. of DataVpegaAai* # ' #nteger* Begin ,lrscr* Criteln(MGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGO)* Criteln(M Data PegaAai %Aasta M)* Criteln(MGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGO)* 0or i ') ( to + do Begin Crite(M &ip 'O)*readln(pegaAai-#. nip)* Crite(M &ama PegaAai 'O)*readln(pegaAai-#. nama)* Crite(M Dlamat PegaAai 'O)*readln(pegaAai-#. alamat)* ' Tipedata ' Tipedata ' Tipedata

(8

Crite(M ;abatan PegaAai 'O)*readln(pegaAai-#. jabatan)* Crite(M Nolongan 'O)*readln(pegaAai-#. gol)* Crite(M Naji Pokok 'O)*readln(pegaAai-#. gapok)* PegaAai-#. Pajak ') ","4 G PegaAai-#. Napok* Crite(M Pajak 'O)*Beadln(PegaAai-#. pajak'("'")* PegaAai-#. Naber ') PegaAai-#. Napok 7 PegaAai-#. Pajak* Crite(M Naji Bersih 'O)*readln(pegaAai-#. gaber'("'")* /nd* Beadln* /nd Progra# Rata?rata?nilai?#ahasis@a+ 1ses crt* ,onst ;umlahtes ) 8* %isAaJaS ) 8"* Type DataV%isAa ) Becord &im ' #nteger* &ama ' %tring-+".* &ilai ' array-( ;umlahtes.of real* BataVrata ' Beal* /nd* Drray%isAa ) array-( %isAaJaS. Ef dataVsisAa* Var ;umlah ' ( %isAaJak* #,; ' #nteger* TotalVnilai ' real* %isAa ' Drray%isAa* Temporer ' DataV%isAa* Begin ,lrscr* Crite(M;umlah Data 'O)*Beadln(;umlah)*Criteln* 0or #')( to ;umlah do Begin Crite(M&omer #nduk JahasisAa 'O)*readln(%isAa-#. &im)* Crite(M&omer &ama JahasisAa 'O)*readln(%isAa-#. &ama)* Crite(M&ilai ]ang di Dapat 'O)* 0or #')( to ; do Begin Crite(;'+,O M)*Beadln(%isAa-#. &ilai-;.)* /nd*Criteln* /nd* 0or #')( to %isAaJak do Begin TotalV&ilai ')"* 0or ;') ( to ;umlahTes do begin TotalV&ilai ') TotalV&ilai I %isAa-#. &ilai-;.* %isAa-#. Bata7rata ')TotalV&ilai H ;umlahtes* /nd* /nd* 0or #')( to ;umlah 2 ( do 0or ;') #I( to jumlah do #f sisAa-#. BataVrata T %isAa-;. Bata7rata then Begin Temporer ') sisAa-#.* %isAa-#. ') %isAa-;.* %isAa-;.') Temporer* /nd*

(4

Criteln* Criteln(M>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>O)* Criteln(M ^ &im %isAa &ama %isAa &ilai Bata 2 Bata ^M)* Criteln(M>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>O)* 0or # ') ( ;umlah do Criteln(%isAa-#. &im'4, %isAa-#. &ama'(4, %isAa-#. Bata7rata'("'+)* Criteln(M>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>O)* Beadln* /nd 5asus Buatlah program untuk mengunakan record untuk menghitung dua data total gaji pegaAai, dengan ketentuan &ip,&ama,PegaAai alamat PegaAai, ;abatan, Nolongan dan jumlah anak ;ika Nol ) ( gapok ) +""""" dan tunjangan ;abatan ) ("" Y G Napok Nol ) + gapok ) (4""""" dan tunjangan ;abatan ) 4" Y G Napok Nol ) 6 gapok ) ("""""" dan tunjangan ;abatan ) 6" Y G Napok Nol ) 8 gapok ) !4"""" dan tunjangan ;abatan ) +" Y G Napok Tunjangan anak dihitung sampai anak ke 6 ) +" Y dari gapok Tunjangan %uamiH#stri ) (4 Y dari Napok 1ntuk mencari Nator adalah gapok ditambah tunjangan ;abatan ditambah tunjangan anakditambah tunjangan suami H istri Pajak didapat + Y dari gaji pokok dan untuk gaber kalian cari sendiri

Eutput ' >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Total Naji PegaAai %Aasta >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> &im ' &ama PegaAai ' Dlamat PegaAai ' ;abatan Nolongan ' ;umlah Dnak ' Naji Pokok ' Tunjangan ;abatan ' Tunjangan Dnak ' Tunjangan %uami H #stri ' Naji Kotor ' Pajak ' Naji Bersih ' &im &ama PegaAai Dlamat PegaAai ;abatan Nolongan ;umlah Dnak Naji Pokok Tunjangan ;abatan Tunjangan Dnak Tunjangan %uami H #stri Naji Kotor Pajak Naji Bersih ' ' ' ' ' ' ' ' ' ' ' '

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Bab " Prosedur dan 1ungsi Prosedur dan afungsi adalah suatu bagian program ( sub program ) yang memiliki tugas untuk mengerjakan deretan perintah tertentu Dengan prosedur memungkinkan untuk melakukan suatu

(5

pekerjaan yang berulang 2 ulang tanpa harus menuliskan kembali instruksi 2 intruksi yang dilakukan Pekerjaan yang dilakukan berulang 2ulang Prosedur dan fungsi bedanya kalau prosedur hasilnya tidak ditipedatakan sedangkan fungis hasilnya harus ditipedatakan %yntak penulisannya ' Procedure &amaPBogram* Begin %tatement /nd* Begin Pemanggilan Program* /nd* Dan @@@ 0unction &amaProgram'Tipedata* Begin %tatement /nd* Begin PemanggilanProgram* /nd* Latihan Latihan Progra# Menghitung ?Berbagai?Luas+ 1ses ,rt* Var %,%/,PP,RR,R; P,Dlas,Tinggi,Panjang,Rebar,;ari,%udut,Pil Pilihan

' Beal* ' #nteger* ' ,har*

Procedure Jatematika* Begin Criteln* Criteln(MKetikan angka pilihan dibaAah ini dan tekan T /nter U M)* Criteln(M( Ruas %egitigaO)* Criteln(M+ Ruas %egi/mpatO)* Criteln(M6 Ruas Persegi PanjangO)* Criteln(M8 Ruas RingkaranO)* Criteln(M4 Ruas ;uringO)* Criteln(M5 %elesaiO)* /nd* Procedure RuasV%egitiga* Begin Criteln* Crite(MDlas ' M)*Beadln(Dlas)* Crite(MTinggi ' M)*Beadln(Tinggi)* %')alas G (Tinggi H +)* Criteln(MRuas %egitiga ' M,%)* /nd* Procedure RuasV%egi/mpat* Begin Criteln* Crite(MPanjang ' M)*Beadln(Panjang)* Crite(MRebar ' M)*Beadln(Rebar)* %/')Panjang G Rebar Criteln(MRuas %egi/mpat ' M,%/)* /nd* Procedure RuasVPersegiVPanjang* Begin

(!

' M,PP)* /nd* Procedure RuasVRingkaran* Begin Criteln* Crite(M;ari 7 ;ari ' M)*Beadln(;ari)* RR')Pi G %Fr(;ari)* Criteln(MRuas Ringkaran ' M,RR)* /nd* Procedure RuasV;uring* Begin Criteln* Crite(M%udut ;uring ' M)*Beadln(;uring)* Crite(M;ari 7 ;ari ' M)*Beadln(;Dri)* R;')%udut H 65" G Pi G %Fr(;ari)* Criteln(MRuas ;uring ' M,R;)* /nd* Procedure RaksanakanVJatematika* Begin P') Erd(Pilihan) 2 83 ,ase P Ef ( ' RuasV%egitiga* + ' RuasV%egi/mpat* 6 ' RuasVPersegiVPanjang* 8 ' RuasVRingkaran* 4 ' RuasV;uring* 5 ' Begin Criteln* Criteln(M @@@@ %elesai @@@@O)* /nd* /nd* /nd* Begin Crite(MPilihan ' )*Beadln(Pil)* Crite p TU 5 Do Begin Bepeat Jatematika* Crite(MPilihan angka yang dipilih ' M)*read(Pilihan)* Criteln(Pilihan)* RaksanakanVJatematika* 1ntil (pilihan ) 5)* /nd* /nd Progra# Perpustakaan+ 1ses ,rt* Var KodeVBuku KargaV%eAa, DendaVKari, %eAaVKari, Bayar Procedure Jasukan(Var TrVKode * Var TrVhari'Beal)* Begin NotoSy((4,(+)*Crite(MKode Buku Pinjaman NotoSy((4,(6)*Crite(MRama Kari Pinjam

Criteln* Crite(MPanjang Crite(MRebar PP')Panjang G Rebar Criteln(MRuas Persegi Panjang

' M)*Beadln(Panjang)* ' M)*Beadln(Rebar)*

' ,har* ' Beal*

'O)*Beadln(TrVKode)* 'O)*Beadln(TrVKari)*

(3

/nd* 0untion Karga%eAa(TrVKode+ ' ,har)*Beal* Begin #f 1pcase(TrVKode+) ) MDO Then Karga%eAa ') 6"" /lse #f 1pcase (TrVKode+) ) MBO Then Karga%eAa ') +4" /lse #f 1pcase (TrVKode+) ) MRO Then Karga%eAa ') 64"* /nd* 0untion Denda(TrVKode6 ' ,har* TrVKode+ ' Beal)*Beal* Var D ' Beal* Begin #f 1pcase(TrVKode6) ) MDO Then D') 4" /lse #f 1pcase (TrVKode6) ) MBO Then D ') +4 /lse #f 1pcase (TrVKode6) ) MRO Then D') (""* #f TrVKari+ U ! Then Denda ') (TrVKari+ 2 !) G D /lse Denda ') "* /nd* Procedure ,etak(TrV%eAa, TrVDenda, TrVTotal ' real)* Begin NotoSy((4,(4)*Crite(MKarga %eAa ! Kari ' Bp O,TrV%eAa'4'")* NotoSy((4,(5)*Crite(MDenda Karus Bayar ' Bp O,TrVDenda'4'")* NotoSy((4,(!)*Crite(M)))))))))))))))))))))))))))))))))* NotoSy((4,(3)*Crite(MTotal Pembayaran ' Bp O,TrVTotal'4'")* /nd* ,lrscr* [ Jembersihkan Rayar \ Jasukan(KodeVBuku, %eAaVKari)* KargaV%eAa ') Karga%eAa(KodeVBuku)* DendaVKari ') Denda(KodeVBuku,%eAaVKari)* Bayar ') KargaV%eAa I DendaVKari* ,etak(KargaVseAa, DendaVKari,Bayar)* /nd

Bab "I <raAik


Rayar monitor komputer memiliki dua modus pemakaiannya, modus teSt dan modus grafik Pada modus teSt yang dapat ditampilkan layar monitor adalah berupa karakter 2 karakter Banyaknya karakter yang ditampung dalam satu layar penuh adalah 8""" karakter ( untuk mode layar yang biasa dipakai ) yaitu 3" karakter mengisi lebar layar dan +4 karakter mengisi tiinggi layar Rainnya dengan modus grafik, layar monitor dapat menampilkan objek hanya berupa titik 2 titik yang dapat menampung pada suatu layar penuh ber$ariasi sesuai dengan mode grafik yang kita pergunakan Dalam pemograman grafik menggunakan bahasa pascal kita akan memerlukan file 2 file sebagai berikut ' 0ile dri$er grafik, yaitu file 2 file yang berakhiran BN# ( Boolean Nrafik #nterface) 1ntuk dipergunakan sesuai dengan monitor yang dipergunakan 0ile Nraph TP1 adalah fil eyang berisi definisi dari fungsi 2 fungsi grafik yang dipergunakan 0ile Kurup adalah file 2 file yang memiliki akhiran ,KB yang bersifat optimal jika tidak terdapat file 2 file ini setiap karakter dicetak menggunakan ;enis huruf default 1ntuk dapat menggunakan fasilitas layar grafik terlebih dahulu harus melakukan inialisasi yaitu memberikan kode pada komputer untuk memperlakukan layar monitor sebagai layar grafik %etelah dilakukan inisialisasi ini cara penulisan ke layar berbeda dengan cara penulisan yang dilakukan pada bab 2 bab sebelumnya Dalam Pemograman grafik dipergunakan #nitNraph %yntaS penulisannya '

(9

Init<raph)<rDri.er <rMode Dri.ePath*+ <raphDri.er Parameter ini berupa parameter $ariabel bertipe integer yang menyatakan dri$er layar yang akan dipergunakan, yang tidak lain menyatakan jenis layar monitor apa yang dipergunakan Dengan menugaskan D/T/,T pada $ariabel ini maka complier akan mendeteksi monitor apa yang terpasang pada komputer yang kita pergunakan 0ile 2 file Dri$er berikut ini ' >a#a 1ile Perangkat )5eras* ,ND,BN# #BJ ,ND,J,ND /NDVND,,N# #BJ /ND, VND K/B,,BN# Kercules Jonokrom DTT,BN# DT @ T P,6+!",BN# #BJ 6+!" P, #BJ34(8,BN# #BJ 7 34(8 >a#a 5onstanta ,urretDri$er D/T/,T ,ND J,ND /ND /ND38 /NDJono #BJ34(8 Kercules Jonokrom DTT8" VND P,6+!" >ilai 7(+3 " ( + 6 8 4 5 ! 3 9 ("

<raphMode Parameter ini berupa $ariabel bertipe integer yang menyatakan modes grafik yang akan kita pergunakan Bila $ariabel ini dipergunakan tidak diinialisasikan ()), maka complier akan mencari resolusi tertinggi yang mampu ditampilkan oleh dri$er layar Jode 2 mode grafik dalam bahasa pascal sebagai berikut ' >a#a 1ile ;kuran Warna ,ND,E " 6+" : +"" Palet " ' RightNreen, RightBed, ]elloA ( ,ND,( ( 6+" : +"" Palet ( ' Right,yan, RightJagenta, Chite ( ,ND,+ + 6+" : +"" Palet + ' Nreen, Bed, BroAn ( ,ND,6 6 6+" : +"" Palet 6 ' ,yan, Jagenta, RightNray ( ,NDK( 8 58" S +"" J,ND,E " 6+" : +"" Palet " ' RightNreen, RightBed, ]elloA ( J,ND,( ( 6+" : +"" Palet ( ' Right,yan, RightJagenta, Chite ( J,ND,+ + 6+" : +"" Palet + ' Nreen, Bed, BroAn ( J,ND,6 6 6+" : +"" Palet 6 ' ,yan, Jagenta, RightNray ( J,ND,Jed 8 58" S +"" ( J,ND,Ki 4 58" S 83" ( /NDRE " 58" S +"" (5 Carna 8 /NDKi ( 58" S 64" (5 Carna + /NDR58RE " 58" S +"" (5 Carna ( /NDR58Ki ( 58" S 64" 8 Carna ( /gaJonoKi 6 58" S 64" KerJonoKi " !+" S 64" + DTT8""," " 6+" : +"" Palet " ' RightNreen, RightBed, ]elloA ( DTT8"",( ( 6+" : +"" Palet ( ' Right,yan, RightJagenta, Chite ( DTT8"",+ + 6+" : +"" Palet + ' Nreen, Bed, BroAn ( DTT8"",6 6 6+" : +"" Palet 6 ' ,yan, Jagenta, RightNray ( DTT8""Jed 8 58" S +"" ( DTT8""Ki 4 58" S +"" (

+"

VNDRE VNDJed VNDKi P,6+!"Ki #BJ34(8RE #BJ34(8Ki

" ( + " " (

58" S +"" 58" S 64" 58" S 83" !+" : 64" 58" : 83" ("+8 : !53

(5 Carna (5 Carna (5 Carna +45 Carna +45( Carna

8 + ( (

Dri.e Path Parameter string yang menyatakan letak direktorin dari file dri$er ( program tersebut di simpan dimana dri$e c atau d (c'HtpHbgi ) %etelah selesai menggunakan Jodus layar harus dikembalikan lagi ke modus teSt, Kal ini dilakukan dengan menggunakan perintah ' Close<raph+ Perintah Perintah <raAik <etMa!9 dan <etMa!E adalah untuk mendapatkan nilai maSsimum dari koordinat : dan koordinat ] adalah titk paling baAah layar Koordinat layar pada monitor komputer adalah seperti '

9
PutPi!el adalah perintah untuk mencetak titik pada suatu E koordinat tertentu seperti dibaAah ini ' PutPi!el)9 E Warna*+ 9 dan E koordinat titik dan @arna adalah @arna titik Line adalah perintah untuk menggambar garis pada layar seperti dibaAah ini ' Line) 96 E6 98 E8 *+ 96 dan E6 adalah koordinat a@al garis dan 98 dan E8 adalah koordinat akhir garis Line To adalah perintah untuk menggambar garis dari posisi aktif ke koordinat tertentu seperti di baAah ini ' LineTo) 9 E *+ 9 dan E adalah koordinat uDung garis: Mo.eTo adalah perintah untuk memindahkan posis aktif ke posisi tertentu seperti dibaAah ini ' Mo.eTo ) 9 E*+ 9 dan E adalah posisi aktiA baru: Rectangle adalah perintah untuk menggambar sebuah kotak pada layar seperti di baAah ini ' Rectangle) 96 98 E6 E8*+ Circle adalah perintah untuk mengambar lingkaran pada layar seperti dibaAah ini ' Circle ) 9 E Radius *+ Radius adalah Dari Dari lingkaran: Bllipse adalah perintah untuk mengambar /llips pada layar seperti di baAah ini ' Bllipse) 9 E Sudut a@al Sudut %khir Radius9 RadiusE *+ Sudut a@al dan sudut akhir adalah bilangan antara 7 CF7 DeraDat: Latihan Latihan Progra# Progra# Perintah?#engga#bar+ 1ses ,rt, Nraph* Type NrDr$,NrJode ' #nteger* Begin NrDr$ ') D/T/,T* #nitNraph(NrDr$, NrJode,OO)* #f NraphBesult TU NrEk Then #nit ') false* /lse init ') true* /nd* Procedure Tulis( :,]' integer* %T'%6")* Begin EutteSt:](:,],O T 7 7MI %T)* /nd* Procedure Nambar* Var

+(

# Begin

' #nteger*

[Jenggambar Naris\ RineTo(NetJaS:, NetJaS])* Tulis( +",(",O RineToO)* Rine(("",("",6"",(4")* Tulis( +4",(+",O RineO)* [Jenggambar Kotak\ Bectangle(+"",+"",6"",6"")* Tulis( +"4,+4",OBectangleO)* Bar(5",+4",3",6"")* Tulis( 34,+!4,OBarO)* Bar6D(5",64",3",63",(",True)* Tulis( 34,654,OBar6DO)* [Jenggambar Ringkaran\ ,ircle(NetJaS: di$ +, NetJaS] di$ +,4")* Tulis(63", NetJaS: di$ di$ +,O,ircleO)* /llipse(8"",("",",65",(",+")* Tulis( 8+",("",O/llipsO)* [Jenggambar Titik\ 0or #')( to (" do Begin PutPiSel(4G#,8"", R#NKTB/D)* Tulis(44,8"",OPuPiSelO)* Beadln* ,loseNraph* /nd #f #nit Then Nambar* /nd Progra# %ni#asi?Bunga+ 1ses ,rt* Nraph* Var ND,NJ,# ' #nteger* Begin Bepeat ND')VND* NJ')VNKi* #nitNraph( ND,NJ,OO)* 0or #')( to 6" do Begin %etcolor( # )* %etteStstyle(8, KoriXdir,8)* EutteSt:](6"",8",OBungaO)* ,ircle(6(",+8",4I#)* ,ircle(6"",(!",4I#)* ,ircle(+!",6(",4I#)* ,ircle(64",6(",4I#)* ,ircle(+6",+8",4I#)* ,ircle(8"",+5",4I#)* ,ircle(6!",(9",4I#)* %ound(+"")* Delay ( (" )* no%ound* /nd* 1ntil KeyPressed*

++

,loseNraph* Beadln* /nd Progra# <elo#bang?Sinus+ 1ses Nraph* Type Data ) Drray-" 65". Ef PointType Var Data%inus 'Data* 0rek, Dmp '#nteger* 0unction #nit ' Boolean* Var NrDr$,NrJode '#nteger* Begin NrDr$ ') D/T/,T* #nitNraph(NrDr$, NrJode,OO)* #f NraphBesult TU NrEk Then #nit ') false* /lse init ') true* /nd* Procedure %umbu* Begin Rine( ", NetJaS] di$ +, NetJaS:, NetJaS] di$ +)* Rine( NetJaS: di$ +, " , NetJaS: di$ +, NetJaS])* /nd* Procedure %inus( 0rek, Dmp ' integer* Var %inBuffer ' Data)* Var # ' #nteger* Begin 0or #') " to 65" do Begin %inBuffer-#. : ') Bound(#H65" G NetJaS:)* %inBuffer-#. ] ') (NetJaS] di$ + ) 2 Bound(Dmp G %in (0rek G Pi G # H (3"))* /nd* /nd* Begin Criteln(MYYYYY Jenggambar Nelombang %inus YYYYYO)* Crite(M 0rekuensi ) M)*Beadln(0rek)* Crite(M Dmplitudo ) M)*Beadln(Dmp)* #f #nit then Begin %umbu* %inus(0rek,amp,Data%inus)* DraAPoly( 65", Data%inus)* Beadln*,loseNraph* /nd /lse Crite(M Nrafik /rror ??????????????????????????????????O)* /nd

+6

+8

Anda mungkin juga menyukai