PEMROGRAMAN SISTEM FUNGSI Definisi Fungsi Setiap fungsi yang

  • Slides: 28
Download presentation
PEMROGRAMAN SISTEM FUNGSI

PEMROGRAMAN SISTEM FUNGSI

Definisi Fungsi Setiap fungsi yang dipanggil didalam program harus didefinisikan. l Letaknya dapat dimana

Definisi Fungsi Setiap fungsi yang dipanggil didalam program harus didefinisikan. l Letaknya dapat dimana saja l

Contoh // Prototipe funsi int kuadrat (int i); ------------------// Definisi fungsi int kuadrat(int i)

Contoh // Prototipe funsi int kuadrat (int i); ------------------// Definisi fungsi int kuadrat(int i) { return(i * i); } l l Pernyataan return di dalam fungsi digunakan untuk memeberikan nilai balik fungsi. Pada contoh diatas, fungsi kuadrat() memberikan nilai balik berupa nilai kuadrat dari argumen.

Contoh #include <iostream. h> int kuadrat(int i); void main () { for(int bil =

Contoh #include <iostream. h> int kuadrat(int i); void main () { for(int bil = 200; bil < 2000; bil+= 200) cout <<bil<<" "<<kuadrat(bil)<<endl; } int kuadrat(int i) { return (i*i); }

200 400 600 800 1000 1200 1400 1600 1800 40000 160000 360000 640000 1000000

200 400 600 800 1000 1200 1400 1600 1800 40000 160000 360000 640000 1000000 1440000 1960000 2560000 3240000

Fungsi tanpa Nilai Balik Adakalanya suatu fungsi tidak perlu memiliki nilai balik. l Misalnya

Fungsi tanpa Nilai Balik Adakalanya suatu fungsi tidak perlu memiliki nilai balik. l Misalnya fungsi yang hanya dimaksudkan untuk menampilkan suatu keterangan saja. l pada funsi seperti ini, tipe nilai balik fungsi yang diperlukan adalah void. l

Contoh void tampilkan_judul () { cout << “PT. Aria perkasa Manunggal” << endl; cout

Contoh void tampilkan_judul () { cout << “PT. Aria perkasa Manunggal” << endl; cout << “Jl. Kertadipura Tenggara 27 R” << endl; cout << “Kudus” << endl; } l pada contoh funsi diatas, tidak ada pernyataan return, mengingat fungsi tidak memiliki nilai balik. l Namun penggunaan pernyataan return secara eksplisit juga diperkenankan. l Dalam hal ini digunakan berbentuk : return saja.

Contoh void tampilkan_judul () { cout << “PT. Aria perkasa Manunggal” << endl; cout

Contoh void tampilkan_judul () { cout << “PT. Aria perkasa Manunggal” << endl; cout << “Jl. Kertadipura Tenggara 27 R” << endl; cout << “Kudus” << endl; return; }

Lingkup variabel menentukan keberadaan suatu variabel tertentu dalam fungsi. l Ada variabel yang hanya

Lingkup variabel menentukan keberadaan suatu variabel tertentu dalam fungsi. l Ada variabel yang hanya dikenal di suatu fungsi dan tidak dikenal pada fungsi lain. l Namun ada juga variabel yang dapat diakses oleh semua fungsi. l

Variabel Otomatis Variabel yang didefinisikan di dalam suatu fungsi berlaku sebagai variabel lokal bagi

Variabel Otomatis Variabel yang didefinisikan di dalam suatu fungsi berlaku sebagai variabel lokal bagi fungsi. l Artinya, variabel tersebut hanya dikenal didalam fungsi tempat variabel didefinisikan l

Contoh void kuadrat(); void main () { int i=20; cout<<"pada main = "<<i<<endl; kuadrat();

Contoh void kuadrat(); void main () { int i=20; cout<<"pada main = "<<i<<endl; kuadrat(); cout<<"pada main = "<<i<<endl; } void kuadrat() { int i = 20; i = i * i; cout<<"pada kuadrat = "<<i<<endl; }

Tampak bahwa perubahan i pada kuadrat() tidak mempengaruhi variabel bernama sama pada main(). l

Tampak bahwa perubahan i pada kuadrat() tidak mempengaruhi variabel bernama sama pada main(). l Karena variabel tersebut bersifat lokal bagi masing-masing fungsi yang mendefinisikannya. l Variabel i pada fungsi kuadrat() yang disebut sebagai variabel otomatis. l

Variabel Eksternal Variabel eksternal adalah variabel yang didefinisikan diluar fungsi manapun. l Variabel ini

Variabel Eksternal Variabel eksternal adalah variabel yang didefinisikan diluar fungsi manapun. l Variabel ini dikenal juga sebagai variabel global, sebab variabel ini dikenal disemua fungsi. l

#include <iostream. h> int i = 20; void kuadrat(); void main () { cout<<"pada

#include <iostream. h> int i = 20; void kuadrat(); void main () { cout<<"pada main = "<<i<<endl; kuadrat(); cout<<"pada main = "<<i<<endl; } void kuadrat() { i = i * i; cout<<"pada kuadrat = "<<i<<endl; }

l Guna memeperjelas suatu variabel didalam suatu fungsi yang menggunakannya dapat mendeklarasikan (bukan mendefinisikan,

l Guna memeperjelas suatu variabel didalam suatu fungsi yang menggunakannya dapat mendeklarasikan (bukan mendefinisikan, karena tidak ada pengalokasian memori) dengan menambahkan kata extern didepan tipa data.

#include <iostream. h> int i = 20; void kuadrat(); void main () { cout<<"pada

#include <iostream. h> int i = 20; void kuadrat(); void main () { cout<<"pada main = "<<i<<endl; kuadrat(); cout<<"pada main = "<<i<<endl; } void kuadrat() { extern i; i = i * i; cout<<"pada kuadrat = "<<i<<endl; }

Variabel Statis l l Variabel eksternal maupun otomatis dapat berkedudukan sebagai variabel statis. Suatu

Variabel Statis l l Variabel eksternal maupun otomatis dapat berkedudukan sebagai variabel statis. Suatu variabel statis mempunyai sifat : l Jika variabel lokal berdiri sebagai variabel satatis, maka : Variabel tetap hanya dapat diakses pada fungsi yang mendefinisikannya l Variabel tidak hilang saat eksekusi fungsi berakhir l Inisialisasi oleh pemrogram akan dilakukan sekali saja selama program dijalankan. l l Jika variabel eksternal dijadikan sebagai variabel statis, variabel ini dapat diakses oleh semua file yang didefinisikan pada file yang sama dengan variabel eksternal tersebut.

#include <iostream. h> void kuadrat(); void main () { int i = 20; kuadrat();

#include <iostream. h> void kuadrat(); void main () { int i = 20; kuadrat(); cout<<"pada main = "<<i<<endl; } void kuadrat() { static int i = 2; i = i * i; cout<<"pada kuadrat = "<<i<<endl; }

Berdasarkan hasil diatas, terlihat bahwa variabel statis mana pada fungsi kuadrat(); hanya diinisialisasi (bernilai

Berdasarkan hasil diatas, terlihat bahwa variabel statis mana pada fungsi kuadrat(); hanya diinisialisasi (bernilai 2) sekali saja. l Kemudian setiap kali kuadrat(); dipanggil nilai variabel tersebut dinaikkan sebesar i = i * i. l

Operator Resolusi Lingkup Pada C++ terdapat operator dua buah tanda titik-dua ( : :

Operator Resolusi Lingkup Pada C++ terdapat operator dua buah tanda titik-dua ( : : ). Operator ini disebut operator resolusi lingkup (scope resolution). l Kegunaanya untuk mengakses variabel yang didefinisikan diluar suatu fungsi. l

#include <iostream. h> int i = 20; void main () { int i =

#include <iostream. h> int i = 20; void main () { int i = 10; cout<<"i = "<<i<<' '<<: : i<<endl; : : i = 50; cout<<"i = "<<i<<' '<<: : i<<endl; }

l Program diatas mengungkapkan bahwa sekalipun didalam suatu fungsi terdapat variabel yang namanya sama

l Program diatas mengungkapkan bahwa sekalipun didalam suatu fungsi terdapat variabel yang namanya sama dengan nama variabel eksternal, kedua variabel tersebut tetap bisa diakses.

Nilai Bawaan Untuk Nilai Fungsi Salah satu keistimewaan C++ adalah adanya kemampuan untuk menyetel

Nilai Bawaan Untuk Nilai Fungsi Salah satu keistimewaan C++ adalah adanya kemampuan untuk menyetel nilai bawaan (default) argumen fungsi. l Argumen-argumen yang mempunyai nilai bawaan nantinya dapat tidak disertakan didalam pemanggilan fungsi dan dengan sendirinya C++ akan menggunakan nilai bawaan dari argumen yang tidak disertakan. l

#include <iostream. h> void tulis(int jum); // Prototipe fungsi void main() { tulis(1); //

#include <iostream. h> void tulis(int jum); // Prototipe fungsi void main() { tulis(1); // Untuk menuliskan sebuah tulisan C++ } void tulis(int jum); { for (int i = 0; i < jum; i ++) cout << “ C++ “ << endl; cout << “ Selesai “ << endl; }

#include <iostream. h> void tulis(int jum = 1); // Prototipe fungsi void main() {

#include <iostream. h> void tulis(int jum = 1); // Prototipe fungsi void main() { tulis(); // Argumen tidak perlu disebutkan } void tulis(int jum); { for (int i = 0; i < jum; i ++) cout << “ C++ “ << endl; cout << “ Seleseai “ << endl; }

Referensi l Referensi digunakan untuk memberikan nama alias dari variabel. Bentuk pendeklarasiannya : Int

Referensi l Referensi digunakan untuk memberikan nama alias dari variabel. Bentuk pendeklarasiannya : Int &ref = nama_variable ; l Tanda & mengawali nama referensi. Setelah pendeklarasian seperti diatas, ref menjadi nama alias dari nama_variabel. Penggubahan nilai terhadap nama_variabel dapat dilakukan melalui nama_variabel itu sendiri atau melalui referensi ref, sebagaimana dapat dilihat pada contoh : l l

#include <iostream. h> void main() { int i ; int &r = i; //

#include <iostream. h> void main() { int i ; int &r = i; // Deklarasi referensi i =10; cout << “i = “ << i << endl; cout << “ r = “ << r << endl; r = 55; cout << “i = “ << i << endl; cout << “ r = “ << r << endl; }

#include <iostream. h> void main() { int i = 55; int &r = i;

#include <iostream. h> void main() { int i = 55; int &r = i; // Referensi cout << “i = “ << i << “ r = “ << r <<endl; i ++ ; cout << “ i = ” << i <<“ r = “ << r << endl; r ++ ; cout << “i = “ << i << “ r = “ << r << endl; }