Tugas Ke-3 Algoritma dan Pemprograman

Document Sample
Tugas Ke-3 Algoritma dan Pemprograman Powered By Docstoc
					 Algoritma & Pemprograman                                                     halaman 1 dari 25




              Tugas Individual
        Mata Kuliah Algoritma dan
               Pemprograman
       (Hari dan Tanggal Penugasan:
         Selasa, 23 Februari 2010)                     Fakultas Ilmu Komputer
                                                   Program Studi Teknik Informatika
 “Mengerjakan Soal-Soal Latihan Sesuai               Universitas Dian Nuswantoro
  Dengan Notasi Fungsional (39 Soal)”                          Semarang

                Semester II
          Tahun Ajaran 2009-2010              Nama Mahasiswa        : Syah Askar Akbar
                                              NIM                   : A11.2009.05163
                                              Kelompok              : A11.4213
                                              Dosen Pengampu        : Ifan Rizqa, M. Kom.


SOAL TUGAS:

01.   Apakah positif?
02.   Apakah negatif?
03.   Apakah nol?
04.   Ada list dengan satu elemen, rangenya adalah POS, NEG, NOL!
05.   Jumlahkan dua buah bilangan!
06.   Jumlahkan tiga buah bilangan (bila memungkinkan, sertakan fungsi no.5 ver.2)!
07.   Kalikan dua buah bilangan!
08.   Kalikan tiga buah bilangan (bila memungkinkan, sertakan fungsi no.7 ver.2)!
09.   Bagilah dua buah bilangan!
10.   Selesaikan, ada lima buah bilangan, seandainya kotak hitamnya adalah rumusan:
      a*b/c+d-e, berapa output kotak hitamnya?
11.   Pangkatkan x dengan y!
12.   Pangkat tiga dari x!
13.   Pangkat lima dari x!
14.   Berapa hasil pangkat 1001 dari x, seandainya x diisi dengan 3?
15.   Terdapat nilai x, dimana x sebagai visualisasi suhu. Tentukan apakah x beku, cair atau
      mendidih!
16.   Lihat no.1-9, modifikasilah dengan car dan cdr! (menjadi no.16 s.d. no.24)
17.   Lihat no.1-15, gunakan let! (menjadi no.25 s.d. no.39)




Syah Askar Akbar (A11.2009.05163)                                                   Tugas Ke-3
 Algoritma & Pemprograman                                             halaman 2 dari 25


1.     JUDUL
                APAKAH_POSITIF                              ApakahPositif (x)

       DEFINISI DAN SPESIFIKASI

                ApakahPositif : integer  boolean

                {ApakahPositif (x) bernilai benar jika x berharga positif}
       REALISASI FUNGSIONAL

                ApakahPositif (x) : x > 0

       REALISASI LISP

                 (defun ApakahPositif (x)
                         (> x 0)
                   )
                ApakahPositif

       APLIKASI

                 (ApakahPositif 1)
                T
                 (ApakahPositif 0)
                NIL
                 (ApakahPositif -1)
                NIL



2.     JUDUL

                APAKAH_NEGATIF                              ApakahNegatif (x)

       DEFINISI DAN SPESIFIKASI

                ApakahNegatif : integer  boolean

                {ApakahNegatif (x) benar jika x berharga negatif}

       REALISASI FUNGSIONAL

                ApakahNegatif (x) : x < 0

       REALISASI LISP

                 (defun ApakahNegatif (x)
                         (< x 0)
                   )
                ApakahNegatif
       APLIKASI

                 (ApakahNegatif 1)
                NIL
                 (ApakahNegatif 0)
                NIL
                 (ApakahNegatif -1)
                T




Syah Askar Akbar (A11.2009.05163)                                            Tugas Ke-3
 Algoritma & Pemprograman                                                       halaman 3 dari 25


3.     JUDUL
                APAKAH_NOL                                                  ApakahNol (x)

       DEFINISI DAN SPESIFIKASI

                ApakahNol : integer  boolean

                {ApakahNol (x) benar jika x sama dengan nol}
       REALISASI FUNGSIONAL

                ApakahNol (x) : x = 0

       REALISASI LISP

                 (defun ApakahNol (x)
                         (= x 0)
                   )
                ApakahNol

       APLIKASI

                 (ApakahNol 1)
                NIL
                 (ApakahNol 0)
                T
                 (ApakahNol -1)
                NIL



4.     JUDUL

                APAKAH_POSITIF_NEGATIF_NOL                            ApkPosNegNol (x)

       DEFINISI DAN SPESIFIKASI

                ApkPosNegNol : integer  POSITIF, NEGATIF, NOL

                {ApkPosNegNol (x) POSITIF jika x lebih besar dari nol,
                 NEGATIF jika x lebih kecil dari nol, NOL jika x sama dengan nol}
       REALISASI FUNGSIONAL

                ApkPosNegNol (x) : depend on x
                                   x > 0 : POSITIF
                                   x < 0 : NEGATIF
                                   x = 0 : NOL

       REALISASI LISP

                 (defun            ApkPosNegNol (x)
                                    (cond ((> bilangan 0) ‘POSITIF)
                                          ((< bilangan 0) ‘NEGATIF)
                                          ((= bilangan 0) ‘NOL)
                                    )
                   )
                ApkPosNegNol

       APLIKASI

                 (ApkPosNegNol 1)
                POSITIF
                 (ApkPosNegNol 0)
                NOL
                 (ApkPosNegNol -1)
                NEGATIF




Syah Askar Akbar (A11.2009.05163)                                                     Tugas Ke-3
 Algoritma & Pemprograman                                               halaman 4 dari 25


