Senin, 22 Juni 2015

Rekursif

Rekursif berarti suatu proses yang memanggil dirinya sendiri. Dalam rekursif sebenarnya terkandung pengertian prosedur atau fungsi. Perbedaannya adalah bahwa rekursif bisa memanggil ke dirinya sendiri, tetapi prosedur atau fungsi harus dipanggil lewat pemanggil prosedur atau fungsi. Rekursif merupakan teknik pemrograman yang penting, dan beberapa bahasa pemrograman modern mendukung keberadaan proses rekursif ini.

Pemanggilan prosedur atau fungsi ke dirinya sendiri bisa berarti proses yang berulang yang tidak bisa diketahui kapan akan berakhir. Dalam pemakaian sehari-hari, rekursi merupakan teknik pemrograman yang berdaya guna untuk digunakan pada pekerjaan pemrograman dengan mengeksperisikannya ke dalam suku-suku dari program lain dengan menambahkan langkahlangkah sejenis. Contoh paling sederhana dari proses rekursi adalah menghitung nilai faktorial dari bilangan bulat.

Prinsif dan proses rekursi:
  1. Memiliki kasus non rekursi(sederhana)
  2. Kasus awal diarahkan menuju kasus sederhana
  3. Mendefinisikan proses rekursi
Bentuk rekursif :
a. suatu subrutin/fungsi/ prosedur yang memanggil dirinya sendiri.
b. Bentuk dimana pemanggilan subrutin terdapat dalam body subrutin
c. Dengan rekursi, program akan lebih mudah dilihat
Bentuk rekursi bertujuan untuk : b.menyederhanakan penulisan program c.menggantikan bentuk iterasi Syarat bentuk rekursif:  ada kondisi terminal (basis)  ada subroutine call yang melibatkan parameter yang nilainya menuju kondisi terminal (recurrence)

Kelebihan perulangan rekursif
Sangat mudah untuk melakukan perulangan dengan batasan yang luas dalam artian melakukan perulangan dalam skala yang besar
Dapat melakukan perulangan dengan batasan fungsi

Kekurangan perulangan rekursif
Tidak bisa melakukan nested loop atau looping bersarang.
Biasanya membuat fungsi sulit untuk dipahami, hanya cocok untuk persoalan tertentu saja.
Memerlukan stack yang lebih besar, sebab setiap kali fungsi dipanggil, variabel lokal dan parameter formal akan ditempatkan ke stack dan ada kalaya akan menyebabkan stack tak cukup lagi (Stack Overum).
Proses agak berbelit-belit karena terdapat pemangilan fungsi yang berulang-ulang dan pemanggilan data yang ditumpuk.

sumber : https://zaharaahyesa.wordpress.com/2014/04/10/algoritma-rekursif/
Pengoperasian deret dan faktorial

List Program
unit deret;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Label4: TLabel;
    Edit4: TEdit;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    function deret(x:integer):integer;
  end;

var
  Form1: TForm1;
  hasil:integer;
  D:real;

implementation

{$R *.dfm}

function TForm1.deret(x:integer):integer;
var
  i:integer;
begin
  i:=1;
  hasil:=0;
  while i<=x do
  begin
    hasil:=hasil+i;
    i:=i+1;
  end;
  deret:=hasil;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  DA,DB,DC,A,B,C:integer;
begin
  A:=strtoint(Edit1.Text);
  B:=strtoint(Edit2.Text);
  C:=strtoint(Edit3.Text);
  DA:=deret(A);
  DB:=deret(B);
  DC:=deret(C);

  D:=(DA+DB)/DC;
  Edit4.Text:=floattostr(D);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Edit1.Text:='';
  Edit2.Text:='';
  Edit3.Text:='';
  Edit4.Text:='';
end;

end.

List Program 1

List Program 2

Hasil Running
Hasil dari deret A dijumlahkan dengan hasil dari deret B, kemudian dibagi dengan hasil dari deret C, dan hasilnya terdapat pada bilangan D





Contong pengoperasian menggunakan bilangan berpangkat













