Selasa, 17 Mei 2011

PERKALIAN DUA BUAH MATRIKS


 procedure perkalian(var a,b:matrix ; n:integer);
var c : matrix;
i,j,k : integer;
begin
writeln;
writeln('Hasil Perkalian Matriks');
for i:=1 to 3 do
begin
for j:=1 to 3 do
begin
c[i,j]:=0;         { inisialisasi C[i,j] dengan 0 }
for k:=1 to 3 do
c[i,j] :=c[i,j]+ a[i,k] * b[k,j];
write(c[i,j]:4);
end;
writeln;
end;
end;
end;


TUGAS ALGORITMA PENJUMLAHAN PERKALIAN DUA BUAH MATRIKS


  1. buatlah program untuk penjumlahan dua buah matriks !
Program penjumlahan_matriks;
uses wincrt;
Type
matrix = array[1..2,1..3] of integer;
var
matrixa,matrixb : matrix;

procedure Input(var x:matrix);
var i,j : integer;
begin
for i:=1 to 2 do
begin
for j:=1 to 3 do
begin
Write('Inputkan Matrix[',i,' , ',j,'] : ');
Readln(x[i,j]);
end;
end;
end;

procedure Tampil(var x:matrix);
var i,j : integer;
begin
for i:=1 to 2 do
begin
for j:=1 to 3 do
begin
Write(x[i,j]:4);
end;
Writeln;
end;
end;

procedure Jumlah(var a,b:matrix);
var c : matrix;
i,j : integer;
begin
writeln;
writeln('Hasil Penjumlahan Matriks');
for i:=1 to 2 do
begin
for j:=1 to 3 do
begin
c[i,j] := a[i,j] + b[i,j];
write(c[i,j]:4);
end;
writeln;
end;
end;

begin
writeln('Penjumlahan Matriks');
writeln('Matriks I');
Input(matrixa);
writeln;
writeln('Matriks II');
Input(matrixb);
writeln;
Writeln('Matriks I');
Tampil(matrixa);
writeln;
Writeln('Matriks II');
Tampil(matrixb);
jumlah(matrixa,matrixb);
Readln;
end.

Senin, 09 Mei 2011

konversi bilangan ke string dalam pascal

Posting Ini di buat untuk memenuhi tugas algoritma teori .
pertemuan ke 8 smster 2 tugas ttg , menampilkan hasil berbentuk tulisan , dari inputan berupa bilangan.
program nya :
program cetak_nilai_uang;
var
uang : integer ;
begin
writeln('program konversi bilangan');
writeln('===================');
writeln;
write('nilai uang yang ingin di konversi :');readln(uang);
if uang div 100 > 0 then begin
write(uang div 100 , 'ratus');
uang := uang mod 100;
end
else if uang div 10 > 0 ) and (uang > 20) then begin
write(uang div 10, 'puluh');
uang := uang mod 10;
end
else if (uang < 20) and (uang > 10 ) then begin
write('uang mod 10 ,'belas rupiah');
uang := uang mod 10;
else write(uang ,'rupiah');
end.


contoh hasil :


sumber materi pembuatan tugas ini dari program konversi mata uang nu sinau

tugas algoritma serching

Pencarian (Searching)

1.      Pendahuluan
Pencarian (searching) merupakan proses fundamental dalam pengolahan data. Proses pencarian adalah menemukan nilai (data) tertentu di dalam sekumpulan data yang bertipe sama (baik bertupe dasar atau bertipe bentukan. Modul ini membicarakan algoritma pencarian datadi dalam larik. Algoritma pencarian yang akan dibicarakan dimulai dengan algoritma pencarian yang paling sederhana (yaitu pencarian beruntun atau sequential search) hingga algoritma pencarian yang lebih maju yaitu pencarian bagidua (binary search).
2.      Tujuan Instruksional Umum
·        Mahasiswa dapat mengerti dan memahami tentang algoritma  pencarian data
3.      Tujuan Instruksional Khusus
·        Mahasiswa dapat mengerti dan memahami larik
·        Mahasiswa dapat menguasai cara-cara pembuatan algoritma pencarian beruntun (sequential search) dan konsep penerapannya dalam memecahkan masalah pemrograman
·        Mahasiswa dapat menguasai cara-cara pembuatan algoritma pencarian bagidua (binary search) dan konsep penerapannya dalam memecahkan masalah pemrograman
4.      Kegiatan Praktikum
.4.1.      Kegiatan Praktikum 1
§         Uraian dan contoh
4.1.1 Larik
Larik adalah struktur data yang menyimpan sekumpulan elemen yang bertipe dama, setiap elemen diakses langsung melalui indeksnya (harus bertipe data yang menyatakan keterurutan, misalnya integer atau karakter). Berikut contoh-contoh mendeklarasikan larik di dalam bagian deklarasi :
a.       Sebagai peubah
DEKLARASI
A                 : array [1..100] of integer
NamaMHS : array [1..12] of string
NilUjian      : array [0..74] of real
b.      Sebagai tipe bentukan
DEKLARASI
Type LarikInt : array [1..100] of integer {nama tipe baru}
A : LarikInt {A adalah sebuah peubah larik integr dengan 100 elemen}

c.       Mendefinisikan ukuran larik sebagai konstanta
DEKLARASI
Const Nmaks =100 {ukuran maksimum elemen larik}
Type LarikInt : array [1..Nmaks] of integer
A : LarikInt { A adalah sebuah peubah larik integr dengan 100 elemen }

Gambar larik :
a) 
21
36
8
7
10
36
68
32
12
10
36
1
2
3
4
5
6
7
8
9
10
11

 
D        



k
m
t
a
f
m
*
#
1
2
3
4
5
6
7
8

 
 

b)  Kar

