Bahasa Pemrograman :: Functional Programming

dokumen-dokumen yang mirip
Struktur Program Fungsional

Paradigma Functional BAHASA PEMROGRAMAN. TIM PENGAJAR PEMROGRAMAN Departemen Ilmu Komputer IPB

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

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

Bahasa Pemrograman :: Pemrograman List

OPERATOR-OPERATOR DALAM JAVA

JAVA BASIC PROGRAMMING Joobshet

JENIS DATA SEDERHANA & INPUT/OUTPUT DATA

Tabel Informasi. Hal di atas dapat dilakukan dengan menambah dan mengambil atribut identifier yang digunakan pada program, melalui tabel informasi.

Bab III Semantik. Konsep Semantik Bahasa Pemrograman (Semantik Analisis)

.::BAB II.::MENGENAL PASCAL

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

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR

Sesi/Perkuliahan ke: II

Turbo C adalah tool yang dipakai untuk membuat code program dalam bahasa C ataupun C++. Berikut adalah jendela utama Turbo C

Tipe Data dan Operator

VARIABEL, TIPE DATA, KONSTANTA, OPERATOR DAN EKSPRESI. Pemrograman Dasar Kelas X Semester 2

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya.

Perjalanan sebuah intruksi

UJIAN TENGAH SEMESTER GANJIL TAHUN STMIK AMIKOM YOGYAKARTA

VARIABEL & TIPE DATA PEMROGRAMAN C++

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya.

TIPE DATA, VARIABLE, dan OPERATOR DELPHI

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya.

Sebuah algoritma tidak saja harus benar, tetapi juga harus mangkus (efisien). Algoritma yang bagus adalah algoritma yang mangkus.

Pemrograman Fungsional FAJAR SAPTONO, ST

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

Module 4. Ekpresi, Operator, dan Konstanta

PENGENALAN BAHASA C. A. Struktur Kode Program dalam Bahasa C Secara garis besar, suatu kode program dalam bahasa C memiliki struktur umum seperti ini:

disebut ternary operator. Di dalam suatu operasi dapat terdapat banyak operator. Urutan eksekusi dari operatoroperator

Tipe Data dan Operator dalam Pemrograman

ALGORITME DAN PEMROGRAMAN

Basic Input/Output Operator Yoannita

CCH1A4 / Dasar Algoritma & Pemrogramanan

Module 3. Variabel dan Tipe Data

FUNGSI. Blok fungsi juga diawali dengan kata cadangan Begin dan di akhiri dengan kata cadangan End dan titik koma.

>>> type ("5") <'type string'> >>> a= Belajar Python >>> type a <'type string'> AP2B Dini Triasanti Struktur Pemrograman Python (Bagian 2)

Pemrograman Berorientasi Object

Variabel, Tipe Data, dan Operator. Oleh : Edi Sugiarto, S.Kom, M.Kom

Algoritma & Pemrograman #3

KONSEP DASAR BAHASA PASCAL

Variable. Variable (cont) Variable (cont) Tipe Data

PENGULANGAN Bagian 1 : Notasi. Tim Pengajar KU1071 Sem

TUGAS MATA KULIAH TEKNIK KOMPILASI

BAB I PENGENALAN STRUKTUR DATA DAN ALGORITMA

Brigida Arie Minartiningtyas, M.Kom

Pemrograman Berbasis Objek Operator dan Assignment

PERTEMUAN 7 REVIEW (QUIZ)

Pemrograman Dasar Pascal

1/8/2011. Pertemuan 13-14: Dasar Pemrograman. Sub pokok bahasan. Program Komputer dan Bahasa Pemrograman. Program Komputer dan Bahasa Pemrograman

BAB-2 : TIPE DATA, VARIABEL DAN OPERATOR

Chapter 2. Tipe Data dan Variabel

Pengantar dalam Bahasa Pemrograman Turbo Pascal Tonny Hidayat, S.Kom

2.3 Algoritma Tidak Berhubungan dengan Bahasa Pemrograman Tertentu

MODUL PRAKTIKUM PERCABANGAN DAN PENGULANGAN

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

ALGORITMA PEMROGRAMAN 1C PEMROGRAMAN FUNGSIONAL

Operator dan Assignment

Java Basic. Variabel dan Tipe Data. Lokasi di dalam memori komputer yang digunakan untuk menyimpan suatu informasi (nilai)

Pengenalan Pascal. Sejarah Singkat Pascal

Aplikasi Rekursif dalam Analisis Sintaks Program

Pertemuan 4 ELEMEN-ELEMEN BAHASA PEMROGRAMAN

Mata Kuliah : Pemrograman Web II. Pokok Bahasan : Type Data & Operator. Okta Jaya Harmaja, M.Kom

Pemrograman. Pertemuan-3 Fery Updi,M.Kom

Variabel dan Tipe data Javascript

Struktur Data. PDE - Struktur Data 1

Algoritma Pemrograman

VARIABEL, TIPE DATA DAN EKSPRESI Bab 2

PENCARIAN BERUNTUN (SEQUENTIAL SEARCHING)

BAB 3 TYPE DATA, VARIABLE DAN OPERATOR

T I P E D A T A P R I M I T I F V A R I A B E L D A N S T A T E M E N P E N U G A S A N E K S P R E S I D A N O P E R A T O R A R I T M A T I K A

BAHASA PEMROGRAMAN JAVA PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM YOGYAKARTA

PERKEMBANGAN PASCAL. Pascal adalah bahasa tingkat tinggi ( high level language) yang orientasinya pada segala tujuan

JENIS-JENIS DATA DAN STATEMEN INPUT OUTPUT

PROSES PENJUALAN BUKU

Variabel merupakan tempat untuk menyimpan nilai sementara dari suatu perhitungan. Untuk mendeklarasikan sebuah variabel digunakan pernyataan :

Teori Algoritma TIPE DATA

Dasar Komputer & Pemrogaman 2A

Minggu III STRUKTUR PEMILIHAN (KONTROL PROGRAM)

PHP mendukung komentar yang digunakan pada C, C++ dan Shell Unix. Sebagai contoh:

Type Data terdiri dari : - Data Tunggal : Integer, Real, Boolean dan Karakter. - Data Majemuk : String

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

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

Bahasa Pemrograman Java. Yudi Adha. ST. MMSI

BAB III OPERATOR compiler operasi operand A. Operator Aritmatika Operator Penggunaan Deskripsi Latihan 4. Aritmatika.java

Bab 4. Decision 2 (Pengambilan Keputusan)

Kisi-Kisi Ujian Tengah Semester Algoritma dan Pemrograman Lanjut

PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA

SEMANTIK. Int vector[10];

Soal hari Selasa (13/10) Latihan 7 AN

Soal hari Jumat (16/10) Latihan 10 MS

Bahasa Pemrograman :: Object Oriented Programming

CCH1A4 / Dasar Algoritma & Pemrogramanan

LAPORAN PRAKTIKUM RESMI TIPE DATA, KONSTANTA DAN VARIABEL

I. KATA PENGANTAR. Modul Algoritma Pemrograman. Modul Ke-3 - Hal 1

PEMROGRAMAN JAVA. Petunjuk Penulisan Program Token Aturan Penamaan Identifier Lingkungan /Scope dari variabel Tipe Data (i) Yoannita