List Program
unit tugas4;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    txtA: TEdit;
    txtB: TEdit;
    txtC: TEdit;
    txtD: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Button1: TButton;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    function pangkat(x,y:integer):integer;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function TForm1.pangkat(x,y:integer):integer;
var
  i,c:integer;
begin
  i:=1;
  c:=1;
  while i<=y do
  begin
    c:=c*x;
    i:=i+1;
  end;
  pangkat:=c;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  A2,B3,C3,A,B,C:integer;
  D:real;
begin
  A:=strtoint(txtA.Text);
  B:=strtoint(txtB.Text);
  C:=strtoint(txtC.Text);

  A2:=pangkat(A,2);
  B3:=pangkat(B,3);
  C3:=pangkat(C,3);

  D:=(A2+B3)/C3;
  txtD.Text:=floattostr(D);
end;

end.

Listing Program 1
Listing Program 2

Hasil Running
Bilangan A adalah berpangkat 2
Bilangan B adalah berpangkat 3
Bilangan C adalah berpangkat 3
Bilangan D adalah hasil pengoperasian

Tugas penggunaan Deret







List Program
unit deretpola;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    Memo1: TMemo;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  x,y,z,i:integer;
begin
  x:=strtoint(Edit1.Text);
  Memo1.Clear;
  i:=-1;
  z:=-2;
  while i<=x do
  begin
    y:=i;
    Memo1.Lines.Add(inttostr(y));
    i:=(y+z)*-1;
    z:=z*-1;
  end;
end;

end.
List Program
Hasil Running


Minggu, 21 Juni 2015

Pengurutan data menggunakan Quick Sort



List Program 1
List program 2


List Program
unit quicksorta;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TFQuickSort = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Edit1: TEdit;
    ListBox1: TListBox;
    ListBox2: TListBox;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
    Data:array of integer;
  public
    { Public declarations }
  end;

var
  FQuickSort: TFQuickSort;

implementation

{$R *.dfm}

procedure QuickSort(var A:array of integer;iLo,iHi:integer);
var
  Lo,Hi,Pivot,T:integer;
begin
  Lo:=iLo;
  Hi:=iHi;
  Pivot:=A[(Lo+Hi) div 2];
  repeat
    while A[Lo]<Pivot do Inc(Lo);
    while A[Hi]>Pivot do Dec(Hi);
    if Lo<=Hi then
    begin
      T:=A[Lo];
      A[Lo]:=A[Hi];
      A[Hi]:=T;
      Inc(Lo);
      Dec(Hi);
    end;
  until Lo>Hi;
  if Hi>iLo then QuickSort(A,iLo,Hi);
  if Lo<iHi then QuickSort(A,Lo,iHi);
end;

procedure TFQuickSort.Button1Click(Sender: TObject);
var
  nilai:integer;
begin
  //menambahkan nilai ke listbox
  if TryStrToInt(Edit1.Text,Nilai) then
  ListBox1.Items.Add(IntToStr(nilai));
  //membersihkan komponen inputan nilai
  Edit1.Clear;
  //focus kursor ke inputan nilai
  Edit1.SetFocus;
end;

procedure TFQuickSort.Button2Click(Sender: TObject);
var
  indek:Word;
begin
  //menentukan panjang array
  SetLength(Data,ListBox1.Items.Count);

  //pemasukan nilai ke array
  for indek:=0 to ListBox1.Items.Count-1 do
  Data[indek]:=StrToInt(ListBox1.Items[indek]);
  //proses pengurutan/sorting
  QuickSort(data,Low(Data),High(Data));
  //kosongkan hasil
  ListBox2.Items.Clear;
  //memasukkan nilai hasil
  for indek:=0 to ListBox1.Items.Count-1 do
  ListBox2.Items.Add(IntToStr(data[indek]));
end;

procedure TFQuickSort.Button3Click(Sender: TObject);
begin
  close;
end;

end.

Hasil Running













Menggunakan Program perpangkatan
















List Program 1
List Program 2

