cara membuat source code kalkulator sistem persamaan linear tiga variabel

cara membuat source code kalkulator sistem persamaan linear tiga variabel

   Cara Mengarang code program aplikasi bagi  pemula.!!-Ini adalah artikel lanjutan dari calculator dolinear yg pernah saya update tahun  kemarin, yang merupakan aplikasi pertama saya sebagai programer pascal & delphi  sewaktu kelas 1 smk... 
Cara Mengarang code program aplikasi bagi  pemula.!! 
Untuk kali ini dholys akan berikan tutorial Menciptakan code Program aplikasi Menggunakan Bahasa  Delphi /pascal bagi pemula yang ingin bermain dengan delphi dan logika matematika.
nah software/aplikasi yang akan kita buat adalah salah satu software karangan saya yaitu Dolinear,



Cara Mengarang code program aplikasi bagi  pemula.!!



  Dolinear calculator buatan saya adalah calculator SPL3V pertama yang menggunakan bahasa delphi dan merupakan calculator pertama yg dibuat berextensi* .exe, hahah.... tapi...!! 
   tapi pemrograman saya masih jelek wkwkw,w,,w,....maklum saja saya bukan anak kuliahan,,hanya siswa smk TKJ, karna itu para delphier master yg lagi baca mohon dimaklumi ea,, namanya juga usaha...!! 
   disini in ITsystemID saya meggunakan  bahasa delphi,buat kamu yang make bahasa lain silahkan sesuaikan dengan bahasa anda,karna saya jelaskan alur penciptaan codeya..  
   ok langsung aja..

A.MASALAH YANG AKAN DIPECAHKAN


   Untuk masalah/persoalan yg ingin dholys pecahkan  adalah cara menghitung soal Sistem Persamaan Liner 3Variabel dengan cepat.Bentuk umum dari sistem persamaan linear 3 peubah adalah sebagai berikut:

a1x    +  b1y  +  c1z  = d1                  

a2x    +  b2y  +  c2z  = d2     

a3x    +  b3y  +  c3z  = d3
   
dengan a1,b1,c1,d1,      a2,b2,c2,d2,       a3,b3,c3,d3
adalah bilangan real.

   Nilai-nilai x,y,z yang memenuhi ketiga persamaan diatas disebut penyelesaian dari sistem persamaan linear 3 variabel.untuk lebih memaham SPL3V perhatikan contoh berikut:

note:"contoh ini akan terus kita gunakan hingga akhir ebook ini,mohon diperhatikan dengan baik karna 
         logika berpikir saya mungkin berbeda dengan anda "   

contoh:
(1)        2x - y + z = 5
            x - 2y + 3z = 9
            x + 3y + z = 0

   Penyelesaian

   Dari pers(1) dan pers(2),eleminasi (x/y/z)



            2x - y + z = 5       |X 3|   6x - 3y + 3z  = 15
            x – 2y + 3z = 9     |X 1|     x - 2y + 3z = 9
        _______________________-
                                                             5x - y = 6 .......... Pers ke(4)

(2) Dari pers(1) dan pers(3), (bisa juga menggunakan pers(2) dan pers(3)selama salah satu pers belum
      pernah di eliminasi)

Dari pers(1) dan pers(2),eleminasi (x/y/z),(tips: cari yang paling cepat dihilangkan)


         2x - y + z = 5   
         x + 3y + z = 0 
         ________ -
                x - 4y = 5 ...........Pers ke(5)

(3)Dari pers(4) dan pers (5)
     (eleminasi x/y/z)  atau  (eleminasi x/y/z)

 5x - y = 6    |X 4|   20x - 4y = 24                            5x - y = 6          |X 1|  5x -     y = 6
 x - 4y = 5    |X 1|       x - 4y = 5                              x - 4y = 5          |X 5|  5x - 20y = 25
________________ -                                                                _______ -
                                   19x = 19                                                                        19y = -19                         
                                       x = 19/19                                                                       y = -19 / 19
                                       x = 1                                                                              y=-1


