ALGORITMA DENGAN PASCAL

Bookmark and Share

DASAR-DASAR PEMROGRAMAN PASCAL

program Luas_segitiga;
uses wincrt;
procedure
var a,t,L: real;

begin
     write('tulis alas'); readln(a);
     write('tulis tinggi'); readln(t);
     L:= a*t/2;
     write('luas segitiga',L);
end.


program akar_kuadrat;
uses wincrt;
var
   a,b,c:real;
   function akar(a,b,c:real):real;
   begin
   akar:=sqrt (a*a)+(b*b)+(c*c);
   end;
 begin
   writeln(' PROGRAM AKAR KUADRAT');
   writeln(' ********************');
   writeln;
   writeln;
   writeln;
   write(' masukan angka pertama:');readln(a);
   write(' masukan angka kedua :');readln(b);
   write('  masukan angka ketiga :');readln(c);
   writeln('--------------------------');
   writeln('  hasil akar dari:',akar(a,b,c):8:2);
 end.


Program Menara;
uses wincrt;
Var
Jarak, Alfa, Rad, Tinggi    : Real;
begin
          Writeln(' PROGRAM MENGHITUNG TINGGI MENARA');
          Writeln(' ________________________________');
          Writeln;
          writeln;
          Write ('Jarak pengukur hingga menara (meter) =');readln(Jarak);
          Write ('Sudut antara tanah & puncak (derajat) =');readln(alfa);

          rad:= alfa *pi/180;
          tinggi:= sin (rad) / cos (rad) * jarak;
          Writeln('TInggi Menara adalah = ',Tinggi:0:4, ' meter');
          readln;
end.

program konversi_suhu;
uses wincrt;
var celcius,fahrenheit,reamour: real;

begin
     clrscr;
     writeln ('konversi derajad celcius ke fahrenheit dan reamour');
     writeln ('--------------------------------------------------');
     writeln;
     write   ('berapa derajad celcius yang akan di konversikan:');

     readln(celcius);
     fahrenheit:= 9/5*celcius + 32;
     reamour := 4/5*celcius;
     writeln;
     writeln ('derajad celcius =',celcius:1:3);
     writeln ('derajad fahrenheit=',fahrenheit:1:3);
     writeln ('derajad reamour =',reamour:1:3);
end.


PENGGUNAAN WHILE DO


Program menghitung_nilai_rata2;
uses wincrt;
var x,n,k,jumlah:integer;
    rata: real;

begin
     clrscr;
     write('masukkan data:'); readln (n);
     k:=1;
     jumlah:=0;

     while k <= n do
     begin
     write('x=?'); readln(x);
     jumlah:= jumlah+x;
     k:=k+1;
     end;
     rata:=jumlah/n;
     writeln('rata-rata seluruh data=',rata);
end.


PENGGUNAAN IF THEN

program warisan_Pak_Hamzah;
uses wincrt;
var i,al,ap,x: real;
begin
     clrscr;
     writeln ('Telah Meninggal Dengan Tenang');
     writeln ('Prof. Dr. Ir. Hamka Hamzah, M.Sc');
     writeln ('Pada tanggal 25 Desember 2008');
     writeln ('Dengan usia 112 tahun');
     writeln ('Dengan meninggalkan warisan senilai "x"juta rupiah');
     writeln ('Tertanda');
     writeln ('=====Notaris "Adi Prasetia,S.H, M.Hum.=====');
     writeln ('masukkan warisan:'); readln(x);
             i:= 1/2*x;
             al:=1/3*x;
             ap:=1/6*x;
     writeln ('bagian istri adalah:',i:4:0,' juta rupiah');
     writeln ('bagian anal laki-laki adalah:',al:4:0,' juta rupiah');
     writeln ('bagian anak perempuan adalah:',ap:4:0,' juta rupiah');
     writeln;
    
     if  i>al then
         if i>ap then
            writeln ('bagian istri paling banyak senilai',i:4:0,' juta rupiah')
         else
             writeln ('bagian anak perempuan paling banyak senilai',ap:4:0,' juta rupiah')
     else
         if al>ap then
            writeln ('bagian anak laki-laki paling banyak senilai',al:4:0,' juta rupiah')
         else
             writeln ('bagian anak perempuan paling banyak senilai',ap:4:0,' juta rupiah')
end. 
  
Program Bonus;
uses wincrt;

     Var
     TotalPembelian     : LongInt;
     Begin
          Clrscr;
          Write (' Total Pembelian Anda = '); readln(TotalPembelian);

          If TotalPembelian >= 100000 then
          Writeln ('Anda Mendapat Diskon 10%')
          else
              If TotalPembelian >= 50000 then
              Writeln ('ANda Mendapat Bonus 1 buah piring cantik')
              else
                  If TotalPembelian >=10000 then
                  Writeln('anda Mendapat Bonus 1 buah Gelas')
                  else
                      Writeln('Maaf .............. anda Lom Dapat Bonus...!!! silakan belanja Lebih Banyak yaaa!!!');
     End.



