Friday 22 April 2016

RESUME KEDUA : 13 MARET 2016


RESUME PASCAL
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 : Radius adalah jari – jari lingkaran.
Circle ( X, Y, Radius );
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.

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 :
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.

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.

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.

BY. MAULANA MUCHLISH


DOSEN. MUMUN ,S.T
PEMPROGRAMAN 1 (PEMPROGRAMAN TERSTRUKTUR)
PRAKTEK PEMPROGRAMAN 1 (PEMPROGRAMAN TERSTRUKTUR)


No comments:

Post a Comment