• Tidak ada hasil yang ditemukan

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
6
0
0

Teks penuh

(1)

PENDAHULUAN

Bahasa Pemrograman

Kuliah #1

Kontrak Kuliah

Deskripsi

Konsep bahasa pemrograman (functional programming, logic programming, concurent programming, imperative programming, object oriented programming), jenis dan ciri; aturan-aturan dalam struktur pemrograman; elemen-elemen bahasa pemrograman: notasi, deklarasi, scope. Functional programming: ciri-ciri, sintaks, list, dan beberapa aplikasi lainnya. Logic programming : ciri-ciri, relasi, aturan, fakta, goal, prolog search tree, place holder, cut, list, database. Object oriented programming: pengertian obyek, kelas dan data, operator overloading, inheritance, fungsi virtual, polymorphism, stream.

JULIO - ILMU KOMPUTER IPB 2

Kontrak Kuliah

Tujuan

Setelah mengikuti matakuliah ini, mahasiswa diharapkan mampu memecahkan masalah yang berbeda dengan menggunakan bahasa pemrograman yang sesuai

Strategi Perkuliahan

Kuliah diberikan kepada mahasiswa S1 IPB yang mengambil mata kuliah ini sebagai mayor (G6: Ilmu Komputer), baik reguler maupun penyelenggaraan khusus (ekstensi). Perkuliahan dilakukan sebanyak 14 kali pertemuan kuliah tatap muka dan 12 kali praktikum. Metode perkuliahan adalah kombinasi antara ceramah, diskusi, dan latihan. Sedangkan praktikum dilaksanakan dengan metode tutorial dan latihan. Mahasiswa wajib mengikuti perkuliahan minimal 80 persen, dan praktikum 80 persen. Mahasiswa pengulang matakuliah Bahasa Pemrograman diwajibkan mengikuti keseluruhan kegiatan kuliah dan praktikum selama satu semester.

JULIO - ILMU KOMPUTER IPB 3

Kontrak Kuliah

Tugas

Tugas pemrograman diberikan pada saat kuliah dan wajib dikerjakan oleh mahasiswa, dan hasilnya dikumpulkan sesuai dengan waktu yang telah ditetapkan. Keterlambatan pengumpulan tugas akan mengurangi nilai sebesar 10 satuan per hari dengan batas maksimum keterlambatan adalah 5 hari. Mahasiswa yang melakukan kecurangan dan/atau plagiarism akan mendapatkan sanksi tegas

Strategi Perkuliahan

Programming Languages: Principles and Paradigms. 2nd Ed. Allen B. Tucker & Robert E. Noonan.

C: How to Program. 3rd Ed. Deitel, H. M. & P. J. Deitel. Pearson Education Prentice Hall. Prentice-Hall, New Jersey.

Java: How to Program. 3rd Ed. Deitel, H. M. & P. J. Deitel. Pearson Education Prentice Hall. Prentice-Hall, New Jersey

JULIO - ILMU KOMPUTER IPB 4

Kontrak Kuliah

JULIO - ILMU KOMPUTER IPB 5

Sesuai dengan ketentuan yang terdapat pada Buku Panduan Sarjana IPB Hadir paling lambat 15 menit. Mahasiswa TIDAK DIPERKENANKAN masuk kelas setelah 15 menit kuliah dimulai.

• Jika dalam keadaan mendesak (misal transportasi, cuaca), bisa memberitahu terlebih dahulu via sms/call ke Sekretariat paling lambat pukul 18:00

• Seketariat akan memberi lembar ijin masuk melebihi batas 15 menit. Mahasiswa harus mengambil lembar ini sebelum masuk kelas. Tanpa lembar ijin ini, mahasiswa tidak diperkenankan masuk kelas melebih batas 15 menit.

Berpenampilan dan berbusana sopan serta rapi. Tidak menggunakan sandal atau sejenisnya.

Tidak mengoperasikan handphone, laptop, atau sejenisnya. Kehadiran mahasiswa minimal 70% untuk dapat mengikuti UAS.

Tata Tertib Mahasiswa

Kontrak Kuliah

Kriteria Penilaian

• Nilai akhir (NA) adalah nilai kumulatif dari nilai ujian tengah semester (UTS), ujian akhir semester (UAS), dan nilai LL (tugas atau praktikum atau kehadiran). Metode dan bobot nilai sebagai berikut:

–UTS+UAS dilakukan melalui ujian tertulis, bobot total 75% –LL dinilai melalui aktivitas mahasiswa (praktikum,

kehadiran), dan nilai tugas, dengan bobot total 25%