PROCEDURE DALAM PEMROGRAMAN PASCAL

Program prosedur_input_dan_output;
uses wincrt;
var A,B,x,y: integer;
procedure Input (var A,B:integer);
begin
writeln('  Prosedur Memasukkan dan Menampilkan Dua Bilangan'); {prosedur Memasukkan dua bilangan} writeln;
Writeln('------------------------------------------------------');writeln;
write('Masukkan bilangan pertamanya! : ');readln(a);
write('Masukkan juga bilangan kedua! : '); readln(b);
end;
procedure Output (var x,y:integer);
begin
x:=A;
y:=B;
writeln; { prosedur menampilkan dua bilangan yang diinput diantara dua bilangan tersebut}
writeln(' kedua bilangan yang diminta untuk ditampilkan yaitu: ',x,', ',a,', ',b,', ',y); writeln;
writeln('(bilangan itu berada diantara dua bilangan yang diinput/pangkal dan ujung).');
end;
 begin
 input(A,B);
 output(X,Y);
 end.
 
PENGGUNAAN CASE OF


program des_hexa;
uses wincrt;
var x,des,hexa: integer;
    A,B,C,D,E,F: string;

begin
     clrscr;
     write('brp des_nya?????');readln(des);
     x:=28;
     repeat
     GOTOXY (X,12);
     hexa:= des mod 16;
     des := des mod 16;
     x:=x-1;
     case hexa of
     0..9:write(hexa) ;
     10:write('A')     ;
     11:write('B')     ;
     12:write('C')      ;
     13:write('D')      ;
     14:write('E')       ;
     15:write('F') ;
          
     until des=0;
    
end.

Program Hari;
uses wincrt;
Var
KodeBulan       : integer;

     Begin
          Write ('bingung Menghitung Jumlah Hari ?? Tulislah kode bulannya [1..12] :');
          readln(kodebulan);

          Case KodeBulan Of
          1, 3, 5, 7, 8,  10, 12: Writeln (' Jumlah hari adalah 31');
          4,6,9, 11 : Writeln ('Jumlah Hari adalah 30');
          2 : Writeln ('Jumlah adalah 28 atau 29, kalo tahun kabisat berarti ya 29 hari.');
          end;
     end.


program Channel_TV;
uses wincrt;

     Var
     no_ke      : Integer;
     Saluran_ke : string;

     begin
          Write ('Masukkan Saluran yang anda pilih ');
          readln (no_ke);

          Case no_ke of
          1: saluran_ke := 'TVRI';
          2: saluran_ke := 'TPI';
          3: saluran_ke := 'RCTI';
          4: saluran_ke := 'SCTV';
          5: saluran_ke := 'ANTV';
          6: saluran_ke := 'Indosiar';
          else
          saluran_ke := 'Saluran anda salah, Error Not Responding!! Try Again.. he..he..he';
          end;

     writeln ('Saluran ke ',no_ke, ' adalah ', saluran_ke);
     end.


PENGGUNAAN REPEAT UNTIL

program des_ke_oktaf;
uses wincrt;
var x,des,okt:integer;
begin
     clrscr;
     write('brp des?');readln(des);
     x:=6;
     repeat
     gotoxy (x,6);
     okt := des mod 8;
     des  := des div 8;
     write(okt);
     x:=x-1;
     until des =0;
end.

program kon_des_biner;
uses wincrt;
var des,x,bin:integer;
begin
     clrscr;
     write('brp des?');readln(des);
     X:=30;
     repeat
           gotoxy (x-1,15);
           write(des mod 2);
           des := des div 2;
     until des = 0;
end.


program des_ke_hexa;
uses wincrt;
var x,des,hexa:integer;
begin
     clrscr;
     write('brp des?');readln(des);
     x:=6;
     repeat
     gotoxy (x,6);
     hexa := des mod 16;
     des  := des div 16;
     write(hexa);
     x:=x-1;
     until des =0;
end.


PENGGUNAAN ARRAY DALAM MATRIKS
program penjumlahan_matriks;
uses wincrt;
type
matriks=array[1..10,1..10]of real;
var
mat_a,mat_b,mat_c:matriks;
baris,kolom,i,j:byte;
procedure baca(var x:matriks);
begin
     for i:=1 to baris do
     for j:=1 to kolom do
     begin
     write('element matriks[',i,',',j,']='); readln(x[i,j]);
     end;
end;
    procedure jumlah (A,B:matriks; var C:matriks);
    var i,j:byte;
    begin
         for i:=1 to baris do
         for j:=1 to kolom do
         begin
         c[i,j]:=A[i,j]+B[i,j];
         writeln('matriks C[',i,',',j,']=',C[i,j]);
         end;
    end;
