Dasar-Dasar Pemrograman
Studi Kasus Matriks
Studi Kasus Matriks
Teknik Informatika
Fakultas Sains dan Teknologi
UIN Syarif Hidayatullah Jakarta
Semester Ganjil 2012-2013
Berikut ini diberikan beberapa studi kasus tentang
pemrosesan matriks
(diasumsikan matriks telah memiliki elemen) :
- Terdapat sebuah matriks bujursangkar berukuran m x n. Buatlah
algoritma untuk menentukan apakah matriks tersebut merupakan matriks
segitiga atas.
- Terdapat sebuah matriks bujursangkar berukuran m x n. Buatlah
algoritma untuk menentukan apakah matriks tersebut merupakan matriks
identitas.
- Terdapat sebuah matriks C berukuran m x n yang telah berisi data
karakter. Buatlah algoritma untuk menentukan jumlah kemunculan huruf ‘A’
dalam matriks.
- Terdapat sebuah matriks integer berukuran m x n. Buatlah algoritma
untuk menentukan apakah ada baris yang seluruh elemennya bernilai nol.
Jawab
:
1.
Cek Matriks
Segitiga Atas
Algoritma Cek_Matriks_Segitiga_Atas
{Melakukan pengecekan terhadap sebuah matriks
berukuran m x n, apakah merupakan matriks segitiga atas}
DEKLARASI :
type
MatriksInt : array [1..100,
1..100] of integer
M : MatriksInt
m : integer {Jumlah baris}
n : integer {Jumlah kolom}
function
Cek(input M : MatriksInt, input m, n : integer) ® boolean
DEFINISI :
function
Cek(input M : MatriksInt, input m, n : integer) ® boolean
{Menentukan
apakah matriks M merupakan matriks segitiga atas}
DEKLARASI
:
i,
j : integer {pencacah baris dan
kolom}
DEFINISI
:
If
Nbar ¹ Nkol then
return
false
else
for
i ¬ 2 to m do
for j ¬ 1 to i – 1 do
if
(M[i,j] ¹ 0) then
return
false
endfor
endfor
return
true
endif
end
function
If Cek (M, m, n)
then
Write
(‘M merupakan matriks segitiga atas’)
Else
Write
(‘M bukan merupakan matriks segitiga atas’)
End algoritma
2.
Cek Matriks
Identitas
Algoritma Cek_identitas
{Menentukan apakah sebuah matriks merupakan matriks
identitas}
DEKLARASI :
type
MatriksInt : array [1..100, 1..100] of
integer
M : MatriksInt
m : integer {Jumlah baris}
n : integer {Jumlah kolom}
function
Cek_identitas(input M : MatriksInt, input m, n :
integer)
® boolean
DEFINISI :
function
Cek_identitas(input M:MatriksInt, m, n : integer) ®
Boolean
{Menentukan
apakah matriks M merupakan matriks identitas}
DEKLARASI
:
i,
j : integer {pencacah baris dan
kolom}
DEFINISI
:
If
Nbar ¹ Nkol then
return
false
else
for
i ¬ 1 to m do
for
j ¬ 1 to n do
if
(i = j) then
if
(M[i,j] ¹ 1) then
return
false
endif
else
if
(M[i,j] ¹ 0) then
return
false
endif
endif
endfor
endfor
return
true
endif
end
function
If Cek_identitas (M, m, n) then
Write
(‘M merupakan matriks identitas’)
Else
Write
(‘M bukan merupakan matriks identitas’)
End algoritma
3.
Cek Jumlah
Karakter dalam Sebuah Matriks
Algoritma Cek_jumlah_kar_A
{Menentukan jumlah karakter A dalam sebuah matriks
karakter}
DEKLARASI :
type
MatriksKar : array [1..100, 1..100] of
char
K : MatriksKar
m : integer {Jumlah baris}
n : integer {Jumlah kolom}
procedure
Hitung_jumlah_kar_A(input K:MatriksKar, m, n:integer, output
jumlah
: integer)
DEFINISI :
procedure
Hitung_jumlah_kar_A(input K:MatriksKar, m, n:integer, output jumlah : integer)
{Menghitung
jumlah karakter A dalam Matriks K}
DEKLARASI
:
i,
j : integer {pencacah baris dan
kolom}
DEFINISI
:
jumlah
¬ 0
for
i ¬ 1 to m do
for
j ¬ 1 to n do
if
(M[i,j] = ‘A’) then
jumlah
¬ jumlah + 1
endif
endfor
endfor
end
procedure
Hitung_jumlah_kar_A(K,
m, n, jumlah)
Write
(‘Jumlah Karakter A adalah ’, jumlah)
End Algoritma
4.
Cek Baris Sebuah
Matriks yang Seluruh Elemennya Bernilai Nol
Algoritma Cek_elemen_nol
{Menentukan apakah terdapat baris pada sebuah matriks
yang seluruh
elemennya bernilai nol}
DEKLARASI :
type
MatriksInt : array [1..100, 1..100] of
integer
M : MatriksInt
m : integer {Jumlah baris}
n : integer {Jumlah kolom}
function
Cek_baris(input M : MatriksInt, m, n : integer) ® boolean
DEFINISI :
function
Cek_baris(input M:MatriksInt, m, n : integer) ® boolean
{Menentukan
apakah terdapat baris yang seluruh elemennya bernilai nol}
DEKLARASI
:
i,
j : integer {pencacah baris dan
kolom}
jum_nol : integer
DEFINISI
:
for
i ¬ 1 to m do
jum_nol
¬ 0
for
j ¬ 1 to n do
if
(M[i,j] = 0) then
jum_nol
¬ jum_nol + 1
endif
endfor
if
jum_nol = n then
return
true
endif
endfor
return
false
end
function
If Cek_baris (M, m, n) then
Write
(‘Terdapat baris yang seluruh elemennya bernilai
nol’)
Else
Write
(‘Tidak ada baris yang seluruh elemennya bernilai
nol’)
end
if
End algoritma
ada programnya kah bang
BalasHapus