Bahasa Pemrograman :: Pemrograman List

dokumen-dokumen yang mirip
Paradigma Functional BAHASA PEMROGRAMAN. TIM PENGAJAR PEMROGRAMAN Departemen Ilmu Komputer IPB

Bahasa Pemrograman :: Functional Programming

12/29/2011 ILKOM IPB 1. Algoritme dan Pemrograman. Fungsi. Fungsi. y = f (x) = x m = jumlah ( a, b ) = a + b

Latihan 1. Praktikum 2 Bahasa Pemrograman PLT Scheme : Membuat Program

Algoritma Euclidean dan Struktur Data Pohon dalam Bahasa Pemrograman LISP

PERTEMUAN 7 REVIEW (QUIZ)

Algoritme dan Pemrograman

VI. FUNGSI. Fungsi Main ( ) Fungsi a ( ) Fungsi b ( ) Fungsi c ( ) Fungsi c1 ( ) Fungsi c2 ( ) Fungsi c3 ( ) Bentuk umumnya :

Implementasi Skema Pohon Biner yang Persistent dalam Pemrograman Fungsional

STACK (TUMPUKAN) Tumpukan uang koin Tumpukan kotak Tumpukan Buku. Gambar 1. Macam-macam tumpukan

Tipe data dasar merupakan tipe data yang disediakan oleh kompailer, sehingga dapat langsung dipakai Dalam algoritma dan pemrograman yang termasuk dala

Prosedur. Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer UDINUS Semarang

Operator Precedence dan Associativity DASAR PEMROGRAMAN. JULIO ADISANTOSO Departemen Ilmu Komputer IPB. Pertemuan 2

MODUL ALGORITMA DAN PEMROGRAMAN. STMIK AMIKOM Yogyakarta. Rajif Agung Yunmar, S.Kom., M.Cs.

Algoritma Pemrograman & Struktur Data

Bahan kuliah Matematika Diskrit. Himpunan. Oleh: Didin Astriani P, M.Stat. Fakultas Ilkmu Komputer Universitas Indo Global Mandiri

Bahasa Pemrograman :: Object Oriented Programming

Algoritma dan Struktur Data STACK

Variabel dan Tipe data Javascript

Fungsi. Jika f adalah fungsi dari A ke B kita menuliskan f : A B yang artinya f memetakan A ke B.

Kisi- kisi UTS- P. Kisi- kisi UTS- T

Aplikasi Rekursif dalam Analisis Sintaks Program

matematika PEMINATAN Kelas X PERSAMAAN DAN PERTIDAKSAMAAN EKSPONEN K13 A. PERSAMAAN EKSPONEN BERBASIS KONSTANTA

FUNGSI Misalkan A dan B himpunan. Relasi biner f dari A ke B merupakan suatu fungsi jika setiap elemen di dalam A dihubungkan dengan tepat satu

Prosedur dan Fungsi ALGORITMA DAN PEMROGRAMAN [IS ] Dosen: Yudha Saintika, S.T., M.T.I

BAB 2 GRAF PRIMITIF. 2.1 Definisi Graf

03 LINKED LIST. Slide 0 voice. Slide 1 voice. Slide 2 voice. Thompson Susabda Ngoen 1 P a g e

Universitas Komputer Indonesia

Review : Sifat Implementasi Linear List dengan Array

MODUL ALGORITMA DAN PEMROGRAMAN. STMIK AMIKOM Yogyakarta. Rajif Agung Yunmar, S.Kom., M.Cs.

BAB II STACK (TUMPUKAN)

BAB 2 TINJAUAN PUSTAKA

SATUAN ACARA PERKULIAHAN MATA KULIAH : STRUKTUR DATA KODE / SKS : IK410 / 2 SKS

BAB III ANALISIS. Mekanisme Penyimpanan dan Pengambilan Sequence

a[0] a[1] a[2] a[3] a[4] a[5] x

FUNGSI. setiap elemen di dalam himpunan A mempunyai pasangan tepat satu elemen di himpunan B.

Function. Function adalah satu blok instruksi yang dieksekusi ketika dipanggil dari bagian lain dalam suatu program. Format dari function :

