Subprogram (dalambahasac++)

dokumen-dokumen yang mirip
Subprogram (dalam Bahasa C++ + Flowchart)

SUB PROGRAM P E N G A N TA R P R O G R A M S T U D I. Institut Teknologi Sumatera

LATIHAN SOAL (FUNGSI & PROSEDUR)

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

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

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

Pemrograman Prosedural FUNGSI (Subprogram) Tim Pengajar KU1071 Sem

Prosedur. Nisa ul Hafidhoh

STRUKTUR DASAR PEMROGRAMAN

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

StrukturDasarProgram Prosedural (dalambahasac++)

Algoritma dan Pemrograman PROSEDUR. Oleh: Eddy Prasetyo N

PERULANGAN P E N G A N TA R P R O G R A M S T U D I. Institut Teknologi Sumatera

RUBRIK PENILAIAN UJIAN TENGAH SEMESTER KU1072/PENGENALAN TEKNOLOGI INFORMASI B SEM /2014

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

ARRAY PENGANTAR PROGRAM STUDI. Institut Teknologi Sumatera

Spesifikasi: Ukuran: 14x21 cm Tebal: 225 hlm Harga: Rp Terbit pertama: Februari 2005 Sinopsis singkat:

PENGANTAR KOMPUTER & SOFTWARE II

PERTEMUAN V PEMROGRAMAN TERSTRUKTUR DENGAN VISUAL C Setiap bahasa C mempunyai satu fungsi dengan nama main (program utama).

UJIAN TENGAH SEMESTER KU1072/PENGENALAN TEKNOLOGI INFORMASI B SEM /2014

REVIEW ARRAY. Institut Teknologi Sumatera

Struktur Program. Rinta Kridalukmana

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

PEMROGRAMAN TERSTRUKTUR PERTEMUAN VI KOMPONEN KOMPONEN PEMROGRAMAN TERSTRUKTUR

MODUL PRAKTIKUM. MODUL I - VIII Modul penuntun dan bahan praktikum matakuliah algoritma dan pemograman

PROSEDUR/SUB RUTIN. Algoritma & Pemrograman. Pengampu : Agus Priyanto, M.Kom SEKOLAH TINGGI TEKNOLOGI TELEMATIKA TELKOM

ALGORTIMA DAN PEMROGRAMAN

AnalisisKasus/Percabangan (dalambahasac++)

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

Array (Tabel) [DalamBahasaC++]

BAB VIII SUB PROGRAM : Fungsi Tanpa Pengembalian Nilai

DASAR PEMROGRAMAN. Institut Teknologi Sumatera

Algoritma dan Pemrograman. Pertemuan Ke-11 Function

PERCABANGAN P E N G E N A L A N P R O G R A M S T U D I T E K N I K I N F O R M AT I K A. Institut Teknologi Sumatera

PENGANTAR KOMPUTER & SOFTWARE II. Array (Part II) Tim Pengajar KU Institut Teknologi Sumatera

Identifier dan Tipe Data

2 ATURAN PENULISAN TEKS ALGORITMA

Kurikulum Qt. Chapter 4 Function. Fungsi

Pengulangan/Looping (dalambahasac++)

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

FUNGSI DASAR PEMROGRAMAN

PENGANTAR KOMPUTER & SOFTWARE II PERCABANGAN

Prosedur merupakan modul program yang mengerjakan instruksi spesifik dan menghasilkan efek netto. Efek netto diketahui dengan membandingkan keadan awa

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

TIM ASISTEN PRAKTIKUM ALGORITMA DAN PEMROGRAMAN 2016

PROCEDURE DAN FUNCTION

Komentar, Identifier, Konstanta dan Variabel

Kisi-Kisi Ujian Tengah Semester Algoritma dan Pemrograman Lanjut

Matriks. Tim Pengajar KU1072. KU1072/Pengenalan Teknologi Informasi B Tahap Tahun Pertama Bersama Institut Teknologi Bandung

FUNGSI & PROSEDUR. Pertemuan ke-12 dan 13

PENGANTAR KOMPUTER & SOFTWARE II PERCABANGAN

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

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

Procedure. Pertemuan 10 Algoritma Pemrograman

PEMROGRAMAN BERORIENTASI OBJEK

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

Algoritma dan Pemrograman. Oleh: Eddy Prasetyo N

SUB PROGRAM (FUNGSI)

LatihanSoal 1 (dalambahasac++)

Minggu III STRUKTUR PEMILIHAN (KONTROL PROGRAM)