List Program
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    btnPANGKAT1: TButton;
    btnPANGKAT2: TButton;
    btnPANGKAT3: TButton;
    btnPANGKAT4: TButton;
    btnCLEAR: TButton;
    procedure btnPANGKAT1Click(Sender: TObject);
    procedure btnPANGKAT2Click(Sender: TObject);
    procedure btnPANGKAT3Click(Sender: TObject);
    procedure btnPANGKAT4Click(Sender: TObject);
    procedure btnCLEARClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure pangkat1(p,l:string);
    function pangkat2(p,l:string):string;
    function pangkat3(m,n:integer):integer;
  end;

var
  Form1: TForm1;
  c:integer;

implementation

{$R *.dfm}

procedure TForm1.btnPANGKAT1Click(Sender: TObject);
var
  a,b,i,c:integer;
begin
  i:=1;
  c:=1;
  a:=strtoint(edit2.Text);
  b:=strtoint(edit1.Text);
  while i<=a do
  begin
    c:=c*b;
    i:=i+1;
  end;
  edit3.Text:=inttostr(c);
end;

procedure TForm1.pangkat1(p,l:string);
var
  a,b,i:integer;
begin
  i:=1;
  c:=1;
  a:=strtoint(p);
  b:=strtoint(l);
  while i<=a do
  begin
    c:=c*b;
    i:=i+1;
  end;
  edit3.Text:=inttostr(c);
end;

function TForm1.pangkat2(p,l:string):string;
var
  a,b,i:integer;
begin
  i:=1;
  c:=1;
  a:=strtoint(p);
  b:=strtoint(l);
  while i<=a do
  begin
    c:=c*b;
    i:=i+1;
  end;
  pangkat2:=inttostr(c);
end;

function TForm1.pangkat3(m,n:integer):integer;
var
  i:integer;
begin
  i:=1;
  c:=1;
  while i<=n do
  begin
    c:=c*m;
    i:=i+1;
  end;
  pangkat3:=c;
end;

procedure TForm1.btnPANGKAT2Click(Sender: TObject);
begin
  pangkat1(edit2.Text,edit1.Text);
end;

procedure TForm1.btnPANGKAT3Click(Sender: TObject);
begin
  edit3.Text:=pangkat2(edit2.Text,edit1.Text);
end;

procedure TForm1.btnPANGKAT4Click(Sender: TObject);
var
  a,b,c:integer;
begin
  a:=strtoint(edit1.Text);
  b:=strtoint(edit2.Text);
  c:=pangkat3(a,b);
  edit3.Text:=inttostr(c);
end;

procedure TForm1.btnCLEARClick(Sender: TObject);
begin
  edit1.Text:='';
  edit2.Text:='';
  edit3.Text:='';
end;

end.


Hasil Running






















Membuat program deret sederhana










List Program
unit deret;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    Memo1: TMemo;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  a,i,b:integer;
begin
  a:=strtoint(Edit1.Text);
  Memo1.Clear;
  i:=1;
  while i<=a do
  begin
    b:=i;
    Memo1.Lines.Add(inttostr(b));
    i:=i+1;
  end;
end;
end.

Hasil Running
















Mengurutkan data menggunakan Rekursi
Hasil Running



List Program
program Project3;

{$APPTYPE CONSOLE}

uses
  SysUtils;

type
  Tipelarik=string[20];
  Larikurut=array[1..1000] of Tipelarik;

Procedure QuickSort(var x:Larikurut;
                    bawah,atas:word);

var
  I,J:word;
  sementara:Tipelarik;

begin
  While atas>bawah Do
    begin
    I:=bawah;
    J:=atas;
    sementara:=X[bawah];
    {memecak larik menjadi 2 bagian}
    While I<J Do
      begin
      While X[J]>sementara Do
      J:=J-1;
      X[i]:=X[j];
      While(I<J)and(X[i]<=sementara)do
      I:=I+1;
      X[j]:=X[i];
      end;
      X[i]:=sementara;
      {urutkan rekursi}
      quicksort(x,bawah,i-1);
      bawah:=i+1;
      end;
      end;
    Var
      nama:Larikurut;
      N,I:word;
      begin
      Write('jumlah data akan diurutkan?');readln(n);
      writeln;
      writeln('masukkan data:');
      for i:=1 to n Do
        begin
        Write('data ke',i,'?');readln(nama[i]);
        end;
      {urutkan dengan procedure quick sort}
      QuickSort(nama,1,n);
      {tampilkan data yang diurut}
      writeln;
      writeln('Data yang telah diurut:');
      for i:=1 to n do
        writeln(nama[i]);
        readln;
        end.
     end;
