Konsep Bahasa Pemrograman Pertemuan 6

dokumen-dokumen yang mirip
MODUL PRAKTIKUM PERCABANGAN DAN PENGULANGAN

Bahasa Pemrograman :: Pemrograman List

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

Algoritma dan Pemrograman. Loop control structures: WHILE. Loop control structures: WHILE Perhatikan potongan program berikut: 12/29/2011

2.4. Struktur Branching

ALGORITMA PEMROGRAMAN 1C PEMROGRAMAN FUNGSIONAL

Rekursif. Rekursif adalah salah satu metode dalam dunia matematika dimana definisi sebuah fungsi mengandung fungsi itu sendiri.

Percabangan & Perulangan

CCH1A4 / Dasar Algoritma & Pemrogramanan

Selection, Looping, Branching

Algoritma Perulangan. Kuliah algoritma dan pemrograman

PEMROGRAMAN DALAM R STK372 KOMPUTASI STATISTIK II. Agus Mohamad Soleh

PENGULANGAN Bagian 1 : Notasi. Tim Pengajar KU1071 Sem

Konsep Bahasa Pemrograman. Pemrograman Haskell

Soal hari Selasa (13/10) Latihan 7 AN

Algoritma dan Pemrograman. Pertemuan Ke-7 Statement Pengendalian 2

Pertemuan 9: BRANCHING/PERCABANGAN dalam C LOOPING/PERULANGAN/ITERASI dalam C

1. Laporan Akhir 1. Menentukan Nilai Besar atau Nilai Kecil. Program yang di masukkan adalah :

Definisi Percabangan

BAB 3 STRUKTUR KENDALI, SUBROUTINE, DAN FUNGSI

Procedure. Pertemuan 10 Algoritma Pemrograman

24/09/2017 PERULANGAN

Struktur Kontrol Perulangan (Loop) Algoritme dan Pemrograman. Struktur Kontrol Perulangan: while. Struktur Kontrol Perulangan: while

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR

CCH1A4 / Dasar Algoritma & Pemrogramanan

PEMROGRAMAN VISUAL BASIC.NET ( PERULANGAN / LOOPING )

JAVA BASIC PROGRAMMING Joobshet

Fungsi. Fungsi. Dasar Komputer & Pemrograman 1. dipecah Sub Program. Program. Dasar Komputer & Pemrograman TC22052 Kartika Firdausy - UAD

SATUAN ACARA PERKULIAHAN MATA KULIAH PEMROGRAMAN PASCAL * (TK) KODE / SKS: KK /2 SKS

PROSEDUR. Jadi, setiap prosedur harus : - Didefinisikan (dibuat spesifikasinya) dan dituliskan kode programnya - Dipanggil, pada saat eksekusi

Aplikasi Rekursif dalam Analisis Sintaks Program

Algoritma Pemrograman

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-5 Rekursif

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

UJIAN TENGAH SEMESTER GANJIL TAHUN STMIK AMIKOM YOGYAKARTA

Algoritme dan Pemrograman

a. TRUE b. FALSE c. Jawaban A dan B keduanya dimungkinkan benar d. Tidak dapat ditentukan e. Tidak ada jawaban di antara A, B, C, D yang benar

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

STRUKTUR DASAR ALGORITMA

SOAL C++ Created by Yuli Astuti,S.Kom Copyright 2009

DASAR PEMROGRAMAN. Institut Teknologi Sumatera

BAGIAN A. PILIHAN GANDA Silanglah Jawaban yang Benar Pada Lembar Jawaban. Jawaban benar bernilai 3, salah atau kosong bernilai 0.

Algoritma dan Struktur Data

Bab 9. Percabangan dan Perulangan

2. Sebuah prosedur langkah demi langkah yang pasti untuk menyelesaikan sebuah masalah disebut : a. Proses b. Program c. Algoritma d. Prosesor e.

Struktur Kontrol. Contoh, Akan tercetak x is 100 jika nilai yang disimpan pada variable x adalah 100:

LAPORAN PRAKTIKUM RESMI QUEUE

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

STATEMEN GO TO DAN IF-THEN. Pertemuan IX

Pemrograman Dasar C. Minggu 6

PENGANTAR KOMPUTER & SOFTWARE II

Lecturer: Abdusy Syarif. Undergraduate Course Informatics Engineering Dept. Universitas Mercu Buana LOOPING

Pemrograman Dasar R E P E T I T I O N

Konstruksi Dasar Algoritma

Algoritma Euclidean dan Struktur Data Pohon dalam Bahasa Pemrograman LISP

Satuan Acara Perkuliahan (SAP) UNIVERSITAS GUNADARMA

PENGANTAR KOMPUTER & SOFTWARE II. Pengulangan (For) Tim Pengajar KU Institut Teknologi Sumatera

ALGORITMA TUGAS 2 RESUME ALGORITMA PERCABANGAN DAN ALGORITMA PERULANGAN. Disusun Oleh : Sakina Mawardah Teknik Informatika. Dosen : Asep M. Yusuf, S.

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

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

Tujuan : A. Percabangan Percabangan di dalam Java terdapat 2 macam, yaitu dengan memakai if dan switch.

Soal hari Jumat (16/10) Latihan 10 MS

IKG2I4 / Software Project I

Bab 7 Komponen Dasar Visual Basic 29 BAB VII KOMPONEN DASAR VISUAL BASIC TUJUAN PRAKTIKUM

24/09/2017 PERCABANGAN

Dasar Pemrograman. Kondisi dan Perulangan. By : Hendri Sopryadi, S.Kom, M.T.I

STATEMENT FORMAT, DATA, PARAMETER, SPESIFIKASI DAN PENGERJAAN. Kuliah ke-3

Chapter 2 Tipe Data, Identifier, Operator dan Control Statement

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

Kode MK/ Pemrograman Terstruktur 2. ZK Abdurahman Baizal. KK Algoritma dan Komputasi. Queue (Antrian)

Algoritme dan Pemrograman

Pemrograman Dasar S E L E C T I O N

Modul Praktikum Bahasa Pemrograman 1

BAB III ANALISIS DAN PERANCANGAN APLIKASI 3.1 ANALISIS

PERBANDINGAN KOMPLEKSITAS ALGORITMA PENCARIAN BINER DAN ALGORITMA PENCARIAN BERUNTUN

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

Apakah Anda sering kesulitan untuk

Dasar Haskell. Apa itu Haskell? Bacaan tambahan: Learn You a Haskell for Great Good, bab 2 Real World Haskell, bab 1 dan 2

PROSES PENJUALAN BUKU

Pengenalan Dan Contoh Penggunaan Sederhana Fungsi Looping Pada Visual Basic

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

Aturan Penulisan Algoritma Setiap Algoritma akan selalu terdiri dari tiga bagian yaitu : Judul (Header) Kamus Algoritma

KATA PENGANTAR Dengan menyebut nama Allah STW yang Maha Pengasih dan Maha Penyayang, kita panjatkan puji dan syukur atas kehadirat-nya, yang telah mel

ARRAY / LARIK. Oleh : Agus Priyanto, M.Kom SEKOLAH TINGGI TEKNOLOGI TELEMATIKA TELKOM. Smart, Trustworthy, And Teamwork

PHP (HYPERTEXT PREPROCESSOR)

BAB VII DASAR-DASAR PHP

Basic Input/Output Operator Yoannita

Pengumuman Pekan ke- 5

Pemrograman Prosedural FUNGSI (Subprogram) Tim Pengajar KU1071 Sem

BAB 5 PERULANGAN DAN ARRAY

BAB II DASAR-DASAR DAN ATURAN PENULISAN ALGORITMA

MODUL 2 SELECTION & LOOPING PADA FORM

BAB II STACK (TUMPUKAN)

Tujuan Instruksional. Mahasiswa mampu :

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

ALGORITMA PEMROGRAMAN 1C SEMANTIKS

Kisi-Kisi Ujian Tengah Semester Algoritma dan Pemrograman Lanjut

MODUL. Operasi Kondisi. Modul Praktikum C++ Dasar Pemrograman Komputer JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK

PENGANTAR KOMPUTER & SOFTWARE II

Pengenalan Algoritma

Transkripsi:

Konsep Bahasa Pemrograman Pertemuan 6 Evangs Mailoa

HASKELL

What is Haskell? Haskell merupakan bahasa pemrograman yang; fungsional, malas dan murni. fungsional evaluasi dari programnya sama dengan mengevaluasi sebuah fungsi dalam bahasa matematika murni malas tidak mengevaluasi ekspresi-ekspresi yang digunakan (kebalikannya teliti ) murni tidak memperbolehkan adanya Efek Samping, yaitu sesuatu yang mempengaruhi bagian di program. Misalnya fungsi yang mencetak sesuatu ke layar yang mempengaruhi nilai dari variabel global. Bahasa pemrograman yang tanpa efek samping akan menjadi sangat tidak berguna! Haskell menggunakan sistem monads untuk mengisolasi semua komputasi kotor dari program dan menampilkannya dengan cara yang aman.

HASKELL memang mudah. How about : double (double 2).?! = 8

Apa itu functional programming?

Misalkan n = 5, maka perhitungannya menjadi :

Dengan HASKEL, kita cukup memanggil fungsi : Sum [1..5] Sum [1,2,3,4,5]

Standar dalam Prelude.hs +, -, *, / ^ head tail!! take drop length sum product ++ reverse

Bagaimana jika kita ingin buat fungsi sendiri..?! Ex : Buat fungsi quadruple Buat fungsi factorial Buat fungsi average

Comment

Type dalam HASKELL

Type dalam HASKELL

Type dalam HASKELL

Try this!

Percabangan Statement if-then-else terdapat di bahasa Haskell. Contoh penggunaannya adalah sebagai berikut: if 1 < 2 then Satu lebih kecil dua else Satu tidak lebih kecil dua > "Satu lebih kecil dua

Abstraksi Lambda (Lambda Abstractions) Disamping menggunakan menggunakan persamaan untuk menetapkan fungsi, kita juga dapat menggunakan menetapkannya anonim melalui abstraksi lambda. Sebagai contoh, sebuah fungsi ekuivalen dengan inc dapat ditulis sebagai \x -> x+1. Sama seperti fungsi add yang ekuivalen dengan \x -> \y -> x+y. Abstraksi lambda bersarang seperti ini dapat ditulis dengan notasi singkat yang ekuivalen \x y -> x+y. Dalam kenyataannya, persamaan : inc x = x+1 add x y = x+y adalah kependekan dari inc = \x -> x+1 add = \x y -> x+y

Contoh Lambda

GRAFIK Dalam Haskell, kita juga dapat menggambarkan objek 3 dimensi. Penggambaran objek 3 dimensi ini dimungkinkan karena dalam Haskell kita dapat menuliskan pemrograman OpenGL. Contoh: import Graphics.UI.GLUT import Graphics.Rendering.OpenGL main = do (progname,_) <-getargsandinitialize createawindow progname mainloop createawindow windowname = do createwindow windowname displaycallback $= displaypoints displaypoints = do clear [ColorBuffer] renderprimitive Polygon $mapm_ (\(x, y, z)->vertex$vertex3 x y z) mypoints mypoints :: [(GLfloat,GLfloat,GLfloat)] mypoints = [(-0.25, 0.25, 0.0),(0.75, 0.35, 0.0),(0.75, -0.15, 0.0),((-0.75), -0.25, 0.0)] Adapun outputnya adalah:

Fungsi Fungsi dapat dibuat dengan menuliskan tipenya, lalu mendefinisikannya. Misalnya: tambahsatu :: Integer -> Integer tambahsatu x = x + 1 Jika kita gunakan fungsinya, inilah outputnya:? tambahsatu 5 > 6? tambahsatu 999 > 1000 Baris yang pertama: tambahsatu :: Integer -> Integer

Pattern Matching faktorial :: Integer -> Integer faktorial 0 = 1 faktorial n = n * faktorial (n - 1)? faktorial 3 > 6? faktorial 0 > 1 Pertama dicek apakah argumen match dengan 0. Karena tidak, maka dicek apakah argument match dengan n. Karena n bisa berupa Integer apapun (jenis fungsinya adalah Integer -> Integer), maka 3 match dengan n dan definisi fungsi yang berkaitan digunakan.

List listkosong :: [a] -> Bool listkosong [] = True listkosong x = False? listkosong [] > True? listkosong [1..10] > False? listkosong [10..1] > True Dari contoh di atas kita tahu bahwa list [10..1] ternyata adalah list kosong. Artinya konstruksi list [a..b] akan menghasilkan list tidak jika dan hanya jika a lebih kecil atau sama dengan b.

Contoh List baliklist :: [a] -> [a] baliklist [] = [] baliklist (x:xs) = baliklist xs ++ [x] adadilist :: [Integer] -> Integer -> Bool adadilist [] n = False adadilist (x:xs) n = if x == n then True else (adadilist xs n) hilangkan :: [Integer] -> Integer -> [Integer] hilangkan [] n = [] hilangkan (x:xs) n = if x == n then hilangkan xs n else [x] ++ (hilangkan xs n)

Mau bertanya..?