FUNGSI

STRING

Sekup variabel dalam kalang FOR
#include
main()
{
int i = 5;
cout << “di luar kalang i = ” << i << endl;
for (i=1; i<=10; i++) {
cout << “di dalam kalang i = ” << i << endl;
}
cout << “di luar kalang i = ” << i << endl;
}

Jalankan program di atas dan lihat hasilnya. Gantilah pernyataan for di atas menjadi:
for (int i=1; i<=10; i++) {
jalankan program tersebut dan perhatikan nilai i yang ditampil-kan. Apa pengaruh pendefinisian
variabel i di dalam kalang for. Gantilah pernyataan for di atas dengan menghilangkan bagian
inisialisasi kalang for menjadi:
for (; i<=10; i++) {
jalankan program tersebut dan lihat nilai i yang ditampilkan. Apakah yang terjadi apabila tidak
dilakukan inisialisasi pada kalang for.

Operasi pada string: Kutak-katik nama
#include
#include
#include
main()
{
char nama[80], nama2[80], tulisan[80];
int panjang, posisi;
cout << “Masukkan nama = “;
gets(nama);
strcpy(tulisan,”Halo “);
cout << strcat(tulisan,nama) << endl;
if (strcmp(nama,”Fella”) == 0) {
cout << “Namamu Fella kan” << endl; }
else {
cout << “Namamu bukan Fella” << endl; }
panjang = strlen(nama);
cout << “panjang namamu ” << panjang << endl;
posisi = strcspn(nama,”z”);
if (posisi < panjang) {
cout << “Huruf z pada posisi ” << posisi
<< endl; }
else {
cout << “Tidak ada huruf z nya” << endl; }
strcpy(nama2,nama);
cout << strupr(nama2) << endl;
cout << strlwr(nama2) << endl;
cout << strrev(nama2) << endl;
cout << strset(nama2,’x') << endl;
}

Jalankan program di atas dan jelaskan kegunaan dari fungsi berikut ini: strlen(), strcpy(), strcat(),
strcmp(),strlen(), strcspn(), strupr(), strlwr(), strrev(), dan strset(). Gantilah baris:
gets(nama);
menjadi:
cin >> nama;
Apakah efeknya pada waktu program dijalankan?

LATIHAN PEMROGRAMAN KOMPUTER
MODUL VII – FUNGSI

Fungsi untuk memotong-motong program

#include
int N;
float jumlah, rerata, data[100];
void Masukkan_Data() {
cout << “Banyaknya nilai = “;
cin >> N;
for (int i=0; icout << “Nilai ke-” << (i+1) << ” = “;
cin >> data[i];
}
}
void Hitung_Rerata() {
jumlah = 0;
for (int i=0; ijumlah = jumlah+data[i];
}
rerata = jumlah/N;
}
void Tampilkan_Hasil() {
cout << “Jumlah = ” << jumlah << endl;
cout << “Rerata = ” << rerata << endl;
}
main()
{
Masukkan_Data();
Hitung_Rerata();
Tampilkan_Hasil();
}

Fungsi dengan nilai kembalian (return value) : Bisection
Review kembali program bisection pada Modul V. Modifikasi program tersebut dengan
menggunakan fungsi, yaitu dengan menambahkan fungsi berikut sebelum main().
double y(double x)
{
return x*x-2*x-3;
}
Kemudian gantilah instruksi yang digunakan untuk mengitung nilai-nilai yL, yC, dan, yU
menjadi berikut ini:
yL = y(xL);
yC = y(xC);
yU = y(xU);
Jalankan dan periksa hasilnya. Apabila program tersebut digunakan untuk persamaan yang lain
yaitu exp(x) – 2*x – 2 = 0, apakah yang harus diubah dalam program tersebut? (akar persamaan
tersebut kira-kira adalah = 1.67835).

Program konversi suhu
Berikut ini adalah program untuk mengkonversi suhu dalam Celcius ke Fahrenheit menggunakan
fungsi.
#include
float Suhu_C, Suhu_F; // definisikan
variabel
float C_ke_F(float C) {
float F;
F = 1.8*C+32.0;
return F;
}
void Mengisi_Input() {
cout << “Isikan nilai Suhu C = “; // tampilkan tulisan
cin >> Suhu_C; // isikan nilai Suhu C
}
void Mengkonversi() {
Suhu_F = C_ke_F(Suhu_C); // hitung nilai Suhu F
}
void Menampilkan_Hasil() {
cout << “Temperatur ” << Suhu_C << ” C = “
<< Suhu_F << ” F” << endl;
}
main() {
Mengisi_Input();
Mengkonversi();
Menampilkan_Hasil();
}
Jalankan program di atas dan lihat hasilnya. Pindahkan keempat fungsi yang ada ke bagian bawah
setelah akhir dari program utama main() lalu kompilelah. Error apa yang muncul? Lalu
tambahkan pendefinisian keempat fungsi tadi di atas main():

float C_ke_F(float C);
void Mengisi_Input();
void Mengkonversi();
void Menampilkan_Hasil();

Jalankan dan jelaskan apa guna definisi fungsi tersebut.

Buatlah program untuk menghitung konversi suhu dari C ke F atau R dan sebaliknya. Program
dimulai dengan menampilkan pilihan (menu) sebagai berikut:

Pilih konversi berikut:
A. Celcius ke Fahrenheit
B. Fahrenheit ke Celcius
C. Celcius ke Reamur
D. Reamur ke Celsius
E. Fahrenheit ke Reamur
F. Reamur ke Fahrenheit
X. Selesai

Setelah dipilih, lalu mengisikan suhu yang akan dikonversi, kemudian program melakukan
perhitungan konversi sesuai dengan yang dipilih dan menampilkan hasilnya. Gunakan struktur
pemrograman fungsi untuk masing-masing jenis konversi.

Sekup variabel di dalam fungsi
#include
int X = 10;
void SebuahFungsi()
{
cout << “Di dalam fungsi, X = “
<< X << endl;
}
main()
{
cout << “Di dalam program utama, X = “
<< X << endl;
SebuahFungsi();
cout << “Keluar ke program utama lagi, X = “
<< X << endl;
}

(a) Jalankan program di atas dan perhatikan hasilnya. Tambahkan sebaris di atas cout dalam
SebuahFungsi dengan:
(b) X = 20;
(c) int X = 20;
Apakah yang terjadi pada X untuk ketiga kasus tersebut

Pelewatan parameter pada pemanggilan fungsi
#include
void Gandakan(int A, int *B, int &C)
{
A = A*2;
*B = *B*2;
C = C*2;
}
main()
{
int X = 1, Y = 10, Z = 6;
cout << “Sebelum fungsi Gandakan dipanggil\n”
<< “X = ” << X << endl
<< “Y = ” << Y << endl
<< “Z = ” << Z << endl;
Gandakan(X, &Y, Z);
cout << “Setelah fungsi Gandakan dipanggil\n”
<< “X = ” << X << endl
<< “Y = ” << Y << endl
<< “Z = ” << Z << endl;
}

Variabel manakah yang akan diubah nilainya ketika dijadikan parameter yang dilewatkan pada
fungsi Gandakan.

Overloading, pendefinisian fungsi dengan nama sama
#include
float HitungLuas(float R);
{
return 3.14159*R*R;
}
float HitungLuas(float P, float L)
{
return float P*L;
}
main()
{
float Radius, Luas, Panjang, Lebar;
cout << “Radius lingkaran = “;
cin >> Radius;
cout << “Panjang segiempat = “;
cin >> Panjang;
cout << “Lebar segiempat = “;
cin >> Lebar;
Luas = HitungLuas(Radius);
cout << “Luas lingkaran = ” << Luas << endl;
Luas = HitungLuas(Panjang, Lebar);
cout << “Luas segiempat = ” << Luas << endl;
}
Apakah yang menyebabkan terjadinya error pada program di atas?. Perbaikilah. Mengapa
tidak terjadi error ketika 2 buah fungsi menggunakan nama yang sama?.

Fungsi penukaran dua buah variabel
#include
void Tukarkan(int Angka1, int Angka2)
{
int temp = Angka1;
Angka1 = Angka2;
Angka2 = temp;
}
main()
{
int X = 1, Y = 99;
cout << “Sebelum ditukarkan”;
cout << “\nX = ” << X << “, Y = ” << Y;
Tukarkan(X, Y);
cout << “\nSetelah ditukarkan”;
cout << “\nX = ” << X << “, Y = ” << Y;
}
Mengapa nilai X dan Y tidak bertukaran pada program di atas, dan bagaimana cara
memperbaikinya. Cobalah program sorting di bawah ini, dengan masih menggunakan fungsi
Tukarkan di atas.

void Cetak(int D[])
{
for (int i=0; i<6; i++)
cout << D[i] << ” “;
cout << endl;
}
main()
{
int Data[6] = {10, 3, 5, 20, 15, 7};
cout << “Sebelum disortir:\n”;
Cetak(Data);
cout << “Proses sortir:\n”;
for (int i=0; i<5; i++) {
for (int j=4; j>=i; j–) {
if (Data[j+1] < Data[j])
Tukarkan(Data[j], Data[j+1]);
Cetak(Data);
}
cout << “—–\n”;
}
}

Comments

Popular Posts