Anda di halaman 1dari 37

Mengenal Pascal sebagai Bahasa

Pemrograman Terstruktur

SMK N 2 Surakarta
Program Keahlian Rekayasa
Perangkat Lunak
By Sidik Pramono
Perangkat Lunak Bahasa
Pemrograman
Bahasa pemrograman adalah software bahasa komputer
yang digunakan dengan cara merancang atau membuat
program sesuai dengan struktur dan metode yang
dimiliki oleh bahasa program itu sendiri. Komputer
mengerjakan transformasi data berdasarkan kumpulan
perintah program yang telah dibuat oleh program.
Program  Kumpulan instruksi/perintah yang dimengerti
oleh komputer, yang mempunyai tujuan tertentu/untuk
menyelesaikan sesuatu masalah
Perangkat Lunak Bahasa
Pemrograman
Menurut tingkatannya, bahasa pemrograman dibagi menjadi 3 tingkatan, yaitu:
Bahasa pemrograman tingkat rendah (low level language), merupakan bahasa
pemrograman generasi pertama, bahasa pemrograman jenis ini sangat sulit
dimengerti karena instruksinya menggunakan bahasa mesin.
Bahasa pemrograman tingkat menengah (middle level language), merupakan
bahasa pemrograman dimana pengguna instruksi sudah mendekati bahasa
sehari-hari. Yang tergolong dalam bahasa ini adalah assembler.
Bahasa pemrograman tingkat tinggi (high level language) merupakan bahasa
yang mempunyai ciri lebih terstruktur, mudah dimengerti karena menggunakan
bahasa sehari-hari, contoh bahasa level ini adalah: Delphi, Pascal, ORACLE, MS-
SQL, Perl, Phyton, Basic, Visual Studio (Visual Basic, Visual FoxPro), Informix, C,
C++, ADA, Java, PHP, ASP, dll.

Sejauh ini bahasa pemrograman dikelompokkan menjadi lima generasi. Setiap


generasi bahasa pemrograman memiliki karakteristik tersendiri. Semakin maju
generasinya maka orientasi bahasa pemrograman ini akan semakin dekat ke
manusia.
Sejarah Pascal
• Berakar dari Bahasa Algol dan PL/1 pada
tahun 60-an di benua Eropa
• Pascal disusun oleh Prof.Niklaus Wirth pada
tahun 70 dan dipublikasikan tahun 71
• Diujicoba pada Komputer CDC 6000
• Turbo Pascal bersifat Compiler dan termasuk
bahasa tingkat tinggi
Struktur Bahasa Pascal
Program <judulnya>;
Uses <unitnya>;
Bagian Deklarasi
Label <namalabelnya>;
Const <nama=nilai constantanya>;
Type <namatype:typedatanya>;
Var <nama_variabelnya>;
Procedure <nama_prosedurnya>;
Function <nama_fungsinya>;
Bagian Pernyataan
Begin
<pernyataan-pernyataan>;
Contoh Program
Listing Programnya
Program latihan;
Uses WinCrt;
Begin
WriteLn( ‘Saya ’ );
Write( ‘Belajar ’ );
WriteLn( ‘Turbo ’ );
Write( ‘Pascal ’ );
Write( ‘Versi Windows’ );
End.

Tekan Ctrl + F9 untuk ekseskusi program


