clear; % Menghapus data sebelomnya
display('CONTOH PROGRAM BISECTION')
toleransi = input('masukkan nilai toleransi : ')
N = input('masukkan jumlah looping maximum N = ')
a = input('masukkan nilai a = ')
b = input('masukkan nilai b = ')
fa = fungsi(a); % menghitung f(a)
fb = fungsi(b); % menghitung f(b)
control = fa*fb; % menghitung peubah "control"
if control < 0 % Kemungkinan 1: control < 0
    display('OK')
    if fa < 0
        for i = 1:N,
            c = (a+b)/2;
            k(i)=i; % Untuk keperluan plotting
            x(i)=c; % Untuk keperluan plotting
            fc = fungsi(c); % Menghitung f(c)
            if abs(fc) <= toleransi
                break
            end
            if fc < 0 % Jika fc < 0
                a = c; % c mengganti a
            else % Jika tidak .....
                b = c; % c mengganti b
            end
        end
    else
        for i = 1:N,
            c = (a+b)/2;
            k(i)=i;
            x(i)=c;
            fc = fungsi(c);
            if abs(fc) <= toleransi
                break
            end
            if fc < 0
                b = c;
            else
                a = c;
            end
        end
    end
    plot(k,x), grid on, xlabel('iterasi'), ylabel('nilai c')
    display('proses pencarian akar')
    format long
    iterasi = [k' x']
elseif control == 0 % Kemungkinan 2: control = 0
    if fa == 0
        if fb == 0
            display('akar adalah a dan b')
            akar1 = a
            akar2 = b
        else
            display('akar adalah a')
            akar = a
        end
    else 
        display('akar adalah b')
        akar = b
    end
else % Kemungkinan 3: control > 0
    display('SALAH MEMASUKKAN nilai a dan b')
end
