MODUL PRAKTIKUM
PEMROGRAMAN DASAR DIPLOMA-III MANAJEMEN INFORMATIKA
Erma Susanti, S.Kom, M.Cs
PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI INSTITUT SAINS & TEKNOLOGI AKPRIND 2015
DAFTAR ISI
DAFTAR ISI .................................................................................................................. 2 MODUL 1. DASAR-DASAR ALGORITMA & PROGRAM...................................... 5 A. TUJUAN KHUSUS ........................................................................................... 5 B. ALAT DAN BAHAN ........................................................................................ 5 C. DASAR TEORI DAN PRAKTEK .................................................................... 5 1. DASAR ALGORITMA (FLOWCHART) ..................................................... 5 2. NOTASI FLOWCHART ................................................................................ 6 3. PENGENALAN PEMROGRAMAN PASCAL ............................................. 6 4. MENGAPA MENGGUNAKAN PASCAL ................................................... 7 5. STRUKTUR PROGRAM ............................................................................... 7 6. MENJALANKAN PROGRAM...................................................................... 8 D. LATIHAN .......................................................................................................... 8 MODUL 2. VARIABEL DAN KONSTANTA............................................................. 9 A. TUJUAN KHUSUS ........................................................................................... 9 B. DASAR TEORI.................................................................................................. 9 1. VARIABEL .................................................................................................... 9 2. KONSTANTA .............................................................................................. 10 3. TIPE DATA SEDERHANA ......................................................................... 11 4. OPERATOR ................................................................................................. 12 MODUL 3. INPUT DAN OUTPUT ............................................................................ 15 A. TUJUAN KHUSUS ......................................................................................... 15 Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
2
B. DASAR TEORI................................................................................................ 15 1. WRITE DAN WRITELN ............................................................................. 15 2. READ DAN READLN ................................................................................. 16 C. PROGRAM PERTAMA .................................................................................. 17 D. LATIHAN ........................................................................................................ 18 E. TUGAS ............................................................................................................. 18 MODUL 4. PERCABANGAN (PENYELEKSIAN KONDISI) ................................. 19 A. TUJUAN KHUSUS ......................................................................................... 19 B. DASAR TEORI................................................................................................ 19 1. PERNYATAAN IF ....................................................................................... 19 2. PERNYATAAN IF..ELSE ........................................................................... 19 3. PERNYATAAN IF..ELSE IF… ................................................................... 19 4. PERNYATAAN CASE ................................................................................ 20 C. LATIHAN ........................................................................................................ 20 D. tugas ................................................................................................................. 21 MODUL 5. PERULANGAN (LOOPING).................................................................. 22 A. TUJUAN KHUSUS ......................................................................................... 22 B. DASAR TEORI................................................................................................ 22 1. PERNYATAAN FOR-DO............................................................................ 22 2. PERNYATAAN FOR BERSARANG ......................................................... 23 3. PENYATAAN WHILE ................................................................................ 23 4. PERNYATAAN REPEAT-UNTIL .............................................................. 23 5. PERNYATAAN BREAK & CONTINUE ................................................... 24 Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
3
MODUL 6. PROSEDUR & FUNGSI ......................................................................... 26 A. TUJUAN KHUSUS ......................................................................................... 26 B. DASAR TEORI................................................................................................ 26 1. PROSEDUR .................................................................................................. 26 2. FUNGSI ........................................................................................................ 29 C. LATIHAN ........................................................................................................ 31 MODUL 7. ARRAY .................................................................................................... 32 A. TUJUAN KHUSUS ......................................................................................... 32 B. DASAR TEORI................................................................................................ 32 1. ARRAY DIMENSI SATU ........................................................................... 32 2. ARRAY MULTI DIMENSI ......................................................................... 34 3. OPERASI PADA ARRAY ........................................................................... 35 MODUL 8. RECORD .................................................................................................. 40 A. TUJUAN KHUSUS ......................................................................................... 40 B. DASAR TEORI................................................................................................ 40 1. APAKAH RECORD ..................................................................................... 40 2. PEMAKAIAN RECORD ............................................................................. 42 3. PERBEDAAN ARRAY DAN RECORD ..................................................... 45 C. LATIHAN ........................................................................................................ 45 DAFTAR PUSTAKA .................................................................................................. 47
Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
4
MODUL 1. DASAR-DASAR ALGORITMA & PROGRAM
A. TUJUAN KHUSUS Mahasiswa memahami dasar algoritma dan penulisan program. B. ALAT DAN BAHAN •
Tools untuk menggambar diagram alir (flowchart), dapat menggunakan Ms. Word, Visio, dll.
•
Editor PASCAL, dapat menggunakan salah satu teks editor berikut: Turbo Pascal, TPW, Free Pascal, Geany, dll.
C. DASAR TEORI DAN PRAKTEK 1. DASAR ALGORITMA (FLOWCHART) Algoritma adalah urutan langkah-langkah untuk memecahkan suatu masalah. Beberapa definisi algoritma: Algoritma menurut Anany Levitin adalah deretan instruksi yang jelas untuk memecahkan masalah, yaitu untuk memperoleh keluaran yang diinginkan dari suatu masukan dalam jumlah waktu yang terbatas. Algoritma menurut Thomas H. Cormen adalah prosedur komputasi yang terdefinisi dengan baik yang menggunakan beberapa nilai sebagai masukan dan menghasilkan beberapa nilai sebagai keluaran. Jadi, algoritma adalah deretan langkah komputasi yang mentransformasikan masukan menjadi keluaran. Algoritma dapat dituliskan dalam bentuk notasi algoritmik menggunakan langkahlangkah algoritma dengan untaian kalimat deskriptif, menggunakan diagram alir (flowchart) dan menggunakan pseudocode (mirip dengan notasi di dalam bahasa pemrograman). Pada praktikum ini hanya akan dibahas penggambaran algoritma menggunakan flowchart.
Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
5
2. NOTASI FLOWCHART Flowchart merupakan bagan yang menggambarkan urutan instruksi untuk proses dengan komputer dan hubungan antara suatu proses dengan proses lainnya dengan menggunakan simbol. Flowchart sendiri tidak digunakan untuk menggambarkan urutan langkah untuk memecahkan masalah, tetapi hanya untuk menggambarkan prosedur dalam sistem yang dibentuk. Berikut contoh notasi dasar flowchart: Notasi
Kegunaan Start (Awal mulai program) dan Terminate (Akhir program) Input (Masukan) Proses Decision (Keputusan/Kondisi) Connector on-page (Penghubung di halaman yang berbeda) Connector off-page (Penghubung di halaman yang sama)
3. PENGENALAN PEMROGRAMAN PASCAL Pascal adalah bahasa pemrograman procedural yang didesain pada tahun 1968 dan dipublikasikan pada tahun 1970 oleh Niklaus Wirth. Nama Pascal diambil dari nama seorang ahli matematika dan filosopher dari Perancis, Blaise Pascal. Pascal dapat dijalankan pada berbagai platform seperti Windows, Mac OS, dan berbagai versi UNIX/Linux. Pacal awalnya dikembangkan untuk mengajar pemrograman sebagai suatu disiplin ilmu yang sistematis dan untuk mengembangkan program yang reliable dan efisien. Pascal menawarkan berbagai tipe data dan pemrograman yang terstruktur. Pascal menjadi popular di lingkungan akademik dan pengarajaran karena berbagai alasan : Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
6
•
Mudah dipelajari
•
Bahasa programnya terstruktur
•
Prosedur transparan, programnya efisien dan reliable
•
Dapat di-compile pada berbagai platform computer.
4. MENGAPA MENGGUNAKAN PASCAL Pascal menyediakan lingkungan pemrograman untuk mempelajari program sebagai sebuah disiplin ilmu yang sistematis berdasarkan pada konsep fundamental. Pascal memungkinkan programmer untuk mendefinisikan tipe struktur data yang kompleks dan membangun struktur data yang dinamis dan rekursif, seperti lists, trees dan graph. Pascal menawarkan fitur seperti record, enumerasi, subrange, alokasi variable yang dinamis dengan pointer dan set. Pascal memungkinkan definisi prosedur nested untuk berbagai level kedalaman. Contoh implementasi dari Pascal antara lain Skype, Total Commander, TeX, Macromedia Captivate, Apple Lisa, berbagai games di PC, Embedded System, dll. 5. STRUKTUR PROGRAM Struktur program Pascal paling sederhana dapat terdiri dari blok program utama yang dimulai dengan (begin) dan diakhiri dengan (end.). Komentar merupakan bagian dari program yang tidak akan ditampilkan di layar saat program dijalankan. Penulisan komentar diawali dengan ( { ) kemudian diisi blok komentar dan diakhiri dengan ( } ). begin {komentar: bagian ini adalah program utama} end.
Sedangkan struktur program pascal secara umum terdiri dari bagian header program-bagian deklarasi-blok program utama. Berikut blok struktur program Pascal: program {nama program} uses {pemanggilan library} const {deklarasi konstanta} Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
7
var {deklarasi variabel} function {deklarasi fungsi} begin .. end; procedure {deklarasi prosedur} begin .. end; begin {blok program utama} .. end. {akhir program}
6. MENJALANKAN PROGRAM Untuk menjalankan program maka terlebih dahulu kita harus meng-COMPILE program. Setelah proses kompilasi berhasil, kita baru dapat menjalankan program dengan melakukan proses RUN program. Jika pada saat compile program masih terdapat kesalahan (error) maka kita dapat memperbaiki program tersebut. D. LATIHAN 1. Tulislah algoritma untuk mencari luas segitiga dengan masukan dari pengguna adalah alas dan tinggi. Luas segitiga dapat dihitung dengan rumus L=1/2.a.t dengan a : alas segitiga dan t : tinggi segitiga. 2. Tulis algoritma untuk meminta masukan dua buah bilangan dari pengguna, kemudian tampilkan bilangan terbesar di antara kedua bilangan tersebut.
Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
8
MODUL 2. VARIABEL DAN KONSTANTA
A. TUJUAN KHUSUS Mahasiswa mengetahui tentang variabel dan kostanta dalam program pascal. B. DASAR TEORI 1. VARIABEL Variabel adalah suatu lokasi di memori yang disiapkan oleh programmer dan diberi nama yang khas untuk menampung suatu nilai dan atau mengambil kembali nilai tersebut. Bentuk umum: var
NamaVariabel: TipeData;
Contoh: var
nilai1, nilai2, nilai3 : byte; Nama : string[30]; JumlahData : integer;
Variabel adalah nama yang diberikan untuk penyimpanan pada program yang dapat dimanipulasi atau diubah-ubah. Setiap variabel dalam Pascal mempunya tipe yang spesifik, seperti menentukan ukuran dan layout dari variabel memori, jangkauan nilai yang dapat disimpan pada memori, dan sekumpulan operasi yang dapat diaplikasikan pada variabel. Penamaan variabel dapat menggunakan huruf, digit, dan karakter underscore. Variabel harus diawali dengan huruf atau underscore. Pascal tidak case-sensitive, sehingga huruf besar dan kecil mengandung arti yang sama. Variabel Dasar pada Pascal Tipe
Deskripsi
Character
Secara umum merupakan octet single (1 byte)
Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
9
Integer
Bilangan bulat
Real
Floating point, bilangan pecahan
Boolean
Bernilai benar atau salah
Enumerated
Didefinisikan sendiri oleh user
Subrange
Representasi variabel, jangkauan nilai
String
Penyimpanan array dari character
2. KONSTANTA Jika dalam membuat program kita sering menggunakan bilangan numerik atau suatu kalimat string yang sama berkali-kali, maka ada baiknya kita menjadikan bilangan atau kalimat tersebut sebagai suatu konstanta. Penggunaan konstanta akan membuat program menjadi lebih mudah dimengerti dan diperbaiki. Dengan menggunakan konstanta, kita dapat memberikan nama yang mudah dipahami untuk suatu bilangan numerik yang kompleks. Misal kita lebih mudah menulis pi, daripada harus menuliskan 3.1415926536 berkali-kali pada program. Jika kita akan mengganti nilai pi menjadi 3.14, maka kita hanya perlu menggantinya sekali saja pada bagian deklarasi konstanta. Konstanta dideklarasikan pada awal program, sebelum blok begin-end. Bentuk umum: Const
NamaKonstanta = NilaiKontanta;
Contoh: Const pi radius LuasLingkaran Maks JumlahMhs Simbol NamaPT
= = = = = = =
3.14; 25.6; pi*radius; 100; 7656; ‘****’; ‘P.T. XYZ’;
Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
10
3. TIPE DATA SEDERHANA Pascal telah menyediakan beberapa tipe data sederhana yang siap digunakan. Tipe-tipe data yang paling sering digunakan pada program Pascal antara lain: INTEGER Tipe Bilangan Bulat, digunakan untuk menyimpan data bilangan bulat. Tipe
Jangkauan
Ukuran
Shortint
-128..127
8 bit
Integer
-32768..32767
16 bit
Longint
-2147483648..2147483647
32 bit
Byte
0..255
8 bit
Word
0..65535
16 bit
BOOLEAN Tipe Boolean, tipe yang hanya dapat bernilai benar atau salah Tipe Data
Ukuran
Boolean
1 byte
ByteBool
1 byte
WordBool
2 byte (1 word)
LongBool
4 byte (2 word)
REAL/FLOATING POINT Tipe Real, digunakan untuk menyimpan bilangan real atau pecahan. Tipe Data Real
Jangkauan 2.9*10-39 .. 1.7*1038 -45
38
.. 3.4*10
Digit penting
Ukuran
11-12
6 byte
7-8
4 byte
Single
1.5*10
Double
5.0*10-324 .. 1.7*10308
15-16
8 byte
Extended
3.4*10-4942 .. 1.1*104932
19-20
10 byte
Comp
-2-63 +1.. 263-1
19-20
8 byte
Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
11
KARAKTER (CHAR) Tipe karakter (char), digunakan untuk menyimpan satu karakter dan mengalokasikan 1 byte memori. Contoh: ‘A’,’Z’,’@’,’1’,’9’, dsb. Contoh:
var NamaVar : char;
STRING Tipe String, digunakan untuk menyimpan data yang berupa untaian karakter sebanyak 256 (default). Sebaiknya kita menentukan berapa banyak karakter dalam tipe string yang dibutuhkan. Karena hal ini berhubungan dengan memori yang dialokasikan. Misal kita mengalokasikan tempat sebanyak 30 karakter, berarti kita mengalokasikan sebesar 30 byte di memori. Contoh: var NamaVar : string; var Nama : string[30]; TIPE DATA ENUMERASI a. Tipe Subjangkauan, memungkinkan kita untuk mendeklarasikan tipe yang berada pada jangkauan tertentu. Contoh: type bulan = 1..12; b. Tipe Terbilang, memungkinkan kita untuk memberi nama pada beberapa nilai tertentu. Contoh: type NamaHari = ( Minggu, Senin, Selasa, Rabu, Kamis, Jumat, Sabtu ); 4. OPERATOR Operasi-operasi yang dapat dilakukan pada variabel antara lain : a. Operator penugasan/assignment, menggunakan tanda :=. Contoh: a := 5
{untuk tipe bilangan bulat}
b := ‘IST AKPRIND’ c := 3.14
{untuk tipe string}
{untuk tipe real}
Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
12
d := [1, 2, 3]; {untuk tipe himpunan} b. Operator Aritmetik Tunggal, digunakan untuk operasi bilangan bulat maupun real. Menggunakan tanda (+) (-) Contoh: x := -y; x := +y;
sama dengan
x := y;
c. Operator aritmetik biner Operator + * /
Operasi Penjumlahan Pengurangan Perkalian Pembagian
Tipe Operan
Tipe Hasil
Bilangan bulat
Bilangan bulat
Bilangan real
Bilangan real
Bilangan bulat
Bilangan bulat
Bilangan real
Bilangan real
Bilangan bulat
Bilangan bulat
Bilangan real
Bilangan real
Bilangan bulat
Bilangan bulat
Bilangan real
Bilangan real
div
Pembagian bilangan bulat
Bilangan bulat
Bilangan bulat
mod
Sisa pembagian (modulus
Bilangan bulat
Bilangan bulat
d. Operator Pemanipulasi Bit Operator
Operasi
Not
Invers
And
Logika and
Or
Logika or
Xor
Logika xor
Shl
Pergeseran bit ke kiri
Shr
Pergeseran bit ke kanan
e. Operator Boolean, dapat mengembalikan nilai true atau false. Operator
Operasi
Not
Negasi
And
logika and
Or
logika or
Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
13
Xor
logika xor
f. Operator Pembanding Operator
Operasi
=
Sama dengan
<>
Tidak sama dengan
<
Kurang dari
>
Lebih dari
<=
Lebih kecil sama dengan
>=
Lebih besar sama dengan
<=
Subset dari
>=
Superset dari
g. Operator String atau penggabungan (concatenation), digunakan untuk menggabungkan dua atau lebih operan string menjadi sebuah string yang lebih panjang. Contoh: a := ‘Pemrograman’ + ‘ Pascal’;
{sama
artinya
dengan
a
:=
‘Pemrograman Pascal’;} h. Operator himpunan Operator
Operasi
+
Union
-
Selisih
*
Interseksi
in
Anggota dari
i. Derajat Operator, digunakan untuk menentukan operator mana yang harus dikerjakan terlebih dahulu dan operator mana yang terakhir dikerjakan. Operator @ not
Derajat Tertinggi
* / div mod and shl shr + - or xor = <> < > <= >= in
Terendah
Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
14
MODUL 3. INPUT DAN OUTPUT
A. TUJUAN KHUSUS Mahasiswa mengetahui tentang input dan output dalam program pascal. B. DASAR TEORI 1. WRITE DAN WRITELN Untuk menampilkan hasil ke layar, kita dapat menggunakan perintah write atau writeln. Perbedaan write dan writeln: Write akan menampilkan hasil ke layar tanpa disertai ganti baris, sehingga tampilan berikutnya akan terletak pada baris yang sama. Writeln akan menampilkan hasil ke layar dengan disertai pergantian baris sehingga tampilan berikutnya akan terletak pada baris berikutnya. Bentuk umum: write(
); write( ); Contoh: Write(‘selamat’); Write(12345); Write(‘****’); Write(A); Writeln(JumlahSiswa); Pada contoh di atas, A dan JumlahSiswa adalah dapat berupa variabel atau konstanta. Jika kita ingin menampilkan string (kalimat, kata, karakter, ataupun simbol tertentu maka harus diikuti dengan petik tunggal (‘). Namun jika ingin menampilkan isi dari variabel atau konstanta maka tidak perlu menuliskan kutip tunggal (‘) pada awal dan akhir variabel/konstanta. Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
15
program PemanfaatanWriteWriteln; uses crt; var kata: string[20]; begin kata := ‘Saya belajar pascal’; write(kata); writeln(‘ kata ‘); writeln(‘Saya belajar pascal’); write(‘12345’); end.
2. READ DAN READLN Kita dapat memanfaatkan read dan readln untuk meminta masukan dari keyboard. Perbedaan antara read dan readln adalah jika kita menggunaka readln, maka setelah data dimasukkan dan kita menekan enter akan disertai dengan pergantian baris, sedang read tidak. Namun, setelah dilakukan percobaan, ternyata keduanya tetap akan disertai dengan pergantian baris. Perbedaan antara read dan readln baru tampak pada saat kita menggunakannya untuk operasi file. Bentuk umum: Read( ); Readln( ); Contoh: Read(NamaSiswa); Readln(nim); program PemanfaatanReadReadln; uses crt; var bil : byte; kata : string[25]; begin write(‘Masukkan sebuah bilangan : ‘); readln(bil); write(‘Masukkan sebuah kata : ‘); readln(kata); writeln(‘bilangan yang anda inputkan adalah : ‘,bil); writeln(‘kata yang anda inputkan adalah : ‘,kata); end.
Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
16
C. PROGRAM PERTAMA
Menampilkan tulisan ‘Hello World’ ke layar: program Pertama; {ini adalah bagian komentar} begin writeln(‘Hello World’); write(‘Hello’); writeln(‘World’); end. Output: Hello World Pada bagian program pada baris ini: writeln(‘Hello World’); write(‘Hello’); writeln(‘World’); ganti dengan writeln(‘ini adalah angka: ’,15); maka outputnya akan menjadi: ini adalah angka: 15 ganti dengan: writeln(‘ini adalah angka: ’, 3+2); output: ini adalah angka: 5
Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
17
D. LATIHAN Program input_output; Uses crt; Var a, b, c : byte; d, e, f : real; begin writeln(‘-----Program Latihan Input Output-----‘); write(‘Input a = ‘); readln(a); write(‘Input b = ‘); readln(b); c d e f
:= a+b; := a*b; := sqr(a); :=sqrt(a);
writeln(‘Hasil a+b = ‘, c); writeln(‘Hasil a*b = ‘,d); writeln(‘ a^2 = ‘; e:2:2); writeln(‘akar dari a = ‘,f:2:2); writeln(‘---------------------------------------------‘); end. E. TUGAS Buat program untuk menghitung keliling dan luas lingkaran dengan hanya menggunakan inputan diameter (d) dari keyboard. Untuk mendapatkan jari-jari dapat dihitung dari diameter dibagi dua.
Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
18
MODUL 4. PERCABANGAN (PENYELEKSIAN KONDISI)
A. TUJUAN KHUSUS 1. Mahasiswa dapat memahami tentang konsep percabangan atau penyeleksian kondisi. 2. Mahasiswa dapat membuat program penyeleksian kondisi. B. DASAR TEORI Penyeleksian kondisi atau percabangan memungkinkan suatu pernyataan akan dieksekusi hanya jika suatu kondisi terpenuhi atau tidak terpenuhi 1. PERNYATAAN IF Sintaks: If kondisi then pernyataan; Kondisi If tersebut digunakan untuk mengerjakan sesuatu kondisi yang terpenuhi saja. Jika kondisi tidak terpenuhi maka tidak akan mengerjakan apa-apa. 2. PERNYATAAN IF..ELSE Sintaks: If kondisi then pernyataan1 else pernyataan2; Kondisi If..else akan dijalankan pernyataan1 jika kondisi terpenuhi, jika tidak maka akan dijalankan pernyataan2. 3. PERNYATAAN IF..ELSE IF… Pada kasus tertentu kita dapat meletakkan pernyataan if lain setelah else. Sintaks: If kondisi1 then pernyataan1 else if kondisi2 then pernyataan2 else pernyataan3;
Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
19
4. PERNYATAAN CASE Pernyataan case digunakan untuk menyederhanakan konstruksi if..else if yang terlalu banyak. Sintaks: Case ekspresi of 0:pernyataan1; 1:pernyataan2; 2:pernyataan3; 3:pernyataan4; else pernyataan5; end;
C. LATIHAN Buat program untuk menghitung berapa banyak jumlah lembarang uang dalam pecahan limapuluh ribuan, sepuluh ribuan, lima ribuan, seribuan, lima ratusan, dan seratusan yang dibutuhkan untuk membayar suatu barang dalam kelipatan seratusan, tipe data longint. uses crt; var a, b, c, d, e, f, harga : longint; begin clrscr; write('Harga : '); readln(harga); a:=harga div 50000; if a<>0 then harga:=harga-(a*50000); b:=harga div 10000; if b<>0 then harga:=harga-(b*10000); c:=harga div 5000; if c<>0 then harga:=harga-(c*5000); d:=harga div 1000; if d<>0 then harga:=harga-(d*1000); e:=harga div 500; if e<>0 then harga:=harga-(e*500); f:=harga div 100; if f<>0 then harga:=harga-(f*100); Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
20
writeln('50.000 = ',a); writeln('10.000 = ',b); writeln('5.000 = ',c); writeln('1.000 = ',d); writeln('500 = ',e); writeln('100 = ',f); readkey; end.
D. TUGAS 1. Buat algoritma dan program untuk menampilkan bilangan ganjil atau genap 2. Buat algoritma dan program untuk mengecek tahun kabisat atau bukan 3. Program untuk membaca nomor bulan (integer) dan menuliskan nama bulan sesuai angka bulannya 4. Buat algoritma dan program untuk membaca nilai ujian dan menentukan indeks nilainya, kemudian mencetak nilai dan indeksnya ke piranti keluaran nilai ujian ≥ 80, indeks nilai = A 70 ≤ nilai ujian < 80, indeks nilai = B 55 ≤ nilai ujian < 70, indeks nilai = C 40 ≤ nilai ujian < 55, indeks nilai = D nilai ujian < 40, indeks nilai = E
Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
21
MODUL 5. PERULANGAN (LOOPING)
A. TUJUAN KHUSUS Mahasiswa dapat memahami konsep (loop) perulangan dan dapat membuat program perulangan dengan menggunakan pernyataan for, while, dan repeat-until. B. DASAR TEORI Loop
(perulangan)
digunakan
untuk
mengeksekusi
satu
atau
beberapa
statetement/pernyataan sebanyak beberapa kali. Pernyataan loop memungkinkan kita untuk menjalankan beberapa pernyataan hanya dengan menuliskan pernyataan tersebut satu kali. Bahasa pemrograman Pascal menyediakan tipe loop untuk menangani permintaan looping (perulangan) seperti FOR-DO, WHILE-DO dan REPEAT-UNTIL. 1. PERNYATAAN FOR-DO Perulangan menggunakan For-do digunakan jika kita sudah tahu berapa pernyataan yang akan diulang. Sintaks: for variabel_pencacah := nilai_awal to nilai_akhir do begin {pernyataan yang akan diulang} end;
Contoh untuk menuliskan string ‘Teknik Informatika’ sebanyak 20 kali maka: for i := 1 to 10 do writeln(‘Teknik Informatika’); Kita juga bisa menuliskan perulangan dari bilangan yang lebih besar ke bilangan yang lebih kecil dengan mengganti ‘to’ dengan ‘downto’. Contoh: for i := 10 to 1 do writeln(‘Teknik Informatika’);
Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
22
2. PERNYATAAN FOR BERSARANG Kita bisa menuliskan pernyataan for di dalam pernyataan for. Contoh: For x := 1 to 3 do For y := 1 to 2 do Writeln(x, ‘ ‘, y);
3. PENYATAAN WHILE Digunakan jika kita belum tahu pasti berapa banyak akan mengulang pernyataanpernyataan. Berakhirnya pengulangan ini ditentukan oleh suatu kondisi. Pengulangan akan berakhir, jika kondisi sudah tidak terpenuhi. Jadi, selama kondisi masih terpenuhi, maka pengulangan akan terus dilakukan. Kondisi merupakan suatu ekspresi boolean, dapat bernilai benar (true) dan salah (false). Sintaks: while kondisi do begin {pernyataan-pernyataan yang akan diulang} end. Contoh Program: program cobawhile; uses crt; var i:byte; begin i:=0; while (i<5) do begin writeln('pascal'); i:=i+1; end; end. 4. PERNYATAAN REPEAT-UNTIL Pernyataan ini hampir sama dengan perulangan while-do, digunakan bila jumlah pengulangan belum dapat ditentukan pada saat program ditulis. Perbedaannya Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
23
pada repeat-until dan while-do terletak pada letak pengecekan kondisi. Jika pada while-do, kondisi dicek di awal, maka pada repeat-until mengulang pernyataan selama kondisi belum terpenuhi. Sintaks: Repeat {pernyataan-pernyataan yang akan diulang} until kondisi; Contoh Program: program cobarepeat; uses crt; var i:byte; begin i:=0; repeat i:=i+1; writeln('pascal'); until i=5; end.
5. PERNYATAAN BREAK & CONTINUE Pernyataan break dapat digunakan untuk menghentikan pengulangan di tengah jalan. Contoh: x := 0; while (x >= 0) do begin x := x+1; If (x > 100) then Break; end; Jika dilihat sekilas, program di atas seperti tidak akan pernah berakhir karena x selalu ditambah 1. Padahal kondisi yang harus dipenuhi adalah x >= 0. Namun bila dieksekusi, setelah nilai x lebih besar dari pada 100 maka perulangan akan berhenti karena ada pernyataan break.
Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
24
Pernyataan continue digunakan untuk mengembalikan aliran program ke pengujian kondisi perulangan, sehingga pernyataan di bawahnya akan diabaikan. Contoh: for i := 0 to 100 do begin if ((i mod 3) <> 0 ) then continue; writeln(i); end; Program tersebut akan menuliskan semua bilangan kelipatan tiga yang kurang dari 100, karena pada saat nilai pencacah pengulangan tidak habis dibagi 3, program akan memanggil pernyataan continue, akibatnya writeln(i) tidak dipanggil. Pernyataan break dan continue ini dapat digunakan pada pernyataan for, while, maupun repeat-until. Selain itu juga dapat digunakan pada pernyataan perulangan bersarang (baik for, while, maupun repeat-until).
Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
25
MODUL 6. PROSEDUR & FUNGSI
A. TUJUAN KHUSUS •
Mahasiswa memahami tentang penggunaan prosedur dan fungsi dalam pemrograman.
•
Mahasiswa dapat membuat program menggunakan prosedur dan fungsi.
B. DASAR TEORI Apabila program yang Anda buat sudah terlalu panjang, maka akan sulit untuk membaca dan mengerti jalannya program tersebut. Dengan memecah program menjadi beberapa bagian (modul) maka akan lebih memudahkan kita dalam mencari kesalahan program dan memperbaiki serta mendokumentasinya. Program yang berukuran besar dapat dipecah menjadi beberapa subprogram atau modul yang lebih kecil. Setiap modul dapat dipasangkan ke program lain yang membutuhkannya. Jenis modul program ini yaitu prosedur dan fungsi. 1. PROSEDUR Prosedur berguna untuk mengumpulkan statement-statement yang dapat dijalankan menjadi satu dalam suatu blok dan untuk menjalankannya kembali hanya dengan menuliskan nama prosedur yang menampungnya. Selain itu prosedur juga sering dipakai untuk menampung baris-baris perintah yang sering dipakai dalam sebuah program. Prosedur adalah sub-program yang dapat dipanggil dari program utama. Prosedur dideklarasikan di luar badan program utama menggunakan kata kunci ‘procedure’. Prosedur harus diberikan nama yang unik. Prosedur dimulai dari begin dan diakhiri end. Berikut contoh bagaimana membuat prosedur yang akan dipanggil dengan nama hello yang akan mencetak ke layar tulisan “Hello”.
Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
26
Program procedures; procedure hello; begin writeln(‘hello’); end; begin end. Untuk memanggil prosedur harus menyebutkan nama prosedur pada program utama. procedure hello; begin writeln(‘hello’); end; begin hello; end. Prosedur dapat mempunyai beberapa parameter. Setiap parameter diberikan nama dan tipe seperti pada variabel. Jika menggunakan lebih dari satu parameter maka harus dipisahkan dengan titik koma (;). program procedures; procedure print(s: string; i:integer); begin writeln(s); writeln(i); end; begin print(‘Hello’, 3); end. Variabel Global dan Lokal Variabel yang kita buat bersifat global karena dapat digunakan setiap waktu disepanjang program. Sedangkan variabel pada prosedur adalah variabel local karena hanya dapat digunakan di dalam prosedur. Variabel local dideklarasikan di dalam deklarasi prosedur program cetak_procedures; procedure cetak (s: string); Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
27
var i:integer; begin for i:=1 to 3 do writeln(s); end; begin cetak(‘Hello’); end.
Jenis Pelewatan Parameter Ada dua cara pelewatan parameter: a. Pelewatan secara nilai (Pass by value) Pengiriman parameter dari pemanggil hanya mengirimkan nilai dari variabel tersebut (bukan variabelnya), sehingga apapun yang terjadi di prosedur tidak akan berpengaruh di pemanggil. Ini seperti halnya anda memberikan isian ke variabel tertentu. Pelewatan ini disebut pelewatan lokal (privat). uses crt; var a,b: integer; procedure ubah(a,b: integer); begin a:=50; b:=60; writeln('Nilai a = ', a,', Nilai b = ',b); end; Begin clrscr; a:=10; b:=20; ubah(a,b); writeln; writeln('a = ', a); writeln('b = ', b); readln; end. b. Pelewatan secara acuan (Pass by reference) Pengiriman parameter dari pemanggil dengan menyertakan acuan (variabelnya) sehingga perubahan yang dilakukan di procedure akan Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
28
mempengaruhi program pemanggilnya. Pelewatan ini disebut pelewatan secara public (global). uses crt; var a,b: integer; procedure ubah (var a,b: integer); begin a:=50; b:=60; writeln('Nilai a = ', a,', Nilai b = ',b); end; Begin clrscr; a:=10; b:=20; ubah(a,b); writeln; writeln('a = ', a); writeln('b = ', b); readln; end. 2. FUNGSI Fungsi adalah sekumpulan pernyataan yang secara bersama-sama melakukan sebuah tugas. Setiap program pascal sedikitnya mempunyai satu fungsi., yaitu program itu sendiri, dan semua program dapat mendefinisikan fungsi tambahan. Fungsi (function) sama seperti prosedur, bedanya ada pada pengembalian nilai. Kata kunci ‘function’ digunakan untuk mendeklarasikan fungsi. Untuk mengatakan bahwa tipe data mengembalikan nilai maka harus menggunakan tanda koma (,) dan nama dari tipe setelah nama fungsi. Definisi fungsi: Function nama_fungsi(argument: type1; argument: type2; …): tipe_fungsi; Deklarasi; Begin End. Contoh program: program functions; function tambah ( i , j : integer) : integer; Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
29
begin end; begin end. Penugasan nilai dari fungsi ke variabel membuat variabel menjadi sama dengan nilai pengembalian. program functions; var jawab: integer; function tambah ( i , j : integer) : integer; begin tambah := i+j; end; begin jawab := tambah(1, 2); writeln(tambah(1, 2)); end.
Kita dapat keluar dari prosedur atau fungsi setiap waktu dengan menggunakan perintah Exit. program procedures; procedure getName; var name: string; begin writeln(‘Nama anda ? ‘); readln(name); if name = ‘’ then Exit; writeln(‘ Nama anda adalah ‘, name); end; begin getName; end.
Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
30
C. LATIHAN
1. Buatlah program dengan menggunakan procedure dan function untuk dapat merepresentasikan kalkulator sederhana. Buatlah dalam bentuk menu dengan minimal 10 operasi standar aritmatika 2. Buatlah program dengan menggunakan function untuk menghitung deret berikut: S:= a + (a+2) + (a+4) + .......+ (a+100) dengan syarat a bilangan bulat genap. Jika a ganjil maka a harus dikurangi dengan 1. Keluaran adalah S.
Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
31
MODUL 7. ARRAY
A. TUJUAN KHUSUS Mahasiswa memahami tentang konsep ARRAY dan dapat membuat program menggunakan ARRAY. B. DASAR TEORI 1. ARRAY DIMENSI SATU Pemrograman Pascal menyediakan struktur data yang disebut dengan array, dimana data akan disimpan secara sekuensial sebagai sekumpulan elemen dengan tipe data yang sama. Array digunakan untuk menyimpan koleksi variable dengan tipe yang sama. Deklarasi variabel, seperti nomor1, nomor2, …, … dan nomor100 dapat dideklarasikan dalam satu array variabel yaitu nomor[1], nomor[2], …, dan nomor[100] untuk merepresentasikan variabel individual. Elemen spesifik dari array dapat diakses sebagai sebuah index. Semua array terdiri dari lokasi memori yang berurutan. Alamat terkecil berhubungan dengan elemen pertama dan alamat tertinggi merupakan elemen terakhir. Deklarasi Array Deklarasi array dimensi satu: type array-identifier = array[index-type] of type;
element-
Dimana: Array-identifier
: mengindikasikan nama dari tipe array
Index-type
: subscript dari array. Dapat bertipe scalar kecuali real.
Element-type
: tipe dari nilai yang disimpan.
Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
32
Contoh: type vector = array [1..25] of real; var velocity : vector; Contoh array yang dimulai dengan index 0: type vector = array [0..24] of real; var velocity : vector; Contoh array dalam variabel: Array adalah variabel yang dapat menampung sejumlah data yang ditandai dengan suatu index pada masing-masing elemennya. Suatu tipe data terstruktur yang terdapat dalam memori yang terdiri dari sejumlah elemen (tempat) yang memiliki tipe data yang sama. Gabungan dari beberapa variabel sejenis serta memiliki jumlah komponen yang jumlahnya tetap. Elemenelemen array tersusun secara sekuensial dalam memori komputer. Var nilai : array [1..10] of integer; Dalam hal ini variabel nilai adalah suatu array yang memiliki 10 elemen yaitu nilai[1], nilai[2], nilai[3],…, nilai[10]. Pada masing-masing elemennya dapat menampung satu nilai integer.
Initial Array Dalam pascal, array diinisialisasi menggunakan penugasan, secara spesifik menggunakan subscript atau menggunakan perulangan for-do.
Keunggulan Array Misalkan kita memesan 10 variabel, misal Nilai1, Nilai2, Nilai3, dst. Kita akan menjumlahkan total dari variabel tersebut tanpa array maka dapat ditulis: Total := Nilai1+Nilai2+Nilai3+Nilai4+Nilai5+Nilai6+ Nilai7+Nilai8+Nilai9+Nilai10; Jika menggunakan array, maka pengolahan data variabel tersebut akan menjadi lebih mudah: Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
33
Total :=0; For I := 1 to 10 do Total := Total+Nilai[I]; Bagaimana kalau ada 100 elemennya. Bisa anda bayangkan? 2. ARRAY MULTI DIMENSI Dalam array multidimensi terdiri atas baris (row) dan kolom (column). Index pertama adalah baris dan yang kedua adalah kolom. Sintaks: Type nama_array =ARRAY[bawah..atas, bawah..atas] of tipe_data; var variabel_array : nama_array; atau dengan menggunakan statemen var : var variabel_array : ARRAY[bawah..atas, bawah..atas] of tipe_data; Pernyataan berikut membentuk suatu array integer dengan nama bilangan , 10 x 10 elemen (100). type matriks = ARRAY [1..10, 1..10] of integer; var AKU: matriks; untuk memasukkan tiap elemen maka, diperlukan suatu procedure dengan mempergunakan struktur pengulangan for ...do tersarangseperti berikut: procedure ISI_MATRIK(AKU:matriks; m,n:integer); var i,j: integer; {faktor pengulang} begin for i:=1 to m do begin for j:=1 to n do begin read(A[i,j]); end; readln ;{ini memungkinkan kita menulis tiap baris elemen} end;
Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
34
untuk menampilkan tiap elemen maka, digunakan struktur pengulangan for ...do tersarang seperti berikut procedure TULIS_MATRIK(AKU:matriks; m,n:integer); var i,j: integer; {faktor pengulang} begin for i:=1 to m do begin for j:=1 to n do begin write(A[i,j]:6); end; writeln ; {ini memungkinkan kita menulis elemen dalam baris dan kolom } end; end; 3. OPERASI PADA ARRAY Sifat masing-masing elemen array mengikuti jenis data yang dimilikinya, untuk array dengan tipe bilangan integer atau real kita bisa melakukan berbagai
standar
operasi
aritmatika
seperti
penjumlahan,
perkalian,
pengurangan, dsb. Yang perlu di garis bawahi, bahwa sifat dari array dimanfaatkan untuk operasi matrik. a. Mencari Harga Tertentu pada Array Mencari suatu elemen data di dalam suatu data merupakan suatu kejadian yang sering kita alami, contoh: mencari nama mahasiswa dari daftar presensi. Pencarian beruntun (sequence), merupakan suatu teknik untuk mencari suatu elemen dalam suatu sistim yang lebih besar. b. Mencari Harga Maksimum pada Array Misal array di atas kita cari harga yang tertinggi, maka kita perlu menentukan nilai tertinggi dahulu sebelum melakukan pencarian ; diawali dengan nilai maksimum=0.
Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
35
c. Mencari Harga Minimum pada Array Misal array di atas kita cari harga yang terendah, maka kita perlu menentukan nilai terendah dahulu sebelum melakukan pencarian ; diawali dengan nilai maksimum=3200 Tulislah program dibawah sebagai contoh untuk menginputkan sejumlah bilangan, mencari rerata dan nilai max dan min: program contoharraydimensi1; uses wincrt; type angka=array [1..10] of integer; var x: angka; i,jum:byte; total:longint; rata:real; max,min:integer; lagi:char; begin {mengisi data nilai mhs} i:=0; total:=0;lagi:='y'; repeat begin i:=i+1; write('isi angka ke ',i,' '); readln(x[i]); total:=total+x[i]; write('apakah akan mengisi lagi ? '); readln(lagi); end until lagi <> 'y'; jum:=i-1; writeln; writeln('DATA angka YANG TELAH DIMASUKKAN'); writeln('---------------------------------------'); writeln('NO nilai'); writeln('---------------------------------------'); for i:=1 to jum do writeln(i:4,x[i]:8); writeln('---------------------------------------'); {mencari rata-rata} rata:=total/jum; writeln('total nilai= ',total:8); writeln('nilai rata-rata dari ',jum:6, ' nilai di atas adalah ',rata:8:2); {mencari nillai terbesar dan terkecil} max:=x[1];min:=x[1]; Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
36
for i:=2 to jum do begin if x[i] > max then if x[i] < min then end; writeln('nilai terbesar writeln('nilai terkecil end.
max:=x[i]; min:=x[i]; adalah adalah
',max:8); ',min:8);
d. Matrik Sebagai perwujudan dari array dua dimensi, operasi aritmatika seperti penjumlahan,
perkalian,
dan
pengurangan
bisa
dilakukan.
Contoh. - Mendefinisikan Elemen Program OPERASI_MATRIK; uses wincrt; type matrik=array[1..100,1..100] of real; var m,n, p, q: integer; {dimensi dari matrik} A,B,C: matrik; {matrik A, B sebagai input, C sebagai hasil} - Membaca Elemen Matrik procedure bacamatrik(var A:matrik; m,n:integer); var i,j: integer; {faktor pengulang} begin {read} for i:=1 to m do begin {do} for j:=1 to n do read(A[i,j]); readln; end; {do} end; {read} - Menampilkan Elemen Matrik procedure tulismatrik(A:matrik; m,n:integer); var i,j: integer; {faktor pengulang} begin {write} for i:=1 to m do begin {tiap baris} writeln; for j:=1 to n do write(A[i,j]:6:2); end; {tiap baris} writeln; end; {write}
Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
37
- Penjumlahkan Matrik procedure check_matrik(A,B,C:matrik; m,n,p,q:integer); var i,j :integer; begin if (m=p) and (n=q) then begin for i:=1 to m do begin for j:=1 to n do begin C[m,n]=A[m,n]+B[m,n]) end; end; end else writeln('DIMENSI MATRIK TIDAK COCOK') end; - Pengurangan Matrik procedure check_matrik(A,B,C:matrik; m,n,p,q:integer); var i,j :integer; begin if (m=p) and (n=q) then begin for i:=1 to m do begin for j:=1 to n do begin C[m,n]=A[m,n]- C[m,n]) end; end; end else writeln('DIMENSI MATRIK TIDAK COCOK') end; -. Perkalian Matrik procedure perkalian_matrik(A,B,C:matrik; m,n,p,q:integer); var i,j, k :integer; C1: matrik; begin if (n=p) then begin for i:=1 to m do begin for j:=1 to p do begin {inner product} C1[i,j]:=0; for k:=1 to n do C1[i,j]:=C1[i,j]+A[i,k]*B[k,j]; end; {inner product} end; n:=q; for i:=1 to m do for j:=1 to n do C[i,j]:=C1[i,j]; end
Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
38
else writeln('DIMENSI MATRIK TIDAK COCOK') end; - Transpose Matrik procedure Transpose(A,B:matrik; m,n,p,q:integer); var i,j:integer; begin for i:=1 to n do begin for j:=1 to m do begin B[m,n]=A[n,m] end; end; end;
Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
39
MODUL 8. RECORD
A. TUJUAN KHUSUS •
Mahasiswa dapat memahami tentang penggunaan tipe data record pada program.
•
Mahasiswa dapat membuat program menggunakan record.
B. DASAR TEORI 1. APAKAH RECORD Record adalah salah satu tipe data terstruktur. Tipe data record ini digunakan untuk menyimpan sejumlah data dengan nilai dan tipe data yang berbeda dalam satu wadah. Record merupakan elemen-elemen data yang digabungkan menjadi satu kesatuan. Masing-masing elemen data tersebut dikenal dengan sebutan field. Field data tersebut dapat memiliki tipe data yang sama atau berbeda. Walaupun field-field tersebut berada dalam satu kesatuan record, namun masing-masing field tersebut tetap dapat diakses individual. Field-field tersebut digabungkan menjadi satu record dengan tujuan untuk memudahkan. Bentuk umum: type = record : ; : ; … : ; end; var : ; atau dapat dideklarasikan langsung dalam variabel: var
= record : ; : ; … : ; end;
Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
40
Contoh: type Mahasiswa = record nim : string[10]; nama : string[30]; alamat : string[40]; ipk : real; end; var Mhs : Mahasiswa; atau langsung dideklarasikan di variabel: var Mhs = record nim : string[10]; nama : string[30]; alamat : string[40]; ipk : real; end;
Di dalam suatu record jika terdapat field-field yang bertipe sama dapat dideklarasikan bersamaan dengan dipisahkan oleh tanda koma (,) sehingga tidak perlu menuliskan tipe datanya berulang-ulang. Contoh: type volume_balok end;
= record panjang, lebar, tinggi
Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
: byte;
41
Contoh Program:
type data_pegawai = kd_peg nama : alamat gaji : end;
record : string[5]; string[15]; : string[20]; longint;
var pegawai : data_pegawai; begin pegawai.kd_peg := ‘001'; pegawai.nama := ‘Andi Sujarwo'; pegawai.alamat:= ‘Jl. Kyi Telingsing No 56 Kudus'; pegawa.gaji:=1500000; writeln(‘Kode Pegawai :‘,pegawai.kd_peg); writeln(‘Nama :',pegawai.nama); writeln(‘Alamat :',pegawai.alamat); writeln(‘Gaji :',pegawai.gaji); readln; end.
2. PEMAKAIAN RECORD Untuk menggunakan record tersebut, maka harus ditulis nama record beserta dengan fieldnya yang dipisahkan dengan tanda titik (.). Misalnya jika ingin menulis nim seorang mahasiswa ke layar maka penulisan yang benar adalah sebagai berikut: write(Mhs.nim); Pemakaian Record dengan Statement With Atau dapat juga dengan menggunakan kata baku with-do. with Mhs do write(nim);
Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
42
Record dalam Array Dalam contoh sebelumnya, penggunaan tipe data record hanya dapat menyimpan satu record. Untuk dapat menyimpan sejumlah record maka dapat digunakan array yang bertipe record yang sudah didefinisikan. Contoh: type data_pegawai = record kd_peg : string[5]; nama : string[15]; alamat : string[20]; gaji : longint; end; var
pegawai : array[1..10] of data_pegawai; i : integer; begin clrscr; for I:= 1 to 10 do begin with pegawai[i] do end; end. Field Record Bertipe Array Jika dalam suatu record terdapat beberapa field yang sama tipenya dapat digunakan array. Contoh ada data barang yang mempunyai struktur: -
nama barang bertipe string
-
jumlah unit barang ke 1 bertipe byte
-
jumlah unit barang ke 2 bertipe byte
-
jumlah unit barang ke 3 bertipe byte
Contoh: type
var
data_brg = record namaBrg : string[15]; unitBrg : array[1..3] of byte; end; Barang : array[1..10] of data_brg;
Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
43
Tipe Data Record dengan Field Tipe Record Dalam pascal tipe data record dapat didefinisikan juga sebagai suatu field dari suatu record. Artinya suatu record juga dapat mempunyai field yang merupakan record. Contoh: sebuah data pegawai mempunyai struktur sebagai berikut : - Nama pegawai -> string - Mulai masuk -> - Tgl - Bln - Thn - Alamat pegawai -> - Jalan - Kota - Gaji -> - Gaji pokok - Lembur - Tunjangan Contoh Program: type masuk = record tgl : 1..31; bln : 1..12; thn : integer; end; alamat = record jalan : string[20]; kota : string[10]; end; gajipeg = record pokok,tunjangan,lembur : real; end; datapegawai = record nama : string[20]; tglmasuk : masuk; almt : alamat; gaji : gajipeg; end;
Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
44
3. PERBEDAAN ARRAY DAN RECORD •
Array atau larik semua elemennya harus bertipe sama (homogen)
•
Record semua elemennya (field-fieldnya) dapat bertipe data berbeda
C. LATIHAN Latihan 1: ProgramRecord1.pas Uses crt; Type Mahasiswa = Record Nama : string[30]; Nim : string[10]; Alamat : string[50]; Ipk : real; End; Var Mhs : Mahasiswa; Begin Clrscr(); Write(‘Nama : ‘);readln(Mhs.nama); Write(‘Nim : ‘);readln(Mhs.nim); Write(‘Alamat : ‘);readln(Mhs.alamat); Write(‘Ipk : ‘);readln(Mhs.ipk); Writeln; Writeln(‘Nama anda : ‘, Mhs.nama); Writeln(‘Nim anda : ‘, Mhs.nim); Writeln(‘Alamat anda : ‘, Mhs.alamat); Writeln(‘Ipk anda : ‘, Mhs.ipk:2:2); End.
Latihan 2: ProgramRecord2.pas Uses crt; Type Mahasiswa = Record Nama : string[30]; Nim : string[10]; Alamat : string[50]; Ipk : real; Var Mhs : Mahasiswa; Begin Clrscr(); With Mhs do Begin Write(‘Nama : ‘);readln(nama); Write(‘Nim : ‘);readln(nim); Write(‘Alamat : ‘);readln(alamat); Write(‘Ipk : ‘);readln(ipk); Writeln; Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
45
End.
Writeln(‘Nama anda : ‘, nama); Writeln(‘Nim anda : ‘, nim); Writeln(‘Alamat anda : ‘, alamat); Writeln(‘Ipk anda : ‘, ipk); End;
Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
46
DAFTAR PUSTAKA
Munir, R., 2009, Algoritma & Pemrograman Dalam Bahasa Pascal dan C, Informatika, Bandung. Pranata, A., 2005, Algoritma dan Pemrograman, Graha Ilmu, Yogyakarta. Sanjaya, Dwi, 2005, Bertualang dengan Struktur Data di Planet Pascal, Graha Ilmu, Yogyakarta.
Praktikum Pemrograman Dasar-D3 Manajemen Informatika Institut Sains & Teknologi AKPRIND Yogyakarta
47