c) 
1
Ali
18
2
Tono
24
3
Amir
30
4
Tuti
21
5
Yani
22

 
Siswa     






                Ket :     (a) larik bertipe integer,
                            (b) larik bertipe karakter,
                            (c) larik bertipe struktur.
                                 Angka 1,2,3,.. menyatakan indeks larik

Contoh larik pada gambar, kita mendefinisikan nama dan tipenya dibagian algoritma sebagai berikut:
DEKLARASI
D    : array [1..11] of integer                               {larik pada gambar (a)}
Kar : array [1..8] of character                             {larik pada gambar (b)}

Const n = 5          {jumlah data siswa}
Type Data = record <Nama : string, usia : integer >

Contoh cara mengacu elemen larik pada gambar :
D [2]
D [k] {mengacu elemen ke-k, dengan syarat k sudah terdefinisi nilainya}
Kar [5]
Siswa [1].Nama
Siswa [1].Usia
Siswa [ j ]. Nama {mengacu elemen ke-j, dengan syarat j sudah terdefinisi nilainya}





          4.1.2 Algoritma Pencarian Beruntun (sequential search)
        Pencarian beruntun adalah proses membandingkan setiap elemen larik satu persatu secara beruntun, mulai dari elemen elemen pertama sampai elemen yang dicari ditemukan, atau seluruh elemen sudah diperiksa. Contoh : perhatikan larik L dibawah ini dengan n= 6 elemen :
13
16
14
21
76
15
1
2
3
4
5
6

Nilai yang dicari (x)
Elemen yang dibandingkan (berturut-turut)
Indeks larik yang dikembalikan
21
13, 16, 14, 21 (ditemukan!)
4
13
13 (ditemukan!)
1
12
13,16,14,21,76,15 (tidak ditemukan!)
-1

Notasi algoritmik
Notasi bahasa pascal
Procedure seq_search
DEKLARASI
L : array[1..20] of integer
x,i : integer

ALGORITMA:
Read (x)
L[1]         13
L[2]         16
L[3]         14
L[4]         21
L[5]         76
L[6]         15
i         1
while (i < 5) and (L[i] ≠ x)
i         i+1
if (L[i] = x) then
writeln (‘ditemukan pada elemen larik ke- ’,i)
else
writeln (tidak ditemukan!)
endif
endwhile
program pencarian;
procedure seq_search;
var
  L: array[1..20] of integer;
  x,i: integer;
begin
  write('Angka yang dicari= '); readln(x);
  L[1]:=13; L[2]:=16; L[3]:=14; L[4]:=21; L[5]:= 76; L[6]:=15;
  i:=1;
  while (i<5) and (L[i] <> x) do
  begin
    i:=i+1;
  end;
  if (L[i]=x) then
    writeln('Ditemukan pada elemen larik ke-',i)
  else
    writeln('Tidak ditemukan!');
end;
begin
  
  seq_search;

end.  

Program pencarian
DEKLARASI
Procedure seq_search
ALGORITMA:
Seq_search