note:"pilih salah satu saja jangan pakai keduanya,namun untuk calculator dolinear SPL3V
         menggunakan eliminasi x saja,kecuali anda inginkan code program yang lebih kompleks
         dan lebih singkat  ^_^,artikel ini berdasarkan calculator dolinear"

(4) terserah sih mau eleminasi yang mana karna kedua nya hasilnya benar,
      nah langkah berikutnya:
      subtitusi nilai variabel x  yang didapat ke pers (4) atau pers (5), kenapa tidak kepers 1/2 atau 3 saja?
      itu karena jika variabel x disubtitusi kepers-pers tersebut maka kita tidak akan menemukan nilai variabel
      berikutnya(z).malah kita akan menciptakan persamaan baru yakni PL2V lagi.
      terkecuali lagi anda men-subtitusi var x dan var y sekaligus kepers 1,2 dan 3 maka anda akan mene
      mukan nilai var z.
      contoh: pers 1
                     2x - y + z =5
                     2(1)-(-1) +z =5
                        2+1+z =5
                           3 + z =5
                                   z=5-3   (3 berpindah tempat ,artinya dikali -1 /tanda berubah)
                                    z=2

 kembali lagi ke alur soal kita setelah no3,
(subtitusi nilai var y yang didapat ke pers(4) atau pers(5)) " ingat.! di no 3 kita make eliminasi x bukan eliminasi y"

x - 4y = 5
x - 4(-1) = 5
x + 4 = 5
       x = 5 -4
       x = 1     


(5) subtitusi nilai var x dan var y kepers 1/2/3
      (usahakan selalu yang paling mudah disubtitusi antara pers1/2 atau 3)  

2x - y + z = 5
2(1) - ( -1) + z = 5
2 + 1 + z = 5
     3 + z =5
           z=5 - 3
           z=2

nah sekarang nilai variabel-variabelnya sudah didapat x,y,z (1,-1,2)


B. Menciptakan Code program dari data yang didapat


     OK.sebelum anda masuk ke pembahasan berikutnya ada baiknya anda memahami SPL dengan baik karna akan dapat memudahkan anda dalam menciptakan code.
     Soal kita kali ini akan saya ganti dengan yang baru biar lebih paham,silahkan kerjakan soal berikut seperti bagian A diatas.
     Hahah…jangan males!, klo anda gak ngerti cara diatas gimana mau ngerti bagian ini.yg penting kerjakan soal ini berdasarkan cara diatas kalau bisa penyelesaiannya sama persis ea.

1x   2y + 1z  = 0
3x + 1y  - 1z  =5
1x – 3y  - 2z  =-15

HP-nya nanti akan ketemu HP{2,3,4}

Tips cepat memahami code berikut:
1.buka kedua code (CODE 1 dan CODE2) di dua jendela berbeda,focuskan monitor anda ke code 1 dan 
   code2 tadi
2.Baca baris pertama code 1>> baca baris pertama code 2,begitu seterusnya hingga setiap baris selesai
   anda baca

CODE 1(Masukkan proses perhitungan SPL3V diatas disini)


procedure TForm1.hitungClick(Sender: TObject);
var
 // deklarasikan identifier-identifier yang anda buat disini
  sax,sbx,scx,say,sby,scy,saz,sbz,scz,spers1,spers2,spers3,
  a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,
  aa,bb,cc,dd,ee,ff,gg,hh,ii,jj,kk,ll,mm,nn,oo,pp,qq,rr,ss,tt,uu,
  aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj,
  a1,a2,a3,b1,b2,b3,b4,b5:Real;
   sima,simb,simc,simd,sime,simf:real; //untuk nilai operator
begin
  {untuk sesi ini kita kasih nilai =1,nantinya berguna jika anda menambahkan tombol 
  tambah atau kurang}
