laporan praktikum algoritma pemrograman modul iv-aplikasi variabel berindex
Post on 09-Jan-2017
78 Views
Preview:
TRANSCRIPT
BAB I
PENDAHULUAN
A. Definisi Array (Variabel Berindex)
Variabel dengan tipe data tunggal (skalar) hanya dapat digunakan
untuk menyimpan sebuah nilai saja, sehingga untuk menyimpan beberapa
nilai sekaligus dalam suatu variabel khusus yang disebut dengan variabel
array atau variabel berindeks. Variabel array dapat digunakan untuk
menampung banyak data yang sejenis (numerik/string).
Array adalah tipe data dalam bahasa pascal yang digunakan untuk
menyimpan sekumpulan data sejenis sesuai dengan muatannya dalam suatu
variabel.Array disebut Variabel Berindex. Array sebagai tipe data berfungsi
untuk merekam data yang ada.
Pada array terdapat terminologi, yaitu :
1. Setiap rinci data tersebut dengan komponen atau elemen larik.
2. Setiap larik bisa dioperasikan dengan menggunakan pemilih elemen larik
uang yang disebut index atau subskrib. Dalam program, index atau
subskrib tersebut diletakkan di dalam tanda kurung kotak, [ ], setelah
nama larik yang akan dioperasikan.
Larik juga disebut peubah berindex atau peubah subskrib. Sesuai
dengan cacah index atau subskrib yang menentukan posisi elemen dikenal
larik dimensi satu dan larik dimensi banyak. Dalam larik dimensi satu posisi
elemen hanya dinyatakan oleh satu index. Dalam larik dimensi banyak posisi
setiap elemen ditentukan oleh lebih dari satu index. Contohnya pada Matriks.
B. Deklarasi Array
Pada peubah biasa maupun array juga harus dideklarasikan terlebih
dahulu sebelum bisa digunakan dalam program. Deklarasi peubah adalah
bagian yang diawali kata cadangan var. Dalam mendeklarasikan array, selain
mendefinisikan tipe array atau larik juga harus menentukan banyaknya index
Aplikasi Variabel Berindex 1
yang akan mengisi larik tersebut. Dengan kata lain menentukan cacah elemen
yang akan menempati larik tersebut.
Bentuk deklarasi larik dimensi satu adalah :nama : array [index] of type data
Larik juga dimungkinkan untuk digunakan pada variabel berindeks
yang berdimensi banyak, misalnya untuk dimensi dua adalah :
nama : array[1..100,1..100] of type data yang artinya matriks
tersebut disediakan tempat sebanyak 100 baris dan 100 kolom. (berordo 100X100).
keterangan :
array, of : kata cadangan yang harus ada
nama : nama larik yang akan dideklarasikan.
index : batasan index yang akan dideklarasikan (cacah elemennya).
type data : tipe larik bisa berupa Char, Integer, Real atau larik yang
lainnya(array).
Untuk index selalu digunakan tipe subjangkauan skalar atau tipe
terbilang. Index adalah nilai yang menunjukan nilai awal dan nilai akhir dari
index yang ada pada larik.
C. Array Berdimensi Dua
Array berdimensi 2 sering digunakan dalam operasi matriks. Array
berdimensi 2 terdiri atas 2 elemen yaitu baris dan kolom. Matriks adalah
daftar bilangan yang disusun dalam bentuk dua dimensi kolom dan baris.
Nilai-nilai dalam matriks disebut dengan elemen matrik. Pada suatu program
komputer, suatu matriks disimpan pada array berdimensi 2. Indeks dari
matrik menunjukkan nomor elemen dari matriksnya.
Array dua dimensi sering digambarkan sebagai sebuah matriksadalah
merupakan perluasan dari sebuah array satu dimensi. Jika pada array satu
dimensi hanya terdiri dari sebuah baris dengan beberapa kolom elemen maka
pada array dua dimensi terdiri dari beberapa baris dan beberapa kolom.
Aplikasi Variabel Berindex 2
D. Pendefinisian Matriks
Pendefinisian matriks dalam larik bahwa matriks adalah struktur
penyimpanan data dalam memori utama yang setiap individu elemennya
diacu dengan menggunakan dua buah indeks (yang biasanya dikonotasikan
dengan indeks baris dan indeks kolom). Sebagaimana pada larik, matriks
digambarkan sebagai sekumpulan kotak yang tersusun berjajar pada setiap
baris dan kolom. Karena adanya dua buah indeks tersebut maka matriks
disebut juga larik dwimatra (matra=dimension).
Karena matriks sebenarnya adalah larik, maka konsep umum dari larik
juga berlaku untuk matriks yaitu:
1. Kumpulan elemen yang bertipe sama. Tipe elemen matriks dapat berupa
tipe dasar (integer,real,boolean,char, dan string), atau tipe terstruktur
seperti record.
2. Setiap elemen data dapat diakses secara langsung jika indeksnya(baris dan
kolom) diketahui, dalam hal ini indeks menyatakan posisi relatif di dalam
kumpulannya.
3. Merupakan struktur data yang statis artinya jumlah elemenya sudah
dideklarasikan terlebih dahulu dan tidak bisa diubah selama pelaksanaan
program.
Struktur matriks praktis untuk dipakai karena pengaksesannya cepat
karena langsung melelui indexnya tetapi memakan banyak tempat di
memori.karena matriks adalah struktur statis, maka urutan matriks harus
sudah diketahui sebelum pelaksanaan program. Sebagaimana pada larik biasa,
kita menuliskan matra matriks sebagai penomoran indeks baris dan indeks
kolom, mulai dari indeks terendah sampai indeks tertinggi.
Elemen matriks diacu melalui indeks baris dan indeks kolomnya.Jika
indeks baris dinyatakan dengan i indeks kolom dinyatakan dengan j, maka
notasi algoritmik untuk mengacu elemen pada baris i dan kolom j adalah :
nama_matriks[i,j].
Aplikasi Variabel Berindex 3
E. PendeklarasianMatriks
Mendeklarasikan matriks artinya menentukan nama matriks, tipe data,
dan ukurannyaPendeklarasian matriks di dalam teks algoritma ditulis di
dalam bagian deklarasi. Kata kunci yang dipakai untuk matriks tetap array.
Ada beberapa cara pendeklarasian matriks :
1. Sebagai nama peubah.M : array [1...5,1...4] of integer ;
2. Sebagai tipe.Type Mat : array [1...5, 1...4] of integer;
M : Mat;{M adalah nama matriks yang bertipe Mat}
3. Mendefinisikan ukuran maksimum matriks sebagai sebuah konstanta.Const NbarisMaks = 20 {jumlah baris maksimum};
Const NkolomMaks = 20 {jumlah kolommaksimum};
M : array [1...NbarisMaks, 1...NkolomMaks] of integer;
Dengan mendeklarasikan matriks ukuran maksimum di atas, ukuran
matriks yang dibutuhkan dapat ditentukan pada saat pelaksanaan program,
asalkan jumlah baris dan jumlah kolom yang ditentukan tidak melebihi
ukuran maksimum matriks.
F. Pemrosesan Matriks
Pemrosesan matriks pada umumnya adalah proses beruntun
(sekuensial). Setiap elemen matriks “dikunjungi” (traversal) lalu dilakukan
aksi terhadap elemen tersebut. Karena secara lojik elemen matriks disusun
dalam susunan baris dan kolom, maka pemrosesan matriks dilakukan per
baris dan per kolom.
Cara pemrosesan yang umum adalah menelusuri matriks baris per
baris, yang pada setiap baris melakukan proses terhadap elemen pada setiap
kolomnya (pemrosesan “per baris-per kolom”). Karena ada dua buah indeks,
maka algoritma pemrosesan matriks umumnya kalang bersarang (nested
loop), satu kalang untuk setiap indeks. Kalang terluar digunakan untuk
memproses baris, sedangkan kalang terdalam untuk memproses kolom-kolom
pada baris yang sedang diacu.
Aplikasi Variabel Berindex 4
G. Menginisialisasi Matriks
Menginisialisasi matriks artinya memberi nilai awal yang sama untuk
seluruh atau sebagian elemen matriks. Proses inisialisasi biasanya dilakukan
sebelum matriks digunakan untuk perhitungan. Misalnya dalam algoritma
perkalian matriks A X B = C,seluruh elemen matriks C harus diisi dengan
nilai 0 karena C akan digunakan untuk menampung hasil penjumlahan yang
berulang. (iteration). Namun, tidak semua matriks perlu diinisialisasi, karena
itu proses ini tidak selalu harus dilakukan. Misalnya jika elemen matriks
dibaca dari piranti masukan, maka inisialisasi matriks tidak perlu dilakukan.
H. Membaca Elemen Matriks
Membaca elemen matriks artinya mengisi elemen-elemen matriks
dengan data dari piranti masukan, misalnya papan ketik. Yang harus
diperhatikan selama pembacaan dari papan ketik adalah urutan pembacaan
data, karena data disimpan di dalam matriks sesuai dengan urutan pembacaan.
Untuk menghindari kesalahan pengisian elemen sebaiknya pada waktu
pembacaan data diberi keterangan atau petunjuk yang menginformasikan
indeks baris dan indeks kolom elemen yang akan diisi. Bila secara implisit
sudah diketahui urutan pembacaan adalah per baris per kolom maka petunjuk
pembacaan boleh tidak diberikan.
Aplikasi Variabel Berindex 5
BAB II
DESKRIPSI KERJA
Terdapat sebuah kasus yang harus diselesaikan oleh praktikan yaitu
membuat program aplikasi variabel berindex. Kali ini praktikan akan
membuat aplikasi untuk menghitung penjumlahan, perkalian matriks dan
menentukan matriks transpose serta determinan matriks.Untuk
menyelesaikan kasus tersebut, praktikan akan menggunakan program aplikasi
Delphi 7. Adapun langkah-langkah yang dilakukan oleh praktikan adalah
sebagai berikut:
1. Arahkan pointer ke arah pojok kanan display PC (dalam pengoperasian
ini praktikkan menggunakan Windows 8), kemudian klik Search lalu
ketik“Delphi” di kotak pencarian tersebut. LihatGambar 2.1berikut :
Gambar 2.1Membuka Aplikasi Delphi 7
2. Maka akan muncul tampilan seperti Gambar 2.2 berikut :
Gambar 2.2 Tampilan Aplikasi Delphi 7
Aplikasi Variabel Berindex 6
3. Langkah awal untuk memulai Console Delphi yaitu klik file pilih new lalu
klik other. Maka akan muncul Gambar 2.3 berikut :
Gambar 2.3Memulai lembar kerja bar
4. Dalamother ada bermacam-macam items, lalu pilih Console Aplication klik
OK. Maka muncullah tampilan seperti berikut :
Gambar 2.4 Masuk ke ‘Console Application’
Aplikasi Variabel Berindex 7
5. Maka akan tampil Menu Editor Console Application seperti berikut :
Gambar 2.5Menu Editor Console Application6. Praktikan menuliskan nama program, uses, const, type dan variabel seperti
berikut :
Gambar 2.6 Proses Input nama program,uses,const, type dan variabel7. Praktikan diminta memasukkan syntak untuk di proses. syntak yang
digunakan mulai dari input, output, pencabangan dan pengulangan. Syntak
pengulangan untuk peng-inputan data yang akan digunakan untuk
menghitung penjumlahan dua buah matriks sebagai berikut : brsP := 3; klmP := 3;
brsQ := 3; klmQ := 3;
brsR := 3; klmR := 3;
Aplikasi Variabel Berindex 8
writeln('*1.Penjumlahan Dua Buah Matriks dan Transpose
- nya* ');
writeln ('Masukkan data matriks P');
for loopI := 1 to brsP do
for loopJ := 1 to klmP do
begin
write ('data [',loopI,',',loopJ,']=');
readln (matP[loopI, loopJ])
end;
writeln ('Masukkan data matriks Q');
for loopI := 1 to brsQ do
for loopJ := 1 to klmQ do
begin
write ('data [',loopI,',',loopJ,']=');
readln (matQ[loopI, loopJ])
end;
writeln ('Hasil Penjumlahan Matriks R= P+Q');
for loopI := 1 to brsR do
for loopJ:=1 to klmR do
begin
matR[loopI,loopJ]:=matP[loopI,loopJ]+matQ[loopI,loopJ];
end;
writeln ('Matriks P');
for loopI := 1 to brsP do
begin
for loopJ := 1 to klmP do
write (matP[loopI, loopJ]:3); writeln;
end;
writeln ('Matriks Q');
for loopI := 1 to brsQ do
begin
for loopJ := 1 to klmQ do
write (matQ[loopI, loopJ]:3); writeln;
end;
writeln ('Matriks R');
for loopI := 1 to brsR do
begin
for loopJ := 1 to klmR do
Aplikasi Variabel Berindex 9
write (matR[loopI, loopJ]:3); writeln;
end;
Syntak variabel berindex yang memuat perulangan untuk peng-inputan
data yang akan menghitung matriks transpose dari hasil penjumlahannya :writeln ('Jadi Matriks Transpose R dari hasil
penjumlahan matriks P+Q adalah : ');
for loopI := 1 to brsR do
begin
for loopJ := 1 to klmR do
write (matR[loopJ,loopI]:3); writeln;
end;
readln;;
Syntak pengulangan untuk peng-inputan data yang akan digunakan untuk
menghitung perkalian dua buah matriks seperti berikut :writeln('*2.Perkalian Dua Buah Matriks dan Transpose-
nya*');
writeln ('Hasil Perkalian matriks R=P*Q adalah :');
for loopI := 1 to brsP do
for loopJ:= 1 to klmQ do
begin
jum:=0;
for loopK := 1 to brsQ do
jum := jum + matP[loopI,loopK]*matQ[loopK,loopJ];
matR[loopI,loopJ]:= jum;
end;
writeln ('Matriks P');
for loopI := 1 to brsP do
begin
for loopJ := 1 to klmP do
write (matP[loopI, loopJ]:3); writeln;
end;
writeln ('Matriks Q');
for loopI := 1 to brsQ do
begin
for loopJ := 1 to klmQ do
write (matQ[loopI, loopJ]:3); writeln;
end;
Aplikasi Variabel Berindex 10
writeln ('Matriks R');
for loopI := 1 to brsR do
begin
for loopJ := 1 to klmR do
write (matR[loopI, loopJ]:3);writeln;
end;
Syntak variabel berindex yang memuat perulangan untuk peng-inputan
data yang akan menghitung matriks transpose dari hasil perkaliannya :writeln ('Matriks Transpose R dari hasil perkalian
matriks P*Q adalah :');
for loopI := 1 to brsR do
begin
for loopJ := 1 to klmR do
write (matR[loopJ, loopI]:3); writeln;
end;
readln;
Syntak variabel berindex yang memuat perulangan untuk peng-inputan
data yang akan menghitung determinan dari matriks hasil penjumlahan.writeln('*3.Determinan dari Matriks Hasil
Penjumlahan*');
writeln('Determinan matriks 3x3');
writeln ('Matriks R');
for loopI := 1 to brsR do
begin
writeln('Dari matriks R dapat ditentuka determinanya
:');
for loopJ := 1 to klmR do
write (matR[loopI, loopJ]:3); writeln;
end;
for loopI := 1 to brsR do
for loopJ:=1 to klmR do
begin
matR[loopI,loopJ]:= matP[loopI,loopJ]
+matQ[loopI,loopJ];
end;
begin
Aplikasi Variabel Berindex 11
sum:=matR[1,1]*(matR[2,2]*matR[3,3]-
matR[3,2]*matR[2,3])-matR[1,2]*(matR[2,1]*matR[3,3]-
matR[3,1]*matR[2,3])+matR[1,3]*(matR[2,1]*matR[3,2]-
matR[3,1] *matR[2,2]);
D:= sum;
writeln('Determinanya adalah : ', D:8:2);
writeln;
Syntak lengkap dari program aplikasi variabel berindex yang dibuat
adalah seperti pada gambar dibawah:
Aplikasi Variabel Berindex 12
Aplikasi Variabel Berindex 13
Gambar 2.7Syntak Yang Akan di Eksekusi
8. Setelah meng-input-kan syntax langkah selanjutnya adalah penginputan
data dengan mengklik F9pada keyboard atau klik Run padaToolbar.
Gambar 2.8Toolbar Run
9. Komputer akan menampilakan output dari data yang telah di-input-kan.
Gambar 2.9Tampilan Hasil Running
Aplikasi Variabel Berindex 14
10. Lalu masukkan data yang diperlukan sesuai kebutuhan, setelah data
dimasukkan maka akan mendapatkan hasil seperti gambar berikut :
Gambar 2.10Tampilan Output
Aplikasi Variabel Berindex 15
BAB III
PEMBAHASAN
Dari hasil pemaparan deskripsi kerja pada bab II diatas, berikut
adalah bahasa program yang digunakan dalam Delphi 7 untuk membentuk
aplikasi dengan menggunakan variabel berindex pada permasalahan di
atas :
1. program matriks2;{Definisi Unit}
{$APPTYPE CONSOLE}
Judul program ialah sebuah statement di awal program yang
diawali dengan pengenal khusus PROGRAM diikuti NAMA
program.Pada list program tertulis “matriks2”. Nama program ditulis
sesuai dengan keinginan praktikan. Namun praktikan harus bisa
menuliskan nama program yang bersesuaian dengan aplikasi yang akan
dibuat. Pada kasus ini praktikkan akan membuat program aplikasi
perhitungan matriks, sehingga diberi nama “matriks2”. ”{$APPTYPE
CONSOLE}” merupakan compiler directive yang akan meng-compile
program ditandai dengan karakter $ .Untuk mengakhiri nama program,
akhiri dengan tanda titik koma (;), tanda titik koma akan terus digunakan
dalam menyelesaikan perintah pada setiap barisnya.
2. uses {Bagian Interface}
SysUtils;
Pada uses digunakan SysUtils yang merupakan uses dasar yang
akan digunakan pada pembuatan program ini.Kata kunci uses digunakan
untuk mendaftarkan unit-unit lain yang identifier-nya akan digunakan
dalam unit yang bersangkutan.Uses bersifat optional dan jika digunakan
harus berada pada bagian awal interface atau bagian awal implementation.
Aplikasi Variabel Berindex 16
3. const ordo = 3;
typematriks = array [1..ordo, 1..ordo] of integer;
varmatP, matQ, matR : matriks;loopI, loopJ, loopK, Jum,Sum : integer;brsP, klmP, brsQ, klmQ, brsR, klmR : integer;
D: real;
Bagian ini berisi deklarasi pengenal maupun data yang
dipergunakan di dalam program.Bagian ini walaupun tampaknya seperti
pekerjaan membuang-buang waktu, tetapi sesungguhnya merupakan
bagian yang penting dalam penyusunan suatu program yang tertib. Selain
itu juga mengumpulkan semua nama pengenal dalam satu tempat
sehingga akan memudahkan pembacaan program.
Dalam kasus ini secara lengkap ada 3 buah deklarasi, yaitu:
1. Deklarasi Const
Deklarasi ini gunanya untuk mendeklarasikan nama pengenal
tertentu yang berisi suatu konstanta. Statement di atas
memberitahukan bahwa nama pengenal ordo memiliki ukuran 3x3.
2. Deklarasi Type
Deklarasi ini digunakan untuk menyusun suatu bentuk tipe data
yang baru sebagai hasil penggabungan dari tipe-tipe yang sudah ada.
Statement di atas memberitahukan bahwa “matriks” sekarang adalah
jenis data baru, yaitu suatu array dua dimensi dengan dimensi
pertama 1 sampai dengan 3 dan dimensi dua 1 sampai 3 juga. Jenis
datanya nya integer. Dalam pemrograman matriks digunakan array
untuk pembuatan baris dan kolom.
3. Deklarasi Var
Var digunakan untuk mendeklarasikan variabel objek atau
semua simbol yang akan terus digunakan pada program yang ingin
dibuat. Praktikkan menginputkan variabel sesuai dengan rumus yang
Aplikasi Variabel Berindex 17
1
2
3
akan dihitung.Bagian yang sangat penting dalam pemrograman
adalah mendefinisikan tipe data baru sesuai kebutuhan. 4.
beginwriteln('.............Assalamualaikumwr.wb.........');
writeln('......Ini Adalah Program Aplikasi Perhitungan
MATRIKS.....');
writeln('===============MENU PERHITUNGAN===========');
writeln('*1. Menghitung Penjumlahan Dua Buah
Matriks*');
writeln('*2. Menghitung Perkalian Dua Buah Matriks*');
writeln(' *3. Determinan Matriks Penjumlahan*');
writeln;
Bagian ini merupakan input yang dibaca dari keyboard dan
akan ditampilkan ke layar monitor sebagai output. Diawali dengan
begin, input ini dituliskan oleh praktikan dengan maksud
memperindah tampilan, membuatnya lebih rapi dan yang lebih utama
memberikan keterangan mengenai aplikasi yang dibuat.Pengaturan
pesan atau hasil suatu program akan memperjelas tampilan pada layar
sehingga tampilan output suatu program menjadi faktor penting dalam
pemrograman.
5. brsP := 3; klmP := 3;
brsQ := 3; klmQ := 3;
brsR := 3; klmR := 3;
Bagian ini mendeklarasikan jumlah baris maksimum dan
jumlah kolom maksimum yang akan digunakan dalam pemrosesan
program. Dalam kasus ini praktikan membuat aplikasi program
perhitungan matriks berordo 3x3 sehingga jumlah baris dan kolom
harus disesuaikan. Dalam program ini ada matriksP, matriksQ, dan
matriksR sehingga harus mendeklarasikan brsP, klmP, brsQ, klmQ,
brsR,klmR. Dari ketiga matriks itu, praktikkan akan mengembangkan
pemrosesan untuk menghitung transpose dan determinan matriksnya.
Aplikasi Variabel Berindex 18
6. writeln('*1.Penjumlahan Dua Buah Matriks dan Transpose-nya* ');
writeln ('Masukkan data matriks P'); for loopI := 1 to brsP do for loopJ := 1 to klmP do begin write ('data [',loopI,',',loopJ,']='); readln (matP[loopI, loopJ]) end;
writeln ('Masukkan data matriks Q'); for loopI := 1 to brsQ do for loopJ := 1 to klmQ do begin write ('data [',loopI,',',loopJ,']='); readln (matQ[loopI, loopJ]) end;
writeln ('Hasil Penjumlahan Matriks R=P+Q'); for loopI := 1 to brsR do for loopJ:=1 to klmR do beginmatR[loopI,loopJ]:= matP[loopI,loopJ]+matQ[loopI,loopJ]; end;
writeln ('Matriks P');for loopI := 1 to brsP dobegin for loopJ := 1 to klmP do write (matP[loopI, loopJ]:3); writeln;end;
writeln ('Matriks Q'); for loopI := 1 to brsQ do begin for loopJ := 1 to klmQ do write (matQ[loopI, loopJ]:3); writeln; end;
writeln ('Matriks R'); for loopI := 1 to brsR do begin for loopJ := 1 to klmR do write (matR[loopI, loopJ]:3); writeln; end;
writeln ('Jadi Matriks Transpose R dari hasil penjumlahan matriks P+Q adalah : '); for loopI := 1 to brsR do begin for loopJ := 1 to klmR do write (matR[loopJ,loopI]:3); writeln; end;readln;;
Aplikasi Variabel Berindex 19
1
2
4
5
7
6
8
9
3
[1] Perintah writeln merupakan bahasa program yang hanya
untuk menampilkan ‘Penjumlahan Dua Buah Matriks dan
Transpose-nya’ pada layar sebagai output. [2] Pemrosesan dilakukan
per baris dan per kolom. For-to-do digunakan untuk menjelaskan
bahawa baik baris maupun kolom matriks P dikerjakan dari baris dan
kolom pertama. [3] Bagian ini praktikkan akan diminta untuk
memasukkan data matriks P, loopI menyatakan elemen baris dan
loopJ menyatakan elemen kolom. Dan readln digunakan untuk
membaca bahwa input yang dimasukkan tadi dibaca matriks
kemudian end untuk mengakhiri penulisan model matriks P.
[4] Bagian ini akan memproses matriks Q. Praktikkan diminta
memasukkan data matriks Q. For-to-do digunakan untuk melakukan
perulangan dari angka kecil ke angka besar. Sama seperti nomor 2
pemrosesan juga dilakukan per baris dan per kolom. Aksi dikerjakan
berulang-ulang mulai index bernilai nilai awal sampai index bernilai
nilai akhir.Setiap kali perulangan nilai index bergerak satu langkah.
Akhiri dengan ‘end;’.[5].
Menggunakan for to do.Bagian ini menjelaskan bahwa baik baris
maupun kolom pada matriks yang akan dijumlahkan dikerjakan dari
baris dan kolom pertama. [6] Bagian ini merupakan bagian dari rumus
penjumlahan matriks yang diawali begin dan diakhiri ‘end;’.
[7] Agar keluaran yang diperoleh berbentuk matriks yaitu agar
baris yang berkelipatan 3 dan kolom yang berekelipatan 3 juga.
Digunakan kembali perulangan for-to-do artinya sistem akan membaca
pada matriks P dari 1 hingga mengulang sebanyak brsP dan
mengulang dari 1 hingga mengulang sebanyak klmP. Dan akan terjadi
perulangan yang serupa pada matriks Q dan matriks R Dan proses
inilah yang akan menampilkan matriks hasil penjumlahan. Dan akhiri
proses pengulangan dengan menambahkan kata ‘end;’
[8] Bagian ini akan menampilkan matriks transpose dari
matriks hasil penjumlahan tadi. Matriks transpose dihasilkan dengan
Aplikasi Variabel Berindex 20
mentransformasikan seluruh elemen pada baris I menjadi elemen-
elemen kolom J, sedemikian sehingga matR[loopJ,loopI] =
matR[loopI,loopJ] untuk setiap I dan untuk setiap J. Perhatikan [9].
7. writeln('*2.Perkalian Dua Buah Matriks dan Transpose-nya*');
writeln ('Hasil Perkalian matriks R=P*Q adalah :');
for loopI := 1 to brsP do
for loopJ:= 1 to klmQ do
begin
jum:=0;
for loopK := 1 to brsQ do
jum := jum + matP[loopI,loopK]*matQ[loopK,loopJ];
matR[loopI,loopJ]:= jum;
end;
writeln ('Matriks P');
for loopI := 1 to brsP do
begin
for loopJ := 1 to klmP do
write (matP[loopI, loopJ]:3); writeln;
end;
writeln ('Matriks Q');
for loopI := 1 to brsQ do
begin
for loopJ := 1 to klmQ do
write (matQ[loopI, loopJ]:3); writeln;
end;
writeln ('Matriks R');
for loopI := 1 to brsR do
begin
for loopJ := 1 to klmR do
write (matR[loopI, loopJ]:3);writeln;
end;writeln ('Matriks Transpose R dari hasil perkalian matriks P*Q adalah :');
for loopI := 1 to brsR do begin for loopJ := 1 to klmR do write (matR[loopJ, loopI]:3); writeln;
end;
Aplikasi Variabel Berindex 21
2
3
5
1
4
[1] Perintah writeln merupakan bahasa program yang hanya
untuk menampilkan ‘Perkalian Dua Buah Matriks dan Transpose-
nya’ pada layar sebagai output. [2] Pemrosesan dilakukan per baris
dan per kolom. Perkalian matriks dilakukan dengan mengalikan per
baris dan per kolom. Dalam kasus ini jumlah diinisialisasi dimulai
dari nol. loopK merupakan baris dan kolom untuk perkalian. Sistem
akan membaca untuk loopK dari 1 hingga mengulang sebanyak brsQ
[3] Bagian ini merupakan bagian dari rumus perkalian matriks yang
diawali begin dan diakhiri ‘end;’ dan dinyatakan dengan jum.
[4] Bagian ini akan mengulang matriks P,Q dan R. For-to-do
digunakan untuk melakukan perulangan dari angka kecil ke angka
besar. Sama seperti nomor 2 pemrosesan juga dilakukan per baris
dan per kolom. Aksi dikerjakan berulang-ulang mulai index bernilai
nilai awal sampai index bernilai nilai akhir.Setiap kali perulangan
nilai index bergerak satu langkah. Akhiri dengan ‘end;’ Agar
keluaran yang diperoleh berbentuk matriks yaitu agar baris yang
berkelipatan 3 dan kolom yang berekelipatan 3 juga. Digunakan
kembali perulangan for-to-do artinya sistem akan membaca pada
matriks P dari 1 hingga mengulang sebanyak brsP dan mengulang
dari 1 hingga mengulang sebanyak klmP. Dan akan terjadi
perulangan yang serupa pada matriks Q dan matriks R Dan proses
inilah yang akan menampilkan matriks hasil penjumlahan. Dan akhiri
proses pengulangan dengan menambahkan kata ‘end;’
[5] Sama halnya seperti penjumlaha pada bagian ini akan
menampilkan matriks transpose dari matriks hasil perkalian tadi.
Matriks transpose dihasillkan dengan mentransformasikan seluruh
elemen pada baris I menjadi elemen-elemen kolom J, sedemikian
sehingga matR[loopJ,loopI] = matR[loopI,loopJ] untuk setiap I dan
untuk setiap J. Perhatikan [9]. Akhiri dengan menambahkan ‘end;’
untuk mengakhiri model penulisan matriks transpose.
Aplikasi Variabel Berindex 22
8. writeln('*3.Determinan dari Matriks HasilPenjumlahan*');
writeln('Determinan matriks 3x3');
for loopI := 1 to brsR do
for loopJ := 1 to klmR do
begin
matR[loopI,loopJ]:= matP[loopI,loopJ]+matQ[loopI,loopJ];
end;
writeln ('Matriks R');
for loopI := 1 to brsR do
begin
for loopJ:=1 to klmR do
write (matR[loopI, loopJ]:3); writeln;
begin
sum:=matR[1,1]*(matR[2,2]*matR[3,3]-
matR[3,2]*matR[2,3])-matR[1,2]*(matR[2,1]*matR[3,3]-
matR[3,1]*matR[2,3])+matR[1,3]*(matR[2,1]*matR[3,2]-
matR[3,1]*matR[2,2]);
D:= sum;
writeln('Determinanya adalah : ', D:8:2);
writeln;
writeln('Terimakasih telah membuka aplikasi ini, sampai
jumpa di aplikasi lain');
write('=======Wassalamualaikum wr.wb===========.');
end;
readln;
{ TODO -oUser -cConsole Main : Insert code here }
end.
Bagian ini merupakan syntak untuk menghitung determinan.
Dalam kasus ini praktikkan hanya menghitung determinan dari matriks
Aplikasi Variabel Berindex 23
1
2
3
4
6
7
5
hasil penjumlahan yang telah dihitung. [1] berisi writeln yang akan
ditampilkan pada layar sebagai output untuk memberitahukan bahwa
akan dihitung determinan dari matriks hasil penjumlahan. Kemudian
di informasikan juga bahwa determinan yang akan dihitung adalah
yang berordo 3x3.
[2] Sebelumnya akan digunakan perulangan for-to-do bahwa
baik baris maupun kolom pada matriks yang akan diproses dikerjakan
dari baris dan kolom pertama agar keluaran yang diperoleh berbentuk
matriks yang merupakan hasil penjumlahan, kemudian end untuk
mengakhiri penulisan model matriks hasil penjumlahan. [3] Agar
keluaran yang diperoleh berbentuk matriks R digunakan kembali
perulangan for-to-do artinya sistem akan membaca pada matriks R dari
1 hingga mengulang sebanyak brsR dan mengulang dari 1 hingga
mengulang sebanyak klmR. Bagian ini akan menampilkan matriks R
yaitu matriks hasil penjumlahan yang telah dihitung.
[4] Bagian ini merupakan bagian dari rumus determinan
matriks berordo 3x3 dinyatakan dengan ‘sum’. [5] Determinan (D) di
deklarasikan memiliki nilai yang sama dengan ‘sum’. [6] berisi writeln
yang akan ditampilkan pada layar sebagai output. Pada bagian ini
komputer akan menampilkan hasil determinan ordo 3x3 dari matriks
hasil penjumlahan yang telah dihitung. [7] merupakan writeln terakhir
yang praktikkan gunakan sebagai ‘closing statements’ dalam
pembuatan aplikasi ini. Kemuadian praktikkan menambahkan ’ end.’
sebagai akhir dari keseluruhan program yang dibuat.
Langkah selanjutnya adalah menjalankan program dengan
mengklik F9 pada keyboard atau klik Run pada Toolbar.
Gambar 3.1 Toolbar Run
Aplikasi Variabel Berindex 24
Menu Run digunakan untuk menjalankan program dan melihat
jalannya program. Praktikan juga dapat memantau jalannya program
dengan memperhatikan prosedur yang dijalankan. Run atau F9 berfungsi
untuk mengkompilasi dan menjalankan program aplikasi yang telah
praktikan buat.
Jika muncul lembar kerja hitam pada layar maka artinya
perhitungan yang praktikan lakukan benar. Namun jika setelah menekan
tombol F9 dan ternyata terdapat blok merah pada baris tertentu, itu artinya
ada kesalahan dalam meng-input data. Setelah mengisikan data yang ingin
dicari, maka akan muncul hasil yang diinginkan.
Aplikasi Variabel Berindex 25
Gambar 3.2 Tampilan Output Lengkapnya
Dalam mengerjakan suatu aplikasi program tentu saja tidak
selamanya berjalan dengan mulus. Sama seperti halnya gambar dibawah
ini, praktikan menemukan kasus eror dalam pembutan aplikasi dengan
menggunakan Delphi 7.
Gambar 3.3 Kasus ‘error’ saat mendeklarasikan prosedur
Kejadian error sempat terjadi pada saat praktikan melakukan
running. Block merah tepat berada dalam baris pendeklarasian rumus
Aplikasi Variabel Berindex 26
“jum” artinya terjadi kesalahan pada baris ‘’ jum’’ tersebut. Hal tersebut
terjadi karena praktikan menuliskan “matriks = array [1..ordo,1..ordo] of
real;.“[Error] matriks2.dpr(82): Incompatible
types: ‘Integer’ and ‘Extended’“ yang berarti
“[Kesalahan]matriks2.dpr(82) : Jenis tidak cocok atau bertentangan :
yang diharapkan ‘bilangan bulat’. Hal tersebut terjadi karena index selalu
menggunakan tipe subjangkauan skalar atau tipe terbilang. Dengan
demikian semua tipe subjangkauan bisa digunakan kecuali tipe real. Pada
Pascal bisa digunakan index yang bertipe integer, char atau boolean
kecuali real. Maka untuk itu teliti dulu untuk memasukan tipe data
jangan memasukan sembarang tipe data yang dapat membuat proses
pemrograman terhambat atau ada kemungkinan untuk eror.
Aplikasi Variabel Berindex 27
BAB IV
PENUTUP
Setelah praktikan melakukan praktikum untuk menyelesaikan suatu kasus
menggunakan program Delphi 7dalam membuat aplikasi variabel berindex yaitu
mengolah berbagai perhitungan pada matriks, maka praktikan mendapatkan
kesimpulan sebagai berikut :
1. Untuk sekumpulan data yang bertipe sama, cukup gunakan larik (array)
karena merupakan struktur penyimpanan data yang dapat mengorganisir data
sejenis untuk mempermudah pemecahan masalah.
2. Variabel berindex tidak hanya dapat digunakan untuk menyimpan sebuah
nilai saja tetapi digunakan untuk menyimpan beberapa nilai sekaligus dalam
suatu variabel.
3. Pada dasarnya ukuran atau dimensi matriks tidak terbatas. Dalam komputer,
dimensi matriks hanya dibatasi oleh kapasitas komputer sehingga antara
komputer yang satu dengan komputer yang lainnya kemampuan untuk
mengoperasikan matriks mempunyai dimensi yang berbeda pula.
4. Matriks merupakan struktur statis sehingga ukuran matriks harus sudah
diketahui sebelum pelaksanaan program.
5. Semua larik (array) dinyatakan dengan indexnya untuk menunjukan elemen
mana yang akan dioperasikan.
6. Index yang digunakan dapat berupa konstanta, peubah atau ungkapan tetapi
tipenya harus sesuai dengan tipe yang dinyatakan pada deklarasi peubah.
7. Tipe index yang ada pada deklarasi larik akan memberikan sejumlah
informasi kepada kompiler diantaranya untuk memasup elemen larik dan
batas-batas index.
8. Struktur matriks praktis untuk dipakai karena pengaksesannya cepat karena
langsung melalui indexnya tetapi memakan banyak tempat di memori.
9. Membuat program perhitungan dengan menggunakan Delphi 7, lebih mudah,
cepat, efektif, dan efisien karena fitur yang disediakan cukup lengkap.
Aplikasi Variabel Berindex 28
top related