Anda di halaman 1dari 26

1.

Program Metode Tabulasi (Pascal)

Program MTABEL; 
label ulang; 
var
x,x1,x2,xa,xb,xc,y,y1,y2,ya,yb:real; 
i,j,k:integer; 
ab:char; 
begin
ulang; 
writeln('Tentukan akar Penyelesaian dengan Metode Tabulasi dari f(x)='); 
writeln; 
write('Input Nilai x1='); 
readln(x1);
y1:=x1*x1*x1-7*X1+1; 
writeln('f(',x1:0:2,')=',y1:0:4); 
repeat
begin
write('Masukan nilai x2='); 
readln(x2);
y2:=x2*x2*x2-7*x2+1; 
writeln('f(',x2:0:2,')=',y2:0:4); 
writeln; 
writeln('Syarat(x1*x2) < 0'); 
write(‘x1*x2=’,y1*y2:0:5); 
if (y1*y2) < 0 then
write (' Nilai OK') 
else
write('Nilai tidak sesuai'); 
readln; 
end; 
until (y1*y2) < 0; 
clrscr; 
k:=0; 
repeat
begin k:=k+1; 
if x1 > x2 then 
begin 
xa:=x1; 
xb:=x2; 
end 
else
begin 
xa:=x2; 
xb:=x1; 
end; 
xc:=(xa-xb)/10;
  i:=0; 
