Membuat Operasi Matriks Dengan Delphi


Matriks merupakan salah satu materi dalam bidang ilmu matematika yang sangat berguna bagi aplikasi ilmu-ilmu lain seperti Teknik Elektro, Mesin, Kimia, Sipil, dan ilmu teknik lainnya. Bahkan di bidang non teknik Matriks menjadi peralatan bantu utama dalam menyelesaikan permasalahan yang ada seperti pemecahan optimasi, pemecahan persamaan linear simultan, statistik dan berbagai bidang lainnya. Bagaimana membuat program operasi matriks dengan tampilan yang menarik di Delphi?
Bagi anda yang sudah memahami konsep matriks secara analitis terkadang masih mengalami kesulitan dalam mengimplementasikannya ke numeris. Nah bagi anda yang masih mau belajar dapat melihat tutorial ini, semoga pemahaman anda terhadap matriks menjadi lebih baik.matriks.JPG

Beginilah tampilan program operasi matriks yang akan kita buat. Nah kode programnya seperti apa? Komponen yang diperlukan silahkan pilih sendiri sesuai dengan keinginan anda…

procedure TForm1.Button1Click(Sender: TObject);
var
i,j,k  : integer;
data1  : array [1..10, 1..10] of integer;
data2  : array [1..10, 1..10] of integer;
hasil  : array [1..10, 1..10] of integer;
begin
if RadioButton1.checked then
begin
if (edit1.Text = edit3.Text) and (edit2.Text = edit4.Text) then
begin
for i := 1 to strtoint(edit1.Text) do
begin
StringGrid1.Cells[0,i] := ‘B’ + InttoStr(i);
StringGrid2.Cells[0,i] := ‘B’ + InttoStr(i);
StringGrid3.Cells[0,i] := ‘B’ + InttoStr(i);
for j:= 1 to strtoint(edit2.Text) do
begin
StringGrid1.Cells[i,0] := ‘K’ + InttoStr(i);
StringGrid2.Cells[i,0] := ‘K’ + InttoStr(i);
StringGrid3.Cells[i,0] := ‘K’ + InttoStr(i);
StringGrid3.Cells[i,j] := ”;
data1[i,j] := StrtoInt(StringGrid1.Cells[i,j]);
data2[i,j] := StrtoInt(StringGrid2.Cells[i,j]);
Hasil[i,j] := data1[i,j] + data2[i,j];
stringGrid3.RowCount := strtoint(edit1.Text)+1;
stringGrid3.ColCount := strtoint(edit2.Text)+1;
StringGrid3.Cells[i,j] := inttostr(Hasil[i,j]);
end;
end;
end
else
showmessage(‘Ukuran Matriks Tidak sama’);
edit1.SetFocus;
end;

if RadioButton2.checked then
begin
if ((edit2.Text) = (edit3.Text)) then
begin
for i := 1 to StrtoInt(Edit1.Text) do
for j:= 1 to StrtoInt(Edit4.Text) do
begin
Hasil[i,j] := 0;
for k:= 1 to StrtoInt(Edit2.Text) do
begin
data1[i,k] := StrtoInt(StringGrid1.Cells[k,i]);
data2[k,j] := StrtoInt(StringGrid2.Cells[j,k]);
Hasil [i,j] := Hasil[i,j] + data1[i,k] * data2[k,j];
StringGrid3.RowCount := StrtoInt(edit1.Text) + 1;
StringGrid3.ColCount := StrtoInt(edit4.Text) + 1;
end;
StringGrid3.Cells[j,i] := inttostr(Hasil[i,j]);
end;
end
else
begin
showmessage(‘Ukuran Matriks Tidak Sesuai’);
edit2.SetFocus;
end;
end;

if RadioButton3.checked then
begin
stringGrid3.RowCount := strtoint(edit2.Text)+1;
stringGrid3.ColCount := strtoint(edit1.Text)+1;
for i := 1 to strtoint(edit2.Text) do
begin
for j:= 1 to strtoint(edit1.Text) do
StringGrid3.Cells[j,i] := StringGrid1.Cells[i,j];
end;
end;

if RadioButton4.checked then
begin
stringGrid3.RowCount := strtoint(edit4.Text)+1;
stringGrid3.ColCount := strtoint(edit3.Text)+1;
for i := 1 to strtoint(edit4.Text) do
begin
for j:= 1 to strtoint(edit3.Text) do
StringGrid3.Cells[j,i] := StringGrid2.Cells[i,j];
end;
end;

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
StringGrid1.Cells[1, 1] := ‘1’;
StringGrid1.Cells[1, 2] := ‘0’;
StringGrid1.Cells[1, 3] := ‘0’;
StringGrid1.Cells[1, 4] := ‘0’;
StringGrid1.Cells[1, 5] := ‘0’;

StringGrid1.Cells[2, 1] := ‘0’;
StringGrid1.Cells[2, 2] := ‘1’;
StringGrid1.Cells[2, 3] := ‘0’;
StringGrid1.Cells[2, 4] := ‘0’;
StringGrid1.Cells[2, 5] := ‘0’;

StringGrid1.Cells[3, 1] := ‘0’;
StringGrid1.Cells[3, 2] := ‘0’;
StringGrid1.Cells[3, 3] := ‘1’;
StringGrid1.Cells[3, 4] := ‘0’;
StringGrid1.Cells[3, 5] := ‘0’;

StringGrid1.Cells[4, 1] := ‘0’;
StringGrid1.Cells[4, 2] := ‘0’;
StringGrid1.Cells[4, 3] := ‘0’;
StringGrid1.Cells[4, 4] := ‘1’;
StringGrid1.Cells[4, 5] := ‘0’;

