TUGAS KELOMPOK
Menghitung Banyaknya List
Disusun Untuk Memenuhi Tugas Algoritma Dan Pemograman
Dosen Pengampu:Wijanarto,M.Kom




Filzah Erlian A A11.2011.06138
Irvan Rahnadiyasa A111.2014.08195
Teguh Budi P A11.2014.08202
Abdullah Dolly A11.2014.08206
Muhammad Alfi Y A11.2014.08221
Auriga Indarto T A11.2014.08234
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS ILMU KOMPUTER
UNIVERSITAS DIAN NUSWANTORO
2015
KATA PENGANTAR
Dengan memanjatkan puji syukur ke hadirat Tuhan YME dan dengan rahmat dan karunianya,laporan “Tugas kelompok ” ini dapat kami buat sebagai tugas ALPRO.
Makalah ini diajukan guna memenuhi tugas mata kuliah ALPRO yang didalamnya berisikan tentang project tugas konsep rekrusif pada program “LISP”.
Saya sadari makalah ini masih jauh dari sempurna, oleh karena itu kami mengharapkan kritik dan saran yang bersifat membangun demi kesempurnaan makalah ini.
Akhirnya kami dengan kerendahan hati meminta maaf jika terdapat kesalahan dalam penulisan atau penguraian makalah ini .Dengan harapan dapat di terima oleh bapak dosen dan dapat di jadikan sebagai acuan dalam proses pembelajaran.Dan ucapan terima kasih kepad Bapak Wijanarto yang telah membimbing dalam pembuatan tugas ini.
Semarang ,23 mei 2015
Penyusun
1.Latar Belakang
Makalah ini saya buat untuk melengkapi tugas kelompok ALPRO. Dimana tugasnya yaitu ada sebuah project untuk membuat suatu program rekrusif dalam “LISP”.
Dimana dengan tugas ini kami diminta untuk menjelaskan dan memahami fungasi rekrusif dalam “LISP”.
Struktur Perencanaan
Ketua kelompok : - Teguh Budi P.
Arsitektur : - Riyaman
- Muhammad.Alfi
Algoritma : - A.Dolly
- Hafizah
Dokumentasi : - Irvan R.
-Auriga Indarto
2.Fungsi-fungsi yang digunakan:
A. Defun Jumlahe (e L) elemen,List -> Integer
Yaiyu fungsi yang menghitung Jumlah dari elemen e dari List L
B. Defun isMember(e L) element,List -> Boolean
Yaitu menghasilkan nilai Truse atau Nil .
True jika e merupakan elemen dari List L
Nil jika e bukan merupakan elemen dari List L
C. Defun hapusx (x L) elemen,List -> List
Menghasilkan List tanpa x
D. Defun MakeList(L) List -> List of List
Menghasilkan sebuah list dengan dengan list didalam list dengan menggunakan Jumlahe (e L)
E. Defun HurufToAngka (L) list -> integer
Yaitu menghasilkan sebuah isi list tersebut dengan mengubahnya ke integer dengan pemisalan / equal.
F. Defun AngkaToHuruf(L) list -> character
Yaitu menghasilkan sebuah isi list tersebut dengan mengubahnya ke karakter dengan pemisalan / equal.
G. Defun IsOneElement (L) list -> Boolean
Menghasilkan nilai true jika List tersebut hanya memiliki satu elemen.
H. Defun Insert (x L) element,List -> List
3.Problem dalam program
1.) Terkendalanya pemahaman tentang sorting list of list
2.) Penghubungan antar fungsi kadang masih bingung
3.) Pembuatan fungsi utama yang masih banyak menggunakan fungsi lain yang tidak sedikit
4.) Tidak semua anggota kelompok paham detail tiap-tiap fungsi dalam program ini.
4.Kelebihan dan Kekurangan
Kelebihan Program ini:
1.) Pengguna dapat menghasilkan list of list yang didalamnya berisikan Elemnt dari list tersebut dan jumlah elemn tersebut pada list tersebut.
2.) Pengguna dapat menghasilkan list dari setiap element dengan urut pada list yang telah diinputkan
3.) Pengguna dapat memahami apa itu list of list dengan dengan metode sorting
Kekurangan Program ini :
1.) Program fungsi utama yang masih banayak menggunakan fungsi lain yang banyak.
2.) Tidak bisa mencetak dengan angka yang bernilai negatif
5.PROGRAM DAN NOTASI
A.Program
B.Notasi
A.Jumlahe: List of integer/character -> List of integer/character
{Jumlahe( e L) Menghasilkan banyaknya e dalam List L }
Jumlahe(e ,L):
If isempty(L) then (Basisi 0) 0
else
if e = FirstElmt then 1 + Jumlahe(e,(Head (L)))
else Jumlahe(e, (Head (L)))
B.isMemeber: element,List -> Boolean
{isMember (e L) meghasilkan true jika e merupakan bagian dari List L}
If isempty(L) then (Basis 0) false
Else (rekurens:analisa kasus)
If firstelmt(L)= e then true
Else isMember(e,(cdr L))
C.hapusx:element,List -> List
{hapusx x (x, l) mebhasilkan list tanpa x}
If isempty (L) then (Basis 0) false
Else (rekurens:analisa kasus)
If firstelmt(L)= e then hapus(x,(cdr L))
Else < (car L) hapus(x,(cdr L))>
D.Makelist:List -> List
{Makelist (L) menghasilkan lis dari list of list tersebut dengan list}
If isempty(L) then (Basis 0) false
Else <car (L),hapus (x,(cdr L))>
E.HurufToAngka
{HurufToAngka(L) meghasilkan list list dengan elemet integer}
If isempty(L) then (Basis 0) false
Else (rekurens:analisa kasus)
If (car L)= ‘a then <0,HurufToAngka(cdr L)>
If (car L)= ‘b then <1,HurufToAngka(cdr L)>
If (car L)= ‘c then <2,HurufToAngka(cdr L)>
If (car L)= ‘d then <3,HurufToAngka(cdr L)>
If (car L)= ‘e then <4,HurufToAngka(cdr L)>
If (car L)= ‘f then <5,HurufToAngka(cdr L)>
If (car L)= ‘g then <6,HurufToAngka(cdr L)>
If (car L)= ‘h then <7,HurufToAngka(cdr L)>
If (car L)= ‘i then <8,HurufToAngka(cdr L)>
If (car L)= ‘j then <9,HurufToAngka(cdr L)>
If (car L)= ‘k then <10,HurufToAngka(cdr L)>
If (car L)= ‘l then <11,HurufToAngka(cdr L)>
If (car L)= ‘m then <12,HurufToAngka(cdr L)>
If (car L)= ‘n then <13,HurufToAngka(cdr L)>
If (car L)= ‘o then <14,HurufToAngka(cdr L)>
If (car L)= ‘p then <15,HurufToAngka(cdr L)>
If (car L)= ‘q then <16,HurufToAngka(cdr L)>
If (car L)= ‘r then <17,HurufToAngka(cdr L)>
If (car L)= ‘s then <18,HurufToAngka(cdr L)>
If (car L)= ‘t then <19,HurufToAngka(cdr L)>
If (car L)= ‘u then <20,HurufToAngka(cdr L)>
If (car L)= ‘v then <21,HurufToAngka(cdr L)>
If (car L)= ‘w then <22,HurufToAngka(cdr L)>
If (car L)= ‘x then <23,HurufToAngka(cdr L)>
If (car L)= ‘y then <24,HurufToAngka(cdr L)>
If (car L)= ‘z then <25,HurufToAngka(cdr L)>
Else <(car L) + 26,HurufToAngka(cdr L)>
G.AngAngkaToHuruf
{AngkaToHuruf(L) meghasilkan list list dengan element carakter }
If isempty(L) then (Basis 0) false
Else (rekurens:analisa kasus)
If (car L)= ‘0 then <’a AngkaToHuruf (cdr L)>
If (car L)= ‘1 then <’b, AngkaToHuruf (cdr L)>
If (car L)= ‘2 then <’c, AngkaToHuruf (cdr L)>
If (car L)= ‘3 then <’d, AngkaToHuruf (cdr L)>
If (car L)= ‘4 then <’e, AngkaToHuruf (cdr L)>
If (car L)= ‘5 then <’f AngkaToHuruf (cdr L)>
If (car L)= ‘6 then <’g, AngkaToHuruf (cdr L)>
If (car L)= ‘7 then <’h, AngkaToHuruf (cdr L)>
If (car L)= ‘8 then <’i, AngkaToHuruf (cdr L)>
If (car L)= ‘9 then <’j, AngkaToHuruf (cdr L)>
If (car L)= ‘10 then <’k, AngkaToHuruf (cdr L)>
If (car L)= ‘11 then <’l, AngkaToHuruf (cdr L)>
If (car L)= ‘12 then <’m, AngkaToHuruf (cdr L)>
If (car L)= ‘13 then <’n, AngkaToHuruf (cdr L)>
If (car L)= ‘14 then <’o, AngkaToHuruf (cdr L)>
If (car L)= ‘15 then <’p, AngkaToHuruf (cdr L)>
If (car L)= ‘16 then <’q, AngkaToHuruf (cdr L)>
If (car L)= ‘17 then <’r, AngkaToHuruf (cdr L)>
If (car L)= ‘18 then <’s, AngkaToHuruf (cdr L)>
If (car L)= ‘19 then <’t, AngkaToHuruf (cdr L)>
If (car L)= ‘20 then <’u, AngkaToHuruf (cdr L)>
If (car L)= ‘21 then <’v, AngkaToHuruf (cdr L)>
If (car L)= ‘22 then <’w, AngkaToHuruf (cdr L)>
If (car L)= ‘23 then <’x, AngkaToHuruf (cdr L)>
If (car L)= ‘24 then <’y, AngkaToHuruf (cdr L)>
If (car L)= ‘25 then <’z,AngkaToHuruf(cdr L)>
Else Else <(car L) - 26,AngkaToHuruf(cdr L)>
H.IsOneElmt
{IsOneElmt(L) menghasilkan true jika element pada list hanya satu element Boolean }
If IsoneElmt(L) then (Basis 0) true
Else false
I.Insert
Insert (x L) : depend on L
IsEmpty (L) then <x , NIL>
FirstElmt (L) => x t< x,L> then < (FirstElmt (L) , Insert ( x , (cdr L)>
J.Insort
{Insort(L) meghasilkan list yang berurutan}
If IsOneElmt L then Insert((car L) nil)
Else insert(car L),insort(cdr L)
K.Sorting
{Sorting(L) List dengan berurutan}
AngkaToHuruf(Insort(HurufToAngka L))
L.Hitung
{Hitung (L) Meghasilkan List of list berurutan dan banyaknya element pada list}
Makelist(Sorting L)
Tidak ada komentar:
Posting Komentar