LAPORAN RESMI
PRAKTIKUM ALGORITMA PEMROGRAMAN (ALPRO)
MODUL V
“ARRAY”
TGL PRAKTIKUM : 06 Desember 2012
NAMA : Azza Devi Manzilia
NRP : 120411100110
KELAS/KELOMPOK : D/2
DOSEN PENGAMPU : ARIK KURNIAWATI,S.Kom.,M.kom
ASISTEN : ANDI HARTONO
|
Disetujui : ....../……./………../Bangkalan
|
(ANDI HARTONO)
10.04.111.00020
|
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA
2012 / 2013
BAB I
PENDAHULUAN
1.1
Latar belakang
Pembuatan koding yang panjang relatif membutuhkan variabel yang banyak.
Pada dasarnya variabel yang banyak terlalu menyusahkan si pembuat untuk
mengingat nama variabel yang telah di tulisnya, oleh sebab itu muncullah array
yang merupakan tipe terstruktur yang terdiri dari sejumlah elemen-elemen yang
bertipe sama. Adanya array dapat dimanfaatkan untuk mempermudah dalam
menuliskan variabel sehingga kita lebih mudah dalam mengingatnya.
1.2
Tujuan
1. Agar praktikan dapat mengerti dan paham tentang array
2. Agar praktikan dapat menggunakan array
BAB II
DASAR TEORI
2.1.
Teori
Larik
adalah tipe terstruktur yang terdiri dari sejumlah elemen-elemen yang bertipe
sama. Banyaknya elemen dalam suatu larik ditunjukkan oleh suatu indeks yang
harus merupakan tipe data yang menyatakan keterurutan, misalnya integer atau
karakter (karena ia menyatakan posisi data). Tiap-tiap elemen di larik dapat
diakses langsung melalui indeksnya. Suatu larik memiliki jumlah elemen yang
jumlahnya tetap, sehingga jumlah elemen larik tidak dapat diubah selama
pelaksanaan program. Gambar 5.1. memperlihatkan struktur deklarasi Larik di
dalam Bahasa Pascal.
(*
DEKLARASI *)
var
NamaLarik : array[1..JumlahELemen]
of TipeElemen;
Gambar
5.1. Struktur Deklarasi Bahasa Pascal Untuk Larik
Cara
mengacu elemen larik : NamaLarik[indeks] Larik dapat berupa larik satu dimensi
ataupun lebih dari satu dimensi. Matriks merupakan contoh larik yang memiliki
dimensi lebih dari satu. Struktur penyimpanan matriks di dalam memori utama
yang setiap individu elemennya diakses dengan menggunakan dua buah indeks (yang
biasanya dikonotasikan dengan baris dan kolom). Karena matriks sebenarnya
adalah larik, konsep umum dari larik juga berlaku untuk matriks, yaitu:
·
Kumpulan elemen yang bertipe sama,
dapat dapat berupa tipe dasar (integer, real, boolean, char,
dan string), atau tipe terstruktur seperti record.
·
Setiap elemen data dapat diakses
secara langsung jika indeksnya (baris dan kolom) diketahui.
·
Merupakan struktur data yang
statik, artinya jumlah elemennya sudah dideklarasikan terlebih dahulu di dalam
bagian DEKLARASI dan tidak bisa diubah selama pelaksanaan program
Elemen
matriks diakses melalui indeks baris dan indeks kolomnya. Jika indeks baris
dinyatakan dengan i dan indeks kolom dinyatakan dengan j, maka notasi
algoritmik untuk mengakses elemen pada baris i dan kolom j adalah
nama_matriks[i,j]
BAB III
TUGAS PENDAHULUAN
3.1
Prepraktikum
Kerjakan
tugas-tugas di bawah ini sebelum praktikum dimulai.
1.
Sebutkan dan jelaskan keuntungan-keuntungan
penggunaan larik dan matriks!
2.
Kapankan sebaiknya larik dan
matriks digunakan? Jelaskan!
3.
Buat algoritma untuk menentukan
nilai min, kuartil bawah, kuartil tengah, kuartil atas dan nilai max dari sejumlah
bilangan bulat yang dimasukkan melalui piranti masukan.
Contoh:
Jumlah bilangan yang dimasukkan: 11
Bilangan ke-1: 75
Bilangan ke-2: 60
Bilangan ke-3: 70
Bilangan ke-4: 55
Bilangan ke-5: 85
Bilangan ke-6: 65
Bilangan ke-7: 80
Bilangan ke-8: 90
Bilangan ke-9: 50
Bilangan ke-10: 95
Bilangan ke-11: 100
Nilai Min : 50
Kuartil Bawah : 60
Kuartil Tengah: 75
Kuartil Atas : 90
Nilai Max :100
4.
Buat algoritma untuk menghitung
hasil perkalian antara dua buah matriks
Masukan : nilai-nilai dalam dua buah matriks
Keluaran : hasil perkalian dua buah matriks
JAWABAN
1. Larik
:
ü Larik
dapat menyimpan sejumlah data yang bertipe sama, dan data tersebut akan di
simpan sementara, untuk selanjutnya data tersebut kita proses dan paling mudah
pengoperasiannya.
ü Dapat
menghindari penggunaan nama-nama peubah yang banyak.
ü Instruksi
pembacaan/penulisan seluruh elemen larik cukup ditulis satu kali saja di dalam
sebuah konstruksi pengulangan.
Matriks:
ü
Jumlah elemennya sudah di
deklarasi terlebih dahulu. Tidak
dapat di ubah selama pelaksanaan program.
ü
Penyimpanan dan pemprosesan data
secara beruntun atau berurutan.
2.
ü Penggunaan larik dan matriks di gunakan pada saat kita memiliki data
dalam jumlah banyak dan ingin menyimpan serta menggunakan data tersebut selama
pelaksanaan program.
3. Algoritma
algoritma untuk menentukan nilai min, kuartil bawah, kuartil tengah, kuartil atas dan nilai max
procedure tukar(output var
a,b : real)
Deklarasi:
bantu : real { indeks lariks}
Endprocedure.
Procedure urut (input var x:
car ; input n: integer)
Deklarasi:
var i,j : integer{indeks larik}
end.
Procedure
ganjil(input var x:car ;output n: integer)
Deklarasi:
var
q1,q2,q3:integer{indeks larik}
min,max:integer
write
end.
proceduregenap(output var
x:car ; output n: integer)
deklarasi:
var q1,q2,q3:integer{indeks larik}
median:real
min,max:integer
write
end.
Deklarasi: {Program utama}
var n,i : integer
data : car
Write n
Write data(i)
End.
4. Algoritma perkalian
antara dua buah matriks
Algoritma
matriks
{membuat
program untuk menhitung perkalian matriks}
Deklarasi(*program
utama*)
x1,xy,y2:integer
M1:array[1..80,1..80]of
integer
M2:array[1..80,1..80]of
integer
M3:array[1..80,1..80]of
integer
Procedure
mA(*prosedur matrik 1*)
Deklarasi(*variabel
lokal*)
b,k:integer
Deskripsi(*prosedur
ma*)
for
b←1 to x1 do
for
k←1 to xy do
Write(‘masukkan data
ma[‘,b,’,’,k,’]:’)
Readln(m1[b,k])
endfor
endfor
Procedure
mB(*Prosedur Matriks 2*)
DEKLARASI(*Variabel
lokal *)
b,k
: integer
DESKRIPSI
(*Prosedur mB*)
for
b ß
1 to xy do
for
k ß1
to y2 do
Write(‘Masukkan
data mB[‘,b,’k,’]:’)
Readln(m2[b,k])
Endfor
Endfor
Proscedure
hasil(*Prosedur Hasil M3*)
DEKLARASI
(*Variabel lokal*)
b,k,l
: integer
DESKRIPSI
(*Prosedur hasil*)
for
bß
1 to x1 do
for
k ß
1 to xy do
for
l ß
1 to y2 do
m3[b,l]ß
m3[b,l]+m1[b,k]*m2[k,l]
endfor
endfor
endfor
for
b ß
1 to x1 do
for
k ß
1 to y2 do
Writeln(m3[b,k],’’)
endfor
Writeln(‘’)
endfor
DESKRIPSI
(*Program Utama*)
Write(‘Masukkan
banyak baris matriksA : ‘)
Readln(x1)
Write(‘Masukkan
baris mA dan kolom mB : ‘)
Readln(xy)
Write(‘Masukkan
banyak kolom matriksB : ‘)
Readln(y2)
mA
mB
writeln(‘Hasil
Perkalian: ‘)
hasil
BAB IV
IMPLEMENTASI
4.1.
Kegiatan Praktikum
Pada
saat praktikum, kerjakan tugas-tugas berikut ini:
1. Buat program untuk tugas prepraktikum 3!
2. Buat program untuk tugas prepraktikum 4!
jawaban
kegiatan praktikum
1. Koding Program pengurutan angka
Program Pengurutan_Angka;
uses
wincrt;
var
a
: array [1..100] of integer;
N,i,j,x
: integer;
Q1,
Q, Q2 : real;
begin
write('Jumlah Bilangan yang dimasukkan :
');readln(N);
for i:=1 to N do
begin
write('Bilangan ke-',i,' :
');readln(a[i]);
end;
for i:=1 to N-1 do
for j:=i+1 to N do
if a[i]>a[j] then
begin
x:=a[i];
a[i]:=a[j];
a[j]:=x;
end;
writeln;
for i:=1 to N do
write (a[i],' ');
If N mod 2 = 0 then
Q1 := ((a[(N div 4)]) + (a[(N div
4)+1]))/2
else Q1:= (a[(N div 4)+1]);
If N mod 2 = 0 then
Q := ((a[(N div 2)]) + (a[(N div
2)+1]))/2
else Q:= (a[(N div 2)+1]);
If N mod 2 = 0 then
Q2 := ((a[((N div 4)*3)]) + (a[((N div
2)*3)+1]))/2
else Q2:= ((a[((N div 4)*3)+1]));
writeln;
write
('Nilai Min : ',a[1]);writeln;
write
('Kuartil Bawah : ',Q1:0:2);writeln;
write
('Kuartil Tengah : ',Q:0:2);writeln;
write
('Kuartil Atas : ',Q2:0:2);writeln;
write
('Nilai Max : ',a[N]);writeln;
end.
2.
koding
perkalian dua matrik
program
x_mtrik;
uses
wincrt;
var
matrikA
: array[1..2, 1..3] of integer;
matrikB
: array[1..3, 1..2] of integer;
matrikC
: array[1..2, 1..2] of integer;
k,l,m
: integer;
begin
clrscr;
writeln('Elemen
Matrik A : ');
for
k:=1 to 2 do
begin
for m:=1 to 3 do
begin
write('matriks ke-',k,',',m,'=');
readln(matrikA[k,m]);
end;
end;
writeln;
writeln('Elemen
Matrik B : ');
for
m:=1 to 3 do
begin
for l:=1 to 2 do
begin
write('matriks ke-',m,',',l,'=');
readln(matrikB[m,l]);
end;
end;
for
k:= 1 to 2 do
begin
for l:=1 to 2 do
begin
matrikC[k,l]:=0;
for m:=1 to 3 do
begin
MatrikC[k,l]:=matrikC[k,l] +
matrikA[k,m] * matrikB[m,l];
end;
end;
end;
writeln;
for
k:=1 to 2 do
begin
for m:=1 to 3 do
begin
write(matrikA[k,m]:4);
end;
writeln;
end;
writeln('X');
for
m:=1 to 3 do
begin
for l:=1 to 2 do
begin
write(matrikB[m,l]:4);
end;
writeln;
end;
writeln('=');
for
k:=1 to 2 do
begin
for l:=1 to 2 do
begin
write(matrikC[k,l]:4);
end;
writeln;
end;
readln;
end.
4.2.
Tugas Akhir
Buatlah
algoritma dan terjemahkan dalam Bahasa Pascal untuk operasi invers matriks ordo
N!
Jawaban tugas akhir
ALGORITMA
Type
larik= array[1..3,1..3] of real
DEKLARASI
a,b,n: integer
M,M1 : larik
a1,a2,a3,a4:real
b1,b2,b3,b4,b5,b6:real
c1,c2,c3,c4,c5,c6,c7,c8,c9:real
det,inv : real
procedure tampilan1
DESKRIPSI
for
a← 1 to n do
for b← 1 to n do
write(M[a,b]:3:0)
endfor
endfor
endprocedure
procedure tampilan2
DESKRIPSI
for
a← 1 to 2 do
for b← 1 to 2 do
write(M[a,b]:5:1)
endfor
endfor
endprocedure
procedure tampilan3
DESKRIPSI
for
a← 1 to 3 do
for b← 1 to 3 do
write(M1[a,b]:6:1;
endfor
endfor
endprocedure
DESKRIPSI {PROGRAM UTAMA}
write('MASUKAN DATA SESUAI ORDO UNTUK
PENYESUAIAN INVERS')
write('MASUKAN ORDO MATRIK (n x
n)=')readln(n)
for
a← 1 to n do
for b← 1 to n do
write('M[',a,',',b,']=')readln(M[a,b])
endfor
endfor
tampilan1
if n=2 then
det← M[1,1]*M[2,2]-M[1,2]*M[2,1]
write('DETERMINAN:',det)
inv← 1/ det
a1← M[1,1]
a2← M[1,2]
a3← M[2,1]
a4← M[2,2]
M[1,1]← a4*inv
M[1,2]← -(a2*inv)
M[2,1]← -(a3*inv)
M[2,2]← a1*inv
write('INVERS MATRIK')
tampilan2
endif
if
n=3 then
b1← M[1,1]*M[2,2]*M[3,3]
b2← M[1,2]*M[2,3]*M[3,1]
b3← M[1,3]*M[2,1]*M[3,2]
b4← M[3,1]*M[2,2]*M[1,3]
b5← M[3,2]*M[2,3]*M[1,1]
b6← M[3,3]*M[2,1]*M[1,2]
det← (b1+b2+b3)-(b4+b5+b6)
writeln('DETERMINAN=',det)
inv← 1/det
write('INVERS MATRIK')
c1← M[2,2]*M[3,3]-M[2,3]*M[3,2]
c2← -(M[1,1]*M[3,3]-M[1,3]*M[3,1])
c3← M[2,1]*M[3,2]-M[2,2]*M[3,1]
c4← -(M[1,2]*M[3,3]-M[1,3]*M[3,2])
c5← M[1,1]*M[3,3]-M[3,1]*M[1,3]
c6← -(M[1,1]*M[3,2]-M[1,2]*M[3,1])
c7← M[1,2]*M[2,3]-M[1,3]*M[2,2]
c8← -(M[1,1]*M[2,3]-M[1,3]*M[2,1])
c9← M[1,1]*M[2,2]-M[1,2]*M[2,1]
M1[1,1]← c1*inv
M1[1,2]← c2*inv
M1[1,3]← c3*inv
M1[2,1]← c4*inv
M1[2,2]← c5*inv
M1[2,3]← c6*inv
M1[3,1]← c7*inv
M1[3,2]← c8*inv
M1[3,3]← c9*inv
tampilan3
endif
end.
4.3.
Tugas
tambahan
Buatlah program matriks
transpose dengan ordo N !
Jawaban
tugas tambahan
program
matrik_transpose;
uses wincrt;
var
m : array
[1..50,1..50] of integer;
b,k,baris,kolom:
integer;
begin
writeln
('PROGRAM MATRIKS TRANSPOSE');
write ('masukkan
baris : '); readln (baris);
write ('masukkan
kolom : '); readln (kolom);
for b:= 1 to
baris do
begin
for k:= 1 to kolom do
begin
write ('m[',b,',',k,'] :'); readln
(m[b,k]);
end;
end;
writeln
('MATRIK');
for b:= 1 to
baris do
begin
for k:= 1 to kolom do
begin
write (m[b,k]:4);
end;
writeln
end;
writeln
('MATRIKS TRANSPOSE');
for b:= 1 to
kolom do
begin
for k:= 1 to baris do
begin
write (m[k,b]:4);
end;
writeln
end;
end.
BAB V
PENUTUP
5.1.
Kesimpulan
Larik (array) adalah tipe
terstruktur yang terdiri dari sejumlah elemen-elemen yang bertipe sama
Banyaknya elemen dalam suatu larik ditunjukkan oleh suatu indeks yang harus
merupakan tipe data yang menyatakan keterurutan, misalnya integer atau karakter
(karena ia menyatakan posisi data) Tiap-tiap elemen di larik dapat diakses
langsung melalui Indeksnya Suatu larik memiliki jumlah elemen yang jumlahnya
tetap, sehingga jumlah elemen larik tidak dapat diubah selama pelaksanaan
program
5.2.
Saran
1. Kepada
asisten praktikum sebaiknya mnentukan berapa kelonggaran waktu yang diberikan
kepada yang terlambat
2. Untuk
kegiatan praktikum sebaiknya lebih di kondisikan lagi.
No comments:
Post a Comment