Kamis, 07 November 2013

Pemrograman terstruktur





LINGKUP VARIABEL FUNGSI
Lingkup variabel menentukan keberadaan suatu variabel tertentu didalam fungsi. Ada variabel yang hanya dikenal disuatu fungsi dan tidak dikenal pada fungsi lain. Namun ada  juga variabel yang dapat diakses oleh semua fungsi. Pada C terdapat jenis-jenis variabel berdasarkan kelas penyimpanannya, yang berkaitan dengan lingkup variabel, yaitu :
a. Variabel Otomatis / Lokal  Variabel yang didefinisikan didalam suatu fungsi. Fungsi ini berlaku sebagai variabel lokal bagi fungsi. Artinya : variabel tersebut hanya dikenal di dalam fungsi tempat variabel itu didefinisikan.
b. Variabel Eksternal / Global Variabel yang didefinisikan di luar fungsi manapun. Variabel ini dikenal sebagai variabel  global. Artinya : variabel ini dikenal di semua fungsi.
c. Variabel statis Variabel lokal yang dideklarasikan didalam fungsi mempunyai sifat, data yang  tersimpan atau yang ada padanya akan hilang (terhapus) setelah fungsi itu selesai  dikerjakan. Dengan demikian data yang terdapat pada variabel lokal tersebut tidak dapat  dipakai pada pengolahan berikutnya.
C mengijinkan agar variabel lokal bersifat statis, artinya : variabel ini tidak akan dihapus setelah selesai pemanggilan fungsi ini. Variabel statis biasanya diberi nilai awal. Pemberian nilai awal hanya dilakukan sekali  pada saat pemanggilan pertama kali.

Argument fungsi
 Dalam c++, diketahui bahwa dalam pemanggilan fungsi ada 5 cara, yaitu,
1. pemanggilan fungsi tanpa argumen,
2. dengan argumen (by value),
3. dengan referensi ( by reference),
4. dengan pointer (by pointer)
5. dan dengan nilai balik
contoh program . Kita menggunakan c++ dalam latihan pembuatan fungsi.
#include
#include
Void coba()
{
cout<<"Hello dari fungsi";
}
void main()
{
coba ();
cout<<"Helo dari program utama";
coba ();
getch();
}
Fungsi di deklarasikan sebelum fungsi utama, seperti dalam deskripsi secara garis besar dari fungsi, fungsi merupakan sebuah potongan program. Contoh program diatas, fungsi coba dideklarasikan menggunakan void, void tidak memberikan nilai balik dalam fungsi coba. didalam void coba( ), tanda kurung tidak diberikan sebuah isi, disinilah letak dari argumen dalam fungsi. Fungsi coba diatas hanya mengandung pernyataan Hello dari fungsi. Fungsi coba diatas dipanggil 2 kali dalam fungsi utama ( void main( ) ) berarti fungsi dapat dipanggil beberapa kali sesuai dengan kebutuhan.


Meskipun Anda sudah belajar tentang fungsi dasar di c + +, ada lebih: fungsi inline.Fungsi inline tidak selalu penting, tapi itu baik untuk memahami mereka. Ide dasarnya adalah untuk menghemat waktu dengan biaya di luar angkasa. Fungsi inline banyak seperti placeholder. Setelah Anda mendefinisikan fungsi inline, menggunakan 'inline' kata kunci, setiap kali Anda memanggil fungsi kompilator akan menggantikan fungsi panggilan dengan kode aktual dari fungsi. 


