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.7.0. Dalam Pemograman pada sistem komputer kita akan selalu berhubungan dengan operasi input output. Pada umumnya system komputer menggunakan keyboard sebagai alat untuk menerima masukan ( Input devices ).

 

Struktur Dasar Bahasa Pascal

Program NamaProgram :

Program Pascal:

Type

                Type1 = DeklarasiTipe1;

                Type1 = DeklarasiTipe2;

...

Const1 = Deklarasiconst1;

Const1 = Deklarasiconst2;

var

                Var1 : Type;

                Var2 : Type;

 

Procedure NamaProcedure(Parameter);

Begin

                [Instruksi];

..

End;

 

Function NamaFungsi( Parameter );type;

Begin

[Instruksi];

..

End;

[Instruksi];

End.

 

Untuk memahami proses masukan data ( input ) harus terlebih dahullu diketahui jenis – jenis data, cara pendeklarasian data, dan format output data tersebut, pada bahasa pemograman pascal.

Tipe – Tipe Data Bahasa Pascal

1.             Byte adalah tipe data numeric terkecil dalam bahasa pascal yang merupakan bilangan bulat. Data ini menempati memori komputer sebesar 1 byte ( merupakan susunan dari 8 bit bilangan biner ) sehingga rentang bilangannya berada antara 0 hingga 255.

2.             Word adalah tipe data numeric yang menempati memoti computer sebesar 2 byte sehingga rentang bilangannya antara 0 hingga 65535

3.             Integer adalah tipe data numeric yang menempati memoti computer sebesar 2 byte sehingga rentang bilangannya antara -32768 hingga 32767

4.             Real adalah suatu bilangan yang bertanda yang mampu menampung bilangan desimal antara -29 X 109 hingga 1,7 X 108. Jenis data ini menempati memori komputer sebesar 6 byte.

5.             Boolean adalah jenis data yang hanya memiliki du keadaan yaitu true ( benar ) dan false ( salah ) dan digunakan untuk penguji kondisi.

6.             Char adalah jenis data yang terdiri dari satu hurup dan menempati memori komputer 1 byte.

7.             String adalah kumpulan dari karakter dan menampung 2 milyar huruf

8.             Longint adalah tipe data yang melebihi dari integer.

9.             Single, double dan extanded adalah tipe data yang melebihi real.

 

 

Deklarasi Variabel Dalam Bahasa Pascal

                Untuk dapat menggunakan suatu jenis data tertentu dalam pascal, harus dilakukan pemesanan atau deklarasi jenis data tersebut dalam sebuah nama variabel. Ketentuan untuk nama variabel tersebut adalah sebagai berikut :

Ø   Tidak boleh dimulai dengan angka

Ø   Tidak boleh mengandung simbol operator aritmatika, dan simbol – 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 keyword bahasa pascal.

Contoh penggunaan :

                Var

                                BilBulat                 : Integer;

BilReal                   : Real;

W1,W2,W3                          : Word;

A,B                                         : Byte;

Nama, Alamat      : String

Operator Aritmatika

1.             Operator pemangkatan yang menggunakan tanda pangkat ( ^ ) atau ( Sqr ).

Contoh :                   a := Sqr(b);

2.             Operator perkalian yang menggunakan tanda bintang ( * );

Contoh :                   a := b * c ;

3.             Operator pembagian yang menggunakan tanda slash ( / ) dan kata div serta mod. Contoh :   a := b / c;

                                                a := b Div c;

                                                a := b Mod c;

4.             Operator Penjumlahan yang menggunakan tanda Plus ( + ).

            Contoh :   a := b + c;

5.             Operator pengurangan yang mengunakan tanda Min ( - ).

            Contoh :   a := b - c;

 

 

Dalam penggunaan operator-operator ini terdapat urutan prioritas pengerjaannya yang dinamakan hirarki operator aritmatika. Hirarki tersebut adalah seperti pada tabel berikut:

                   

Operator

Arti

Prioritas

( …………… )

Tanda Kurung

1

^ ( Sqr )

Pangkat

2

*

Perkalian

3

/ ( Div atau Mod )

Pembagian

4

+

Penjumlahan

5

-

Pengurangan

6

 

Format Data Real ( Bilangan Desimal )

                Selain dapat ditentukan banyaknya kolom penempatan, untuk data real dapat ditentukan bentuk penulisan ( general, desimal ), dan banyaknya angka dibelakang koma, Cara penulisan format data real adalah sebagai berikut :

 

[ Variabel Real ] : [ Jumlah Kolom ] : [ Banyak angka dibelakang koma ]

 

Contoh pemakaian :

                Write(R:10:2);   ( R adalah real yang isinya 123.456 )

Tampilkan pada layar :

                                                               

 

 

 

 

1

2

3

.

4

6

 

Input

Adalah menerima suatu masukan data dari keyboard. Perintah bahasa pascal untuk melakukan langkah ini antara lain :

1.             Readln adalah suatu perintah untuk memasukan data dengan tipe sesuai dengan data yang dilewatkan padanya.

            Contoh : readln ( X );

            (artinya mengambilmasukan dari keyboard untuk disimpan di variabel X ).

2.             Readkey  adalah perintah untuk memasukan data bertipe karakter. Dan berfungsi sebagai Right Value dari penugasan ( Assigment ) dan berada pada unit Uses Crt.

            Contoh :   Ch := Readkey;

            ( artinya ch bertipe data karakter )

3.             Keypressed adalah sama dengan readkey tapi data ini menghasilkan tipe data boolean dan mendeteksi jika terjadi penekanan tuts keyboard maka akan menghasilkan nilai TRUE  ( biasanya dalam penggunaan looping until).

            Contoh : Until Keypressed.

Output

Adalah suatu proses menampilkan data pada layar monitor, perintah bahasa pascal untuk melakukan langkah ini antara lain :

  1. Write adalah perintah untuk menuliskan suatu data yang dilewatkan 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 ( , ) .

Contoh  :               Write(‘ Selamat Datang  ‘);

                                Write(‘ Nama Siswa : ‘);

                                Write(‘ Hasil pnjumlahan : ‘,C);

 

  1. Writeln adalahperintah yang sama dengan write perbedaannya terletak pada penempatan pointer penulisan setelah suatu data dituliskan kelayar dan posisi kursor berada disebelah kiri pada baris setelahnya.

Contoh  :               Writeln(‘ -----------------------------------------------------------‘);

                                Writeln(‘    Perhitungan Total Gaji Karyawan ‘);

                                Writeln(‘ -----------------------------------------------------------‘);

 

PROGRAM-PROGRAM LATIHAN

Program Tampilan;

Uses Crt;

Var

                A, B, C  : Integer;

Begin

                Clrscr;

                Writeln(‘Program Menampilkan Inpit & Output’);

Writeln;

