Cate Tan

download Cate Tan

of 11

description

f

Transcript of Cate Tan

1. Buat program FahrenheitCelsius, yang membutuhkan input suhu yang diukur dalam Fahrenheit dan menghasilkan setara Celcius(defun suhu(n)(* (/ 5.0 9) (- n 32.0)))2. Buat program dolareuro, yang membutuhkan input dollar dan menghasilkan setaraeuro. Gunakan tabel mata uang di koran untuk mencari nilai tukar saat ini.(defun tukar(n)(* n 0.758))3. Buat program segitiga. yang membutuhkan input panjang sisi segitiga dan tingginya.Program ini menghasilkan luas segitiga.(defun luas(a h)(/ (* a h) 2))4. Buat program convert3. Dengan input tiga digit, dimulai dengan satuan, puluhan danratusan. Program ini menghasilkan angka yang sesuai dengan digit tersebut dalam bentuk bilangan gunakan operasi perkalian sesuai posisi digit (ratusan,puluhan dan satuan)).Contoh :> ( convert3 1 2 3 )321(defun convert3 (a b c)(+ (+ a (* b 10)) (* c 100)))5. Akuntan public Wijanarto and co selalu menggunakan program untuk menghitung Pajak Penghasilan, besar pajak tidak pernah berubah yaitu 15% dari Penghasilan kotor. Penghasilan kotor di hitung berdasarkan JUMLAH JAM KERJA yang di peroleh seseorang sebesar 12 dolar/jamnya. Seseorang dapat bekerja antara 2060 jam perminggunya. Buat program untuk menghitung Penghasilan bersih sesorang dengan input jumlah jam yang di peroleh dalam satu minggu. Misal :a. Pendapatan Kotor seseorang 100 dolar dalam satu minggu, jika di kenai pajak 15% , maka besar penghasilan kena pajak ( tax ) adalah 15 dolar.b. Jika upah seseorang dalam 1 minggu hanya 2 jam, maka penghasilan kotornya adalah 12 dolarc. Jika seseorang bekerja selama 40 jam maka Pendapatan bersihnya ( pph ) adalah 408 Dolar, setelah kena pajak 15%Dari soal di atas anda harus membuat 3 fungsi untuk menghitung Penghasilan bersih, yaitu tax, upah dan pph. Sehingga rumusnya adalah pph = upah-tax. Spesifikasinya sebagai berikut: tax: bilbilinput berupa bil dalam dolar output bil dalam dolarupah : bilbilinput bil dalam JAM output bil dalam dolarpph : bilbilinput bil dalam JAM output bil dalam dollar(defun tax(n)(* n 0.85))

(defun upah(n)(* n 12))

(defun pph(n)(* n 12 0.85))6. (defun interval-3-7 (b)(and (< 3 b) (< b 7)))

7. (defun interval-3-9 (c)(and (< 3 c) (< c 9)))

8. (defun union-13-911 (d)(or (and (< 1 d) (< d 3)) (and (< 9 d) (< d 11))))

9. (defun no-1-3 (e)(not (and ( (ordinat p) 0)) 1) ((and (< (absis p) 0) (> (ordinat p) 0)) 2) ((and (< (absis p) 0) (< (ordinat p) 0)) 3) ((and (> (absis p) 0) (< (ordinat p) 0)) 4) (t (format nil ~A is-origin p))))

ADT Pecahan.lisp

; ## KONSTRUKTOR ##; makep (p1,p2) : 2 integer --> pecahan; membentuk sebuah pecahan dr pembilang x dan penyebut y.(defun makep (x y) (cons x (cons y nil)))

; ## OPERATOR ARITMATIKA PECAHAN ##; addp (p1,p2) : 2 pecahan --> pecahan; menambahkan 2 pecahan p1 dan p2(defun addp (p1 p2) (cons (+ (* (car p1) (car (cdr p2))) (* (car p2) (car (cdr p1)))) (cons (* (car (cdr p1)) (car (cdr p2))) nil)))

; # subp (p1,p2) # : 2 pecahan --> pecahan;mengurangkan 2 pecahan p1 dan p2(defun subp (p1 p2) (cons (- (* (car p1) (car (cdr p2))) (* (car p2) (car (cdr p1)))) (cons (* (car (cdr p1)) (car (cdr p2))) nil)))

; # mulp (p1,p2) # : 2 pecahan --> pecahan; mengkalikan 2 pecahan p1 dan p2(defun mulp (p1 p2) (cons (* (car p1) (car p2)) (cons (* (car (cdr p1)) (car (cdr p2))) nil)))

; # divp (p1,p2) # : 2 pecahan --> pecahan; membagi 2 pecahan p1 dan p2(defun divp (p1 p2) (cons (* (car p1) (car (cdr p2))) (cons (* (car (cdr p1)) (car p2)) nil)))

; # realpc (p1) # : pecahan --> real; menuliskan bilangan pecahan dalam notasi desimal(defun realpc (p1) (/ (car p1) (car (cdr p1))))

; ## PREDIKAT ##; # isEqP? (p1,p2) # : 2 pecahan --> bolean; membandingkan 2 pecahan apakah sama(defun isEqP? (p1 p2) (and (= (* (car p1) (car (cdr p2))) (* (car p2) (car (cdr p1)))) (= (* (car (cdr p1)) (* (car (cdr p2)))) (* (car (cdr p2)) (* (car (cdr p1)))))))

