If412 05

515 views
466 views

Published on

Published in: Entertainment & Humor, Sports
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
515
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

If412 05

  1. 1. IF412 – Konsep Bahada Pemrograman Pertemuan : 05 LIST • List dipakai baik untuk program maupun untuk data. • List : urutan dari 0 (nol) atau beberapa harga. Element dari list dapat terdiri dari boolean, angka, simbol, list, function. • List kosong : ( ) atau null contoh : (it seems that) ⇒ list 3 elemen ((it seems that) you (like) me) ⇒ list 4 elemen (a) ⇒ list 1 elemen (a ( )) ⇒ list 2 elemen • Struktur dari sebuah List akan lebih mudah dimengerti dalam representasi Tree. Contoh : Perhatikan dua List berikut : (it seems that you like me) ((it seems that) you (like) me) • it it seems • seems that () that you • you like • like • () me () me () (it seems that you like me) ((it seems that) you (like) me) Operasi-Operasi pada List • (null? x) • (car x) • (cdr x) • (cons a x) • Contoh : (define x ’((it seems that) you (like) me)) (car x) ⇒ (it seems that) (car (car x)) = (caar x) ⇒ it (cdr (car x)) = cdar x) ⇒ (seems that) (cdr x) ⇒ ( you (like) me) (car (cdr x)) = (cadr x) ⇒ you (cdr (cdr x)) = (cddr) ⇒ ((like) me BINA NUSANTARA Edisi : 1 Revisi : 1 Sept - 1998
  2. 2. IF412 – Konsep Bahada Pemrograman Pertemuan : 05 Fungsi-Fungsi Dasar untuk List • Fungsi Length: Digunakan untuk menentukan jumlah elemen dalam list. (define (length x) (cond ((null? x) 0 ) (else (+ 1 (length (cdr x)))) )) (length nil) => 0 a=atom, y=list (length (cons a y)) => (+ 1 (length y)) • Fungsi Reverse Untuk membalik susunan elemen list. (reverse x) ⇒ sama artinya (rev x nil), dimana : (define (rev x z) (cond ((null? x) z) (else (rev (cdr x) (cons (car x) z))))) • Fungsi Append: Menambah elemen pada pada list. (define (append x z) (cond ((null? x) z) (else (cons (car x) (append (cdr x) z))))) Contoh: Phase winding: (append ’(b c d) ’(a)) ⇒ memanggil (append ’(c d) ’(a)) (append ’(c d) ’(a) ⇒ memanggil (append ’(d) ’(a)) (append ’(d) ’(a) ⇒ memanggil (append ’() ’(a)) Phase unwinding: (append ’() ’(a)) ⇒ hasilnya ’(a) (append ’(d) ’(a)) ⇒ hasilnya ’(d a) (appned ’(c d) ’(a)) ⇒ hasilnya ’(c d a) (append ’(b c d) ’(a)) ⇒ hasilnya ’(b c d a) • Fungsi MAP (define (map f x) (cond ((null? x) nil) (else (cons (f (car x))(map f (cdr x)))) )) Contoh : (map square ’(1 2 3 4 5)) ⇒ (1 4 9 16 25) (map (lambda(x) (* x x)) ’(1 2 3 4 5)) ⇒ (1 4 9 16 25) • Fungsi Remove-if (define (remove-if f x) (cond ((null? x) nil) BINA NUSANTARA Edisi : 1 Revisi : 1 Sept - 1998
  3. 3. IF412 – Konsep Bahada Pemrograman Pertemuan : 05 (( f (car x)) (remove-if f (cdr x))) (else (cons (car x) (remove-if f (cdr x))))) Contoh: (remove-if odd? ’(0 1 2 3 4 5)) ⇒ hasil (0 2 4) (remove-if even? ’(0 1 2 3 4 5))⇒ hasil (1 3 5) • Fungsi Reduce Akumulasi hasil : (* (1 2 3 4) 1) ⇒ 24 (+ (1 2 3 4) 0) ⇒ 10 Diperlukan fungsi reduce dengan tiga parameter : o f : fungsi misal + atau * o list dari bilangan-bilangan yang akan dijumlah/dikali o v : nilai awal 0 untuk + 1 untuk * (define (reduce f x v) (cond ((null? x) v) (else (f (car x) (reduce f (cdr x) v))) )) w (reduce f nil v) => v w ((reduce f (cons a y) v) => (f a (reduce f y v)) w (reduce + ’(1 2 3 4 5) 0) => 15 w (reduce * ’(1 2 3 4 5) 1) => 120 w (map list ’(a b c) ’(1 2 3)) => ((a 1) (b 2) (c 3)) w (reduce append (map list ’(a b c) ’(1 2 3) nil) => (a 1 b 2 c 3) BINA NUSANTARA Edisi : 1 Revisi : 1 Sept - 1998

×