Writeln(’$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$’);

Writeln(’                Program Penjumlahan’);

Writeln(’$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$’);

Writeln;

Write(‘                    Nilai Pertama                       : ‘);readln(A);

Write(‘                    Nilai Kedua                          : ‘);readln(B);

C:= A + B;

Writeln(’                Hasil Penjumlahan: ’,C);

Writeln(’$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$’);

Wrieln;

Writeln(’$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$’);

Writeln(’                Program Pengurangan’);

Writeln(’$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$’);

Writeln;

Write(‘                    Nilai Pertama                       : ‘);readln(A);

Write(‘                    Nilai Kedua                          : ‘);readln(B);

C:= A - B;

Writeln(’                Hasil Pengurangan: ’,C);

Writeln(’$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$’);

Writeln(;

Writeln(’                Program Perkalian’);

Writeln(’$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$’);

Writeln;

Write(‘                    Nilai Pertama                       : ‘);readln(A);

Write(‘                    Nilai Kedua                          : ‘);readln(B);

C:= A * B;

Writeln(’                Hasil Perkalian: ’,C);

Writeln(’$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$’);

Readln;

End;

 

Program Data_mahasiswa;

Uses Crt ;

Var

                Nim,Nama,Alamat,Jurusan               : String;

Umur                                                      : Integer;

IP                                                            : Real;

Begin

                Clrscr;

Writeln(‘-------------------------------------------------‘);

Writeln(‘                Data Mahasiswa Solusindo ‘);

Writeln(‘-------------------------------------------------‘);

Writeln;

Writeln(‘                Nim Mahasiswa                  : ‘);readln(Nim);

Writeln(‘                Nama Mahasiswa                : ‘);readln(Nim);

Writeln(‘                Alamat  Mahasiswa                           : ‘);readln(Nim);

Writeln(‘                Jurusan Mahasiswa                             : ‘);readln(Nim);

Writeln(‘                Umur Mahasiswa                : ‘);readln(Nim);

Writeln(‘                IP Mahasiswa                                      : ‘);readln(Nim);

Writeln;

Writeln(‘-------------------------------------------------‘);

Readln;

End;

 

Kasus :

Buat program dalam Bahasa Pascal untuk menginput Penerimaan Siswa Baru Solusindo. Dengan ketentuan Nis, Nama Siswa, Alamat Siswa, Belajar, Biaya Belajar, Cicilan Pertama, Cicilan Kedua. Tunggakan adalah Biaya dikurang cicilan pertama ditambah cicilan kedua.

Output :

*****************************************

                                                Penerimaan Siswa Baru Solusindo

                                *****************************************

                                                Nis                                          : 0012036

                                                Nama Siswa                          : Rachmansyah

                                                Alamat Siswa                       : Jl. Cimindi Cimahi

                                                Belajar                                   : Pemrograman Pascal

                                                Biaya Belajar                       : Rp. 150000

                                                Cicilan Pertama   : Rp. 100000

                                                Cicilan Kedua                      : Rp. 50000

                                                Tunggakan                           : Rp. 0

 

                                *****************************************

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. Akan tetapi ada statement tertentu yang dilakukan hanya jika kondisinya memenuhi. Dan untuk menguji kondisi ini dapat dilakukan dengan statement berikut ini :

1.              If .......

Then ..........

                        Else ............

            Dengan menggunakan statement ini suatu ekspresi logika bila “ Tidak Lulus “ 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 level checking. Syntax penulisannya adalah :

                                                If ( Kondisi -1 )

                                                Then ( Statement - 1 )

                                                Else if (Kondisi -2 )

                                                Then ( Statement - 2 )

                                                .

                                                .

                                                If ( Kondisi – n )

                                                Then (statement – n )

                                                Else ( Statement – n );                                                       

            Keterangan :            Dalam pengujian kondisi ini, jika ekspresi kondisi – 1 tidak terpenuhi akan diuji pada ekspresi kondisi – 2 dan seterusnya hingga kondisi terpenuhi. Jika kondisi tidak terpenuhi sampai akhir statement pengujian, maka statement yang berada setelah keyword Else yang terakhirlah yang dieksekusi.

Latihan –Latihan Program

Program Pemilihan_Nilai;

Uses Crt;

( *********************************************

*              Menyeleksi suatu nilai menggunakan if then else         *

********************************************** )

Var

                Nilai        : Integer;

Begin

Clrscr;

Writeln(‘&&&&& Menghitung Tingkatan Nilai &&&&’);

Writeln;

Write(‘Masukan nilai ( 0 .. 10 )        : ‘);Readln(Nilai);

Writeln;

If nilai < 9 then

                If nilai < 7 then

                                If nilai < 5 then

                                                If nilai  < 3 then

                                                                Writeln(‘Waduh !! Nilainya Kacau !!’)

                                                                Else

                                                Writeln(‘Perlu Kerja Keras Nih !!’)

                                                Else

                                Writeln(‘Masih Lumayan .....................’)

                                Else

                Writeln(‘Nilainya cukup baik ‘)

Else

Writeln(‘Nah ini baru nilai cumlaude ‘);

Write(‘Tekan < Enter > ‘);

Readln;

End.

Program Pemilihan_Warna;

Uses Crt;

Var

                Warna    : Char;

Begin

                Clrscr;

                Writeln(‘@@ Menentukan warna dari Huruf Awalnya @@’);

Writeln;

                Write (‘ Masukan Hurup Awal Warna : ‘);

                Warna := readkey;

Writeln(Warna);

If ( Warna = ‘B’) or ( Warna = ‘b’) then

                Writeln(‘Warna yang berawalan dari hurup B adalah Biru’);

Else If ( Warna = ‘H’) or ( Warna = ‘h’) then

                Writeln(‘Warna yang berawalan dari hurup H adalah Hijau’);

Else If ( Warna = ‘M’) or ( Warna = ‘m’) then

                Writeln(‘Warna yang berawalan dari hurup M adalah Merah’);

Else If ( Warna = ‘K’) or ( Warna = ‘k’) then

                Writeln(‘Warna yang berawalan dari hurup K adalah Kuning’);

Else If ( Warna = ‘C’) or ( Warna = ‘c’) then

                Writeln(‘Warna yang berawalan dari hurup C adalah Coklat’);

Else If ( Warna = ‘V’) or ( Warna = ‘v’) then

                Writeln(‘Warna yang berawalan dari hurup V adalah Violet’);

Else If ( Warna = ‘J’) or ( Warna = ‘j’) then

                Writeln(‘Warna yang berawalan dari hurup J adalah Jingga’);

Else Writeln(‘Huruf yang diketikan tidak ada dalam pilihan’);

Write(‘Tekan < enter > ‘);

Readln;

End.

 

Kasus     :

Buatlah program dalam bahasa pascal untuk menghitung nilai Akhir Mahasiswa dengan mengunakan If Then Else. Dengan ketentukan sebagai berikut Nim, Nama Mahasiswa, Alamat Mahasiswa, Jurusan, Umur, Nilai UAS, Nilai UTS, Nilai Quiz dan Nilai Tugas.

Untuk Nilai Akhir adalah 40% dari Nilai UAS ditambah 30% dari Nilai UTS ditambah 20% dari niali Quiz ditambah 10% dari Nilai Tugas. Nilai Akhir ditentukan oleh Nilai Grade sebagai berikut :

Jika Nilai Akhir lebih besar dari 85 maka nilai Grade adalah A

Jika Nilai Akhir lebih besar dari 75 maka nilai Grade adalah B

Jika Nilai Akhir lebih besar dari 65 maka nilai Grade adalah C

Jika Nilai Akhir lebih besar dari 55 maka nilai Grade adalah D

Jika Nilai Akhir Kurang dari 55 maka Nilai Grade adalah E

Output : =====================================

                                                Niali akhir Mahasiswa

                  =====================================

                                Nim                                                        :

                                Nama Mahasiswa                :              

Alamat Mahasiswa                             :

Jurusan                                  :

Umur                                                      :

Nilai UAS                                              :

Nilai UTS                                              :

Nilai Quiz                                              :

Nilai Tugas                                           :

Nilai Akhir                                            :

Nilai Grade                                           :

             ======================================

1.             Case Of

End.

Alternatif lain yang digunakan untuk mengontrol statement yang akan dieksekusi dalam program dan hanya dapat menguji kesamaan suatu variabel tertentu denga nilai yang disajikan, variabel yang diuji hanyalah berupavariabel yang bertipe ( Integer, Boolean, Char, Byte dan Word ).

Sedangkan tipe – tipe data yang kompleks (Real, Array, Record dll ) tidak dapat digunakan didata yang disajikan. Syntax penulisannya :

 

 

 

 

                    Case ( Nama variabel ) Of

                                    Pilihan – 1             : Statement – 1;

Pilihan – 2             : Statement – 2;

.

.              

.

Pilihan – n             : Statement – n;

Else                        : Statement;

End;

Keterangan :  Pilihan dapat berupa barisan yang tiap – tiap elemennya dipisahkan dengan koma ( , ). Juga dapat memiliki range dengan menggunakan simbol dua buah titik ( .. ), yang dapat diartikan sebagai hingga.

Case Pilih Of

                ‘1’           : Write (‘Pilihannya angka 1 ‘);

                ‘a’,’A’ : Write (Pilihannya a atau A’);

                ‘b;..’z’ : Write (Pilihannya diantara b hingga z’);

                else         : Write (Pilihannya salah’);

end;

                Latihan – Latihan Program

                Program Alternatif_Kondisi;

                Uses Crt;

                (**************************************

                  *                           Contoh Perintah Case Of        *

                   ***************************************)

                Var

                                Pilih        : Char;

                Begin

                                Clrscr;

Writeln(‘Menu Pilihan’);

Writeln(‘[A] P      ilihan Satu’);

Writeln(‘[B] Pilihan Dua’);

Writeln(‘[C] Pilihan Tiga’);

Writeln(‘[D] Pilihan Empat’);

Writeln(‘[0..9] Pilihan Angka’);

Writeln(‘[Esc] Pilihan Tombol Escape’);

Writeln;

Write(‘Pilihan anda : ‘);Pilih :=readkey;

Case Pilih Of

                ‘A’,’a’    : Writeln(‘Pilihan Satu dipilih,yaitu huruf’,Pilih);

                ‘B’,’b’    : Writeln(‘Pilihan Dua dipilih,yaitu huruf’,Pilih);

                ‘C’,’c’     : Writeln(‘Pilihan Tiga dipilih,yaitu huruf’,Pilih);

                ‘D’,’d’    : Writeln(‘Pilihan Empat dipilih,yaitu huruf’,Pilih);

                ‘0’,’9’     : Writeln(‘Pilihan Satu dipilih,yaitu angka’,Pilih);

                #27         : Writeln(‘Tombol Escape yang dipilih’);

                else Writeln(‘Salah memilih’);

End;

Writeln(‘Tekan < enter > ‘);

Readln;

                End.

Program Garment_Jaket;

Uses Crt;

Var

                Ukuran                  : Char;

                Nama_Jaket         :String;

Banyak : Integer;

Harga,Jumlah      :Real;

Begin

                Clrscr;

                Writeln(‘                Program Pembayaran Jaket              ‘);

                Write(‘Nama Jaket                                             : ‘);Readln(Nama_jaket);

Write(‘Ukuran Jaket S/ M /L                            : ‘);Readln(Ukuran);

Case Ukuran of

                ‘S’           : Harga :=25000;

‘M’         : Harga :=35000;

                ‘L’           : Harga :=50000;

end;

Write(‘Banyak Jaket                                           : ‘);Readln(Banyak);

Jumlah := Harga * Banyak;

Writeln;

Writeln;

Writeln(‘Jumlah yang harus dibayar = Rp.’Jumlah:8:0);

Readln;

End.

Kasus :

Buatlah program untuk menghitung Upag karyawan dengan mengunakan perintah case of. Dengan ketentuan Nik, Nama Karyawan, Alamat Karyawan, Golongan, Jam Kerja.

Jika Gol = 1 uang Harian = 20000 dan Uang Lembur = 10000

Jika Gol = 2 uang Harian = 15000 dan Uang Lembur = 7500

Jika Gol = 3 uang Harian = 10000 dan Uang Lembur = 5000

Uang Lembur dihitung bila jam kerjanya lebih dari 8 jam.

Lembur adalah jam kerja dikurangi 8 kali Uang Lembur.

Tunjangan adalah 15% Uang Harian. Upah cari sendiri.

Output :

                ===================================

                                                Upah Karyawan

                ===================================

                                Nik                                                          :

Nama Karyawan                 :              

Alamat Karyawan                               :

Golongan                                              :                              

Uang Harian                                         :

Jam Kerja                                              :

Lembur                                  :

Tunjangan Upah Total       :

                ====================================

 

 

Bab III

Pengulangan atau Looping

 

Dalam melakukan looping tentunya kita harus memiliki variabel penghitung ( pencacah ) yang dapat menentukan berapa kali kiranya pengulangan dilakukan. Variabel pencacah ini haruslah variabel yang memiliki tipe original. Tugas dari variabel ini yang diinginkan pengulangan akan terhenti. Biasanya dalam program dituliskan sebagai :

                                                X := X + 1; (Pencacah Naik )

                                                X := X - 1; (Pencacah Turun)

Dimana X merupakan variabel bertipe integer, byte atau word ( dalam pemograman biasanya dipilih tipe integer  ) atau dengan cara lain :

                                                Inc(x) dan Dec(X);

Pengulangan dalam pemograman bahasa pascal terbagi atas 3 macam :

1.       For ... to ... do

Begin

....

End;

Adalah suatu perintah looping yang mengunakan pencacah naik ( Increment ), Artinya setiap pengulangan dilakukan variabel pencacah akan bertambah. Syntax penulisannya :

 

 

For [ Nama Variabel ] := [ Indeks Awal ] to [ Indeks Akhir ]

Begin

                Statement;

End;

Latihan –Latihan Program

Program Matematika;

Uses Crt;

Var

                I                                              : Byte;

                Kuadrat, Akar                      : Real;

Begin

                Clrscr;

                Writeln(‘Tabel Kuadrat dan Akar Kuadrat’);

                Writeln(‘&&&&&&&&&&&&&&&&&’);

                Writeln(‘ Bilangan              Kuadrat Akar                       Kuadrat’);

                Writeln(‘&&&&&&&&&&&&&&&&&’);

                Wrteln;

                For I := 1 to 10 do

Begin

                                Kuadrat := Sqr(I);

                                Akar       := Sqrt(I);

Writeln(I:6, Kuadrat :10:0, Akar:15:2’);

End;

Writeln(‘&&&&&&&&&&&&&&&&&’);

                End;

Program Menggeser_Bintang

Uses Crt;

Var

                Bintang : Integer;

Begin

                Clrscr;

                For Bintang  := 5 to 23 do

                Begin

                                Gotoxy(5,Bintang );

                                Writeln(‘*’);

                                Delay (100);

                End;

                For Bintang := 5 to 75 do

                Begin

                                Gotoxy(Bintang,23 );

                                Writeln(‘*’);

                                Delay (100);

                End;

                For Bintang := 23 downto 5 do

                Begin

                                Gotoxy(75,Bintang );

                                Writeln(‘*’);

                                Delay (100);

                End;

                For Bintang := 75 downto 5 do

                Begin

                                Gotoxy(Bintang,5 );

                                Writeln(‘*’);

                                Delay (100);

                End;

End.

 

 

 

2.             While Do

End;          

 

Adalah 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. Syntax pemakaiannya adalah

Nama variabel := Indeks Awal

While ( Kondisi ) do

Begin

                    Statement ;

                    Inc(Nama_variabel);

            End;

Latihan – Latihan Program :

Program Pitagoras;

Uses Crt;

Var

            A,B,C         : Real;

            I                  : Integer;

Begin

            Clrscr;

I:=0;

While ( I < 3 ) do

Begin

            Write(‘Nilai A adalah ‘);Readln(A);

            Write(‘Nilai B adalah ‘);Readln(B);

            C := sqrt(Sqrt(A) + Sqrt(B));

Writeln;

Writeln(‘Hasil adalah’,C:8:2);

Inc(I);

End;

Readln;

End.

Program Bilangan_Genap

Uses Crt;

Var

            I                  :Integer;

Begin

            Clrscr;

            I:=0;

            Writeln(‘Sepuluh bilangan genap pertama : ’);

            While (I < 10 ) do

            Writeln(I+2);

            Readln;

End.

3.       Repeat

            Until

            Adalah proses looping kebalikan dari while do. Langkah perintah ini proses pengulangan berlangsung jika kondisinya salah. Jadi proses looping diulang dulu baru di kondisikan dan tidak perlu digunakan begin dan end lagi

Syntax penulisannya :

           

            [ Nama variabel ] := 0;

            Repeat

                                Statement;

                                Inc(Nama Variabel);

            Until ( Kondisi)

 

 

 

Latihan Latihan Program

Program Validasi_Nilai

Uses Crt;

Var

            Nilai            :Integer;

            Benar         : Boolean;

Begin

            Clrscr;

            Repeat

                                Write(‘Masukan Nilai 0 s/d 100 : ‘);readln(Nilai);

Benar := nilai in [0..100];

If not (benar) then

Writeln(‘%% Nilainya Salah %%’);

writeln;

            Until (Benar );

End.

Program Demontrasi_Pengulangan;

Uses Crt;

Var

            I : Integer;

Begin

            Clrscr;

            I:=0;

            While (I <= 100 ) do

            Begin

                                Gotoxy(1,1);

                                Write(‘posisi counter : ‘ ,I);

                                Inc(I);

                                Delay(100);

            End;

            Readln;

End.

Kasus

Buat program looping untuk menghitung 2 data kredit Nasabah Bank , dengan ketentuan No Nasabah , Nama Nasabah, alamat Nasabah, Besar Pinjaman, Suku Bunga ,Lama Pinjaman.

Untuk mencari bunga adalah besar pinjaman dikali lama pinjaman dikali suku bunga, nilai pengembalian adalah besar pinjaman ditambah bunga

Output :

####################################

Data Kredit Nasabah Bank Swasta

####################################

Nomer Nasabah                   :

Nama  Nasabah                   :

Alamat Nasabah                 :

Besar Pinjaman                   :

Lama pinjaman                   :

Suku Bunga                          :

Bunga                                    :

Nilai Pengembalian            :

 

Nomer Nasabah                  :

Nama Nasabah                    :

Alamat Nasabah                 :

Besar Pinjaman                   :

Lama pinjaman                   :

Suku Bunga                          :

Bunga                                    :

Nilai Pengembalian             :

####################################

Bab IV

Struktur Data Komplek

 

            Salah 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. Struktur Data ini lebih efisien jika dideklarasikan dibawah keyword 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 – ulang bila diperlukan banyak data yang bertipe komplek yang sama

Ø   Tipe data yang komplek yang dideklarasikan dapat dipergunakan sebagai parameter dalam sebuah fungsi

Ø   Memungkinkan membuat tipe data baru yang merupakan kumpulan dari tipe data – 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 seolah-olah programer menulis bahasa pascal dalam bahasa inggris

Ø   Untuk pelindung atau proteksi bagi keamanan program

Array

Adalah kumpulan dari beberapa nilai semuanya memiliki tipe data yang sama. Syntax penulisannya :

Var

                Nama Variabel : array[indeks Awal ... Indeks Akhir] of Tipedata;

Begin

 

Dengan nama variabel adalah nama yang kita berikan untuk mengidentifikasi data array tersebut, sedangkan indeks awal dan indeks akhir berturut – turut merupakan indeks array terkecil dan indeks array terbesar, yang menentukan beberapa banyak elemen array yang kita pesan.

 

 

Latihan – Latihan Program

Program Pengurutan

Uses Crt;

Var

                                Data                       : Array[1..100] of integer;

I,J,A,N   :Integer;

Begin

                Clrscr;

Write(‘Masukan Data         :’);Readln(n);

Writeln(‘Data sebelum Diurutkan’);

For I :=1 to n do

Begin

                                Write(‘Masukan Nilai ke : ‘,I:2);Readln(Data[I]);

End;

For I:=1 to n do

For J:=I + 1 to n do

Begin

                If Data[I] < Data[J] then

Begin

                A:=Data[I];

Data[I] := Data[J];

Data[J] := A

End;

                End;

End;

Writeln;

Writeln(Data setelah diurut’);

For I:=i to n do

Begin

                Write(‘ ‘,Data[I]);

Readln;

End.

 

Program Perkalian_Matrik;

Uses crt

Type

            Larik          : Array[1..25,1..25] of real;

Var

            I,J,K            : Byte;

            L,M,N        : Byte

            A,B,C         : Larik;

Begin

            Clrscr;

Write(‘Baris Matrik pertama                                            : ‘);readln(M);

Write(‘Kolom Matrik Pertama/ Baris Matrik Kedua   : ‘);readln(N);

Write(‘Kolom Matrik Kedua                                            : ‘);readln(L);

Writeln(‘Matrik yang pertama                                         : ‘);

For I :=1 to M do

Begin

            For J:=1 to N do

            Begin

            Write(‘Nilai [‘, I ,’ , ’,J,’ , ’] ? ‘);readln(A[I,J]);

            End;writeln;

End;

Writeln;

Writeln(‘Matrik yang kedua’);

For i:= 1 to n do

Begin

            For J:= 1 to L do

            Begin

            Write(‘Nilai [‘, I ,’ , ’,J,’ , ’] ? ‘);readln(B[I,J]);

            End;writeln;

End;

{proses Perkalian matrik }

For i:=1 to M do

Begin

            For j := 1 to N do

            Begin

                C[I,J] :=0;

                For k:=1 to L do

                                C[I,J]:= C[I,J] + (A[I,K] * B[I,K]);

            End;

End;

Clrscr;

Writeln(‘Hasil Dari Perkalian Matrik : ‘);

Writeln;

For I:=1 to M do

Begin

            For J:=1 to L do

            Write(C[I,J]:9:2);Writeln;

End;readln;

End.

Program Penjualan_Barang

Uses Crt;

Var

            I                                  : Integer;

            NB                              : Array[1..8] of String;

            No, SA,BT,Sisa        : Array[1..8] of Integer;

Begin

            Clrscr;

            Writeln(‘@@@@@@@@@@@@@@@@@@@@@@@’);

            Writeln(‘                    Data Stok Barang di Gudang                                            ‘);

            Writeln(‘No.              Nama Barang                       Stok Awal             Terjual   Sisa’);

For i:= i to 8 do

Begin 

            Gotoxy(2,4+1);Readln(No[I]);

            Gotoxy(5,4+1);Readln(NB[I]);

            Gotoxy(20,4+1);Readln(SA[I]);

            Gotoxy(25,4+1);Readln(BT[I]);

            Data[I] := (SA[I] – BT[I]);

            Gotoxy(35,4+I);Write(Data[I]);

End;

Readln;

End;

Record

                        Suatu jenis struktur data komplek yang memungkinkan untuk mencampur beberapa jenis data dalam satu struktur. Jika elemen dari struktur  data array  haruslah memiliki tipe data yang sama, maka pada struktur record batasan ini tidak ada. Record dapat memiliki tipe data apa saja, Syntak penulisannya :

 

                        Type

                                                Namarecord = Record

                                                                NamaVariabel     : Tipedata

                                                                NamaVariabel     : Tipedata

                                                                NamaVariabel     : Tipedata

                                                End;

                        Var

                                NamaVariabel                     : Tipe Data Record

                       

Latihan –latihan Program

Program_data_bertipe_komplek;

Uses crt;

Type

            Data_Pegawai = Record

                                Nip                                          : Integer;

                                Nama,Alamat,Jabatan        : String;

                                Gol                                          : Char;

                                Gapok,Pajak,Gaber            : Real;

            End;

Var

            Pegawai                     : Array[1..2] of Data_pegawai;

            I                                  : Integer;

Begin

            Clrscr;

            Writeln(‘************************************’);

            Writeln(‘                    Data Pegawai Swasta ‘);

            Writeln(‘************************************’);

            For i := 1 to 2 do

            Begin

                        Write(‘ Nip                                   :’);readln(pegawai[I].nip);

                        Write(‘ Nama Pegawai               :’);readln(pegawai[I].nama);

                        Write(‘ Alamat Pegawai            :’);readln(pegawai[I].alamat);

                        Write(‘ Jabatan Pegawai            :’);readln(pegawai[I].jabatan);

                        Write(‘ Golongan                        :’);readln(pegawai[I].gol);

                        Write(‘ Gaji Pokok                      :’);readln(pegawai[I].gapok);

                        Pegawai[I].Pajak := 0,05 * Pegawai[I].Gapok;

                        Write(‘ Pajak                               :’);Readln(Pegawai[I].pajak:10:0);

                        Pegawai[I].Gaber := Pegawai[I].Gapok - Pegawai[I].Pajak;

                        Write(‘ Gaji Bersih                     :’);readln(pegawai[I].gaber:10:0);

            End;

            Readln;

End.

Program Rata_rata_nilai_mahasiswa;

Uses crt;

Const

            Jumlahtes  =  4;

            SiswaMax = 40;

Type

            Data_Siswa = Record

                                Nim                                        : Integer;

                                Nama                                     : String[20];

                                Nilai                                        : array[1..Jumlahtes]of real;

                                Rata_rata                              : Real;

            End;

            ArraySiswa = array[1..SiswaMax] Of data_siswa;

Var

            Jumlah                       : 1..SiswaMak;

            I,J                                : Integer;

            Total_nilai                : real;

            Siswa                          : ArraySiswa;

            Temporer                  : Data_Siswa;

Begin

            Clrscr;

            Write(‘Jumlah Data                                                :’);Readln(Jumlah);Writeln;

            For I:=1 to Jumlah do

            Begin

                                Write(‘Nomer Induk Mahasiswa     :’);readln(Siswa[I].Nim);

                                Write(‘Nomer Nama Mahasiswa     :’);readln(Siswa[I].Nama);

                                Write(‘Nilai Yang di  Dapat             :’);

                                For   I:=1 to J do

                                Begin

                                                Write(J:2,’ ‘);Readln(Siswa[I].Nilai[J]);

                                End;Writeln;

            End;

            For I:=1 to SiswaMak do

            Begin

                                Total_Nilai :=0;

                                For J:= 1 to JumlahTes do

                                begin

                                                Total_Nilai := Total_Nilai + Siswa[I].Nilai[J];

                                                Siswa[I].Rata-rata :=Total_Nilai / Jumlahtes;

                                End;

            End;

            For I:=1 to Jumlah – 1 do

                                For J:= I+1 to jumlah do

                                                If siswa[I].Rata_rata < Siswa[J].Rata-rata then

                                                Begin

                                                                Temporer := siswa[I];

                                                                Siswa[I] := Siswa[J];

                                                                Siswa[J]:= Temporer;

                                                End;

            Writeln;

            Writeln(‘^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^’);

            Writeln(‘ | Nim Siswa                             Nama Siswa         Nilai Rata – Rata |‘);

            Writeln(‘^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^’);

            For I := 1 Jumlah do

                Writeln(Siswa[I].Nim:5,                                      Siswa[I].Nama:15,

                                Siswa[I].Rata-rata:10:2);

            Writeln(‘^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^’);

            Readln;

End.

Kasus

Buatlah program untuk mengunakan record untuk menghitung dua data total gaji pegawai, dengan ketentuan  Nip,Nama,Pegawai alamat Pegawai, Jabatan, Golongan dan jumlah anak

Jika Gol = 1 gapok = 200000 dan tunjangan Jabatan = 100 % * Gapok

Gol = 2 gapok = 1500000 dan tunjangan Jabatan = 50 % * Gapok

Gol = 3 gapok = 1000000 dan tunjangan Jabatan = 30 % * Gapok

Gol = 4 gapok = 750000 dan tunjangan Jabatan = 20 % * Gapok

Tunjangan anak dihitung sampai anak ke 3 = 20 % dari gapok

Tunjangan Suami/Istri = 15 % dari Gapok. Untuk mencari Gator adalah gapok ditambah tunjangan Jabatan ditambah tunjangan anakditambah tunjangan suami / istri. Pajak didapat 2 % dari gaji pokok dan untuk gaber kalian cari sendiri.

 

 

 

Output : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

                                                Total Gaji Pegawai Swasta

                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Nim                                                            :              

Nama Pegawai                                         :

Alamat Pegawai                                       :

Jabatan Golongan                                   :

Jumlah Anak                                            :

Gaji Pokok                                                :

Tunjangan Jabatan                                  :

Tunjangan Anak                                     :

Tunjangan Suami / Istri                          :

Gaji Kotor                                                 :                              

Pajak                                                         :

Gaji Bersih                                                :

 

Nim                                                            :

Nama Pegawai                                         :

Alamat Pegawai                                       :

Jabatan Golongan                                   :

Jumlah Anak                                            :

Gaji Pokok                                                :

Tunjangan Jabatan                                  :

Tunjangan Anak                                     :

Tunjangan Suami / Istri                          :

Gaji Kotor                                                 :                              

Pajak                                                         :

Gaji Bersih                                                :

 

                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Bab V

Prosedur dan Fungsi

 

            Prosedur dan afungsi adalah suatu bagian program ( sub program ) yang memiliki tugas untuk mengerjakan deretan perintah tertentu. Dengan prosedur memungkinkan untuk melakukan suatu pekerjaan yang berulang – ulang tanpa harus menuliskan kembali instruksi – intruksi yang dilakukan. Pekerjaan yang dilakukan berulang –ulang . Prosedur dan fungsi bedanya kalau prosedur hasilnya tidak ditipedatakan sedangkan fungis hasilnya harus ditipedatakan. Syntak penulisannya :

           

 

Procedure NamaPRogram;

            Begin

                                Statement

            End;

            Begin

            Pemanggilan Program;

            End;

 

Dan &&&

Function NamaProgram:Tipedata;

Begin

                    Statement

End;

Begin

    PemanggilanProgram;

End;

 

Latihan – Latihan

Program Menghitung _Berbagai_Luas;

Uses Crt;

Var

            S,SE,PP,LL,LJ                                                                          : Real;

            P,Alas,Tinggi,Panjang,Lebar,Jari,Sudut,Pil                         : Integer;

            Pilihan                                                                                        : Char;

 

Procedure Matematika;

Begin

            Writeln;

            Writeln(‘Ketikan angka pilihan dibawah ini dan tekan < Enter > ‘);

Writeln(‘1. Luas Segitiga’);

Writeln(‘2. Luas SegiEmpat’);

Writeln(‘3. Luas Persegi Panjang’);

Writeln(‘4. Luas Lingkaran’);

Writeln(‘5. Luas Juring’);

Writeln(‘6. Selesai’);

End;

Procedure Luas_Segitiga;

Begin

            Writeln;

Write(‘Alas                                               : ‘);Readln(Alas);

Write(‘Tinggi                                            : ‘);Readln(Tinggi);

S:=alas * (Tinggi / 2);

Writeln(‘Luas Segitiga                           : ‘,S);

End;

Procedure Luas_SegiEmpat;

Begin

            Writeln;

Write(‘Panjang                                        : ‘);Readln(Panjang);

Write(‘Lebar                                            : ‘);Readln(Lebar);

SE:=Panjang * Lebar

Writeln(‘Luas SegiEmpat                     : ‘,SE);

End;

Procedure Luas_Persegi_Panjang;

Begin

            Writeln;

Write(‘Panjang                                        : ‘);Readln(Panjang);

Write(‘Lebar                                            : ‘);Readln(Lebar);

PP:=Panjang * Lebar

Writeln(‘Luas Persegi Panjang              : ‘,PP);

End;

Procedure Luas_Lingkaran;

Begin

            Writeln;

Write(‘Jari - Jari                                     : ‘);Readln(Jari);

LL:=Pi * Sqr(Jari);

Writeln(‘Luas Lingkaran                      : ‘,LL);

End;

Procedure Luas_Juring;

Begin

            Writeln;

Write(‘Sudut Juring                                : ‘);Readln(Juring);

Write(‘Jari - Jari                                     : ‘);Readln(JAri);

LJ:=Sudut / 360 * Pi * Sqr(Jari);

Writeln(‘Luas Juring                              : ‘,LJ);

End;

Procedure Laksanakan_Matematika;

Begin

    P:= Ord(Pilihan) – 48

    Case P Of

                    1 : Luas_Segitiga;

                    2 : Luas_SegiEmpat;

                    3 : Luas_Persegi_Panjang;

                    4 : Luas_Lingkaran;

                    5 : Luas_Juring;

                    6 : Begin

                                    Writeln;

                                    Writeln(‘ &&&& Selesai &&&&’);

                                    End;

End;

End;

 

Begin

                Write(‘Pilihan                                       : );Readln(Pil);

                Write p <> 6 Do

                Begin

                Repeat

                Matematika;

                Write(‘Pilihan angka yang dipilih : ‘);read(Pilihan);

                Writeln(Pilihan);

                Laksanakan_Matematika;

                Until (pilihan = 6);

            End;

End.

Program Perpustakaan;

Uses Crt;

Var    

                Kode_Buku                                                                          : Char;

                Harga_Sewa, Denda_Hari, Sewa_Hari, Bayar              : Real;

 

Procedure Masukan(Var Tr_Kode ; Var Tr_hari:Real);

Begin

            Gotoxy(15,12);Write(‘Kode Buku Pinjaman                    :’);Readln(Tr_Kode);

            Gotoxy(15,13);Write(‘Lama Hari Pinjam                          :’);Readln(Tr_Hari);

End;

Funtion HargaSewa(Tr_Kode2 : Char);Real;

Begin

            If Upcase(Tr_Kode2) = ‘A’ Then

            HargaSewa := 300

            Else If Upcase (Tr_Kode2) = ‘B’ Then

            HargaSewa := 250

            Else If Upcase (Tr_Kode2) = ‘L’ Then

            HargaSewa := 350;

End;

Funtion Denda(Tr_Kode3 : Char; Tr_Kode2 : Real);Real;

Var

            A                 : Real;

Begin

            If Upcase(Tr_Kode3) = ‘A’ Then

            A:= 50

                                Else If Upcase (Tr_Kode3) = ‘B’ Then

                                A := 25

                                                Else If Upcase (Tr_Kode3) = ‘L’ Then

                                                A:= 100;

            If Tr_Hari2 > 7 Then

            Denda := (Tr_Hari2 – 7) * A

            Else Denda := 0;

End;

Procedure Cetak(Tr_Sewa, Tr_Denda, Tr_Total : real);

Begin

            Gotoxy(15,15);Write(‘Harga Sewa 7 Hari         : Rp.’,Tr_Sewa:5:0);

            Gotoxy(15,16);Write(‘Denda Harus Bayar        : Rp.’,Tr_Denda:5:0);

            Gotoxy(15,17);Write(‘================================);

            Gotoxy(15,18);Write(‘Total Pembayaran          : Rp.’,Tr_Total:5:0);

End;

            Clrscr; { Membersihkan Layar }

            Masukan(Kode_Buku, Sewa_Hari);

            Harga_Sewa := HargaSewa(Kode_Buku);

            Denda_Hari := Denda(Kode_Buku,Sewa_Hari);

            Bayar := Harga_Sewa + Denda_Hari;

            Cetak(Harga_sewa, Denda_Hari,Bayar);

End.

Bab VI

Grafik

 

            Layar monitor komputer memiliki dua modus pemakaiannya, modus text dan modus grafik. Pada modus text yang dapat ditampilkan layar monitor adalah berupa karakter – karakter. Banyaknya karakter yang ditampung dalam satu layar penuh adalah 4000 karakter ( untuk mode layar yang biasa dipakai ) yaitu 80 karakter mengisi lebar layar dan 25 karakter mengisi tiinggi layar.

            Lainnya dengan modus grafik, layar monitor dapat menampilkan objek hanya berupa titik – titik yang dapat menampung pada suatu layar penuh bervariasi sesuai dengan mode grafik yang kita pergunakan. Dalam pemograman grafik menggunakan bahasa pascal kita akan memerlukan file – file sebagai berikut :

Ø File driver grafik, yaitu file – file yang berakhiran BGI ( Boolean Grafik Interface) Untuk dipergunakan sesuai dengan monitor yang dipergunakan

Ø File Graph. TPU adalah fil eyang berisi definisi dari fungsi – fungsi grafik yang dipergunakan

Ø File Hurup adalah file – file yang memiliki akhiran CHR yang bersifat optimal jika tidak terdapat file – file ini setiap karakter dicetak menggunakan Jenis  huruf default .

Untuk dapat menggunakan fasilitas layar grafik terlebih dahulu harus melakukan inialisasi yaitu memberikan kode pada komputer untuk memperlakukan layar monitor sebagai layar grafik. Setelah dilakukan inisialisasi ini cara penulisan ke layar berbeda dengan cara penulisan yang dilakukan pada bab – bab sebelumnya. Dalam Pemograman grafik dipergunakan InitGraph. Syntax penulisannya :

            InitGraph(GrDriver, GrMode, DrivePath);

GraphDriver

Parameter ini berupa parameter variabel bertipe integer yang menyatakan driver layar yang akan dipergunakan, yang tidak lain menyatakan jenis layar monitor apa yang dipergunakan. Dengan menugaskan DETECT pada variabel ini maka complier akan mendeteksi monitor apa yang terpasang pada komputer yang kita pergunakan. File – file Driver berikut ini :

Nama File

Perangkat (Keras)

CGA,BGI

IBM CGA,MCGA

EGAVGA,CGI

IBM EGA, VGA

HERC,BGI

Hercules Monokrom

ATT,BGI

AT & T

PC3270,BGI

IBM 3270 PC

IBM8514,BGI

IBM - 8514

 

Nama Konstanta

Nilai

CurretDriver

-128

DETECT

0

CGA

1

MCGA

2

EGA

3

EGA84

4

EGAMono

5

IBM8514

6

Hercules Monokrom

7

ATT40

8

VGA

9

PC3270

10

           

GraphMode

            Parameter ini berupa variabel bertipe integer yang menyatakan modes grafik yang akan kita pergunakan. Bila variabel ini dipergunakan tidak diinialisasikan (=), maka complier akan mencari resolusi tertinggi yang mampu ditampilkan oleh driver layar. Mode – mode grafik dalam bahasa pascal sebagai berikut :

Nama File

 

Ukuran

Warna

 

CGACO

0

320 X 200

Palet 0 : LightGreen, LightRed, Yellow

1

CGAC1

1

320 X 200

Palet 1 : LightCyan, LightMagenta, White

1

CGAC2

2

320 X 200

Palet 2 : Green, Red, Brown

1

CGAC3

3

320 X 200

Palet 3 : Cyan, Magenta, LightGray

1

CGAH1

4

640 x 200

 

 

MCGACO

0

320 X 200

Palet 0 : LightGreen, LightRed, Yellow

1

MCGAC1

1

320 X 200

Palet 1 : LightCyan, LightMagenta, White

1

MCGAC2

2

320 X 200

Palet 2 : Green, Red, Brown

1

MCGAC3

3

320 X 200

Palet 3 : Cyan, Magenta, LightGray

1

MCGACMed

4

640 x 200

 

1

MCGACHi

5

640 x 480

 

1

EGALO

0

640 x 200

16 Warna

4

EGAHi

1

640 x 350

16 Warna

2

EGAL64LO

0

640 x 200

16 Warna

1

EGAL64Hi

1

640 x 350

4 Warna

1

EgaMonoHi

3

640 x 350

 

 

HerMonoHi

0

720 x 350

 

2

ATT400C0

0

320 X 200

Palet 0 : LightGreen, LightRed, Yellow

1

ATT400C1

1

320 X 200

Palet 1 : LightCyan, LightMagenta, White

1

ATT400C2

2

320 X 200

Palet 2 : Green, Red, Brown

1

ATT400C3

3

320 X 200

Palet 3 : Cyan, Magenta, LightGray

1

ATT400Med

4

640 x 200

 

1

ATT400Hi

5

640 x 200

 

1

VGALO

0

640 x 200

16 Warna

4

VGAMed

1

640 x 350

16 Warna

2

VGAHi

2

640 x 480

16 Warna

1

PC3270Hi

0

720 X 350

 

1

IBM8514LO

0

640 X 480

256 Warna

 

IBM8514Hi

1

1024 X 768

2561 Warna

 

 

Drive Path

             Parameter string yang menyatakan letak direktorin dari file driver ( program tersebut di simpan dimana drive c atau d (c:/tp/bgi ). Setelah selesai menggunakan. Modus layar harus dikembalikan lagi ke modus text, Hal ini dilakukan dengan menggunakan perintah :

                                CloseGraph;

Perintah – Perintah Grafik

Ø GetMaxX dan GetMaxY adalah untuk mendapatkan nilai maxsimum dari koordinat X dan koordinat Y adalah titk paling bawah layar. Koordinat layar pada monitor komputer adalah seperti :

                                    X

 

 

    Y

 
                                                                                               

 

           

                                               

Ø PutPixel adalah perintah untuk mencetak titik pada suatu koordinat tertentu seperti dibawah ini :

                                        PutPixel(X,Y,Warna);

        X dan Y koordinat titik, dan warna adalah warna titik

Ø Line adalah perintah untuk menggambar garis pada layar seperti dibawah ini :

                                        Line(  X1, Y1, X2, Y2 );

    X1 dan Y1 adalah koordinat awal garis dan X2 dan Y2 adalah koordinat akhir garis

Ø Line To adalah perintah untuk menggambar garis dari posisi aktif ke koordinat tertentu seperti di bawah ini :

                                        LineTo( X, Y );

        X dan Y adalah koordinat ujung garis.

Ø MoveTo  adalah perintah untuk memindahkan posis aktif ke posisi tertentu seperti dibawah ini :

                                        MoveTo ( X, Y);

        X dan Y adalah posisi aktif baru.

Ø Rectangle adalah perintah untuk menggambar sebuah kotak pada layar seperti di bawah ini :

                                        Rectangle( X1, X2, Y1, Y2);

Ø Circle adalah perintah untuk mengambar lingkaran pada layar seperti dibawah ini :

                        Circle ( X, Y, Radius ); Radius adalah jari – jari lingkaran.

Ø Ellipse adalah perintah untuk mengambar Ellips pada layar seperti di bawah ini :

                        Ellipse( X, Y, Sudut awal, Sudut Akhir, RadiusX, RadiusY );

        Sudut awal dan sudut akhir adalah bilangan antara 0 – 360 Derajat.

Latihan –Latihan Program

Program Perintah_menggambar;

Uses Crt, Graph;

Type

                GrDrv,GrMode                     : Integer;

Begin

            GrDrv := DETECT;

            InitGraph(GrDrv, GrMode,’’);

            If GraphResult  <> GrOk Then

            Init := false;

            Else init := true;

End;

Procedure Tulis( X,Y: integer; ST:S30);

Begin

            OuttextXY(X,Y,’ < - -‘+ ST);

End;

Procedure Gambar;

Var

            I                  : Integer;

Begin

            {Menggambar Garis}

            LineTo(GetMaxX, GetMaxY);

            Tulis( 20,10,’ LineTo’);

            Line(100,100,300,150);

            Tulis( 250,120,’ Line’);

 

            {Menggambar Kotak}

            Rectangle(200,200,300,300);

            Tulis( 205,250,’Rectangle’);

            Bar(60,250,80,300);

            Tulis( 85,275,’Bar’);

            Bar3D(60,350,80,380,10,True);

            Tulis( 85,365,’Bar3D’);

 

            {Menggambar Lingkaran}

            Circle(GetMaxX div 2, GetMaxY div 2,50);

            Tulis(380, GetMaxX div div 2,’Circle’);

            Ellipse(400,100,0,360,10,20);

            Tulis( 420,100,’Ellips’);

           

            {Menggambar Titik}

            For I:=1 to 10 do

            Begin

                                PutPixel(5*I,400, LIGHTRED);

                                Tulis(55,400,’PuPixel’);

                                Readln;

                                CloseGraph;

            End

            If  Init Then Gambar;

 

End.

Program Animasi_Bunga;

Uses Crt; Graph;

Var

            GD,GM,I   : Integer;

Begin

            Repeat

                GD:=VGA;

            GM:=VGHi;

            InitGraph( GD,GM,’’);

            For I:=1 to 30 do

            Begin

                Setcolor( I );

                Settextstyle(4, Horizdir,4);

                OuttextXY(300,40,’Bunga’);

                Circle(310,240,5+I);

                Circle(300,170,5+I);

                Circle(270,310,5+I);

                Circle(350,310,5+I);

                Circle(230,240,5+I);

                Circle(400,260,5+I);

                Circle(370,190,5+I);

                Sound(200);

                Delay ( 10 );

                noSound;

            End;

            Until KeyPressed;

            CloseGraph; Readln;

End.

 

Program Gelombang_Sinus;

Uses Graph;

Type

            Data = Array[0..360] Of PointType

Var

            DataSinus :Data;

            Frek, Amp :Integer;

Function Init : Boolean;

Var    

            GrDrv,GrMode         :Integer;

Begin

            GrDrv := DETECT;

            InitGraph(GrDrv, GrMode,’’);

            If GraphResult  <> GrOk Then

            Init := false;

            Else init := true;

End;

Procedure Sumbu;

Begin

                Line( 0, GetMaxY div 2, GetMaxX, GetMaxY div 2);

                Line( GetMaxX div 2, 0 ,  GetMaxX div 2, GetMaxY);

End;

Procedure Sinus( Frek, Amp : integer; Var SinBuffer : Data);

Var

                I              : Integer;

Begin

                For I:= 0 to 360 do

                Begin

                SinBuffer[I].X := Round(I/360 * GetMaxX);

                SinBuffer[I].Y := (GetMaxY div 2 ) – Round(Amp * Sin (Frek * Pi * I / 180));

                End;

End;

Begin

                Writeln(‘%%%%% Menggambar Gelombang Sinus  %%%%%’);

                Write(‘ Frekuensi = ‘);Readln(Frek);

                Write(‘ Amplitudo = ‘);Readln(Amp);

                If Init then

                Begin     

                Sumbu;

                Sinus(Frek,amp,DataSinus);

                DrawPoly( 360, DataSinus);

                Readln;CloseGraph;

                End

                Else Write(‘ Grafik Error !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!’);

End.

                                               

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Post a Comment

Lebih baru Lebih lama