Selasa, 23 Oktober 2012

Boolean Algebra


Definisi Aljabar Boolean
Aljabar  Boolean merupakan salah satu cabang ilmu matematika yang pertama kali dikemukanan oleh seorang matematikawan Inggris yang bernama  George Boole pada tahun 1854. Aljabar  Boolean  dapat didefinisikan secara  abstrak dalam beberapa cara. Cara yang paling umum adalah  dengan menspesifikasikan unsur–unsur  pembentuknya dan operasi–operasi yang menyertainya [Rinaldi Munir, 2005, p282].
Misalkan B adalah himpunan yang didefinisikan pada dua operator biner, + dan ., dan sebuah operator uner,’. Misalkan 0 dan 1 adalah dua elemen yang berbeda dari B. Maka, tupel <B, +, ., ‘, 0, 1> disebut aljabar  Boolean jika untuk setiap  a,  b,  c 0 B berlaku aksioma (sering dinamakan juga postulat Huntington) berikut :
1. Identitas       
(i) a + 0 = a
(ii) a . 1 = a
2. Komutatif
(i) a + b = b + a
(ii) a . b = b . a
3. Distributif
(i) a . (b + c) = (a . b) + (a . c)
(ii) a + (b . c) = (a + b) . (a + c)
4. Komplemen
     Untuk setiap a € B terdapat elemen unik a’ € B sehingga
(i) a + a’ = 1
(ii) a . a’ = 0


Aljabar Boolean Dua-Nilai
Aljabar  Boolean yang terkenal dan memiliki terapan yang luas adalah aljabar Boolean dua-nilai (two-valued Boolean algebra). Aljabar  Boolean dua-nilai didefinisikan pada sebuah himpunan  B dengan dua buah elemen 0 dan 1 (sering dinamakan bit – singkatan dari binary digit), yaitu B = {0, 1}, operator biner, + dan . operator uner, ‘ [Rinaldi Munir, 2005, p285].
Kaidah untuk operator biner dan operator uner ditunjukkan pada Tabel 2.1, 2.2, dan 2.3 di bawah ini.

Harus diperhatikan bahwa keempat aksioma di dalam definisi 2.1 terpenuhi pada himpunan  B = {0, 1} dengan dua operator biner dan satu operator uner yang didefinisikan di atas.
1. Identitas:   jelas berlaku karena dari tabel:
(i) 0 + 1 = 1 + 0 = 1
(ii) 1 . 0 = 0 . 1 = 0
yang memenuhi elemen identitas 0 dan  1 seperti yang didefinisikan pada postulat Huntington.
2. Komutatif :   jelas berlaku dengan melihat simetri tabel operator biner.
3. Distributif :
(i) a . (b + c) = (a . b) + (a . c) dapat ditunjukkan benar dari tabel operator biner di atas, dengan membentuk tabel kebenaran untuk semua nilai yang mungkin dari a, b, dan c (Tabel 7.4). Oleh karena nilai–nilai pada kolom a. (b +  c) sama dengan nilai – nilai pada kolom (a .  b) + (a .  c), maka kesamaan a . (b + c) = (a . b) + (a . c) adalah benar.
(ii) Hukum distributif a + (b . c) = (a + b) . (a + c) dapat ditunjukkan benar dengan membuat tabel kebenaran dengan cara yang sama seperti (i).
4. Komplemen : jelas berlaku karena Tabel 2.4 memperlihatkan bahwa :
(i) a + a’ = 1, karena 0 + 0’ = 0 + 1 = 1 dan 1 + 1’ = 1 + 0 = 1
(ii) a . a = 0, karena 0 . 0’ = 0 . 1 dan 1 . 1’ = 1 . 0 = 0

Karena keempat aksioma terpenuhi, maka terbukti bahwa B = {0 , 1} bersama– sama dengan operator biner + dan ., operator komplemen ‘ merupakan aljabar Boolean. Untuk selanjutnya, jika disebut aljabar  Boolean, maka aljabar  Boolean yang dimaksudkan di sini adalah aljabar Boolean dua-nilai.