• Selang nilai untuk menetapkan huruf mutu A, B, C, D, atau E ditentukan berdasarkan nilai rataan dan standard deviasi dengan menggunakan sebaran normal. Ketentuan ini berlaku sama untuk semua mahasiswa baru atau pengulang.

(2)

OVERVIEW

Tucker & Noonan

Chapter 1

Prinsip Bahasa Pemrograman

• Bahasa pemrograman vs bahasa alami

 Memfasilitasi komunikasi antar manusia

 Bahasa pemrograman juga memfasilitasi komunikasi manusia dengan mesin

 Bahasa pemrograman hanya pada domain komputasional

• Perancang bahasa memiliki vocabulary dasar tentang:

 Struktur bahasa  Arti

JULIO - ILMU KOMPUTER IPB 8

Prinsip Bahasa Pemrograman

• Prinsip perancangan bahasa : (1) Sintaks, (2) Nama dan Tipe, (3) Semantik.

• Sintaks menjelaskan bagaimana struktur program yang benar. Struktur bahasa pemrograman modern didefinisikan menggunakan bahasa formal yang disebut context-free-grammar.

• Nama dan Tipe menunjukkan bagaimana aturan penamaan entitas (variabel, fungsi, class, parameter, dsb).

• Semantik, arti dari program. Ketika program dijalankan, efek tiap instruksi didefinisikan oleh semantik dari bahasa.

JULIO - ILMU KOMPUTER IPB 9

Paradigma

• Paradigma pemrograman adalah bentuk pemecahan masalah mengikuti aliran atau “genre” tertentu dari program dan bahasa.

• Empat paradigma pemrograman pada tiga dekade terakhir:  Imperative programming

 Object-oriented programming  Functional programming  Logic programming

• Beberapa bahasa dirancang mendukung lebih dari satu paradigma. Contoh: C++ (imperative dan OOP), Leda (imperative, OOP, functional, logic).

JULIO - ILMU KOMPUTER IPB 10

Imperative Programming

• Paradigma paling tua, didasari oleh model komputasi klasik “von Neumann-Eckert”.

• Program dan variabel disimpan bersama.

• Program terdiri dari instruksi yang membentuk perhitungan, asignment, input, output, dan kontrol.

• Contoh: Cobol, Fortran, C, Ada, Perl

JULIO - ILMU KOMPUTER IPB

input output control arithmetic/logic program variables program variables 11

Object-oriented Programming

• Program adalah kumpulan dari obyek yang saling berinteraksi satu sama lain.

• Program membungkus (encapsulate) data dan fungsi atau prosedur menjadi suatu obyek (class).

• Meliputi mekanisme obyek, pewarisan, dan passing parameter.

• Contoh: Smalltalk, C++, Java, C#

(3)

Functional Programming

• Memodelkan masalah komputasi sebagai suatu fungsi matematika, yang mempunyai input (domain) dan hasil atau output (range).

• Tidak menggunakan mekanisme assignment, karena tidak dapat diterima secara matematika, misalnya:

x = x + 1

• Fungsi mengkombinasikan kondisi dan rekursif. • Contoh: Lisp (List Programming), Scheme, Haskell.

JULIO - ILMU KOMPUTER IPB 13

Logic Programming

• Disebut juga Declarative Programming

• Memodelkan masalah menggunakan bahasa deklaratif, yang terdiri dari fakta dan aturan.

• Kadang disebut juga sebagai rule-based languages. • Contoh: Prolog (Programming in Logic).

JULIO - ILMU KOMPUTER IPB 14

PL History

JULIO - ILMU KOMPUTER IPB 15

Disain Bahasa Pemrograman

• Menciptakan bahasa sehingga pemrogram dapat memecahkan persoalan yang kompleks. • Kendala yang harus diperhatikan:

 Architecture  Technical Setting  Standards

JULIO - ILMU KOMPUTER IPB 16

Disain Bahasa Pemrograman

• Architecture. Bahasa pemrograman dirancang untuk komputer: well-match atau tidak dengan arsitektur komputer yang ada.

• Technical Setting, memperhatikan sistem operasi, IDE (Integrated Development Environment), network, dan referensi lingkungan lainnya.

• Standards: ANSI (American National Standards Institute), atau ISO (International Standards Organization). Contoh: ISO Pascal (1990), ANSI/ISO C++ (2003), dsb.

JULIO - ILMU KOMPUTER IPB 17

Disain Bahasa Pemrograman

Goals:

• Simplicity and Readability, program harus mudah ditulis, dan mudah dibaca oleh programmer umumnya.

• Clarity about Binding, memiliki batasan definisi dan waktu yang jelas, misalnya reserved words, ukuran memori suatu tipe data, run time, dsb.

• Reliability, program akan melakukan hal yang sama ketika memperoleh input data yang sama.

• Support, mudah diakses, dipelajari, dan di-install oleh siapa saja.

• Efficient.

(4)

Compilers & Virtual Machines

Bahasa program dianalisis dan selanjutnya diterjemahkan ke dalam bentuk yang dapat dipahami mesin:

• Dijalankan oleh komputer – “real machine”  compiling • Dijalankan oleh interpreter – software yang mensimulasikan

“virtual machine” dan menjalankan dalam “real machine”  interpreting

JULIO - ILMU KOMPUTER IPB 19

Compilers

JULIO - ILMU KOMPUTER IPB Lexical analyzer Syntactic analyzer Type checker Code optimizer Code generator Computer Input Output Source program Machine code 20

Virtual Machines & Interpreters

JULIO - ILMU KOMPUTER IPB Lexical analyzer Syntactic analyzer Type checker Interpreter Computer Input Output Source program Abstract syntax 21

FUNCTIONAL PROGRAMMING

Tucker & Noonan

Chapter 14

Functional Programming

• 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).

JULIO - ILMU KOMPUTER IPB 23

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.

(5)

Function & Lambda Calculus

• Dasar dari pemrograman fungsional adalah lambda calculus. • Ekspresi lambda menunjukkan parameter dan definisi dari

fungsi, BUKAN nama fungsi.

• Contoh, ekspresi lambda yang mendefinisikan fungsi Kuadrat adalah:

(x . x * x)

• Identifier x adalah parameter yang digunakan dalam fungsi (tanpa nama) x * x.

• Contoh aplikasinya: ((x . x * x)2) menjadi 4.

JULIO - ILMU KOMPUTER IPB 25

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 | (M N) | ( variable . M)

M  LambdaExpression

N  LambdaExpression

JULIO - ILMU KOMPUTER IPB 26

Lambda Calculus

• Contoh ekspresi lambda: x

(x . x) ((x . x) (y . y)) • Aplikasi fungsi:

((x . * x x)5) = (* 5 5)

JULIO - ILMU KOMPUTER IPB 27

Scheme

• Lisp (List Programming) adalah bahasa pemrograman fungsional yang asli. Saat ini mempunyai dua varian, yaitu:

 Common Lisp (Steele, 1990)

 Scheme (Kelsey, 1998) – http://www.drscheme.org/ • Tidak memiliki pernyataan assignment.

• Program ditulis sebagai fungsi rekursif.

JULIO - ILMU KOMPUTER IPB 28

Scheme

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)

JULIO - ILMU KOMPUTER IPB 29

Scheme

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

(6)

Scheme

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?

Referensi

Dokumen terkait

 Half Adder : Cara kerja rangkaian ini adalah dengan menjumlahkan 2 input bilangan biner 1 bit yang ada, hasil penjumlahan tersebut menjadi nilai Sum dan apabila terdapat

Berdasarkan hasil penelitian didapatkan hasil balita yang mengalami ISPA mayoritas berumur 12-36 bulan dan rata-rata umur balita yang mengalami ISPA yaitu 30 bulan, mayoritas

Indikator Kinerja Kegiatan 001 Jumlah Penyelesaian Administrasi Perkara di tingkat Pertama dan banding di Lingkungan Peradilan Umum yang tepat waktu. 002 Jumlah Penyelesaian

Uraian di atas merupakan dasar dari penelitian ini, namun dari seluruh penelitian mengenai analgesia preemptif dan preventif yang dipublikasikan dengan pendekatan

Peneliti yang lain yaitu Yani Purbaningrum yang berjudul “Pengaruh Model Pembelajaran Think Pair Share (TPS) Terhadap Hasil Belajar Matematika Siswa Ditinjau dari

Arah kebijakan pengembangan sistem perlindungan hortikultura terkait dengan sasaran strategis Tahun 2015 – 2019 adalah Pengelolaan OPT melalui pendekatan konsep PHT;

 Tindak lanjut terhadap hasil pemantauan pelaksanaan program peningkatan mutu klinis & keselamatan pasien ( kegiatan yang perlu

Dalam hasil penelitian terkait stimulasi psikososial dan metode sosialisasi yang diberikan ibu kepada remaja membuktikan bahwa dengan adanya internal working dalam