if (ekspresi_boolean) {

PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA

PENDAHULUAN. Brigida Arie Minartiningtyas, M.Kom

Transkripsi:

Bahasa Pemrograman :: Julio Adisantoso ILKOM IPB 24 Pebruari 2011

Pendahuluan Ekspresi Lambda Program serba fungsi, artinya setiap persoalan diselesaikan dengan menggunakan fungsi. Mulai dikembangkan tahun 1960an, dimotivasi oleh peneliti bidang artificial intelligence, symbolic computation, theorem proving, rule-based system, dan NLP. Bahasa fungsional pertama adalah Lisp (McCarthy, 1960). Memodelkan masalah komputasi sebagai suatu fungsi matematika, yang mempunyai input (domain) dan hasil atau output (range).

Pendahuluan Ekspresi Lambda Function & Lambda Calculus Contoh fungsi matematika: Kuadrat(n) = n n. Kuadrat adalah fungsi yang memetakan suatu himpunan bilangan real R (domain) ke bilangan real R (range). Atau secara formal didefinisikan: Kuadrat : R R Suatu fungsi disebut total jika terdefinisi untuk semua elemen dalam domain, dan disebut parsial untuk selainnya. Fungsi Kuadrat adalah total karena domainnya seluruh himpunan bilangan real.

Pendahuluan Ekspresi Lambda Lambda Calculus Setiap identifier adalah ekspresi lambda. Jika M dan N adalah ekspresi lambda, maka aplikasi dari M dan N, ditulis sebagai (M N), adalah ekspresi lambda. Abstraksi, ditulis sebagai (λx.m), dimana x adalah identifier dan M adalah ekspresi lambda, juga merupakan ekspresi lambda. BNF grammar: LambdaExpression variable (MN) (λvariable.m) M LambdaExpression N LambdaExpression

Pendahuluan Ekspresi Lambda Contoh Ekspresi Lambda Contoh ekspresi lambda: x (λx.x) ((λx.x)(λy.y)) Aplikasi fungsi: ((λx. xx)5) = ( 55)

Lisp (List Programming) adalah bahasa pemrograman fungsional yang asli. Saat ini mempunyai dua varian, yaitu: Common Lisp (Steele, 1990) Scheme (Kelsey, 1998) - www.drscheme.org Tidak memiliki pernyataan assignment yang tidak sesuai secara matematika, seperti x = x + 1. Program ditulis sebagai fungsi.

Ekspresi Ekspresi disusun dalam notasi Cambridge-prefix. Contoh: (+ 2 2) Operasi aritmatika: (+) 0 (+ 5) 5 (+ 5 4 3 2 1) 15 ( ) 1 ( 5) 5 ( 1 2 3 4 5) 120 Contoh lain: (+ ( 5 4) ( 6 2)

Variabel Variabel global Didefinisikan dengan menggunakan fungsi define. Contoh: (define f 120) Evaluasi ekspresi f 120 (+ f 5) 125 (f) error, kenapa? 5 5 #f false #t true

Evaluasi Ekspresi (define warna (quote (merah kuning hijau))) (define warna (merah kuning hijau)) (define x f) 120 (define x f) x berisi simbol f (define warna merah) (define warna merah) error, kenapa?

memiliki dua tools utama MzScheme : the core compiler, interpreter, and run-time system DrScheme : the programming environment DrScheme memiliki beberapa variant. Untuk menggunakan Scheme standar: Pilih Module (Choose Language Module) Definisikan #lang scheme pada definition area.

Bentuk: ( define <id> <expr> ) ( define ( <id> <id>* ) <expr>+ ) Contoh: #lang scheme (define x 5) ; x sbg var bernilai 5 (define (potong st) ; potong sbg fungsi (substring st 0 x)) > x 5 > (potong "hello world") "hello"

s : if Nilai Boolean: #t true #f false Bentuk IF Contoh: (if <expr> <expr> <expr>) (define (maks a b) (if (> a b) a b)) > (maks 5 10) 10

s : and, or Bentuk AND dan OR: (and <expr>*) (or <expr>*) Contoh: (define (test n) (if (and (>= n 5) (<= n 20)) "di dalam" "di luar" ) ) > (test -4) "di luar"

s : cond Bentuk cond: Contoh: (cond {[ <expr> <expr>* ]}*) (define (mutu n) (cond ((= n 4) "A") ((= n 3) "B") ((= n 2) "C") ((= n 1) "D") ((= n 0) "E") (#t "BL") ) )

s : when, unless Bentuk: (when <test-expr> <then-expr>) (unless <test-expr> <then-expr>) Contoh: (define (bagi a b) (when (not (= b 0)) (/ a b) ) ) ; atau (define (bagi a b) (unless (= b 0) (/ a b) ) )

Booleans, Numbers, Characters, Strings (Unicode) Bytes and Byte Strings, Symbols Keywords, Pairs and Lists, Vectors Hash Tables, Boxes, Void and Undefined

Boolean Nilai output : #t dan #f Fungsi boolean? untuk memeriksa apakah suatu nilai yang diperiksa adalah boolean. Contoh > (= 2 (+ 1 1)) #t > (boolean? #t) #t > (boolean? #f) #t > (boolean? "no") #f > (if "no" 1 0) 1

Numbers Bilangan dalam Scheme: Exact Integer : 5, 99999999999999999, -17 Ratio : 1/2, 99999999999999999/2, -3/4 Complex number : 1+2i, 1/2+3/4i Inexact : 2.0, 3.14e+87 Fungsi untuk memeriksa : integer?, rational?, real?, complex?, number? Fungsi tipe data: #e (exact), #i (inexact), #b (binary), #o (octal), #x (hexa)

Numbers > 0.5 0.5 >#e0.5 1/2 >#x03bb 955 >(/ 1 2) 1/2 >(/ 1 2.0) 0.5 >(if (= 3.0 2.999) 1 2) 2 > (inexact->exact 0.1) 3602879701896397/36028797018963968

Character Character dalam Scheme Unicode scalar value. Jenis Printable char : #\ diikuti dgn char Unprintable char : #\u diikuti dgn hexa Beberapa Fungsi: char->integer integer->char display char-alphabetic?, char-numeric?, char-whitespace? char-downcase, char-upcase char=? Bandingkan dua atau lebih char char-ci=? Tidak memperhatikan upper/lower case eqv? Sama dengan equal? untuk char

Character > (integer->char 65) #\A > (char->integer #\A) 65 > #\u03bb #\? > (integer->char 17) #\u0011 > (char->integer #\space) 32 > #\A #\A > (display #\A) A

Character > (char-alphabetic? #\A) #t > (char-numeric? #\0) #t > (char-whitespace? #\newline) #t > (char-downcase #\A) #\a > (char=? #\a #\A) #f > (char-ci=? #\a #\A) #t > (eqv? #\a #\A) #f

String Array of characters Contoh: > "Apple" "Apple" > (display "Apple") Apple > (display "a \"quoted\" thing") a "quoted" thing > (display "two\nlines") Two lines

Buat program membaca nama dan menampilkan seperti contoh. > (halo "Scheme Nurachem") Selamat Datang Scheme Nurachem KOM204 Buat program menjumlahkan tiga bilangan. > (jumlah 4 6 8) 18 Buat program menentukan bilangan terkecil dari tiga bilangan. > (min 6 4 6) 4

Buat program menentukan salah satu akar persamaan kuadrat ax 2 + bx + c = 0. Program tidak menghasilkan apa-apa bila a = 0 atau b 2 4ac < 0. > (akar 1 1-6) 2 Buat program menghitung nilai faktorial > (faktorial 4) 24 Buat program menentukan nilai fibonacci ke-n > (fib 10) 55