Konsep Dasar Pemrograman Dan Pengenalan C++

Fungsi. Nisa ul Hafidhoh

PROCEDURE DAN FUNCTION

Algoritma dan Pemrograman FUNGSI

Fungsi 1. Ekohariadi FT Unesa

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR

BAB III Pengenalan Tipe Data dan Bahasa Pemrograman C/C++

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

Bab 2. Dasar-Dasar Pemrograman C

Pemrograman Dasar C. Minggu 6

KU-1072 PENGENALAN TEKNOLOGI INFORMASI B (PTI B)

PROSEDUR DASAR PEMROGRAMAN

VI. FUNGSI. Fungsi Main ( ) Fungsi a ( ) Fungsi b ( ) Fungsi c ( ) Fungsi c1 ( ) Fungsi c2 ( ) Fungsi c3 ( ) Bentuk umumnya :

8.1 FUNGSI, DEKLARASI DAN DEFINISI NYA

Dasar-dasar C/C++ Ekohariadi FT Unesa

Dasar Pemrograman TIP FTP UB

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

FUNGSI. tipe Tipe nilai yang dihasilkan oleh fungsi. Jika tidak dinyatakan, hasil fungsi dianggap bilangan bulat (int)

Kurikulum Qt. { Basic OOP } Chapter 4. Function

SL 1201 Materi tentang Fungsi

Struktur Dasar Program Prosedural dan Disain Bagan Sederhana

Selection / Pemilihan PEMILIHAN

Algoritma Pemrograman

ALGORITMA (KOMPUTER) : ATURAN PENULISAN DAN STRUKTUR DASARNYA

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LABSHEET ALGORITMA DAN STRUKTUR DATA

Pengenalan C++ Oleh : Dewi Sartika

MODUL 10 Fungsi 10.1 Kompetensi 10.2 Alat Dan Bahan: 10.3 Ulasan Teori: Dasar Fungsi Deklarasi Fungsi

ALGORITMA DAN STRUKTUR DATA 1

Fungsi : Dasar Fungsi

Scope Variable. Sebuah variabel di dalam sebuah fungsi memiliki jangkauan tertentu. Skop variabel terdiri dari:

MODUL V POINTER DAN STRING

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

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

SUB PROGRAM : PROSEDUR & FUNGSI. Konsep Pemrograman

Instalasi Code::Blocks, Tipe Data, Variabel, Konstanta, Operator, Input-Output dan Flowchart

MODUL ALGORITMA DAN PEMROGRAMAN. STMIK AMIKOM Yogyakarta. Rajif Agung Yunmar, S.Kom., M.Cs.


Fungsi 2. Ekohariadi FT Unesa

Pertemuan 4 ELEMEN-ELEMEN BAHASA PEMROGRAMAN

Keg. Pembelajaran 2 : Mengenal Bahasa C++

Transkripsi:

Subprogram (dalambahasac++) Tim Penyusun Materi PTI-B KU1072/Pengenalan Teknologi Informasi B Tahap Tahun Pertama Bersama Institut Teknologi Bandung

Tujuan Mahasiswa memahami makna dan kegunaan subprogram dalam bentuk fungsi dan prosedur Mahasiswa dapat menggunakan notasi fungsi dan prosedur dengan benar dan menggunakannya dlam program Mahasiswa dapat membuat program dengan menggunakan fungsi dan prosedur 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 2

Contoh-1 #include <iostream> using namespace std; int main() { string str1, str2; str1 = "Maya"; cout << "Hello " << str1 << endl; cout << "Hello " << "Joko" << endl; cin >> str2; cout << "Hello " << str2 << endl; return 0; 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 3

Contoh-1 #include <iostream> using namespace std; int main() { string str1, str2; DIGANTI DENGAN SUBPROGRAM (PROSEDUR) str1 = "Maya"; CetakHello(str1); cout << "Hello " << str1 << endl; CetakHello("Joko"); cout << "Hello " << "Joko" << endl; cin >> str2; CetakHello(str2); cout << "Hello " << str2 << endl; return 0; 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 4

Contoh-2 #include <iostream> using namespace std; int main() { const float PI = 3.14; float L, r, fx, x; r1 = 10; L = PI * r1 * r1; x = 10; fx = x * x; return 0; 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 5

Contoh-2 #include <iostream> using namespace std; int main() { const float PI = 3.14; float L, r, fx, x; DIGANTI DENGAN SUBPROGRAM (FUNGSI) r1 = 10; L = PI * r1 FxKuadrat(r1); * r1; x = 10; fx = FxKuadrat(x); x * x; return 0; 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 6