Ekspresi Boolean
Pada aljabar  Boolean dua-nilai,  B = {0, 1}. Kedua elemen  B ini seringkali disebut elemen biner atau bit (singkatan binary bit). Peubah (variable) x disebut peubah Boolean atau peubah biner jika nilainya hanya dari B. Ekspresi Boolean dibentuk dari elemen–elemen B dan/atau peubah–peubah yang dapat dikombinasikan satu sama lain dengan operator +, ., dan ‘ [Rinaldi Munir, 2005, p286]. Secara formal, ekspresi Boolean dapat didefinisikan secara rekursif sebagai berikut.
        Misalkan (B, +, ., ‘, 0, 1) adalah sebuah aljabar Boolean. Suatu ekspresi Booleandalam (B, +, ., ‘) adalah:
(i) Setiap elemen di dalam B,
(ii) setiap peubah,
(iii) jika e1 dan e2 adalah ekspresi Boolean, maka e1 + e2, e1 . e2, e1’ adalah ekspresi Boolean.
Jadi menurut definisi di atas, setiap ekspresi di bawah ini,
 0
1
a
b
c
a + b
a . b
a’ . (b + c)
a . b’ + a . b . c + b’, dan sebagainya
adalah ekspresi  Boolean. Ekspresi  Boolean yang mengandung  n peubah dinamakan ekspresi Boolean bagi n peubah [Rinaldi Munir, 2005, p287].
        Dalam penulisan ekspresi  Boolean selanjutnya, digunakan  perjanjian berikut: tanda kurung ‘()’ mempunyai prioritas pengerjaan paling tinggi, kemudian diikuti dengan operator ‘, + dan ·. Sebagai contoh, ekspresi a + b . c berarti a + (b . c), bukan  (a+ b) . c dan ekspresi a . b’ berarti a . (b’), bukan (a . b)’.


Prinsip Dualitas
Di dalam aljabar  Boolean, banyak ditemukan kesamaan (identity) yang dapat diperoleh dari kesamaan lainnya, misalnya pada dua aksioma distributif yang sudah disebutkan pada definisi aljabar Boolean sebelumnya:
(i) a . (b + c) = (a . b) + (a . c)
(ii) a + (b . c) = (a + b) . (a + c)
Aksioma yang kedua diperoleh dari aksioma pertama dengan cara mengganti · dengan + dan mengganti + dengan ·. Prinsip ini dikenal dengan prinsip dualitas, prinsip yang juga kita temukan di dalam teori himpunan maupun logika [Rinaldi Munir, 2005, p289]. Definisi prinsip dualitas di dalam aljabar Boolean adalah sebagai berikut.
            Misalkan  S adalah kesamaan (identity) di dalam aljabar  Boolean yang melibatkan operator +, ·, dan ‘, maka jika pernyataan S* diperoleh dari S dengan cara mengganti · dengan +, + dengan ·, 0 dengan 1, 1 dengan 0 dan membiarkan operator komplemen tetap apa adanya, maka kesamaan  S* juga benar.  S* disebut sebagai  dual dari S.


Hukum–Hukum Aljabar Boolean
            Ada banyak hukum di dalam aljabar  Boolean. Beberapa literatur bervariasi dalam mengungkapkan jumlah hukum pada aljabar Boolean, tetapi hukum–hukum yang paling penting ditampilkan pada tabel berikut. 
            Selanjutnya dapat memperoleh hukum–hukum aljabar  Boolean dari hukum–hukum aljabar dengan cara mempertukarkan
dengan +, atau ­ dengan +
∩ dengan ·, atau ­ dengan ·
U dengan 1, atau T dengan 1
dengan 0, atau F dengan 0.
        Perhatikanlah bahwa hukum yang ke-(ii) dari setiap hukum di atas merupakan dual dari hukum yang ke-(i). Sebagai contoh,
