LATIHAN PEMROGRAMAN KOMPUTER
MODUL I – INPUT/OUTPUT
& JENIS DATA
Memulai
Borland C++ 5.02
• Jalankan Borland C++ 5.02,
• Buat project baru:
pilih menu: File-New-Project… -> dialog New Target pada Project Path and Name, isikan nama proyeknya lengkap
contoh: c:\saya\proyek1.ide
pada Target Type, pilih: Application [.exe]
pada Platform, pilih: DOS (Standard)
(boleh pula memilih Target Type EasyWin [.exe] dengan Platform Windows 3.x (16))
pada Target Model, pilih: Large
hilangkan tanda centang pada Frameworks – Class Library
klik tombol OK
• Jalankan Borland C++ 5.02,
• Buat project baru:
pilih menu: File-New-Project… -> dialog New Target pada Project Path and Name, isikan nama proyeknya lengkap
contoh: c:\saya\proyek1.ide
pada Target Type, pilih: Application [.exe]
pada Platform, pilih: DOS (Standard)
(boleh pula memilih Target Type EasyWin [.exe] dengan Platform Windows 3.x (16))
pada Target Model, pilih: Large
hilangkan tanda centang pada Frameworks – Class Library
klik tombol OK
• Muncul
proyek baru dengan target proyek1.exe dan file proyek1.cpp
Klik dobel pada proyek1.cpp untuk mengeditnya
Siap untuk menuliskan programnya
• Untuk menjalankan program (pilih salah satu):
1. pilih menu: Debug-Run
2. tekan tombol Ctrl-F9
3. klik tombol di toolbar yang bergambar kilat kuning
Klik dobel pada proyek1.cpp untuk mengeditnya
Siap untuk menuliskan programnya
• Untuk menjalankan program (pilih salah satu):
1. pilih menu: Debug-Run
2. tekan tombol Ctrl-F9
3. klik tombol di toolbar yang bergambar kilat kuning
LATIHAN PEMROGRAMAN KOMPUTER
MODUL II –
INPUT/OUTPUT & JENIS DATA
Program
kombinasi input-output: data diri
Dalam
membuat program, usahakan agar mudah dimengerti, yaitu dengan memberi nama
variabel yang mempunyai arti, memberi keterangan, dan membuat program terstruktur dengan
baik.
variabel yang mempunyai arti, memberi keterangan, dan membuat program terstruktur dengan
baik.
Output
menggunakan stream: Hello World! dalam C++
#include <iostream.h>
main()
{
cout << “Hello world!\nWe’re in C++ now”;
}
Jalankan, dan selamat! Anda telah berhasil membuat program pertama dalam bahasa C++.
Gantilah isi programnya menjadi:
cout << “Hello world!” << endl
<< “We’re in C++ now”;
Hasilnya sama dengan sebelumnya. Apakah fungsi dari endl?
#include <iostream.h>
main()
{
cout << “Hello world!\nWe’re in C++ now”;
}
Jalankan, dan selamat! Anda telah berhasil membuat program pertama dalam bahasa C++.
Gantilah isi programnya menjadi:
cout << “Hello world!” << endl
<< “We’re in C++ now”;
Hasilnya sama dengan sebelumnya. Apakah fungsi dari endl?
Input
string menggunakan stream: program nama
#include <iostream.h>
main()
{
char nama[80];
cout << “Masukkan nama: “;
cin >> nama;
cout << “Halo ” << nama << endl
<< “Betul kan, kamu si ” << nama;
}
#include <iostream.h>
main()
{
char nama[80];
cout << “Masukkan nama: “;
cin >> nama;
cout << “Halo ” << nama << endl
<< “Betul kan, kamu si ” << nama;
}
Menggantikan
fungsi apakah cin dan cout
Program
input ke variabel bilangan: menghitung akar
#include <iostream.h>
#include <math.h>
main()
{
int a;
float b;
cout << “Masukkan nilai a = “;
cin >> a;
b = sqrt(a);
cout << “akar dari a = ” << b;
}
#include <iostream.h>
#include <math.h>
main()
{
int a;
float b;
cout << “Masukkan nilai a = “;
cin >> a;
b = sqrt(a);
cout << “akar dari a = ” << b;
}
Gantilah
tipe variabel a menjadi bilangan riil. Periksalah apakah ada bagian lain yang
perlu
dimodifikasi akibat pergantian tersebut?
dimodifikasi akibat pergantian tersebut?
LATIHAN PEMROGRAMAN KOMPUTER
MODUL III – STRUKTUR
PEMROGRAMAN: PENCABANGAN
Pencabangan
tunggal: IF
Buatlah
program di bawah ini. Jika umur diisi lebih dari 60 tahun maka akan ditampilkan
komentar.
komentar.
#include
<iostream.h>
main()
{ int umur;
cout << “Masukkan umurmu = “;
cin >> umur;
if umur >= 60
cout << “Halo mbah” << endl;
cout << “Jadi umurmu ” << umur << ” tahun”;
}
main()
{ int umur;
cout << “Masukkan umurmu = “;
cin >> umur;
if umur >= 60
cout << “Halo mbah” << endl;
cout << “Jadi umurmu ” << umur << ” tahun”;
}
Kompilelah
program tersebut, error apakah yang muncul dan bagaimana yang benar? Perbaiki
program tersebut dan jalankan beberapa kali dengan mengisikan nilai umur yang bervariasi.
Tambahkan baris berikut setelah baris cout << “Halo mbah…, untuk memberi komentar tambahan
jika umur lebih dari 60 tahun
program tersebut dan jalankan beberapa kali dengan mengisikan nilai umur yang bervariasi.
Tambahkan baris berikut setelah baris cout << “Halo mbah…, untuk memberi komentar tambahan
jika umur lebih dari 60 tahun
cout
<< “Salam buat cucumu ya” << endl;
Jalankan
dengan mengisikan umur 80 tahun, lalu jalankan lagi untuk umur 20 tahun.
Mengapa
komentar tambahan selalu muncul untuk umur berapapun (tidak sesuai dengan yang diinginkan)
serta bagaimana yang benar?
komentar tambahan selalu muncul untuk umur berapapun (tidak sesuai dengan yang diinginkan)
serta bagaimana yang benar?
Buatlah
program sesuai contoh berikut
#include
<iostream.h>
main()
{ int tahun, umur;
cout << “Masukkan tahun kelahiranmu = “;
cin >> tahun;
umur = 2003-tahun;
cout << “Umurmu ” << umur << ” tahun\n”;
if (umur < 17);
{ cout << “Kamu belum sweet seventeen\n”;
cout << “Belum cukup umur\n”; }
}
main()
{ int tahun, umur;
cout << “Masukkan tahun kelahiranmu = “;
cin >> tahun;
umur = 2003-tahun;
cout << “Umurmu ” << umur << ” tahun\n”;
if (umur < 17);
{ cout << “Kamu belum sweet seventeen\n”;
cout << “Belum cukup umur\n”; }
}
Kompile
program tersebut, tidak ada compile error (kecuali beberapa warning). Jalankan
dan
isikan tahun kelahiran 1988 dan 1975 serta nilai lain. Kesalahan apakah yang terjadi dan
bagaimana yang benar?
isikan tahun kelahiran 1988 dan 1975 serta nilai lain. Kesalahan apakah yang terjadi dan
bagaimana yang benar?
Pencabangan
ganda: IF-ELSE
Buatlah program untuk menentukan apakah seseorang lulus atau tidak menggunakan nilainya
Buatlah program untuk menentukan apakah seseorang lulus atau tidak menggunakan nilainya
#include
<iostream.h>
main()
{ int N;
cout << “Masukkan nilai (0 s/d 100) = “;
cin >> N;
if (N >= 50)
cout << “Lulus”
else (N < 50)
cout << “Tidak lulus”;
}
main()
{ int N;
cout << “Masukkan nilai (0 s/d 100) = “;
cin >> N;
if (N >= 50)
cout << “Lulus”
else (N < 50)
cout << “Tidak lulus”;
}
Error
apa yang muncul waktu dikompile dan bagaimana yang benar? Perbaiki dan jalankan
dengan mengisikan beberapa nilai N.
dengan mengisikan beberapa nilai N.
Pencabangan
bertingkat: IF-ELSE-IF
Buatlah program untuk memberi nilai huruf berikut.
Buatlah program untuk memberi nilai huruf berikut.
#include
<iostream.h>
main()
{ int N;
cout << “Masukkan nilai = “;
cin >> N;
cout << “Nilai huruf = “;
if (N >= 80)
cout << “A”;
if (N >= 60)
cout << “B”;
if (N >= 40)
cout << “C”;
if (N < 40)
cout << “D”;
}
main()
{ int N;
cout << “Masukkan nilai = “;
cin >> N;
cout << “Nilai huruf = “;
if (N >= 80)
cout << “A”;
if (N >= 60)
cout << “B”;
if (N >= 40)
cout << “C”;
if (N < 40)
cout << “D”;
}
Jalankan
dan isikan nilai 15, 25, 50, 75, dan 100. Hasilnya tidak sesuai dengan yang
seharusnya,
jelaskan mengapa bisa terjadi seperti itu. Perbaiki program di atas dengan struktur pencabangan
bertingkat: if … else if … else if …. dst.(6). Buat flowchart dari program tersebut.
jelaskan mengapa bisa terjadi seperti itu. Perbaiki program di atas dengan struktur pencabangan
bertingkat: if … else if … else if …. dst.(6). Buat flowchart dari program tersebut.
Kondisi
kombinatorial
Perbaiki program di atas dengan kondisi yang merupakan kombinasi logika, misalnya: jika N
lebih dari atau sama dengan 60 tetapi kurang dari 80 maka …, tanpa menggunakan pencabangan
bertingkat. Buat flowchart dari program tersebut.
Perbaiki program di atas dengan kondisi yang merupakan kombinasi logika, misalnya: jika N
lebih dari atau sama dengan 60 tetapi kurang dari 80 maka …, tanpa menggunakan pencabangan
bertingkat. Buat flowchart dari program tersebut.
Buat
flowchart dari program di bawah ini.
#include
<iostream.h>
main()
{ int N;
cout << “Masukkan nilai = “;
cin >> N;
cout << “Nilai huruf = “;
if (N >= 40)
if (N >= 60)
if (N >= 80)
cout << “A”;
else
cout << “B”;
else
cout << “C”;
else
cout << “D”;
}
main()
{ int N;
cout << “Masukkan nilai = “;
cin >> N;
cout << “Nilai huruf = “;
if (N >= 40)
if (N >= 60)
if (N >= 80)
cout << “A”;
else
cout << “B”;
else
cout << “C”;
else
cout << “D”;
}
Menu:
Program konversi suhu
Buatlah program untuk menghitung konversi suhu dari C ke F atau R dan sebaliknya. Program
dimulai dengan mengisikan suhu yang akan dikonversi, kemudian 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
Setelah dipilih, maka program melakukan perhitungan konversi sesuai dengan yang dipilih dan
menampilkan hasilnya. Gunakan struktur pencabangan IF untuk program tersebut. Buat dahulu
flowchartnya baru programnya.
Buatlah program untuk menghitung konversi suhu dari C ke F atau R dan sebaliknya. Program
dimulai dengan mengisikan suhu yang akan dikonversi, kemudian 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
Setelah dipilih, maka program melakukan perhitungan konversi sesuai dengan yang dipilih dan
menampilkan hasilnya. Gunakan struktur pencabangan IF untuk program tersebut. Buat dahulu
flowchartnya baru programnya.
LATIHAN PEMROGRAMAN KOMPUTER
MODUL IV – STRUKTUR
PEMROGRAMAN: LOMPATAN & KALANG
Pencabangan
Jalankan
program berikut dan isikan umur = 20, 19, 21, 23, dst. Bagaimana keluarannya?.
Bagian mana yang salah dan bagaimana modifikasinya?
#include
<iostream.h>
main()
{ int umur;
cout << “Masukkan umur anda = “;
cin >> umur;
if (umur = 20)
cout << “Umur anda tepat duapuluh tahun”;
else
cout << “Umur anda bukan duapuluh tahun”;
}
main()
{ int umur;
cout << “Masukkan umur anda = “;
cin >> umur;
if (umur = 20)
cout << “Umur anda tepat duapuluh tahun”;
else
cout << “Umur anda bukan duapuluh tahun”;
}
Pencabangan
berganda: SWITCH
Jalankan program berikut dan isikan kategori = A,B,C,D, atau E. Bagaimana keluarannya?. Modifikasilah agar menjadi benar.
Jalankan program berikut dan isikan kategori = A,B,C,D, atau E. Bagaimana keluarannya?. Modifikasilah agar menjadi benar.
#include
<iostream.h>
main() {
char kategori;
float diskon;
cout << “Kategori pelanggan (A/B/C/D/E) = “;
cin >> kategori;
switch (kategori) {
case ‘A’:
diskon = 40;
case ‘B’:
diskon = 25;
case ‘C’:
case ‘D’:
diskon = 10;
default:
diskon = 0;
}
cout << “Diskon = ” << diskon << “%”;
}
main() {
char kategori;
float diskon;
cout << “Kategori pelanggan (A/B/C/D/E) = “;
cin >> kategori;
switch (kategori) {
case ‘A’:
diskon = 40;
case ‘B’:
diskon = 25;
case ‘C’:
case ‘D’:
diskon = 10;
default:
diskon = 0;
}
cout << “Diskon = ” << diskon << “%”;
}
Lompatan:
label dan goto
Buatlah program di bawah ini. Jalankan dan tulislah tampilan yang muncul. Terangkan fungsi
dari label dan goto.
Buatlah program di bawah ini. Jalankan dan tulislah tampilan yang muncul. Terangkan fungsi
dari label dan goto.
#include
<iostream.h>
main()
{
cout << “Ini langkah pertama” << endl;
goto LABEL2;
LABEL1:
cout << “Ini langkah kedua” << endl;
goto LABEL3;
LABEL2:
cout << “Ini langkah ketiga” << endl;
goto LABEL1;
LABEL3:
cout << “Ini langkah keempat” << endl;
}
main()
{
cout << “Ini langkah pertama” << endl;
goto LABEL2;
LABEL1:
cout << “Ini langkah kedua” << endl;
goto LABEL3;
LABEL2:
cout << “Ini langkah ketiga” << endl;
goto LABEL1;
LABEL3:
cout << “Ini langkah keempat” << endl;
}
Pencabangan
& lompatan untuk perulangan
#include
<iostream.h>
#include <conio.h>
main()
{ float C, F;
int tombol;
Ulangi
cout << “Masukkan suhu dalam Celcius = “;
cin >> C;
F = 1.8*C+32;
cout << “Suhu dalam Fahrenheit = ” << F
<< endl;
cout << “Apakah mau mengulangi (Y/T)? “;
tombol = getch();
cout << endl;
if (tombol == ‘Y’)
goto Ulangi;
cout << “Selesai”;
}
#include <conio.h>
main()
{ float C, F;
int tombol;
Ulangi
cout << “Masukkan suhu dalam Celcius = “;
cin >> C;
F = 1.8*C+32;
cout << “Suhu dalam Fahrenheit = ” << F
<< endl;
cout << “Apakah mau mengulangi (Y/T)? “;
tombol = getch();
cout << endl;
if (tombol == ‘Y’)
goto Ulangi;
cout << “Selesai”;
}
Kompile
program di atas, ada error yaitu kesalahan dalam menulis label, bagaimana yang
benar? Perbaiki dan jalankan. Modifikasi program tersebut untuk dapat
mengulangi jika diberi
jawaban karakter Y maupun y. Apakah fungsi dari getch()
jawaban karakter Y maupun y. Apakah fungsi dari getch()
Kalang
bersyarat “periksa-jalankan” : WHILE
#include
<iostream.h>
#include <conio.h>
main()
{ char nama[80];
int tombol;
while ((tombol == ‘Y’)||(tombol == ‘y’)) {
cout << “Masukkan nama anda = “;
cin >> nama;
cout << “Halo ” << nama << endl << endl;
cout << “Apakah mau mengulangi (Y/T)? “;
tombol = getch();
cout << endl << endl;
}
cout << “Selesai”;
}
#include <conio.h>
main()
{ char nama[80];
int tombol;
while ((tombol == ‘Y’)||(tombol == ‘y’)) {
cout << “Masukkan nama anda = “;
cin >> nama;
cout << “Halo ” << nama << endl << endl;
cout << “Apakah mau mengulangi (Y/T)? “;
tombol = getch();
cout << endl << endl;
}
cout << “Selesai”;
}
Jalankan
program di atas, apa yang terjadi dan mengapa bisa begitu?. Bagaimana yang
benar?. Perbaiki dan jalankan.
Kalang
bersyarat “jalankan- periksa”: DO-WHILE
#include <iostream.h>
#include <conio.h>
main()
{ char nama[80];
int tombol, cacah = 0;
float nilai, jumlah = 0, rerata;
cout << “Menghitung rerata nilai\n”;
cout << “Masukkan nilai, “
<< “isikan negatif jika selesai\n\n”;
do {
cacah++;
cout << “Data ke-” << cacah << ” = “;
cin >> nilai;
jumlah = jumlah+nilai;
} while (nilai >= 0);
rerata = jumlah/cacah;
cout << “\nBanyaknya data = ” << cacah;
cout << “\nJumlah = ” << jumlah;
cout << “\nRerata = ” << rerata;
}
#include <iostream.h>
#include <conio.h>
main()
{ char nama[80];
int tombol, cacah = 0;
float nilai, jumlah = 0, rerata;
cout << “Menghitung rerata nilai\n”;
cout << “Masukkan nilai, “
<< “isikan negatif jika selesai\n\n”;
do {
cacah++;
cout << “Data ke-” << cacah << ” = “;
cin >> nilai;
jumlah = jumlah+nilai;
} while (nilai >= 0);
rerata = jumlah/cacah;
cout << “\nBanyaknya data = ” << cacah;
cout << “\nJumlah = ” << jumlah;
cout << “\nRerata = ” << rerata;
}
Apa
fungsi instruksi cacah++.
Jalankan
program di atas dan masukkan beberapa nilai untuk dihitung reratanya, akhiri
masukan
dengan memberikan nilai negatif (jangan cuma tanda minus thok). Periksa jawabannya, apakah
jawaban yang diperoleh sudah benar? Perbaiki program tersebut agar menjadi benar.
dengan memberikan nilai negatif (jangan cuma tanda minus thok). Periksa jawabannya, apakah
jawaban yang diperoleh sudah benar? Perbaiki program tersebut agar menjadi benar.
Buatlah
program untuk menghitung jumlah & rerata nilai, tetapi dengan memasukkan
dahulu
berapa banyaknya nilai yang akan dimasukkan. Tampilannya adalah sbb (huruf tebal adalah nilai
yang diisikan melalui keyboard). Buatlah dalam 2 versi, pertama menggunakan kalang WHILE, dan kedua menggunakan kalang DO-WHILE.
berapa banyaknya nilai yang akan dimasukkan. Tampilannya adalah sbb (huruf tebal adalah nilai
yang diisikan melalui keyboard). Buatlah dalam 2 versi, pertama menggunakan kalang WHILE, dan kedua menggunakan kalang DO-WHILE.
Banyaknya
nilai = 3
Data ke-1 = 10
Data ke-2 = 9
Data ke-3 = 8
Jumlah = 27
Rerata = 9
Data ke-1 = 10
Data ke-2 = 9
Data ke-3 = 8
Jumlah = 27
Rerata = 9
Menu:
Program konversi suhu dengan SWITCH
Buat pula program yang sama dengan pada bagian akhir Modul III menggunakan struktur
SWITCH, Buat dahulu flowchartnya baru programnya.
Buat pula program yang sama dengan pada bagian akhir Modul III menggunakan struktur
SWITCH, Buat dahulu flowchartnya baru programnya.
LATIHAN PEMROGRAMAN KOMPUTER
MODUL V – STRUKTUR
PEMROGRAMAN: KALANG FOR
Kalang
FOR untuk perulangan
#include <iostream.h>
main()
{
int i;
for (i=1; i<=20; i++) {
cout << “kalang ke-” << i << endl;
}
}
Jalankan program di atas dan lihat hasilnya. Perhatian fungsi dari ketiga bagian pada struktur for
(yang dibatasi dengan tanda titik-koma) dengan mengubah baris for di atas menjadi:
(a) for (i=10; i<=20; i++) {
(b) for (i=1; i<=10; i++) {
(c) for (i=1; i<=20; i=i+2) {
Jelaskan fungsi masing-masing bagian pada baris for
#include <iostream.h>
main()
{
int i;
for (i=1; i<=20; i++) {
cout << “kalang ke-” << i << endl;
}
}
Jalankan program di atas dan lihat hasilnya. Perhatian fungsi dari ketiga bagian pada struktur for
(yang dibatasi dengan tanda titik-koma) dengan mengubah baris for di atas menjadi:
(a) for (i=10; i<=20; i++) {
(b) for (i=1; i<=10; i++) {
(c) for (i=1; i<=20; i=i+2) {
Jelaskan fungsi masing-masing bagian pada baris for
LATIHAN PEMROGRAMAN KOMPUTER
MODUL VI – VARIABEL
LARIK: STRING
Sekup
variabel dalam kalang FOR
#include <iostream.h>
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;
}
#include <iostream.h>
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.
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 <stdio.h>
#include <iostream.h>
#include <string.h>
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;
}
#include <stdio.h>
#include <iostream.h>
#include <string.h>
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?
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
<iostream.h>
int N;
float jumlah, rerata, data[100];
void Masukkan_Data() {
cout << “Banyaknya nilai = “;
cin >> N;
for (int i=0; i<N; i++) {
cout << “Nilai ke-” << (i+1) << ” = “;
cin >> data[i];
}
}
void Hitung_Rerata() {
jumlah = 0;
for (int i=0; i<N; i++) {
jumlah = jumlah+data[i];
}
rerata = jumlah/N;
}
void Tampilkan_Hasil() {
cout << “Jumlah = ” << jumlah << endl;
cout << “Rerata = ” << rerata << endl;
}
main()
{
Masukkan_Data();
Hitung_Rerata();
Tampilkan_Hasil();
}
int N;
float jumlah, rerata, data[100];
void Masukkan_Data() {
cout << “Banyaknya nilai = “;
cin >> N;
for (int i=0; i<N; i++) {
cout << “Nilai ke-” << (i+1) << ” = “;
cin >> data[i];
}
}
void Hitung_Rerata() {
jumlah = 0;
for (int i=0; i<N; i++) {
jumlah = 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).
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 <iostream.h>
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():
Berikut ini adalah program untuk mengkonversi suhu dalam Celcius ke Fahrenheit menggunakan
fungsi.
#include <iostream.h>
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();
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:
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
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.
perhitungan konversi sesuai dengan yang dipilih dan menampilkan hasilnya. Gunakan struktur
pemrograman fungsi untuk masing-masing jenis konversi.
Sekup
variabel di dalam fungsi
#include <iostream.h>
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;
}
#include <iostream.h>
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
SebuahFungsi dengan:
(b) X = 20;
(c) int X = 20;
Apakah yang terjadi pada X untuk ketiga kasus tersebut
Pelewatan
parameter pada pemanggilan fungsi
#include <iostream.h>
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;
}
#include <iostream.h>
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.
fungsi Gandakan.
Overloading,
pendefinisian fungsi dengan nama sama
#include <iostream.h>
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?.
#include <iostream.h>
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 <iostream.h>
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.
#include <iostream.h>
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”;
}
}
{
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”;
}
}
0 komentar:
Posting Komentar