begin
clrscr;
write('berapa jumlah baris:'); readln(baris);
write('berapa jumlah kolom:'); readln(kolom);
writeln('masukan element matriiks A');
baca(mat_a);
writeln('masukan element matriks B');
baca (mat_b);
jumlah(mat_a,mat_b,mat_c);
end.


PENGGUNAAN FOR
Program Bintang;
Uses wincrt;
Const
Akhir = 10;
Var
Baris, kolom : integer;
                                     
BEGIN
     Clrscr;
     For Baris := 1 TO Akhir DO
         BEGIN
         FOR kolom := 1 TO Baris DO
         Write ('=ADEC=');
         Writeln;
         END;
END.


PROGRAM TINGKAT TINGGI
program averagewaittime;
uses wincrt;
type
    time1=array [1..100] of integer;
    wait1=array [1..100] of integer;
var
   ulang:char;
   pilih:byte;
   n:integer;
procedure FCFS;
var
   waktu:time1;
   wait:wait1;
   i,jumlah,sum:integer;
   awt:real;
begin
     clrscr;
     writeln('#################################');
     writeln('First Come First Server ( FCFS )');
     writeln('#################################');
     write('Jumlah proses : '); readln(n);
     jumlah:=0;
     sum:=0;
     wait[1]:=0;
     for i:=1 to n do
     begin
          write('Masukan lama proses ke-',i,':'); readln(waktu[i]);
          jumlah:=wait[i];
          wait[i+1]:=jumlah+waktu[i];
          sum:=sum+wait[i];
     end;
     gotoxy(1,5+n);
     writeln('#################################');
     writeln('Proses |Working Time| Waiting Time ( WT )');
     writeln('#################################');
     for i:=1 to n do;
     begin
          gotoxy(1,(7+n)+i); write('|');
          gotoxy(11,(7+n)+i); write('|');
          gotoxy(24,(7+n)+i); write('|');
          gotoxy(38,(7+n)+i); write('|');
     end;
     gotoxy(1,((7+n)+n)+i);
     write('################################');
     for i:=1 to n do
     begin
          gotoxy(2,(7+n)+i);
          write('Proses',i);
          gotoxy(14,(7+n)+i);
          write(waktu[i]);
          gotoxy(26,(7+n)+i);
          write(wait[i]);
     end;
     awt:=sum/n;
     gotoxy(1,(9+n)+n);
     writeln('Average Waiting Time ( AWT ) :',sum,'/',n,':',awt:2:2);
     readln;
end;
procedure SJF;
var
   i,j,jumlah,sum,temp:integer;
   awt:real;
   waktu:time1;
   wait:wait1;
begin
     clrscr;
     writeln('##############################');
     writeln('Shortest Job First ( SJF )');
     writeln('##############################');
     write('Jumlah proses : '); readln(n);
     jumlah:=0;
     sum:=0;
     wait[1]:=0;
     temp:=0;

     for i:=1 to n do
     begin
          write('Masukan lama proses ke-',i,':'); readln(waktu[i]);
     end;
     for i:=1 to (n-1) do
         for j:=(i+1)to n do
         begin
              if waktu[j]
              begin
                   temp:=waktu[i];
                   waktu[i]:=waktu[j];
                   waktu[j]:=temp;
              end;
         end;
     gotoxy(1,5+n);
     writeln('###############################');
     writeln('Proses |Working Time|Waiting Time ( WT )');
     writeln('###############################');
     for i:=1 to n do
     begin
          gotoxy(1,(7+n)+i);write('|');
          gotoxy(11,(7+n)+i);write('|');
          gotoxy(24,(7+n)+i);write('|');
          gotoxy(38,(7+n)+i);write('|');
     end;
     gotoxy(1,((7+n)+n)+1);
     write('################################');
     for i:=1 to n do
     begin
          gotoxy(2,(7+n)+i);write('Proses',i);
          gotoxy(14,(7+n)+i);write(waktu[i]);
          gotoxy(26,(7+n)+i);write(wait[i]);
          jumlah:=wait[i];
          wait[i+1]:=jumlah+waktu[i];
          sum:=sum+wait[i];
     end;
     awt:=sum/n;
     gotoxy(1,(9+n)+n);
     writeln('Averge Waiting Time ( AWT ) :',sum,'/',n,';',awt:2:2);
     readln;
end;
procedure pilihan(pilih:byte);
begin
     clrscr;
     writeln('Pilihan :');
     writeln('1. First Come First Served');
     writeln('2. Shortest Job First');
     writeln('3. Exit');
     write('Your Choice : ');readln(pilih);
     case pilih of
     1:fcfs;
     2:sjf;
     3:exit;
     end;
