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.
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.
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.
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