Pemrograman Prosedural FUNGSI (Subprogram) Tim Pengajar KU1071 Sem

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

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

FUNGSI DASAR PEMROGRAMAN

Sub Program : Prosedur. Tim Pengajar KU1071 PTI A Semester I 2009/2010

Subprogram (dalam Bahasa C++ + Flowchart)

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

Fungsi. Nisa ul Hafidhoh

PENGULANGAN Bagian 1 : Notasi. Tim Pengajar KU1071 Sem

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

HARGA & EKSPRESI Input dan Output

Algoritma dan Pemrograman PROSEDUR. Oleh: Eddy Prasetyo N

Algoritma Pemrograman

MODUL PRAKTIKUM PERCABANGAN DAN PENGULANGAN

TIPE, NAMA, DAN NILAI

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

CCH1A4 / Dasar Algoritma & Pemrogramanan

Struktur Program. Rinta Kridalukmana

Teori Algoritma. Struktur Algoritma

Dasar Komputer dan Pemrograman. Konsep Tipe Data dan Operator Nama dan Nilai Data

Algoritma dan Struktur Data

Algoritma dan Pemrograman FUNGSI

Algoritma Pemrograman

Brigida Arie Minartiningtyas, M.Kom

Algoritma dan Struktur Data I Mia Fitriawati, S.Kom, M.Kom

FUNGSI MINGGU KE: 4 TUJUAN: Mahasiswa dapat memahami definisi fungsi. Mahasiswa dapat mendefinisikan fungsi. Mahasiswa dapat menggunakan fungsi.

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR

Prosedur dan Fungsi ALGORITMA DAN PEMROGRAMAN [IS ] Dosen: Yudha Saintika, S.T., M.T.I

Pertemuan Ke-2 (Teks Algoritma) Rahmady Liyantanto. S1 Teknik Informatika-Unijoyo

Algoritma Pemrograman

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

Algoritma dan Pemrograman. Oleh: Eddy Prasetyo N

Algoritma Pemrograman

Prosedur. Nisa ul Hafidhoh

.::BAB II.::MENGENAL PASCAL

Pemrograman Prosedural PENDAHULUAN. Tim Pengajar KU1071 Sem

CCH1A4 / Dasar Algoritma & Pemrogramanan

Tinjau algoritma dibawah ini

Universitas Komputer Indonesia

LATIHAN UTS Tim Pengajar KU1071 Sem

DASAR PEMROGRAMAN. Institut Teknologi Sumatera

Tipe Data, Nama, Nilai. Chapter 4

Pertemuan Ke-3 (Tipe Data dan Nama) Rahmady Liyantanto. S1 Teknik Informatika-Unijoyo

PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA

STRUKTUR DASAR PEMROGRAMAN

PROSEDUR DASAR PEMROGRAMAN

JENIS-JENIS DATA DAN STATEMEN INPUT OUTPUT

BAB I TUJUAN DAN LANDASAN TEORI

SEQUENCE. Program SEQ1 { Contoh penulisan sequence per baris } Program SEQ2 { Contoh penulisan sequence dengan tanda titik koma}

Teori Algoritma TIPE DATA

Algoritma,Flowchart, Konsep

Nama, Tipe, Ekspresi, dan Nilai

Algoritma dan Struktur Data

ANALISA KASUS Ekspresi Kondisional

Algoritma Pemrograman

Notasi Algoritmik. Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer UDINUS Semarang

PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA

PENDAHULUAN. Brigida Arie Minartiningtyas, M.Kom

Materi. Tipe, Variabel dan Operator Algoritma Pemrograman PENULISAN ALGORITMA PENULISAN ALGORITMA 15/03/2010 NAMA DAN EKSPRESI

Algoritma dan Struktur Data

POKOK BAHASAN - 2 PEMROGRAMAN MODULAR

Algoritma Perulangan. Kuliah algoritma dan pemrograman

PENGULANGAN SKEMA PEMROSESAN SEKUENSIAL. Tim Pengajar KU1071 Sem

Algoritma Pemrograman

Algoritma Pemrograman

