modul i struktur program pascal (1 x pertemuan) · pdf fileprogram sederhana dengan bahasa...

32
Halaman : Modul Praktikkum Pemrograman Terstruktur 1 MODUL I STRUKTUR PROGRAM PASCAL (1 x pertemuan) I. TUJUAN Mahasiswa mengenal struktur program PASCAL, editor TURBO PASCAL. Program sederhana dengan bahasa PASCAL, Statemen masukkan dan keluaran, Variabel, Konstanta dan Operator. II. TEORI SINGKAT Editor TURBO PASCAL merupakan pelayanan terpadu antara editor dengan compiler. Untuk mengaktifkan editor TURBO PASCAL dapat dilakukan dengan : Aktifkan komputer dalam keadaan prompt C:\> (DOS) Masuk ke direktori TURBO PASCAL Masuk ke direktori BIN Ketikkan TURBO C:\> CD TP C:\TP\CD BIN C:\TP\BIN\ TURBO Sehingga akan muncul jendela editor TURBO PASCAL deengna menu antara lain : File, Edit, Search, Run, compile, Debug, Tools. Options, Window, Help. Operasi-operasi pada editor PASCAL : 1. Untuk menciptakan lembar kerja baru File, New 2. Untuk menyimpan hasil pekerjaan File, Save/Save as, ketikkan nama filenya (Tekan tombol F2) 3. Untuk membuka file data File, Open, pilih file data, Tekan tombol Open (Tekan tombol F3) 4. Untuk berpidah ke direktori kerja File, Change dir…, Tentukan direktori kerja, Tekan tombol OK 5. Untuk keluar ke prompt DOS sementara File, DOS shell 6. Untuk kembali ke editor PASCAL ketikkan Exit 7. Untuk menjalankan program PASCAL Run, Run (Ctrl+F9) 8. Untuk melihat hasil RUN Alt+F Struktur Program PASCAL : PROGRAM NamaKepalaProgram; Optional LABEL <Deklarasi Label> Optional CONST <Deklarasi Konstantal> Optional TYPE <Deklarasi Tipe> Optional VAR <Deklarasi Variabell> Optional <Deklarasi Procedure dan Fuction> Optional Begin <Pernyataan> End. NamaKepalaProgram Dipakai untuk keperluan dokumentasi. Menunjukkan dari identifikasi program yang akan dibuat. Nama kepala program harus dimulai dengan huruf, dapat terdiri dari angka dan karakter _ (garis bawah)dan tidak boleh ada spasi. NamaKepalaProgram mempunyai aturan sama dengan Namavariabel. Namakonstanta, NamaTypeData, NamaProcedure, NamaFuction. Program Sederhana Program paling sederhana dari PASCAL hanyalah terdiri Begin End.

Upload: dangliem

Post on 30-Jan-2018

229 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: MODUL I STRUKTUR PROGRAM PASCAL (1 x pertemuan) · PDF fileProgram sederhana dengan bahasa PASCAL, Statemen ... kesalahan dengan muncul pesan ... Mempelajari struktur dari statemen

Halaman :

Modul Praktikkum Pemrograman Terstruktur

1

MODUL I

STRUKTUR PROGRAM PASCAL

(1 x pertemuan)

I. TUJUAN

Mahasiswa mengenal struktur program PASCAL, editor TURBO PASCAL. Program sederhana dengan bahasa PASCAL,

Statemen masukkan dan keluaran, Variabel, Konstanta dan Operator.

II. TEORI SINGKAT

Editor TURBO PASCAL merupakan pelayanan terpadu antara editor dengan compiler. Untuk mengaktifkan editor TURBO

PASCAL dapat dilakukan dengan :

Aktifkan komputer dalam keadaan prompt C:\> (DOS)

Masuk ke direktori TURBO PASCAL

Masuk ke direktori BIN

Ketikkan TURBO

C:\> CD TP

C:\TP\CD BIN

C:\TP\BIN\ TURBO

Sehingga akan muncul jendela editor TURBO PASCAL deengna menu antara lain : File, Edit, Search, Run, compile, Debug,

Tools. Options, Window, Help.

Operasi-operasi pada editor PASCAL :

1. Untuk menciptakan lembar kerja baru File, New

2. Untuk menyimpan hasil pekerjaan File, Save/Save as, ketikkan nama filenya (Tekan tombol F2)

3. Untuk membuka file data File, Open, pilih file data, Tekan tombol Open (Tekan tombol F3)

4. Untuk berpidah ke direktori kerja File, Change dir…, Tentukan direktori kerja, Tekan tombol OK

5. Untuk keluar ke prompt DOS sementara File, DOS shell

6. Untuk kembali ke editor PASCAL ketikkan Exit

7. Untuk menjalankan program PASCAL Run, Run (Ctrl+F9)

8. Untuk melihat hasil RUN Alt+F

Struktur Program PASCAL :

PROGRAM NamaKepalaProgram; Optional

LABEL

<Deklarasi Label> Optional

CONST

<Deklarasi Konstantal> Optional

TYPE

<Deklarasi Tipe> Optional

VAR

<Deklarasi Variabell> Optional

<Deklarasi Procedure dan Fuction> Optional

Begin

<Pernyataan>

End.

NamaKepalaProgram

Dipakai untuk keperluan dokumentasi. Menunjukkan dari identifikasi program yang akan dibuat. Nama kepala program harus

dimulai dengan huruf, dapat terdiri dari angka dan karakter _ (garis bawah)dan tidak boleh ada spasi. NamaKepalaProgram

mempunyai aturan sama dengan Namavariabel. Namakonstanta, NamaTypeData, NamaProcedure, NamaFuction.

Program Sederhana

Program paling sederhana dari PASCAL hanyalah terdiri Begin

End.

Page 2: MODUL I STRUKTUR PROGRAM PASCAL (1 x pertemuan) · PDF fileProgram sederhana dengan bahasa PASCAL, Statemen ... kesalahan dengan muncul pesan ... Mempelajari struktur dari statemen

Halaman :

Modul Praktikkum Pemrograman Terstruktur

2

Program diatas tidak mengandung statement sama sekali, sehingga program diatas kalau dijalankan (Ctrl+F9) tidak

menghasilkan Output.

Procedure Write dan Writeln

Write : Mencectak dan kursor disebelahnya

Writeln : Mencetak dan kursor satu baris ke baris awal

Contoh Program :

Program coba;

Begin

write('Selamat datang ');

write('di TURBO PASCAL');

writeln;

writeln('Laboratorium komputer');