StringGrid1.Cells[5, 1] := ‘0’;
StringGrid1.Cells[5, 2] := ‘0’;
StringGrid1.Cells[5, 3] := ‘0’;
StringGrid1.Cells[5, 4] := ‘0’;
StringGrid1.Cells[5, 5] := ‘1’;

StringGrid2.Cells[1, 1] := ‘5’;
StringGrid2.Cells[1, 2] := ‘5’;
StringGrid2.Cells[1, 3] := ‘5’;
StringGrid2.Cells[1, 4] := ‘5’;
StringGrid2.Cells[1, 5] := ‘5’;

StringGrid2.Cells[2, 1] := ‘4’;
StringGrid2.Cells[2, 2] := ‘4’;
StringGrid2.Cells[2, 3] := ‘4’;
StringGrid2.Cells[2, 4] := ‘4’;
StringGrid2.Cells[2, 5] := ‘4’;

StringGrid2.Cells[3, 1] := ‘3’;
StringGrid2.Cells[3, 2] := ‘3’;
StringGrid2.Cells[3, 3] := ‘3’;
StringGrid2.Cells[3, 4] := ‘3’;
StringGrid2.Cells[3, 5] := ‘3’;

StringGrid2.Cells[4, 1] := ‘2’;
StringGrid2.Cells[4, 2] := ‘2’;
StringGrid2.Cells[4, 3] := ‘2’;
StringGrid2.Cells[4, 4] := ‘2’;
StringGrid2.Cells[4, 5] := ‘2’;

StringGrid2.Cells[5, 1] := ‘1’;
StringGrid2.Cells[5, 2] := ‘1’;
StringGrid2.Cells[5, 3] := ‘1’;
StringGrid2.Cells[5, 4] := ‘1’;
StringGrid2.Cells[5, 5] := ‘1’;

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Application.Terminate;
end;

procedure TForm1.RadioButton1Click(Sender: TObject);
begin
GroupBox2.Caption := ‘  Hasil Penjumlahan Matrik A dan B  ‘;
end;

procedure TForm1.RadioButton2Click(Sender: TObject);
begin
GroupBox2.Caption := ‘  Hasil Perkalian Matrik A dan B  ‘;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
label3.Left := label3.Left – 4;
if label3.Left <= -90 then
label3.Left := 270;
end;

procedure TForm1.Edit1Change(Sender: TObject);
begin
stringGrid1.RowCount := strtoint(edit1.Text)+1;
if (strtoint(edit1.Text)) > 6 then
Begin
StringGrid1.DefaultRowHeight := 15;
StringGrid3.DefaultRowHeight := 15;
end;
end;

procedure TForm1.Edit2Change(Sender: TObject);
begin
stringGrid1.ColCount := strtoint(edit2.Text)+1;
if (strtoint(edit2.Text)) > 6 then
begin
StringGrid1.DefaultColWidth := 30;
StringGrid3.DefaultColWidth := 30;
end;
end;

procedure TForm1.Edit3Change(Sender: TObject);
begin
stringGrid2.RowCount := strtoint(edit3.Text)+1;
if (strtoint(edit3.Text)) > 6 then
Begin
StringGrid2.DefaultRowHeight := 15;
StringGrid3.DefaultRowHeight := 15;
end;

end;

procedure TForm1.Edit4Change(Sender: TObject);
begin
stringGrid2.ColCount := strtoint(edit4.Text)+1;
if (strtoint(edit4.Text)) > 6 then
begin
StringGrid2.DefaultColWidth := 30;
StringGrid3.DefaultColWidth := 30;
end;

end;

end.

About muhal

Dosen Jurusan Pendidikan Teknik Elektro FT UNY

Posted on March 17, 2007, in Tutorial Praktis. Bookmark the permalink. 18 Comments.

  1. saya nubi boleh tanya?
    saya punya data sperti ini
    field
    id,nama,milik
    isi
    1,paiman,kebun
    1,paiman,ladang
    1,paiman,sawah
    2,parjo,sawah
    saya pingin tampilkan begini di php
    id nama milik
    1 paiman kebun
    ladang
    sawah
    2 parjo sawah
    bisa tuooolong saya
    saya butuh banget

  2. Saya mau tanya cara bikin perkalian matriks di php:
    tapi besar nya baris dan kolom nya bergantung dari inputan user!!!

  3. sy juga mau bertanya perkalian matriks. besarnya inputan dari user dan besarnya baris dan kolom menyesuaikan. menggunakan php mysql.thaks u

  4. gimana caranya bikin Operasi matriks full animasi pake delphi, terus hasilnya pake efek angka jatuh.

  5. makazeeeh booozz,aku bener bener kebantu nihhhhhhhhhhhhhhh

  6. udin (stkip hamzanwadi selong)

    makazeeeeeeehhhhhhhh endah!/ juga !

  7. ini mudah. tolong dengan animasinya

  8. maksih banyak mas kebetulan q ada tugas matrik perceptron

  9. saya mau nanya ,, apa kk punya program dari source code diatas ???

  10. kalau operasi matriks C=2A * 3B, code nya gimana??? sya udah nyoba tp belum bisa…mhon bantuannya…

  11. Yah tinggal matriks A dan B dikalikan dengan skalarnya aja… moga membantu

  12. Assalamu’alaikum pak, saya baru saja belajar tentang delphi
    maaf pak, apakah saya bisa minta source code dari program matriks tersebut?

    terimakasih

  13. terima kasih pak… dari kemarin2 saya nyari dasar penggunaan matriks dalam delphi… kalo mau nanya2 boleh enggak pak?

  14. OM mau tnya KALAU MATRIX 2×2 cara buatnya gmna

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: