ALGORITMA PEMROGRAMAN 1C PEMROGRAMAN FUNGSIONAL

dokumen-dokumen yang mirip
PEMROGRAMAN IMPERATIF

ALGORITMA PEMROGRAMAN 1C PENDAHULUAN KONSEP BAHASA PEMROGRAMAN

BAHASA PEMROGRAMAN. Merupakan prosedur/tata cara penulisan program.

KONSEP DASAR PEMROGRAMAN

KOM204 : BAHASA PEMROGRAMAN

Implementasi OOP Pada Perangkat Lunak Pemrograman

BAB I KONSEP DASAR PEMROGRAMAN

Fungsi Bahasa pemrograman adalah sebagai media untuk menyusun dan memahami serta sebagai alat komunikasi antara pemrogram dengan computer.

Kualitas bahasa pemrograman: Ekspresivitas : secara jelas menggambarkan algoritma yang dibuat oleh programmer

Pengenalan Pemrograman

Algoritma Euclidean dan Struktur Data Pohon dalam Bahasa Pemrograman LISP

Pemrograman. Fery Updi,M.Kom

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

Syntax, Semantic & Grammar. Konsep Bahasa Pemrograman Materi 3 Yudianto Sujana, M.Kom

BAB II SINTAKS 2.1. SINTAKS

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

Pengenalan Algoritma & Pemrograman

Algoritma dan Struktur Data

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR

Algoritma Pemrograman I KONSEP DASAR

ALGORITMA PEMROGRAMAN 1C PEMROGRAMAN LOGIK

LANGUAGES AND TRANSLATOR

Teori Algoritma TIPE DATA

Teknik Kompiler 2. oleh: antonius rachmat c, s.kom

Pemrograman Fungsional FAJAR SAPTONO, ST

SEMANTIK. Int vector[10];

Pemrograman Prosedural FUNGSI (Subprogram) Tim Pengajar KU1071 Sem

Pendahuluan. Algoritma

KOMPILASI. Assembler Bahasa Rakitan Bahasa Mesin Compiler (Kompilator) Bahasa Tingkat Tinggi Bahasa tingkat rendah

Bahasa Pemrograman :: Pendahuluan

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

Algoritma Pemrograman I

Pengenalan Algoritma

Bahasa Pemrograman :: Functional Programming

Pemrograman dan Bahasa Pemrograman

Kuliah Online : TEKKOM [2013/VI]

ALGORITMA PEMROGRAMAN 1C SINTAKS

Variabel dan Tipe data Javascript

BAB I PENDAHULUAN. 1.1 Latar Belakang

BAHASA TINGKAT TINGGI

BAB I PENDAHULUAN. Sebesta (2002) memaparkan kriteria evaluasi terhadap sebuah bahasa

SINTAKS. Sintaks dari bahasa pemrograman di defenisikan dengan 2 kumpulan aturan, yaitu:

C / C++ / JAVA / C# / Python?

Proses Kompilasi. Otomata dan Pengantar Kompulasi Pertemuan 3

Konsep Bahasa Pemrograman Pertemuan 6

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

Teori Algoritma Pertemuan 2 (11 Maret 2014) Object Oriented Programming (OOP) Functionally Terstruktur Modular Visual & Even Driven Programming

P3 Pengantar Pemrograman C

Objek Data, Variabel, dan Konstanta. Konsep Bahasa Pemrograman Materi 4 Yudianto Sujana, M.Kom

Aplikasi Rekursif dalam Analisis Sintaks Program

SEMANTIK Syntax mendefinisikan suatu bentuk program yang benar dari suatu bahasa.

SINTAKS. Sintaks dari bahasa pemrograman di defenisikan dengan 2 kumpulan aturan, yaitu:

TEKNIK KOMPILASI Tony Darmanto,ST / Smt V S1 TI / STMIK WIDYA DHARMA/ Hal 1

PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA

2.3 Algoritma Tidak Berhubungan dengan Bahasa Pemrograman Tertentu

SUMBER BELAJAR PENUNJANG PLPG

BAHASA PEMROGRAMAN. Untuk SMK. Kadarisman Tejo Yuwono Totok Sukardiyono Adi Dewanto. : Ratu Amilia Avianti. Perancang Kulit

Algoritma dan Pemrograman 2C. Logika Proporsional YUDI ADHA. ST. MMSI

Bahasa Pemograman Modul XI

PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA

BAB 2 LANDASAN TEORI

FUNGSI. {deretan instruksi algoritmik : pemberian harga, input, output, analisa kasus, pengulangan)

TEORI BAHASA DAN OTOMATA PENGANTAR

ALGORITMA PEMROGRAMAN DAN. Disusun Oleh : Mutaqin, MPd., MT

BAB IV HASIL PENELITIAN DAN PENERAPAN

LAPORAN PRAKTIKUM ALGORITMA DAN PEMROGRAMAN ( Implementasi Rekursi Pada Java)

Konsep Bahasa Pemrograman Pertemuan 2

P - 3 Bab 2 : Pengantar Pemrograman C

PEMROGRAMAN KOMPUTER DASAR. Kuliah ke-1

Bab VI Value, Domain dan Type

ANALISIS DAN PERANCANGAN PERANGKAT LUNAK

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

Gambar 1. Blok Utama Komputer

TEKNIK KOMPILASI. Alamat untuk tugas: Informasi: DADANG MULYANA. dadang mulyana 2013

Berpikir Komputasi. Sisilia Thya Safitri, MT Citra Wiguna, M.Kom. 5 Problem Decomposition 24 Oktober 2017

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

Fase-fase proses sebuah kompilasi

PERTEMUAN 2 ALGORITMA & PEMROGRAMAN

Tahap pengembangan program

Elemen Bahasa Pemrograman. Aditya Rizki Yudiantika, M.Eng.

SEMANTIK. Sintak mendifinisikan suatu bentuk program yang benar dari suatu bahasa.

Algoritma dan Struktur Data

PENGANTAR KOMPUTER & SOFTWARE II PENGENALAN PEMANFAATAN KOMPUTASI/ PEMROGRAMAN

PENDAHULUAN. Brigida Arie Minartiningtyas, M.Kom

CCH1A4 / Dasar Algoritma & Pemrogramanan

1. PENGANTAR KECERDASAN BUATAN (ARTIFICIAL INTELLIGENCE)

UNIVERSITAS BINA NUSANTARA. Program Ganda Teknik Informatika Matematika Skripsi Sarjana Program Ganda Semester Genap 2003/2004

AP2B Dini Triasanti STRUKTUR PEMROGRAMAN PYTHON

ORGANISASI KOMPUTER DASAR

Pertemuan ke 6 Set Instruksi. Computer Organization Dosen : Eko Budi Setiawan

Pertemuan 4 ELEMEN-ELEMEN BAHASA PEMROGRAMAN

Konsep Bahasa Pemrograman. Pemrograman Haskell

Pengantar Teknik Informatika

Bahasa Pemrograman dan Flowchart. Adri Priadana

Praktikum Algoritma dan Pemrograman. By Faizah, S.Kom. Lab. Komputasi Dasar Prodi Ilmu Komputer UGM

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

Materi Pelajaran : Algoritma Pemrograman. Siswa memahami tentang dasar dasar Algoritma Pemrograman

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

Transkripsi:

ALGORITMA PEMROGRAMAN 1C PEMROGRAMAN FUNGSIONAL Indah Wahyuni

PEMROGRAMAN FUNGSIONAL Disebut aplikatif karena fungsi yang diaplikasikan ke dalam argumentasi menjadi deklaratif dan non prosedural Merupakan hasil dari fungsi meringkas dan men-generalisir type data dari peta 2

PEMROGRAMAN FUNGSIONAL Didasarkan pada konsep matematika dari sebuah fungsi dan bahasa pemrograman fungsional, meliputi : suatu set fungsi primitif suatu set format fungsional aplikasi operasi suatu set objek data dan fungsi asosiasi suatu mekanisme untuk memberikan rujukan sebuah nama terhadap suatu fungsi 3

3 KOMPONEN PRIMER BAHASA FUNCTIONAL : 1. Kumpulan objek data Menggunakan mekanisme struktur data tingkat tinggi. Contoh : Array atau List 2. Kumpulan functional forms Untuk membuat fungsi baru, yang mengizinkan programmer mendefinisikan operasi baru dari kombinasi fungsi yang ada 4

3 KOMPONEN PRIMER BAHASA FUNCTIONAL : 3. Kumpulan fungsi built-in Untuk memanipulasi objek data dasar yang menyediakan sejumlah fungsi untuk membuat dan mengakses list. Contoh : 1. LISP bahasa unuk komputasi simbolik, nilai direpresentasikan dengan ekspresi simbolik. banyak digunakan di wilayah kecerdasan buatan (robotika, sistem cerdas). biasa dieksekusi di bawah kendali interpreter 5

3 KOMPONEN PRIMER BAHASA FUNCTIONAL : Ekspresi terdiri dari atom atau list. Atom string dan karakter (huruf, angka) Contoh : A68000 List urutan dari atom atau list, dipisahkan dengan spasi, ditutup dengan tanda kurung Contoh : (PLUS A B) ((DAGING AYAM) (SAWI KANGKUNG BAYAM) AIR)) 6

3 KOMPONEN PRIMER BAHASA FUNCTIONAL : 2. ML (Meta Language) merupakan bahasa aplikatif dengan programprogram yang ditulis menggunakan gaya C atau PASCAL konsep yang lebih advance tentang tipe data mendukung polymorphisme dan abstraksi data berjalan dengan interpreter 7

LAMBDA CALCULUS Bahasa sederhana dengan ilmu semantik sederhana, ekspresif yang menyatakan semua fungsi dapat diperhitungkan Merupakan suatu bentuk formal dengan fungsi sebagai aturan Contoh : - Dengan fungsi lebih dari 1 variabel (+ x y) ditulis ((+ x) y) dimana fungsi (+ x) adalah fungsi yang menambahkan sesuatu ke x 8