Struktur Data. Belajar Struktur Data Menggunakan Pascal Pertemuan-1

Indentifier, Keywords, Variable, Tipe Data dan Operator. Ramos Somya, S.Kom., M.Cs.

& PEMROGRAMAN. Alex De Kweldju, S.Kom D3 Teknik Komputer Fakultas Teknik Universitas Negeri Papua

Konstruksi Dasar Algoritma

SUB PROGRAM : PROSEDUR & FUNGSI. Konsep Pemrograman

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

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

Kata Pengantar... Daftar Isi... Daftar Padan Kata Inggris - Indonesia Pengantar ke Algoritma... 1

Pengenalan Pascal. Sejarah Singkat Pascal

Variabel dan Tipe data Javascript

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

Modul I. Modul Praktikum Bahasa Pemrograman Pascal

Algoritma dan Pemrograman Bab II Dev Pascal, Variabel, Tipe Data. Adam Mukharil Bachtiar, S.Kom. Universitas Komputer Indonesia

Sesi/Perkuliahan ke: II

Variabel dan Tipe Data Kusrini 1, Heri Sismoro 2

Soal hari Selasa (13/10) Latihan 7 AN

Mesin Abstrak. Tim Pengajar KU1071 Sem

Algoritma Pemrograman

Saifoe El Unas 2. Free Format

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

Algoritma dan Struktur Data

Dasar Komputer & Pemrogaman 2A

Algoritma Pemrograman

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

Outline. Ekuivalensi Notasi Algoritmik Dengan ETNA. Struktur Umum

Algoritma & Pemrograman FUNGSI. Pengampu : Agus Priyanto, M.Kom SEKOLAH TINGGI TEKNOLOGI TELEMATIKA TELKOM. Smart, Trustworthy, And Teamwork

SATUAN ACARA PERKULIAHAN (SAP) Mata Kuliah : Struktur Data Kode : TIS3213 Semester : III Waktu : 1 x 3 x 50 Menit Pertemuan : 3

PENGULANGAN. Ada lima macam notasi pengulangan: 1. Berdasarkan jumlah pengulangan. repeat n times

Tipe Data dan Operator dalam Pemrograman

FUNGSI. setiap elemen di dalam himpunan A mempunyai pasangan tepat satu elemen di himpunan B.

Array (Tabel) Tim Pengajar KU1071 Sem /11/3 TW/KU1071 1

Pembahasan Kuis. KU1071/Pengantar Teknologi Informasi A Sem /2011

PROSES PENJUALAN BUKU

Pemrograman Fungsional FAJAR SAPTONO, ST

Algoritma Pemrograman

Type. Type adalah himpunan nilai dan sekumpulan operator yang terdefinisi terhadap type tersebut

Transkripsi:

Pemrograman Prosedural FUNGSI (Subprogram) Tim Pengajar KU1071 Sem. 1 2009-2010 1

Tujuan Perkuliahan Mahasiswa memahami makna dan kegunaan fungsi sebagai salah satu sub program Mahasiswa dapat menggunakan notasi fungsi dengan benar Mahasiswa dapat membuat program dengan menggunakan fungsi 2

Definisi Fungsi Fungsi adalah sebuah transformasi akibat pemetaan suatu nilai (dari domain) ke nilai lain (dalam range) Fungsi diberi nama, dan parameter formal (harga masukan yang diberi nama dan dijelaskan type-nya) Fungsi harus didefinisikan dalam kamus 3

Contoh Fungsi Fungsi bernama f(x) memiliki satu parameter x didefinisikan sebagai f(x) = x 2 + 3x -5 jika diberi harga x = 4 maka f(x) akan menghasilkan 23 jika diberi harga x = 1 maka f(x) akan menghasilkan - 1 Fungsi f(x,y) memiliki dua parameter x dan y, didefinisikan sebagai f(x,y) = x 2 + 3xy 5y 1 jika diberi harga x = 0 dan y = 0 maka f(x,y) akan menghasilkan -1 jika diberi harga x = 1 dan y = 0 maka f(x,y) akan menghasilkan 0 4