Hukum komutatif:  a + b = b + a
    dualnya:  a . b = b . a
Hukum asosiatif:  a + (b + c) = (a + b) + c
    dualnya:  a . (b . c) = (a . b) . c
Hukum distributif:  a + (b . c) = (a + b) . (a + c)
    dualnya:  a . (b + c) = (a . b) + (a . c)


Fungsi Boolean
            Fungsi Boolean (disebut juga fungsi biner) adalah pemetaan dari Bn ke B melalui ekspresi Boolean, dapat dituliskan sebagai 
f : Bn B
yang dalam hal ini  Bn adalah himpunan yang beranggotakan pasangan terurut ganda-n (ordered n-tuple) di dalam daerah asal B [Rinaldi Munir, 2005, p293].
            Misalkan ekspresi  Boolean dengan  n peubah adalah  E(x1,  x2, ...,  xn). Menurut definisi di atas, setiap pemberian nilai–nilai kepada peubah x1, x2, ..., xn merupakan suatu pasangan terurut ganda-n di dalam daerah asal  Bn dan nilai ekspresi tersebut adalah bayangannya di dalam daerah hasil B. Dengan kata lain, setiap ekspresi Boolean tidak lain merupakan fungsi Boolean. Misalkan sebuah fungsi Boolean adalah  f(x, y, z) = xyz +  x’y +  y’z. Fungsi  f memetakan nilai–nilai pasangan terurut ganda-3 (x,  y,  z) ke himpunan {0, 1}. Contoh pasangan terurut ganda-3 misalnya (1, 0, 1) yang berarti x = 1, y = 0, dan z = 1 sehingga  f(1, 0, 1) = 1 . 0 . 1 + 1’ . 0 + 0’ . 1 = 0 + 0 + 1 = 1.


Komplemen Fungsi Boolean
            Bila sebuah fungsi  Boolean dikomplemenkan, kita memperoleh fungsi komplemen. Fungsi komplemen berguna pada saat kita melakukan penyederhanaan fungsi Boolean [Rinaldi Munir, 2005, p296]. 
            Fungsi komplemen dari suatu fungsi  f, yaitu  f ’ dapat dicari dengan dua cara berikut.
1. Cara pertama: menggunakan hukum De Morgan
Hukum De Morgan untuk dua buah peubah, x1 dan x2 adalah
(i) (x1 + x2)’ = x1’x2
(ii) dan dualnya: (x1 . x2)’ = x1’ + x2

Hukum De Morgan untuk tiga buah peubah, x1, x2 dan x3 adalah
(i)                 (x1 + x2 + x3)’ = (x1 + y’) , yang dalam hal ini y = x2 + x3
                                     = x1’y’
                                     = x1’(x2 + x3)’
                                     = x1’x2’x3
(ii)  dan dualnya : (x1 . x2 . x3)’ = x1’ + x2’ + x3
(iii) (x1 + x2 + ... + xn)’ = x1’ x2’ ... xn’ 
(iv) dan dualnya : (x1 . x2 . ... . xn)’ = x1’ + x2’ + ... + xn
2. Cara kedua: menggunakan prinsip dualitas.
Tentukan dual dari ekspresi  Boolean yang merepresentasikan   f, lalu komplemenkan setiap literal di dalam dual tersebut. Bentuk akhir yang diperoleh menyatakan fungsi komplemen. 
Misalkan  f(x, y, z) = x(y’z’ + yz), maka dual dari ekspresi Boolean nya adalah  
x + (y’ + z’) (y + z)
Komplemenkan tiap literal dari dual di atas menjadi
x’ + (y + z) (y’ + z’) = f ’
Jadi,  f‘(x, y, z) = x’ + (y + z) (y’ + z’)


