saya menggunakan aplikasi yang bernama CLISP
soal bisa di download disini
oh iya saya lupa untuk coding bisa menggunakan notepad biasa bisa juga noteped++, disini saya menggunakan notepad++ :)
untuk jawaban nya saya ketik dibawah ini, agar para sobat blogger bisa memahami (biar gak cuma copas aja nanti dikira penjiplak ^_^ )
==============================================================
pecahan :
(defun pecahan(n d)=============================================================
(cond ((and (>= n 0) (or (> d 0) (< d 0))) (list n d))
(T NIL)
)
)
(defun pemb(n d)
(car (pecahan n d))
)
(defun peny(n d)
(car (cdr (pecahan n d)))
)
(defun MakeP(n d)
(/ (pemb n d) (peny n d))
)
(defun addp (p1 p2)
(/ (+ (* (car p1) (car (cdr p2))) (* (car p2) (car (cdr p1))))
(* (car (cdr p1)) (car (cdr p2))))
)
(defun subp (p1 p2)
(/ (- (* (car p1) (car (cdr p2))) (* (car p2) (car (cdr p1))))
(* (car (cdr p1)) (car (cdr p2))))
)
(defun mulp (p1 p2)
(/ (* (car p1) (car p2))
(* (car (cdr p1)) (car (cdr p2))))
)
(defun divp (p1 p2)
(/ (* (car p1) (car (cdr p2)))
(* (car (cdr p1)) (car p2)))
)
(defun realpc (p1)
(* (/ (car p1) (car (cdr p1))) 1.0)
)
(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)))))
)
)
(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)))))
)
)
(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)))))
)
)
point :
(defun titik(x y)==============================================================
(list x y))
(defun absis(P)
(car P))
(defun ordinat(P)
(car (cdr P)))
(defun MakePoint(x y)
(cons x (cons y nil))
)
(defun IsOrigin(P)
(and (= (absis P) 0) (= (ordinat P) 0))
)
(defun xsatu(P)
(car (absis P))
)
(defun ysatu(P)
(car (cdr (absis P)))
)
(defun xdua(P)
(car (ordinat P))
)
(defun ydua(P)
(car (cdr (ordinat P)))
)
(defun fx2(x)
(* x x)
)
(defun jarak(P)
(sqrt (+ (fx2 (- (xsatu P) (xdua P))) (fx2 (- (ysatu P) (ydua P)))))
)
(defun jarak0(P)
(sqrt (- (fx2 (absis P)) (fx2 (ordinat P))))
)
(defun kuadran(P)
(cond ((and (> (absis P) 0) (> (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 'TidakAdaTitikSumbu)
)
)
tanggal :
(defun typeHr(n)============================================================
(if (and (integerp n) (and (>= n 1) (<= n 31))) T NIL)
)
(defun typeBln(n)
(if (and (integerp n) (and (>= n 1) (<= n 12))) T NIL)
)
(defun typeThn(n)
(if (and (integerp n) (>= n 1)) T NIL)
)
(defun typedate(h b n)
(if (and (and (typeHr h) (typeBln b)) (typeThn n)) T NIL)
)
(defun checkdate(d m y)
(cond
((or (= m 1) (= m 3) (= m 5) (= m 7) (= m 8) (= m 10) (= m 12))
(if (and (and(>= d 1) (<= d 31)) (>= y 1)) T NIL)
)
((= m 2)
(if (= (mod y 4) 0)
(if (and (and(>= d 1) (<= d 29)) (>= y 1)) T NIL)
(if (and (and(>= d 1) (<= d 28)) (>= y 1)) T NIL)
)
)
((or (= m 4) (= m 6) (= m 9) (= m 11))
(if (and (and(>= d 1) (<= d 30)) (>= y 1)) T NIL)
)
(t NIL)
)
)
(defun makedate(d m y)
(if (checkdate d m y)
(cons d(cons m(cons y nil)))
NIL
)
)
(defun nextday(d m y)
(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)
(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)
(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) (<= bil 366))
(cond ((<= bil 31) (makedate bil 1 y))
((and (> bil 31) (<= bil 60)) (makedate (- bil 31) 2 y))
((and (> bil 60) (<= bil 91)) (makedate (- bil 60) 3 y))
((and (> bil 91) (<= bil 121)) (makedate (- bil 91) 4 y))
((and (> bil 121) (<= bil 152)) (makedate (- bil 121) 5 y))
((and (> bil 152) (<= bil 182)) (makedate (- bil 152) 6 y))
((and (> bil 182) (<= bil 213)) (makedate (- bil 182) 7 y))
((and (> bil 213) (<= bil 244)) (makedate (- bil 213) 8 y))
((and (> bil 244) (<= bil 274)) (makedate (- bil 244) 9 y))
((and (> bil 274) (<= bil 305)) (makedate (- bil 274) 10 y))
((and (> bil 305) (<= bil 335)) (makedate (- bil 305) 11 y))
((and (> bil 335) (<= bil 366)) (makedate (- bil 335) 12 y))
)
NIL
)
(if (and (>= bil 1) (<= bil 365))
(cond ((<= bil 31) (makedate bil 1 y))
((and (> bil 31) (<= bil 59)) (makedate (- bil 31) 2 y))
((and (> bil 59) (<= bil 90)) (makedate (- bil 59) 3 y))
((and (> bil 90) (<= bil 120)) (makedate (- bil 90) 4 y))
((and (> bil 120) (<= bil 151)) (makedate (- bil 120) 5 y))
((and (> bil 151) (<= bil 181)) (makedate (- bil 151) 6 y))
((and (> bil 181) (<= bil 212)) (makedate (- bil 181) 7 y))
((and (> bil 212) (<= bil 243)) (makedate (- bil 212) 8 y))
((and (> bil 243) (<= bil 273)) (makedate (- bil 243) 9 y))
((and (> bil 273) (<= bil 304)) (makedate (- bil 273) 10 y))
((and (> bil 304) (<= bil 334)) (makedate (- bil 304) 11 y))
((and (> bil 334) (<= bil 365)) (makedate (- bil 334) 12 y))
)
NIL
)
)
NIL
)
)
(defun nextNday(d m y n)
(if (checkdate d m y)
(if (= (mod y 4) 0)
(bilkehari (if (<= (+ (harike d m y) n) 366)
(+ (harike d m y) n)
(- (+(harike d m y) n) 366) ;looping disini
)
(if (> (+(harike d m y)n) 366) (+ y 1) y) ;looping jg perlu utk penambahan tahun lebih dari 1
)
(bilkehari (if (<= (+ (harike d m y) n) 365)
(+ (harike d m y) n)
(- (+(harike d m y) n) 365) ;looping disini
)
(if (> (+(harike d m y)n) 365) (+ y 1) y) ;looping jg perlu utk penambahan tahun lebih dari 1
)
)
NIL
)
)
(defun iseqd? (d1 d2)
(if (= (car(reverse(cdr d1))) (car(reverse(cdr d2))))
(if (= (harike (car d1) (car(cdr d1)) (car(reverse(cdr d1))))
(harike (car d2) (car(cdr d2)) (car(reverse(cdr d2)))))
T NIL
)
NIL
)
)
(defun isbefore? (d1 d2)
(cond ((= (car(reverse(cdr d1))) (car(reverse(cdr d2))))
(if (< (harike (car d1) (car(cdr d1)) (car(reverse(cdr d1))))
(harike (car d2) (car(cdr d2)) (car(reverse(cdr d2)))))
T NIL
)
)
((< (car(reverse(cdr d1))) (car(reverse(cdr d2)))) T)
(t NIL)
)
)
(defun isafter? (d1 d2)
(cond ((= (car(reverse(cdr d1))) (car(reverse(cdr d2))))
(if (> (harike (car d1) (car(cdr d1)) (car(reverse(cdr d1))))
(harike (car d2) (car(cdr d2)) (car(reverse(cdr d2)))))
T NIL
)
)
((> (car(reverse(cdr d1))) (car(reverse(cdr d2)))) T)
(t NIL)
)
)
(defun iskabisat? (y)
(if (>= y 1)
(or (and (= (mod y 4) 0) (not(= (mod y 100) 0))) (= (mod y 400) 0))
NIL
)
)
jika para blogger malas untuk mengetik, saya langsung kasih file nya dibawah iniii.
jawaban : disini
Sekian postingan tentang "Modul F-03" tunggu selanjutnya Modul F-04.
0 Comments
EmoticonEmoticon