DASAR PEMROGRAMAN
Laporan ini disusun untuk memenuhi tugas mingguan mata kuliah
Praktikum Dasar Pemrograman
Oleh :
Nama : Popy Anisa
NPM : 207006018
LABORATORIUM INFORMATIKA
PROGRAM STUDI INFORMATIKA
FAKULTAS TEKNIK UNIVERSITAS SILIWANGI
TASIKMALAYA
2020
BAB VI
ARRAY BERTIPE RECORD
TUJUAN PRAKTIKUM
DASAR TEORI
Elemen dari array selain bertipe sederhana(integer, char, real, boolean, string)
juga dapat bertipe terstruktur(record). Contohnya jika ingin menyimpan
sekumpulan data mahasiswa (data mahasiswa terdiri dari NIM, Nama, Kode Mata
Kuliah, dan Nilai) maka dibutuhkan sebuah array/table untuk menampung
sekumpulan data tersebut.
Ilustrasi:
VI-1
VI-2
Array tersebut terdiri dari 100 elemen dimana masing-masing elemennya bertipe
record yangtediri dari field NIM, Nama, KodeMK, Nilai.
Deklarasi Array:
const Nmaks = 100;
type Mahasiswa = record
NIM : longint;
Nama : string[25];
KodeMK : string[6];
Nilai : char;
end;
var
TabMhs : array [1..Nmaks] of Mahasiswa {deklarasi
array TabMhs yang berisi elemen record Mahasiswa}
program DataMHS;
uses
crt;
const
Nmaks = 50;
type
Mahasiswa = record
NIM : longint;
Nama : string[25];
KodeMK : string[6];
Nilai : char;
end;
var
TabMhs : array[1..Nmaks] of Mahasiswa;
i, JumMhs : integer;
input : char;
VI-3
Begin
i:=0;
repeat
clrscr;
i:=i + 1;
writeln('INPUT DATA MAHASISWA');
writeln('====================');
write('NIM : '); readln(TabMhs[i].NIM);
write('Nama : '); readln(TabMhs[i].Nama);
write('Kode Mata Kuliah : '); readln(TabMhs[i].KodeMK);
write('Nilai : '); readln(TabMhs[i].Nilai);
write('Input Data Lagi(y/t)? '); readln(input);
until (input = 't') or (input = ‘T’) or (i = Nmaks);
{input data mahasiswa sampai input =’t’ / ‘T’ atau array tidak
cukup lagi}
JumMhs := i; writeln;
if i = Nmaks then {jika array sudah penuh}
writeln('Tabel array penuh, nggak muat lagi!!!');
writeln(' OUTPUT DATA MAHASISWA ');
writeln('============================================');
writeln(' NIM Nama KodeMK Nilai ');
writeln('============================================');
for i:=1 to JumMhs do
writeln(TabMhs[i].NIM:9,TabMhs[i].Nama:20,TabMhs[i].
KodeMK:10, TabMhs[i].Nilai:10);
readln;
end.
VI-4
Tampilan dilayar 1
Tampilan dilayar 2
Analisis:
1. Nama program tidak boleh menggunakan spasi. Tetapi jika nama program
lebih dari satu kata, menggunakan symbol underscore (_).
4. Fungsi uses crt dapat mengatur jumlah karakter maksimal dalam setiap
baris.
VI-5
6. Array yaitu tipe data terstruktur yang dapat menyimpan sejumlah data yang
bertipe sama dengan menggunakan nama yang sama.
7. Begin yaitu perintah dasar pascal yang digunakan untuk memulai program.
sebelumnya.
Keterangan:
Program ini menerima input berupa nim, nama, kode mata kuliah dan nilai yang
disimpan dalam array bertipe record, lalu menampilkan semua hasil inputannya
yang berada dalam array di layar keluaran.
VI-6
6.2 Latihan
6.2.1 Soal
1. Pengelola sebuah perpustakaan ingin agar data buku di perpustakaannya
dapat diolah dengan lebih mudah sehingga data buku tersebut dapat
tersimpan dengan baik dan ketika ingin melihat datanya kembali dapat
dilihat dengan mudah. Buatlah sebuah program dalam Pascal untuk
memenuhi permintaan pengelola perpustakaan tersebut. Program tersebut
minimal memiliki fasilitas untuk input dan menambah data buku,
menampilkan data buku, dan keluar dari program!
Struktur Data Buku
Kode Buku Judul Pengarang Jumlah
C001 Fisika Dasar Suprayogi 3
C002 Algoritma Rinaldi Munir 10
Pemrograman
C005 Microsoft Word Aldi Kusumah 5
N001 Harry Potter J.K. Rowling 8
… … … …
NF001 Aplikasi Iklan Yanuar Iman 5
6.2.2 Jawaban
1. data_perpus.pas
Program data_perpus;
uses crt;
const
Nmaks = 200;
type
data_buku = record
kode_buku : string[8];
judul_buku : string[30];
auth_buku : string[30];
jumlah_buku : integer;
end;
var
buku : array[1..Nmaks] of data_buku;
x, pil_menu, i : integer;
pil_isi : char;
begin
i := 0;
repeat
clrscr;
writeln('======================================');
writeln('Pilih Menu :');
writeln('1. Input Buku');
writeln('2. Tampilkan Buku yang telah di Input');
writeln('3. Keluar program');
writeln('======================================');
write('Menu : ');
readln(pil_menu);
case pil_menu of
1 :
repeat
i := i + 1;
if(i > Nmaks)then
writeln('Array Penuh')
begin
write('Masukkan Kode Buku : ');
readln(buku[i].kode_buku);
write('Masukkan Judul Buku : ');
readln(buku[i].judul_buku);
write('Masukkan Pengarang Buku : ');
readln(buku[i].auth_buku);
write('Masukkan Total Buku : ');
readln(buku[i].jumlah_buku);
write('Masukkan data lagi (y/n): ');
readln(pil_isi);
end;
until ((pil_isi = 'n') or (pil_isi = 'N') or (i = Nmaks));
2 :
VI-8
Begin
If ( I = 0) then writeln (‘Data Kosong’)
Begin
Writeln(‘ Data Buku ‘);
Writeln(‘=========================================’);
Writeln(‘ Kode Judul Pengarang Total ‘);
Writeln(‘=========================================’);
For x := 1 to i do
Begin
Writeln(buku[x].kode_buku:7,buku[x].judul_buku:20,buku[x].
Auth_buku:15,buku[x].jumlah_buku:8);
End;
End;
End;
3 :
Writeln(‘Keluardari Program ‘);
Else writeln(‘Pilihan Salah’);
End;
Readln;
Until (pil_menu = 3);
End.
VI-9
Tampilan dilayar 1
Tampilan dilayar 2
VI-10
Analisis :
1. Nama program tidak boleh menggunakan spasi. Tetapi jika nama program
lebih dari satu kata, menggunakan symbol underscore (_).
4. Fungsi uses crt dapat mengatur jumlah karakter maksimal dalam setiap
baris.
7. Array yaitu tipe data terstruktur yang dapat menyimpan sejumlah data yang
bertipe sama dengan menggunakan nama yang sama.
8. Begin yaitu perintah dasar pascal yang digunakan untuk memulai program.
14. Kondisi berupa suatu ekspresi boolean yang menghasilkan true atau
false.
15. Aksi yang akan dilaksanakan jika kondisi yang dipasangkan dengan aksi
bersangkutan dipenuhi.
Keterangan:
Program ini dibuat untuk menginput data buku, menampilkan buku
yang telah di input, dan keluar program. Disini user diperintahkan untuk
memilih aksi, yang harus dilakukan apakah aksi nomor 1.Input buku, 2.
Tampilkan buku yang telah di input, 3. Keluar program.
VI-12
2. data_perpus.pas
program data_perpus; uses crt;
const
Nmaks = 200;
type
data_buku = record
kode_buku : string[8];
judul_buku : string[30];
auth_buku : string[30];
jumlah_buku : integer;
end;
var
buku : array[1..Nmaks] of data_buku;
x, pil_menu, i, total : integer;
pil_isi : char;
begin
i := 0;
repeat
clrscr;
writeln('======================================');
writeln('Pilih Menu :'); writeln('1. Input Buku');
writeln('2. Tampilkan Buku yang telah di Input');
writeln('3. Tampilkan Total Buku');
writeln('4. Keluar program');
writeln('======================================');
write('Menu : ');readln(pil_menu); case pil_menu of
1 :
repeat
i := i + 1;
if(i > Nmaks) then
writeln('Array Penuh')
begin
write('Masukkan Kode Buku : ');
readln(buku[i].kode_buku);
write('Masukkan Judul Buku : ');
readln(buku[i].judul_buku);
write('Masukkan Pengarang Buku : ');
readln(buku[i].auth_buku);
write('Masukkan Total Buku : ');
readln(buku[i].jumlah_buku);
write('Masukkan data lagi (y/n): ');
readln(pil_isi);
end;
VI-13
Tampilan dilayar 1
Tampilan dilayar 2
VI-15
Analisis :
14. Kondisi berupa suatu ekspresi boolean yang menghasilkan true atau
false.
15. Aksi yang akan dilaksanakan jika kondisi yang dipasangkan dengan
aksi bersangkutan dipenuhi.
Keterangan: