Anda di halaman 1dari 21

ALGORITMA PEMGROGRAMAN 1C

PERTEMUAN KE 3 – TIPE BAHASA PEMROGRAMAN

PROGRAM STUDI INFORMATIKA


UNIVERSITAS GUNADARMA
R 01 Pemrograman
Logika

P 02 Pemrograman
Fungsional

S 03 Pemgrograman
Konkuren

PROGRAM STUDI INFORMATIKA


UNIVERSITAS GUNADARMA
01
PEMROGRAMAN LOGIKA

PROGRAM STUDI INFORMATIKA


UNIVERSITAS GUNADARMA
LOGIKA
PEMROGRAMAN

PROBLEM SOLVING = PROBLEM DESCRIPTION + LOGICAL DEDUCTIONS

• Bagaimana kita dapat memiliki kemampuan membuat logika deduksi?


• Idealnya, kita memberitahukan kepada komputer ‘apa’ yang kita ingin kerjakan, bukan
‘bagaimana’cara mengerjakannya

Logika pemrograman pada python adalah paradigma pemrograman yang melihat komputasi sebagai penalaran otomatis atas
basis data pengetahuan yang terbuat dari fakta dan aturan.

PROGRAM STUDI INFORMATIKA


UNIVERSITAS GUNADARMA
LOGIKA
PEMROGRAMAN

PROGRAM STUDI INFORMATIKA


UNIVERSITAS GUNADARMA
BAHASA PEMROGRAMAN
IMPERATIVE VS DEKLARATIVE
Pemrograman deklaratif dan imperatif adalah dua paradigma pemrograman yang umum. Paradigma pemrograman digunakan untuk
mengklasifikasikan bahasa pemrograman tergantung pada fiturnya.

Imperative Deklarative
Pada pemrograman imperative, programmer yang memberitahu
Pada pemrograman, programmer mendeklarasikan “apa/what”
komputer “bagaimana/how” cara menyelesaikan masalah
permasalahannya dan komputer yang akan memecahkan
masalah.Pemograman deklaratif banyak digunakan untuk membangun
sebuah Sistem Cerdas atau artificial intelligence (AI).

Kesimpulanya Pemrograman Deklaratif berfokus pada apa yang harus dicapai program sementara Pemrograman Imperatif berfokus
pada bagaimana program harus mencapai hasil.

PROGRAM STUDI INFORMATIKA


UNIVERSITAS GUNADARMA
Pemrograman deklaratif merupakan lawan dari pemrograman imperatif dimana perbedaannya dapat dijelaskan dalam contoh di
dunia nyata Proses Memperbaiki Motor berikut:

Imperative Deklarative
1. Pergilah ke Bengkel Teknisi, tolong periksa motor saya. (Teknisi, atas
2. Cari kerusakan motor Anda kebijakan dan SOPnya memilih metode terbaik untuk
3. Cari bengkel sesuai merk motor Anda melakukan permintaan)
4. Cari dimana teknisi berada
5. Teknisi memeriksa motor Anda
6. Teknisi memperbaiki motor Anda.
7. Motor diperbaiki.

PROGRAM STUDI INFORMATIKA


UNIVERSITAS GUNADARMA
Sebagai bahasa pemrograman yang juga sering disebut multi paradigma,
berikut pengaplikasian bahasa pemrograman python dengan contoh kasus
penjumlahan sebagai berikut:

IMPERATIVE DEKLARATIV
E
angka = [10, 20, 30, 40] angka = [10, 20, 30, 40]
total = 0 print(sum(angka))
for angka in angka:
total += angka
PLEASE ET print(total)

Jika melihat contoh diatas, terlihat jelas perbedaan cara penulisan Imperatif dan Deklaratif, dimana pada
model Impleratif dilakukan step by step sedangkan pada model Deklaratif, penulisan menggunakan fungsi
sum untuk menjumlahkan semuanya dalam satu baris program tanpa mengetahui alur proses yang terjadi
PROGRAM STUDI INFORMATIKA
di dalamnya.
UNIVERSITAS GUNADARMA
02
PEMROGRAMAN
FUNGSIONAL

PROGRAM STUDI INFORMATIKA


UNIVERSITAS GUNADARMA
Pemrograman Fungsional

• Disebut aplikatif karena fungsi yang diaplikasikan ke dalam argumentasi


menjadi deklaratif dan non prosedural

• Didasarkan pada konsep matematika dari sebuah fungsi dan bahasa


pemrograman fungsional, meliputi :
a. Suatu set fungsi primitive
b. Suatu set format fungsional
c. Aplikasi operasi
d. Suatu set objek data dan fungsi asosiasi
e. Suatu mekanisme untuk memberikan rujukan sebuah nama terhadap
suatu fungsi

• Merupakan hasil dari fungsi meringkas dan men-generalisir type data dari peta

PROGRAM STUDI INFORMATIKA


UNIVERSITAS GUNADARMA
KOMPONEN PRIMER
BAHASA FUNGSIONAL
Kumpulan Fungsi Bult-in
Untuk memanipulasi objek data dasar yang menyediakan
sejumlah fungsi untuk membuat dan mengakses list.

Kumpulan Fungsional Forms


Contoh :
Untuk membuat fungsi baru, yang
LISP →
mengizinkan programmer • bahasa unuk komputasi simbolik, nilai
mendefinisikan operasi baru dari

02
direpresentasikan dengan ekspresi simbolik.
kombinasi fungsi yang ada. • banyak digunakan di wilayah kecerdasan buatan
(robotika, sistem cerdas).
• biasa dieksekusi di bawah kendali interpreter

Kumpulan Objek Data Ekspresi terdiri dari atom atau list.

01 03
Atom → string dan karakter (huruf, angka)
Menggunakan mekanisme struktur
Contoh : A68000
data tingkat tinggi.
List → urutan dari atom atau list, dipisahkan dengan
Contoh : Array atau List
spasi, ditutup dengan tanda kurung.
Contoh : (PLUS AB)
((daging ayam) (sawi kangkung bayam) air))

ML (Meta Language) →
• Merupakan Bahasa aplikatif dengan konsep yang lebih
advance tentang tipe daya
PROGRAM STUDI INFORMATIKA • Mendukung polimorfisme dan abstraksi data
• Berjalan dengan interpreter
UNIVERSITAS GUNADARMA
LAMBDA CALCULUS

Lambda Calculus Contoh :


Adalah :
• Dengan ekspresi polynomial X2 + 3X
• Bahasa sederhana dengan ilmu semantik sederhana,
• Dengan fungsi lebih dari 1 variable (+ x y) ditulis ((+
ekspresif yang menyatakan semua fungsi dapat
x)y) dimana fungsi (+ x) adalah fungsi yang
diperhitungkan
menambahkan sesuatu ke x
• Merupakan suatu bentuk formal dengan fungsi
sebagai aturan

Elemen Lambda Calculus


Kalkulasi dalam lambda calculus adalah : Murni
Menulis ulang(mengurangi) suatu lambda-
 Lambang primitive
expression menjadi suatu format formal.  Aplikasi fungsi
 Fungsi ciptaan
Lambda calculus murni tidak mempunyai fungsi tetap
atau konstanta

PROGRAM STUDI INFORMATIKA


UNIVERSITAS GUNADARMA
ILMU SEMANTIK OPERASIONAL

Inti Denotasional Ilmu Semantik Tujuan Denotasional Semantik dari


Suatu Bahasa
Terjemahan dari program konvensional ke dalam persamaan
fungsional. Menugaskan suatu nilai kepada setiap ekspresi dalam bahasa.

Ilmu semantik dapat dinyatakan dalam lambda calculus sebagai fungsi mathematical, Eval, dari ekspresi ke nilai.

Contoh : Eval[+ 3 4] = 7 menggambarkan bahwa nilai ekspresi (+ 3 4) untuk menjadi 7

PROGRAM STUDI INFORMATIKA


UNIVERSITAS GUNADARMA
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)

PROGRAM STUDI INFORMATIKA


UNIVERSITAS GUNADARMA
Semantik Translasi & Kombinator
Aturan Lingkup Leksikal

