Kamis, 28 Mei 2015

List Of List






TUGAS KELOMPOK

Menghitung Banyaknya List

Disusun Untuk Memenuhi Tugas Algoritma Dan Pemograman

Dosen Pengampu:Wijanarto,M.Kom









Disusun Oleh:

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