5.     JUDUL
                JUMLAH_2_BILANGAN_BULAT                       Jml2BilBlt (a, b)

       DEFINISI DAN SPESIFIKASI

                Jml2BilBlt : 2 integer  integer

                {Jml2BilBlt (a, b) menjumlahkan dua buah bilangan bulat}
       REALISASI FUNGSIONAL

                Jml2BilBlt (a, b) : a + b

       REALISASI LISP

                 (defun Jml2BilBlt (a b)
                         (+ a b)
                   )
                Jml2BilBlt

       APLIKASI

                 (Jml2BilBlt         0 0)
                0
                 (Jml2BilBlt         -3 -7)
                -10
                 (Jml2BilBlt         3 7)
                10
                 (Jml2BilBlt         -3 7)
                4
                 (Jml2BilBlt         3 -7)
                -4



6.     JUDUL

                JUMLAH_3_BILANGAN_BULAT                       Jml3BilBlt (a, b, c)

       DEFINISI DAN SPESIFIKASI

                Jml2BilBlt : 2 integer  integer

                {Jml2BilBlt (a, b) menjumlahkan dua buah bilangan bulat}

                Jml3BilBlt : 3 integer  integer

                {Jml3BilBlt (a, b, c) menjumlahkan tiga buah bilangan bulat}
       REALISASI FUNGSIONAL

               Jml2BilBlt (a, b)    : a + b
               Jml3BilBlt (a, b, c) : Jml2BilBlt (a, b) + c

       REALISASI LISP

                (defun             Jml2BilBlt (a b)
                                    (+ a b)
                   )
                Jml2BilBlt
                 (defun            Jml3BilBlt (a b c)
                                    (+ (Jml2BilBlt a b) c)
                   )
                Jml3BilBlt




Syah Askar Akbar (A11.2009.05163)                                             Tugas Ke-3
 Algoritma & Pemprograman                                             halaman 5 dari 25


       APLIKASI

                    (Jml3BilBlt 0 0 0)
                0
                    (Jml3BilBlt -1 0 1)
                0
                    (Jml3BilBlt 1 2 3)
                6
                    (Jml3BilBlt -1 -2 -3)
                -6



7.     JUDUL
                KALI_2_BILANGAN_BULAT                       Kali2BilBlt (a, b)

       DEFINISI DAN SPESIFIKASI

                Kali2BilBlt : 2 integer  integer

                {Kali2BilBlt (a, b) merupakan perkalian dua buah bilangan bulat}
       REALISASI FUNGSIONAL

                Kali2BilBlt (a, b) : a * b

       REALISASI LISP

                 (defun Kali2BilBlt (a b)
                         (* a b)
                   )
                Kali2BilBlt

       APLIKASI

                 (Kali2BilBlt      0 0)
                0
                 (Kali2BilBlt      -3 -7)
                21
                 (Kali2BilBlt      3 7)
                21
                 (Kali2BilBlt      -3 7)
                -21
                 (Kali2BilBlt      3 -7)
                -21



8.     JUDUL
                KALI_3_BILANGAN_BULAT                       Kali3BilBlt (a, b, c)

       DEFINISI DAN SPESIFIKASI

                Kali2BilBlt : 2 integer  integer

                {Kali2BilBlt (a, b) merupakan perkalian dua buah bilangan bulat}

                Kali3BilBlt : 3 integer  integer

                {Kali3BilBlt (a, b, c) merupakan perkalian antara tiga buah
                bilangan bulat dengan memanfaatkan Kali2BilBlt (a, b)}

       REALISASI FUNGSIONAL

               Kali2BilBlt (a, b)    : a * b
               Kali3BilBlt (a, b, c) : Kali2BilBlt (a, b) * c




Syah Askar Akbar (A11.2009.05163)                                           Tugas Ke-3
 Algoritma & Pemprograman                                                    halaman 6 dari 25


       REALISASI LISP

                 (defun Kali2BilBlt (a b)
                         (* a b)
                   )
                Kali2BilBlt
                 (defun Kali3BilBlt (a b c)
                         (* (Kali2BilBlt a b) c)
                   )
                Kali3BilBlt


       APLIKASI

                 (Kali3BilBlt         0 0 0)
                0
                 (Kali3BilBlt         -3 -7 -2)
                -42
                 (Kali3BilBlt         3 7 2)
                42
                 (Kali3BilBlt         -3 7 -2)
                42
                 (Kali3BilBlt         3 -7 2)
                -42


9.     JUDUL

                BAGI_2_BILANGAN_BULAT                              Bagi2BilBlt (a, b)

       DEFINISI DAN SPESIFIKASI

                Bagi2BilBlt : 2 integer               integer,
                                                       integer/integer,
                                                       !!!...PEMBAGIAN DENGAN NOL...!!!

                {Bagi2BilBlt (a, b) merupakan pembagian dua buah bilangan bulat}

       REALISASI FUNGSIONAL
                Bagi2BilBlt (a, b) : depend on b
                                         b = 0 : !!!...PEMBAGIAN DENGAN NOL...!!!
                                         else : a / b

       REALISASI LISP

                 (defun            Bagi2BilBlt (a b)
                                    (cond ((= b 0) "!!!...PEMBAGIAN DENGAN NOL...!!!")
                                          (t (/ a b))
                                    )
                   )
                Bagi2BilBlt
       APLIKASI

                 (Bagi2BilBlt 0 0)
                “!!!...PEMBAGIAN DENGAN NOL...!!!”
                 (Bagi2BilBlt -4 -3)
                4/3
                 (Bagi2BilBlt -4 -2)
                2
                 (Bagi2BilBlt 4 -3)
                -4/3
                 (Kali2BilBlt 4 -2)
                -2




Syah Askar Akbar (A11.2009.05163)                                                  Tugas Ke-3
 Algoritma & Pemprograman                                                    halaman 7 dari 25