APA GUNANYA?? 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 7

ATM-SS Sebuah mesin ATM Super Sederhana(ATM-SS) milik BSSJ (Bank Super SederhanaJuga) memilikicash dispenser yang digunakan untuk menampung uang ATM-SS hanya dapat digunakan untuk memasukkan uang ke dalam cash dispenser, menarik uang dari cash dispenser tersebut, dan menampilkan sisa uang yang ada di cash dispenser Untuk mengakses ATM-SS, pengguna harus memasukkanpin. Pin yang valid adalahnilaiinteger diantara101 dan1000. Jikapin tidakvalid, maka program langsung selesai. 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 8

ATM-SS Jika pin valid, pengguna dapat memilih beberapa menu sbb: Jikamemasukkanmenu huruf A atau a : memasukkan sejumlah uang ke cash dispenser Jikamemasukkanmenu huruf B atau b : menarik sejumlah uang dari cash dispenser Jika memasukkan menu huruf C atau c : menampilkan jumlah uang yang ada di cash dispenser Jikamemasukkanmenu huruf X atau x : keluardari program Jika memasukkan huruf lain, program akan menampilkan pesan Bukan pilihan menu yang benar 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 9

Start Input pin Amati kode programnya!! Ada banyak bagian yang berulang bukan??? tidak valid Tampil pesan akses tidak valid Pin valid? valid Tampil menu Input menu X atau x Cek menu A a B b C Entri uang Entri uang Tarik uang Tarik uang Cek Sisa Tampil menu Input menu c Cek Sisa End lainnya Tampil pesan menu salah 10

Kodeyang berulang Semakin besar program, akan semakin banyak bagian kode yang berulang Sangat tidak efisien jika bagian kode yang sama/serupa diketik berulang-ulang atau bahkan termasuk kalau dicopy paste Di samping itu, dalam banyak persoalan, ada berbagai rumus/formula yang berulang-ulang dipakai dalam satu program Bagaimana jika ada cara supaya bagian kode tersebut tidak perlu diketik berulang-ulang, tapi tetap dapat digunakan berkali-kali dalam program yang sama 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 11

Subprogram A set of instructions designed to perform a frequently used operation within a program 2 (dua) jenis subprogram: Fungsi Prosedur 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 12

FUNGSI 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 13

Definisi Fungsi Fungsi adalah sebuah transformasi akibat pemetaan suatunilai(daridomain) kenilailain (dalamrange) sama seperti di matematika Fungsimempunyainamadansekelompokparameter formal (harga masukan yang diberi nama dan dijelaskan type-nya) serta memiliki hasil(dalam suatu type tertentu pula) Fungsi harus didefinisikan terlebih dahulu supaya dapat digunakan dalam bagian ALGORITMA program 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 14

TahapanMemanfaatkanFungsi 1. Mendefinisikan fungsi Memberikan nama Mendefinisikan parameter formal (parameter input) Mendefinisikan type hasil 2. Merealisasikan fungsi Membuat algoritma fungsi: memroses input hasil 3. Menggunakan fungsi dalam program utama Memanggil fungsi dengan menggunakan parameter aktual 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 15

Contoh Fungsi Fungsibernamaf(x) memilikisatuparameterx didefinisikansebagaif(x) = x 2 + 3x -5 jikadiberihargax = 4 makaf(x) akanmenghasilkan23 jikadiberihargax = 1 makaf(x) akanmenghasilkan-1 Fungsif(x,y) memilikiduaparameter xdany, didefinisikansebagaif(x,y) = x 2 + 3xy 5y 1 jikadiberihargax = 0 dany = 0 makaf(x,y) akan menghasilkan-1 jikadiberihargax = 1 dany = 0 makaf(x,y) akan menghasilkan 0 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 16

Mendefinisikanfungsi(1) List parameter input/ parameter formal Parameter input boleh ada, boleh kosong type_hasil nama_fungsi ( [type_parameter1 nm_parameter1, type_parameter2 nm_parameter2,... type_parametern nm_parametern]); //Jelaskan spesifikasi fungsi int fxkuadrat (int x); //Menghasilkan x * x + 3 * x - 5 Nama fungsi: fxkuadrat Parameter masukan: 1 buah, yaitux dengantype int Hasil: bertype int 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 17