end;
begin
     ulang:='Y';
     repeat
     clrscr;
     pilihan(pilih);
     gotoxy(1,(10+n)+n);
     write('Back to Main Menu (y/n) ?');
     readln(ulang);
     until upcase(ulang)='N';
end.
Bookmark and Share
DOWNLOAD MATERI ALJABAR ABSTRAK
BAB I. PENDAHULUAN
BAB II. OPERASI BINER
BAB III. GRUP
BAB IV. SIFAT SEDERHANA GRUP
BAB V. KOMPLEKS DAN SUBGRUP
BAB VI. GRUP PERMUTASI (SIMETRI)
BAB VII.GRUP SIKLIK
BAB VIII. ISOMORFISMA GRUP
BAB IX. KOSET SUATU SUBGRUP
BAB X. SUBGRUP NORMAL
BAB XI. HOMOMORFISMA GRUP

ALGORITMA NUMERIK

Bookmark and Share
==================================================
BISEKSI
function[akar]=biseksi(a,b,eps)
a=1;
b=4;
while(b-a)>eps
   t=(a+b)/2;
   if(fx(a)*fx(b))<0
      b=t;
   else
      a=t;
   end
end
akar=t
==============================================
%Program Utama
function[akar]=biseksin1(a,b,epsilon);
while(b-a)>epsilon
   t=(a+b)/2;
   if (fungsinya1(a)*fungsinya1(t))< 0
      b=t;
   else
      a=t;
   end
end
akar=t;
==============================================
function B:Bagidua(a,b,eps)
while (abs(b-a)>eps)
   t=(a+b)/2
   if fungsi(a)*fungsi(t)<0
      b=t;
   else a=t;
   end;
end;
B=t
==============================================
function b=bisection
epsilon=0.00001
a=input('tebakan ke1=')
b=input('tebakan ke2=')
while abs((b-a)/2)>=epsilon
T=(a+b)/2
if  f1(a)*f1(T)<0
     b=T
else a=T
end
end
akar=T
disp(['akarnya=',num2str(akar)])
=========================================
function b = bisection (a,b,epsilon);
a = input ('batas kiri interval : ')
b = input ('batas kanan interval: ')
epsilon = input ('nilai ketelitian : ')
while (abs(a-b)) > epsilon
        t = (a + b)/2;
    if (f(a)*f(t)) <= 0
    b = t ;
   else
        a = t;
   end
end
function fn = f(x);
fn = x^2 - 1
==============================================
function bisection ;
disp('METODE BISECTION');
disp('  ================')
a = input('Masukkan batas kiri interval : ');
b = input('Masukkan batas kanan interval : ');
eps = input ('Masukkan epsilon / nilai ketelitian   : ');
itemax = input ('Masukkan jumlah iterasi maksimum   : ');
alfa = a;
disp ('    ');
disp ('Memulai proses iterasi');
disp ('======================');
tic
for i = 1:1:itemax
   t = (a + b)/2;
   if (fn(a,alfa)*fn(t,alfa) <= 0)
    b = t ;
    else
      a = t;
   end
   disp ([' Iterasi ke ',num2str(i),',',' akarnya : ',num2str(t)])
   if (abs(a-b)) <= eps
      break
   end