10.    JUDUL
                KOTAK_HITAM                                  KotakHitam (a, b, c, d, e)

       DEFINISI DAN SPESIFIKASI

                KotakHitam : 5 integer               integer,
                                                      integer/integer,
                                                      !!!...PEMBAGIAN DENGAN NOL...!!!
                {KotakHitam (a, b, c, d, e) dirumuskan dengan a*b/c+d-e}

       REALISASI FUNGSIONAL

                KotakHitam (a, b, c, d, e):
                      depend on c
                             c = 0 : !!!...PEMBAGIAN DENGAN NOL...!!!
                             else : (((a * b) / c) + d) - e
       REALISASI LISP

                 (defun            KotakHitam (a b c d e)
                                    (cond ((= c 0) "!!!...PEMBAGIAN DENGAN NOL...!!!")
                                          (t (- (+ (/ (* a b) c) d) e))
                                    )
                   )
                KotakHitam

       APLIKASI

                 (KotakHitam 1         4 0 6 3)
                “!!!...PEMBAGIAN        DENGAN NOL...!!!”
                 (KotakHitam 1         4 2 6 3)
                5
                 (KotakHitam 1         4 -6 6 3)
                7/3


11.    JUDUL

                X_PANGKAT_Y                                        XPangkatY (x, y)

       DEFINISI DAN SPESIFIKASI

                XPangkatY : 2 integer  integer, integer/integer

                {XPangkatY (x, y) memangkatkan x dengan y}

       REALISASI FUNGSIONAL

                XPangkatY (x, y) : x expt y

       REALISASI LISP

                 (defun XPangkatY (x y)
                         (expt x y)
                   )
                XPangkatY

       APLIKASI

                 (XPangkatY         0 0)
                1
                 (XPangkatY         5 2)
                25
                 (XPangkatY         5 -1)
                1/5
                 (XPangkatY         -5 1)
                -5




Syah Askar Akbar (A11.2009.05163)                                                  Tugas Ke-3
 Algoritma & Pemprograman                                               halaman 8 dari 25


12.    JUDUL
                PANGKAT_3_DARI_X                            Xpangkat3 (x)

       DEFINISI DAN SPESIFIKASI

                Xpangkat3 : integer  integer

                {Xpangkat3 (x) memangkatkan x dengan rumus x*x*x}
       REALISASI FUNGSIONAL

                Xpangkat3 (x) : x * x * x

       REALISASI LISP

                 (defun Xpangkat3 (x)
                         (* x x x)
                   )
                Xpangkat3

       APLIKASI

                 (Xpangkat3 0)
                0
                 (Xpangkat3 -5)
                -125
                 (Xpangkat3 5)
                125



13.    JUDUL

                PANGKAT_5_DARI_X                            Xpangkat5 (x)

       DEFINISI DAN SPESIFIKASI

                Xpangkat5 : integer  integer

                {Xpangkat5 (x) memangkatkan x dengan rumus x*x*x*x*x}

       REALISASI FUNGSIONAL

                Xpangkat5 (x) : x * x * x * x * x

       REALISASI LISP

                 (defun Xpangkat5 (x)
                         (* x x x x x)
                   )
                Xpangkat5
       APLIKASI

                 (Xpangkat5 0)
                0
                 (Xpangkat5 -5)
                -3125
                 (Xpangkat5 5)
                3125




Syah Askar Akbar (A11.2009.05163)                                             Tugas Ke-3
 Algoritma & Pemprograman                                             halaman 9 dari 25


14.    JUDUL
                PANGKAT_1001_DARI_X                         Xpangkat1001 (x)

       DEFINISI DAN SPESIFIKASI

                Xpangkat10 : integer  integer

                {Xpangkat10 (x) memangkatkan x dengan rumus: x*x*x*x*x*x*x*x*x*x}

                Xpangkat1001 : integer  integer

                {Xpangkat1001 (x) memangkatkan x dengan 1000
                menggunakan Xpangkat10 (x) sebanyak tiga kali kemudian dikali
                dengan x}

       REALISASI FUNGSIONAL
               Xpangkat10   (x) : x * x * x * x * x * x * x * x * x * x
               XPangkat1001 (x) :
                             (xPangkat10 (xPangkat10 (xPangkat10 (x)))) * x)

       REALISASI LISP

                 (defun Xpangkat10 (x)
                         (* x x x x x x x x x x)
                   )
                Xpangkat10
                 (defun Xpangkat1001 (x)
                         (* (xpangkat10 (xpangkat10 (xpangkat10 x))) x)
                   )
                Xpangkat1001

       APLIKASI

                 (Xpangkat1001 -1)
                -1
                 (Xpangkat1001 1)
                1
                 (Xpangkat1001 10)
                100.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.
                000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.
                000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.
                000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.
                000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.
                000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.
                000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.
                000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.
                000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.
                000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.
                000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.
                000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.
                000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.
                000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.
                000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.
                000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.
                000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.
                000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.
                000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.
                000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.
                000.000.000.000.000.000.000.000.000.000.000.000.000.000




Syah Askar Akbar (A11.2009.05163)                                           Tugas Ke-3
Algoritma & Pemprograman                                             halaman 10 dari 25




