BAGUS AGUNG RIADI (12141828)
GUNADI (12140732)
FUNGSI
Fungsi (Function) merupakan blok dari kode yang dirancang untuk melaksanakan tugas khusus.
Kegunaan dari fungsi ini adalah untuk:
| Mengurangi pengulangan penulisan program yang berulangan atau sama.
| Program menjadi lebih terstruktur, sehingga mudah dipahami dan dapat lebih dikembangkan.
Fungsi-fungsi yang sudah kita kenal sebelumnya adalah fungsi main(), yang bersifat mutlak, karena fungsi ini program akan dimulai, sebagai contoh yang lainnya fungsi printf(), cout() yang mempunyai tugas untuk menampilkan informasi atau data kelayar dan masih banyak lainnya.
Struktur Fungsi
nama_fungsi(argumen)
{
… pernyataan / perintah;
… pernyataan / perintah;
… pernyataan / perintah;
}
Keterangan:
Ø Nama fungsi, boleh dituliskan secara bebas dengan ketentuan, tidak menggunakan spasi dan nama-nama fungsi yang mempunyai arti sendiri.
Ø Argumen, diletakan diantara tanda kurung “( )” yang terletak dibelakang nama fungsi. Argumen boleh diisi dengan suatu data atau dibiarkan kosong.
Ø Pernyataan / perintah, diletakan diantara tanda kurung ‘{ }’.
Pada pemanggilan sebuah fungsi, cukup dengan menuliskan nama fungsinya.
/* pembuatan fungsi garis() */
#include
#include
#include
garis()
{
printf(“\n———————-\n”);
}
/* program utama */
main()
{
clrscr();
garis(); //memanggil fungsi garis
cout<<"AMIK BSI – Salemba 22"<<endl;;
garis(); //memanggil fungsi garis
getche();
}
Prototipe Fungsi
Prototipe fungsi digunakan untuk mendeklarasikan ke kompiler mengenai: • Tipe data keluaran dari fungsi.
• Jumlah parameter yang digunakan
• Tipe data dari masing-masing parameter yang digunakan.
Keuntungan didalam pemakai prototipe yaitu :
• Kompiler akan melakukan konversi antara tipe parameter dalam definisi dan parameter fungsi.
• Jika jumlah parameter yang digunakan dalam definisi fungsi dan pada saat pemanggilan fungsi berbeda atau tidak sama, maka akan menunjukkan kesalahan.
Pernyataan return().
Digunakan untuk mengirimkan nilai atau nilai dari suatu fungsi kepada fungsi yang lain yang memanggilnya. Pernyataan return() diikuti oleh argumen yang berupa nilai yang akan dikirimkan. Contoh pemakaian pernyataan return() dapat dilihat pada contoh berikut ;
Contoh pengiriman data konstanta
/* ———————— */
/* Pengriman data Konstanta */
/* ———————— */
#include
#include
#include
luas(float sisi);
main()
{
float luas_bs;
clrscr();
luas_bs = luas(4.25);
cout<<"\nLuas Bujur Sangkar = "<<luas_bs;
getch();
}
luas(float sisi)
{
return(sisi*sisi);
}
Keterangan :
Dalam struktur program diatas dilihat bahwa, pernyataan luas_bs=luas(4.25), akan dikirimkan nilai kepada fungsi luas(), untuk diolah lebih lanjut, yang nilai tersebut akan ditampung pada variabel sisi. Selanjutnya didalam fungsi return terjadi perkalian sisi dengan sisi, setelah itu hasil perkalian tersebut dikirim balik ke variabel luas_bs yang memanggil fungsi.
Contoh Pengiriman data variable:
GUNADI (12140732)
POINTER
Pengertian Pointer
Pointer adalah implementasi sederhana, lebih konkret tentang
tipe data referensi yang lebih abstrak. Beberapa bahasa mendukung beberapa
jenis pointer, walaupun ada yang memiliki lebih banyak pembatasan penggunaannya
dari pada yang lain. Sebagai analogi, sebuah nomor halaman dalam buku dapat
dianggap sebagai pointer ke halaman yang sesuai; dereferencing seperti pointer
akan dilakukan dengan membalik ke halaman dengan nomor halaman yang
diberikan.
Pointer dapat meningkatkan kinerja data secara signifikan agar
operasi berulang seperti traversing string, tabel lookup, tabel kontrol dan
struktur pohon. Secara khusus, sering jauh lebih efisien dalam waktu dan space
untuk pointer dari pada menggunakan variable tipe data biasa.
Pointer juga digunakan untuk menyimpan alamat dari titik masuk
untuk memanggil subrutin dalam pemrograman prosedural dan untuk run-time
penghubung ke dynamic link libraries (DLL). Dalam pemrograman berorientasi
objek, pointer ke fungsi yang digunakan untuk mengikat/menjilid method, ini
sering disebut tabel method virtual.
Kegunaan Pointer Di C++ :
Kegunaan pointer yang utama adalah untuk
menyimpan alamat memori dari sebuah variabel (data type atau object dari
class), menyimpan alamat dari sebuah fungsi (function pointer) dan dapat
berfungsi untuk mengirimkan “Parameter yang berupa variabel” ke dalam
fungsi, artinya nilai variabel bisa diubah di dalam fungsi serta
dapat membuat variabel dinamis.
Tipe Data Pointer :
Tipe_data merupakan tipe dari data yang
ditunjuk, bukan tipe dari pointer- nya.
Operator Pointer :
Ada 2 operator pointer yang dikenal secara
luas, yaitu operator & dan operator *.
Operator &
Operator & merupakan operator alamat. Pada
saat pendeklarasian variable, user tidak diharuskan menentukan lokasi
sesungguhnya pada memory, hal ini akan dilakukan secara otomatis oleh kompiler
dan operating sysem pada saat run-time. Jika ingin mengetahui dimana suatu
variable akan disimpan, dapat dilakukan dengan memberikan tanda ampersand
(&) didepan variable , yang berarti "address of". Contoh : ted =
&input;
Penulisan tersebut berarti akan memberikan
variable ted alamat dari variable input. Karena variabel input diberi awalan
karakter ampersand (&), maka yang menjadi pokok disini adalah alamat dalam
memory, bukan isi variable.
Misalkan input diletakkan pada alamat 1776
kemudian dituliskan instruksi sbb :
input = 25; fred = input; ted =
&input;
Operator *
Operator * merupakan operator reference. Dengan
menggunakan pointer,kita dapat mengakses nilai yang tersimpan secara langsung
dengan memberikan awalan operator asterisk (*) pada identifier pointer, yang
berarti "value pointed
Macro
Preprocessor Directives
Adalah suatu perintah yang termasuk kedalam program, tetapi
bukanlah instruksi dari program itu sendiri, tetapi untuk preprocessor.
Preprocessor ini dijalankan secara otomatis oleh kompiler, ketika didalam
proses penterjemahan (Compile) program berlangsung, didalamnya membuat
nilai pembuktian pertama dan menterjemahkan code program didalam kode objek.
Didalam penggunaan preprocessor directive selalu dimulai dengan tanda : #
Ada beberapa preprocessor directive, diantaranya adalah :
# define
Digunakan untuk mendefinisikan suatu nilai tertentu kepada suatu
nama konstanta.
Bentuk umum dari preprocessor directive #define ini
adalah:
#define nama_konstanta teks
# include
berfungsi untuk memasukkan atau menyertakan file-file header
kedalam program yang akan dibuat. Dalam penulisan #include ada dua bentuk
penulisan :
#include “nama_file_header“
atau
#include <nama_file_header>
Pada bentuk penulisan #include mempunyai arti yang berbeda, yaitu
:
• #include “nama_file_header“
“Pertama kali compiler akan mencari file header yang disebutkan
pada directori yang sedang aktif dan apa bila tidak ditemukan akan mencari pada
directori dimana file header tersebut berada “.
• #include <nama_file_header>
“Pertama kali compiler akan mencari file header yang disebutkan
pada directori yang ada file headernya, kecuali pada directori yang sedang
aktif.
Pembuatan File Header
File Header adalah suatu file dengan akhiran .h .
File ini sebenarnya berisikan deklarasi fungsi dan definisi konstanta. Selain
file-file header standar yang disediakan oleh C++, kita dapat juga membuat file
header sediri, dengan cara yang sama seperti membuat file editor. Yang harus
diperhatikan pada saat menyimpan file header yang telah dibuat harus digunakan
akhiran .h .
Buatlah program file heder dibawah ini, kemudian simpan dengan
nama : atur.h, pada folder kerja anda folder include
Structure
Structure digunakan untuk mengelompokan sejumlah data yang
mempunyai tipe data yang berbeda. Variabel-variabel yang membentuk sebuah
struktur dinamakan elemen struktur. Struktur sama seperti Record di dalam
Bahasa Pemrograman Pascal.
Deklarasi Structure
Atau
Contoh1:
/* —————————- */
/* Program Penggunaan structure */
/* Nama File : struct1.cpp */
/* —————————- */
#include
#include
#include
main()
{
struct
{
char nim[5];
char nama[15];
int nilai;
} mahasiswa;
clrscr();
cout<>mahasiswa.nim;
cout<>mahasiswa.nama;
cout<>mahasiswa.nilai;
cout<<"\n\nData Yang di Inputkan adalah : \n\n";
cout<<"NIM = "<<mahasiswa.nim<<endl
cout<<"Nama = "<<mahasiswa.nama<<endl
cout<<"Nilai Akhir = "<<mahasiswa.nilai<<endl
getch();
}
Nested Structure
Contoh2:
/* ———————————– */
/* Program Penggunaan Nested structure */
/* ———————————– */
#include
#include
#include
main()
{
struct dtmhs
{
char nim[9];
char nama[15];
};
struct dtnil
{
float nil1;
float nil2;
};
struct
{
struct dtmhs mhs;
struct dtnil nil;
} nilai;
clrscr();
//-> masukan data
cout<>nilai.mhs.nim;
cout<>nilai.mhs.nama;
cout<>nilai.nil.nil1;
cout<>nilai.nil.nil2;
cout< menampilkan hasil masukan
cout<<"masukan NIM = "<<nilai.mhs.nim<<endl
cout<<"masukan Nama = "<<nilai.mhs.nama<<endl
cout<<"masukan Nilai UTS = "<<nilai.nil.nil1<<endl
cout<<"masukan Nilai UAS = "<<nilai.nil.nil2<<endl
cout<<endl;
getch();
return(0);
}
Structure dengan Array
struct
{
elemen_struktur;
…..
…..
} nama_tipe_struktur[jml_index];
Contoh3:
#include
#include
#include
main()
{
int i,j=1;
struct
{
char nim[10];
char nama[15];
float nilai;
} mhs[5];
clrscr();
for(i=1;i<=2;i++)
{
cout<<"Data ke-"<<i<<endl;
cout<>mhs[i].nim;
cout<>mhs[i].nama;
cout<>mhs[i].nilai;
cout<<endl;
}
for(i=1;i<=2;i++)
{
cout<<"Data ke-"<<i<<endl;
cout<<"NIM = "<<mhs[i].nim<<endl;
cout<<"Nama = "<<mhs[i].nama<<endl;
cout<<"Nilai Akhir = "<<mhs[i].nilai<<endl;
cout<<endl;
}
getch();
}
Structure dengan Function
/* —————————————— */
/* Program Penggunaan structure pada function */
/* Nama File : struct4.cpp */
/* —————————————— */
#include
#include
#include
char ket(float n);
main()
{
int i, j=1, k=1;
struct
{
char nim[5];
char nama[15];
float nilai;
} mhs[5];
clrscr();
for(i=0; i<2; i++)
{
cout<<"Data Ke – "<<j++<<endl;
cout<>mhs[i].nim;
cout<>mhs[i].nama;
cout<>mhs[i].nilai;
cout<<endl;
}
clrscr();
for(i=0; i<2; i++)
{
cout<<"Data Ke – "<<k++<<endl;
cout<<"NIM = "<<mhs[i].nim<<endl;
cout<<"Nama = "<<mhs[i].nama<<endl;
cout<<"Nilai Akhir = "<<mhs[i].nilai<<endl;
cout<<"Keterangan yang didapat = ";
cout<<ket(mhs[i].nilai)<<endl; cout< 65)
return ‘L';
else
return ‘G';
}
Contoh1:
/* —————————- */
/* Program Penggunaan structure */
/* Nama File : struct1.cpp */
/* —————————- */
#include
#include
#include
main()
{
struct
{
char nim[5];
char nama[15];
int nilai;
} mahasiswa;
clrscr();
cout<>mahasiswa.nim;
cout<>mahasiswa.nama;
cout<>mahasiswa.nilai;
cout<<"\n\nData Yang di Inputkan adalah : \n\n";
cout<<"NIM = "<<mahasiswa.nim<<endl
cout<<"Nama = "<<mahasiswa.nama<<endl
cout<<"Nilai Akhir = "<<mahasiswa.nilai<<endl
getch();
}
Nested Structure
Contoh2:
/* ———————————– */
/* Program Penggunaan Nested structure */
/* ———————————– */
#include
#include
#include
main()
{
struct dtmhs
{
char nim[9];
char nama[15];
};
struct dtnil
{
float nil1;
float nil2;
};
struct
{
struct dtmhs mhs;
struct dtnil nil;
} nilai;
clrscr();
//-> masukan data
cout<>nilai.mhs.nim;
cout<>nilai.mhs.nama;
cout<>nilai.nil.nil1;
cout<>nilai.nil.nil2;
cout< menampilkan hasil masukan
cout<<"masukan NIM = "<<nilai.mhs.nim<<endl
cout<<"masukan Nama = "<<nilai.mhs.nama<<endl
cout<<"masukan Nilai UTS = "<<nilai.nil.nil1<<endl
cout<<"masukan Nilai UAS = "<<nilai.nil.nil2<<endl
cout<<endl;
getch();
return(0);
}
Structure dengan Array
struct
{
elemen_struktur;
…..
…..
} nama_tipe_struktur[jml_index];
Contoh3:
#include
#include
#include
main()
{
int i,j=1;
struct
{
char nim[10];
char nama[15];
float nilai;
} mhs[5];
clrscr();
for(i=1;i<=2;i++)
{
cout<<"Data ke-"<<i<<endl;
cout<>mhs[i].nim;
cout<>mhs[i].nama;
cout<>mhs[i].nilai;
cout<<endl;
}
for(i=1;i<=2;i++)
{
cout<<"Data ke-"<<i<<endl;
cout<<"NIM = "<<mhs[i].nim<<endl;
cout<<"Nama = "<<mhs[i].nama<<endl;
cout<<"Nilai Akhir = "<<mhs[i].nilai<<endl;
cout<<endl;
}
getch();
}
Structure dengan Function
/* —————————————— */
/* Program Penggunaan structure pada function */
/* Nama File : struct4.cpp */
/* —————————————— */
#include
#include
#include
char ket(float n);
main()
{
int i, j=1, k=1;
struct
{
char nim[5];
char nama[15];
float nilai;
} mhs[5];
clrscr();
for(i=0; i<2; i++)
{
cout<<"Data Ke – "<<j++<<endl;
cout<>mhs[i].nim;
cout<>mhs[i].nama;
cout<>mhs[i].nilai;
cout<<endl;
}
clrscr();
for(i=0; i<2; i++)
{
cout<<"Data Ke – "<<k++<<endl;
cout<<"NIM = "<<mhs[i].nim<<endl;
cout<<"Nama = "<<mhs[i].nama<<endl;
cout<<"Nilai Akhir = "<<mhs[i].nilai<<endl;
cout<<"Keterangan yang didapat = ";
cout<<ket(mhs[i].nilai)<<endl; cout< 65)
return ‘L';
else
return ‘G';
}
Function
Fungsi (Function) merupakan blok dari kode yang dirancang untuk melaksanakan tugas khusus.
Kegunaan dari fungsi ini adalah untuk:
| Mengurangi pengulangan penulisan program yang berulangan atau sama.
| Program menjadi lebih terstruktur, sehingga mudah dipahami dan dapat lebih dikembangkan.
Fungsi-fungsi yang sudah kita kenal sebelumnya adalah fungsi main(), yang bersifat mutlak, karena fungsi ini program akan dimulai, sebagai contoh yang lainnya fungsi printf(), cout() yang mempunyai tugas untuk menampilkan informasi atau data kelayar dan masih banyak lainnya.
Struktur Fungsi
nama_fungsi(argumen)
{
… pernyataan / perintah;
… pernyataan / perintah;
… pernyataan / perintah;
}
Keterangan:
Ø Nama fungsi, boleh dituliskan secara bebas dengan ketentuan, tidak menggunakan spasi dan nama-nama fungsi yang mempunyai arti sendiri.
Ø Argumen, diletakan diantara tanda kurung “( )” yang terletak dibelakang nama fungsi. Argumen boleh diisi dengan suatu data atau dibiarkan kosong.
Ø Pernyataan / perintah, diletakan diantara tanda kurung ‘{ }’.
Pada pemanggilan sebuah fungsi, cukup dengan menuliskan nama fungsinya.
/* pembuatan fungsi garis() */
#include
#include
#include
garis()
{
printf(“\n———————-\n”);
}
/* program utama */
main()
{
clrscr();
garis(); //memanggil fungsi garis
cout<<"AMIK BSI – Salemba 22"<<endl;;
garis(); //memanggil fungsi garis
getche();
}
Prototipe Fungsi
Prototipe fungsi digunakan untuk mendeklarasikan ke kompiler mengenai: • Tipe data keluaran dari fungsi.
• Jumlah parameter yang digunakan
• Tipe data dari masing-masing parameter yang digunakan.
Keuntungan didalam pemakai prototipe yaitu :
• Kompiler akan melakukan konversi antara tipe parameter dalam definisi dan parameter fungsi.
• Jika jumlah parameter yang digunakan dalam definisi fungsi dan pada saat pemanggilan fungsi berbeda atau tidak sama, maka akan menunjukkan kesalahan.
Pernyataan return().
Digunakan untuk mengirimkan nilai atau nilai dari suatu fungsi kepada fungsi yang lain yang memanggilnya. Pernyataan return() diikuti oleh argumen yang berupa nilai yang akan dikirimkan. Contoh pemakaian pernyataan return() dapat dilihat pada contoh berikut ;
Contoh pengiriman data konstanta
/* ———————— */
/* Pengriman data Konstanta */
/* ———————— */
#include
#include
#include
luas(float sisi);
main()
{
float luas_bs;
clrscr();
luas_bs = luas(4.25);
cout<<"\nLuas Bujur Sangkar = "<<luas_bs;
getch();
}
luas(float sisi)
{
return(sisi*sisi);
}
Keterangan :
Dalam struktur program diatas dilihat bahwa, pernyataan luas_bs=luas(4.25), akan dikirimkan nilai kepada fungsi luas(), untuk diolah lebih lanjut, yang nilai tersebut akan ditampung pada variabel sisi. Selanjutnya didalam fungsi return terjadi perkalian sisi dengan sisi, setelah itu hasil perkalian tersebut dikirim balik ke variabel luas_bs yang memanggil fungsi.
Contoh Pengiriman data variable:
/* ———————— */
/* Pengriman data Variabel */
/* ———————— */
#include
#include
#include
luas(float sisi);
main()
{
float luas_bs, sisi_bs;
clrscr();
cout<<"\nMenghitung Luas Bujur Sangkar"<<endl;
cout<>sisi_bs;
luas_bs = luas(sisi_bs);
cout<<"\nLuas Bujur Sangkar = "<<luas_bs<<" Cm";
getch();
}
luas(float sisi)
{ return(sisi*sisi); }
Latihan function
#include
#include
#include
potong(float harga,float disk);
garis ()
{
printf(“===============================”);
}
main()
{
char nama[20],jwb;
long int harga,total,disk;
ulang:
clrscr();
garis();
cout<<"\n\tToko Mas Jayakarta "<<endl;
cout<>nama;
cout<>harga;
if(harga=1000000&&harga<=5000000)
disk=harga*0.2;
else
disk=harga*0.35;
cout<<"Besar diskont yang diberikan :"<<disk<<endl;
total=potong(harga,disk);
cout<<"Besar harga yang harus dibayar :"<<total<<endl;
cout<<"\n\tAnda Ingin Input Lagi [Y/T]:";jwb=getche();
if(jwb=='Y'||jwb=='y')
goto ulang;
getch();
}
potong(float harga,float disk)
{ return(harga-disk); }
/* Pengriman data Variabel */
/* ———————— */
#include
#include
#include
luas(float sisi);
main()
{
float luas_bs, sisi_bs;
clrscr();
cout<<"\nMenghitung Luas Bujur Sangkar"<<endl;
cout<>sisi_bs;
luas_bs = luas(sisi_bs);
cout<<"\nLuas Bujur Sangkar = "<<luas_bs<<" Cm";
getch();
}
luas(float sisi)
{ return(sisi*sisi); }
Latihan function
#include
#include
#include
potong(float harga,float disk);
garis ()
{
printf(“===============================”);
}
main()
{
char nama[20],jwb;
long int harga,total,disk;
ulang:
clrscr();
garis();
cout<<"\n\tToko Mas Jayakarta "<<endl;
cout<>nama;
cout<>harga;
if(harga=1000000&&harga<=5000000)
disk=harga*0.2;
else
disk=harga*0.35;
cout<<"Besar diskont yang diberikan :"<<disk<<endl;
total=potong(harga,disk);
cout<<"Besar harga yang harus dibayar :"<<total<<endl;
cout<<"\n\tAnda Ingin Input Lagi [Y/T]:";jwb=getche();
if(jwb=='Y'||jwb=='y')
goto ulang;
getch();
}
potong(float harga,float disk)
{ return(harga-disk); }
Tidak ada komentar:
Posting Komentar