Operator Precedence dan Associativity DASAR PEMROGRAMAN. JULIO ADISANTOSO Departemen Ilmu Komputer IPB. Pertemuan 2

@copyright by Emy PENGANTAR ALGORITMA & PROGRAM & PROGRAM PENGERTIAN ALGORITMA NOTASI UNTUK ALGORITMA

CARA MENGECEK TIPE DATA ARGUMEN DALAM PHP

RELASI DAN FUNGSI. /Nurain Suryadinata, M.Pd

Soal Ujian Akhir Semester Pendek TA. 2006/2007 D3-Manajemen Informatika

Contoh function 1 : Output : // function example The result is 8 #include <iostream.h>

Kombinatorial. Matematika Diskrit Pertemuan ke - 4

Konsep Bahasa Pemrograman Pertemuan 6

Overview Analisis Rekurens

Struktur Data Array. Rijal Fadilah S.Si

12/29/2011 ILKOM IPB 1. Algoritme dan Pemrograman. Address and Pointers. Pointer

STACK (TUMPUKAN) Tumpukan uang koin Tumpukan kotak Tumpukan Buku. Gambar 1. Macam-macam tumpukan

Konsep Pemrograman. Bab 7. Fungsi1. Konsep Pemrograman Politeknik Elektronika Negeri Surabaya 2006 PENS-ITS. Umi Sa adah

MATEMATIKA BISNIS. Himpunan. Muhammad Kahfi, MSM. Modul ke: Fakultas Ekonomi Bisnis. Program Studi Manajemen.

Algoritma dan Struktur Data

PENDAHULUAN 01/31/2013. Julio Adisantoso 1. Kontrak Kuliah. Bahasa Pemrograman Kuliah #1. Tata Tertib Mahasiswa

11/18/2009. Julio Adisantoso 1. Bahasa Pemrograman Kuliah #1 18 November Tucker & Noonan Chapter 1

Integer (Bilangan Bulat) Yang dimaksud bilangan bulat adalah, -1, -2, -3, 0, 1, 2, 3, 4 dan lain lain yang bukan merupakan bilangan pecahan.

Algoritma Pemrograman 2B (Pemrograman C++)

HIMPUNAN (Pengertian, Penyajian, Himpunan Universal, dan Himpunan Kosong) EvanRamdan

09/09/2013 ILKOM IPB 1. Algoritme dan Pemrograman. Contoh penerapan. Kiat Sukses. Program Komputer. Kenapa belajar algoritme dan pemrograman?

CCH1A4 / Dasar Algoritma & Pemrogramanan

BAB II DASAR-DASAR ALGORITMA

Sieve of Eratosthenes dan Aplikasinya Dalam Problem Solving

Kode : IF2121 NIM :... Matakuliah : Algoritma dan Struktur Data Nama :... Hari, Tanggal : Senin, 13 November 2017 Waktu : 150 Menit

Struktur Data. Queue (Antrian)

PENERAPAN PEWARNAAN GRAF DALAM PENJADWALAN

BAB VII ALGORITMA DIVIDE AND CONQUER

STRATEGI DIVIDE AND CONQUER

TINJAUAN PUSTAKA. Pada bagian ini akan diberikan konsep dasar graf dan bilangan kromatik lokasi pada

Penerapan Algoritma Backtracking pada Pewarnaan Graf

Bab 2 Struktur Dasar

OPERATOR DAN UNGKAPAN

Penerapan Rekursif dan Analisa Kompleksitas Algoritma Pada Brute Force Login

Rekursif/ Iterasi/ Pengulangan

OPTIMALISASI PENELUSURAN GRAF MENGGUNAKAN ALGORITMA RUNUT-BALIK

ALGORITMA (KOMPUTER) : ATURAN PENULISAN DAN STRUKTUR DASARNYA

TIPE, NAMA, DAN NILAI

REKURSIF. Dari bahan Dasar Pemrograman oleh: Arkham Zahri Rakhman Rev.: Fazat Nur Azizah

Pendahuluan. Kuadran I (X>0, Y>0) Kuadran II (X<0, Y>0) Kuadran IV (X>0, Y<0) Kuadran III (X<0, Y<0)

Memecahkan Puzzle Hidato dengan Algoritma Branch and Bound

FUNGSI MINGGU KE: 4 TUJUAN: Mahasiswa dapat memahami definisi fungsi. Mahasiswa dapat mendefinisikan fungsi. Mahasiswa dapat menggunakan fungsi.

: Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Linked List. Single Linked List

List Linier (Bag. I) IF2121/Algoritma dan Struktur Data Sem. I 2016/ /25/2017 IF2121/Sem I 2017/2018 1

Definisi Percabangan

Pertemuan Function. Obyektif Praktikum : 1. Mengerti konsep dasar penggunaan Function

FUNCTIONS. Function adalah satu blok instruksi yang akan dieksekusi ketika dipanggil dari bagian lain dalam suatu program.

Algoritme dan Pemrograman

Penggunaan Algoritma DFS dan BFS pada Permainan Three Piles of Stones

SOAL DAN PEMBAHASAN KOMPETISI MATEMATIKA PASIAD IX 2013 TINGKAT SMP BABAK PENYISIHAN (SOAL 1-15)

Himpunan (set) Himpunan (set) adalah kumpulan objek-objek yang berbeda. Objek di dalam himpunan disebut elemen, unsur, atau anggota.

MODUL PRAKTIKUM PERCABANGAN DAN PENGULANGAN

PEMROGRAMAN DALAM R STK372 KOMPUTASI STATISTIK II. Agus Mohamad Soleh

HIMPUNAN MATEMATIKA. Program Studi Agroteknologi Universitas Gunadarma

Algoritme dan Pemrograman

PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA

Algoritme dan Pemrograman

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT

MODUL VII STORED PROCEDURE

Type Rekursif : List LIST OF LIST

BY : DRS. ABD. SALAM, MM

PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA

BAB I H I M P U N A N

Transkripsi:

Bahasa Pemrograman :: Pemrograman Julio Adisantoso ILKOM IPB 2 Maret 2011

Scheme dituliskan dengan menggunakan notasi Cambridge-prefix. Seluruh instruksi dalam Scheme membentuk pola list, dimana data dan program (atau fungsi) direpresentasikan sebagai list. Contoh (+) ;0 (+ 5) ;5 (+ 5 4 3 2 1) ;15 (*) ;1 (* 5) ;5 (* 1 2 3 4 5) ;120 (+ (* 5 4) (- 6 2)) ;24

Define Variabel global didefinisikan dalam Scheme menggunakan fungsi define. Contoh (define f 120) ;membuat f bernilai 120 (define x f) ;membuat x bernilai 120 (define x f) ;membuat x bernilai simbol f (define warna merah) ;membuat warna bernilai merah (define warna merah) ;error, belum terdefinisi

Evaluasi Ada tiga aturan Nama atau simbol diganti oleh nilai yang bersesuaian. Contoh: f ;bernilai 120 (+ f 5) ;bernilai 125 list dievaluasi sebagai pemanggilan fungsi yang ditulis dalam bentuk notasi Cambridge-prefix: (+) ;panggil fungsi + tanpa argumen (+ 5) ;panggil fungsi + dengan 1 argumen (+ 5 4 3 2 1) ;panggil fungsi + dengan 5 argumen (+ (5 4 3 2 1)) ;error, evaluasi 5 sebagai fungsi (f) ;error, f bukan fungsi

Evaluasi Ada tiga aturan Nama atau simbol diganti oleh nilai yang bersesuaian nilai konstanta mengevaluasi nilai dirinya sendiri. Contoh: 5 ;bernilai 5 #f ;bernilai false #t ;bernilai true

Struktur data dasar dalam Scheme adalah list digunakan untuk instruksi dan data Simbol () melambangkan list kosong, atau juga dapat dituliskan sebagai null Contoh: (define genap (0 2 4 6 8)) (define ganjil (1 3 5 7 9)) (define genap2 (0 2 4 6. 8)) (define kosong ()) (define kosong2 null)

(0 2 4 6 8)

(0 2 4 6. 8)

Fungsi Dasar Fungsi dasar yang digunakan untuk menyusun suatu list adalah cons Membutuhkan dua argumen dimana argumen kedua haruslah list. Contoh: (cons 8 null) ;(8) (cons 6 (cons 8 null)) ;(6 8) (cons 4 (cons 6 (cons 8 null))) ;(4 6 8) (cons 4 (cons 6 (cons 8 9))) ;(4 6 8. 9)

Fungsi car dan cdr Node di dalam list mempunyai dua bagian, elemen pertama disebut sebagai head atau kepala, dan list selain elemen pertama disebut tail atau ekor. Fungsi car mengembalikan head atau elemen pertama dari list Fungsi cdr mengembalikan list selain elemen pertama atau tail. Contoh: (car genap) ;0 (cdr genap) ;(2 4 6 8) (car (cdr genap)) ;2, bisa ditulis (cadr genap) (cdr (cdr genap)) ;(4 6 8), atau (cddr genap) (car (6 8)) ;6 (car (cons 6 8)) ;6 (cdr (6 8)) ;(8) (cdr (cons 6 8)) ;8, bukan (8) (car (8)) ;8 (cdr (8)) ;()

Fungsi list dan append Fungsi tingkat tinggi untuk menyusun list adalah fungsi list dan append. Fungsi list menyusun list dari sekumpulan argumen yang diberikan: (list 1 2 3 4) ;(1 2 3 4) (list (1 2) (3 4) 5) ;((1 2) (3 4) 5) (list genap ganjil) ;((0 2 4 6 8) (1 3 5 7 9)) (list genap ganjil) ;(genap ganjil)

Fungsi list dan append Fungsi append mengambil elemen-elemen dari dua list argumen dan menyusun list baru atau menggabungkan elemen list pada argumen kedua ke dalam list pada argumen pertama. Contoh: (append (1 2) (3 4)) ;(1 2 3 4) (append genap ganjil) ;(0 2 4 6 8 1 3 5 7 9) (append (1 2) ()) ;(1 2) (append (1 2) (list 3) ;(1 2 3)

Fungsi memeriksa list (null? ()) ;#t (null? genap) ;#f (null? (1 2 3)) ;#f (null? 5) ;#f (equal? 5 5) (equal? 5 1) (equal? (1 2) (1 2)) (equal? 5 (5)) (equal? (1 2 3) (1 (2 3))) (equal? (1 2) (2 1)) (equal? () ()) ;#t ;#f ;#t ;#f ;#f ;#f ;#t

Mendefinisikan Fungsi Fungsi dalam Scheme didefinisikan dengan menggunakan define dengan bentuk umum seperti berikut: (define ( name arguments ) function-body ) Jadi, fungsi min untuk menentukan bilangan minimum (terkecil) dari dua bilangan adalah: (define (min x y) (if (< x y) x y) )

Fungsi Rekursif Fungsi untuk menghitung nilai faktorial dari sebuah bilangan bulat positif adalah: (define (faktorial n) (if (equal? n 0) 1 (* n (faktorial (- n 1))) ) ) Fungsi ini sebagai implementasi dari fungsi faktorial yang biasa dituliskan dalam notasi matematika sebagai berikut: { 1 ; jika n = 0 f (n) = n f (n 1) ; selainnya

Fungsi Rekursif Fungsi rekursif juga sering digunakan untuk mengolah list. Sebagai contoh, berikut adalah fungsi untuk menghitung penjumlahan dari setiap elemen list sederhana: (define (sum alist) (if (null? alist) 0 (+ (car alist) (sum (cdr alist))) ) ) Sehingga jika diproses (sum (2 4 6 8)) akan menghasilkan nilai 20.

Latihan Buat program menentukan nilai absolut (harga mutlak) dari sebuah bilangan bulat. > (abs -10) 10 Buat program menghitung banyaknya elemen list yang nilainya kurang dari suatu nilai tertentu > (hitung 10 (1 2 15 7 25 10)) 3 Buat program memeriksa keanggotaan suatu elemen dalam list sederhana > (anggota? 10 (5 10 15 20)) #t

Latihan Buat program menghapus elemen list yang sama dan bersebelahan > (hapus ("a" "b" "b" "b" "c" "c")) ("a" "b" "c") Buat program mengganti elemen list > (subst x 2 (1 2 3 2 1)) (1 x 3 x 1)