15.    JUDUL
                APAKAH_BEKU_CAIR_MENDIDIH            BekuCairDidih (x)

       DEFINISI DAN SPESIFIKASI

                BekuCairDidih : integer  BEKU, CAIR, MENDIDIH

                {BekuCairDidih (x) BEKU jika harga x lebih kecil dari atau sama
                dengan nol, CAIR jika harga x lebih besar dari nol dan lebih
                kecil dari 100, MENDIDIH jika harga x lebih besar dari atau sama
                dengan 100}
       REALISASI FUNGSIONAL

                BekuCairDidih (x) : depend on x
                                   x <= 0             : BEKU
                                   x < 100 and x > 0: CAIR
                                   x >= 100           : MENDIDIH

       REALISASI LISP

                 (defun BekuCairDidih (x)
                         (cond ((<= x 0) 'BEKU)
                               ((and (> x 0) (< x 100)) 'CAIR)
                               ((>= x 100) 'MENDIDIH)
                         )
                   )
                BekuCairDidih

       APLIKASI

                 (BekuCairDidih    -1)
                BEKU
                 (BekuCairDidih    0)
                BEKU
                 (BekuCairDidih    1)
                CAIR
                 (BekuCairDidih    99)
                CAIR
                 (BekuCairDidih    100)
                MENDIDIH
                 (BekuCairDidih    110)
                MENDIDIH




Syah Askar Akbar (A11.2009.05163)                                           Tugas Ke-3
Algoritma & Pemprograman                                             halaman 11 dari 25


16.    JUDUL
                APAKAH_POSITIF                              ApakahPositif (x)

       DEFINISI DAN SPESIFIKASI

                ApakahPositif : integer  boolean

                {ApakahPositif (x) bernilai benar jika x berharga positif}
       REALISASI FUNGSIONAL

                ApakahPositif (x) : x > 0

       REALISASI LISP

                 (defun ApakahPositif (x)
                         (> x 0)
                   )
                ApakahPositif

       APLIKASI

                 (ApakahPositif (car (list -1 0 1)))
                NIL
                 (ApakahPositif (car (cdr (list -1 0 1))))
                NIL
                 (ApakahPositif (car (cdr (cdr (list -1 0 1)))))
                T



17.    JUDUL

                APAKAH_NEGATIF                              ApakahNegatif (x)

       DEFINISI DAN SPESIFIKASI

                ApakahNegatif : integer  boolean

                {ApakahNegatif (x) benar jika x berharga negatif}

       REALISASI FUNGSIONAL

                ApakahNegatif (x) : x < 0

       REALISASI LISP

                 (defun ApakahNegatif (x)
                         (< x 0)
                   )
                ApakahNegatif
       APLIKASI

                 (ApakahNegatif (car (list -1 0 1)))
                T
                 (ApakahNegatif (car (cdr (list -1 0 1))))
                NIL
                 (ApakahNegatif (car (cdr (cdr (list -1 0 1)))))
                NIL




Syah Askar Akbar (A11.2009.05163)                                            Tugas Ke-3
Algoritma & Pemprograman                                                halaman 12 dari 25


18.    JUDUL
                APAKAH_NOL                                           ApakahNol (x)

       DEFINISI DAN SPESIFIKASI

                ApakahNol : integer  boolean

                {ApakahNol (x) benar jika x sama dengan nol}
       REALISASI FUNGSIONAL

                ApakahNol (x) : x = 0

       REALISASI LISP

                 (defun ApakahNol (x)
                         (= x 0)
                   )
                ApakahNol

       APLIKASI

                 (ApakahNol (car (list -1 0 1)))
                NIL
                 (ApakahNol (car (cdr (list -1 0 1))))
                T
                 (ApakahNol (car (cdr (cdr (list -1 0 1)))))
                NIL



19.    JUDUL

                APAKAH_POSITIF_NEGATIF_NOL                     ApkPosNegNol (x)

       DEFINISI DAN SPESIFIKASI

                ApkPosNegNol : integer  POSITIF, NEGATIF, NOL

                {ApkPosNegNol (x) POSITIF jika x lebih besar dari nol,
                 NEGATIF jika x lebih kecil dari nol, NOL jika x sama dengan nol}
       REALISASI FUNGSIONAL

                ApkPosNegNol (x) : depend on x
                                   x > 0 : POSITIF
                                   x < 0 : NEGATIF
                                   x = 0 : NOL

       REALISASI LISP

                 (defun ApkPosNegNol (x)
                         (cond ((> x 0) ‘POSITIF)
                               ((< x 0) ‘NEGATIF)
                               ((= x 0) ‘NOL)
                         )
                   )
                ApkPosNegNol

       APLIKASI

                 (ApkPosNegNol (car (list -1 0 1)))
                NEGATIF
                 (ApkPosNegNol (car (cdr (list -1 0 1))))
                NOL
                 (ApkPosNegNol (car (cdr (cdr (list -1 0 1)))))
                POSITIF




Syah Askar Akbar (A11.2009.05163)                                              Tugas Ke-3
Algoritma & Pemprograman                                               halaman 13 dari 25


20.    JUDUL
                JUMLAH_2_BILANGAN_BULAT                       Jml2BilBlt (a, b)

       DEFINISI DAN SPESIFIKASI

                Jml2BilBlt : 2 integer  integer

                {Jml2BilBlt (a, b) menjumlahkan dua buah bilangan bulat}
       REALISASI FUNGSIONAL

                Jml2BilBlt (a, b) : a + b

       REALISASI LISP

                 (defun Jml2BilBlt (a b)
                         (+ a b)
                   )
                Jml2BilBlt

       APLIKASI

                 (Jml2BilBlt (car (list -1 0 1)) (car (list -1 0 1)))
                -2
                 (Jml2BilBlt (car (list -1 0 1)) (car (cdr (list -1 0 1))))
                -1
                 (Jml2BilBlt (car (cdr (list -1 0 1)))
                              (car (cdr (list -1 0 1))))
                0
                 (Jml2BilBlt (car (cdr (list -1 0 1)))
                              (car (cdr (cdr (list -1 0 1)))))
                1
                 (Jml2BilBlt (car (cdr (cdr (list -1 0 1))))
                              (car (cdr (cdr (list -1 0 1)))))
                2



21.    JUDUL

                JUMLAH_3_BILANGAN_BULAT                       Jml3BilBlt (a, b, c)

       DEFINISI DAN SPESIFIKASI

                Jml2BilBlt : 2 integer  integer

                {Jml2BilBlt (a, b) menjumlahkan dua buah bilangan bulat}

                Jml3BilBlt : 3 integer  integer

                {Jml3BilBlt (a, b, c) menjumlahkan tiga buah bilangan bulat}
       REALISASI FUNGSIONAL

               Jml2BilBlt (a, b)    : a + b
               Jml3BilBlt (a, b, c) : Jml2BilBlt (a, b) + c

       REALISASI LISP

                (defun             Jml2BilBlt (a b)
                                    (+ a b)
                   )
                Jml2BilBlt
                 (defun            Jml3BilBlt (a b c)
                                    (+ (Jml2BilBlt a b) c)
                   )
                Jml3BilBlt




Syah Askar Akbar (A11.2009.05163)                                             Tugas Ke-3
Algoritma & Pemprograman                                                 halaman 14 dari 25


       APLIKASI
              (Jml3BilBlt          (car (list -1 0 1))
                                    (car (list -1 0 1))
                                    (car (list -1 0 1)))
                -3
                 (Jml3BilBlt       (car (cdr (list -1 0 1)))
                                    (car (list -1 0 1))
                                    (car (list -1 0 1)))
                -2
                 (Jml3BilBlt       (car (cdr (cdr (list -1 0 1))))
                                    (car (list -1 0 1))
                                    (car (list -1 0 1)))
                -1
                 (Jml3BilBlt       (car (cdr (cdr (list -1 0 1))))
                                    (car (list -1 0 1))
                                    (car (cdr (list -1 0 1))))
                0



22.    JUDUL

                KALI_2_BILANGAN_BULAT                           Kali2BilBlt (a, b)
       DEFINISI DAN SPESIFIKASI

                Kali2BilBlt : 2 integer  integer

                {Kali2BilBlt (a, b) merupakan perkalian dua buah bilangan bulat}

       REALISASI FUNGSIONAL
                Kali2BilBlt (a, b) : a * b

       REALISASI LISP

                 (defun Kali2BilBlt (a b)
                         (* a b)
                   )
                Kali2BilBlt

       APLIKASI

                 (Kali2BilBlt (car (list    -1 0 1)) (car (list -1 0 1)))
                1
                 (Kali2BilBlt (car (list    -1 0 1)) (car (cdr (list -1 0 1))))
                0
                 (Kali2BilBlt (car (list    -1 0 1))
                                (car (cdr    (cdr (list -1 0 1)))))
                -1



23.    JUDUL

                KALI_3_BILANGAN_BULAT                           Kali3BilBlt (a, b, c)
       DEFINISI DAN SPESIFIKASI

                Kali2BilBlt : 2 integer  integer

                {Kali2BilBlt (a, b) merupakan perkalian dua buah bilangan bulat}

                Kali3BilBlt : 3 integer  integer

                {Kali3BilBlt (a, b, c) merupakan perkalian antara tiga buah
                bilangan bulat dengan memanfaatkan Kali2BilBlt (a, b)}

       REALISASI FUNGSIONAL
               Kali2BilBlt (a, b)    : a * b
               Kali3BilBlt (a, b, c) : Kali2BilBlt (a, b) * c


Syah Askar Akbar (A11.2009.05163)                                               Tugas Ke-3
Algoritma & Pemprograman                                                       halaman 15 dari 25


       REALISASI LISP

                 (defun Kali2BilBlt (a b)
                         (* a b)
                   )
                Kali2BilBlt
                 (defun Kali3BilBlt (a b c)
                         (* (Kali2BilBlt a b) c)
                   )
                Kali3BilBlt


       APLIKASI

                 (Kali3BilBlt            (car (list -1 0 1))
                                          (car (list -1 0 1))
                                          (car (list -1 0 1)))
                -1
                 (Kali3BilBlt            (car (list -1 0 1))
                                          (car (cdr (list -1 0 1)))
                                          (car (list -1 0 1)))
                0
                 (Kali3BilBlt            (car (list -1 0 1))
                                          (car (cdr (list -1 0 1)))
                                          (car (cdr (list -1 0 1))))
                0
                 (Kali3BilBlt            (car (list -1 0 1))
                                          (car (cdr (list -1 0 1)))
                                          (car (cdr (cdr (list -1 0 1)))))
                0
                 (Kali3BilBlt            (car (list -1 0 1))
                                          (car (cdr (cdr (list -1 0 1))))
                                          (car (cdr (cdr (list -1 0 1)))))
                -1



24.    JUDUL
                BAGI_2_BILANGAN_BULAT                                 Bagi2BilBlt (a, b)

       DEFINISI DAN SPESIFIKASI

                Bagi2BilBlt : 2 integer              integer,
                                                      integer/integer,
                                                      !!!...PEMBAGIAN DENGAN NOL...!!!
                {Bagi2BilBlt (a, b) merupakan pembagian dua buah bilangan bulat}

       REALISASI FUNGSIONAL

                Bagi2BilBlt (a, b) : depend on b
                                         b = 0 : !!!...PEMBAGIAN DENGAN NOL...!!!
                                         else : a / b

       REALISASI LISP

                 (defun            Bagi2BilBlt (a b)
                                    (cond ((= b 0) "!!!...PEMBAGIAN DENGAN NOL...!!!")
                                          (t (/ a b))
                                    )
                   )
                Bagi2BilBlt




Syah Askar Akbar (A11.2009.05163)                                                     Tugas Ke-3
Algoritma & Pemprograman                                                       halaman 16 dari 25



       APLIKASI

                 (Bagi2BilBlt            (car (list -1 0 1)) (car (list -1 0 1)))
                1
                 (Bagi2BilBlt            (car (cdr (list -1 0 1))) (car (list -1 0 1)))
                0
                 (Bagi2BilBlt     (car        (cdr (list -1 0   1)))
                                   (car        (cdr (list -1 0   1))))
                "!!!...PEMBAGIAN DENGAN        NOL...!!!"
                 (Bagi2BilBlt     (car        (cdr (cdr (list   -1 0 1))))
                                   (car        (cdr (cdr (list   -1 0 1)))))
                1



25.    JUDUL
                APAKAH_POSITIF                                       ApakahPositif (x)

       DEFINISI DAN SPESIFIKASI

                ApakahPositif : integer  boolean

                {ApakahPositif (x) bernilai benar jika x berharga positif}
       REALISASI FUNGSIONAL

                ApakahPositif (x) :
                                                let bilangan = x
                                                in bilangan > 0
       REALISASI LISP

                 (defun            ApakahPositif (x)
                                    (let ((bilangan x)
                                          )
                                          (> bilangan 0)
                                    )
                   )
                ApakahPositif
       APLIKASI

                 (ApakahPositif 1)
                T
                 (ApakahPositif 0)
                NIL
                 (ApakahPositif -1)
                NIL




26.    JUDUL

                APAKAH_NEGATIF                                       ApakahNegatif (x)

       DEFINISI DAN SPESIFIKASI

                ApakahNegatif : integer  boolean

                {ApakahNegatif (x) benar jika x berharga negatif}

       REALISASI FUNGSIONAL

                ApakahNegatif (x) :
                                                let bilangan = x
                                                in bilangan < 0




Syah Askar Akbar (A11.2009.05163)                                                     Tugas Ke-3
Algoritma & Pemprograman                                          halaman 17 dari 25


       REALISASI LISP

                 (defun            ApakahNegatif (x)
                                    (let ((bilangan x)
                                          )
                                          (< bilangan 0)
                                    )
                   )
                ApakahNegatif

       APLIKASI

                 (ApakahNegatif 1)
                NIL
                 (ApakahNegatif 0)
                NIL
                 (ApakahNegatif -1)
                T



27.    JUDUL

                APAKAH_NOL                                     ApakahNol (x)

       DEFINISI DAN SPESIFIKASI

                ApakahNol : integer  boolean

                {ApakahNol (x) benar jika x sama dengan nol}

       REALISASI FUNGSIONAL

                ApakahNol (x) :
                                          let bilangan = x
                                          in bilangan = 0

       REALISASI LISP

                 (defun            ApakahNol (x)
                                    (let ((bilangan x)
                                          )
                                          (= bilangan 0)
                                    )
                   )
                ApakahNol

       APLIKASI

                 (ApakahNol 1)
                NIL
                 (ApakahNol 0)
                T
                 (ApakahNol -1)
                NIL




Syah Askar Akbar (A11.2009.05163)                                        Tugas Ke-3
Algoritma & Pemprograman                                                     halaman 18 dari 25


28.    JUDUL
                APAKAH_POSITIF_NEGATIF_NOL                         ApkPosNegNol (x)

       DEFINISI DAN SPESIFIKASI

                ApkPosNegNol : integer  POSITIF, NEGATIF, NOL

                {ApkPosNegNol (x) POSITIF jika x lebih besar dari nol,
                 NEGATIF jika x lebih kecil dari nol, NOL jika x sama dengan nol}

       REALISASI FUNGSIONAL
                ApkPosNegNol (x) :
                                                let bilangan = x
                                                in depend on bilangan
                                                    bilangan > 0 : POSITIF
                                                    bilangan < 0 : NEGATIF
                                                    bilangan = 0 : NOL

       REALISASI LISP

                 (defun            ApkPosNegNol (x)
                                    (let ((bilangan x)
                                          )
                                          (cond ((> bilangan 0) ‘POSITIF)
                                                 ((< bilangan 0) ‘NEGATIF)
                                                 ((= bilangan 0) ‘NOL)
                                          )
                                    )
                   )
                ApkPosNegNol

       APLIKASI

                 (ApkPosNegNol 1)
                POSITIF
                 (ApkPosNegNol 0)
                NOL
                 (ApkPosNegNol -1)
                NEGATIF



29.    JUDUL

                JUMLAH_2_BILANGAN_BULAT                            Jml2BilBlt (a, b)

       DEFINISI DAN SPESIFIKASI

                Jml2BilBlt : 2 integer  integer

                {Jml2BilBlt (a, b) menjumlahkan dua buah bilangan bulat}

       REALISASI FUNGSIONAL

                Jml2BilBlt (a, b) :
                                                let operan = a
                                                in operan + b

       REALISASI LISP

                 (defun            Jml2BilBlt (a b)
                                    (let ((operan a)
                                          )
                                          (+ operan b)
                                    )
                   )
                Jml2BilBlt




Syah Askar Akbar (A11.2009.05163)                                                   Tugas Ke-3
Algoritma & Pemprograman                                                  halaman 19 dari 25


       APLIKASI

                 (Jml2BilBlt         0 0)
                0
                 (Jml2BilBlt         -3 -7)
                -10
                 (Jml2BilBlt         3 7)
                10
                 (Jml2BilBlt         -3 7)
                4
                 (Jml2BilBlt         3 -7)
                -4


30.    JUDUL

                JUMLAH_3_BILANGAN_BULAT                          Jml3BilBlt (a, b, c)

       DEFINISI DAN SPESIFIKASI

                Jml3BilBlt : 3 integer  integer

                {Jml3BilBlt (a, b, c) menjumlahkan tiga buah bilangan bulat}

       REALISASI FUNGSIONAL

               Jml3BilBlt (a, b, c) :
                                                let x = a + b
                                                in x + c

       REALISASI LISP

                 (defun            Jml3BilBlt (a b c)
                                    (let ((x (+ a b))
                                          )
                                          (+ x c)
                                    )
                   )
                Jml3BilBlt

       APLIKASI

                    (Jml3BilBlt 0 0 0)
                0
                    (Jml3BilBlt -1 0 1)
                0
                    (Jml3BilBlt 1 2 3)
                6
                    (Jml3BilBlt -1 -2 -3)
                -6


31.    JUDUL

                KALI_2_BILANGAN_BULAT                            Kali2BilBlt (a, b)

       DEFINISI DAN SPESIFIKASI

                Kali2BilBlt : 2 integer  integer

                {Kali2BilBlt (a, b) merupakan perkalian dua buah bilangan bulat}
       REALISASI FUNGSIONAL

                Kali2BilBlt (a, b) :
                                                let operan = a
                                                in operan * b




Syah Askar Akbar (A11.2009.05163)                                                Tugas Ke-3
Algoritma & Pemprograman                                                    halaman 20 dari 25


       REALISASI LISP

                 (defun            Kali2BilBlt (a b)
                                    (let ((operan a)
                                          )
                                          (* operan b)
                                    )
                   )
                Kali2BilBlt

       APLIKASI

                 (Kali2BilBlt         0 0)
                0
                 (Kali2BilBlt         -3 -7)
                21
                 (Kali2BilBlt         3 7)
                21
                 (Kali2BilBlt         -3 7)
                -21
                 (Kali2BilBlt         3 -7)
                -21



32.    JUDUL

                KALI_3_BILANGAN_BULAT                              Kali3BilBlt (a, b, c)
       DEFINISI DAN SPESIFIKASI

                Kali3BilBlt : 3 integer  integer

                {Kali3BilBlt (a, b, c) merupakan perkalian antara tiga buah
                bilangan bulat}

       REALISASI FUNGSIONAL

               Kali3BilBlt (a, b, c) :
                                                   let r = a * b
                                                   in r * c

       REALISASI LISP

                 (defun            Kali3BilBlt (a b c)
                                    (let ((r (* a b))
                                          )
                                          (* r c)
                                    )
                   )
                Kali3BilBlt


       APLIKASI

                 (Kali3BilBlt         0 0 0)
                0
                 (Kali3BilBlt         -3 -7 -2)
                -42
                 (Kali3BilBlt         3 7 2)
                42
                 (Kali3BilBlt         -3 7 -2)
                42
                 (Kali3BilBlt         3 -7 2)
                -42




Syah Askar Akbar (A11.2009.05163)                                                  Tugas Ke-3
Algoritma & Pemprograman                                                  halaman 21 dari 25


33.    JUDUL
                BAGI_2_BILANGAN_BULAT                         Bagi2BilBlt (a, b)

       DEFINISI DAN SPESIFIKASI

                Bagi2BilBlt : 2 integer       integer,
                                               integer/integer,
                                               !..PEMBAGIAN DENGAN NOL..!
                {Bagi2BilBlt (a, b) merupakan pembagian dua buah bilangan bulat}

       REALISASI FUNGSIONAL

                Bagi2BilBlt (a, b) :
                             let penyebut = b
                             in depend on penyebut
                                 penyebut = 0  : !..PEMBAGIAN DENGAN NOL..!
                                 else : a / penyebut

       REALISASI LISP

                 (defun Bagi2BilBlt (a b)
                      (let ((penyebut b)
                            )
                            (cond ((= penyebut 0) "!..PEMBAGIAN DENGAN NOL..!")
                                  (t (/ a penyebut))
                            )
                      )
                   )
                Bagi2BilBlt
       APLIKASI

                 (Bagi2BilBlt 0 0)
                “!..PEMBAGIAN DENGAN NOL..!”
                 (Bagi2BilBlt -4 -3)
                4/3
                 (Bagi2BilBlt -4 -2)
                2
                 (Bagi2BilBlt 4 -3)
                -4/3
                 (Kali2BilBlt 4 -2)
                -2



34.    JUDUL
                KOTAK_HITAM                          KotakHitam (a, b, c, d, e)

       DEFINISI DAN SPESIFIKASI

                KotakHitam : 5 integer        integer,
                                               integer/integer,
                                               !!!...PEMBAGIAN DENGAN NOL...!!!
                {KotakHitam (a, b, c, d, e) dirumuskan dengan a*b/c+d-e}

       REALISASI FUNGSIONAL

                KotakHitam (a, b, c, d, e):
                      depend on c
                             c = 0 : !!!...PEMBAGIAN DENGAN   NOL...!!!
                             else :      let    x = a * b
                                         in     let   y = x   / c
                                                in    let     z = y + d
                                                      in      z – e




Syah Askar Akbar (A11.2009.05163)                                                Tugas Ke-3
Algoritma & Pemprograman                                                     halaman 22 dari 25


       REALISASI LISP

                 (defun            KotakHitam (a b c d e)
                                    (cond ((= c 0) "!!!...PEMBAGIAN DENGAN NOL...!!!")
                                          (t     (let ((x (* a b))
                                                       )
                                                       (let ((y (/ x c))
                                                             )
                                                             (let ((z (+ y d))
                                                                   )
                                                                   (- z e)
                                                             )
                                                       )
                                                 )
                                          )
                                    )
                   )
                KotakHitam

       APLIKASI

                 (KotakHitam 1         4 0 6 3)
                “!!!...PEMBAGIAN        DENGAN NOL...!!!”
                 (KotakHitam 1         4 2 6 3)
                5
                 (KotakHitam 1         4 -6 6 3)
                7/3



35.    JUDUL

                X_PANGKAT_Y                                        XPangkatY (x, y)

       DEFINISI DAN SPESIFIKASI

                XPangkatY : 2 integer  integer, integer/integer

                {XPangkatY (x, y) memangkatkan x dengan y}

       REALISASI FUNGSIONAL

                XPangkatY (x, y) :
                                                let basis = x
                                                in basis expt y

       REALISASI LISP

                 (defun            XPangkatY (x y)
                                    (let ((basis x)
                                          )
                                          (expt basis y)
                                    )
                   )
                XPangkatY

       APLIKASI

                 (XPangkatY         0 0)
                1
                 (XPangkatY         5 2)
                25
                 (XPangkatY         5 -1)
                1/5
                 (XPangkatY         -5 1)
                -5




Syah Askar Akbar (A11.2009.05163)                                                   Tugas Ke-3
Algoritma & Pemprograman                                                      halaman 23 dari 25


36.    JUDUL
                PANGKAT_3_DARI_X                                  Xpangkat3 (x)

       DEFINISI DAN SPESIFIKASI

                Xpangkat3 : integer  integer

                {Xpangkat3 (x) x pangkat 3 menggunakan let}
       REALISASI FUNGSIONAL

                Xpangkat3 (x) :
                                          let pangkat2 = x * x
                                          in pangkat2 * x
       REALISASI LISP

                 (defun            Xpangkat3 (x)
                                    (let ((pangkat2 (* x x))
                                          )
                                          (* pangkat2 x)
                                    )
                   )
                Xpangkat3
       APLIKASI

                 (Xpangkat3 0)
                0
                 (Xpangkat3 -5)
                -125
                 (Xpangkat3 5)
                125


37.    JUDUL

                PANGKAT_5_DARI_X                                  Xpangkat5 (x)

       DEFINISI DAN SPESIFIKASI

                Xpangkat5 : integer  integer

                {Xpangkat5 (x) x pangkat 5 menggunakan let}

       REALISASI FUNGSIONAL

                Xpangkat5 (x) :
                                          let   pangkat2 = x * x
                                          in    let pangkat3 = pangkat2 * x
                                                in pangkat2 * pangkat3

       REALISASI LISP

                 (defun            Xpangkat5 (x)
                                    (let ((pangkat2 (* x x))
                                          )
                                          (let ((pangkat3 (* pangkat2 x))
                                                 )
                                                 (* pangkat2 pangkat3)
                                          )
                                    )
                   )
                Xpangkat5

       APLIKASI

                 (Xpangkat5 -5)
                -3125
                 (Xpangkat5 5)
                3125

Syah Askar Akbar (A11.2009.05163)                                                    Tugas Ke-3
Algoritma & Pemprograman                                              halaman 24 dari 25


38.    JUDUL
                PANGKAT_1001_DARI_X                         Xpangkat1001 (x)

       DEFINISI DAN SPESIFIKASI

                Xpangkat10 : integer  integer

                {Xpangkat10 (x) memangkatkan x dengan rumus: x*x*x*x*x*x*x*x*x*x}

                Xpangkat1001 : integer  integer

                {Xpangkat1001 (x) x pangkat 1001 dengan let dan memanfaatkan
                fungsi Xpangkat10 (x)}

       REALISASI FUNGSIONAL

               Xpangkat10    (x) : x * x * x * x * x * x * x * x * x * x
               XPangkat1001 (x) :
                      let pangkat1000 = xPangkat10 (xPangkat10 (xPangkat10 (x)))
                      in pangkat1000 * x

       REALISASI LISP

                 (defun Xpangkat10 (x)
                         (* x x x x x x x x x x)
                   )
                Xpangkat10
                 (defun     Xpangkat1001 (x)
                             (let ((pangkat1000
                                          (xPangkat10
                                                (xPangkat10 (xPangkat10 x))
                                          )
                                    )
                                   )
                                   (* pangkat1000 x)
                             )
                   )
                Xpangkat1001

       APLIKASI

                 (Xpangkat1001 -1)
                -1
                 (Xpangkat1001 1)
                1
                 (Xpangkat1001 10)
                100.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.
                000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.
                000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.
                000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.
                000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.
                000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.
                000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.
                000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.
                000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.
                000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.
                000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.
                000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.
                000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.
                000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.
                000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.
                000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.
                000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.
                000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.
                000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.
                000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.
                000.000.000.000.000.000.000.000.000.000.000.000.000.000




Syah Askar Akbar (A11.2009.05163)                                             Tugas Ke-3
Algoritma & Pemprograman                                                     halaman 25 dari 25




39.    JUDUL

                APAKAH_BEKU_CAIR_MENDIDIH                    BekuCairDidih (x)

       DEFINISI DAN SPESIFIKASI

                BekuCairDidih : integer  BEKU, CAIR, MENDIDIH

                {BekuCairDidih (x) BEKU jika x ≤ 0, CAIR jika 0 < x < 100,
                MENDIDIH jika x  100}

       REALISASI FUNGSIONAL

                BekuCairDidih (x) :
                      let    temperatur_celcius = x
                      in     depend on temperatur_celcius
                                   temperatur_celcius <= 0                : BEKU
                                   temperatur_celcius < 100
                                   and temperatur_celcius > 0             : CAIR
                                   temperatur_celcius >= 100              : MENDIDIH

       REALISASI LISP

                 (defun            BekuCairDidih (x)
                      (let          ((temperatur_celcius x))
                                    (cond ((<= temperatur_celcius 0) 'BEKU)
                                          ((and (> temperatur_celcius 0)
                                                 (< temperatur_celcius 100)) 'CAIR)
                                          ((>= temperatur_celcius 100) 'MENDIDIH)
                                    )
                       )
                   )
                BekuCairDidih

       APLIKASI

                 (BekuCairDidih -1)
                BEKU
                 (BekuCairDidih 99)
                CAIR
                 (BekuCairDidih 100)
                MENDIDIH



Syah Askar Akbar (A11.2009.05163)                                                   Tugas Ke-3

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:53
posted:1/7/2012
language:Malay
pages:25
Description: Implementasi pemprograman fungsional LISP untuk: fungsi cek nilai positif, fungsi cek nilai negatif, fungsi cek keberadaan angka nol, fungsi cek gabungan untuk memeriksa nilai positif, nilai negatif dan angka nol, fungsi penjumlahan 2 bilangan bulat, fungsi penjumlahan 3 bilangan bulat, fungsi perkalian 2 bilangan bulat, fungsi perkalian 3 bilangan bulat, fungsi pembagian 2 bilangan bulat, fungsi black-box, fungsi x pangkat y, fungsi x pangkat 3, fungsi x pangkat 5, fungsi x pangkat 1001, fungsi visualisasi suhu, penggunaan 'car' dan 'cdr' dalam visualisasi suhu, contoh penggunaan 'let'.