MendefinisikanFungsi(2) Parameter input boleh tidak ada(kosong) Fungsi tidak membutuhkan apa-apa dari pemakainya untuk menghasilkan harga Jika list parameter input (parameter FORMAL) ada (tidak kosong, minimal satu nama), maka merupakan satu atau beberapa nama beserta type-nya Fungsi harus menghasilkan suatu harga Harga yang dihasilkan oleh fungsi harus memiliki suatu type tertentu 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 18

MerealisasikanFungsi type-hasil nama_fungsi ( [type-parameter1 nm-parameter1, type-parameter2 nm-parameter2,... type-parametern nm-parametern] ); // Jelaskan spesifikasi fungsi { // KAMUS LOKAL // Deklarasikan semua NAMA yang dipakai dalam algoritma // fungsi // ALGORITMA // Deretan teks algoritma : // pemberian harga, analisa kasus, pengulangan, dll. // Pengiriman harga di akhir fungsi, harus sesuai dengan // type hasil, caranya adalah: return (hasil); 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 19

ContohRealisasiFungsi int fxkuadrat (int x) //Menghasilkan x * x + 3 * x 5 { //KAMUS LOKAL //tidak ada nama lokal yang perlu dideklarasikan //ALGORITMA return (x * x + 3 * x - 5); 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 20

ContohRealisasiFungsi-Alternatif int fxkuadrat (int x) //Menghasilkan x * x + 3 * x 5 { //KAMUS LOKAL int hasil; //ALGORITMA hasil = x * x + 3 * x 5; return (hasil); Variable hasil hanya dikenal di dalam fungsi fxkuadrat, tidak dibagianprogram yang lain 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 21

//Judul dan spesifikasi program #include <iostream> using namespace std; Kodefungsidalamprogram DEKLARASI FUNGSI // PROGRAM UTAMA int main () { PEMAKAIAN FUNGSI return 0; REALISASI FUNGSI DalamREALISASI FUNGSI bisa terdapat pemakaian fungsi lan 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 22

//Judul dan spesifikasi program #include <iostream> using namespace std; // DEKLARASI FUNGSI int fxkuadrat (int x); //Menghasilkan x * x + 3 * x - 5 // PROGRAM UTAMA int main () { // KAMUS int x, p, hasil; // ALGORITMA CONTOH OUTPUT: 13 45 125 x = 3; hasil = fxkuadrat(x); p = 10 + fxkuadrat(5); cout << hasil << " " << p << " " << fxkuadrat(10) << endl; return 0; //REALISASI FUNGSI int fxkuadrat (int x) //Menghasilkan x * x + 3 * x 5 { //KAMUS LOKAL //ALGORITMA return (x * x + 3 * x - 5); 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 23

//Judul dan spesifikasi program #include <iostream> using namespace std; // DEKLARASI FUNGSI int fxkuadrat (int x); //Menghasilkan x * x + 3 * x - 5 Fungsi selalu dipanggil pada ruas kanan dari suatu ekspresi Semuanilai(termasukvariable) yang // int PROGRAM main UTAMA () { digunakan dlam pemanggilan fungsi int main ()// { KAMUS disebut sebagai parameter AKTUAL // KAMUS int x, p, hasil; int x, p, hasil; // // ALGORITMA ALGORITMA x = x 3; = 3; hasil hasil = = fxkuadrat(x); p = p 10 = + 10 fxkuadrat(5); + fxkuadrat(hasil); cout cout << hasil << hasil << p << fxkuadrat(10) p << fxkuadrat(10) << endl; << endl; return 0; return 0; //REALISASI FUNGSI int fxkuadrat (int x) Pemanggilan fungsi dapat menjadi //Menghasilkan x * x + 3 * x 5 bagian dari ekspresi dengan hasil { //KAMUS LOKAL yang harus sesuai dengan type hasil //ALGORITMA fungsi return (x * x + 3 * x - 5); 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 24

PemanggilanFungsi Fungsi hanya dapat dipakai sebagai bagian ekspresi bukan merupakan suatu instruksi yang dipanggil independen Dalam ekspresi, fungsi hanya dapat diletakkan di ruas kanan Saatpemanggilanterjadikorespondensiantaraparameter input (formal) dengan parameter aktual sesuai dengan urutan penulisan dalam list-nama parameter input 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 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 25

Contoh1: FungsiKonversi 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 Berikan contoh pemakaian 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. 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 26

