bisection

INPUT: f, a, b, toleransi

IF f(a) * f(b) > 0:
    ERROR "Interval tidak mengurung akar"

WHILE (b - a) / 2 > toleransi:
    c = (a + b) / 2

    IF f(c) == 0:
        RETURN c

    IF f(a) * f(c) < 0:
        b = c
    ELSE:
        a = c

RETURN (a + b) / 2

regul flasi

INPUT: f, a, b, toleransi

IF f(a) * f(b) > 0:
    ERROR "Interval tidak mengurung akar"

WHILE True:
    c = (a*f(b) - b*f(a)) / (f(b) - f(a))

    IF abs(f(c)) <= toleransi:
        RETURN c

    IF f(a) * f(c) < 0:
        b = c
    ELSE:
        a = c
INPUT: f, a, b, toleransi, max_iter

IF f(a) == 0:
    RETURN a

IF f(b) == 0:
    RETURN b

IF f(a) * f(b) > 0:
    ERROR "Interval tidak mengurung akar"

FOR i = 1 TO max_iter:
    c = (a*f(b) - b*f(a)) / (f(b) - f(a))

    IF abs(f(c)) <= toleransi:
        RETURN c

    IF f(a) * f(c) < 0:
        b = c
    ELSE:
        a = c

ERROR "Maksimum iterasi tercapai"