repeat 
begin 
i:=i + 1; 
x:=xb+xc*i; 
ya:=x*x*x-7*x+1; 
yb:=(x-xc)*(x-xc)*(x-xc)-7*(x-xc)+1; 
end; 
until
(ya*yb) < 0; 
x1:=x;
x2:=x-xc; 
writeln('Tabulasi ke-'.k); 
writeln('--------------------------------'); 
writeln(n x f(x) error '); 
writeln('--------------------------------'); 
for j:=1 to 9 do 
begin
x:=xb+xc*(j-1); 
y:=x*x*x-7*x+1; 
writeln('',j,'::',x,'::',y,'::',abs(y),'::'); 
end; 
for j:=10 to 11 do 
begin 
x:=xb+xc*(j-1); 
y:=x*x*x-7*x+1; 
writeln('',j,'::',x,'::',y,'::,abs(y),'::'); 
end; 
writeln('--------------------------------'); 
end; 
readln; 
until
abs(y) < 10e - 8; 
writeln('Akar pendekatan nya adalah x=',x); 
writeln('Error =',abs(y)); 
writeln; 
write('Apakah anda ingin mengulangi?(Y/T):'); 
readln(ab); 
if (ab='Y') or (ab='y') then 
begin 
goto ulang; 
end 
end.
 LOGIKA PROGRAM : 

uses crt ; harus digunakan di setiap awal coding program pascal apabila tidak maka coding tidak
akan bisa berjalan, dan harus diakhiri dengan tanda titik koma (;) ,lalu var
x,x1,x2,xa,xb,xc,y,y1,y2,ya,yb:real; , maksudnya variabel yang akan kita gunakan itu adalah
x,x1,x2,xa,xb,xc,y,y1,y2,ya,yb:real; sedangkan i,j,k:integer; integer untuk mengambil nilai atau
angka yang akan kita masukkan. Sedangkan maksud dari tanda titik koma (;) adalah untuk
membatasi setiap step coding programnya.

         Saat pertama kita merunning program, akan ada statement pertama yang menyatakan agar
kita menginputkan nilai x1, kemudian program akan mendefinisikan variabel y1 dengan rumus
y1:=x1*x1*x1-7*x1+1;, setelah y1 didefinisikan, maka akan terlihat hasil dari f(x)1 dengan y1,
kemudian repeat yang berarti program akan mengulang perhitungan untuk f(x)1 dan y1 sampai
program sudah tidak dapat tereksekusi. 

         Dilanjutkan dengan membaca x2, pengerjaan nya sama halnya dengan mencari x1. Setelah
didapat hasil y1 dan y2, maka program akan membaca kondisi dimana jika y1*y2<0 maka
program akan mencetak “nilai ok” tetapi jika tidak, program akan menyatakan “nilai tidak
sesuai”. Statement tersebut akan terus dibaca sampai hasil dari y1*y2 nya <0. Apabila x1 > x2,
maka xa akan didefinisikan sebagai x1 dan xb akan didefinisikan pula dengan x2. Tetapi jika
nyatanya x1 tidak lebih dari x2 maka xa akan didefinisikan sebagai x2 dan xb akan didefinisikan
sebagai x1. Yaitu xa-xb /10. 

        For J:=1 to 9 do dalam program diatas menggunakan perulangan For dalam Blok statement.
Sehingga nantinya outputnya akan berurut dimulai dari 1 sampai 9, untuk penggunaan blok
dalam For biasanya mempunyai banyak statement, disini statement pertama adalah
mendefinisikan variabel x dan y. Dimana x:=xb+xc*(j-1); dan y:=x*x*x-7*x+1; dan sama
seperti halnya syntax for j:=10 to 11 do, melanjutkan statement yang sebelumnya yaitu for J:=1
to 9 do, jika kedua perulangan tersebut sudah bisa dieksekusi, maka perintah mencetak
writeln('',j,'::',x,'::',y,'::,abs(y),'::'); dapat dijalankan. 

       Selanjutnya until digunakan untuk mengulang statement-statement atau biasa disebut dengan
blok statement sampai kondisi yang diseleksi di until sudah tidak dapat terpenuhi kembali. Dan
kondisi yang dimaksud dalam program ini adalah until abs(y) < 10e - 8; yaitu mengulang
statement-statement sampai absolute pada y nilainya kurang dari 10e-8. Absolute dalam program
ini dimaksudkan untuk memberikan nilai mutlak dalam suatu argumen atau kondisi. Setelah itu
program akan mencetak akar pendekatan dari x, kemudian error nya, dan pada akhir program,
akan ada pertanyaan apakah kita ingin mengulangi perhitungan kembali, jika ya, maka program
akan otomatis kembali ke running pertama pada saat program meminta kita menginputkan x1
dan x2.
 OUTPUT PROGRAM :

Syarat X1 dan X2

Tabulasi Ke 1
Tabulasi Ke 2

Tabulasi Ke 3
Tabulasi Ke 4

Tabulasi Ke 5
Tabulasi Ke 6

Tabulasi Ke 7
Tabulasi Ke 8
2.Program Tabulasi.

Berikut ini adalah coding program :

uses crt;
label ulang;
var x,x1,x2,xa,xb,xc,y,y1,y2,ya,yb:real;
    i,j,k:integer;
    ab:char;
begin
     ulang:
     clrscr;
     writeln('Tentukan akar penyelesaian dengan metode tabulasi dari f(x)=x^3-7x+1');
     writeln;
     write('Masukkan nilai x1 = ');
     readln(x1);
     y1 := x1 * x1 * x1 - 7 * x1 + 1;
     writeln('  f(',x1:0:2,') = ',y1:0:4);
     repeat
     begin
          write('Masukkan nilai x2 = ');
          readln(x2);
          y2 := x2 * x2 * x2 - 7 * x2 + 1;
          writeln('  f(',x2:0:2,') = ',y2:0:4);
          writeln;
          writeln('Syarat (x1 * x2) < 0');
          write('x1 * x2 = ',y1 * y2:0:5);
          if (y1 * y2) < 0 then write('Nilai OK')
          else write('Nilai tidak sesuai');
          readln;
     end;
     until (y1 * y2) < 0;
     clrscr;
     k := 0;
     repeat
     begin
          k := k + 1;
          if x1 > x2 then
          begin
               xa := x1;
               xb := x2;
          end
          else
          begin
               xa := x2;
               xb := x1;
          end;
          xc := (xa - xb) / 10;
          i := 0;
          repeat
          begin
               i := i + 1;
               x := xb + xc * i;
               ya := x * x * x - 7 * x + 1;
               yb := (x - xc) * (x - xc) * (x - xc) - 7 * (x - xc) + 1;
          end;
          until (ya * yb) < 0;
          x1 := x;
          x2 := x - xc;
          writeln('Tabulasi ke-',k);
          writeln('--------------------------------------------------------');
          writeln('n             x               f(x)           error      ');
          writeln('--------------------------------------------------------');
          for j := 1 to 9 do
          begin
               x := xb + xc * (j - 1);
               y := x * x * x - 7 * x + 1;
               writeln('',j,' ::',x,' ::',y,' ::',abs(y),' ::');
          end;
          for j := 10 to 11 do
          begin
               x := xb + xc * (j - 1);
               y := x * x * x - 7 * x + 1;
               writeln('',j,' ::',x,' ::',y,' ::',abs(y),' ::');
          end;
          writeln('--------------------------------------------------------');
     end;
     readln;
     until abs(y) < 10e - 8;
     writeln('Akar pendekatannya adalah x = ',x);
     writeln('Error = ',abs(y));
     writeln;
     write('Apakah anda ingin mengulangi? (Y/T) : ');
     readln(ab);
     if (ab = 'y') or (ab = 'Y') then
     begin
          goto ulang;
     end
end.

copy dan paste atau ketik secara manual #jika_mau_:p dan pastekan pada notepad, atau gunakan
notpad++ agar baris program lebih terstruktur, jika tidak punya silahkan klik gambar di bawah.

Simpan dengan extensi .pas (format coding pascal)

compail dan jalankan program tersebut dan hasil outpunya :


3.Program Metode Tabulasi pada pascal

uses crt;
label ulang;
var x,x1,x2,xa,xb,xc,y,y1,y2,ya,yb:real;
    i,j,k:integer;
    ab:char;
begin
ulang:
clrscr;
writeln('Selamat Datang di Program menentukan akar dengan Metode Tabulasi');
writeln('<<<<<<UNIVERSITAS GUNADARMA>>>>>>');
writeln('<<<<<<Created by YAN AJIE PRASETIA>>>>>>');
writeln;
     writeln('Tentukan akar penyelesaian dengan metode tabulasi dari f(x)=x^3-7x+1..!');
     writeln;
     write('Masukkan nilai x1 = ');
     readln(x1);
     y1 := x1 * x1 * x1 - 7 * x1 + 1;
     writeln('  f(',x1:0:2,') = ',y1:0:4);
     repeat
     begin
          write('Masukkan nilai x2 = ');
          readln(x2);
          y2 := x2 * x2 * x2 - 7 * x2 + 1;
          writeln('  f(',x2:0:2,') = ',y2:0:4);
          writeln;
          writeln('Syarat (x1 * x2) < 0');
          write('x1 * x2 = ',y1 * y2:0:5);
          if (y1 * y2) < 0 then write('Nilai OK')
          else write('Nilai tidak sesuai');
          readln;
     end;
     until (y1 * y2) < 0;
     clrscr;
     k := 0;
     repeat
     begin
          k := k + 1;
          if x1 > x2 then
          begin
               xa := x1;
               xb := x2;
          end
          else
          begin
               xa := x2;
               xb := x1;
          end;
          xc := (xa - xb) / 10;
          i := 0;
          repeat
          begin
               i := i + 1;
               x := xb + xc * i;
               ya := x * x * x - 7 * x + 1;
               yb := (x - xc) * (x - xc) * (x - xc) - 7 * (x - xc) + 1;
          end;
          until (ya * yb) < 0;
          x1 := x;
          x2 := x - xc;
          writeln('Tabulasi ke-',k);
writeln('----------------------------------------------');
writeln(' n ||         x        ||        f(x)      ||       error      ||');
writeln('----------------------------------------------');
          for j := 1 to 9 do
          begin
               x := xb + xc * (j - 1);
               y := x * x * x - 7 * x + 1;
               writeln('',j , '  ::',x,' ::',y,' ::',abs(y),' ::');
          end;
          for j := 10 to 11 do
          begin
               x := xb + xc * (j - 1);
               y := x * x * x - 7 * x + 1;
               writeln('',j , '  ::',x,' ::',y,' ::',abs(y),' ::');
          end;
writeln('---------------------------------------------');
     end;
     readln;
     until abs(y) < 10e - 8;
     writeln('Akar pendekatannya adalah x = ',x);
     writeln('Error = ',abs(y));
     writeln;
     write('Apakah anda ingin mengulangi? (Y/T) : ');
     readln(ab);
     if (ab = 'y') or (ab = 'Y') then
     begin
          goto ulang;
     end
end.
PROGRAM TABULASI PASCAL

Berikut ini penjelasan mengenai codingan tabulasi pada pascal,dimana program ini untuk
menghitung suatu rumus pada matematika lanjut,tanpa menghitung secara manual.

uses crt;
Perintah untuk menyiapkan layar. Setiap akhir statement selalu diakhiri dengan tanda ; .
label ulang;
Perintah untuk mendeklarasikan sebuah label dengan nama ulang.
var x,x1,x2,xa,xb,xc,y,y1,y2,ya,yb:real;
Perintah untuk mendeklarasikan variable x, x1, x2, xa, xb, xc, y, y1, y2, ya, dan yb menggunakan
tipe data real (bilangan bulat).
    i,j,k:integer;
Perintah untuk mendeklarasikan variable i, j, dan k menggunakan tipe data integer.
    ab:char;
Perintah untuk mendeklarasikan variable ab menggunakan tipe data char (karakter huruf dan
angka).
begin
Perintah untuk memulai program.
     ulang:
Menentukan compiler dari label ulang.
     clrscr;
Perintah untuk membersihkan atau mengosongkan layar.
     writeln('Tentukan akar penyelesaian dengan metode tabulasi dari f(x)=x^3-7x+1');
Perintah untuk menampilkan tulisan / komentar:
Tentukan akar penyelesaian dengan metode tabulasi dari f(x)=x^3-7x+1.
     writeln;
perintah untuk memberikan spasi baris kosong.
     write('Masukkan nilai x1 = ');
Perintah untuk menampilkan tulisan / komentar:
Masukkan nilai x1 =
     readln(x1);
Perintah untuk memeriksa input dalam variable x1 agar sesuai dengan tipe data yang telah di
deklarasikan di awal program setelah itu kursor ditempatkan di baris baru.
     y1:=x1*x1*x1-7*x1+1;
Menentukan rumus penghitungan nilai hasil dari variable y1 dari nilai variable x1 dikali nilai
variable x1 dikali nilai variable x1 dikurangi 7 dikali nilai variable x1 ditambah 1.
     writeln(' f(',x1:0:2,')=',y1:0:4);
Perintah untuk menampilkan tulisan:
f diikuti dengan menampilkan nilai input x1 diikuti dengan 2 digit angka 0 di belakang koma
setelah nilai x1 = kemudian ditampilkan output nilai hasil variable y1 dan 4 digit angka 0 di
belakang koma setelah nilai y1.
     repeat
Perintah untuk mengulangi proses.
     begin
          write('Masukkan nilai x2 = ');
Perintah untuk menampilkan tulisan / komentar:
Masukkan nilai x2 =
          readln(x2);
Perintah untuk memeriksa input dalam variable x2 agar sesuai dengan tipe data yang telah di
deklarasikan di awal program setelah itu kursor ditempatkan di baris baru.

          y2:=x2*x2*x2-7*x2+1;
Menentukan rumus penghitungan nilai hasil dari variable y2 dari nilai variable x2 dikali nilai
variable x2 dikali nilai variable x2 dikurangi 7 dikali nilai variable x2 ditambah 1.
          writeln(' f(',x2:0:2,')=',y2:0:4);
Perintah untuk menampilkan tulisan:
f diikuti dengan menampilkan nilai input x2 lalu diikuti dengan 2 digit angka 0 di belakang koma
setelah nilai x2 = kemudian ditampilkan output nilai hasil variable y2 dan 4 digit angka 0 di
belakang koma setelah nilai y2.
          writeln('Syarat(x1*x2)<0');
Perintah untuk menampilkan tulisan:
Syarat(x1*x2)<0.
          writeln('x1*x2=',y1*y2:0:5);
Perintah untuk menampilkan tulisan:
x1*x2= diikuti dengan nilai hasil proses y1 dikali y2 dengan 5 digit angka 0 di belakang koma
setelahnya.
          if(y1*y2)<0 then write('Nilai OK')
          else write('Nilai tidak sesuai');
Perintah untuk menentukan suatu kondisi dimana jika nilai y1 di kali y2 lebih kecil dari 0 maka
akan ditampilkan tulisan: Nilai OK. Dan jika tidak sesuai dengan kondisi tersebut, akan
ditampilkan tulisan: Nilai tidak sesuai.
     end;
Perintah untuk mengakhiri bagian proses penghitungan x2 dan y2 diatas, tanda ; brarti hanya
berhenti sementara dan dapat dilanjutkan dengan penulisan coding program selanjutnya.
     until(y1*y2)<0;
Proses perulangan yang dilakukan oleh perintah repeat dilakukan sampai (until) nilai variable y1
dikali y2 lebih kecil dari 0.
     k:=0;
Statement untuk menentukan nilai variable k adalah 0.
     repeat
     begin
          k:=k+1;
Statement untuk menentukan nilai k adalah nilai k itu sendiri ditambah 1.
          if x1>x2 then
          begin
               xa:=x1;
               xb:=x2;
          end
Statement kondisi jika nilai variable x1 lebih besar dari nilai variable x2 maka dimulai sebuah
ketentuan bahwa nilai variable xa adalah nilai dari variable x1 dan nilai variable xb adalah nilai
dari variable x2.
          else
          begin
               xa:=x2;
               xb:=x1;
          end;
Namun jika selain dari kondisi x1 lebih besar dari x2 maka dimulai sebuah ketentuan hasil lain
bahwa nilai variable xa adalah nilai dari variable x2 dan nilai variable xb adalah nilai dari
variable x1.

          xc:=(xa-xb)/10;
Menentukan proses penghitungan untuk nilai hasil dari variable xc adalah nilai dari variable xa
dikurangi nilai xb kemudian dibagi 10.
          i:=0;
Nilai dari variable i ditentukan sebagai 0.
          repeat
          begin
               i:=i+1;
               x:=xb+xc*i;
               ya:=x*x*x-7*x+1;
               yb:=(x-xc)*(x-xc)*(x-xc)-7*(x-xc)+1;
          end;
          until(ya*yb)<0;
Perintah untuk mengulangi (repeat) proses bagian penghitungan baru dimana nilai dari variable I
adalah nilai variable I itu sendiri ditambah 1.
Nilai variable x adalah nilai variable xb ditambah xc dikali nilai variable i.
Dan nilai variable ya adalah nilai hasil output variable x dikali nilai x dikali nilai x dikurangi 7
dikali nilai x ditambah 1.
Dan nilai variable yb didapat dari nilai variable x dikurangi nilai variable xc dikali nilai variable
x dikurangi nilai variable xc dikali nilai variable x dikurangi nilai variable xc dikurangi 7 dikali
nilai variable x dikurangi nilai variable xc ditambah 1.
Penghitungan tersebut selesai sampai (until) nilai ya dikali nilai yb lebih kecil dari 0.
          x1:=x;
Statement untuk menentukan nilai variable x1 sama dengan nilai variable x.
          x2:=x-xc;
Statement untuk menentukan nilai variable x2 sama dengan nilai variable x dikurangi nilai
variable xc.
          writeln('Tabulasi ke-',k);
Perintah untuk menampilkan tulisan:
Tabulasi ke- dan diikuti output nilai dari variable k.
          writeln('--------------------------');
Perintah untuk menampilkan komentar:
--------------------------
          writeln('n     x     f(x)     error');
Perintah untuk menampilkan tulisan:
n     x     f(x)     error
          writeln('--------------------------');
          for j:=1 to 9 do
Menentukan untuk nilai dari variable j sama dengan 1 sampai 9.
          begin
               x:=xb+xc*(j-1);
               y:=x*x*x-7*x+1;
               writeln('',j,'::',x,'::',y,'::',abs(y),'::');
          end;
Statement untuk menentukan dimulainya (begin) bagian penghitungan nilai variable x sama
dengan nilai variable xb ditambah nilai variable xc dikali nilai variable j yang  dikurangi 1.
Nilai dari variable y  sama dengan nilai variable x dikali nilai variable x dikali nilai variable x
dikurangi 7 dikali nilai variable x ditambah 1.
Kemudian akan ditampilkan tulisan:
Output nilai j :: output nilai x :: dan output nilai y :: dimana nilai y adalah nilai absolut.

          for j:=10 to 11 do


Menentukan untuk nilai dari variable j sama dengan10 sampai 11.
          begin
               x:=xb+xc*(j-1);
               y:=x*x*x-7*x+1;
               writeln('',j,'::',x,'::',y,'::',abs(y),'::');
          end;
Statement untuk menentukan dimulainya (begin) sebuah bagian penghitungan nilai variable x
sama dengan nilai variable xb ditambah nilai variable xc dikali nilai variable j yang  dikurangi 1.
Nilai dari variable y  sama dengan nilai variable x dikali nilai variable x dikali nilai variable x
dikurangi 7 dikali nilai variable x ditambah 1.
Kemudian akan ditampilkan tulisan:
Output nilai j :: output nilai x :: dan output nilai y :: dimana nilai y adalah nilai absolut.
          writeln('--------------------------');
          end;
          readln;
          until abs(y)<10e-8;
Penghitungan akan diproses sampai nilai absolut variable y lebih kecil dari 10e-8.
          writeln('Akar pendekatannya adalah x=',x);
Menampilkan tulisan:
Akar pendekatannya adalah x= dan diikuti dengan output nilai x.
          writeln('Error=',abs(y));
Menampilkan tulisan:
Error= dan diikuti dengan nilai absolut y.
          writeln;
          write('Apakah anda ingin mengulangi?(Y/T): ');
Menampilkan tulisan diikuti dengan mode input pilihan Y atau T:
Apakah anda ingin mengulangi?(Y/T):
          readln(ab);
Input tersebut ditentukan sebagai variable ab dan sesuai dengan tipe data yang telah ditentukan.
          if(ab='Y') or (ab='T') then
          begin
               goto ulang;
          end;
Sebuah kondisi dari input variable ab tersebut jika inputnya adalah Y untuk Ya atau T untuk
tidak, maka mulai proses untuk kembali (goto) ke bagian label ulang.
end.
Perintah untuk mengakhiri program secara keseluruhan dengan diikuti tanda titik.
Menyelesaikan Akar Persamaan dengan Metode Tabulasi
Menggunakan Program Pascal
================================================
var x,x1,x2,xa,xb,xc,y,y1,y2,ya,yb:real;
 i,j,k:integer;
 ab:char; mendeskripsikan variabel x,x1,x2 dsb sebagai jenis variabel real. Sedangkan i,j,k
sebgai integer dan ab sebagai karakter.
writeln('Tentukan akar penyelesaian dengan metode tabulasi dari f(x)=x^3-7x+1');
writeln;
write('Masukkan nilai x1 = ');
readln(x1);
y1 := x1 * x1 * x1 - 7 * x1 + 1;
writeln('  f(',x1:0:2,') = ',y1:0:4);
repeat
mendeskripsikan persamaan untuk mencari akar penyelesaian, memasukan nilai X1 dan program
akan mencetak X1. Kemudian menentukan spasi-spasi yang ada pada layar apabila nanti kita
akan mencetak program di layar.
Begin memulai program utama
write('Masukkan nilai x2 = '); masukkan nilai X2
readln(x2); program akan mencetak nilai X2 yang kita input
y2 := x2 * x2 * x2 - 7 * x2 + 1; persamaan untuk menyelesaikan akar
writeln('  f(',x2:0:2,') = ',y2:0:4); menentukan letak spasi
writeln;
writeln('Syarat (x1 * x2) < 0')
write('x1 * x2 = ',y1 * y2:0:5);
if (y1 * y2) < 0 then write('Nilai OK')
else write('Nilai tidak sesuai');
readln;
end; syarat jika X1 dikali X2 kurang 0 maka nilai diterima sesuai syarat.
until (y1 * y2) < 0;
clrscr;
k := 0;
repeat
begin
k := k + 1;
if x1 > x2 then begin
xa := x1;
xb := x2;
end jika X1 lebih dari X2 maka xa nilainya sama dengan X1, dan xb akan sama nilainya dengan
X2.
else
begin
xa := x2;
xb := x1;
end;
xc := (xa - xb) / 10;
i := 0;
repeat jika tidak sesuai maka xa akan sama dengan X2 sedangkan xb akan sama dengan X1 dan
xc nya akan bernilai xa dikurang xb lalu di bagi 10.

Begin
 i := i + 1;
 x := xb + xc * i;
 ya := x * x * x - 7 * x + 1;
 yb := (x - xc) * (x - xc) * (x - xc) - 7 * (x - xc) + 1;
 end; kembali seperti persamaan yang diatas hanya saja kita ganti nilai X1 nya dengan x
dikurang xc dan di kali dengan yang sama seperti tadi sesuaikan dengan bentuk persamaan yang
sampai ya di kali dengan yb kurang dari 0.
 until (ya * yb) < 0;
 x1 := x;
 x2 := x - xc;
 writeln('Tabulasi ke-',k);
 writeln('--------------------------------------------------------');
 writeln('n             x               f(x)           error            ');
 writeln('--------------------------------------------------------');
 for j := 1 to 9 do kemudian program akan mencetak untuk tabulasi pertama sampai tabulasi
berikutnya sampai akar penyelsaiannya ketemu dengan 10^-7 (yang paling mendekatin 0).
begin
x := xb + xc * (j - 1);
y := x * x * x - 7 * x + 1;
writeln('',j,' ::',x,' ::',y,' ::',abs(y),' ::');
end;
for j := 10 to 11 do
begin
x := xb + xc * (j - 1);
y := x * x * x - 7 * x + 1;
writeln('',j,' ::',x,' ::',y,' ::',abs(y),' ::');
end;
writeln('--------------------------------------------------------');
end;
readln;
until abs(y) < 10e - 8;
writeln('Akar pendekatannya adalah x = ',x);
writeln('Error = ',abs(y));
writeln;
write('Apakah anda ingin mengulangi? (Y/T) : ');
readln(ab);
if (ab = 'y') or (ab = 'Y') then
begin
goto ulang;
end
end.
4.Program metode tabulasi

Program pascal metode tabulasi


uses crt;
label ulang;
var x,x1,x2,xa,xb,xc,y,y1,y2,ya,yb:real;
i,j,k:integer;
ab:char;
begin
ulang:
clrscr;
writeln('Tentukan akar penyelesaian dengan metode tabulasi dari f(x)=x^3-7x+1');
writeln;
write('Masukkan nilai x1 = ');
readln(x1);
y1 := x1 * x1 * x1 - 7 * x1 + 1;
writeln(' f(',x1:0:2,') = ',y1:0:4);
repeat
begin
write('Masukkan nilai x2 = ');
readln(x2);
y2 := x2 * x2 * x2 - 7 * x2 + 1;
writeln(' f(',x2:0:2,') = ',y2:0:4);
writeln;
writeln('Syarat (x1 * x2) < 0');
write('x1 * x2 = ',y1 * y2:0:5);
if (y1 * y2) < 0 then write('Nilai OK')
else write('Nilai tidak sesuai');
readln;
end;
until (y1 * y2) < 0;
clrscr;
k := 0;
repeat
begin
k := k + 1;
if x1 > x2 then
begin
xa := x1;
xb := x2;
end
else
begin
xa := x2;
xb := x1;
end;
xc := (xa - xb) / 10;
i := 0;
repeat
begin
i := i + 1;
x := xb + xc * i;
ya := x * x * x - 7 * x + 1;
yb := (x - xc) * (x - xc) * (x - xc) - 7 * (x - xc) + 1;
end;
until (ya * yb) < 0;
x1 := x;
x2 := x - xc;
writeln('Tabulasi ke-',k);
writeln('--------------------------------------------------------');
writeln('n x f(x) error ');
writeln('--------------------------------------------------------');
for j := 1 to 9 do
begin
x := xb + xc * (j - 1);
y := x * x * x - 7 * x + 1;
writeln('',j,' ::',x,' ::',y,' ::',abs(y),' ::');
end;
for j := 10 to 11 do
begin
x := xb + xc * (j - 1);
y := x * x * x - 7 * x + 1;
writeln('',j,' ::',x,' ::',y,' ::',abs(y),' ::');
end;
writeln('--------------------------------------------------------');
end;
readln;
until abs(y) < 10e - 8;
writeln('Akar pendekatannya adalah x = ',x);
writeln('Error = ',abs(y));
writeln;
write('Apakah anda ingin mengulangi? (Y/T) : ');
readln(ab);
if (ab = 'y') or (ab = 'Y') then
begin
goto ulang;
end
end.

Anda mungkin juga menyukai