; # isLtP? (p1,p2) # : 2 pecahan --> bolean; membandingkan 2 pecahan apakah kurang dari(defun isLtP? (p1 p2) (and (< (* (car p1) (car (cdr p2))) (* (car p2) (car (cdr p1)))) (= (* (car (cdr p1)) (* (car (cdr p2)))) (* (car (cdr p2)) (* (car (cdr p1)))))))

; # isGtP? (p1,p2) # : 2 pecahan --> bolean; membandingkan 2 pecahan apakah lebih dari(defun isGtP? (p1 p2) (and (> (* (car p1) (car (cdr p2))) (* (car p2) (car (cdr p1)))) (= (* (car (cdr p1)) (* (car (cdr p2)))) (* (car (cdr p2)) (* (car (cdr p1)))))))

; # isP? (p1) # : pecahan --> bolean; memeriksa apakah pecahan(defun isP? (p1) (and (integerp (car p1)) (integerp (car (cdr p1)))) )

ADT DATE.lisp

(defun checkdate(d m y) ;validasi tanggal(cond ((or (= m 1) (= m 3) (= m 5) (= m 7) (= m 8) (= m 10) (= m 12))(if (and (and(>= d 1) (= y 1)) T NIL))((= m 2)(if (= (mod y 4) 0)(if (and (and(>= d 1) (= y 1)) T NIL)(if (and (and(>= d 1) (= y 1)) T NIL)))((or (= m 4) (= m 6) (= m 9) (= m 11))(if (and (and(>= d 1) (= y 1)) T NIL))(t NIL)))(defun makedate(d m y) ;membuat tanggal(if (checkdate d m y)(cons d(cons m(cons y nil)))NIL))(defun maked1(d m y) ;membuat hari dan memasukkannya dalam variabel d1(if (checkdate d m y)(setq d1 (cons d(cons m(cons y nil))))NIL))(defun maked2(d m y);membuat hari dan memasukkannya dalam variabel d2(if (checkdate d m y)(setq d2 (cons d(cons m(cons y nil))))NIL))

(defun nextday(d m y);hari selanjutnya(if (checkdate d m y)(cond ((or (= m 1) (= m 3) (= m 5) (= m 7) (= m 8) (= m 10) (= m 12))(if (= d 31)(if (= m 12)(cons 1(cons 1(cons (+ y 1) nil)))(cons 1(cons (+ m 1)(cons y nil))))(cons (+ d 1)(cons m(cons y nil)))))((= m 2)(if (= (mod y 4) 0)(if (= d 29)(cons 1(cons (+ m 1)(cons y nil)))(cons (+ d 1)(cons m(cons y nil))))(if (= d 28)(cons 1(cons (+ m 1)(cons y nil)))(cons (+ d 1)(cons m(cons y nil))))))((or (= m 4) (= m 6) (= m 9) (= m 11))(if (= d 30)(cons 1(cons (+ m 1)(cons y nil)))(cons (+ d 1)(cons m(cons y nil))))))NIL))

(defun yesterday(d m y);kemarin(if (checkdate d m y)(if (= d 1)(cond ((or (= m 2) (= m 4) (= m 6) (= m 8) (= m 9) (= m 11))(cons 31(cons (- m 1)(cons y nil))))((or (= m 5) (= m 7) (= m 10) (= m 12))(cons 30(cons (- m 1)(cons y nil))))((= m 3)(if (= (mod y 4) 0)(cons 29(cons 2(cons y nil)))(cons 28(cons 2(cons y nil)))))((= m 1)(cons 31(cons 12(cons (- y 1) nil)))))(cons (- d 1)(cons m(cons y nil))))NIL))(defun HariKe(d m y);mengubah type tanggal ke bilangan(if (checkdate d m y)(if (= (mod y 4) 0)(cond ((= m 1) d)((= m 2) (+ d 31))((= m 3) (+ d 31 29))((= m 4) (+ d 31 29 31))((= m 5) (+ d 31 29 31 30))((= m 6) (+ d 31 29 31 30 31))((= m 7) (+ d 31 29 31 30 31 30))((= m 8) (+ d 31 29 31 30 31 30 31))((= m 9) (+ d 31 29 31 30 31 30 31 31))((= m 10) (+ d 31 29 31 30 31 30 31 31 30))((= m 11) (+ d 31 29 31 30 31 30 31 31 30 31))((= m 12) (+ d 31 29 31 30 31 30 31 31 30 31 30)))(cond ((= m 1) d)((= m 2) (+ d 31))((= m 3) (+ d 31 28))((= m 4) (+ d 31 28 31))((= m 5) (+ d 31 28 31 30))((= m 6) (+ d 31 28 31 30 31))((= m 7) (+ d 31 28 31 30 31 30))((= m 8) (+ d 31 28 31 30 31 30 31))((= m 9) (+ d 31 28 31 30 31 30 31 31))((= m 10) (+ d 31 28 31 30 31 30 31 31 30))((= m 11) (+ d 31 28 31 30 31 30 31 31 30 31))((= m 12) (+ d 31 28 31 30 31 30 31 31 30 31 30))))NIL))

(defun bilkehari(bil y);mengubah bilangan ke type tanggal(if (>= y 1)(if (= (mod y 4) 0)(if (and (>= bil 1) (= y 1)(or (and (= (mod y 4) 0) (not(= (mod y 100) 0))) (= (mod y 400) 0))NIL))