INLINE FUNCTION
Fungsi digunakan di dalam program diantaranya adalah untuk membentuk program yang terstruktur. Namun pemakaian fungsi kadang-kadang harus di bayar mahal. Sebab argumen-argumen fungsi harus diletakkan di dalam stack pada saat pemanggilan fungsi. Pada saat fungsi berakhir, argumen-argumen yg ada pada stack perlu diosongkan lagi. Sebagai akibatnya akan memperlambat eksekusi, terutama kalau fungsi sering dipanggil.
Masalah seperti itu diatasi oleh C++ dengan menggunakan inline function. Sebuah inline function dibentuk dengan cukup menyisipkan kata kunci inline di depan tipe nilai balik fungsi dalam pendefinisian fungsi.
inline jumlah(int x, int y)
{
return(x+y);
}
Contoh diatas hanya dimasudkan untuk menggambarkan tentang inline function. Pada kenyataannya, jika Anda bermaksud membuat operasi penjumlahan seperti itu tidalah perlu menggunakan fungsi. Inline function disarankan dipakai pada fungsi yang sering dipanggil dan ukurannya kecil, terutama jika dilibatkan pada pernyaan pengulangan proses (while, for dan do-while). Misalnya pada bentuk seperti berikut:
for (int i=1; <100;>
cout<<i<<”.”<</i<<”.”<
jika fungsi jumlah() tidak dituliskan sebagai inline function, proses tersebut akan menjadi relatif akan menjadi relatif lambat.
 Contoh :
#include <iostream>

using namespace std;

inline void hello()
{
  cout<<"hello";
}
int main()
{
  hello(); //Call it like a normal function...
  cin.get();
}


Nilai Bawaan Untuk Nilai Fungsi 

 

Salah satu keistimewaan C++ yang sangat bermanfaat dalam dalam pemrogramam adalah adanya kemampuan untuk menyetel nilai bawaan argumen fungsi. Argumen2 yg mempunyai nilai bawaan nantinya dapat tidak disertakan di dalam pemanggilan fungsi dan dengan sendirinya C++ akan menggunakan nilai bawaan dari argumen yang tidak disertakan. Untuk lebih jelasnya simak contoh berikut:
void tulis_cplus (int jum)
{
for (int i=0;i<jum;i++)</jum;i++)
cout<<”C++”<<endl;</endl;
cout<<”Selesai”;
}
Fungsi diatas akan menampilkan tulisan C++ sebanyak jum kali. Setelah menampilkan tulisan tersebut, fungsi akan menampilkan tulisan “Selesai”. Jika mau menampilkan tulisan C++ sepuluh kali, pemanggilamnya berupa:
tulis_cplus(10);
Kalau hanya mau menampilkan sebuah tulisan C++, pemanggilanya berupa:
tulis_cplus(1);

clrscr(); 

tulis_cplus(1); // Untuk menuliskan sebuah tulisan C++ 

} 

void tulis_cplus(int jum); 

{ 

for (int i = 0; i < jum; i ++) 

cout << “ C++ “ << endl; 

cout << “ Seleseai “ << endl; 

}


ARGUMEN BY VALUE

Saya menggunakan C + + for Dummies dan saya berlari di beberapa bagian yang bisa membantu Anda. Nikmati dan saya harap ini membantu. 

Pertama dia mengatakan tentang "Memahami Rincian Fungsi" 

Sebuah fungsi secara logis dipisahkan blok C + + kode. Fungsi konstruk memiliki bentuk sebagai berikut: 
<return Nama data> (<arguments ke function> ini) 
{ 
/ / ... 
kembali <ekspresi>; 
} 

Argumen ke fungsi adalah nilai-nilai yang dapat dikirimkan ke fungsi yang akan digunakan sebagai informasi masukan. 'Nilai return' adalah nilai yang kembali fungsi. Misalnya, dalam panggilan ke fungsi persegi (10), nilai 10 adalah argumen untuk fungsi persegi (). Nilai yang dikembalikan adalah 100. 



Kedua, ia mengatakan tentang "Mengakses argumen untuk main ():" 

Argumen pertama yang main () adalah array dari pointer ke null dihentikan string karakter. String ini berisi argumen untuk program. Argumen untuk program adalah string yang muncul dengan nama program ketika Anda memulai. Argumen ini juga dikenal sebagai parameter. Sebagai contoh, anggaplah bahwa saya memasuki perintah berikut pada prompt MS-DOS:


FUNCTION OVER

Anda overload suatu nama fungsi f dengan mendeklarasikan lebih dari satu fungsi dengan nama f dalam lingkup yang sama. Deklarasi f harus berbeda satu sama lain oleh jenis dan / atau jumlah argumen dalam daftar argumen. Ketika Anda memanggil fungsi overload bernama f, fungsi yang benar dipilih dengan membandingkan daftar argumen dari fungsi panggilan dengan daftar parameter dari masing-masing fungsi calon kelebihan beban dengan nama f. Sebuah fungsi kandidat adalah fungsi yang dapat dipanggil berdasarkan konteks panggilan nama fungsi kelebihan beban. 
Function overloding atau overloding terhadapt fungsi merupakan kemampuan C++ yg memungkinkan sebuah fungsi dapat menerima bermacam-macam tipe dan memberikan nilai balik yang bervariasi pula. Kemampuan ini tidak ada pada bahasa pendahuluannya C.

Pertimbangkan fungsi cetak, yang menampilkan sebuah int. Seperti ditunjukkan dalam contoh berikut, Anda dapat membebani fungsi cetak untuk menampilkan jenis lain, misalnya, ganda dan char *. Anda dapat memiliki tiga fungsi dengan nama yang sama, masing-masing melakukan operasi serupa pada jenis data yang berbeda:
Contoh :
#include <iostream>
using namespace std;
 
