Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

If412 05

581 views

Published on

Published in: Entertainment & Humor, Sports
  • Be the first to comment

  • Be the first to like this

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

×