Jumat, 22 Februari 2013

Studi Kasus Matriks dalam Algoritma


Dasar-Dasar Pemrograman
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) :
  1. Terdapat sebuah matriks bujursangkar berukuran m x n. Buatlah algoritma untuk menentukan apakah matriks tersebut merupakan matriks segitiga atas.
  2. Terdapat sebuah matriks bujursangkar berukuran m x n. Buatlah algoritma untuk menentukan apakah matriks tersebut merupakan matriks identitas.
  3. Terdapat sebuah matriks C berukuran m x n yang telah berisi data karakter. Buatlah algoritma untuk menentukan jumlah kemunculan huruf ‘A’ dalam matriks.
  4. 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

1 komentar: