Konsep Pemrograman Politeknik Elektronika Negeri Surabaya 2006

Slides:



Advertisements
Presentasi serupa
ARRAY.
Advertisements

Fungsi Konsep Pemrograman.
STRUKTUR DATA Struct Atau Record.
ARRAY 1 DIMENSI Array 1 dimensi
POINTER.
PEMROGRAMAN SISTEM PERNYATAAN DASAR PERULANGAN Pertemuan V
Algoritma dan Struktur Data
PERTEMUAN VIII POINTER
STRUKTUR DATA (5) Pointer dan Function
STRUKTUR Konsep Pemrograman.
Pointer Konsep Pemrograman.
PERTEMUAN II ARRAY JURUSAN TELEKOMUNIKASI
Pointer.
Fungsi, Parameter, Rekursi Daniel Riano Kaparang Book reference: Jogiyanto. Konsep Dasar Pemrograman Bahasa C. Andi Star. Yogyakarta Kristanto Andri.
Struktur Sugeng Supriyadi, M.Kom.
Parameter formal adalah variabel yang ada pada daftar parameter dalam
Modul 11 – Hendi Hermawan - 1
PERTEMUAN VIII STRUKTUR LANJUT JURUSAN TELEKOMUNIKASI POLITEKNIK ELEKTRONIKA NEGERI SURABAYA Oleh : Muh. Zen S. Hadi, ST.
Struktur.
POINTER
3 Variabel, Konstanta Tipe Data dan dalam Bahasa C/C++ Java dan Bab
Struktur Data Universitas PGRI Ronggolawe
Teknik Pemrograman Terstruktur 2
PERTEMUAN VI POINTER LANJUT
PERTEMUAN VI STRUKTUR Definisi struktur
BAB IV SUB PROGRAM DAN FUNGSI
Algoritma & Struktur Data Pointer Evangs Mailoa.
Review-Dasar Pemrograman Komputer
FUNGSI.
STRUKTUR DATA (5) Pointer dan Function
PERTEMUAN IV STRING JURUSAN TELEKOMUNIKASI
Pointer Memory Dinamic.
Pemrograman Dasar Pointers.
Pointer Yuliana Setiowati.
PERTEMUAN IX DATA TINGKAT LANJUT JURUSAN TELEKOMUNIKASI POLITEKNIK ELEKTRONIKA NEGERI SURABAYA Oleh : Muh. Zen S. Hadi, ST.
Pointer Dr. Lily Wulandari.
POINTER (VAR.PENUNJUK)
STRUKTUR DATA Pointer dan Function
P O I N T E R. Merupakan sebuah variabel yang berisi alamat dari variabel lain. Suatu pointer dimaksudkan untu menunjukan ke suatu alamat memori sehingga.
STRUKTUR DATA Structure.
Bab 8 Pointer Riyanto Sigit Konsep Dasar Pointer  Variabel pointer sering dikatakan sebagai variabel yang menunjuk ke obyek lain  Variabel.
Pointer Pointer.
PERTEMUAN III ARRAY BAG II JURUSAN TELEKOMUNIKASI
Function User Function.
Pemrograman Berorientasi Obyek1 Sub Pokok Bahasan Pointer. Reference. Function Passing Parameter by Value, by Reference, by Pointer.
Konsep Pemrograman Politeknik Elektronika Negeri Surabaya 2006
POINTER.
Pointer (Part 1).
1 Pertemuan Fungsi Matakuliah: T0016 / Algoritma dan Pemrograman Tahun: 2007 Versi: 6.
FUNGSI.
Pemrograman Berorientasi Objek C++ Object Oriented Programming Rachmansyah, S.Kom
Tujuan Instruksional Mahasiswa memahami konsep fungsi
Umi Sa’adah Konsep Pemrograman PENS-ITS Bab 14. Struktur 1 Konsep Pemrograman Politeknik Elektronika Negeri Surabaya 2006.
Pengantar C++.
Prosedur dalam C++.
Input dan Output TEE 2103 Algoritma dan Pemrograman
Pointer TEE 2103 Algoritma dan Pemrograman Dosen: Abdillah, MIT
FUNGSI.
Pointer, Array dan String
Struktur Data (Data Structure) – IS 2313
Struktur.
Struktur Data Khoiriya Latifa, M.Kom.
Operator dan Operasi Input Output pada C++ Pertemuan 11
Algoritma dan Pemrograman
Algoritma dan Struktur Data
Struktur Data Khoiriya Latifa, M.Kom.
Algoritma dan Dasar Pemograman
Pemograman Berorientasi Object Sistem Informasi Semster III
Mengenal Nama Hari, Bulan dan Tahun
PERTEMUAN V F U N G S I Tujuan membuat suatu fungsi
Transcript presentasi:

Konsep Pemrograman Politeknik Elektronika Negeri Surabaya 2006 Bab 15. Struktur 2 Konsep Pemrograman Politeknik Elektronika Negeri Surabaya 2006 PENS-ITS

Overview Struktur dan Fungsi Melewatkan Elemen Struktur ke dalam Fungsi Melewatkan Struktur ke dalam Fungsi Pass by value Pass by reference Pass by reference (pointer to struct) PENS-ITS

Struktur dan Fungsi Melewatkan sebuah struktur untuk menjadi parameter dalam sebuah fungsi dapat dilakukan sama dengan pengiriman parameter berupa variabel biasa. Fungsi yang mendapat kiriman parameter tersebut juga bisa mengirimkan hasil baliknya yang juga berupa sebuah struktur (pass by reference). PENS-ITS

Melewatkan Elemen Struktur ke dalam Fungsi Melewatkan parameter berupa elemen struktur dapat dilakukan sebagaimana pengiriman parameter berupa variabel biasa, dapat dilakukan baik secara : Pengiriman nilai (pass by value) Pengiriman acuan/address (pass by reference). PENS-ITS

Melewatkan Elemen Struktur dalam Fungsi: pass by value (cetak1.c) #include <stdio.h> void cetak_tanggal(int, int, int); main() { struct date { int month, day, year; } today; printf("Enter the current date (mm-dd-yyyy): "); scanf("%d-%d-%d", &today.month, &today.day, &today.year); cetak_tanggal(today.month, today.day, today.year); } void cetak_tanggal(int mm, int dd, int yy){ char *nama_bulan[] = { "Wrong month", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" }; printf("Todays date is %s %d, %d\n\n", nama_bulan[mm],dd,yy); PENS-ITS

Melewatkan Elemen Struktur ke dalam Fungsi Tampak bahwa elemen dari struktur dilewatkan ke fungsi memakai bentuk pengaksesan elemen struktur, berupa : cetak_tanggal(today.month, today.day,today.year); Apabila nilai suatu elemen struktur diharapkan akan diubah oleh fungsi, maka yang dilewatkan haruslah berupa alamat dari elemen struktur (pass by reference). Untuk keperluan ini, operator alamat ditempatkan di depan nama variabel struktur (bukan di depan nama elemen struktur). PENS-ITS

Melewatkan Elemen Struktur ke dalam Fungsi: pass by reference (posisi1 Melewatkan Elemen Struktur ke dalam Fungsi: pass by reference (posisi1.c) #include <stdio.h> void tukar_xy(int *, int *); main() { struct koordinat { int x, y; } posisi; printf("Masukkan koordinat posisi (x, y) : "); scanf("%d, %d", &posisi.x, &posisi.y); printf("x, y semula = %d, %d\n", posisi.x, posisi.y); tukar_xy(&posisi.x, &posisi.y); printf("x, y sekarang = %d, %d\n", posisi.x, posisi.y); } void tukar_xy(int *a, int *b) { int z; z = *a; *a = *b; *b = z; PENS-ITS

Melewatkan Struktur ke dalam Fungsi Pada program cetak1.c di atas misalnya, semua elemen dari struktur dikirimkan ke fungsi cetak_tanggal(), dengan maksud nilai elemen dari struktur akan ditampilkan di layar. Untuk keadaan seperti ini (semua elemen dikirim sebagai parameter), lebih baik kalau parameter fungsi diubah menjadi bentuk struktur, sehingga parameter fungsi tidak lagi sebanyak tiga buah, melainkan hanya satu yaitu variabel strukturnya PENS-ITS

Melewatkan Struktur ke dalam Fungsi : pass by value (cetak2.c) #include <stdio.h> struct date { int month, day, year; }; void cetak_tanggal(struct date); main() { struct date today; printf("Enter the current date (mm-dd-yyyy): "); scanf("%d-%d-%d", &today.month, &today.day, &today.year); cetak_tanggal(today); } void cetak_tanggal(struct date now){ char *nama_bulan[] = { "Wrong month", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October","November", "December" printf("Todays date is %s %d, %d\n\n", nama_bulan[now.month], now.day, now.year); PENS-ITS

Melewatkan Struktur ke dalam Fungsi: pass by reference  pointer to struct Jika sebuah struktur mengandung banyak field dan diputuskan bahwa keseluruhan field-nya akan diubah oleh fungsi, maka cara yang efisien adalah dengan melewatkan alamat dari struktur (pass by reference). Dengan demikian pada pendefinisian fungsi, parameter formalnya berupa pointer yang menunjuk ke struktur (pointer to struct). PENS-ITS

Melewatkan Struktur ke dalam Fungsi : pass by reference (posisi2.c) #include <stdio.h> struct koordinat { int x, y; }; void tukar_xy(struct koordinat *); main() { struct koordinat posisi; printf("Masukkan koordinat posisi (x, y) : "); scanf("%d, %d", &posisi.x, &posisi.y); printf("x, y semula = %d, %d\n", posisi.x, posisi.y); tukar_xy(&posisi); printf("x, y sekarang = %d, %d\n", posisi.x, posisi.y); } void tukar_xy(struct koordinat *pos_xy) { int z; z = (*pos_xy).x; (*pos_xy).x = (*pos_xy).y; (*pos_xy).y = z; PENS-ITS

Melewatkan Struktur ke dalam Fungsi : pass by reference Parameter dari fungsi tukar_xy() disederhanakan menjadi satu parameter saja, yakni sebagai berikut : void tukar_xy(struct koordinat *pos_xy) { } Pada definisi fungsi di atas, struct koordinat *pos_xy menyatakan bahwa pos_xy adalah pointer yang menunjuk ke obyek bertipe struct koordinat. Adapun penulisan : (*pos_xy).x menyatakan : elemen/field bernama x yang ditunjuk oleh pointer pos_xy Perlu diperhatikan bahwa penulisan tanda kurung seperti pada contoh (*pos_xy).x merupakan suatu keharusan, sebab *pos_xy.x mempunyai makna yang berbeda dengan Ungkapan *pos_xy.x mempunyai makna yaitu : "yang ditunjuk oleh pos_xy.x " (sebab operator titik mempunyai prioritas yang lebih tinggi daripada operator *). PENS-ITS

Melewatkan Struktur ke dalam Fungsi : pass by reference Bentuk semacam : (*pos_xy).x dapat ditulis dengan bentuk lain menjadi pos_xy->x Dalam C operator -> (berupa tanda minus - diikuti dengan tanda lebih dari >) disebut sebagai operator panah. Dengan menggunakan operator panah, maka fungsi tukar_xy() dalam program posisi2.c dapat ditulis menjadi void tukar_xy(struct koordinat *pos_xy) { int z; z = pos_xy->x; pos_xy->x = pos_xy->y; pos_xy->y = z; } PENS-ITS