void print(int i) {
  cout << " Here is int " << i << endl;
}
void print(double  f) {
  cout << " Here is float " << f << endl;
}
 
void print(char* c) {
  cout << " Here is char* " << c << endl;
}
 
int main() {
  print(10);
  print(10.10);
  print("ten");
}




Rekursi adalah
            Rekursi adalah suatu proses dari fungi yang memanggil dirinya sendiri.fungsi seperti ini disebut fungsi rekursi ( Rekursivee function.dalam sebuah rekursi pemanggilan dapaat terjadi berulang kali.karena ada proses yang berulang ulang maka harus ada suatu kondisi yanag mengakhirinya prosesnya. Jika tidak,maka proses tidak akana perna berhenti sampai memori yang kita gunakan tidak dapat menampung lagi. Pemechan masalah dengan pendekatan rekurtif dapat di lakukan jika masalah tersebut dapat di definisikan secara rekursif.
Pada C++ referensi digunakan untuk memberikan nama alias dari variabel. Bentuk pendeklarasian:
int &ref=nama_variabel;
tanda & mengawali nama referensi.
Setelah pendeklarisian seperti, ref menjadi nama alias dari nama_variabel. Pengubahan nilai terdapat nama_variabel dapat dilakukan melalui nama_variabel itu sendiri ataupun melalui referensi ref

Di bawa ini adalah contoh programnya :

void main()
{
int x,y;
cout<<”Menghitung x pangkat y “<<endl;
cout<<”X : “;
cin >> x;
cout<<”Y : “;
cin >> y;
cout<<x<<”Pangkat”<<y<<”=”<<Pangkat(x,y)<<endl;
}












Rabu, 06 November 2013

pemrograman terstruktur



Nama            : Beny setyawan
Nim               : 12410200081

Prototype
Prototype adalah  mengikuti ANSI (American Standart Institute), pada turbo c++ dikenal suatu gaya modern dalam mendeklarasikan fungsi, yang disebut PROTOTYPE fungsi.
            Fungsi ini digunakan untuk menjelaskan kepada compiler mengenai :
v    Tipe keluaran fungsi
v    Jumlah parameter
v    Tipe dari masing masing parameter
Bagi compiler, informasi dalam PROTOTYPE akan dipakai untuk memeriksa validitas parameter dalam pemanggilan fungsi.
 Contoh :
            Float jumlah (float x, float y)
                        Atau
            Float jumlah (float,float)
#include <iostream.h>
#include <conio.h>

void garis(); // prototype function
void main() // main function
{
                                                                      
Definisi fungi

Function/fungsi adalah satu blok kode yang melakukan tugas tertentu
atau satu blok instruksi yang di eksekusi ketika dipanggil dari bagian lain
dalam suatu program.
Bentuk umum deklarasi fungsi :
Tipenilaibalik fungsi (tipepara, … ) ;
Keterangan :
- tipenilaibalik =
tipe nilai yang dikembalikan dengan statemen ‘return’. Tipe default nya
: ‘int’. Untuk menyatakan fungsi yang tidak mengembalikan nilai balik,
dideklarasikan sebagai : ‘void’
- fungsi =
nama fungsi tersebut
- tipepara =
tipe parameter, bila parameter lebih dari satu (1), masing-masing
dipisahkan dengan tanda koma ( , )
untuk menyatakan fungsi tanpa parameter dispesifikasikan : ‘void’. Bila
tipe parameter tidak dispesifikasikan, defaultnya : ‘void’
Fungsi harus dideklarasikan terlebih dahulu sebelum didefinisikan.
Maksudnya adalah memberitahu compiler jumlah dan tipe parameter yang
diterima dan nilai balik fungsi (bila ada) agar compiler dapat memeriksa
ketepatannya. Definisi fungsi itu sendiri adalah menspesifikasikan tugas
fungsi tersebut.
Contoh 1 - program fungsi :
# include <iostream.h>
Int tambah (int a, int b )
{
Int r ;
r = a + b ;
return 0 ;
}
Int main ( )
{
Int z ;
z = tambah ( 5,3 ) ;
cout << “Hasilnya = ‘ << z ;
return 0 ;
}



Fungsi tanpa nilai balik
Dalam pemrograman C++ bukanlah bahasa prosedural, karena prosedur tidak mempunyai nilai balik. Untuk melakukan hal ini di dalam C++, maka harus membuat suatu fungsi dengan tipe void, yang berarti tidak memiliki nilai balik (return value). contoh:
void nama_fungsi (parameter)
{
Pernyataan_yang_akan_dilakukan;
……………
}
Fungsi lingkup fariabel