sima:=1;
simb:=1;
simc:=1;
simd:=1;
sime:=1;
simf:=1;
// sumber Input data,sesuaikan dengan sumberinput data kamu
  sax   := 1;  //mengubah text string milik  Tedit menjadi type real
  sbx   := 3;
  scx   := 1;
  say   := -2;
  sby   := 1;
  scy   := -3;
  saz   := 1;
  sbz   := -1;
  scz   := -2;
  spers1:= 0;
  spers2:= 5;
  spers3:= -15;

  {Proses Perhitungan SPL3V,untuk penjelasan code segera di tambahkan,namun jika 
  anda mengikuti tips saya sebelumnya anda pasti mudah mengerti}
  a := 1*-1; //hasil = -1
  b := -1 / 1; //hasil = -1
  c := -1*-2; //hasil = 2
  d := -1*1; //hasil = -1
  e := -1*0; //hasil = 0
  f := -1/-1; //hasil = 1
  g := 1*1;  //hasil = 1
  h := 1*3;  //hasil =3
  i := 1*5;  //hasil =5
  j := 1*2;  //hasil =2
  k := 1*1;  //hasil =1
  l := 1*1*-1;  //hasil = -1
  m := 3*-1*-1;  //hasil = 3
  n := -1*-1;  //hasil =1
  o := (3+1)*-1;  //hasil = -4
  p := 1*-1*-1; //hasil =1
  q := 2*-1;  //hasil = -2
  r := (1+(-2))*-1;  //hasil =1
  s := 5*-1*-1;  //hasil = 5
  t := 0*-1;  //hasil =0
  u := (5+0)*-1;  //hasil = -5
  v := 1*-1;  //hasil = -1

  aa := 1*-2;  //hasil = -2
  bb := -2/1;  //hasil = -2
  cc := -2*-2;  //hasil =4
  dd := -2*1;  //hasil = -2
  ee := -2*0;  //hasil = 0
  ff := -2/-2;  //hasil =1
  gg := 1*-3;  //hasil =-3
  hh := 1*1;  //hasil =1
  ii := 1*-15;  //hasil =-15
  jj := 1*4;  //hasil = 4
  kk := 1*-3;  //hasil =-3
  ll := 1*1*-1;  //hasil =-1
  mm := 1*-1*-1;  //hasil =1
  nn := -2*-1;  //hasil =2
  oo := (1+2)*-1; //hasil =-3
  pp := -3*-1*-1; //hasil =-3
  qq := 4*-1; //hasil =-4
  rr := (-3+(-4))*-1; //hasil =7
  ss := -15*-1*-1; //hasil =-15
  tt := 0*-1; //hasil =0
  uu := (-15+0)*-1; //hasil =15

  aaa := -4*-3; //hasil =12
  bbb := 12/-4; //hasil =-3
  ccc := -3*1; //hasil =-3
  ddd := -3*-5; //hasil =15
  eee := 12/-3; //hasil =-4
  fff := -4*7; //hasil =-28
  ggg := -4*15; //hasil =-60
  hhh := -3-(-28); //hasil =25
  iii := 15-(-60); //hasil =75
  jjj :=75/25; //hasil = 3,nilai variable Y ditemukan
  a1 := 3*7; //hasil =21
  a2 := 15-21; //hasil =-6
  a3 := -6/-3; //hasil =2, nilai variable X ditemukan
  b1 := -1*2; //hasil =-2
  b2 := 2*3; //hasil =6
  b3 := -2+6; //hasil =4
  b4 := 0-4; //hasil =-4
  b5 := -4/-1; //hasil =4, nilai variable Z ditemukan
  //Tampilkan nilai yang sudah ditemukan
  nilaix.Text:=2;
  nilaiy.Text:=3;
  nilaiz.Text:=4;

end;






CODE2 (Ganti angka-angka diatas menjadi identifier,Code program yang sudah jadi)