end
waktu = toc;
disp ('   ')
disp (['Akarnya adalah       : ',num2str(t)])
disp (['Jumlah iterasi     : ',num2str(i)])
disp (['Selang waktu konvergensi: ',num2str(waktu)])
function f = fn(x,alfa);
f = log (2-exp(-x))- x + alfa;
==============================================
function i=input()
a=input('nilai tebakan1=');
b=input('nilai tebakan2=');
e=input('nilai epsilon=');
akar=Bisection(a,b,e)
disp(['akar persamaan=',num2str(akar)])
==================================================
BEDA PUSAT
function beda_pusat();
x=input('Masukkan Orde Polinomial: ');
epsilon=input('Nilai Epsilon: ');
h=1;
zz=0;
delta=10;
while abs(delta) >= epsilon
   x1=x+h;
   x2=x-h;
   z1=fungsi(x1);
   z2=fungsi(x2);
   dx=(z1-z2)/(2*h);
   delta=zz-dx;
   zz=dx;
   h=h/10;
   disp(['f'(x) dari f(X): ',(num2str (dx))]);
   end;
   function y=fungsi(x);
   y=x^3+2*x
==============================================
function beda_pusat();
x=input('Masukkan Orde Polinomial: ');
epsilon=input('Nilai Epsilon: ');
h=1;
zz=0;
delta=10;
while abs(delta) >= epsilon
   x1=x+h;
   x2=x-h;
   z1=fungsi(x1);
   z2=fungsi(x2);
   dx=(z1-z2)/(2*h);
   delta=zz-dx;
   zz=dx;
   h=h/10;
   disp(['f(x) dari f(X): ',(num2str (dx))]);
   end;
   function y=fungsi(x);
   y=x^3+2*x
==============================================
function dx = bedapusat;
x1=input('Masukkan nilai x1:');
h=1;
n=0;
zz=0;
delta=10;
epsilon=1e-5;
while abs(delta)>= epsilon,
    n=n+1;
    for i=1:2
        switch i
        case 1
            x=x1+h;
        case 2
            x=x1-h;
        end
        z(i)=fq(x);
    end;
    dx=(z(1)-z(2))/(2*h);
delta=zz-dx;
zz=dx;
h=h/10;
end;
disp([' ','Turunan pertama dari f(x1):',num2str(dx)]);
==============================================
function beda_pusat();

x=input('Masukkan Orde Polinomial: ');
epsilon=input('Nilai Epsilon: ');
h=1;
zz=0;
delta=10;
while abs(delta) >= epsilon
   x1=x+h;
   x2=x-h;
   z1=fungsi(x1);
   z2=fungsi(x2);
   dx=(z1-z2)/(2*h);
   delta=zz-dx;
   zz=dx;
   h=h/10;
 
   disp(['f(x) dari f(X): ',(num2str (dx))]);
   end;
   function y=fungsi(x);
   y=x^3+2*x  
==============================================
function out = bedapusat(x1)
%x1 = input('Masukkan Nilai X1');
epsilon = 0.00001;
h=1;
n=0;
zz=0;
delta=10;
while abs(delta) >= epsilon
   n=n+1;
   for i= 1:2
      switch(i)
      case{1}
         x=x1+h;
      case{2}
         x=x1-h;
      end
      z(i)=f(x);
   end
   dx=(z(1)-z(2))/(2*h);
   delta=zz-dx;
   zz=dx;
   h=h/10;
end
out = dx;
%disp(['Turunan Pertama Dari f(',num2str(x1),') :',num2str(dx)]);
function hasil = f(x)
%hasil = x^3-2*x^2+3*x+1;
hasil = x^2-4*x+3;
==============================================
function go
eps = 3;
%eps = 10
x=-10;
dx = bedapusat(x);
zz=dx-eps;
while abs(zz)> 10^-5
   x=x+0.001;
   dx=bedapusat(x);
   zz=dx-eps;
end
fx = x^2-4*x+3;
disp(['x: ', num2str(x), ' f(x): ', num2str(fx) ]);
disp([dx]);
==================================================
INTERPOLASI NEWTON
function newton();
n=input('jumlah titik= ');
x=zeros(1,n);
F=zeros(1,n);
for i=1:1:n+1
   x(1,i)=input(['x(',num2str(i),')=']);
   F(1,i)=input(['F(',num2str(i),')=']);
end;
z=input('x akan diinterpolasi= ');
eps=input('epsilon= ');
b(1,1)=F(1,1);
tic
pbagi=b(1,1);
factor=1;
for i=2:1:n
b(1,i)=F(1,i);
 for j=i-1:-1:1
  b(1,j)=(b(1,j+1)-b(1,j))/(x(1,i)-x(1,j));
 end;
factor=factor*(z-x(1,i-1));
suku=b(1,1)*factor;
pbagi=pbagi+suku;
if (abs(suku) <= eps)
   break;
 end;
end;
waktu=toc;
disp(['waktu= ',num2str(waktu)]);
interpolasi=pbagi
======================================
function interpolasinewton();
n=input('jumlah titik (n) = ');
x=zeros(0,n);
F=zeros(0,n);
for i=0:1:n
   x(0,i)=input(['x(',num2str(i),')=']);
   F(0,i)=input(['F(',num2str(i),')=']);
end;
z=input('x akan diinterpolasi= ');
eps=input('epsilon= ');
b(1,0)=F(1,0);
tic
pbagi=b(1,0);
factor=1;
for i=2:1:n
b(1,i)=F(1,i);
 for j=i-1:-1:0
  b(1,j)=(b(1,j+1)-b(1,j))/(x(1,i)-x(1,j));
 end;
factor=factor*(z-x(1,i-1));
suku=b(1,0)*factor;
pbagi=pbagi+suku;
if (abs(suku) <= eps)
   break;
 end;
end;
waktu=toc;
disp(['hasil= ',num2str(pbagi)]);
interpolasi=pbagi    
==================================================
NEWTON RAPHSON
function newton_raphson ;
disp('METODE NEWTON RAPHSON');
disp('  =====================');
x = input('Masukkan tebakan awal : ');
eps = input ('Masukkan epsilon / nilai ketelitian : ');
itemax = input ('Masukkan jumlah iterasi maksimum : ');
alfa = x;
disp ('     ');
disp ('Memulai proses iterasi')
disp ('======================')
xlama = x;
tic
for i = 1:1:itemax
   if ft(xlama) == 0
      break;
   else
      xbaru = xlama - (fn(xlama,alfa)/ft(xlama));
   end
   disp ([' Iterasi ke ',num2str(i),',',' akarnya : ',num2str(xbaru)])
   if abs((xbaru-xlama)/xbaru) <= eps
      break;
   end
   xlama = xbaru; 
end
waktu = toc;
disp ('  ')
disp (['Akarnya adalah       : ',num2str(xbaru)])
disp (['Jumlah iterasi     : ',num2str(i)])
disp (['Selang waktu konvergensi : ',num2str(waktu)])
function f = fn(x,alfa);
f = log (2-exp(-x))- x + alfa;
function f = ft(x);
f = (exp(-x)/(2-exp(-x)))-1;
==============================================
function newtonraphson()
maks=input('masukkan nilai maksimum perulangan: ');
tebakan=input('masukkan taksiran awal: ');
eps=input('masukkan nilai epsilon: ');
xlama=tebakan;
for i=1:maks
    if (df(xlama)==0)
        break;
    else
        xbaru=xlama-(f(xlama)/df(xlama))
    end;
    disp(['iterasi ke', num2str(i), ', nilai x= ',num2str(xbaru)]);
    if (abs((xbaru-xlama)/xbaru)<=eps)
        break;
    end;
    xlama=xbaru;
end;
hasil=xbaru

function y=f(x)
y=3.*x^2-4.*x-25;
function y=df(x)
y=6.*x-4;
======================================
function newton_raphson ();
x = input ('masukkan nilai x tebakan awal : ')
eps = input ('masukkan nilai epsilon : ')
ite = input ('masukkan jumlah iterasi maksimum : ')
xlama = x;
for i = 1:1:ite
   a = i;
   if ft(xlama) == 0
      break;
   else
      xbaru = xlama - (fn(xlama)/ft(xlama))
   end
   if abs((xbaru-xlama)/xbaru) <= eps
      break;
   end
   xlama = xbaru
end
disp (['akarnya adalah : ',num2str(xlama)])
disp (['jumlah iterasi : ',num2str(a)])

function f = fn(x);
f = x^6 - x - 1;
%f = x^2-1;
function f = ft(x);
f = 6*x^5 - 1;
%f = 2*x;
======================================
function newton_raphson ;
disp('METODE NEWTON RAPHSON');
disp('  =====================');
x = input('Masukkan tebakan awal : ');
eps = input ('Masukkan epsilon / nilai ketelitian : ');
itemax = input ('Masukkan jumlah iterasi maksimum : ');
alfa = x;
disp ('     ');
disp ('Memulai proses iterasi')
disp ('======================')
xlama = x;
tic
for i = 1:1:itemax
   if ft(xlama) == 0
      break;
   else
      xbaru = xlama - (fn(xlama,alfa)/ft(xlama));
   end
   disp ([' Iterasi ke ',num2str(i),',',' akarnya : ',num2str(xbaru)])
   if abs((xbaru-xlama)/xbaru) <= eps
      break;
   end
   xlama = xbaru; 
end
waktu = toc;
disp ('  ')
disp (['Akarnya adalah       : ',num2str(xbaru)])
disp (['Jumlah iterasi     : ',num2str(i)])
disp (['Selang waktu konvergensi : ',num2str(waktu)])
======================================


INTERPOLASI LAGRANGE
function interpollagrange;
n = input('masukkan nilai n:');
x = zeros(1,n);
f = zeros(1,n);
for i=1:n
   x(1,i) = input(['x(',num2str(i),') : ']);
   f(1,i) = input(['f(',num2str(i),') : ']);
end
ln = input('Ln(x) : ');
plag = 0;
for i=1:n
   faktor = 1;
   for j=1:n
      if (j~=i);
         faktor = faktor * (ln-x(1,j)) / (x(1,i)-x(1,j));
      end
      end
         plag = plag + faktor * f(1,i);
end
      disp(['Hasil Ln',num2str(ln),':',num2str(plag)]);
==============================================
function lagrange;
disp(['1=senin'])
disp(['2=selasa'])
disp(['3=rabu'])
disp(['4=kamis'])
disp(['5=jumat'])
disp(['6=sabtu'])
disp(['7=minggu'])
n = input('masukkan nilai n:');
x = zeros(1,n);
f = zeros(1,n);
for i=1:n
   x(1,i) = input(['x(',num2str(i),') : ']);
   f(1,i) = input(['f(',num2str(i),') : ']);
end
ln = input('Ln(x) : ');
plag = 0;
for i=1:n
   faktor = 1;
   for j=1:n
      if (j~=i);      
         faktor = faktor * (ln-x(1,j)) / (x(1,i)-x(1,j));
      end
   end
plag = plag + faktor * f(1,i);
end
disp(['Lebar luka pada hari selasa (',num2str(ln),'):',num2str(plag)]);
==============================================
function Nilagrange;
n = input('masukkan nilai n:');
x = zeros(1,n);
f = zeros(1,n);
for i=1:n
   x(1,i) = input(['waktu(',num2str(i),') : ']);
   f(1,i) = input(['Ni Terlarut(',num2str(i),') : ']);
end
ln = input('Ln(x) : ');
plag = 0;
for i=1:n
   faktor = 1;
   for j=1:n
      if (j~=i);      
         faktor = faktor * (ln-x(1,j)) / (x(1,i)-x(1,j));
      end
   end
plag = plag + faktor * f(1,i);
end
disp(['Ni Terlarut (%) selama waktu ',num2str(ln),'jam :',num2str(plag)]);
==============================================
function ILagrange();
    n=input('Jumlah Titik = ');
   x = zeros(1,n);
   f = zeros(1,n);
   for i=1:1:n
      x(1,i)=input(['x(', num2str(i),')= ']);
      f(1,i)=input(['f(', num2str(i),')= ']);
    end;
X=input('x yang akan diinterpolasi=');
L=0;
for i=1:1:n
   faktor=1;
   for j=1:1:n
      if (j~=i)
         faktor=faktor*((X-x(j))/(x(i)-x(j)));
      end;
   end;
   L=L + faktor*f(i);
end;
ILagrange=L
plot(x,f,'o',X,L,'x');
=========================================
SECANT / TALI BUSUR

function akar=secant
x1=input('x1:')
x0=input('x0:')
imaks=input('imaks:')
epsilon=input('epsilon:')
for i=2 : imaks
   Nn=f(x1)*(x1-x0)
   Dn=f(x1)-f(x0)
   if fbedahingga(x)==0
      break
   else x2=x1-(Nn/Dn)
      disp(['Iterasi ke-',num2str(i),':',num2str(x2)])
      if abs((x2-x1)/x2)<=epsilon
         break
         x1=x2
      end
   end
 end
 disp(['akarnya=',num2str(x2)])
 ==============================================
function secant ;
disp('METODE SECANT');
disp('  =============')
a = input ('Masukkan nilai awal pertama : ');
b = input ('Masukkan nilai awal kedua : ');
eps = input('Masukkan epsilon / nilai ketelitian : ');
itemax = input('Masukkan jumlah iterasi maksimum : ');
alfa=a;
disp ('     ');
disp ('Memulai proses iterasi')
disp ('======================')
xlama1 = a;
xlama2 = b;
tic
for i = 1:1:itemax
   P = fn(xlama2,alfa) * (xlama2 - xlama1);
   Q = fn(xlama2,alfa) - fn(xlama1,alfa);
   if ((fn(xlama2,alfa) - fn(xlama1,alfa)) / (xlama2 - xlama1)) == 0
      break;
   else
      xbaru = xlama2 - (P / Q);
      disp ([' Iterasi ke ',num2str(i),',',' akarnya : ',num2str(xbaru)])
   end
   if abs ((xbaru - xlama2)/xlama2) <= eps
      xakar = xbaru;
      break;
   end
   xlama1 = xlama2;
   xlama2 = xbaru; 
end
waktu = toc;
disp ('  ')
disp (['Akarnya adalah       : ',num2str(xakar)])
disp (['Jumlah iterasi     : ',num2str(i)])
disp (['Selang waktu konvergensi : ',num2str(waktu)])

function f = fn(x,alfa);
f = x*x*x*x*x*x-x-1
==============================================
function secant
imaks=input('iterasi maksimum: ')
epsilon=input('epsilon: ')
x1=input('tebakan xn: ')
x2=input('tebakan xn-1: ')
for i=2; imaks
   if Fbedahingga==(F(xlama)-F(xlama2))/(xlama-xlama2);
      exit
   else
      xbaru=xlama-(Nn/Dn);
   end
      if abs((xbaru-xlama)/xbaru) <= epsilon
         break
         xlama:=xbaru;
      end
      disp(['iterasi', num2str(xbaru)]
   end
   function y= F(x)
   y=x^6-x-1
   
==============================================
TRAPESIUM
function t=trapesium
a=input('masukkan nilai a:');
b=input('masukkan nilai b:');
n=input('masukkan nilai n:');
h=(b-a)/n
jumlah =0
for k=1 :n-1
    x=a+h*k
   jumlah=jumlah+ft(x)
end
luas=h*(ft(a)+ft(b)+2*jumlah)/2
disp(['luas:',num2str(luas)])
======================================
function trapes;
disp('FUNGSI TRAPESIUM');
a=input('Masukkan Batas Bawah:');
b=input('Masukkan Batas Atas:');
n=input('Banyaknya Bagian:');
fprintf('Nilai integral= %10.7e',Trapezoid (a,b,n));

function T = Trapezoid (a,b,n);
h=(b-a)/n;
jumlah=0;
for i=1:1:n-1;
   x=a+h*i;
   jumlah=jumlah + F(x);
end;
T=(h/2)*(F(a)+F(b)+2*jumlah);

function Fx = F(x); 
Fx=x^2+x-2
==============================================
function trapesium

a = input ('Masukkan Nilai A :');
b = input ('Masukkan Nilai B :');
c = input ('Masukkan Jumlah Selang :');
h =(b-a)/c;

jum=0;
for  k =1:c-1
   [x]=a+h*k;
   jum=jum+f(x);
end
jum = h * (f(a)+f(b)+2*jum)/2;
disp (['Hasil Luas ',num2str(jum)]);
function [y]= f(x)
[y]=-1*x*x*-x+6;
%[y]=x*x*x*;
 ==============================================
function trapezoid;
disp('FUNGSI TRAPEZOID');
a=input('Masukkan batas interval kiri:');
b=input('Masukkan batas interval kanan:');
n=input('Jumlah pembagian:');
fprintf('Nilai integral= %10.7e',Trapezoid (a,b,n));

function T = Trapezoid (a,b,n);
h=(b-a)/n;
jumlah=0;
for i=1:1:n-1;
   x=a+h*i;
   jumlah=jumlah + F(x);
end;
T=(h/2)*(F(a)+F(b)+2*jumlah);

function Fx = F(x); 
Fx=x^2+x-2
==============================================
INTERPOLASI NEWTON
function s=interpolnewton;
epsilon=0.0001;
n = input('Masukkan nilai n : ');
z = input('Masukkan nilai Pz : ');

x = zeros(1,n);
f = zeros(1,n);
b = zeros(1,n);
for i=1:n
   x(1,i) = input(['x(',num2str(i),') : ']);
   f(1,i) = input(['f(',num2str(i),') : ']);
end
b(1,1) = f(1,1);
faktor = 1;
pbagi = b(1,1);
for i=2:n
   b(1,i) = f(1,i);
   for j=i-1:-1:1
      b(1,j) = (b(1,j+1) - b(1,j)) / (x(1,i) - x(1,j)); 
   end
   faktor = faktor * (z - x(1,i-1));
   suku = b(1)* faktor;
   pbagi = pbagi + suku;
   if (abs(suku) <= eps)
      break;
      end
   end
   disp(['Hasil f(',num2str(z),'):',num2str(pbagi)]);
   ==============================================
function n=newton
imax=input('imax:')
epsilon=input('epsilon:')
xlama=input('Tebakan Awal:')
for i=1 : imax 
   if fturun(xlama)==0
      break
   else xbaru=xlama-f(xlama)/fturun(xlama)
      disp(['Iterasi ke-',num2str(i),':',num2str(xbaru)])
   end
      if abs((xbaru-xlama)/xbaru)<=epsilon
         break
      else
         xlama=xbaru
      end
   end
==============================================
INTEGRAL
function Integral;
a=input('a=');
b=input('b=');
n=input('n=');
eps=input('epsilon=')
i = 10;
while (abs(Tr(a,b,i+10) - Tr(a,b,i))>=eps)
   fprintf('Nilai integral dengan partisi %4.0f adalah = %12.7f\n', i, Tr(a,b,i));
   i = i + 10;
end
function T = Tr(a,b,n);
h=(b-a)/n;
jumlah=0;
for i=1:1:n-1
   x=a + h*i;
   jumlah=jumlah + F(x);
end;
T=(h/2)*(F(a) + F(b) + 2*jumlah);
function F=F(x);
F= -x^2 -x + 6;
==============================================
SIMPSON
function simpson();
a = input('batas bawah = ');
b = input('batas atas = ');
n = input('jumlah partisi = ');
fprintf('nilai integral dengan partisi %3.0f = %12.7f\n',n,Simpson(a,b,n));

function S= Simpson(a,b,n);
if (mod(n,2)~=0)
   break
end;
h = (b - a)/n
x = a : h : b
y = F(x);
v = 2*ones(n+1,1);
v(2:2:n) = v(2:2:n) + 2;
v(1) = 1;
v(n+1) = 1
S = y *v;
S = S * h/3;
function f = F(x);
f = (x.*(1-x).^4)./(1+x.^2);
==============================================
function simpson();
a = input('masukkan batas bawah = ');
b = input('masukkan batas atas = ');
n = input('masukkan jumlah selang = ');
fprintf('nilai integral dengan partisi %3.0f = %12.7f\n',n,Simpson(a,b,n));
h = (b - a)/n
x = a : h : b
y = F(x);
v = 2*ones(n+1,1);
v(2:2:n) = v(2:2:n) + 2;
v(1) = 1;
v(n+1) = 1
S = y *v;
S = S * h/3;
function f = F(x);
f = (x.*(1-x).^4)./(1+x.^2);