end.







Memasukkan atau menambah data nama dengan menggunakan array.


















List Program
Listing Program
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Edit1: TEdit;
    LBData: TListBox;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
  nama1,nama2:array[1..5] of string;
  s:string;

begin
  s:= inputbox('input data','masukkan jumlah data :','0');
  for i:= 1 to strtoint(s) do
    begin
    nama1[i]:=inputbox('data ke:'+inttostr(i),'nama depan','');
    nama2[i]:=inputbox('data ke:'+inttostr(i),'nama belakang','');
    LBData.ITEMS.Add(nama1[i]+' '+nama2[i]);
    edit1.Text:=inttostr(LBData.Items.Count);
    end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  LBData.Clear;
  edit1.Text:='';
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  CLOSE;
end;

end.

Hasil Running




Contoh sederhana penggunaan if then else
Penambahan Tunjangan berdasarkan golongan
Gol. A tunjangan 10.000
Gol. B tunjangan 20.000
Gol. C tunjangan 30.000


Listing Program


















List Program
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    tNAma: TEdit;
    tGaji: TEdit;
    tGol: TEdit;
    Tunj: TLabel;
    Total: TLabel;
    ENTER: TButton;
    procedure ENTERClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.ENTERClick(Sender: TObject);
var
  gaji,tot,tunjang:integer;
begin
  gaji:=StrToInt(tGaji.Text);
    if tGol.Text ='A' then tunjang:=10000;
    if tGol.Text ='B' then tunjang:=20000;
    if tGol.Text ='C' then tunjang:=30000;
  Tunj.Caption :=IntToStr(tunjang);
  tot:=tunjang+gaji;
  Total.Caption:=IntToStr(tot);
end;

end.

Hasil Running

















Hasil jika kita memasukkan Gaji 100.000 dan termasuk pada Gol.A maka akan ditambahkan dengan tunjangan sebesar 10.000
Total gaji yaitu 100.000 + 10.000 = 110.000
Program Menghitung Luas Persegi Panjang


Listing program
List Program
unit materi1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    txtPanjang: TEdit;
    txtLebar: TEdit;
    Label3: TLabel;
    txtLuas: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  Panjang,Lebar,Luas:integer;

begin
  Panjang:=StrToInt(txtPanjang.Text);
  Lebar:=StrToInt(txtLebar.Text);
  Luas:=Panjang*Lebar;
  txtLuas.Text:=IntToStr(Luas);
end;

end.


Contoh hasil pemrograman yaitu jika kita memasukkan Panjang=20, dan Lebar=20, maka luas persegi panjang tersebut adalah Luas= 20*20=400.
Hasil Running

Selasa, 06 Januari 2015


program Project15;
{$APPTYPE CONSOLE}
uses
  SysUtils;
procedure faktorial(var fak, hasil:integer);
    var
      a:integer;
    begin
      hasil:=1;
      for a := 2 to fak do
      hasil:=hasil*a;
    end;
    var
      z,b,c,d,nminr:integer;
      f1,f2,f3:integer;
      x:real;
begin
  writeln ('NIM  : 114224010');
  writeln ('NAMA : BENNY KURNIAWAN');
  writeln ('================================');
  writeln ('CONTOH PENULISAN RUMUS FAKTORIAL');
  writeln ('================================');
  writeln ('');
  write('Masukkan N = '); readln(b);
  write('Masukkan R = '); readln(c);
  faktorial(b,f1);
  nminr:=b-c;
  faktorial(nminr,f2);
  faktorial(c,f3);
  x:=f1/f2*f3;
  writeln('Hasil      = ', x:3:2);
  readln;
  { TODO -oUser -cConsole Main : Insert code here }