Penyederhanaan Fungsi Boolean
Fungsi Boolean seringkali mengandung operasi–operasi yang tidak perlu, literal atau suku–suku yang berlebihan. Oleh karena itu, fungsi Boolean dapat disederhanakan lebih lanjut. Menyederhanakan fungsi Boolean artinya mencari bentuk fungsi lain yang ekivalen tetapi dengan jumlah literal atau operasi yang lebih sedikit. Penyederhanaan fungsi Boolean disebut juga minimisasi fungsi [Rinaldi Munir, 2005, p308].
Dipandang dari segi aplikasi aljabar  Boolean, fungsi  Boolean yang lebih sederhana berarti rangkaian logikanya juga lebih sederhana (menggunakan jumlah gerbang logika lebih sedikit). Ada  tiga metode yang dapat digunakan untuk menyederhanakan fungsi Boolean:
1. Secara aljabar, menggunakan hukum–hukum aljabar Boolean.
2. Metode Peta Karnaugh.
3. Metode Quine-McCluskey (metode tabulasi).


Penyederhanaan Fungsi Boolean Secara Aljabar
Jumlah literal di dalam sebuah fungsi Boolean dapat diminimumkan dengan trik manipulasi aljabar. Sayangnya, tidak ada aturan khusus yang harus diikuti yang akan menjamin menuju ke jawaban akhir. Metode yang tersedia adalah prosedur yang  cutand-try yang memanfaatkan postulat, hukum–hukum dasar, dan metode manipulasi lain yang sudah dikenal [Rinaldi Munir, 2005, p309]. Sebagai contoh :
f(x, y, z) = xz’ + y’z + xyz’
               = xz’ . 1 + y’z + xyz’                       (Hukum identitas)
               = xz’ (1 + y) + y’z                            (Hukum distributif)
               = xz’ . 1  + y’z                                  (Hukum dominansi)
f(x, y, z)  = xz’ + y’z                                      (Hukum identitas)


Metode Peta Karnaugh
Metode Peta  Karnaugh (atau  K-map) merupakan metode grafis untuk menyederhanakan fungsi Boolean. Metode ini ditemukan oleh Maurice Karnaugh pada tahun 1953. Peta Karnaugh adalah sebuah diagram/peta yang terbentuk dari kotak–kotak (berbentuk bujursangkar) yang bersisian. Tiap kotak merepresentasikan sebuah minterm.
Tiap kotak dikatakan bertetangga jika  minterm–minterm yang merepresentasikannya berbeda hanya 1 buah literal [Kenneth H. Rosen, 2000, p612]. Peta Karnaugh dapat dibentuk dari fungsi Boolean yang dispesifikasikan dengan ekspresi Boolean maupun fungsi yang direpresentasikan dengan tabel kebenaran.

a. Peta Karnaugh dengan Dua Peubah
Misalkan dua peubah di dalam fungsi Boolean adalah x dan y. Baris pada peta Karnaugh untuk peubah x dan kolom untuk peubah y. Baris pertama diidentifikasi nilai 0 (menyatakan  x’), sedangkan baris kedua dengan 1 (menyatakan  x). Kolom pertama diidentifikasi nilai 0 (menyatakan y’), sedangkan kolom kedua dengan 1 (menyatakan y). Setiap kotak merepresentasikan  minterm dari kombinasi baris dan kolom yang bersesuaian. Berikut terdapat tiga cara  yang lazim digunakan sejumlah literatur dalam menggambarkan peta Karnaugh untuk dua peubah.
Perhatikan bahwa dua kotak yang bertetangga pada peta  Karnaugh hanya berbeda satu bit atau satu literal.

b.  Peta Karnaugh dengan Tiga Peubah
Untuk fungsi Boolean dengan tiga peubah (misalkan x, y dan z), jumlah kotak di dalam peta  Karnaugh meningkat menjadi 23 = 8. Baris pada peta  Karnaugh untuk peubah x dan kolom untuk peubah yz. Baris pertama diidentifikasi nilai  0 (menyatakan x’), sedangkan baris kedua dengan 1 (menyatakan x). Kolom pertama diidentifikasi nilai 00 (menyatakan  x’y’), kolom kedua diidentifikasi nilai 01 (menyatakan  xy’), kolom ketiga diidentifikasi 11 (menyatakan xy). Perhatikanlah bahwa antara satu kolom dengan kolom berikutnya hanya berbeda satu bit. Setiap kotak merepresentasikan minterm dari kombinasi baris dan kolom yang bersesuaian.