Notasi Algoritmik untuk Pendefinisian Fungsi (1) function NAMAF (<list-parameter input>) <type hasil> {Spesifikasi fungsi} Kamus lokal: {semua NAMA yang dipakai dalam algoritma dari fungsi} Algoritma: {deretan fungsi algoritmik: pemberian harga, input, output, analisa kasus, pengulangan} {Pengiriman harga di akhir fungsi, harus sesuai dengan type hasil} hasil 5

Notasi Algoritmik untuk Pendefinisian Fungsi (2) Dengan syarat: list parameter input boleh tidak ada (kosong), dalam hal ini di fungsi tidak membutuhkan apaapa dari pemakainya untuk menghasilkan harga Jika list parameter input (parameter FORMAL) ada (tidak kosong, minimal satu nama), maka harus berupa satu atau beberapa nama INFORMASI beserta typenya (bisa type dasar atau terstruktur) pada akhir dari FUNGSI, harga yang dihasilkan oleh fungsi dituliskan seperti pada notasi di atas, type hasil boleh type dasar atau type terstruktur 6

Notasi Algoritmik untuk Pemanggilan Fungsi (1) Program POKOKPERSOALAN {Spesifikasi: Input, Proses, Output} Kamus: {semua NAMA yang dipakai dalam algoritma} function NAMAF ([list nama parameter input]) [type hasil] {Spesifikasi fungsi} Algoritma: Kamus global (vs kamus lokal) {deretan instruksi pemberian harga, input, output, analisa kasus, pengulangan yang memakai fungsi} {harga yang dihasilkan fungsi juga dapat dipakai dalam ekspresi} nama NAMAF ([list parameter aktual]) output (NAMAF ([list parameter aktual])) Hasil atau output dari fungsi Parameter formal Parameter aktual {harga yang dihasilkan fungsi juga dapat dipakai dalam ekspresi} 7

Notasi Algoritmik untuk Pemanggilan Fungsi (2) Pada waktu pemanggilan terjadilah korespondensi antara parameter input dengan parameter aktual sesuai dengan urutan penulisan dalam list-nama parameter input List parameter input dapat berupa nama INFORMASI atau KONSTANTA yang telah terdefinisi dalam kamus atau konstanta; dapat juga berupa harga konstanta, atau harga yang dihasilkan oleh suatu ekspresi atau fungsi List parameter aktual harus sama jumlah, urutan, dan typenya dengan list parameter input pada pendefinisian fungsinya Harga yang dihasilkan oleh fungsi dapat didefinisikan domainnya dengan lebih rinci Pada akhir dari eksekusi FUNGSI, harga yang dihasilkan oleh fungsi dikirimkan ke pemakainya Fungsi boleh dipakai oleh program utama, prosedur, atau fungsi lain 8

Contoh-contoh Fungsi 9

Fungsi FX_Kuadrat function nama_fungsi FX_Kuadrat (parameter x: integer input) type integer hasil {Diberikan {spesifikasi x, fungsi} integer, menghitung f(x) = x 2 + 2x - 5} Kamus lokal: Algoritma:{penghitungan} (pengiriman (x * x + 2 * x - 5) hasil) Program CONTOHF1 {input: x; output: hasil penghitungan x 2 + 3x 5; proses: dibaca x, menghitung: f(x) = x 2 + 3x 5; menuliskan hasil perhitungan } Kamus: x : integer { data } FX : integer { Hasil perhitungan f(x) = x2 + 3x - 5} function FX_KUADRAT (x : integer) integer { diberikan x, menghitung f(x) = x2 + 3x - 5 } Algoritma: input (x) FX FX_KUADRAT(x) output (FX) Algoritma: input (x) output (FX_KUADRAT(x)) Algoritma: input (x) FX 3*FX_KUADRAT(x) output (x) 10

Fungsi Konversi Persoalan: Tuliskanlah sebuah fungsi, yang mengkonversikan harga karakter angka (nol sampai dengan 9) menjadi harga numerik sesuai dengan karakter yang tertulis. Contoh : '0' 0 '8' 8 Spesifikasi : Fungsi KarakterToInteger : Domain : x :character ['0'..'9'] ) Range : integer [0..9] Proses : analisis kasus terhadap x, untuk setiap harga x diasosiasikan integer yang sesuai. 11