int KarakterToInteger (char x) { // diberikan x berupa karakter, menghasilkan harga integer yang // sesuai dengan penulisan pada karakter //Algoritma switch(x) { case '0' : return 0; case '1' : return 1; case '2' : return 2; case '3' : return 3; case '4' : return 4; case '5' : return 5; case '6' : return 6; case '7' : return 7; case '8' : return 8; case '9' : return 9; 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 27

#include <iostream> using namespace std; int KarakterToInteger (char x); // diberikan x berupa karakter, menghasilkan harga integer yang // sesuai dengan penulisan pada karakter int main () { //KAMUS char x; int y; //ALGORITMA cin >> x; y = KarakterToInteger(x); cout << y+1 << endl; return 0; // Realisasi KarakterToInteger... 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 28

Contoh2: MAX2 danmax3 Tuliskan fungsi MAX2, yang menerima masukan dua buah bilangan integer dan menghasilkan bilangan terbesar Contoh: MAX2(1,2) 2 Tuliskan fungsi MAX3 yang memanfaatkan fungsi MAX2. Fungsi MAX3 menerima input 3 bilangan integer dan menghasilkan bilangan terbesar Contoh: MAX3(10,2,3) 10 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 29

int Max2 (int a1, int b1) { // diberikan a1 dan b1, menghasilkan a1 jika a1 >= b1, // dan b1 jika b1 > a1 //Algoritma if (a1 >= b1) { return a1; else { // a1 < b1 return b1; int Max3 (int a, int b, int c) { // 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 //Algoritma return Max2(Max2(a,b),c); 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 30

PROSEDUR 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 31

Prosedurvs. Fungsi MenghitungTegangan(V) denganrumusr * A int HITUNG_V (int R1, int A1) { // menghasilkan tegangan sebagai hasil kali R dan A // Algoritma return (R1 * A1); FUNGSI void HITUNG_V (int R1, int A1, int * V1) { // Prosedur untuk memproses tahanan & arus menjadi tegangan // I.S: R1 dan A1 telah terdefinisi // F.S: V1 terdefinisi dengan rumus V1=R1*A1 // Algoritma *V1 = R1 * A1; PROSEDUR AP/KU1071 32

DefinisiProsedur Proseduradalahsederetaninstruksialgoritmikyang diberinama, danakanmenghasilkanefeknettoyang terdefinisi Mendefinisikan prosedur berarti: menentukan nama prosedur serta parameternya(jika ada) Mendefinisikan keadaan awal(initial state/is) dan keadaan akhir(final state/fs) Cara penulisan spesifikasi prosedur diberi nama dan parameter formal(jika ada), yang diberi nama dan dijelaskan typenya AP/KU1071 33

TahapanMemanfaatkanProsedur 1. Mendefinisikan prosedur Memberikan nama Mendefinisikanparameter formal (parameter input, output, input/output) Mendefinisikan initial state (I.S.) dan final state (F.S.) 2. Merealisasikan prosedur Membuat algoritma prosedur memroses agar I.S. dapat berubah menjadi F.S. 3. Menggunakan prosedur dalam program utama Memanggilprosedurdenganmenggunakanparameter aktual 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 34

MendefinisikanProsedur(1) Pada dasarnya adalah fungsi yang menghasilkan void parameter formal void nama_procedure ( [type_parameter1 nm_parameter1, type_parameter2 nm_parameter2,... type_parametern nm_parametern]); //Jelaskan spesifikasi prosedur CONTOH DEFINISI void HITUNG_V (int R1, int A1, int * V1); // Prosedur untuk memproses tahanan & arus menjadi // tegangan // I.S: R1 dan A1 telah terdefinisi // F.S: V1 terdefinisi dengan rumus V1=R1*A1 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 35

MerealisasikanProsedur void nama_prosedur ( [type-parameter1 nm-parameter1, type-parameter2 nm-parameter2,... type-parametern nm-parametern] ); // Jelaskan spesifikasi prosedur { // KAMUS LOKAL // Deklarasikan semua NAMA yang dipakai dalam algoritma // prosedur // ALGORITMA // deretan instruksi pemberian harga, input, output, // analisa kasus, pengulangan, pemanggilan fungsi dan // prosedur TIDAK ADA RETURN DALAM PROSEDUR 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 36

ContohRealisasiProsedur void HITUNG_V (int R1, int A1, int * V1) { // Prosedur untuk memproses tahanan & arus menjadi tegangan // I.S: R1 dan A1 telah terdefinisi // F.S: V1 terdefinisi dengan rumus V1=R1*A1 // Algoritma *V1 = R1 * A1; 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 37

PemanggilanProsedur Sebuah prosedur yang terdefinisi disimpan di tempat lain, dan ketika dipanggil dengan menyebutkannamanya seakan-akan teksyang tersimpan di tempat lain itu menggantikan teks pemanggilan Dengan konsep ini, maka I.S. dan F.S. dari prosedurlahyang menjaminbahwaeksekusiprogram akan menghasilkan efek netto yang diharapkan AP/KU1071 38

Kodeprosedurdalamprogram //Judul dan spesifikasi program #include <iostream> using namespace std; DEKLARASI PROSEDUR // PROGRAM UTAMA int main () { PEMAKAIAN PROSEDUR return 0; REALISASI PROSEDUR 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 39

//Judul dan spesifikasi program #include <iostream> using namespace std; // DEKLARASI PROSEDUR void HITUNG_V (int R1, int A1, int * V1); // Prosedur untuk memproses tahanan & arus menjadi tegangan // I.S: R1 dan A1 telah terdefinisi // F.S: V1 terdefinisi dengan rumus V1=R1*A1 // PROGRAM UTAMA int main () { // KAMUS int r, a, vhasil; // ALGORITMA cin >> r; cin >> a; HITUNG_V(r, a, &vhasil); cout << vhasil << endl; return 0; // REALISASI PROSEDUR void HITUNG_V (int R1, int A1, int * V1) { // Algoritma *V1 = R1 * A1; CONTOH 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 40

//Judul dan spesifikasi program #include <iostream> using namespace std; // DEKLARASI PROSEDUR Semuanilai(termasukvariable) yang void HITUNG_V (int R1, int A1, int * V1); digunakan dlam pemanggilan fungsi // Prosedur untuk memproses tahanan & arus disebut menjadi sebagaitegangan parameter AKTUAL // I.S: R1 dan A1 telah terdefinisi // F.S: V1 terdefinisi dengan rumus V1=R1*A1 // PROGRAM UTAMA int main () (){ { // KAMUS intr, r, a, a, vhasil; ALGORITMA // ALGORITMA cin >> r; cin >> a; HITUNG_V(r, cin >> r; a, cin &vhasil); >> a; cout HITUNG_V(r, << vhasil a, << &vhasil); endl; return cout << 0; vhasil << endl; return 0; // REALISASI PROSEDUR void HITUNG_V (int R1, int A1, int * V1) { // Algoritma *V1 = R1 * A1; // KAMUS Prosedur selalu dipanggil sebagai sebuah instruksi tersendiri 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 41

Parameter Formal Nama parameter yang dituliskan pada definisi/spesifikasi prosedur Daftar parameter formal void HITUNG_V (int R1, int A1, int * V1); // Prosedur untuk memproses tahanan & arus menjadi // tegangan // I.S: R1 dan A1 telah terdefinisi // F.S: V1 terdefinisi dengan rumus V1=R1*A1 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 42

Parameter formal Jenis-jenis parameter formal: Parameter Input: parameter yang diperlukan prosedur sebagai masukan untuk melakukan aksi yang efektif passing parameter by value Parameter Output: parameter yang nilainya akan dihasilkanolehprosedur passing parameter by reference Parameter Input/Output: parameter yang nilainya diperlukan prosedur sebagai masukan untuk melakukan aksi, danpadaakhirprosedurakandihasilkannilaiyang baru passing parameter by reference 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 43

Parameter Aktual Parameter Aktual: nama-namainformasiyang dipakai ketika prosedur itu dipakai( dipanggil ). Parameter aktual dapat berupa nama atau harga, tetapi harus berupa nama jika parameter tersebut adalah parameter output (karena hasilnya akan disimpan dalam nama tersebut) Pada saat pemanggilan prosedur terjadi asosiasi antara parameter formal dengan parameter aktual Asosiasi dilakukan dengan cara by position, urutan nama parameter aktual akan diasosiasikan sesuai dengan urutan parameter formal. Karena itu, type harus kompatibel. AP/KU1071 44

Parameter input Passing parameter by value R1 dana1 adalah parameter input; dipass by value NilaiR1 dana1 sebelum dan sesudah prosedur dijalankan adalah tetap void HITUNG_V (int R1, int A1, int * V1) { // Prosedur untuk memproses tahanan & arus menjadi tegangan // I.S: R1 dan A1 telah terdefinisi // F.S: V1 terdefinisi dengan rumus V1=R1*A1 // Algoritma *V1 = R1 * A1; Penandaparameter yang di-pass by value: antaratype dannamaparameter tidakadasimbolyang lain 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 45

Parameter input Passing parameter by value Parameter yang di-pass by value: Parameter formal: antara type dan nama parameter diberi tidakadasimbolapapun Parameter aktual: Harus sudah terdefinisi nilainya, sebelum dipanggil dengan prosedur Nilainya tidak berubah sebelum dan sesudah digunakan dalam prosedur 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 46

//Judul dan spesifikasi program #include <iostream> using namespace std; // DEKLARASI PROSEDUR void HITUNG_V (int R1, int A1, int * V1); //... // PROGRAM UTAMA int main () { // KAMUS int r, a, vhasil; // ALGORITMA CONTOH Nilair dana sebelumdan sesudah pemanggilan prosedur adalah sama cin >> r; cin >> a; cout << r << << a << endl; // 1. sebelum pemanggilan HITUNG_V(r, a, &vhasil); cout << r << << a << endl; // 2. sesudah pemanggilan cout << hasil << endl; return 0; // REALISASI PROSEDUR void HITUNG_V (int R1, int A1, int * V1) {... 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 47

Parameter output atauinput/output Passing parameter by reference V1 adalahparameter output;di-pass by reference Nilai V1 sebelum dan sesudah prosedur dijalankan dapat berubah void HITUNG_V (int R1, int A1, int * V1) { // Prosedur untuk memproses tahanan & arus menjadi tegangan // I.S: R1 dan A1 telah terdefinisi // F.S: V1 terdefinisi dengan rumus V1=R1*A1 // Algoritma *V1 = R1 * A1; Penandaparameter yang di-pass by reference: antara type dan nama parameter ada simbol asterisk *; dalam algoritma tetap dipakai 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 48

Parameter output atauinput/output Passing parameter by reference Parameter yang di-pass by reference: Parameter formal: antara type dan nama parameter diberi tanda asterisk * digunakan pada algoritma Parameter aktual: Jika dipakai hanya sebagai output: nilai parameter aktual tidak harus terdefinisi Jikadipakaisebagaiinput dansekaligusoutput: nilaiparameter aktual harus didefinisikan terlebih dahulu Pemanggilan parameter aktual: menggunakan tanda& sebelum nama parameter 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 49

//Judul dan spesifikasi program #include <iostream> using namespace std; // DEKLARASI PROSEDUR void HITUNG_V (int R1, int A1, int * V1); //... // PROGRAM UTAMA int main () { // KAMUS int r, a, vhasil; CONTOH Sebelum pemanggilan prosedur, vhasil tidak terdefinisi. Sesudah pemanggilanprosedur, vhasilterdefinisinilainya. // ALGORITMA cin >> r; cin >> a; // cout << vhasil << endl; // 1. sebelum pemanggilan, illegal!! HITUNG_V(r, a, &vhasil); cout << hasil << endl; // 2. sesudah pemanggilan return 0; // REALISASI PROSEDUR void HITUNG_V (int R1, int A1, int * V1) {... 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 50

Contoh1: Hello, X Buatlah sebuah prosedur yang menerima sebuah string, misalnya str, dan menghasilkan tampilan: Hello, str Buatlah contoh pemakaiannya di program utama 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 51

#include <iostream> using namespace std; void CetakHello(string s) { //Menerima s dan //mencetak "Hello, s" ke layar //I.S.: s terdefinisi //F.S.: tercetak "Hello, s" di //layar //Algoritma cout << "Hello " << s << endl; s adalah parameter input, passed by value void CetakHello(string s);... int main() { string str1, str2, str3; str1 = "Maya"; CetakHello(str1); CetakHello("Joko"); cin >> str3; CetakHello(str3); return 0; //Realisasi Prosedur void CetakHello(string s) {... 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 52

Contoh2: ProsedurTUKAR Buatlahproseduruntukmenukarduahargayang disimpandalamduanamaa danb Initial State (I.S.) : diberikannilaiinteger a = A danb = B Final State (F.S.) : a = B danb = A AP/KU1071 53

void Tukar(int * a, int * b) { //I.S.: a, b terdefinisi //F.S.: nilai a dan b ditukar //Kamus Lokal int temp; //Algoritma temp = *a; *a = *b; *b = temp; adanbadalahcontoh parameter input / output; dipass by reference Nilai a dan b harus terdefinisi terlebih dahulu, tetapi diubah dalam program Contoh pemakaian namanama secara lokal temp hanya dikenal di prosedur Tukar 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 54

Contoh3: Putar3 Bilangan DenganmemanfaatkanprosedurTukardicontoh2, buatlah sebuah program utama yang digunakan untukmemutar3 buahbilangan, misalnyaa=a, B=b, C=c sehinggaa=c, B=a, C=b Ketiga bilangan dibaca dari keyboard Contoh: A = 3; B = 2; C = 1 ditukar menjadi: A = 1; B = 3; C = 2 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 55

#include <iostream> using namespace std; void Tukar(int * a, int * b);... int main () { //Kamus int a1, b1, c1; //Algoritma cin >> a1 >> b1 >> c1; cout << "Sebelum ditukar : " << endl; cout << "a = " << a1 << "; b = " << b1 << "; c = " << c1 << endl; Tukar(&a1, &b1); Tukar(&a1, &c1); cout << "Sesudah ditukar : " << endl; cout << "a = " << a1 << "; b = " << b1 << "; c = " << c1 << endl; return 0; // Realisasi Prosedur... 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 56

LATIHAN SOAL 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 57

Soal-1a: Diketahui fungsi CiriBilangan seperti di samping: int CiriBilangan(int bil) { // Menghasilkan: // 0 : jika bil adalah 0 // 1 : jika bil adalah positif // -1 : jika bil adalah negatif //Kamus Lokal int hasil; //Algoritma if (a == 0) { hasil = 0; else if (bil > 0) { hasil = 1; else { // bil < 0 hasil = -1; return hasil; 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 58

Soal-1b: Apakah hasil dari potongan program berikut? int X = 0; cout << CiriBilangan(X) << endl; 0 cout << CiriBilangan(1000) << endl; 1 int bil, c; bil = -222; c = CiriBilangan(bil); cout << c << endl; -1 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 59

Soal2 Buatlah sebuah fungsi yang digunakan untuk menerimasebuahbilanganriil(float) yang merupakan jari-jari sebuah lingkaran dan menghasilkan luas lingkaran berdasarkan jari-jari tersebut 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 60

AlternatifSolusiSoal-2: float LuasLingkaran (float r) { // Menghasilkan luas lingkaran berdasarkan r (radius) //Kamus Lokal const float PI = 3.14; //Algoritma return PI * r * r; Konstanta PI hanya dikenal di dalam prosedur LuasLingkaran 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 61

Soal-3 Bagaimana jika Anda harus membuat 2 buah fungsi dari masukan jari-jari: Menghitung keliling lingkaran Menghitung luas lingkaran Bagaimana agar konstanta PI tidak perlu didefinisikan berulang-ulang di setiap fungsi? 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 62

#include <iostream> using namespace std; //Konstanta Global const float PI = 3.14; Konstanta dideklarasikan global, sehingga bisa digunakan oleh blok program manapun termasuk fungsi/prosedur //Spesifikasi Fungsi dan Prosedur float KelLingkaran(float r); //Menghitung keliling lingkaran float LuasLingkaran(float r); //Menghitung luas lingkaran //PROGRAM UTAMA int main () { //Kamus... //Algoritma... return 0; // Realisasi Fungsi dan Prosedur float KelLingkaran(float r) {... float LuasLingkaran(float r) {... 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 63

Implementasikan sebuah prosedur yang digunakan untuk: Soal-4 MembacasejumlahN bilanganinteger darikeyboard N merupakan parameter input untuk prosedur diasumsikan N > 0 Menghasilkan penjumlahan seluruh bilangan yang dimasukkan menjadi parameter output Definisi dari prosedur tersebut adalah sebagai berikut: void BacaDanJumlahBil (int N, int * Sum); // Membaca N bilangan integer dari keyboard dan menghasilkan // Sum yang merupakan jumlah dari seluruh bilangan yang // dimasukkan // I.S. : N terdefinisi, N > 0 // F.S. : Sum merupakan jumlah N bilangan 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 64

AlternatifSolusiSoal4 void BacaDanJumlahBil (int N, int * Sum) { // Membaca N bilangan integer dari keyboard dan menghasilkan Sum // yang merupakan jumlah dari seluruh bilangan yang dimasukkan // I.S. : N terdefinisi, N > 0 // F.S. : Sum merupakan jumlah N bilangan // KAMUS LOKAL int x, i; // ALGORITMA *Sum = 0; for (i = 1; i <= N; i++) { cin >> x; *Sum = *Sum + x; 03/10/2013 KU1072/Pengenalan Teknologi Informasi B 65