c.  Peta Karnaugh dengan Empat Peubah
Misalkan empat peubah di dalam fungsi Boolean adalah w,  x,  y dan z. Jumlah kotak di dalam peta Karnaugh meningkat menjadi 24 = 16. Baris pada peta Karnaugh untuk peubah  wx dan kolom untuk peubah  yz. Baris pertama diidentifikasi nilai 00 (menyatakan w’x’), baris kedua dengan 01 (menyatakan w’x), baris ketiga dengan 11 (menyatakan  wx) dan baris keempat dengan 10 (menyatakan  wx’). Kolom pertama diidentifikasi nilai 00 (menyatakan  y’z’), kolom kedua diidentifikasi nilai 01 (menyatakan  yz’), kolom ketiga diidentifikasi nilai 11 (menyatakan yz), sedangkan kolom keempat diidentifikasi dengan nilai 00 (menyatakan  yz’). Setiap kotak merepresentasikan minterm dari kombinasi baris dan kolom yang bersesuaian.

Rabu, 10 Oktober 2012

Fungsi Matematika


FUNGSI
         Fungsi adalah :
                        jenis khusus dari relasi
         Fungsi f dari X ke Y adalah relasi dari X ke Y yang mempunyai sifat :
1.      Domain dari f adalah X
2.      Jika (x,y), (x,y)’ Î f, maka y = y’
         Notasi :
                        f : X à Y
         Domain dari f adalah X
Ä  Tiap komponen domain mempunyai pasangan (relasi)
         Jika (x,y), (x,y)’ Î f, maka y = y’
Ä  Tiap komponen tidak boleh mempunyai 2 pasangan
Fungsi

  
Contoh
         f = {(1,a),(2,b),(3,a)}
            X = {1,2,3}
            Y = {a,b,c}
                        f : X à Y        è fungsi
         f = {(1,a),(2,b),(3,a)}
            X = {1,2,3,4}
            Y = {a,b,c}
                        f : X à Y        è bukan fungsi
         f = {(1,a),(2,b),(3,c),(1,b)}
            X = {1,2,3}
            Y = {a,b,c}
                        f : X à Y        è bukan fungsi

Spesifikasi Fungsi
  1. Himpunan pasangan terurut
Fungsi adalah relasi sedangkan relasi dinyatakan sebagai himpunan pasangan terurut
  1. Formula pengisian nilai (assignment)
Asumsi daerah asal fungsi (domain) dan daerah hasil fungsi (range) fungsi : R maka himpunan pasangan terurut didefinisikan sebagai
                        f = { (x1, x2) | x Î R }
  1. Kata-kata
Fungsi secara eksplisit dapat dinyatakan dalam rangkaian kata-kata
  1. Kode program
Fungsi dispesifikasikan dalam bentuk kode program.

Jenis Fungsi
         Fungsi satu-satu (one-to-one)
         Fungsi pada (onto)

Koresponden Satu-satu atau Injektif
         Fungsi f dari X ke Y dikatakan berkoresponden satu-satu (one-to-one) atau injektif (injective) jika untuk setiap y Î Y, terdapat paling banyak satu x Î X dengan f(x) = y
         Contoh :
                        Fungsi f = {(1,a),(2,b),(3,a)}
                        dari X = {1,2,3} ke Y = {a,b,c,d}
                        à koresponden bukan satu-satu