procedure TForm1.hitungClick(Sender: TObject);
var
 // deklarasikan identifier-identifier yang anda buat disini
  sax,sbx,scx,say,sby,scy,saz,sbz,scz,spers1,spers2,spers3,
  a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,
  aa,bb,cc,dd,ee,ff,gg,hh,ii,jj,kk,ll,mm,nn,oo,pp,qq,rr,ss,tt,uu,
  aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj,
  a1,a2,a3,b1,b2,b3,b4,b5:Real;
   sima,simb,simc,simd,sime,simf:real; //untuk nilai operator
begin
  {untuk sesi ini kita kasih nilai =1,nantinya berguna jika anda menambahkan tombol 
  tambah atau kurang}
sima:=1;
simb:=1;
simc:=1;
simd:=1;
sime:=1;
simf:=1;
// sumber Input data,sesuaikan dengan sumberinput data kamu
  sax   := strtofloat(ax.Text);  //mengubah text string milik  Tedit menjadi type real
  sbx   := strtofloat(bx.text);
  scx   := strtofloat(cx.text);
  say   := strtofloat(ay.text);
  sby   := strtofloat(by.Text);
  scy   := strtofloat(cy.Text);
  saz   := strtofloat(az.Text);
  sbz   := strtofloat(bz.Text);
  scz   := strtofloat(cz.text);
  spers1:= strtofloat(pers1.text);
  spers2:= strtofloat(pers2.text);
  spers3:= strtofloat(pers3.text);

  {Proses Perhitungan SPL3V,untuk penjelasan code segera di tambahkan,namun jika 
  anda mengikuti tips saya sebelumnya anda pasti mudah mengerti}
  a := saz*sbz;
  b := a/saz;
  c := b*say;
  d := b*sax;
  e := b*spers1;
  f := a/sbz;
  g := f*sby;
  h := f*sbx;
  i := f*spers2;
  j := sima*c;
  k := simc*g;
  l := simb*simd*-1;
  m := h*l*-1;
  n := d*-1;
  o := (m+n)*-1;
  p := k*l*-1;
  q := j*-1;
  r := (p+q)*-1;
  s := i*l*-1;
  t := e*-1;
  u := (s+t)*-1;
  v := simb*a;

  aa := saz*scz;
  bb := aa/saz;
  cc := bb*say;
  dd := bb*sax;
  ee := bb*spers1;
  ff := aa/scz;
  gg := ff*scy;
  hh := ff*scx;
  ii := ff*spers3;
  jj := sima*cc;
  kk := sime*gg;
  ll := simb*simf*-1;
  mm := hh*ll*-1;
  nn := dd*-1;
  oo := (mm+nn)*-1;
  pp := kk*ll*-1;
  qq := jj*-1;
  rr := (pp+qq)*-1;
  ss := ii*ll*-1;
  tt := ee*-1;
  uu := (ss+tt)*-1;

  aaa := o*oo;
  bbb := aaa/o;
  ccc := bbb*r;
  ddd := bbb*u;
  eee := aaa/oo;
  fff := eee*rr;
  ggg := eee*uu;
  hhh := ccc-fff;
  iii := ddd-ggg;
  jjj := iii/hhh;
  a1 := jjj*rr;
  a2 := uu-a1;
  a3 := a2/oo;
  b1 := d*a3;
  b2 := j*jjj;
  b3 := b1+b2;
  b4 := e-b3;
  b5 := b4/v;
  //Tampilkan nilai yang sudah ditemukan
  nilaix.Text:=floattostr(a3);
  nilaiy.Text:=floattostr(jjj);
  nilaiz.Text:=floattostr(b5);

end;




Penjelasan:
                   1.untuk sima sampai simf,adalah variabel  milik Tbutton operator tambah dan operator
                      kurang,variabel ini berguna jika nantinya anda menambahkan tombol operasi pada
                      aplikasi andaseperti Dolinear



Komentar

  1. Itu action sript yg digunakan yg mana ya kak? Saya tertarik memasukkan kalkulator spltv di media saya mohon bantuannya ya

    BalasHapus
  2. tolong bisa kasih unjuk hasil kalkulatornya ga ka?

    BalasHapus

Posting Komentar