11/21/2016

Aturan Komposisi Trapesium

var
  a,b,h,k,luas:real;
  n,i,j:integer;
  x,fx,l:array[0..100]of real;
begin
  a:=StrToFloat(Edit1.Text);
  b:=StrToFloat(Edit2.Text);
  n:=StrToInt(Edit3.Text);

  if a>b then showmessage ('ulangi input selang, asumsikan a<b');
  if a=b then Edit4.Text:='0';

  j:=-1;
  for i:=1 to n+1 do
  begin
    j:=j+1;
    ListBox1.Items.Add(IntToStr(j));
  end;

  h:=(b-a)/n;
  k:=a;
  ListBox2.Items.Add(FloatToStr(k));
  for i:=1 to ListBox1.Count-1 do
  begin
    k:=k+h;
    ListBox2.Items.Add(FloatToStr(k));
  end;

  for i:=0 to ListBox2.Count-1 do
  begin
    x[i]:=StrToFloat(ListBox2.Items[i]);
    fx[i]:=x[i]/(1+sqr(x[i]));
    ListBox3.Items.Add(FloatToStr(fx[i]));
  end;

  for i:=1 to ListBox3.Count-1 do
  begin
    fx[i]:=StrToFloat(ListBox3.Items[i]);
    l[i]:=(h*(fx[i-1]+fx[i]))/2;
    ListBox4.Items.Add(FloatToStr(l[i]));
  end;

  luas:=0;
  for i:=0 to ListBox4.Count-1 do
    begin
      l[i]:=StrToFloat(ListBox4.Items[i]);
    luas:=luas+l[i];
    end;

  Edit4.Text:=FloatToStr(luas);
end;
»»  READMORE...

11/16/2016

Bahan Ajar


Materi yang dibahas adalah tentang Himpunan, khususnya pada bagian Pengaplikasian Diagram Venn yang diajarkan pada siswa kelas VII atau kelas 1 SMP di semester 1.
Kompetensi Dasar yang ingin dicapai adalah menggunakan konsep himpunan dalam pemecahan masalah, khususnya dalam pemecahan masalah yang ada pada kehidupan sehari-hari.
»»  READMORE...

Regresi Linier


procedure TForm1.Button1Click(Sender: TObject);
var
  B:Array[0..100] of real;
  i:Integer; j:Real;
begin
  ListBox1.Items.Add(Edit1.Text);
  ListBox2.Items.Add(Edit2.Text);
  Edit1.Clear;
  Edit2.Clear;
  j:=0;
  for i:=0 to listbox2.count-1 do
    begin
      B[i]:=StrToFloat(Listbox2.Items[i]);
      j:=j+B[i];
    end;
  Edit7.Text:=FloatToStr(j);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  A,AD,B,XY,M:Array[0..100] of Real;
  i,n:Integer;
  rerata,j,jml,a1,a0,j1,j2,j3:Real;
begin
  n:=ListBox1.Items.Count;
  For i:=0 to ListBox1.Items.Count-1 do
    A[i]:=StrToFloat(ListBox1.Items[i]);

  jml:=0;
  For i:=0 to ListBox1.Items.Count-1 do
    jml:=jml+A[i];
  Edit4.Text:=FloatToStr(jml);

  rerata:=jml/n;
  Edit3.Text:=FloatToStr(rerata);

  j1:=0;
  j2:=0;
  j3:=0;
  j:=StrToFloat(Edit7.Text);

  for i:=0 to listbox1.items.Count-1 do
    begin
      M[i]:=a[i]-rerata;
      ListBox3.Items.Add(FloatToStr(m[i]));
      j1:=j1+m[i];
      Edit4.Text:=FloatToStr(j1);

      AD[i]:=sqr(m[i]);
      ListBox4.Items.Add(FloatToStr(AD[i]));
      j2:=j2+AD[i];
      Edit5.Text:=FloatToStr(j2);

      B[i]:=StrToFloat(Listbox2.Items[i]);
      XY[i]:=B[i]*M[i];
      ListBox6.Items.Add(FloatToStr(XY[i]));
      j3:=j3+XY[i];
      Edit6.Text:=FloatToStr(j3);

      a0:=(j*j2)-(j1*j3)/(n*j2);
      Edit8.Text:=FloatToStr(a0);

      a1:=(n*j3)/(n*j2);
      Edit9.Text:=FloatToStr(a1);
    end;
end;
»»  READMORE...

Gauss Seidel Menggunakan Matriks


procedure TForm1.Button1Click(Sender: TObject);
var
  A:array[0..2,0..2] of Real;
  B:array[0..2,0..0] of Real;
  n,i,j,k,l,m:Integer;
  x0,y0,z0,x1,y1,z1,epsilon,c,d,e,e1,e2,e3:Real;