Dipetakan pada (Onto)
      •        Jika f adalah fungsi dari X ke Y dan daerah hasil dari f adalah Y, f dikatakan dipetakan pada (onto) 
            Y (atau suatu fungsi pada atau suatu fungsi surjektif)
         Contoh :
                        Fungsi f = {(1,a),(2,b),(3,c)}
                        dari X = {1,2,3} ke Y = {a,b,c}


                        à koresponden satu-satu dan dipetakan pada Y




Bijeksi (Bijection)
         Sebuah fungsi yang baik satu-satu maupun pada disebut bijeksi (bijection)
         Contoh :
                        Fungsi f = {(1,a),(2,b),(3,c)}
                        dari X = {1,2,3} ke Y = {a,b,c}
                        à bijeksi

Operator Biner
         Operator Biner pada himpunan X menggabungkan dengan setiap pasangan terurut dari anggota di X satu anggota di X
         Fungsi dari X x X ke dalam X disebut operator biner pada X
         Contoh :
X = {1,2,…}.  Jika didefinisikan :
                                    f(x,y) = x + y
Maka f merupakan operator biner pada X


Operator Uner (Unary Operator)
         Operator uner pada himpunan X menggabungkan dengan anggota tunggal dari X satu anggota di X
         Fungsi dari X ke dalam X disebut operator uner (unary operator) pada X
         Contoh :
U merupakan himpunan semesta. Jika didefinisikan :
                                   
                        maka f adalah operator uner pada Ã(U)

Fungsi Inversi
         Notasi : f-1
         Jika f adalah berkoresponden satu-satu dari A ke B maka dapat menemukan balikan atau inversi (invers) dari f
         Fungsi yang berkoresponden satu-satu sering dinamakan fungsi yang invertible (dapat dibalikkan) karena dapat mendefinsikan fungsi balikkannya
         Fungsi dikatakan not invertible (tidak dapat dibalikkan) jika bukan fungsi yang berkoresponden satu-satu karena fungsi balikkannya tidak ada

Contoh
         Tentukan invers fungsi f(x) = x – 1
Jawaban :
f(x) = x – 1 merupakan fungsi yang berkoresponden satu-satu jadi balikkan fungsinya ada
f(x) = y à  y = x -1
Sehingga :
            x = y + 1
Invers fungsi balikkannya adalah :
            f-1(y) = y + 1
         Tentukan invers fungsi f(x) = x2 + 1
Jawaban :
f(x) = x2 + 1 à bukan fungsi yang berkoresponden satu-satu sehingga fungsi inversinya tidak ada
Sehingga f(x) = x2 + 1 adalah fungsi yang not invertible

Komposisi (Composition)

         Misalkan g adalah sebuah fungsi dari X ke Y dan f fungsi dari Y ke Z. Jika diberikan x Î X
Ä  g untuk menentukan anggota unik y = g(x) Î Y
Ä  f untuk menentukan anggota unik z = f(y) = f(g(x)) Î Z
         Notasi : (f o g)(a) = f(g(a))  à fungsi yang memetakan nilai dari g(a) ke f

Contoh
         Fungsi g = {(1,a),(2,a),(3,c)} memetakan X = {1,2,3} ke Y = {a,b,c} dan fungsi f = {(a,y), (b,x), (c,z)} memetakan Y = { a,b,c} ke Z = { x,y,z} maka komposisi dari X ke Z adalah :
                                    f o g = {(1,y),(2,y),(3,z)}

Fungsi Khusus
         Fungsi Floor dan Ceiling
         Fungsi Modulo
         Fungsi Faktorial
         Fungsi Eksponen dan Logaritmik

Fungsi Floor (Batas bawah)
         Batas bawah dari x adalah bilangan bulat terbesar yang kecil dari atau sama dengan x
         Notasi :
                        ë û
         Contoh :
                        ë8.3û = 8
                        ë-8.7û = -9

Fungsi Ceiling (Batas Atas)
         Batas atas dari x adalah bilangan bulat terkecil yang lebih besar atau sama dengan x
         Notasi :
                        é ù
         Contoh :
                        é6ù = 6             é-11.3ù = -11
                        é9.1ù = 10                    é-8ù = -8