end.
Faktorial dari bilangan asli n adalah hasil perkalian antara bilangan bulat positif yang kurang dari atau sama dengan n. Faktorial ditulis sebagai n! dan disebut n faktorial, tanda (!) disebut dengan notasi faktorial.


program Project14;
{$APPTYPE CONSOLE}
uses
  SysUtils;
procedure faktorial(var fak, hasil:integer);
    var   
      a:integer;
    begin
      hasil:=1;
      for a := 2 to fak do
      hasil:=hasil*a;
    end;
    var
      b,c:integer;
begin
  writeln ('NIM  : 114224010');
  writeln ('NAMA : BENNY KURNIAWAN');
  writeln ('====================================');
  writeln ('CONTOH PENULISAN PROCEDURE FAKTORIAL');
  writeln ('====================================');
  writeln ('');
  write('Berapa Faktorial ? '); readln(b);
  faktorial(b,c);
  writeln(b ,' Faktorial = ', c);
  readln;
  { TODO -oUser -cConsole Main : Insert code here }
end.


program Project13;
{$APPTYPE CONSOLE}
uses
  SysUtils;
var
    X,Y,Z:integer;
  procedure jumlah(var A,B,C:integer);
    begin
      C:= A+B;
    end;
begin
  writeln ('NIM  : 114224010');
  writeln ('NAMA : BENNY KURNIAWAN');
  writeln ('=====================================');
  writeln ('CONTOH PENULISAN PROCEDURE & FUNCTION');
  writeln ('    MODEL PROCEDURE BY REFERENCE     ');
  writeln ('=====================================');
  writeln ('');
  write('Masukkan Nilai X = ');readln(X);
  write('Masukkan Nilai Y = ');readln(Y);
  jumlah(X,Y,Z);
  writeln('X + Y = ', Z);
  readln;
  { TODO -oUser -cConsole Main : Insert code here }
end.





program Project12;
{$APPTYPE CONSOLE}
uses
  SysUtils;
var
    X,Y:integer;
  procedure jumlah(A,B:integer) ;
    var
      C:integer;
    begin
      C:= A+B;
      writeln('Hasil Penjumlahan = ',C);
    end;
begin
  writeln ('NIM  : 114224010');
  writeln ('NAMA : BENNY KURNIAWAN');
  writeln ('=====================================');
  writeln ('CONTOH PENULISAN PROCEDURE & FUNCTION');
  writeln ('       MODELPROCEDURE BY VALUE       ');
  writeln ('=====================================');
  writeln ('');
  write('Masukkan Nilai X  = '); readln(X);
  write('Masukkan Nilai Y  = '); readln(Y);
  jumlah(X,Y);
  readln;
  { TODO -oUser -cConsole Main : Insert code here }
end.


program Project11;
{$APPTYPE CONSOLE}
uses
  SysUtils;
procedure jumlah;
  var
    A,B,C:integer;
  begin
    writeln ('NIM  : 114224010');
    writeln ('NAMA : BENNY KURNIAWAN');
    writeln ('=====================================');
    writeln ('CONTOH PENULISAN PROCEDURE & FUNCTION');
    writeln ('          BENTUK SEDERHANA           ');
    writeln ('=====================================');
    writeln ('');
    write('Masukkan Nilai A = '); readln (A);
    write('Masukkan Nilai B = '); readln (B);
    C:= A+B ;
    write('A + B = ',C);
  end;
begin
  jumlah;
  readln;
  { TODO -oUser -cConsole Main : Insert code here }
end.

Contoh 1:
program Project8;
{$APPTYPE CONSOLE}
uses
  SysUtils;
var
  matrik:array[1..10,1..10] of integer;
  x,y:integer;