Tugas :
PERINTAH DASAR
Perintah Dasar/Sederhana Pascal
• Write ( ‘Text/tulisan’ , Variabel);
Perintah untuk menampilkan atau cetak dilayar
monitor tanpa pindah baris
• WriteLn( ‘Text/Tulisan’ , Variabel);
Perintah untuk menampilkan/cetak dilayar
monitor lalu pindah baris kebawah
• Read(Variabel);
Perintah untuk menginput/mengisi data tanpa
pindah baris
• ReadLn(Variabel);
IDENTIFIER / DEKLARASI
Identifier/Pengenal Data
Digunakan untuk penamaan elemen-elemen deklarasi
seperti Label, Constanta, type, variabel, procedure,
function
Contoh :
Luas_Segi_Tiga
LuasSegiTiga
LuasS3
LS3
Syarat Identifier Diawali huruf
Tidak boleh ada spasi/blank
Tidak boleh menggunakan simbol khusus,
Deklarasi Variabel Deklarasi Constanta
Adalah elemen data yang belum Adalah suatu elemen data yang
memiliki nilai dan nilainya dapat sudah ada nilainya dan nilainya
berubah ubah tetap
Contoh : Contoh :
USES WINCRT; USES WINCRT;
CONST Namasis = ‘Syaiful Anwar’;
VAR Nama : String[25];
IPK = 3.35;
Nilai : Integer; Mutu = ‘A’
BEGIN BEGIN
CLRSCR; CLRSCR;
WRITE( ‘Nama Siswa : ‘ ); WRITE( ‘Nama Siswa : ‘ , Namasis);
READLN(Nama); WRITE( ‘Nilai IPK : ‘ , IPK);
WRITE( ‘Nilai Ujian : ‘ ); WRITE( ‘Mutu Ujian : ‘ , Mutu);
READLN(Nilai); END.
END.
Ctrl F9 lalu isi datanya Ctrl F9 lalu Alt F5
Nama Siswa : … Nama Siswa : Syaiful Anwar;
Nilai Ujian : … Nilai IPK : 3.350000E+0
Ctrl F5 lihat hasilnya Mutu Ujian : A
PENGGUNAAN USES CRT – TIPE
SEDERHANA - OPERATOR
• Penggunaan Unit CRT (Cathoda Ray Tube)
CLRSCR ;
Untuk membersihkan layar
Delay (nilainya);
 Untuk menghentikan program dalam
satuan milisecond
Gotoxy(x,y);
Untuk menempatkan kursor diposisi x dan y
Window(x1,y1,x2,y2)
Untuk membuat batasan jendela pada layar
Tipe Data Bahasa Pascal
Bilangan Bulat [integer] Terdiri dari
Tipe Jangkauan nilainya
• Shortint  -128 .. 127
• Byte  0 .. 255
• Integer  -32768 .. 32767
• Word  0 .. 65535
• Longint  -21747483648 .. 21747483647

• Bilangan Pecahan [real] terdiri dari single, real, double,


extended
• Character  satu huruf/simbol saja
• String  lebih dari satu huruf/simbol
• Boolean  data berisi True/False
Operator-Operator Pascal
• Assignment Operator (Operator Pengerjaan)  :=
Contoh A:=5 Nama:=Budi
• Binari Operator  * / + - DIV MOD
• Unary Operator (Operator Tunggal) 
Contoh -5 +2.5
• Relasi Operator (Operator Relasi)  = <> > < <=
>= IN
• Logical Operator (Operator Logika)  NOT, AND, OR,
XOR
• Address Operator (Operator Alamat)  @ ^
• Set Operator (Operator Himpunan)  + - *
• String Operator  +
Contoh Program Tipe Data Sederhana Listing Program Tipe Data Sederhana
Uses Crt;
Nama Barang :… Var Nb : String[20];
Jumlah Beli :… Hbr, U,Hs : Longint;
Harga Satuan : Rp. …
Jb : Byte;
Harga Barang : Rp. ___
Tipe A/B/ :…
Dis, Hby,K : Real;
Discount : Rp. ___ Tipe : Char;
Harga Bayar : Rp. ___ Begin Clrscr;
Uangnya : Rp. … Write(‘Nama Barang : ‘); Readln(Nb);
Kembalinya : Rp. ___ Write(‘Jumlah Beli : ‘); Readln(Jb);
Write(‘Harga Satuan : Rp. ‘); Readln(Hs);
Catatan : Hbr:=Jb*Hs;
Tanda … berarti program
diisi/input
Writeln(‘Harga Barang : Rp. ‘,Hbr);
Tanda ___ berarti program Write (‘Tipe A/B : ‘); Readln(Tipe);
tampil/cetak If Tipe=‘A’ Then Dis:=5/100*Hbr
Else Dis:=0;
Writeln(‘Discount : Rp. ‘,Dis:8:1);
Hby:=Hbr-Dis;
Writeln(‘Harga Bayar : Rp. ‘,Hby:10:1);
Write(‘Uangya : Rp. ‘); Readln(U);
K:=U-Hby;
Write(‘Kembalinya : Rp. ‘,K:10:1);
Readln;
End.
Tugas Praktikum
Buat program untuk mencari :
- Luas Segitiga
- Volume Balok
- Luas Balok
- Luas Lingkaran
- Merubah temperatur dalam Fahrenheit
menjadi Celcius

 Simpan dengan nama no-