Lambda Calculus murni mempunyai 3 buah Elemen : Lambang primitif Aplikasi fungsi Fungsi ciptaan Lambda calculus murni tidak mempunyai fungsi tetap atau konstanta Kalkulasi dalam lambda calculus adalah : menulis ulang (mengurangi) suatu lambdaexpression menjadi suatu format formal 9

ILMU SEMANTIK OPERASIONAL Inti denotasional Ilmu Semantik adalah : Terjemahan dari program konvensional ke dalam persamaan fungsional. Tujuan denotasional Semantik dari suatu bahasa adalah : menugaskan suatu nilai kepada setiap ekspresi dalam bahasa Ilmu Semantik dapat dinyatakan dalam lambda calculus sebagai fungsi matematical, Eval, dari ekspresi ke nilai Contoh : Eval[+ 3 4]=7 menggambarkan bahwa nilai ekspresi (+ 3 4) untuk menjadi 7 10

FUNGSI REKURSIF Perluasan Syntax Lambda-calculus yang mencakup ekspresi yang telah dinamai (named expressions) L ::=... x : L... X = nama dari Ekspresi Lambda L FAC : \n.(if (= n 0) 1 (* n (FAC (- n 1)))) dengan syntactic sugaring : FAC : \n.if (n = 0) then 1 else (n * FAC (n - 1)) FAC : (\fac.(\n.(if (= n 0) (* n (fac (- n 1))))) FAC) H : \fac.(\n.(if (= n 0) 1 (* n (fac (- n 1))))) FAC : (H FAC) 11

ATURAN LINGKUP LEKSIKAL let n : E in B adalah penyingkatan untuk (\n.b) E let x : 3 in (* x x) \y. let x : 3 in (* y x) Ekuivalen \y. (* y 3) letrec n : E in B adalah penyingkatan untuk let n : Y (\n.e) in B let n : E in B = (\n.b) E letrec n : E in B = let n : Y (\n.e) in B 12

SEMANTIK TRANSLASI DAN KOMBINATOR Kombinator : S = \f.( \g.( \x. f x ( g x ) ) ) K = \x.\y. x I = \x.x Y = \f. \x.( f(x x)) \x.(f (x x)) aturan reduksi untuk kalkulus SKI adalah : S f g x --> f x (g x) K c x --> c I x --> x Y e --> e (Y e) (A B) --> A B (A B C)--> A B C 13

SEMANTIK TRANSLASI DAN KOMBINATOR Aturan Reduksi dijalankan dari kanan ke kiri Jika tidak ada reduksi S,K,I,Y maka tanda kurung akan dibuang, dan proses reduksi diteruskan Semantik Translasi untuk Lambda Calculus : Compile [ s ] --> s Compile [ (E1 E2)] --> (Compile [ E1] Compile [ E2 ]) Compile [ \x.e] --> Abstract [ (x, Compile [ E] ) ] Abstract [ (x, s) ] --> if (s=x) then I else (K s) Abstract [ (x, (E1 E2))] --> ((S Abstract [ (x, E1)]) Abstract [ (x, E2) ] ) Dimana s adalah simbol 14

SCHEME Turunan dari LISP, didasarkan pada Lambda Calculus. Dikonsentrasikan ke fitur lambda-calculus Scheme mempunyai dua object : Atoms : Untaian Karakter yang bukan blank List : Rangkain Atom atau List dipisahkan oleh blank dan berada dalam tanda Sebuah fungsi dapat terbuat atas fungsi yang lain dan dapat diaplikasikan pada list atau argumen 15

DARI SISI SEJARAH Alternatif teori dasar matematika: Alonso Church, lambda-calculus,1930an Haskell B. Curry,logika kombinatorial 1958, LISP (LISt Processing), pemrosesan list berdasarkan fungsi rekursif. Recursion First class function Garbage collection 1960an, penggunaan lambda-calculus di dalam ilmu komputer Semantik Denotasional Teori Semantik Formal untuk bahasa pemrograman(peter Landin, Christopher Strachy, dll) 1969, Model Matematika pertama untuk lambdacalculus bertipe bebas (Dana Scott) 16

HASKELL Bahasa modern yang dinamai sama dengan Haskell B. Curry Didesain oleh 15 orang anggota komite internasional Pembentukan bahasa fungsional yang memasukkan : ide-ide baik yang sebelumnya ada dalam riset bahasa fungsional Yang sesuai untuk pengajaran, riset dan aplikasi Fasilitas Overloading, yang dipadukan dengan sistem bertipe polimorfis, i/o fungsional, abstraksi data dan penyembunyian informasi 17

HASKELL Functional Programming urutan mesin virtual. Bahasa pemrograman fungsional lambda calculus Lambda calculus logika kombinatorial Logika kombinatorial kode mesin reduksi graf Kesemuanya adalah mesin virtual 18

19