function KarakterToInteger (x:character[ 0.. 9 ]) integer [0..9] {diberikan x berupa karakter, menghasilkan harga integer yang sesuai dengan penulisan pada karakter} Kamus lokal: Algoritma: depend on (x) x = '0' : 0 x = '1' : 1 x = '2' : 2 x = '3' : 3 x = '4' : 4 x = '5' : 5 x = '6' : 6 x = '7' : 7 x = '8' : 8 x = '9' : 9 12

Fungsi IsAnA Persoalan : Tuliskanlah fungsi IsAnA yang mentest apakah sebuah karakter yang diberikan kepadanya adalah sebuah huruf 'A'. Harga yang dihasilkan adalah benar jika huruf itu 'A', salah jika huruf itu bukan 'A' Contoh : IsAnA('A') true IsAnA ('X' ) false IsAnA ('Y') false Spesifikasi : Fungsi IsAnA : Domain : x (karakter) Range : boolean Proses : menghasilkan true jika x adalah A, false jika tidak 13

function IsAnA (x:character) boolean {Menghasilkan true jika x adalah A ; dengan menuliskan ekspresi boolean } Kamus lokal: Algoritma: (x = A') Algoritma: if (x = 'A') then true else { x 'A' } false 14

Hitung m dan cm Persoalan : Tuliskanlah sebuah fungsi, yang jika diberikan sebuah angka Cm yang menyatakan panjang dalam cm, akan menghasilkan pasangan harga <x1, x2> sesuai dengan rumus ukuran metris (1 m = 100 cm).sehingga x1*100+x2 = Cm Contoh : F(100) = <1,0> F(355 ) = < 3, 55> Spesifikasi : Fungsi KonversiCm : Domain : Cm : integer Range : pasangan harga integer Proses : menghitung Meter dan SisaCm sehingga Cm = 100* Meter + SisaCm function KonversiCm (Cm : integer) < integer, integer> {diberikan cm, mengubahnya menjadi berapa meter dan cm} 15

function KonversiCm1 (Cm:integer) <integer, integer> {diberikan Cm, mengubahnya menjadi berapa meter dan cm } Kamus lokal: meter: integer { meter } sisacm: integer { sisa cm } Algoritma: meter Cm div 100 sisacm Cm mod 100 <meter, sisacm> function KonversiCm2 (Cm:integer) <integer, integer> {diberikan Cm, mengubahnya menjadi berapa meter dan cm } Kamus lokal: Algoritma: < Cm div 100, Cm mod 100 > 16

MAX2 dan MAX3 Tuliskan fungsi MAX2, yang menerima masukan dua buah bilangan real dan menghasilkan sebuah bilangan real yang merupakan bilangan terbesar Cth: MAX2(1,2) 2 Tuliskan fungsi MAX3 yang memanfaatkan fungsi MAX2. Fungsi MAX3 menerima input 3 bilangan real Cth: MAX3(10,2,3) 10 17

function MAX2 (a, b:real) real {diberikan a dan b, menghasilkan a jika a >= b, dan b jika b > a} Kamus lokal Algoritma if (a >= b) then a else b function MAX3 (a, b, c:real) real { diberikan a,b dan c, menghasilkan a jika a b dan a c, menghasilkan b jika b a dan b c, menghasilkan c jika c a dan c b } Kamus lokal Algoritma MAX2(MAX2(a,b),c) Algoritma MAX2(a,MAX2(b,c)) 18

Penanggalan & Nextday Input dan output merupakan type bentukan Didefinisikan sebuah type DATE yang memiliki informasi tanggal, bulan dan tahun Tuliskan algoritma untuk: membaca sebuah tanggal dan sebuah kode penulisan (1=Inggris, 2=Indonesia, 3=Perancis) Menuliskan tanggal keesokan harinya sesuai kode bahasa. Dalam bahasa Inggris, DATE ditulis dalam Bulan / Tanggal / Tahun. Dalam bahasa Indonesia, DATE ditulis dalam Tanggal - Bulan - Tahun. Dalam bahasa Perancis, DATE ditulis dalam Tanggal / Bulan / Tahun Proses menghitung hari esok dilakukan oleh sebuah fungsi NextDay yang menerima masukan sebuah tanggal dan menghasilkan tanggal keesokan harinya. Contoh pemanggilan dan hasil fungsi adalah NextDay(<13,4,1990>) <14,4,1990> NextDay(<31,12,1990>) <1,1,1991> 19

Program PENANGGALAN {diberikan input sebuah DATE dan kode penulisan, menghasilkan tanggal hari berikutnya sesuai format dari kode penulisan} Kamus lokal: type Tanggal: integer [1..31] type Bulan: integer [1..12] type Tahun: integer > 0 type DATE: <DD: Tanggal, MM: Bulan, YY: Tahun> HariIni, Esok: DATE KodeBahasa: integer [1..3] function NEXTDAY (Now: DATE) DATE {mengirimkan keesokan hari dari Now} Algoritma: input (HariIni, KodeBahasa) Esok NEXTDAY (HariIni) depend on KodeBahasa KodeBahasa = 1 : output(esok.mm, /,Esok.DD, /,Esok.YY) KodeBahasa = 2 : output(esok.dd,,esok.mm, -,Esok.YY) KodeBahasa = 3 : output(esok.dd, /,Esok.MM, /,Esok.YY) 20

Fungsi NEXTDAY Buatlah fungsi NEXTDAY dengan mengecek informasi bulan dari input DATE Bulan = 2 jumlah hari bisa 28 atau 29; gunakan fungsi ISKABISAT Bulan = 12 untuk tgl 31, hari keesokannya adalah tahun baru Bulan = 1, 3, 5, 7, 8, 10 jumlah hari adalah 31 Bulan = 4, 6, 9, 11 jumlah hari adalah 30 21

Translasi ke Pascal 22

Pendefinisian/Spesifikasi Fungsi (* function NAMAF (<list-parameter input>) <type hasil> *) function NAMAF (<list-parameter input>) : <type hasil> (* Spesifikasi fungsi: diberikan menghasilkan *) (* dalam bahasa Pascal standard, type hasil harus type primitif, *) (* atau untuk array diberi nama *) (* Kamus lokal: boleh mengandung VAR, TYPE, CONST *) VAR (* semua NAMA yang dipakai dalam algoritma/realisasi fungsi *) (* ALGORITMA *) begin {deretan instruksi algoritmik: pemberian harga, input, output, analisis kasus, pengulangan} {Pengiriman harga di akhir fungsi, harus sesuai dengan type hasil} NamaF := <ekspresi hasil> end; 23

Pemanggilan Fungsi (* Program POKOKPERSOALAN *) Program POKOKPERSOALAN; (* Spesifikasi: Input, Proses, Output *) (* KAMUS *) (* semua NAMA yang dipakai dalam program *) (* TYPE *) (* CONST *) (* VAR *) (* spesifikasi dan body fungsi langsung dituliskan di bagian ini *) (* ALGORITMA *) begin { deretan instruksi pemberian harga, input, output, analisis kasus, pengulangan yang memakai fungsi } { Harga yang dihasilkan fungsi juga dapat dipakai dalam ekspresi } nama := NAMAF (<list parameter aktual>) write(namaf (<list parameter aktual>) (* parameter aktual dapat berupa nilai, konstanta, ekspresi *) (* Harga yang dihasilkan fungsi juga dapat dipakai dalam ekspresi *) end. 24

Latihan Soal Pecahan (hal 75) Definisikan sebuah type pecahan yang terdiri dari pembilang dan penyebut bilangan integer, dan sekumpulan fungsi yang merupakan realisasi dari operator pecahan: JumlahP: menerima dua pecahan, menghasilkan jumlah berupa pecahan KurangP: menerima dua pecahan, menghasilkan selisih berupa pecahan KaliP: menerima dua buah pecahan, menghasilkan hasil kali berupa pecahan BagiP: menerima dua buah pecahan, menghasilkan hasil bagi berupa pecahan 25