DEKLARASI TIPE
Deklarasi Type
• Pengenal (identifier) dari data yang digunakan
harus diperkenalkan Tipenya. Jika ingin
menggunakan tipe data dengan nama yang
dibuat olehtipepemakai,
Contoh tanpa maka
Contoh denganharus
tipe disebutkan
tipe data standarnya. Type Nm : String[25];
Var Nama : String[25]; Kls : String[7];
Nil : Integer;
Kelas : String[7]; Gr : Char;
Nilai : Integer; Var Nama : Nm;
Kelas : Kls;
Grade : Char; Nilai : Nil;
Grade : Gr;
Deklarasi Label
Deklarasi label digunakan untuk melompati beberapa perintah
program. Memiliki arah dan tujuan yaitu dengan menggunakan
GOTO DGN_LABEL;
PROGRAM Contoh Tipe Dalam Program
USES winCRT;
LABEL A,B,C; USES winCRT;
BEGIN TYPE Pecahan = Real;
CLRSCR; Bulat = Integer;
WRITELN(‘TEXT1’); GOTO A; VAR A,T : Bulat;
WRITELN(‘TEXT2’); LS3 : Pecahan;
A:WRITELN(‘TEXT3’); GOTO B; BEGIN
WRITELN(‘TEXT4’); CLRSCR;
B:WRITELN(‘TEXT5’); GOTO C; WRITE(‘Masukkan Nilai Alas : ‘);
WRITELN(‘TEXT6’); READLN(A);
C:READLN; WRITE(‘Masukkan Nilai Tinggi : ‘);
END. READLN(T);
LS3:=(A*T)/2;
Hasilnya WRITELN(‘Luas Segitiga:’,LS3:8:1);
TEXT1 READLN;
TEXT3 END.
TEXT5
Tugas Program
• 1. Rubah Program Labelnya dgn Layout sbb
TEXT2 TEXT4 TEXT6
• 2. Buat luas dan Keliling lingkaran dengan
menggunakan deklarasi type dan Var
FORMAT TIPE DATA– LOKASI CURSOR
Uses Crt;
Const SMK=‘SMK N 2 Surakarta’; ,Tipe
String}
Nrata=2.5; {Tipe Real}
Ntotal=55; {Tipe Integer}
Cek =True; {Tipe Boolean}
Huruf =‘A’; ,Tipe Char-
BEGIN
Clrscr;
Writeln(‘Nama Sekolah :’,SMK);
Writeln(‘Nama Sekolah :’,SMK:10);
Writeln(‘Nama Sekolah :’,SMK:17);
Writeln(‘Nilai Rata :’,Nrata);
Writeln(‘Nilai Rata :’,Nrata:3:0);
Writeln(‘Nilai Rata :’,Nrata:6:1);
Writeln(‘Nilai Total :’,Ntotal:2); Buat kesimpulan, tulis di buku catatan
Writeln(‘Nilai Total :’,Ntotal:5);
Writeln(‘Cek Boolean :’,Cek);
Writeln(‘Cek Boolean :’,Cek:7);
Hasilnya :

Nama Kampus :SMK N Surakarta