begin
  writeln('NIM  : 114224010');
  writeln('NAMA : BENNY KURNIAWAN');
  writeln ('=============================');
  writeln ('TAMPILAN MATRIKS GAUSS JORDAN');
  writeln ('=============================');
  writeln ('');
  for x := 1 to 5 do
  begin
    for y := 1 to 5 do
      begin
        matrik[x,y]:=0;
        if x >= y then matrik[x,y]:=x;
        write(matrik[x,y]:4);
      end;
      writeln;
  end;
  readln;
  { TODO -oUser -cConsole Main : Insert code here }
end.


Contoh 2:
program Project10;
{$APPTYPE CONSOLE}
uses
  SysUtils;
var
  matrik:array[1..10,1..10] of integer;
  x,y:integer;
begin
  writeln ('NIM  : 114224010');
  writeln ('NAMA : BENNY KURNIAWAN');
  writeln ('=============================');
  writeln ('TAMPILAN MATRIKS GAUSS JORDAN');
  writeln ('=============================');
  writeln ('');
  for x := 1 to 5 do
  begin
    for y := 1 to 5 do
      begin
        matrik[x,y]:=0;
        if x + y <= 6 then
          write('*':4)
        else
          write('1':4);
      end;
      writeln;
  end;
  readln;
  { TODO -oUser -cConsole Main : Insert code here }
end.

Matriks dalam matematika merupakan kumpulan bilangan, simbol atau ekspresi berbentuk persegi panjang yang disusun menurut baris dan kolom. Bilangan-bilangan yang terdapat pada suatu matriks disebut dengan elemen atau disebut juga anggota dari suatu matriks. Contoh matriks dengan 2 baris dan 3 kolom yaitu sebagai berikut :


Matriks banyak dimanfaatkan untuk menyelesaikan berbagai permasalahan matematika misalnya dalam menemukan solusi masalah persamaan linear, transformasi linear yakni bentuk umum dari fungsi linear contohnya rotasi dalam 3 dimensi. Matriks juga seperti variabel biasa, sehingga matrikspun dapat dimanipulasi misalnya dikalikan, dijumlah, dikurangkan, serta didekomposisikan. Menggunakan representasi matriks, perhitungan dapat dilakukan dengan lebih terstruktur.



Berikut Contoh Penerapan Matriks pada Script Delphi 7 :
program Project6;
{$APPTYPE CONSOLE}
uses
  SysUtils;
var
    A,B,C:ARRAY[1..10,1..10] OF INTEGER;
    X,Y,KOL,BAR:INTEGER;
begin
  writeln('NIM  : 114224010');
  writeln('NAMA : BENNY KURNIAWAN');
  writeln('===============================');
  writeln('CONTOH SCRIPT ARRAY DUA DIMENSI');
  writeln('===============================');
  writeln('                              ');
  write('Masukkan Jumlah Kolom A = ' ); readln(KOL);
  write('Masukkan Jumlah Baris A = ' ); readln(BAR);
  writeln;
  writeln('Masukkan Data Matrik A' );
    for X := 1 to BAR do
      BEGIN
        for Y := 1 to KOL do
          BEGIN
            write('Matrik A [',x,':',Y,'] = ');
            readln(A[X,Y]);
          END;
      END;
  writeln('============================');
  write('Masukkan Jumlah Kolom B = ' ); readln(KOL);
  write('Masukkan Jumlah Baris B = ' ); readln(BAR);
  writeln;
  writeln('Masukkan Data Matrik B' );
    for X := 1 to BAR do
      BEGIN
        for Y := 1 to KOL do
          BEGIN
            write('Matrik B [',x,':',Y,'] = ');
            readln(B[X,Y]);
          END;
      END;
  writeln('============================');
    for X := 1 to BAR do
      BEGIN
        for Y := 1 to KOL do
          BEGIN
            C[X,Y]:=A[X,Y]+B[X,Y];
          END;
      END;
  writeln('============================');
   for X := 1 to BAR do
      BEGIN
        for Y := 1 to KOL do
          BEGIN
            write(C[X,Y]:7);
          END;
          writeln;
      END;
      readln;
      { TODO -oUser -cConsole Main : Insert code here }
end.

Categories

Total Tayang

Jam

Kalender Islam

Diberdayakan oleh Blogger.

Popular Posts

Pengikut