writeln('STMIK BUMIGORA MATARAM’);

end.

Program diatas dapat anda jalankan dengan menekan tombol Ctrl+F9. Anda bisa melihat hasil dari ekselusi program dengan

menekan tombol Alt+F5. Perhatikan hasil eksekusi progrgam dengan cermat, apa efek dari write dan writeln.

Deklarasi Variabel (identifier) dan Format Keluaran

Sebelum suatu variabel digunakan maka terlebih dahulu harus dipesan dalam blok deklarasi variabel dengan bentuk :

Var NamaVar : Typevariabelnya;

NamaVar, NamaVar, … : Typevariabelnya;

Jika menggunakan variabel yang belum di deklarasikan maka saat program di RUN (dikompilasi) akan menyebabkan

kesalahan dengan muncul pesan “Unknown identifier”.

Selanjutnya variabel bisa diisi data dengan statemen assingment.

NamaVariabel := data;

:= adalah operator untuk pengisian variabel dengan nilai data.

Contoh program :

Program coba2;

var

a,b,c : integer;

p,q : real;

z : string;

Begin

a := 5; b := 6; c:= a * b;

p := 12.5; q := p-4;

z := ‘STMIK BUMIGORA’;

writeln(a,b,c);

writeln(p,q);

writeln(z)

end.

Output program diatas :

5630

1.2500000000E+01 8.5000000000E+00

STMIK BUMIGORA

Page 3: MODUL I STRUKTUR PROGRAM PASCAL (1 x pertemuan) · PDF fileProgram sederhana dengan bahasa PASCAL, Statemen ... kesalahan dengan muncul pesan ... Mempelajari struktur dari statemen

Halaman :

Modul Praktikkum Pemrograman Terstruktur

3

Perhatikan output diatas 5630 adalah isi dari variabel a, b, dan c yang dicetak berdempetan. sedangkan 1.2500000000E+01 dan

8.5000000000E+00 adalah isi dari variabel p dan q yang dicetak tanpa format. Kita dapat memberikan format cetakkan dengan

aturan :

NamaVariabel : w untuk variabel/data type integer atau string

Namavariabel : w : d untuk variabel/data tipe real

w adalah lebar medan cetak dan d adalah jumlah digit desimal dibelakang titik desimal.

Jika program diatas diubah menjadi :

Program coba3;

var

a,b,c : integer;

p,q : real;

z : string;

Begin

a := 5; b := 6; c:= a * b;

p := 12.5; q := p-4;

z := ‘STMIK BUMIGORA’;

writeln(a,' ',b,' ',c);

writeln(p:5:2,' ',q:5:2);

writeln(z:10)

end.

Perhatikan perbedaan outputnya !

Deklarasi Type Variabel

Dalam PASCAL dikenal banyak type yang bisa digunakan untuk mendeklarasikan type suatu data.

Type Kisaran nilai

Type sederhana :

Byte

Word

ShortInt

Integer

Longint

Real

Single

Double

Extended

Boolean

Char

String

Type terstruktur :

Array

Record

File

Set

Pointer

0 .. 255

0 .. 65535

-128 .. 127

-32768 .. 32767

-2147483648 .. 2147483648

1 E-38 .. 1 E+28

1.5 E-45 .. 3.4 E+38

5.0 E-324 .. 1.7E+308

1.9 E-4951 .. 1.1 E+4932

Kondisi True atau False

„a‟, „b‟, .., „z‟, „0‟ .. „9‟ semua karakter

„rangkaian karakter‟

larik karakter, numerik

numerik, string, char

numerik, string, larik, record

data ordinal

alamat memori

Type diatas adalah type standard bawaan PASCAL (sudah didefinisikan oleh PASCAL). Kita dapat membuat/mendefinisikan

sendiri type sesuai dengan keinginan kita dengan cara mendeklarasikan pada bagian type.

Bentuk :

Type

NamaTypeData = typedata;

selanjutnya NamaTypeData yang sudah kita definisikan bisa kita pakai sebagai type data pada variabel yang kita gunakan.

Page 4: MODUL I STRUKTUR PROGRAM PASCAL (1 x pertemuan) · PDF fileProgram sederhana dengan bahasa PASCAL, Statemen ... kesalahan dengan muncul pesan ... Mempelajari struktur dari statemen

Halaman :

Modul Praktikkum Pemrograman Terstruktur

4

Contoh : Type

Bulat = Integer;

Pecah = Real;

Karakter = String;

Var

a,b,c : Bulat;

p,q : Pecah;

z : Karakter;

Operator

Dalam PASCAL dikenal beberapa operator antara lain : Operator aritmetika, Operator string, Operator logika.

Operator aritmetika

/ pembagian

* perkalian

div pembagian integer

mod sisa hasil pembagian integer

+ - tambah dan kurang

di dalam PASCAL tidak dikenal operator pangkat. apabila dibutuhkan dapat dibuat untuk operasi pangkat.

operator string

Hanya ada satu operator string yaitu + yang artinya rangkai. Misalnya „Sistem‟ + „Informasi‟ „Sistem Informasi‟.

operator logika

operator logika yang terpenting adalah NOT, AND dan OR

Deklarasi Konstanta

Konstanta adalah suatu nilai yang tidak dapat diubah dalam tubuh program dan harus dideklarasikan di bagian deklarasi

konstanta sebagai berikut :

Const

NamaKonstanta1 = NilaiKonstanta;

Contoh program :

Untuk menghitung luas dan keliling lingkaran :

Program lingkaran;

const

phi = 3.14;

var

jari, luas, kel : real;

Begin

Jari := 10.0;

luas := phi * jari * jari;

kel := 2 * phi * jari;

writeln('H A S I L');

writeln('---------');

writeln('Jari-jari lingkaran : ',jari:6:2);

writeln('Luas lingkaran : ',luas:6:2);

writeln('Keliling lingkaran : ',kel:6:2);

end.

Komentar Program

Komentar adalah sesuatu yang tidak akan diproses pada saat program dijalankan. Pemberian komentar ditandai dengan :

{komentar … komentar}

Page 5: MODUL I STRUKTUR PROGRAM PASCAL (1 x pertemuan) · PDF fileProgram sederhana dengan bahasa PASCAL, Statemen ... kesalahan dengan muncul pesan ... Mempelajari struktur dari statemen

Halaman :

Modul Praktikkum Pemrograman Terstruktur

5

Dekalrasi Unit

Unit adalah suatu kumpulan prosedur dan fungsi yang disediakan oleh PASCAL yang disesuaikan dengan tujuannya. Dalam

PASCAL dikenal beberapa Unit standard antara lain WinCrt, Dos, Graph, Printer, Dos.

Contoh Unit yang tersedia dalam Unit WinCrt :

Clrscr : Untuk membersihkan layar

GotoXY : Untuk memposisikan kursor pada kom X dan baris Yang di layar

Cara mendeklarasikan Unit adalah :

Uses NamaUnit, NamaUnit, …;

Contoh program :

{ Contoh program menggunakan

Unit untuk mengambil prosedure

Clrscr dan GotoXY}

Program DenganUnit;

Uses WinCrt;

Begin

Clrscr;

GotoXY(34,13);write('TEKNIK INFORMATIKA');

GotoXY(36,14);write('STMIK EL RAHMA');

End.

Prosedure Read dan Readln

Procedure ini digunakan untuk membaca data dari keyboard dengan memakai variabel yang sudah dideklarasikan dalam

deklarasi variabel. Sintaxnya :

Read(NamaVariabel, NamaVariabel, …);

Readln(NamaVariabel, Namavariabel, …);

Read : Tidak akan menurunkan kursor setelah proses pembacaan

Readln : menurunkan kursor setelah proses pembacaan

Contoh program :

{

Contoh program menginputkan data

dengan perintah read atau readln

kemudian menampilkannya dengan

perintah write atau writeln

}

Program InputData;

uses WinCrt;

Var

no_mhs : integer;

nama, alamat : string;

Begin

clrscr;

write('Nomor mahasiswa : ');readln(no_mhs);

write('Nama Mahasiswa : ');readln(nama);

write('Alamat : ');readln(alamat);

clrscr;

write('Dia adalah ',nama);

writeln(' yang mempunyai nomor mahasiswa ',no_mhs);

writeln('beralamat di ',alamat,' Yogyakarta');

readln;

end.

Page 6: MODUL I STRUKTUR PROGRAM PASCAL (1 x pertemuan) · PDF fileProgram sederhana dengan bahasa PASCAL, Statemen ... kesalahan dengan muncul pesan ... Mempelajari struktur dari statemen

Halaman :

Modul Praktikkum Pemrograman Terstruktur

6

Latihan Soal :

Buatlah program untuk membaca cacah durian dan cacah orang. Jika mangga dibagi, tiap orang mendapat berapa mangga dan

berapa sisnya . Apakah mangga tersebut habis dibagi atau tidak.

Contoh Output :

Jumlah durian : 8

Jumlah orang : 3

Hasil Pembagian Durian

-------------------------------

Tiap orang mendapat : 3 mangga

Sisa mangga : 2

Page 7: MODUL I STRUKTUR PROGRAM PASCAL (1 x pertemuan) · PDF fileProgram sederhana dengan bahasa PASCAL, Statemen ... kesalahan dengan muncul pesan ... Mempelajari struktur dari statemen

Halaman :

Modul Praktikkum Pemrograman Terstruktur

7

MODUL II

LOOPING (PERULANGAN)

(2 x pertemuan)

I. TUJUAN Mempelajari struktur dari statemen kontrol PASCAL untuk menangani proses berulang yaitu : For .. Do, While.. Do, dan

Repeat .. Until.

II. TEORI SINGKAT

For .. Do ..

Syntax for .. Do

For NamaVarKendali := Awal to Akhit Do

Pernyataan;

Atau

For NamaVarKendali := Awal to Akhit Do

Begin

Pernyataan1;

Pernyataan2; blok pernyataan

End;

Atau

For NamaVarKendali := Awal Downto Akhit Do

Pernyataan;

Atau

For NamaVarKendali := Awal Downto Akhit Do

Begin

Pernyataan1;

Pernyataan2; blok pernyataan

End;

Statemen/pernyataan atau blok pernyataan akan dikerjakan selama nilai dari NamaVarKendali dari Awal ke Akhir dengan

kenaikan/penurunan satu langkah. Jika Awal lebih kecil Akhir kita pakai to, sedangkan jika Awal lebih besar Akhir kita pakai

downto.

NamaVarKendali adalah idetifier yang bertype ordinal seperti byte, integer atau char dan tidak dapat bertype string atau real.

Berikut adalah program untuk mencetak karakter mulai dari awal sampa akhir dan dari akhir sampai awal, dimana awal dan

akhir dinputkan dari keyboard. Awal, akhir bertype char.

Program CetakKarakter;

Uses WinCrt;

Var

Awal, Akhir, Karak : Char;

Begin

Clrscr;

Write('Karakter awal : ');Readln(Awal);

Write('Karakter akhir : ');Readln(Akhir);

writeln;

Write('N A I K : ');

For Karak := Awal to Akhir Do

Write(karak);

Writeln;

Write('T U R U N : ');

For Karak := Akhir downto Awal Do

Write(karak);

Readln

End.

Page 8: MODUL I STRUKTUR PROGRAM PASCAL (1 x pertemuan) · PDF fileProgram sederhana dengan bahasa PASCAL, Statemen ... kesalahan dengan muncul pesan ... Mempelajari struktur dari statemen

Halaman :

Modul Praktikkum Pemrograman Terstruktur

8

contoh diatas adalah jika statemen yang diulang tunggal, yaitu hanya Write(karak). Cobalah jika awal diisi dengan „1‟ san

akhir diisi dengan „z‟, apa ourputnya. Cobalah jika write(karak) diganti writeln(karak), apakah ada perubahan, bagaiman

penjelasannya. Sering kita temukan bahwa pernyataan yang akan dulang bukan tunggal, tetapi banyak sehingga kita harus

memakai blok pernyataan.

While .. Do ..

Kontrol For .. Do .. kita pakai untuk memproses dengan jumlah ulangan diketahui sebelumnya. Apabila proses yang diulang

tidak kita ketahui berapa putaran harus dilakukan, yaitu diputar selam kondisi tertentu dipenuhi, maka statemen yang kita pakai

adalah While .. Do ..

Syntaxnya :

While <syarat_logika> Do

<pernyataan>;

atau

While <syarat_logika> Do

Begin

Pernyataan1;

Pernyataan2; blok pernyataan

End;

<syarat_logika> adalah suatu relasi yang selama relasi tersebut bernilai benar (TRUE) maka pernyataan/blok pernyataan akan

terus menerus dikerjakan. Pernyataan/blok pernyataan akan berhenti dikerjakan jika <syarat_logika> tidak lagi bernilai benar.

Contoh berikut akan mencetak karakter „*‟ terus menerus pada posisi baris kolom yang acak, setiap kita menekan suatu

sembarang tombol. Proses berulang selam yang dibaca <> #27 (Esc).

Untuk meletakkan pada baris klo yang acak, setiap dipakai fungsi Random(x). Fuction standar Random(x) adalah fungsi untuk

membangkitkan bilangan acak antara nol sampai x.

Selanjutnya satu karakter dibaca dengan Procedure standar ReadKey, dengan syntak :

NamaVarKar := ReadKey;

Pembacaan data dari keyboard dengan ReadKey adalah untuk variabel bertype Char dan bersifat tidak meng-echo-kan

(menampilkan ke layar).

Program Acak_dg_While_Do;

Uses WinCrt;

Const

Escape = #27;

Var

Baca : Char;

Baris, Kolom : Byte;

Begin

Clrscr;

Baca :=' ';

While Baca <> Escape Do

Begin

GotoXY(34,12);Write('Tekan Escape Selesai ...');

Baris := Random(23);

Kolom := Random(80);

GotoXY(Kolom,Baris);Write('*',' Kolom ',Kolom,' Baris ',Baris);

Baca := ReadKey;Clrscr;

End;

End.

#27 adalah konstanta karakter. Dalam PASCAL ada 2 macam cara untuk memperoleh konstanta karakter, yaitu dengan #n atau

Chr(n) dimana n = kode ASCII karakter yang bersangkutan. Misalnya karakter CR (ENTER) mempunyai kode ASCII 13 dapat

ditulis dengan #13 atau Chr(13).

Page 9: MODUL I STRUKTUR PROGRAM PASCAL (1 x pertemuan) · PDF fileProgram sederhana dengan bahasa PASCAL, Statemen ... kesalahan dengan muncul pesan ... Mempelajari struktur dari statemen

Halaman :

Modul Praktikkum Pemrograman Terstruktur

9

Contoh lain :

Repeat .. Until ..

Statemen Repeat .. Until .. kita pakai apabila kita akan mengulang-ulang suatu proses terus menerus sampai kondisi tertentu

dipenuhi.

Syntax :

Repeat

Pernyataan1;

Pernyataan2;

Until <kondisi>;

Pada contoh program diatas dapat kita modifikasi dengan memakai Repeat .. Until. Konstanta boolean keyPressed adalah

konstanta yang bernilai FALSE selama kita tidak menekan sesuatu dan jika kita menekan sesuatu maka KeyPressed akan

bernilai TRUE.

Program Acak_dg_Repeat_Until;

Uses WinCrt;

Var

Baris, Kolom : Byte;

Begin

Clrscr;

Repeat

GotoXY(34,12);Write('Tekan Escape Selesai ...');

Baris := Random(23);

Kolom := Random(80);

GotoXY(Kolom,Baris);Write('*',' Kolom ',Kolom,' Baris ',Baris);

Delay(10);

Until KeyPressed;

End.

Program While;

Uses WinwinCrt ;

Var

i : byte ;

begin

clrscr ;

I : = 0 ;

While I <= 5 Do

begin

writeln(I);

I : = I +1 ;

end ;

readln ;

end .

Page 10: MODUL I STRUKTUR PROGRAM PASCAL (1 x pertemuan) · PDF fileProgram sederhana dengan bahasa PASCAL, Statemen ... kesalahan dengan muncul pesan ... Mempelajari struktur dari statemen

Halaman :

Modul Praktikkum Pemrograman Terstruktur

10

Contoh lain :

Latihan Soal :

Buatlah program pascal untuk membaca biodata mahasiswa yang terdiri dari NIM, NAMA, JURUSAN dan KELAMIN

sebanyak n mahasiswa.

Program Repeat;

Uses WinwinCrt ;

Var

i : byte ;

begin

clrscr ;

I : = 1 ;

Repeat

writeln ( I ) ;

I : = I +1;

Until I >= 5

readln ;

end .

Page 11: MODUL I STRUKTUR PROGRAM PASCAL (1 x pertemuan) · PDF fileProgram sederhana dengan bahasa PASCAL, Statemen ... kesalahan dengan muncul pesan ... Mempelajari struktur dari statemen

Halaman :

Modul Praktikkum Pemrograman Terstruktur

11

MODUL III

PENYELEKSIAN KONDISI

(2x pertemuan)

I. TUJUAN

Mempelajari struktur kondisi dalam PASCAL yaitu Struktur If … Then …, If … Then … Else … dan Case … Of …

II. TEORI SINGKAT

If … Then … :

Statemen If … Then … mempunyai syntax :

If <syarat_logika> Then Statemen

Atau

If <syarat_logika> Then

Begin

Statemen1;

Statemen2; disebut blok statemen

…… ;

End;

<syarat_logika> adalah operasi relasi (seleksi kondisi) yang apabila bernilai TRUE (benar) maka statemen atau blok statemen

setelah Then akan dilaksanakan. Apabila statemen yang berkaitan dengan nnilai TRUE lebih dari satu statemen maka blok

statemen dipergunakan, jika hanya terdiri dari satu statemen maka blok statemen tidak perlu dipergunakan. Blok statemen

ditandai dengan Begin …End;

Contoh : Akan dibaca dari keyboard nama siswa dan nilai angka. Akan ditentukan apakah siswa tersebut lulus atau tidak, siswa

lulus jika nilai angka lebih besar atau sama dengan 60.

Program TentukanLulus;

Uses WinCrt;

Var

NamaSis : String[35];

Nilai : Real;

Ket : String[25];

Begin

ClrScr;

Write('Nama Siswa : ');Readln(NamaSis);

Write('Nilai Angka : ');Readln(Nilai);

Ket := 'Anda Tidak Lulus';

If (Nilai >= 60) Then

Ket := 'Anda Lulus, SELAMAT !';

Writeln;

Writeln('Hasil : ',Ket);

Readln

End.

If … Then …Else … :

Mirip dengan syntax If … Then, tata aturan if then else adalah :

If <syarat_logika> Then Statemen1 Else Statemen2;

Atau

Page 12: MODUL I STRUKTUR PROGRAM PASCAL (1 x pertemuan) · PDF fileProgram sederhana dengan bahasa PASCAL, Statemen ... kesalahan dengan muncul pesan ... Mempelajari struktur dari statemen

Halaman :

Modul Praktikkum Pemrograman Terstruktur

12

If <syarat_logika> Then

Begin

Statemen1;

Statemen2; blok jika syarat True

… ;

End

Else

Begin

Statemen1;

Statemen2; blok jika syarat False

… ;

End;

Jika <syarat_logika> bernilai TRUE maka statemen atau blok statemen seteleh Then akan dikerjakan, jika <syarat_logika>

bernilai FALSE maka statemen atau blok statemen seeleh Else akan dkerjakan.

Contoh : Pada conoth progrgam sebelumnya dapat kita tulis kembali dengan If … then … Else … dan kita kerjakan dengan

blok statemen dan program dapat kita buat berputar dengan memakai deklarasi label.

Program TentukanLulus;

Uses WinCrt;

Label

Mulai;

Var

NamaSis : String[35];

Nilai : Real;

Ket,Pesan : String[35];

Jawab : Char;

Begin

Mulai :

ClrScr;

Write('Nama Siswa : ');Readln(NamaSis);

Write('Nilai Angka : ');Readln(Nilai);

If (Nilai >= 60) Then

Begin

Ket := 'Anda Lulus';

Pesan := ' SELAMAT, PERTAHANKAN TERUS !';

End

Else

Begin

Ket := 'Anda Tidak Lulus';

Pesan := ' TINGKATKAN BELAJARNYA, AWAS !!!!';

End;

Writeln;

Writeln('Hasil : ');

Writeln(Ket,Pesan);

Writeln;

Write('Mau mencoba lagi [Y/T] ? ');Readln(jawab);

If (Jawab = 'Y') or (Jawab = 'y') Then

Goto mulai

End.

Page 13: MODUL I STRUKTUR PROGRAM PASCAL (1 x pertemuan) · PDF fileProgram sederhana dengan bahasa PASCAL, Statemen ... kesalahan dengan muncul pesan ... Mempelajari struktur dari statemen

Halaman :

Modul Praktikkum Pemrograman Terstruktur

13

Statemen Case NamaVar Of :

Statemen Case NamaVar Of dipakai untuk penyeleksian berganda. NamaVar adalah nama variabel yang harus bertype ordinal

seperti Char, byte atau integer.

Padanan dengan If … Then , misalnya kita memiliki varibel Pil yang bertipe Char, dan dihadapi seleksi pilihan :

If Pil = ‘a’ Then Statemen2;

If Pil = ‘b’ Then Statemen2;

Dst

Dapat ditulis dengan statemen Case … Of dengan syntax sbb :

Case Pil Of

‘a’ : Statemen1;

‘b’ : Statemen2;

.… : …;

End;

Program TekanTombol;

Uses WinCrt;

Label

Mulai;

Var

Tombol,

Jawab : Char;

Begin

Mulai:

ClrScr;

Writeln('PROGRAM TENTUKAN TOMBOL');

Writeln('-----------------------');

Write('Tekan Sembarang TOMBOL : ');

Readln(Tombol);

Case Tombol Of

'a'..'z','A'..'Z' : Begin

Writeln('Anda menekan tombol ',Tombol);

Writeln('Tombol ',Tombol,' Termasuk HURUF');

End;

'0'..'9' : Begin

Writeln('Anda menekan tombol ',Tombol);

Writeln('Tombol ',Tombol,' Termasuk ANGKA');

End;

Else

Begin

Writeln('Anda menekan tombol ',Tombol);

Writeln('Tombol ',Tombol,' Bukan HURUF/ANGKA');

End;

End;

Write('Mau mencoba lagi [Y/T] ? ');Readln(jawab);

If (Jawab = 'Y') or (Jawab = 'y') Then

Goto mulai

End.

Contoh Soal :

Buatlah program untuk menentukan jumlah hari dalam suatu bulan tertentu jika dimasukkan dari keyboard angka bulan dan

angka tahun.

PEMECAHAN

Pembahasan :

Jika dimasukkan angka bulan dari keyboard maka angka yang sah masuk adalah 1 .. 12 dan bertipe integer. Tahun yang boleh

masuk dapat terdiri dari dua angka atau empat angka. Jika tahun dua angka berarti tahun < 100 dan jika tahun 4 angka berarti

tahun > 1000. Tahun tidak mungkin dimasukkan 3 angka. Selanjutnya dicek apakah tahun habis dibagi 4, jika habis berarti

tahun kabisat dan jumlah hari untuk bulan februari adalah 29. Selanjutnya cetak hari sesuai bulan.

Page 14: MODUL I STRUKTUR PROGRAM PASCAL (1 x pertemuan) · PDF fileProgram sederhana dengan bahasa PASCAL, Statemen ... kesalahan dengan muncul pesan ... Mempelajari struktur dari statemen

Halaman :

Modul Praktikkum Pemrograman Terstruktur

14

Algoritma :

Baca angka tahun, cek apakah angka tahun < 100 atau > 1000 jika tidak ulangi baca tahun.

Baca angka bulan, cek apakah angka bulan 1 .. 12, jika tidak ulangi baca angka bulan.

* Jika angka bulan 1,3,5,7,8,10,12 jumlah hari 31

* Jika angka bulan 4,6,9,11 jumlah hari 30

* Jika angka bulan 2 jumlah hari 28 (jika bukan kabisat), 29 (jika tahun kabisat)

Cetak jumlah hari

Program

Program TentukanHari;

Uses WinCrt;

Label

Awal, Baca1, Baca2;

Var

TH, BL, JH : Integer;

Lagi : Char;

Begin

Awal:

ClrScr;

GotoXY(20,5);Write('PROGRAM TENTUKAN JUMLAH HARI');

GotoXY(20,6);Write('----------------------------');

Baca1:

GotoXY(20,8);Write('Masukkan Angka Tahun : ');Readln(TH);

If Not( (TH<100) Or (TH>=1000) ) Then

Begin

GotoXY(20,8);Clreol;

Write(#7);Goto Baca1;

End;

Baca2:

GotoXY(20,9);Write('Masukkan Angka Bulan : ');Readln(BL);

If ( (BL<1) Or (BL>12) ) Then

Begin

GotoXY(20,9);Clreol;

Write(#7);Goto Baca2;

End;

Case BL Of

1,3,5,7,8,10,12 : JH := 31;

4,6,9,11 : JH := 30;

2 : Begin

If (Th mod 2 = 0) Then

JH := 29

Else

Jh := 28;

End;

End;

GotoXY(20,12);Write('Jumlah Hari = ',JH);

GotoXY(20,15);Write('Main Lagi [Y/T] ? ');Readln(Lagi);

If (Lagi = 'Y') Or (Lagi = 'y') Then

Goto Awal;

End.

Latihan Soal :

Buatlah program untuk menghitung luas berbagai bangun yang dikontrol prosesnya dengan Case NamaVar Of

Page 15: MODUL I STRUKTUR PROGRAM PASCAL (1 x pertemuan) · PDF fileProgram sederhana dengan bahasa PASCAL, Statemen ... kesalahan dengan muncul pesan ... Mempelajari struktur dari statemen

Halaman :

Modul Praktikkum Pemrograman Terstruktur

15

Output dari Program :

PILIHAN PROSES

-----------------------

1. Luas Segi Empat

2. Luas Segi Tiga

3. Luas Lingkaran

4. Selesai

PILIHAN ANDA [1-4] :

Page 16: MODUL I STRUKTUR PROGRAM PASCAL (1 x pertemuan) · PDF fileProgram sederhana dengan bahasa PASCAL, Statemen ... kesalahan dengan muncul pesan ... Mempelajari struktur dari statemen

Halaman :

Modul Praktikkum Pemrograman Terstruktur

16

MODUL IV

TIPE ARRAY BERDIMENSI SATU

(2 x pertemuan)

I. TUJUAN

Mempelajari tipe terstruktur Array dimensi satu dan dimensi dua.

II. TEORI SINGKAT

Array merupakan tipe data terstruktur yang berguna untuk menyimpan sejumlah data yang bertipe sama, dimana masing-

masing elemen array dapat diakses melalui indek array.

Arrray Dimensi Satu

Adalah array yang hanya memiliki satu tipe indek.

Deklarasi variabel bertipe array dimensi :

Var

NamaArray : Array{tipeIndek] of TypeArray;

NamaArray adalah nama variabel bertipe array dan TypeArray adalah tipenya. TypeArray dapat berupa Integer, real, char,

string atau record. Sedangkan tipeIndek dari array merupakan tipe ordinal seperti char, byte, integer, atau enumerasi.

Contoh deklarasi tipe array :

Type

NanaArray = (senin,selasa,rabu,kamis,jumat,sabtu,minggu);

Var

Hari : DafHari;

Incom : Array [DafHari] of integer;

Masuk : Array [senin .. kamis] of integer;

DafHari adalah NamaType enumerasi yang kita jadikan indeks dari array Incom dan Masuk. Incom dan Masuk adalah array

integer dengan indek enumerasi. Selanjutnya kita dapat mengisi elemen array dengan Incom[senin] atau Masuk[rabu] dan

seterusnya.

Data bertipe string sesungguhnya adalah suatu larik data bertipe char.

Misalnya :

Var

Pesan : string[20];

Variabel Pesan merupakan string. Kita juga bisa memandangnya sebagai larik char. Pesan[1] adalah karakter pertama,

Pesan[2] adalah karakter kedua, dst. Sedangkan Pesan[0] adalah karakter yang kode ASCIInya adalah cacah karakter dari isi

pesan. Dengan demikian kita dapat mengetahui ada berapa cacah karakter isi dari Pesan dengan Ord(Pesan[0]), disamping

dapat juga dipakai fungsi Length(Pesan).

Contoh berikut adalah membaca variabel pesan yang bertipe string yang secara otomatis dapat dipandang sebagai latik karakter

dengan Ord(Pesan[0]) dapat diperoleh cacah karakter yang disimpan dalam CcHuruf.

Page 17: MODUL I STRUKTUR PROGRAM PASCAL (1 x pertemuan) · PDF fileProgram sederhana dengan bahasa PASCAL, Statemen ... kesalahan dengan muncul pesan ... Mempelajari struktur dari statemen

Halaman :

Modul Praktikkum Pemrograman Terstruktur

17

Contoh Program 1 :

Uses WinCrt;

Const

Vokal = ['A','I','U','E','O','a','i','u','e','o'];

Var

Huruf : char;

Pesan : string;

i,CcHuruf,CcVokal : integer;

Begin

clrscr;

Write('Ketikkan Kalimat : ');

Readln(Pesan);

CcHuruf := Ord(Pesan[0]);

CcVokal := 0;

For i := 1 to CcHuruf Do

Begin

Huruf := Pesan[i];

If Huruf in Vokal then

CcVokal := CcVokal + 1;

End;

Writeln('DIBALIK');

For i := CcHuruf downto 1 do

write(Pesan[i]);

Writeln;

Write('VOKAL : ',CcVokal,' BUAH');

Readln

End.

Contoh Program 2 :

program Array_max_min;

var

nilai:array[1..5] of INTEGER;

maks,mins,total,i,data : integer;

rata : real;

begin

write('Jumlah Data = ');readln(data);

write('Data ke-1 = ');readln(nilai[1]);

maks :=nilai[1];

mins :=nilai[1];

total :=nilai[1];

for i := 2 to data do

begin

write('Data ke-',i,' = ');readln(nilai[i]);

if nilai[i]>maks then

maks:=nilai[i];

if nilai[i]<mins then

mins:=nilai[i];

total:=total+nilai[i];

end;

rata:=total/data;

writeln('Nilai terbesar adalah = ',maks);

writeln('Nilai terkecil adalah = ',mins);

writeln('Nilai total adalah = ',total);

writeln('Nilai rata-rata adalah = ',rata:0:2);

readln;

end.

Page 18: MODUL I STRUKTUR PROGRAM PASCAL (1 x pertemuan) · PDF fileProgram sederhana dengan bahasa PASCAL, Statemen ... kesalahan dengan muncul pesan ... Mempelajari struktur dari statemen

Halaman :

Modul Praktikkum Pemrograman Terstruktur

18

Latihan Soal

Buatlah program untuk mengurutkan suatu data angka yang dimasukkan dari keyboard, secara urut menaik dan menurun.

Gunakan variabel bertipe array

Page 19: MODUL I STRUKTUR PROGRAM PASCAL (1 x pertemuan) · PDF fileProgram sederhana dengan bahasa PASCAL, Statemen ... kesalahan dengan muncul pesan ... Mempelajari struktur dari statemen

Halaman :

Modul Praktikkum Pemrograman Terstruktur

19

Arrray Dimensi Dua

Adalah array yang memiliki dua tipe indek.

Deklarasi variabel bertipe array dimensi dua :

Var

NamaArray : Array{tipeIndek1,tipeIndek2] of TypeArray;

Contoh deklarasi :

Contoh Prog02_1 :

Program berikut contoh penggunaan array dimensi dua untuk menampung 4 jumlah mahasiswa pada 3 angkatan, betulkan jika

masih terdapat kesalahan :

Prog Tabel_Mahasiswa;

Use WinCrt;

Conts

Jum_Tahun= 3;

Jum_Mhs = 4;

Tipe

TabelMhs = Arrai[1..Jum_Mhs,1..Jum_Tahun] Of Integer;

Var

DafMhs : TabelMhs;

Mhs,Tahun : Integer;

Begin

ClsRcr;

{--Memasukkan data--}

For Mhs = 1 To Jum_Mhs Do

Begin

Writeln('Mahasiswa ',Mhs);

For tahun = 1 To Jum_Tahun Do

Begin

Write(' Tahun ',Tahun,' = ');

Readln(DafMhs[Mhs,Tahun]);

End

End;

{--Menampilkan Data--}

Writeln('Daftar Jumlah Mahasiswa El Rahma”);

Writeln('Mahasiswa Tahun 1 Tahun 2 Tahun 3');

For Mhs = 1 To Jum_Mhs Do

Begin

Write(Mhs:6);

For Tahun := 1 To Jum_Tahun Do

Write(DafMhs[Mhs,Tahun]:14)

Write;

End;

Readln

End.

Penggunaan secara umum untuk matrik dua dimensi adalah untuk memasukkan data matrik. Berikut penggalan program untuk

memasukkan data matrik dengan ordo 2 x 2

Prog Matrik2Dimensi;

Use WinCrt;

var

Matrik : Array[1..10,1..10] Of integer;

Baris,Kolom : Integer;

Begin

ClsRcr;

{-Memasukkan data matrik-}

For Baris := 1 to 2 Do

Begin

For kolom := 1 to 2 Do

Begin

Write('Baris ',Baris,' Kolom ',Kolom,' : ');

Readln(Matrik(Baris,Kolom));

Page 20: MODUL I STRUKTUR PROGRAM PASCAL (1 x pertemuan) · PDF fileProgram sederhana dengan bahasa PASCAL, Statemen ... kesalahan dengan muncul pesan ... Mempelajari struktur dari statemen

Halaman :

Modul Praktikkum Pemrograman Terstruktur

20

End;

End

{--Menampilkan Hasil--}

For Baris := 1 to 2 Do

Begin

For kolom := 1 to 2 Do

Begin

Write(Matrik(Baris,Kolom):5);

End;

End;

Readln

End.

Latihan Soal :

Buatlah progam untuk menghitung penjumlahan dua buah matrik. Syarat penjumlahan dua buah matrik adalah kedua matrik

tersebut mempunyai jumlah baris dan kolom yang sama.

Misalnya :

1 2 2 2 3 4

+ =

2 3 3 2 5 5

Page 21: MODUL I STRUKTUR PROGRAM PASCAL (1 x pertemuan) · PDF fileProgram sederhana dengan bahasa PASCAL, Statemen ... kesalahan dengan muncul pesan ... Mempelajari struktur dari statemen

Halaman :

Modul Praktikkum Pemrograman Terstruktur

21

MODUL V

PROCEDURE DAN FUNGSI

(2x pertemuan)

I. Tujuan Mempelajari pemecahan program ke dalam modul-modul program dalam bentuk prosedur dan fungsi

II. Teori Singkat

a. PROCEDURE

Procedure merupakan sub program yang berdiri sendiri yang dapat dipanggil dari program utama.

Deklarasi prosedur : PROCEDURE <Nama_prosedur> (<Daftar_parameter_formal>);

<Bagian_deklarasi>

Begin

<Bagian _pernyataan>

End;

Dalam prosedur atau fungsi dikenal adanya parameter. Parameter adalah suatu nilai atau variabel yang akan dilewatkan

dalam prosedur atau fungsi. Pengiriman paramter dalam prosedur atau fungsi dibedakan menjadi 2 yaitu parameter nilai

dan parameter referensi. Pelewatan parameter secara nilai dimaksudkan jika parameter yang dileatkan dimasudkan tidak

untuk diubah oleh prosedur atau fungsi sekalipun perubahan telah terjadi di dalam prosedur atau fungsi tersebut.

Sedangkan parameter referensi dimasudkan unutk mengubah nilai atau variabel sekeluarnya dari prosedur atau fungsi.

Perbedaan cara pengiriman parameter didalam prosedur atau fungsi terletak pada deklarasi prosedur atau fungsinya.

Contoh deklarasi prosedur dengan pengiriman parameter secara refensi :

Procedure Tukar(var x,y : real);

Untuk mengubah sifat pengiriman parameter secara nilai, tinggal diubah deklarasi prosedur dengan menghilangkan var

dalam kepala prosedur sehingga menjadi :

Procedure Tukar(x,y : real);

Berikut contoh program pemakaian untuk menukarkan dua nilai memakai prosedure :

Contoh :

PROG3_01.PAS contoh program menukarkan data dengan prosedur

program tukar_data;

var

a, b : real; {deklarasi variabel global}

procedure info;

begin

writeln('****************************');

writeln('** Program Tukar Data **');

writeln('** Dengan Procedure **');

writeln('** Oleh : **');

writeln('** Ki Joko Bodho **');

writeln('****************************');

end;

{Prosedur penukaran data}

procedure tukar(var x,y : real);

var

tamp : real;

begin

tamp := x;

x := y;

y := tamp;

end;

{Program utama}

Begin

Page 22: MODUL I STRUKTUR PROGRAM PASCAL (1 x pertemuan) · PDF fileProgram sederhana dengan bahasa PASCAL, Statemen ... kesalahan dengan muncul pesan ... Mempelajari struktur dari statemen

Halaman :

Modul Praktikkum Pemrograman Terstruktur

22

info;

a := 12.33;

b := 67.98;

writeln('Sebelum memanggil prosedur Tukar');

writeln('a = ',a:7:2,' b = ',b:7:2);

tukar(a,b);

writeln('Setelah memanggil prosedur Tukar');

writeln('a = ',a:7:2,' b = ',b:7:2);

readln;

End.

Contoh diatas pengiriman parameter dilakukan secara referensi, cobalah program diatas diubah pengiriman parameter

dalam prosedur secara nilai!

b. FUNCTION

Fungsi memiliki struktur yang hampir sama dengan procedure, bedanya fungsi memiliki tipe hasil sedangkan procedure

tidak.

Deklarasi fungsi : FUNCTION <Nama_fungsi> (<Daftar_parameter>): tipe;

<Bagian_deklarasi>

Begin

<Bagian _pernyataan>

End;

Contoh :

PROG2_02.PAS contoh program perkalian dengan fungsi

program kali_data;

var

a, b : integer; {deklarasi variabel global}

procedure info;

begin

writeln('****************************');

writeln('** Program Tukar Data **');

writeln('** Dengan Procedure **');

writeln('** Oleh : **');

writeln('** Ki Joko Bodho **');

writeln('****************************');

end;

{Prosedur peerkalian data}

function kali(x,y : integer):integer;

begin

kali := x * y;

end;

{Program utama}

Begin

info;

a := 12;

b := 67;

writeln(a,' x ',b,' = ',kali(a,b));

writeln('12 x 13 = ',kali(12,13));

readln;

End.

Page 23: MODUL I STRUKTUR PROGRAM PASCAL (1 x pertemuan) · PDF fileProgram sederhana dengan bahasa PASCAL, Statemen ... kesalahan dengan muncul pesan ... Mempelajari struktur dari statemen

Halaman :

Modul Praktikkum Pemrograman Terstruktur

23

c. LATIHAN SOAL :

(Program yang anda buat harus dipecah dalam prosedur dan fungsi!!!!!!)

1. Buatlah program dengan menggunakan prosedur untuk membalik suatu angka

Misalnya :

Masukkan angka : 12309

Hasil pembalikan : 90321

2 Buatlah program dengan menggunakan fungsi untuk mencari jumlah dan rata-rata dari sejumlah data yang dimasukkan.

Page 24: MODUL I STRUKTUR PROGRAM PASCAL (1 x pertemuan) · PDF fileProgram sederhana dengan bahasa PASCAL, Statemen ... kesalahan dengan muncul pesan ... Mempelajari struktur dari statemen

Halaman :

Modul Praktikkum Pemrograman Terstruktur

24

MODUL VI

REKURSI

(1 x pertemuan)

I. Tujuan

Mempelajari proses rekursi dalampenggunaan prosedur dan fungsi

II. Teori Singkat

Rekursi adalah suatu prosedur atau fungsi yang dapat memanggil dirinya sendiri. Contoh dari rekursi adalah proses

menghitung faktorial dan proses menghitung bilangan fibonacci.

Program berikut menunjukkan contoh penggunaan rekursi yang identik dengan suatu perulangan.

Program rekursi;

var

i : integer;

procedure ulang;

begin

writeln(i,'. Tulisan ini akan tercetak 10 kali');

if i < 10 then

begin

i := i + 1;

ulang;

end;

end;

begin

i := 1;

ulang;

readln

end.

Perhatikan hasil dari eksekusi program diatas. Terlihat bahwa di dalam prosedur ulang terdapat baris perintah yang berfungsi

untuk memanggil dirinya sendiri sebelum i = 10.

Contoh program berikut merupakan contoh rekursi untuk perhitungan suatu nilai faktorial.

Var

i : byte;

function Faktorial(m:byte):longint;

begin

if m = 0 then

faktorial := 1

else

faktorial := m * Faktorial(m - 1)

end;

begin

for i := 1 to 8 do

writeln(i:2,'! = ',Faktorial(i));

readln

end.

Perhatikan hasil tampilan dari program diatas, modifikasi program dengan bilangan yang akan difaktorialkan diinputkan dari

keyboard, sehingga menghasilkan tampilan seperti berikut :

Masukkan anngka : 5

Hasi faktorial :

3 x 4 x 3 x 2 x 1 = 120

Page 25: MODUL I STRUKTUR PROGRAM PASCAL (1 x pertemuan) · PDF fileProgram sederhana dengan bahasa PASCAL, Statemen ... kesalahan dengan muncul pesan ... Mempelajari struktur dari statemen

Halaman :

Modul Praktikkum Pemrograman Terstruktur

25

Contoh program berikut merupakan contoh rekursi untuk menghitungan bilangan fibonnaci :

Var

suku, nilai : integer;

function fibo(n:integer):longint;

begin

if (n=1) or (n=2) then

fibo:=1

else

fibo := fibo(n-1)+fibo(n-2);

end;

begin

for suku := 1 to 10 do

writeln(suku:3,fibo(suku):8);

readln

end.

Soal latihan :

Ubahlah ketiga contoh program diatas tanpa menggunakan rekursi, tetapi menghasilkan output yang sama.

Page 26: MODUL I STRUKTUR PROGRAM PASCAL (1 x pertemuan) · PDF fileProgram sederhana dengan bahasa PASCAL, Statemen ... kesalahan dengan muncul pesan ... Mempelajari struktur dari statemen

Halaman :

Modul Praktikkum Pemrograman Terstruktur

26

MODUL VII

RECORD

(1 x pertemuan)

I. Tujuan

Mempelajari penggunaan tipe data terstruktur record pada pascal

II. Teori Singkat

Record merupakan tipe berstruktur yang memiliki beberapa komponen atau elemen dengan masing-masing elemen boleh

memiliki tipe data yang berlainan.

Bentuk deklarasi variabel record :

RECORD

Daftar_field_1 : tipe_1;

Daftar_field_2 : tipe_2;

Daftar_field_n : tipe_n;

END;

Masing-masing elemen dari record disebut dengan field. Masing-masign field dapat berupa tipe apa saja termasuk array.

Contoh deklarasi :

Type

RecBarang = RECORD

Nama : string;

Banayk : integer;

Harga : LongInt;

End;

Var

Barang : RecBarang;

Cara Mengakses field

Bentuk :

Variabel.field

Contoh : Barang.Nama;

Berarti field nama dari variabel record benama barang.

Contoh lain : Barang.Nama := ‘Sabun Mandi’;

Field Nama pada record Barang diisi string „Sabun Mandi‟

Contoh program :

Program contoh_record;

Type

Recbarang = RECORD

Nama_B : string[8];

Jumlah : Integer;

Harga_b : LongInt;

End;

Var

Barang : Recbarang;

Begin

{Memasukan data ke dalam record barang}

Barang.Nama_b := 'Baju koko';

Barang.Jumlah := 10;

Barang.Harga_b := 200000;

{Menampilkan isi field record}

Writeln('Nama Barang : ',Barang.Nama_b);

Writeln('Jumlah Barang : ',Barang.Jumlah);

Writeln('Harga Barang : ',Barang.Harga_b);

End.

Page 27: MODUL I STRUKTUR PROGRAM PASCAL (1 x pertemuan) · PDF fileProgram sederhana dengan bahasa PASCAL, Statemen ... kesalahan dengan muncul pesan ... Mempelajari struktur dari statemen

Halaman :

Modul Praktikkum Pemrograman Terstruktur

27

Record di dalam record.

Mungkin saja sebuah record berisikan record saja. Sebagai contoh :

Type

RecTgl = RECORD

Tgl,

Bln,

Thn : Integer;

End;

RecPegawai = RECORD

Nmr : Integer;

Nama : String[35];

TgLahir : RecTgl;

Gaji : LongInt;

End;

Var

DataPeg : RecPegawai;

Begin

{Mengisikan nilai terhadap field-field}

DataPeg.Nmr := 123;

DataPeg.Nama := 'Joko Bodho';

DataPeg.TgLahir.Tgl := 13;

DataPeg.TgLahir.Bln := 10;

DataPeg.TgLahir.Thn := 1975;

{menampilkan isi field}

Writeln('Nomor : ',DataPeg.Nmr);

Writeln('Nama : ',DataPeg.Nama);

Writeln('Tanggal Lahir : ',DataPeg.TgLahir.Tgl,

'/',DataPeg.TgLahir.Bln,'/',DataPeg.TgLahir.Thn);

readln;

End.

Pernyataan WITH

Untuk menyederhanakan pernyataan seperti DataPeg.TgLahir.Tgl

Pascal menyediakan pernyataan WITH, dengan bentuk :

WITH nama_record Do

<pernyataan>

Pada bentuk ini field-field yang terletak pada pernyataan dapat disebutkan tanpa menyertakan lagi nama recordnyadan tanda

titik. Untuk jelasnya pada contoh program pertama akan dimodifikasi dengan pernyataan WITH :

Page 28: MODUL I STRUKTUR PROGRAM PASCAL (1 x pertemuan) · PDF fileProgram sederhana dengan bahasa PASCAL, Statemen ... kesalahan dengan muncul pesan ... Mempelajari struktur dari statemen

Halaman :

Modul Praktikkum Pemrograman Terstruktur

28

Latihan Soal :

Buatlah progam untuk memasukkan sejumlah data nilai mahasiswa dalam bentuk record. Data yang dimasukkan adalah Nim,

Nama, Nilai UTS, Nilai UAS, Nilai Tugas. Setelah semua data dimasukkan, semua data ditampilkan dalam bentuk tabel yang

diurutkan secara descending berdasarkan nilai rata-rata tiap mahasiswa, kemudian konversi nilai rata-rata ke dalam nilai angka

dengan aturan.

Rata-rata >= 80 nilai huruf A keterangan Lulus

Rata-rata >= 70 nilai huruf B keterangan Lulus

Rata-rata >= 60 nilai huruf C keterangan Lulus

Rata-rata >= 50 nilai huruf D keterangan Tidak Lulus

Rata-rata < 50 nilai huruf E keterangan Tidak Lulus

Contoh output program :

Jumlah Data : 2

Data ke-1

N I M : 11010001

N a m a : Jono

Nilai UTS : 50

Nilai UAS : 50

Nilai TUGAS : 50

Data ke-1

N I M : 11010002

N a m a : Hari

Nilai UTS : 90

Nilai UAS : 90

Nilai TUGAS : 90

H A S I L P R O S E S

No NIM Nama Rata Huruf Keterangan

1 11010002 Hari 90 A Lulus

2 11010001 Jono 50 D Tidak Lulus

Program contoh_record;

Type

Recbarang = RECORD

Nama_B : string[10];

Jumlah : Integer;

Harga_b : LongInt;

End;

Var

Barang : Recbarang;

Begin

{Memasukan data ke dalam record barang}

Barang.Nama_b := 'Baju koko';

Barang.Jumlah := 10;

Barang.Harga_b := 200000;

{Menampilkan isi field record}

WITH Barang Do

begin

Writeln('Nama Barang : ',Nama_b);

Writeln('Jumlah Barang : ',Jumlah);

Writeln('Harga Barang : ',Harga_b);

End;

readln;

End.

Page 29: MODUL I STRUKTUR PROGRAM PASCAL (1 x pertemuan) · PDF fileProgram sederhana dengan bahasa PASCAL, Statemen ... kesalahan dengan muncul pesan ... Mempelajari struktur dari statemen

Halaman :

Modul Praktikkum Pemrograman Terstruktur

29

MODUL VIII

SET/HIMPUNAN

(1 x pertemuan)

III. Tujuan

Mempelajari penggunaan tipe data terstruktur himpunan pada pascal

IV. Teori Singkat

Himpunan/set merupakan tipe berstruktur yang memiliki kumpulan obyek yg mempunyai tipe data yg sama dengan urutan

keanggotaannya tidak diperhatikan. Tiap obyek di dalam set disebut sebagai anggota (member) atau elemen dari set

Bentuk deklarasi variabel himpunan :

Type namatipe = set of tipedata;

Atau:

Var namavar : set of tipedata;

Tipe data adalah tipe data dr anggota-anggota himpunan

Tipe data tidak boleh terstruktur maupun real, tetapi harus ordinal dengan jumlah kemungkinan nilai tidak lebih dari 256

macam. Tipe data yg diperbolehkan: skalar, subrange dari integer, char, subrange dari char, boolean

Nilai ordinal tipe dasar harus berada antara 0..255.

Contoh program :

uses wincrt;

type angka=set of 1..90;

h=(sen,sel,rab,kms,jum,sab,ming);

hari=set of h;

var angka1, angka2: angka;

hariku: hari;

h1:h;

i,x:byte;

begin

angka1:=[ ];

angka2:=[ ];

for i:=1 to 4 do begin

write('Masukkan anggota angka1: ');readln(x);

angka1:=angka1+[x];

end;

write('Masukkan bilangan (1-90): ');readln(x);

if x in angka1 then writeln('Angka tersebut ada di set angka1')

else writeln('Angka tersebut tidak ada di set angka1');

writeln;

for i:=1 to 4 do begin

write('Masukkan anggota angka2: ');readln(x);

angka2:=angka2+[x];

end;

if angka1=angka2 then writeln('Himpunan angka1 dan angka2 sama')

else if angka1>=angka2 then writeln('Himpunan angka2 merupakan subset dari angka1')

else if angka1<=angka2 then writeln('Himpunan angka1 merupakan subset dari angka2')

else writeln('Himpunan angka1 dan angka2 tidak sama');

writeln;

write('Masukkan angka (1-90): ');readln(x);

if x in (angka1+angka2) then writeln(x,' anggota union angka1 dan angka2');

if x in (angka1*angka2) then writeln(x,' anggota irisan angka1 dan angka2');

if x in (angka1-angka2) then writeln(x,' anggota beda angka1 dan angka2');

writeln;

hariku:=[sen, sel, rab];

h1:=sel;

if h1 in hariku then writeln('h1 anggota dari hariku');

end.

Page 30: MODUL I STRUKTUR PROGRAM PASCAL (1 x pertemuan) · PDF fileProgram sederhana dengan bahasa PASCAL, Statemen ... kesalahan dengan muncul pesan ... Mempelajari struktur dari statemen

Halaman :

Modul Praktikkum Pemrograman Terstruktur

30

Latihan soal :

Buatlah program untuk menghitung jumlah huruf vokal dan jumlah angka yang ada pada suatu kalimat yg dimasukkan oleh

user.

Page 31: MODUL I STRUKTUR PROGRAM PASCAL (1 x pertemuan) · PDF fileProgram sederhana dengan bahasa PASCAL, Statemen ... kesalahan dengan muncul pesan ... Mempelajari struktur dari statemen

Halaman :

Modul Praktikkum Pemrograman Terstruktur

31

Modul IX

FILE

(1 x Pertemuan)

I. Tujuan

Mempelajari penggunaan tipe data terstruktur file pada pascal

II. Teori Singkat

Himpunan/set merupakan tipe berstruktur yang berfungsi agar program, data, atau apa pun menjadi tidak hilang ketika

komputer dimatikan dan dapat dibuka kembali atau dilihat lagi isinya.

Bentuk deklarasi variabel file :

Var varfile: text;

Varfile adalah nama variabel bertipe file.

Contoh program :

uses wincrt;

type tmhs = record

nama:string[20];

nim:integer;

end;

var f:text;

mhs1,mhs2:tmhs;

baris:string;

begin

assign(f,'mhs.txt');

rewrite(f);

mhs1.nama:='Yudoyono';

mhs1.nim:=6666;

writeln(f,'Data mahasiswa 1:');

writeln(f,'Nama:',mhs1.nama);

writeln(f,'Nim:',mhs1.nim);

reset(f);

writeln('Data yang sudah diinputkan ke file:');

while not eof(f) do begin

readln(f,baris);

writeln(baris);

end;

writeln;

readln;

append(f);

writeln('Data mahasiswa ke-2');

write('Nama:');

readln(mhs2.nama);

write('NIM:');

readln(mhs2.nim);

writeln(f,'Data mahasiswa 2:');

writeln(f,'Nama:',mhs2.nama);

writeln(f,'Nim:',mhs2.nim);

reset(f);

readln;

writeln('Isi file setelah ditambah:');

while not eof(f) do begin

readln(f,baris);

writeln(baris);

end;

close(f);

end.

Page 32: MODUL I STRUKTUR PROGRAM PASCAL (1 x pertemuan) · PDF fileProgram sederhana dengan bahasa PASCAL, Statemen ... kesalahan dengan muncul pesan ... Mempelajari struktur dari statemen

Halaman :

Modul Praktikkum Pemrograman Terstruktur

32

Latihan soal :

1. Buatlah program utk menghitung jumlah baris dalam suatu file yg baru saja ditulis.

Input: nama file, isi file

Output: jml baris

2. Buatlah program utk menghitung jumlah huruf vokal dalam suatu file yg sudah ada. Pd file, tdk boleh terjadi pergantian

baris.

Input: nama file

Output: jumlah huruf vokal

Subrutin yg dibuat:

1. mengecek keberadaan file

2. menghitung jml huruf