Nama Kampus :SMK N Surakarta
Nama Kampus : SMK N Surakarta
Nilai Rata :2.500000e+00
Nilai Rata :3
Nilai Rata : 2.5
Nilai Total :55
Nilai Total : 55
Cek Boolean :True
Cek Boolean : True
Huruf Abjad :A
Huruf Abjad : A
Contoh Program Lokasi Cursor
BEGIN
CLRSCR;
GOTOXY(10,2);
WRITE(‘JUDUL INI TERCETAK DI KOLOM 10 BARIS 2’);
READLN;
END.
Cth. Program Operator

Listing Program Operator


USES winCRT;
BEGIN
CLRSCR;
WRITELN(15=10);
WRITELN(15>10);
WRITELN(15 DIV 2);
WRITELN(15 MOD 2);
WRITELN(15/2);
READLN;
END.

Hasilnya
False
True
7
1
7.5000000E+00

Buat Kesimpulan tulis di Buku catatan


Contoh rogram :Bentuk menggunakan label
Uses wincrt ;
Type
siti = string;
angka = integer;
var
nama : siti;
nilai : angka;
lagi : char;
label atas;
begin
atas :
clrscr;
write (‘ Masukan Nama Anda : ‘); readln(nama);
write (‘ Masukan Nilai Anda : ‘); readln(nilai);
write (‘ Anda Ingin Input Lagi *Y/N+ ? ‘); readln(lagi);
if ( lagi = ‘Y’) or (lagi = ‘y’) then
goto atas ;
readln;
end.
1. Tambahkan program2 kemaren dengan
perintah label untuk mengulang program.
2. Buat program untuk membedakan bilangan
genap atau bilangan ganjil
layout :
Masukkan bilangan : 1
Bilangan 1 termasuk bilangan ganjil
IF TUNGGAL/MAJEMUK – CASE OF
Statement IF
Bentuk Umum : If <Kondisi> Then <Statement>;
contoh : IF N>=60 Then Ket:=‘Lulus’;

Bentuk Umum : If <Kondisi> Then <Statement1>


Else <Statement2>;
contoh : IF N>=60 Then Ket:=‘Lulus’
Else Ket:=‘Gagal’;
Begin
Perintah1;
Perintah2;
End;
Branching Majemuk
Bentuk Umum : If <Kondisi1> Then
<Statement1>
Else If <Kondisi2> Then
<Statement2>
Else <Statement3>;
contoh :
IF (N>=84) and (N<100) Then Mutu:=‘Amat Baik’
Else IF N>74 Then Mutu:=‘Baik’
Else IF N>60 Then Mutu:=‘Cukup’
Statement Case…OF
Kontohnya :
Bentuk Umum :
CASE N OF
CASE <Variabel> OF 85..100 : Mutu:=‘Amat Baik’;
Konstanta1 : 75..84 : Mutu:=‘Baik’ ;

<Statement1>; 60..74 : Mutu:=‘Cukup’