Aturan reduksi untuk kalkulus SKI adalah : Kombinator : let n : E in B #adalah penyingkatan untuk (\n.B) E
S f g x →f x (g x) S = \f.(\g.(\x. f x (g x)))
let x : 3 in (* x x)\y.
Kcx →c K = \x. \y. x
let x : 3 in (* y x) Ekuivalen \y. (* y 3)
Ix →x I = \x.x
Ye →e (Y e) Y = \f. \x. (f (x x)) \x. (f (x x)) letrec n : E in B #adalah peyingkatan untuk let n : Y (\n.E) in B
(A B) →A B
(A B C) →A B C let n : E in B = (\n.B) E
• Aturan Reduksi dijalankan dari kanan ke kiri
letrec n : E in B = let n : Y (\n.E ) in B
• 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 symbol

PROGRAM STUDI INFORMATIKA


UNIVERSITAS GUNADARMA
SCHEME

• Turunan dari LISP, didasarkan pada Lambda Calculus. Dikonsentrasikan ke fitur


lambda-calculus

• Scheme mempunyai dua object :


a. Atoms : Untaian Karakter yang bukan blank
b. List : Rangkaian 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

PROGRAM STUDI INFORMATIKA


UNIVERSITAS GUNADARMA
03
PEMROGRAMAN KONKUREN

PROGRAM STUDI INFORMATIKA


UNIVERSITAS GUNADARMA
PEMROGRAMAN KONKUREN

Sebuah sistem komputer harus menangani beberapa program (task) yang harus dieksekusi bersama dalam
sebuah lingkungan(baik mono atau multi prosesor). Pada pemrograman konkuren, kita tidak lagi berpikir
sekuensial, melainkan harus menangani komunikasi dan sinkronisasi antar program.

Alasan Pemilihan Pemrograman Konkuren bagi Pemrogram


• Lebih memahami tentang arsitektur komputer
• Design compiler
• Beberapa permasalahan sebagian besar dipecahkan dengan menggunakan co-operating proses
• Mengurangi waktu pengerjaan/pelaksanaan proses

PROGRAM STUDI INFORMATIKA


UNIVERSITAS GUNADARMA
Perbedaan Operasi Secara
Sekuensial dan Konkuren

Operasi Sekuensial Operasi Konkuren

-- O ─ O ─ O ─ O → -O─O–
-- │ │ -- >

X=5 -O─O–

Y=3*X+4
X =A* B + C
Y= 3 *A+ 7

Bahasa Pemrograman Konkuren :


Java, C#, Erlang, Occam, Limbo, SR, Ada

PROGRAM STUDI INFORMATIKA


UNIVERSITAS GUNADARMA
Concurrency in Programming
Sifat-sifat Konkurensi
Languages
• Sinkronisasi
Dua buah proses dikatakan berkomunikasi jika aksi dari sebuah proses sepenuhnya
• Concurrent execution : A notation that denotes operations that
mendahului proses berikutnya. Sinkronisasi berhubungan dengan komunikasi.
could be, but need to be, executed in parallel.
• Nondeterministic
Sebuah program dikatakan non-deterministic bila memiliki lebih dari satu evaluasi
• Communication : A notation that permits processes to exchange
strategi yang memungkinkan dan bebeda, yang memberikan hasil-hasil yang
information either through shared variables(visible to each process)
berbeda.
or a message passing mechanism.
• Mutual Exclusion
Sebuah proses kadang membutuhkan akses yang eksklusif terhadap sumber daya.
• Synchronization : A notation to require a process to wait for a
Misalnya ketika sebuah proses memperbaiki struktur data, tidak ada proses lain
signal from another process.
yang mengakses data yang sama

• Mutual exclusion : A notation to synchronize access to shared


resource

PROGRAM STUDI INFORMATIKA


UNIVERSITAS GUNADARMA
TERIMA
KASIH

Tim Penyusun:
1.
PROGRAM STUDI INFORMATIKA 2.
UNIVERSITAS GUNADARMA 3

Anda mungkin juga menyukai