begin
  with StringGrid1 do
    for i:=0 to 2 do
    for j:=0 to 2 do
      A[j,i]:=StrToFloat(Cells[i,j]);
  with StringGrid2 do
    for i:=0 to 0 do
    for j:=0 to 2 do
      B[j,i]:=StrToFloat(Cells[i,j]);

  epsilon:=StrToFloat(Edit1.Text);
  x0:=StrToInt(Edit2.Text);
  y0:=StrToFloat(Edit3.Text);
  z0:=StrToFloat(Edit4.Text);

  c:=Abs(A[0,1])+Abs(A[0,2]);
  d:=Abs(A[1,0])+Abs(A[1,2]);
  e:=Abs(A[2,0])+Abs(A[2,1]);

  k:=0;
  l:=0;
  m:=0;

  If (Abs(A[0,0])<c) and (Abs(A[1,1])<d) and (Abs(A[2,2])<e) then
  ShowMessage ('Nilai tidak akan Konvergen, mohon masukkan kembali SPL yang memenuhi syarat awal')
  else
  begin
    repeat
      k:=k+1;
      x1:=(B[0,0]+((-1*A[0,1])*y0)+((-1*A[0,2])*z0))/A[0,0];
      e1:=Abs((x1-x0)/x1);
      Listbox1.Items.Add(IntToStr(k));
      Listbox2.Items.Add(FloatToStr(x1));
      Listbox3.Items.Add(FloatToStr(e1));

      l:=l+1;
      y1:=(B[1,0]+((-1*A[1,0])*x1)+((-1*A[1,2])*z0))/A[1,1];
      e2:=Abs((y1-y0)/y1);
      Listbox4.Items.Add(IntToStr(l));
      Listbox5.Items.Add(FloatToStr(y1));
      Listbox6.Items.Add(FloatToStr(e2));

      m:=m+1;
      z1:=(B[2,0]+((-1*A[2,0])*x1)+((-1*A[2,1])*y1))/A[2,2];
      e3:=Abs((z1-z0)/z1);
      Listbox7.Items.Add(IntToStr(m));
      Listbox8.Items.Add(FloatToStr(z1));
      Listbox9.Items.Add(FloatToStr(e3));

      If e3<=epsilon then Edit7.Text:=FloatToStr(z1) else z0:=z1;
      If e2<=epsilon then Edit6.Text:=FloatToStr(y1) else y0:=y1;
      If e1<=epsilon then Edit5.Text:=FloatToStr(x1) else x0:=x1;

    Until (e1<=epsilon) or (e2<=epsilon) or (e3<=epsilon);
  end;
Edit2.Text:=FloatToStr(x1);
Edit3.Text:=FloatToStr(y1);
Edit4.Text:=FloatToStr(z1);
end;
»»  READMORE...

Gauss Seidel Menggunakan ListBox



Persamaan sudah harus diketahui terlebih dahulu
 
procedure TForm1.Button1Click(Sender: TObject);
var
  xo,yo,zo,x,y,z,e,gx,gy,gz:Real;
  i,j,k,n:Integer;
begin
  xo:=StrToFloat(Edit1.Text);
  yo:=StrToFloat(Edit2.Text);
  zo:=StrToFloat(Edit3.Text);
  e:=StrToFloat(Edit4.Text);
  n:=StrToInt(Edit5.Text);
  i:=0;
  j:=0;
  k:=0;

  repeat
    i:=i+1;
    j:=j+1;
    k:=k+1;
    x:=((-1*2)+yo-zo)/3;
    y:=(4+zo-x)/4;
    z:=(10-x-y)/3;
    gx:=Abs((x-xo)/x);
    Listbox1.Items.Add(IntToStr(i));
    Listbox2.Items.Add(FloatToStr(x));
    Listbox3.Items.Add(FloatToStr(gx));
    Edit6.Text:=FloatToStr(x);
      if gx>e then
        begin
          xo:=x;
          yo:=y;
          zo:=z;
        end;
  until (gx<e) or (i=n);

  xo:=StrToFloat(Edit1.Text);
  yo:=StrToFloat(Edit2.Text);
  zo:=StrToFloat(Edit3.Text);
  e:=StrToFloat(Edit4.Text);
  n:=StrToInt(Edit5.Text);
  i:=0;
  j:=0;
  k:=0;

  repeat
    i:=i+1;
    j:=j+1;
    k:=k+1;
    x:=((-1*2)+yo-zo)/3;
    y:=(4-x+zo)/4;
    z:=(10-x-y)/3;
    gy:=Abs((y-yo)/y);
    Listbox4.Items.Add(IntToStr(j));
    Listbox5.Items.Add(FloatToStr(y));
    Listbox6.Items.Add(FloatToStr(gy));
      if gy>e then
        begin
          xo:=x;
          yo:=y;
          zo:=z;
        end;
  Edit7.Text:=FloatToStr(y);
  until (gy<e) or (j=n);

  xo:=StrToFloat(Edit1.Text);
  yo:=StrToFloat(Edit2.Text);
  zo:=StrToFloat(Edit3.Text);
  e:=StrToFloat(Edit4.Text);
  n:=StrToInt(Edit5.Text);
  i:=0;
  j:=0;
  k:=0;

  repeat
    i:=i+1;
    j:=j+1;
    k:=k+1;
    x:=((-1*2)+yo-zo)/3;
    y:=(4-x+zo)/4;
    z:=(10-x-y)/3;
    gz:=Abs((z-zo)/z);
    Listbox7.Items.Add(IntToStr(k));
    Listbox8.Items.Add(FloatToStr(z));
    Listbox9.Items.Add(FloatToStr(gz));
      if gz>e then
        begin
          xo:=x;
          yo:=y;
          zo:=z;
        end;
  Edit8.Text:=FloatToStr(z);
  until (gz<e) or (k=n);
end;
»»  READMORE...