modul praktikum algoritma & pemrograman ii
Post on 29-Oct-2015
385 Views
Preview:
TRANSCRIPT
MODUL PRAKTIKUM
ALGORITMA DAN PEMROGRAMAN II
TEKNIK INFORMATIKA SEMESTER II
TAHUN AKADEMIK 2010/2011
DISUSUN OLEH:
DAMESKUS SAIKHUL BAHRI
UNIVERSITAS MUSAMUS MERAUKE
FAKULTAS TEKNIK
PROGRAM STUDI TEKNIK INFORMATIKA
2011
Algoritma & Pemrograman II
1 By: Demz
PRAKTIKUM 1 (1/3)
PROSEDUR
A. TUJUAN PRAKTIKUM
1. Memahami syntax prosedur
2. Memahami pendeklarasian prosedur
B. TEORI DASAR
Prosedur diawali dengan kata cadangan Procedure di dalam bagian
deklarasi prosedur. Prosedur dipanggil dan digunakan di dalam blok
program yang lainnya dengan menyebutkan judul prosedurnya.
Prosedur banyak digunakan pada program yang terstruktur, karena:
1. Merupakan penerapan konsep program modular, yaitu memecah-
mecah program yang rumit menjadi program-program bagian yang
lebih sederhana dalam bentuk prosedur-prosedur.
2. Untuk hal-hal yang sering dilakukan berulang-ulang, cukup dituliskan
sekali saja dalam prosedur dan dapat dipanggil atau dipergunakan
sewaktu-waktu bila diperlukan.
Sebagaimana halnya sebuah program, suatu procedure juga memiliki
header dan block. Perbedaan bentuknya dengan program hanyalah pada
bagian header-nya saja.
Bentuk Umum header suatu procedure adalah :
PROCEDURE nama;
Atau
PROCEDURE nama (formal parameter : jenis);
Jika kita menggunakan procedure dalam suatu program, maka procedure
tersebut harus dituliskan pada bagian deklarasi.
Algoritma & Pemrograman II
2 By: Demz
C. TUGAS PENDAHULUAN
1. Analisislah kedua contoh program di bawah ini tentang syntax dan
pendeklarasian prosedur serta tulislah output programnya!.
a. Contoh 1:
var a,b,c:integer; procedure maksimum; var max :integer; begin if a>b then max:=a else max:=b; if c>max then max:=c; writeln ('Jadi nilai maksimumnya adalah =',max); end; begin write ('Masukan Nilai a ='); readln (a); write ('Masukan Nilai b ='); readln (b); write ('Masukan Nilai c ='); readln (c); maksimum; end.
b. Contoh 2:
var p,l,t:real; procedure balok; var v:real; begin v:=p*l*t; writeln ('Volumenya adalah =',v:2:0); end; begin write ('Masukan Nilai panjang ='); readln (p); write ('Masukan Nilai lebar ='); readln (l); write ('Masukan Nilai tinggi ='); readln (t); balok; end.
2. Buatlah program untuk setiap permasalahan dalam percobaan!.
Algoritma & Pemrograman II
3 By: Demz
D. PERCOBAAN
1. Buatlah sebuah program menggunakan prosedur untuk menampilkan
kalimat “Algoritma dan Pemrograman II”.
2. Buatlah program untuk menampilkan kalimat “Teknik Informatika”
sebanyak 10 kali dengan menggunakan prosedur.
3. Buatlah program untuk menampilkan bilangan 1 sampai 50.
4. Buatlah program untuk menampilkan bilangan ganjil dari 1 sampai 20
dengan menggunakan prosedur.
5. Ulangilah program No.4 dengan dengan menampilkan bilangan ganjil
1 sampai n, dimana nilai n merupakan nilai maksimal perulangan yang
diinput melalui keyboard.
Algoritma & Pemrograman II
4 By: Demz
PRAKTIKUM 2 (2/3) PROSEDUR
A. TUJUAN PRAKTIKUM 1. Memahami jangkauan identifier.
B. TEORI DASAR Identifier yang dideklarasikan dalam suatu blok program hanya berlaku
pada blok dimana identifier tersebut didefinisikan.
Nilai di dalam suatu modul program Pascal sifatnya adalah lokal, artinya
hanya dapat digunakan pada modul atau unit program yang bersangkutan
saja, tidak dapat digunakan pada modul atau unit program yang lainnya.
Untuk lebih memahami hal ini, perhatikan contoh di bawah ini:
1. Contoh 1:
Algoritma & Pemrograman II
5 By: Demz
2. Contoh 2:
C. TUGAS PENDAHULUAN 1. Buatlah sebuah contoh program sederhana yang menggunakan
variabel local.
2. Buatlah sebuah contoh program sederhana yang menggunakan variabel
global.
3. Jelaskan dan analisislah kedua program yang telah dibuat serta tulislah
output programnya.
4. Kerjakanlah untuk setiap permasalahan dalam percobaan, dan
kumpulkan hasilnya.
Algoritma & Pemrograman II
6 By: Demz
D. PERCOBAAN 1. Analisislah program di bawah ini, apakah variabel yang digunakan
merupakan variabel local atau variabel global.
Procedure Tanya_hitung; Var X,Y :real; Begin
Write (‘Nilai X ?’); Readln(X); Y:=X*X; Writeln(‘Nilai Y = ‘,Y:6:2);
End; Begin
Tanya_Hitung; End.
2. Jika program No.1 diubah menjadi seperti program di bawah ini,
bagaimana hasilnya dan jelaskan!.
Procedure Tanya_hitung; Var X,Y :real; Begin
Write (‘Nilai X ?’); Readln(X); Y:=X*X;
End; Begin
Tanya_Hitung; Writeln(‘Nilai Y = ‘,Y:6:2);
End.
3. Program di bawah ini tidak dapat di compile karena terdapat
kesalahan. Perbaikilah program berikut hingga dapat dijalankan dan
jelaskan.
Procedure CetakNama; Begin Writeln (NamaKu); End; Var NamaKu: string[20]; Begin NamaKu:=’Pascal’; CetakNama; End.
Algoritma & Pemrograman II
7 By: Demz
PRAKTIKUM 3 (3/3) PROSEDUR
A. TUJUAN PRAKTIKUM 1. Memahami parameter dalam prosedur
B. TEORI DASAR Agar nilai-nilai variabel dapat digunakan pada modul lainnya yang
membutuhkannya, maka dapat dilakukan dengan beberapa cara, yaitu:
1. Dibuat bersifat global.
Agar suatu nilai dapat bersifat global, maka harus dideklarasikan di
atas modul yang akan menggunakannya.
Contoh 1:
Algoritma & Pemrograman II
8 By: Demz
Pada contoh di atas, variabel A dab B bersifat global untuk prosedur
kedua, ketiga dan utama, tetapi tidak bersifat global untuk prosedur
kesatu, sehingga prosedur kesatu tidak dapat menggunakan variabel-
variabel tersebut.
Contoh 2:
Pada contoh di atas, variabel A dan B bersifat global, sehingga dapat
digunakan untuk semua modul.
Algoritma & Pemrograman II
9 By: Demz
2. Dikirimkan sebagai parameter ke modul yang membutuhkannya.
Parameter yang dikirim dari modul utama ke modul prosedur disebut
actual parameter, dan parameter yang ada dan dituliskan pada judul
prosedur disebut formal parameter.
a. Pengiriman parameter secara nilai
Parameter yang dikirimkan secara nilai, maka parameter formal
yang ada di prosedur akan berisi nilai yang dikirimkan yang
kemudian bersifat lokal di prosedur.
b. Pengiriman parameter secara acuan
Bila pengiriman parameter secara acuan (by reference), maka
perubahan-perubahan yang terjadi pada nilai parameter formal di
prosedur akan mempengaruhi nilai actual parameter.
Acua Forward
Acuan Forward (forward reference) digunakan untuk mendeklarasikan di
muka judul prosedur terpisah dari bloknya. Judul prosedur yang berisi
parameter terpisah ini merupakan judul yang semestinya dan
dideklarasikan dengan menambahkan kata cadangan Forward. Blok
prosedur ini letaknya terpisah dari judulnya, juga di awali dengan judul
prosedur, tetapi hanya mencantumkan judul atau nama prosedurnya saja,
tanpa mencantumkan parameter formalnya.
Prosedur Standar
Prosedur yang disediakan oleh Turbo Pascal:
1. Prosedur standar EXIT
Digunakan untuk keluar dari suatu blok.
2. Prosedur standar HALT
Digunakan untuk menghentikan proses program baik di program
bagian maupun di program utama.
3. Prosedur standar MOVE
Bentuk umum: MOVE (Var source,dest; count: word);
Algoritma & Pemrograman II
10 By: Demz
Digunakan untuk menyalin suatu blok sebanyak count byte memori
dari blok dimulai byte pertama source dan disalinkan ke byte pertama
dest.
4. Prosedur standar FILLCHAR
Digunakan untuk mengisi sejumlah byte nilai ke dalam suatu variabel,
sebagai berikut:
FillChar(x;count :word;ch);
X adalah variabel yang dapat bertipe apapun yang akan diisi dengan
nilai tipe ordinal Ch sebanyak count byte.
C. TUGAS PENDAHULUAN 1. Carilah contoh program di internet atau di buku dengan ketentuan di
bawah ini:
a. Sebuah contoh program dengan menggunakan prosedur, dan
pegiriman parameternya secara nilai.
b. Sebuah contoh program dengan menggunakan prosedur, dan
pegiriman parameternya secara acuan.
2. Jelaskan kedua contoh program tersebut dan kumpulkan.
3. Analisislah program di bawah ini dan tuliskan output programnya.
Procedure pro1(var I : integer); Forward; Procedure pro2(var I : integer); Begin
Writeln(‘prosedur pro’, I); End; Procedure pro1; Begin
Writeln(‘prosedur pro’,I); End; Var I : integer; Begin
I := 1; pro1(I); I := 2; pro2(I);
End.
Algoritma & Pemrograman II
11 By: Demz
D. PERCOBAAN 1. Jelaskan program di bawah ini dan analisalah output programnya.
Procedure Hitung(A,B : integer); Var C : integer; Begin
C := A + B; Writeln(‘Nilai C = ‘,C)
End; Var X,Y : integer; Begin
Write(‘Nilai X ? ‘); Readln(X); Write(‘Nilai Y ?’); Readln(Y); Hitung(X,Y);
End.
2. Jelaskan program berikut ini dan analisalah parameternya.
Procedure Hitung(Var A,B,C : integer); Begin
C := A + B; End; Var X,Y,Z : integer; Begin
X := 2; Y:= 3; Hitung(X,Y,Z); Writeln(‘X = ‘,X,’ Y = ‘,Y,’ Z = ‘,Z);
End.
3. Bandingkan kedua program di atas dan simpulkan.
4. Program di bawah ini masih terdapat kesalahan, temukan kesalahan
tersebut dan lengkapilah hingga dapat dijalankan.
program Hitung_Faktorial; uses wincrt; prosedure faktorial (var fak,hasil:integer); var i:integer; begin hasil:=1; for i:=2 to fak do hasil:=hasil*i; end.
Algoritma & Pemrograman II
12 By: Demz
var n,f:integer; begin write ('Berapa faktorial yang akan dihitung?='); readln (n); writeln; writeln (n,' faktorial ='.f); end.
Algoritma & Pemrograman II
13 By: Demz
PRAKTIKUM 4 (1/2) FUNGSI
A. TUJUAN PRAKTIKUM 1. Memahami bentuk umum penulisan dan pendeklarasian fungsi
2. Memahami fungsi tanpa parameter
B. TEORI DASAR Blok fungsi hampir sama dengan blok prosedur, hanya fungsi harus
dideklarasikan dengan tipenya atau jenis hasilnya. Tipe deklarasi ini
menunjukkan tipe hasil dari fungsi.
Pada bahasa Pascal dikenal beberapa fungsi, misalkan : abs, pred, sqrt, sqr,
succ dan sebagainya.
Fungsi-fungsi tersebut biasanya dikenal dengan Built in Function.
Sedangkan function yang akan bicarakan disini adalah fungsi yang kita
buat sendiri.
Berbeda dengan procedure, function merupakan modul program yang
menghasilkan suatu kuantitas.
Hal ini dapat dilihat dari bentuk header-nya yang menyebutkan jenis data
dari kuantitas yang dihasilkan.
Secara umum bentuk header suatu function adalah:
FUNCTION nama : jenis hasil;
Atau FUNCTION nama (formal parameter : jenis ) : jenis_hasil;
FUNGSI TANPA PARAMETER
Suatu fungsi yang tanpa menggunakan parameter berarti nilai balik yang
akan dihasilkan merupakan nilai yang sudah pasti. Parameter digunakan
untuk memberikan input pada fungsi dan fungsi akan memberikan hasil
balik sesuai dengan parameter yang diberikannya.
Algoritma & Pemrograman II
14 By: Demz
Sedang pada fungsi yang tidak mempunyai parameter, maka hasil fungsi
tersebut tidak dapat diatur dari modul yang menggunakannya, karena tidak
ada parameter yang dikirimkan. Dengan demikian fungsi yang tanpa
parameter jarang dipergunakan.
C. TUGAS PENDAHULUAN 1. Jelaskan pendeklarasian fungsi!.
2. Jelaskan perbedaan antara fungsi dengan prosedur!.
3. Buatlah sebuah program sederhana dengan menggunakan fungsi tanpa
parameter untuk menampilkan kalimat “TEKNIK INFORMATIKA
2010”.
4. Kerjakanlah untuk setiap permasalahan dalam percobaan dan
kumpulkan hasilnya.
D. PERCOBAAN 1. Buatlah sebuah program sederhana (tidak menggunakan fungsi) untuk
menampilkan kalimat “Belajar Pascal”.
2. Analisa dan jelaskan program dengan menggunakan fungsi tanpa
parameter di bawah ini, dan bagaimana output programnya?.
uses wincrt; function tampil:string; begin tampil:='Belajar Pascal'; end; begin writeln (tampil); end.
3. Bandingkan kedua program di atas, jelaskan perbedaannya dan
persamaannya serta simpulkan!.
4. Di bawah ini merupakan fungsi tanpa parameter untuk membuat garis.
Namun program tersebut dapat diefisiensikan tanpa menggunakan
fungsi. Efisiensikan program di bawah ini hingga menjadi program
sederhana tanpa menggunakan fungsi!.
Algoritma & Pemrograman II
15 By: Demz
uses wincrt; type huruf = string[18]; function garis:huruf; begin garis:='‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐'; end; begin writeln (garis); writeln ('TEKNIK INFORMATIKA'); writeln (garis); end.
5. Bandingkan program No.4 dengan program yang telah diefisiensikan
dan simpulkan.
Algoritma & Pemrograman II
16 By: Demz
PRAKTIKUM 5 (2/2) FUNGSI
A. TUJUAN PRAKTIKUM 1. Memahami parameter dalam fungsi
B. TEORI DASAR
PARAMETER DALAM FUNGSI
Sama halnya dengan prosedur, parameter dalam fungsi dapat dikirimkan
secara nilai (by value) atau secara acuan (by reference). Penulisan judul
fungsi yang menggunakan parameter dengan pengiriman secara nilai dapat
dilihat pada contoh penulisan berikut:
Function Hitung (a,b:integer):integer;
Sedangkan penulisan judul fungsi yang menggunakan parameter dengan
pengiriman secara acuan adalah dengan menambahkan kata cadangan Var.
hal ini dapat dilihat pada contoh penulisan berikut:
Function Hitung (var a,b:integer):integer;
Pengiriman parameter dengan secara acuan akan mengakibatkan
perubahan nilai parameter pada fungsi juga merubah nilai parameter pada
modul yang mengirimkannya. Dengan demikian fungsi yang
menggunakan pengiriman parameter secara acuan ini mirip dengan
prosedur, yaitu parameter yang dikirimkan secara acuan tersebut dapat
dimanfaatkan sebagai hasil balik.
C. TUGAS PENDAHULUAN 1. Buatlah setiap program pada percobaan dan kumpulkan sebelum
memulai praktikum.
D. PERCOBAAN 1. Buatlah sebuah program dengan menggunakan fungsi untuk
menghitung luas sebuah luas bangun persegi panjang (gunakan
pengiriman parameter secara nilai).
Algoritma & Pemrograman II
17 By: Demz
2. Apa keluaran dari program di bawah ini?, dan analisislah fungsi yang
digunakan!.
uses wincrt; Function Hitung(Var A,B : integer): integer; Begin Hitung := A + B; End; Var X,Y : integer; Begin Write('Nilai X ? '); Readln(X); Write('Nilai Y ? '); Readln(Y); Writeln; Writeln(X,' + ',Y,' = ',Hitung(X,Y)); End.
3. Buatlah sebuah program dengan menggunakan fungsi (parameternya
dikirim secara acuan) untuk menghitung besar energy kinetic. Besar
energy kinetic dapat dihitung dengan menggunakan persamaan
Ek=1/2mv2, dimana m adalah massa dan v merupakan kecepatan yang
diinput melalui keyboard.
4. Buatlah fungsi dalam sebuah program untuk menentukan nilai terbesar
dari dua buah nilai bertipe data integer yang diinputkan.
Algoritma & Pemrograman II
18 By: Demz
PRAKTIKUM 6 (1/2) REKURSI
A. TUJUAN PRAKTIKUM 1. Memahami konsep dan kondisi pengakhiran rekursi
B. TEORI DASAR
PENGERTIAN REKURSI
Rekursi (recursion) merupakan proses dari suatu sub program (dapat
berupa prosedur atau fungsi) yang memanggil dirinya sendiri.
KONDISI PENGAKHIRAN REKURSI
Jika kita menulis suatu fungsi atau prosedur rekursi, yang perlu
diperhatikan adalah fungsi atau prosedur tersebut harus mendukung suatu
kondisi akhir dari proses rekursi. Kondisi ini diperlukan untuk mencegah
terjadinya proses rekursi yang tidak berujung (indefinite), yaitu proses
rekursi akan terus dilakukan tanpa henti.
Komdisi pengakhiran rekursi dapat dilakukan dengan menggunakan
statement penyeleksian kondisi. Rekursi akan dihentikan bila kondisi telah
memenuhi syarat.
C. TUGAS PENDAHULUAN 1. Buatlah penyelesaian untuk setiap permasalahan pada percobaan dan
kumpulkan sebelum memulai praktikum.
D. PERCOBAAN 1. Analisislah output dari program di bawah ini, mengapa demikian?
uses wincrt; procedure rekursi; begin write ('INFORMATIKA 2010'); rekursi; end; begin rekursi; end.
Algoritma & Pemrograman II
19 By: Demz
2. Analisislah output dari program yang berikut ini, mengapa demikian?
uses wincrt; var akhir:word; procedure rekursi; begin if akhir<12 then begin writeln ('INFORMATIKA 2010'); akhir:=akhir+1; rekursi; end; end; begin akhir:=0; rekursi; end.
3. Bandingkan program No.1 dan program No.2 kemudian simpulkan!
4. Lengkapilah dan perbaikilah program di bawah ini hingga dapat
dijalankan untuk menampilkan deret bilangan.
prosedur deret(u; integer); begin write (u:3): if u<12 then deret(u+1); end; var u:integer begin u:=0; deret; end.
Algoritma & Pemrograman II
20 By: Demz
PRAKTIKUM 7 (2/2) REKURSI
A. TUJUAN PRAKTIKUM 1. Memahami penggunaan rekursi
B. TEORI DASAR Telah diketahui bahwa suatu fungsi atau prosedur dalam bahasa Pascal
dapat bersifat rekursif. Artinya, fungsi atau prosedur tersebut dapat
memanggil dirinya sendiri. Hal ini dapat dimanfaatkan dalam program
untuk menghitung faktorial, perkalian dua bilangan positif, bilangan
fibonaci, dll.
Sebagai contoh, program untuk menghitung faktorial. faktorial adalah
1x2x3…n (dengan asumsi n>3) dan dapat dirumuskan sebagai berikut:
N!=N*(N-1)*(N-2)*…*1
Perumusan ini dapat didefinisaikan secara rekursi sebagai berikut:
N!=N*(N-1)!
Misalnya akan dihitung 4!:
faktorial (4) = 4 * faktorial (3) 3 * faktorial (2)
2 * faktorial (1) 1 * faktorial (0)
1 = 4 * 3 * 2 * 1 * 1 = 24
Contoh lain dari proses rekursi adalah perkalina dari dua bilangan bulat
positif. Hasil perkalian A*B untuk A dan B merupakan bilangan bulat
positif dapat didefinisikan sebagai A ditambah dengan nilainya sendiri
sebanyak B kali. Proses rekursi ini selanjutnya dapat didefinisikan:
A*B=A untuk B=0
A*B=A+A*(B-1) untuk B>1
Algoritma & Pemrograman II
21 By: Demz
C. TUGAS PENDAHULUAN 1. Berikan solusi untuk setiap permasalahan pada percobaan dan
kumpulkan sebelum memulai praktikum.
D. PERCOBAAN 1. Di bawah ini merupakan prosedur untuk menghitung faktorial.
Lengkapilah prosedur tersebut hingga menjadi sebuah program
lengkap untuk menghitung nilai faktorial dari bilangan yang
diinputkan melalui keyboard.
procedure faktorial (n:byte; var hasil:longint); begin if n<=1 then hasil:=1 else begin faktorial(n‐1,hasil); hasil:=n*hasil; end; end;
2. Program di bawah ini merupakan program untuk menghitung perkalian
dua bilangan bulat positif. Analisislah program tersebut dan
simpulkan!.
program hasilkali; uses wincrt; function kali (a,b:integer):integer; begin if b=1 then kali:=a else kali:=a+kali(a,b‐1) end; var bil1,bil2:integer; begin write ('Bilangan pertama ='); readln (bil1); write ('Bilangan kedua ='); readln (bil2); writeln; writeln (bil1,'x',bil2,' = ',kali(bil1,bil2)); end.
Algoritma & Pemrograman II
22 By: Demz
PRAKTIKUM 8 (1/2) ARRAY (LARIK)
A. TUJUAN PRAKTIKUM 1. Memahami pendeklarasian Array
2. Memahami Array satu dimensi
B. TEORI DASAR Array adalah tipe data terstruktur yang terdiri dari sejumlah komponen-
komponen yang mempunyai tipe sama. Komponen-komponen tersebut
disebut sebagai komponen type, larik mempunyai jumlah komponen yang
jumlahnya tetap. Banyaknya komponen dalam larik ditunjukkan oleh suatu
indeks, dimana tiap komponen di array dapat diakses dengan menunjukkan
nilai indeksnya atau subskript. Array dapat bertipe data sederhana seperti
byte, word, integer, real, bolean, char, string dan tipe data scalar atau
subrange. Tipe larik mengartikan isi dari larik atau komponen-
komponenya mempunyai nilai dengan tipe data tersebut.
Contoh:
Var
Untai : array[1..50] of Integer;
Pada contoh Array dengan nama untai di atas telah dideklarasikan dengan
tipe integer, dengan jumlah elemen maksimum 50 elemen, nilai dari
elemen array tersebut di atas harus bertipe integer.
Contoh Program: Uses winCrt; Var Bilangan : array[1..50] of Integer; Begin Bilangan[1]:=3; Bilangan[2]:=29; Bilangan[3]:=30; Bilangan[4]:=31; Bilangan[5]:=23; Writeln('nilai varibel bilangan ke 3 =',Bilangan[3]); End.
Algoritma & Pemrograman II
23 By: Demz
Array juga dapat dideklarasikan bersama dengan tipe yang beragam seperti contoh dibawah ini: Program Contoh_Deklarasi_Array_Beragam; Uses winCrt; Var NPM : array[1..20] of string[10]; Nama : array[1..20] of string[25]; Nilai : array[1..20] of real; Umur : array[1..20] of byte; banyak,i : integer; Begin ClrScr; Write('Isi berapa data array yang diperlukan :');Readln(banyak); For i := 1 to banyak Do Begin Write('NPM =');Readln(NPM[i]); Write('Nama =');readln(Nama[i]); Write('Nilai=');readln(Nilai[i]); Write('Umur =');readln(Umur[i]); End; {cetak varibel array} Writeln('NPM NAMA NILAI UMUR '); For i:= 1 to banyak Do Begin Writeln(Npm[i]:10,Nama[i]:25,Nilai[i]:3:2,' ',Umur[i]:3); End; Readln; End.
Untuk deklarasi array dapat digunakan beberapa cara seperti berikut ini:
Type
Angka = String[20];
Var
Nama : Array [1..50] of Angka;
Begin
.
.
End.
Deklarasi tipe indeks subrange integer Indeks pada array dapat tipe skalar
atau subrange, tetapi tidak bisa real.
Algoritma & Pemrograman II
24 By: Demz
Contoh:
Var
Nilai : Array[1..10] of Integer; pada contoh ini array nilai mempunyai 10 buah elemen yaitu dari 1 sampai 10.
Array tersebut dapat dideklarasikan dengan type seperti berikut ini :
Type
Skala = 1..10;
Var
Nilai : Array [skala] of Integer;
atau :
Type
Skala = 1..10;
Y = Array[skala] of Integer;
Var
Nilai : Y;
C. TUGAS PENDAHULUAN 1. Buatlah penyelesaian dari setiap permasalahan pada percobaan.
D. PERCOBAAN 1. Analisislah program berikut dan bagaimana outputnya?
Program Contoh; Uses wincrt; Var nilai: array[1..5] of Integer; Begin nilai[1]:=100; nilai[2]:=90; nilai[3]:=80; nilai[4]:=61; nilai[5]:=73; Writeln ('Nilai ke‐4 adalah =',nilai[4]); Readln; End.
2. Ubahlah program No.1 di atas, dimana nilai-nilainya diinput melalui
keyboard.
Algoritma & Pemrograman II
25 By: Demz
3. Bandingkan kedua program di atas dan simpulkan.
4. Di bawah ini merupakan program untuk menginput nama dan nilai
mahasiswa sebanyak 10 data dan menampilkan kembali inputan
tersebut, dimana variabel nama dan nilai bertipe data Array. Namun
program berikut ini masih terdapat kekurangan, lengkapi dan
perbaikilah program tersebut hingga dapat dijalankan.
uses wincrt; var i:integer; nama:array [1..10] of string; nilai:array [1…10] of integer; begin for i=1 to 10 do; begin write ('Nama ke‐',i,' ='); readln (nama[1]); write ('Nilai ke‐',i,'='); readln (nilai[i]); writeln; end; writeln ('‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐'); writeln ('Nama Nilai'); writeln ('‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐'); for i:= 1 to 10 do begin writeln (nama[1],' ',nilai[i]) end; writeln ('‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐'); end; end.
5. Ubahlah program No.4 tersebut, dimana banyaknya data tergantung
dari inputan user dan di akhir program muncul pertanyaan “apakah
akan mengulang program (y/t)?”. Jika di tekan y maka program akan
mengulang kembali, jika ditekan t program akan berhenti.
Algoritma & Pemrograman II
26 By: Demz
PRAKTIKUM 9 (2/2) ARRAY (LARIK)
A. TUJUAN PRAKTIKUM 1. Memahami Array multidimensi
B. TEORI DASAR Pada pembahasan sebelumnya, indeks atau subscript pada larik (array)
jumlahnya hanya sebuah dan larik ini disebut dengan Array dimensi satu
(one dimensional array). Larik dapat juga berdimensi lebih dari satu yang
disebut dengan larik dimensi banyak (multidimensional array), yang dapat
berdimensi dua (two dimensional array), berdimensi tiga (three
dimensional array) dan seterusnya.
Pascal memungkinkan larik berdimensi lebih dari 3, yang membatasi
hanya kapasitas dari memory computer (RAM). Secara prinsip, larik
dimensi lebih dari 2 penanganannya sama dengan larik dimensi 2 dan pada
pembahasan ini hanya akan dibahas larik dimensi 2 saja.
Larik dimensi 2 mewakili suatu bentuk tabel atau matrik, yaitu indeks
yang pertama dapat menunjukkan baris dan indeks yang kedua dapat
menunjukkan kolom dari tabel atau matrik. Bentuk deklarasinya sebagai
berikut:
Nama-larik=array[tipe-indeks1] of array[tipe-indeks2] of tipe-larik
Atau dapat ditulis:
Nama-larik=array[tipe-indeks1, tipe-indeks2] of tipe-larik
C. TUGAS PENDAHULUAN 1. Carilah di internet sebuah contoh program Array 2 dimensi, kemudian
anlisislah output program tersebut.
2. Selesaikanlah semua permasalahan pada percobaan, dan kumpulkan
sebelum memulai praktikum
.
Algoritma & Pemrograman II
27 By: Demz
D. PERCOBAAN 1. Analisislah output dari program berikut ini:
Uses winCrt; Var matrix:Array[1..3,1..2] of Integer; i,j :integer; Begin matrix[1,1]:=1; matrix[1,2]:=2; matrix[2,1]:=3; matrix[2,2]:=4; matrix[3,1]:=5; matrix[3,2]:=6; for i:= 1 to 3 Do Begin for J:= 1 to 2 Do begin Write(matrix[i,j]:5); end; writeln; End; End.
2. Ubahlah program No.1 di atas, dimana nilai-nilainya diinput melalui keyboard.
3. Buatlah sebuah program yang menampilkan sebuah matrik (terdiri dari 4 kolom dan 2 baris), dimana setiap elemennya diinput oleh user.
4. Analisalah program penjumlahan 2 buah matrik di bawah ini:
Program Penjumlahan_Matrik; Uses winCrt; Var Matrik1,Matrik2, Hasil : Array[1..3,1..2] of Integer; i,j : Integer; Begin ClrScr; { input matrik ke satu } Writeln('input elemen matrik pertama'); For i := 1 to 3 Do Begin For j := 1 to 2 Do Begin Write('Elemen baris ‐',i,' Kolom ‐',j,'= ');
Algoritma & Pemrograman II
28 By: Demz
Readln(matrik1[i,j]); End; End; writeln; {input matrik ke dua} Writeln('input elemen matrik kedua'); For i:= 1 to 3 Do Begin For j:= 1 to 2 Do Begin Write('Elemen baris ‐',i,' kolom ‐',j,'= '); Readln(matrik2[i,j]); End; End; writeln; {proses penjumlahan tiap elemen} For i := 1 to 3 Do Begin For j:= 1 to 2 Do Begin Hasil[i,j]:=Matrik1[i,j]+Matrik2[i,j]; End; End; {proses cetak hasil} writeln ('HASIL PENJUMLAHAN:'); For i:= 1 to 3 Do Begin For j:= 1 to 2 Do Begin Write(Hasil[i,j]:6); End; Writeln; End; Readln; End.
Algoritma & Pemrograman II
29 By: Demz
PRAKTIKUM 10 (1/3) RECORD
A. TUJUAN PRAKTIKUM 1. Memahami pendeklarasian record
B. TEORI DASAR Record merupakan suatu kumpulan data item yang masing-masing
mempunyai jenis data berbeda. Data item yang merupakan elemen record
biasanya disebut dengan FIELD.
CARA MENDEKLARASIKAN RECORD
Bentuk umum deklarasi suatu variabel berjenis record adalah sbb:
TYPE identifier = RECORD Nama_field_1 : jenis; Nama_field_2 : jenis; …………………….. …………………….. nama_field_n : jenis; END; 1. Contoh 1:
VAR nilai : RECORD Nilai_1 : integer; Nilai_2 : integer;
END;
2. Contoh 2:
TYPE date = RECORD Tanggal : 1..31; Bulan : 1…12; Tahun : 1900..2000;
END; VAR event1,event2 : ARRAY [1..10] OF date;
3. Contoh 3:
TYPE account = RECORD cust_no : integer; cust_type : char; cust_balance : real;
Algoritma & Pemrograman II
30 By: Demz
END; VAR customer : account;
MEMPROSES VARIABEL BERJENIS RECORD
Perhatikan deklarasi variabel berikut:
TYPE nilai : RECORD Nilai1 : real; Nilai2 : real; END; VAR x,y : nilai; Untuk memproses variabel x dan / atau y dilakukan dengan cara
menyebutkan field designatornya, yang terdiri dari atas:
Nama_record.nama_field Pada deklarasi diatas yang dimaksud dengan field designator-nya adalah :
x.nilai1 x.nilai2 y.nilai1 y.nilai2 Jadi jika ingin membaca variabel x atau y atau keduanya, maka bentuk
statement-nya adalah:
READ (x.nilai1, x.nilai2, y.nilai1, y.nilai2);
C. TUGAS PENDAHULUAN 1. Buatlah penyelesaian dari setiap permasalahan pada percobaan.
D. PERCOBAAN 1. Di bawah ini merupakan contoh program penggunaan tipe data record.
Namun program tersebut belum lengkap dan masih terdapat kesalahan.
Lengkapi dan perbaikilah program tersebut hingga dapat dijalankan.
uses wincrt; type hasil:record sisi :integer; luas :integer;
Algoritma & Pemrograman II
31 By: Demz
keliling:integer; var bujursangkar:hasil; begin write ('Masukkan panjang sisi ='); readln (bujursangkar.sisi); luas:=bujursangkar.sisi*bujursangkar.sisi; keliling=4*bujursangkar.sisi; writeln; writeln ('Luasnya =', luas); writeln ('kelilingnya =', keliling); end.
2. Ulangi program No.1 di atas dengan mengubah deklarasi tipe data
recordnya, yaitu dideklarasikan langsung pada deklarasi variabel.
3. Bandingka program No.1 dan program No.2 kemudian simpulkan.
4. Buatlah sebuah program dengan menggunakan tipe data record untuk
menginput identitas mahasiswa yang terdiri dari nama, NIM, jenis
kelamin, agama dan alamat. Kemudian tampilkan kembali identitas
yang telah diinput tersebut.
Algoritma & Pemrograman II
32 By: Demz
PRAKTIKUM 11 (2/3) RECORD
A. TUJUAN PRAKTIKUM 1. Memahami statement With
2. Memahami Array bertipe record
3. Memahami Array dalam Record
B. TEORI DASAR STATEMENT WITH
Selain cara yang telah disebutkan diatas, untuk memproses suatu record
dapat digunakan statement WITH.
Dengan statement ini penulisannya akan lebih sederhana. Bentuk Umum
penulisan statement WITH ini adalah:
WITH nama_record DO statement
Perhatikan deklarasi dibawah ini :
TYPE x = RECORD No : integer; Kode : char; Juml : integer; Harga : real;
END; VAR p,q : x; Untuk membaca variabel p dan q di atas dengan memanfaatkan statement
WITH bentuknya menjadi:
WITH p,q DO read (no, kode, juml, harga); Bandingkan jika digunakan cara sebelumnya :
Read(p.no, p.kode, p.juml,p.harga,q.no,q.kode,q.juml,q.harga);
ARRAY BERTIPE RECORD
Tipe terstruktur (Array) dapat pula bertipe record. Perhatikan contoh
berikut:
type barang=RECORD
Algoritma & Pemrograman II
33 By: Demz
namabrg:string[20]; jmlbrg:byte; hargabrg:real; total:real;
end; var
jual:array [1..10] of barang i,j:integer; tot1:real;
ARRAY DALAM RECORD
Elemen suatu array juga bisa berupa record. Sebagai contoh dapat dilihat
di bawah ini:
Type barang= RECORD nmbrg:string[20]; jmlbrg:array[1..3]of byte; hrgbrg:real; total:real;
end; var
jual:barang; tbarang, i:integer;
C. TUGAS PENDAHULUAN 1. Buatlah penyelesaian dari setiap permasalahan pada percobaan.
D. PERCOBAAN 1. Buatlah sebuah program dengan menggunakan tipe data record untuk
menghitung besar energy potensial, dimana nilai m, g dan h diinput
melalui keyboard.
2. Ubahlah program No.1 dengan menggunakan statement WITH.
3. Bandingkan kedua program di atas dan simpulkan.
4. Analisislah program yang menggunakan Array bertipe Record berikut
ini:
uses wincrt; type mahasiswa=record nama :string; kelas :string;
Algoritma & Pemrograman II
34 By: Demz
nilai :integer; ket:string; end; var mhs:array [1..62] of mahasiswa; data,i:integer; begin write ('banyak data ='); readln (data); writeln; for i:=1 to data do begin write ('nama ='); readln (mhs[i].nama); write ('kelas='); readln (mhs[i].kelas); write ('nilai='); readln (mhs[i].nilai); writeln; if mhs[i].nilai>65 then mhs[i].ket:='lulus' else mhs[i].ket:='tdk lulus'; end; writeln ('‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐'); writeln ('no nama kelas nilai ket'); writeln ('‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐'); for i:= 1 to data do begin writeln (i,' ',mhs[i].nama,' ',mhs[i].kelas,' ',mhs[i].nilai,' ',mhs[i].ket); end; writeln ('‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐'); end.
5. Analisislah program yang memanfaatkan Array dalam Record di
bawah ini:
uses wincrt; type mhs=record
Algoritma & Pemrograman II
35 By: Demz
nama,nim,agama,alamat:string; jk:char; hobby:array [1..10] of string; end; var mahasiswa:mhs; jum_hobi,i:integer; begin write ('Nama ='); readln (mahasiswa.nama); write ('NIM ='); readln (mahasiswa.nim); write ('JK ='); readln (mahasiswa.JK); write ('Agama ='); readln (mahasiswa.agama); write ('Alamat='); readln (mahasiswa.alamat); writeln; write ('Berapa hobi anda ='); readln (jum_hobi); for i:=1 to jum_hobi do begin write ('Hobby ke‐',i,'='); readln (mahasiswa.hobby[i]); end; end.
Algoritma & Pemrograman II
36 By: Demz
PRAKTIKUM 12 (3/3) RECORD
A. TUJUAN PRAKTIKUM 1. Memahami record di dalam record
2. Memahami record bervariasi
B. TEORI DASAR RECORD DI DALAM RECORD
Didalam sebuah record memungkinkan berisi record lain. Sebagai
gambaran hal ini, perhatikan deklarasi berikut:
RecTanggal = Record Tanggal, Bulan, Tahun :Integer End; RecPegawai = Record Nomor : LongInt; Nama : String [35]; TglLahir : RecTanggal; Gaji : LongInt End;
Tampak bahwa tipe record bernama RecPegawai berisi record yang lain
(RecTanggal).
Hal yang menarik yang perlu diperhatikan adalah cara mengakses field
seperti Tanggal, Bulan dan Tahun. Notasi yang diperlukan adalah sebagai
berikut.
Nama_variabel.TglLahir.Tanggal Nama_variabel.TglLahir.Bulan Nama_variabel.TglLahir.Tahun
RECORD BERVARIASI
Record bervaiasi merupakan suatu record dengan field yang bisa berubah
pada saat program berjalan. Hal yang perlu diperhatikan adalah bahwa
Algoritma & Pemrograman II
37 By: Demz
beberapa field yang berada dalam record tidak pernah muncul dalam
serempak, hanya akan ada satu field yang terpakai dalam satu saat.
Record varian akan memberikan fasilitas untuk menentukan field yang
diperlukan pada saat program berjalan (RUN-TIME), berdasarkan
keperluannya.
Bentuk umum Record Varian:
TYPE namarecord = RECORD
Nama_field_1 : jenis; Nama_field_2 : jenis; …………………….. nama_field_n : jenis; Case Tagfield:jenis Of nama_tagfield : (Nama_field:jenis); nama_tagfield : (Nama_field_1, Nama_field_2:jenis); …………………….. nama_tagfield : (Nama_field_n:jenis);
END;
C. TUGAS PENDAHULUAN 1. Carilah di internet sebuah contoh program yang menggunakan record
variant dan record di dalam record.
2. Jelaskan dan analisislah kedua program tersebut.
3. Buatlah solusi dari setiap permasalahan pada percobaan.
D. PERCOBAAN 1. Analisislah sebuah program yang menggunakan record di dalam record
berikut ini:
uses wincrt; type RecTanggal = Record tanggal,bulan,tahun:integer; end; RecPegawai = Record Nomor :Longint; Nama :string[35]; TglLahir :RecTanggal; Gaji :longint; end;
Algoritma & Pemrograman II
38 By: Demz
var DataPeg:RecPegawai; begin clrscr; DataPeg.Nomor:=56789; DataPeg.Nama :='Demz'; DataPeg.TglLahir.Tanggal:=12; DataPeg.TglLahir.Bulan:=7; DataPeg.TglLahir.Tahun:=1990; DataPeg.Gaji:=750000; writeln ('Nama Pegawai =',DataPeg.Nama); writeln ('Tanggal Lahir=',DataPeg.TglLahir.Tanggal,'/', DataPeg.TglLahir.Bulan,'/', DataPeg.TglLahir.Tahun); end.
2. Ubahlah program di atas dengan menggunakan statemen WITH dan
semua elemen seperti nomor, nama, ttl dst diinput melalui keyboard.
Kemudian tampilkan kembali inputan tersebut.
3. Analisislah program yang menggunakan record bervariasi di bawah
ini:
{Contoh Program Record Varian Sederhana,by:Demz} uses wincrt; type statusmahasiswa=(single,menikah); data=record nama:string[25]; nim :string[12]; case status:statusmahasiswa of single:(); menikah:(); end; var mahasiswa:array[1..20] of data; jawab:char; n,i:integer; begin write ('jumlah data='); readln (n); for i:=1 to n do
Algoritma & Pemrograman II
39 By: Demz
begin with mahasiswa[i] do begin writeln; write ('Nama ='); readln (nama); write ('NIM ='); readln (NIM); write ('Status (Single (S) / Menikah (M)) ='); readln (jawab); if upcase (jawab)='S' then begin status :=single; end; if upcase (jawab)='M' then begin status:=menikah; end; end; end; writeln; WRITELN ('‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐'); writeln ('Nama Nim Status'); writeln ('‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐'); for i:=1 to n do begin with mahasiswa[i] do begin write (nama,' ',nim); case status of single :writeln (' S'); menikah:writeln (' M'); end; end; end; WRITELN ('‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐'); end.
top related