Konsep Pemrograman Function.

Slides:



Advertisements
Presentasi serupa
PROCEDURE Temu IX BANGHER.
Advertisements

Fungsi Konsep Pemrograman.
Pemrograman Terstruktur
Pemrogramman Terstruktur
POINTER.
Bahasa Pemrograman Lanjutan
PERTEMUAN IV POINTER Pointer adalah suatu variabel penunjuk yang menunjuk pada suatu alamat memori komputer Pointer merupakan.
Algoritma dan Struktur Data
Fungsi (2) Dr. Anto Satriyo Nugroho, M.Eng Web:
PROCEDURE  PROCEDURE   Prosedur diawali dengan kata cadangan Procedure di dalam bagian deklarasi prosedur. Prosedur dipanggil dan digunakan di dalam blok.
KONSEP BAHASA PEMROGRAMAN
DASAR-DASAR PEMROGRAMAN C
Silahkan Salin Jawaban Anda DiKertas Sertakan : NIM. : Nama. : Kelas
FUNGSI Deklarasi dan Definisi fungsi Void dan Non-void Fungsi main.
STRUKTUR DATA (5) Pointer dan Function
DASAR-DASAR PEMROGRAMAN
Pointer. Output? #include int x = 2; void misteri(int a, int b) { a = 2*x; b = y; y = a; } main() { int y; x = 5; y = 7; misteri(x, y); printf("%d %d\n",
Pointer.
Fungsi, Parameter, Rekursi Daniel Riano Kaparang Book reference: Jogiyanto. Konsep Dasar Pemrograman Bahasa C. Andi Star. Yogyakarta Kristanto Andri.
Pointer dan Reference (Bab 6).
Parameter formal adalah variabel yang ada pada daftar parameter dalam
Modul 11 – Hendi Hermawan - 1
RECORD.
Pemrograman Terstruktur
INSTRUKSI MASUKAN DAN KELUARAN
3 Variabel, Konstanta Tipe Data dan dalam Bahasa C/C++ Java dan Bab
Struktur Data Universitas PGRI Ronggolawe
1 Pointer wijanarto. 2 Topik Introduction to Pointers Pointers dan Parameter Fungsi.
Prosedur (Procedure).
BAB IV SUB PROGRAM DAN FUNGSI
Algoritma & Struktur Data Pointer Evangs Mailoa.
Review-Dasar Pemrograman Komputer
Fungsi Lecture 7. Motivation Complexity of programming problem  more difficult to consider the solution as a whole  clue: dividing the problem into.
Struktur data selain array : Structure, Union, Enumeration
Elemen Dasar Program C++
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 DPK Issa Arwani, S.kom, M.sc.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA
FUNGSI.
STRUKTUR DATA (5) Pointer dan Function
Alokasi Memori Yuliana Setiowati.
POINTER (VAR.PENUNJUK)
STRUKTUR DATA Pointer dan Function
Function User Function.
Pemrograman Berorientasi Obyek1 Sub Pokok Bahasan Pointer. Reference. Function Passing Parameter by Value, by Reference, by Pointer.
Rahmat D. R. Dako, ST, M.Eng.  Modul  void main (void)  Modul  fungsi = function  Keuntungan penggunaan Fungsi atau modul :  Program menjadi lebih.
Konsep Pemrograman Politeknik Elektronika Negeri Surabaya 2006
Pointer (Part 1).
1 Pertemuan Fungsi Matakuliah: T0016 / Algoritma dan Pemrograman Tahun: 2007 Versi: 6.
1. Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu :  Mendemonstrasikan penggunaan fungsi serta pengiriman parameter 2.
Prosedur dan Fungsi Triana Elizabeth, S.Kom.
FUNGSI.
Sub Program Materi 8.
Tujuan Instruksional Mahasiswa memahami konsep fungsi
FUNCTION Fungsi (Function) merupakan sekumpulan instruksi yang membentuk satu unit serta memiliki nama. Fungsi digunakan.
FUNGSI.
FUNGSI.
Pengantar C++.
Elemen Dasar C Identifier :
Prosedur dalam C++.
Pointer TEE 2103 Algoritma dan Pemrograman Dosen: Abdillah, MIT
FUNCTION Fungsi (Function) merupakan sekumpulan instruksi yang membentuk satu unit serta memiliki nama. Fungsi digunakan.
As’ad Djamalilleil Function (Fungsi) As’ad Djamalilleil
Fungsi, Parameter & Rekursi
QUIS Algoritma Pemrograman I
Algoritma dan Pemrograman
Algoritma dan Struktur Data
TPI4202 e-tp.ub.ac.id Modular Design Lecture 7.
VARIABEL DAN TIPE DATA Erizal, S.Si, M.Kom Sistem Informasi
FUNGSI II.
Algoritme dan Pemrograman
Transcript presentasi:

Konsep Pemrograman Function

MODULARITAS Program panjang dibagi atas function-function Modularity pengembangan program dapat dilakukan secara bertahap, modul per modul, function per function. Readibility program dipecah menjadi sejumlah function, masing-masing function lebih mudah dipahami alur logikanya daripada alur logika sebuah program panjang. Code reuse function yang sudah jadi dan benar dapat digunakan oleh program lain. Function-function dapat dikumpulkan di dalam sebuah perpustakaan function. Function

VARIABEL LOKAL dan GLOBAL Berdasarkan lokasi deklarasi Variabel lokal Dideklarasi di dalam blok function Hanya bisa digunakan di dalam blok tsb Tidak diinisialisasi dengan nilai awal Baru eksis ketika blok tersebut aktif Didisalokasi ketika blok berakhir Variabel global Disebut juga variabel eksternal Dideklarasi di luar function Eksis mulai dari posisi deklarasi Diinisialisasi dengan nilai nol Function

VARIABEL LOKAL dan GLOBAL int main() { int a, b = 10; printf("1: %d %d\n", a, b); printf("nilai a ? "); scanf("%d", &a); printf("2: %d\n", a); { int a = 50; printf("3: %d\n", a); a = a * 2; printf("4: %d\n", a); b = b * 2; printf("5: %d\n", b); } printf("6: %d\n", a); a += 5; printf("7: %d\n", a); return 0; var. lokal 1: 2 10 nilai a ? 30 2: 30 3: 50 4: 100 5: 20 6: 30 7: 35 var. lokal Function

VARIABEL LOKAL dan GLOBAL # include <stdio.h> int i; char c; float f; int main() { printf("%d %d %f\n", i, c, f); i = 10; printf("1: %d\n", i); { int i; printf("nilai i ? "); scanf("%d", &i); printf("2: %d\n", i); } printf("3: %d\n", i); return 0; var. global 0 0 0.000000 1: 10 nilai i ? 25 2: 25 3: 10 Function

VARIABEL POINTER Variabel pointer Berisi alamat memori komputer atau alamat memori variabel Di alamat tersebut terdapat data Variabel pointer yang tidak mengacu alamat diberi nilai NULL Dideklarasi dengan simbol * Dimanipulasi dengan operator & address of mengembalikan alamat memori operan * content of R-value: mengambil nilai di lokasi memori L-value: menyimpan nilai ke lokasi memori Function

VARIABEL POINTER Letak simbol * menempel di kiri nama variabel pointer  Deklarasi variabel pointer int *pi; float *pf; char *ps; Letak simbol * menempel di kiri nama variabel pointer di antara tipe data dan variabel pointer menempel di kanan tipe data Function

VARIABEL POINTER int *pi, bulat; float *pf, pecah; bulat = 10; Function

MANIPULASI DATA MELALUI POINTER int main () { int *pi, bulat; float *pf, pecah; printf("bulat dan pecah : "); scanf("%d %f", &bulat, &pecah); pi = &bulat; pf = &pecah; printf("%d %.1f\n", *pi, *pf); *pi = *pi * 2; *pf = *pf + 5; printf("%d %.1f\n", bulat, pecah); return 0; } bulat dan pecah : 10 20 10 20.0 20 25.0 Function

MEMORI ILEGAL { int *p; *p = 888; } Variabel p dideklarasi sebagai pointer yang menunjuk sebuah integer. Pada saat dideklarasi p berisi sampah memori. Sampah memori ini diinterpretasikan sebagai alamat memori sebuah integer dan bilangan 888 dimasukkan ke dalam alamat tersebut. Hal ini dapat menimbulkan run-time error. Function

TIPE DATA TIDAK SESUAI { int *p; float bil; p = &bil; } Variabel p dideklarasi sebagai pointer yang mengacu sebuah integer tetapi digunakan mengacu sebuah float. Hal ini menyebabkan pointer p tidak berfungsi sebagaimana mestinya. Function

DEEP COPY, SHALLOW COPY Shallow copy Deep copy Menyalin alamat memori Menyalin objek di alamat memori Function

SHALLOW COPY shallow copy # include <stdio.h> int main () { int bulat1, bulat2, *p1, *p2; p1 = &bulat1; p2 = &bulat2; scanf("%d", &bulat1); p2 = p1; printf("%d %d\n", *p1, *p2); *p1 = *p1 * 2; return 0; } shallow copy 10 10 10 20 20 Function

SHALLOW COPY A B C p1 = &bulat1; 10 p2 = &bulat2; //* A 10 10 p2 = p1; //* B *p1 = *p1 * 2; //* C 10 10 10 20 20 A B C Function

DEEP COPY deep copy # include <stdio.h> int main () { int bulat1, bulat2, *p1, *p2; p1 = &bulat1; p2 = &bulat2; scanf("%d", &bulat1); *p2 = *p1; printf("%d %d\n", *p1, *p2); *p1 = *p1 * 2; return 0; } deep copy 10 10 10 20 10 Function

DEEP COPY A B C p1 = &bulat1; 10 p2 = &bulat2; //* A 10 10 *p2 = *p1; //* B *p1 = *p1 * 2; //* C 10 10 10 20 10 A B C Function

DEFINISI FUNCTION Function definition ialah penulisan function secara lengkap, mencakup: Masukan kepada function (daftar parameter). Tipe data yang dikembalikan (tipe function). Variabel lokal yang digunakan. Instruksi untuk mengubah input menjadi output.  tipe_function nama_function (daftar_parameter) { deklarasi_variabel_lokal; instruksi; ... return ekspresi; } Function

DEFINISI FUNCTION Daftar parameter Tipe function Menampung masukan yang diberikan kepada function untuk diolah. Berupa deklarasi data: tipe data dan nama parameter. Daftar parameter disebut juga formal parameter. Jika tidak perlu parameter maka dikosongkan atau ditulis void. Tipe function int, long, char, float, double, struct, atau pointer. Jika function tidak mengembalikan hasil maka tipe function ditulis void. Jika tipe function bukan void maka di dalam function terdapat instruksi return. Function

DEFINISI FUNCTION tipe function nama function daftar parameter float luaslingkaran (float r) { float luas; luas = 3.14159 * r * r; return luas; } variabel lokal isi function Function

DEFINISI FUNCTION # include <stdio.h> float luaslingkaran(float r) { float luas; luas = 3.14159 * r * r; return luas; } int main() { float radius, luas; printf("radius lingkaran ? "); scanf("%f", &radius); luas = luaslingkaran(radius); printf("luas lingkaran = %.2f\n", luas); return 0; radius lingkaran ? 10 luas lingkaran = 314.16 Function

DEKLARASI FUNCTION float luaslingkaran(float); int main() { float radius, luas; printf("radius lingkaran ? "); scanf("%f", &radius); luas = luaslingkaran(radius); printf("luas lingkaran = %.2f\n", luas); return 0; } float luaslingkaran(float r) { float luas; luas = 3.14159 * r * r; return luas; deklarasi function definisi function Function

PENGIRIMAN PARAMETER Passing by value Nilai parameter aktual disalin kepada parameter formal. Parameter aktual berupa variabel, nilai konstanta, atau ekspresi. Passing by reference atau by location Alamat memori parameter aktual disalin kepada parameter formal. Parameter formal mengacu parameter aktual. Isi parameter aktual dapat diubah melalui parameter formal. Sebuah function boleh menggunakan salah satu atau kedua cara pengiriman tersebut. Function

MEKANISME PASSING VALUE int jumlahganda(int n1, int n2) { int n3; n3 = 2 * (n1 + n2); return n3; } int main() { int bil1, bil2, bil3; printf("bil 1? "); scanf("%d",&bil1); printf("bil 2? "); scanf("%d",&bil2); bil3 = jumlahganda(bil1, bil2); printf("jumlah ganda = %d\n", bil3); return 0; bil 1? 10 bil 2? 20 jumlah ganda = 60 Function

MEKANISME PASSING VALUE int jumlahganda(int n1, int n2) ... int main() { int bil1, bil2, bil3; printf("bil 1? "); scanf("%d",&bil1); printf("bil 2? "); scanf("%d",&bil2); bil3 = jumlahganda(bil1, bil2); printf("jumlah ganda = %d\n", bil3); return 0; } //C //A //B //C A B C Function

MEKANISME PASSING VALUE int jumlahganda(int n1, int n2) { int n3; n3 = 2 * (n1 + n2); return n3; } //C //D //E //F C D E F Function

MEKANISME PASSING VALUE int main() { int bil1, bil2, bil3; //A printf("bil 1? "); scanf("%d",&bil1); printf("bil 2? "); scanf("%d",&bil2); //B bil3 = jumlahganda(bil1, bil2); //C printf("jumlah ganda = %d\n", bil3); return 0; } //G G Function

MEKANISME PASSING REFERENCE void jumlahganda (int n1, int n2, int *n3) { *n3 = 2 * (n1 + n2 ); } int main() { int bil1, bil2, bil3; printf("bil1 ? "); scanf("%d",&bil1); printf("bil2 ? "); scanf("%d",&bil2); jumlahganda(bil1, bil2, &bil3); printf("jumlah ganda = %d\n", bil3); return 0; bil 1? 25 bil 2? 35 jumlah ganda = 120 Function

MEKANISME PASSING REFERENCE void jumlahganda (int n1, int n2, int *n3) int main() { int bil1, bil2, bil3; printf("bil1 ? "); scanf("%d",&bil1); printf("bil2 ? "); scanf("%d",&bil2); jumlahganda(bil1, bil2, &bil3); printf("jumlah ganda = %d\n", bil3); return 0; } //C //A //B //C A B C Function

MEKANISME PASSING REFERENCE void jumlahganda (int n1, int n2, int *n3) { *n3 = 2 * (n1 + n2 ); } //C //D C D Function

MEKANISME PASSING REFERENCE int main() { int bil1, bil2, bil3; printf("bil1 ? "); scanf("%d",&bil1); printf("bil2 ? "); scanf("%d",&bil2); jumlahganda(bil1, bil2, &bil3); printf("jumlah ganda = %d\n", bil3); return 0; } //E E Function

LUAS DAN VOLUME KOTAK (A) Tulis program untuk menghitung luas permukaan dan volume kotak. Program ditulis dalam bentuk beberapa function. Function hitung luas permukaan kotak (by value) Function hitung volume kotak (by value) Function

LUAS DAN VOLUME KOTAK (A) float hitung_luas (float pj, float lb, float tg) { return (2 * pj * lb + 2 * pj * tg + 2 * lb * tg); } float hitung_volume (float pj, float lb, float tg) { return (pj * lb * tg); int main() { float panjang, lebar, tinggi, luas, volume; printf("panjang lebar tinggi ? "); scanf("%f %f %f", &panjang, &lebar, &tinggi); luas = hitung_luas (panjang, lebar, tinggi); volume = hitung_volume (panjang, lebar, tinggi); printf("luas permukaan = %.2f\n", luas); printf("volume = %.2f\n", volume); return 0; panjang lebar tinggi ? 2 3 4 luas permukaan = 52.00 volume = 24.00 Function

LUAS DAN VOLUME KOTAK (B) Gabung ke dalam sebuah function Hitung luas masukan: panjang, lebar, tinggi Keluaran: luas Hitung volume Keluaran: volume Hitung luas dan volume Keluaran: luas (by reference), volume (by reference) Function

LUAS DAN VOLUME KOTAK (B) void hitung_ls_vol (float pj, float lb, float tg, float *luas, float *isi) { *luas = 2 * pj * lb + 2 * pj * tg + 2 * lb * tg; *isi = pj * lb * tg; } int main() { float pj, lb, tg, ls, vol; printf("panjang lebar tinggi ? "); scanf("%f %f %f", &pj, &lb, &tg); hitung_ls_vol(pj, lb, tg, &ls, &vol); printf("luas permukaan = %.2f\n", ls); printf("volume = %.2f\n", vol); return 0; panjang lebar tinggi ? 2 3 4 luas permukaan = 52.00 volume = 24.00 Function

MENGURUTKAN TIGA BILANGAN Tulis program untuk membaca tiga bilangan bulat dan menampilkan ketiga bilangan tersebut dalam keadaan terurut menaik (ascending). Ketiga bilangan: bil1, bil2, bil3 Atur ketiga bilangan sehingga: bil  bil2  bil3 Jika bil1 > bil2 tukar bil1 dan bil2 Jika bil1 > bil3 tukar bil1 dan bil3 Jika bil2 > bil3 tukar bil2 dan bil3 Terjadi 3 kali pertukaran nilai. Tukar nilai dijadikan FUNCTION. Function

MENGURUTKAN TIGA BILANGAN Tulis program untuk membaca tiga bilangan bulat dan menampilkan ketiga bilangan tersebut dalam keadaan terurut menaik (ascending). Ketiga bilangan: bil1, bil2, bil3 Atur ketiga bilangan sehingga: bil  bil2  bil3 Jika bil1 > bil2 tukar bil1 dan bil2 Jika bil1 > bil3 tukar bil1 dan bil3 Jika bil2 > bil3 tukar bil2 dan bil3 Terjadi 3 kali pertukaran nilai. Tukar nilai dijadikan FUNCTION. Function

MENGURUTKAN TIGA BILANGAN (A) Function untuk menukar dua nilai. Berapa buah parameter formal? z = x; x = y; y = z; Dua parameter formal: x dan y, by reference. z jadikan variabel lokal. Function

MENGURUTKAN TIGA BILANGAN (A) void tukar(int*, int*); int main() { int bil1, bil2, bil3; printf("ketik 3 bilangan: "); scanf("%d %d %d", &bil1, &bil2, &bil3); if (bil1 > bil2) tukar (&bil1, &bil2); if (bil1 > bil3) tukar (&bil1, &bil3); if (bil2 > bil3) tukar (&bil2, &bil3); printf("diurutkan: %d %d %d\n", bil1, bil2, bil3); return 0; } void tukar(int *a, int *b) { int temp; temp = *a; *a = *b; *b = temp; ketik 3 bilangan: 50 30 10 diurutkan: 10 30 50 Function

MENGURUTKAN TIGA BILANGAN (A) int main() { ... if (bil1 > bil2) tukar (&bil1, &bil2); //A } void tukar(int *a, int *b) { int temp; //A temp = *a; //B *a = *b; //C *b = temp; //D } A B C D Function