0..59 : Mutu:=‘Kurang’;
Konstanta2 : END;
<Statement2>;
Konstanta3 :
<Statement3>;
Konstanta4 :
<Statement4>;
uses wincrt; gotoxy(11,7);writeln(‘Nama Barang :’,nm);
label siti ; gotoxy(11,8);writeln(‘Harga Barang :’,hrg);
var gotoxy(11,9);write(‘Jumlah Beli :’);readln(jumbel);
kd,lagi : char;
total := hrg * jumbel;
nm,bonus,byr,kembali :longint;
jumbel :integer; if jumbel >=3 then
begin bonus :=’Mini Box’
siti : else
clrscr; bonus:=’Kalender Cantik’;
gotoxy(20,2); gotoxy(11,10);writeln(‘Total Bayar :’,total);
writeln(‘Penjualan Elektronik’);gotoxy(11,6); gotoxy(11,11);writeln(‘Bonus :’,bonus);
write(‘Masukan Kode barang *A/B/C+ :’); gotoxy(11,14);write(‘Uang Bayar :’);readln(byr);
readln(kd); kembali := byr – total;
case kd of gotoxy(11,15);writeln(‘Uang Kembali :’,kembali);
‘A’,'a’ : gotoxy(11,16);
begin write(‘Anda Ingin input lagi *Y/T+ ? :’);
nm:=’Kulkas 3 pintu’;hrg:=2500000; readln(lagi);
end;
goto siti
‘B’,'b’ :
begin else
nm:=’Radio MIni Compo’;hrg:=1500000; gotoxy(18,18);
end; writeln(‘Terima kasih atas Kunjungannya’);
‘C’,'c’ : readln;
begin end.
nm:=’Televisi 21 inc’;hrg:=2000000;
end;
end;
• Selesaikan programnya, RAPIKAN LAYOUT dan
FORMAT angkanya.
• Bikin logika program ketika Kode barang yang
dimasukkan selain A,B,C maka muncul pesan
“Kode Barang Salah ! Silahkan tekan enter
!”
dan kembali ke input kode program
• Bikin logika program pada input Uang Bayar
apabila yang di input kurang dari Total Bayar
maka muncul pesan  Bayarmu kurang Bos!
Tekan enter
dan kembali kembali ke input Uang bayar
Tugas Praktikum
Di slide selanjutnya
Sebuah CV. RPL ingin membuat program mencari gaji
karyawannya, anda sebagai konsultan di minta bantuan untuk
membuat program mencari gaji bersih karyawan, dengan
ketentuan sebagai berikut :
- Gapok diberikan berdasarkan gol dengan ketentuan :
A  1.000.000
B  750.000
C  500.000
- Tunjangan Istri/Suami diberikan jika statusnya nikah
sebesar 10 % dari gapok
- Tunjangan Anak diberikan jika statusnya nikah sebesar 5%
dari gapok dikalikan jumlah anak. Dengan ketentuan
jumlah anak yg diakui adalah 2 saja.
- GABER = Gapok + Tunjangan Istri/suami + tunjangan anak
Layout Program
Masukkan Nama Karyawan : ............
Golongan Karyawan : ...........
Status Karyawan[N/B] : ....... / Nikah /Belum
Nikah
Jumlah Anak : .......
Gaji Pokok : <otomatis>
Tunjangan Istri : <otomatis>
Tunjangan Anak : <otomatis>
Gaji Bersih : <otomatis>
LOOPING ( PERULANGAN )
Statement For....Do (Perulangan Counter)
For variabel_kontrol : = nilai_awal To nilai_akhir Do
Statement ;
For variabel_kontrol:= nilai_awal DownTo nilai_akhir Do
Statement ;
Statement While ... Do (Perulangan Kondisi Terpenuhi)
While ungkapan_logika Do Statement ;
Statement Repaet...Until (Perulangan Kondisi Tidak Terpenuhi)
Repeat Statement ;
Until ungkapan_logika ;
Program For_To ; Program For_DownTo;

Uses crt ; Uses crt ;


Var Var
i : byte ; i : byte ;
begin begin
clrscr ; clrscr ;
for i : = 1 to 5 do for i : = 5 downto 5 do

writeln (‘ Pascal ‘) ; writeln (‘ Pascal ‘) ;


readln ; readln ;
end . end .
Program While ; Program Repeat;

Uses crt ; Uses crt ;


Var Var
i : byte ; i : byte ;
begin begin
clrscr ; clrscr ;
I:=0; I:=1;
While I <= 5 Do Repeat
begin writeln ( I ) ;
writeln(I); I : = I +1;
I : = I +1 ; Until I >= 5
end ; readln ;
readln ; end .
end .
Tugas Praktikum :
• Buat deret bilangan ganjil dan deret bilangan
genap
Layout :

Masukkan bilangan pertama : ____


Masukkan bilangan kedua : ____
Pilih ‘1’ untuk Bil. Ganjil dan ‘0’ untuk Bil. Genap * 1 / 0+ : ___
{ untuk hasil ditampilkan mendatar } contoh :
{ 1 3 5 7 9 11 }
Mencari bilangan lagi [Y / T] : ____

Anda mungkin juga menyukai