Fungsi Modulu
         Jika x adalah bilangan bulat tak negatif dan y adalah bilangan bulat positif, didefinisikan x mod y sebagai sisa jika x dibagi y
         Contoh :
F 6 mod 2 = 0
F 5 mod 1 = 0
F 8 mod 12 = 8
F 199673 mod 2 = 1


Fungsi Faktorial
         Untuk sembarang bilangan bulat tidak negatif n
         Dilambangkan dengan :
                                    n!
         Didefinisikan sebagai :
                                   
         Contoh :
            0! = 1
            1! = 1
            2! = 1x2 = 2x1 = 2
            3! = 1x2x3 = 3x2x1 = 6
            5! = 1x2x3x4x5 = 5x4x3x2x1 = 120


Fungsi Eksponensial
         Fungsi eksponensial berbentuk :
                                                1                      , n = 0
                                    an =
                                                a x a x … x a, n > 0
                                                            n
         Untuk kasus perpangkatan negatif :
         Contoh :
         43 = 4 x 4 x 4 = 64
         4-3 = 1/64




Fungsi Logaritmik

         Fungsi logaritmik berbentuk :
         Contoh :
         4log 64 = 3 karena 64 = 43
         ë 2log 1000û = 9 karena 29 = 512 tetapi 210 = 1024

Fungsi Rekursif
         Fungsi f dikatakan fungsi rekursif jika definisi fungsinya mengacu pada dirinya sendiri
         Fungsi rekursif disusun oleh 2 bagian :
F Basis
Ä  Bagian yang berisi nilai awal yang tidak mengacu pada dirinya sendiri.
Ä  Bagian ini menghentikan definisi rekursif (dan memberikan sebuah nilai yang terdefinisi pada fungsi rekursif)
F Rekurens
Ä  Bagian yang mendefinisikan argumen fungsi dalam terminologi dirinya sendiri
Ä  Setiap kali fungsi mengacu pada dirinya sendiri, argumen dari fungsi harus lebih dekat ke nilai awal (basis)
        
Misalkan f(n) = n! maka fungsi faktorial dapat dituliskan sebagai :

         Perhitungan n! secara rekursif :
         Basis
n! = 1               jika n = 0
         Rekurens
n! = n x (n-1)!  Jika n > 0
         Contoh :
5! = 5 x 4!      (rekurens)
             4! = 4 x 3!
                          3! = 3 x 2!
                                                 2! = 2 x 1!
                                                             1! = 1 x 0!
                                                                      0! = 1
Sehingga :
            0! = 1
            1! = 1 x 0! = 1 x 1 = 1
            2! = 2 x 1! = 2 x 1 = 2
            3! = 3 x 2! = 3 x 2 = 6
            4! = 4 x 3! = 4 x 6 = 24
            5! = 5 x 4! = 5 x 24 = 120
Jadi 5! = 120

Contoh
         Misalkan n menyatakan bilangan bulat positif dan fungsi f didefinisikan secara rekursif :
            Tentukan :
         f(25)                           
         f(10)
Penyelesaian :
         f(25) = f(ë25/2û)+1 = f(12) + 1
                               = [f(ë12/2û)+1] + 1 = f(6) + 1 + 1 = f(6) + 2
                               = [f(ë6/2û)+1 ] + 2 = f(3) + 1 + 2 = f(3) + 3
                               = [f(ë3/2û)+1 ] + 3 = f(1) + 1 + 3 = f(1) + 4
                               = 0 + 4 = 4
          f(10) = f(ë10/2û)+1 = f(5) + 1
                               = [f(ë5/2û)+1] + 1 = f(2) + 1 + 1 = f(2) + 2
                               = [f(ë2/2û)+1 ] + 2 = f(1) + 1 + 2 = f(1) + 3
                               = 0 + 3 = 3