Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
Penulis : Nizar_Aluk
Email @ [email protected]
YMessenger @ Nizar_aluk
Facebook @ Nizar al varez
WebBlog @ http://www.mbolongcs.co.cc
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
LAPORAN PRAKTIKUM
ALGORITMA DAN PEMROGRAMAN
Disusun Oleh :
NAMA : MUHAMMAD NIZAR AL-AYUBI
NIM : 111080200304
LABORATORIUM PEMROGRAMAN
FAKULTAS TEKNIK INFORMATIKA
UNIVERSITAS MUHAMMADIYAH SIDOARJO
2012
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
LABORATORIUM PEMROGRAMAN
FAKULTAS TEKNIK INFORMATIKA
UNIVERSITAS MUHAMMADIYAH SIDOARJO
2012
LEMBAR PERSETUJUAN
Telah Diperiksa Dan Disetujui
Isi Laporan Ini
LAPORAN PRAKTIKUM
ALGORITMA DAN PEMROGRAMAN
Disusun Oleh :
Nama : MUHAMMAD NIZAR AL-AYUBI
NIM : 111080200304
Mengetahui,
Koordinator pratikum
Alogoritma dan pemograman
( Ir.Rajudin )
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
KATA PENGANTAR
Puji syukur atas kehadirat Allah SWT yang telah memberikan rahmat,
hidayah, serta inayah-Nya sehingga penyusun dapat menyelesaikan Laporan fisika
dasar ini dengan baik.
Dalam pembuatan laporan ini, penyusun tidak lepas dari bantuan berbagai
pihak. Untuk itu penyusun menyampaikan terima kasih yang sebesar-besarnya
kepada :
1. Ade Eviyanti, S.Kom, selaku Kepala Laboratorium Pemgrograman
2. Ir.Rajudin, selaku Dosen Pembimbing dalam Praktikum
3. Asisten praktikum yang telah membantu terlaksananya Praktikum
Algoritma dan Pemrograman
4. Dan Semua pihak yang telah membantu penyusunan laporan praktikum
ini, baik secara langsung maupun tidak.
Namun penyusun menyadari banyak kekurangan yang terdapat dalam
laporan ini. Untuk itu penyusun memohon maaf yang sebesar-besarnya apabila
terdapat kesalahan dalam pembuatan laporan ini. Oleh karena itu, kritik dan saran
yang bersifat membangun dari berbagai pihak, sangat penyusun harapkan demi
perkembangan penyusun kearah yang lebih baik. Semoga laporan ini bermanfaat
bagi pembaca. Amin.
Sidoarjo, Agustus 2012
Penyusun
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
DAFTAR ISI
HALAMAN JUDUL ..............................................................................................
LEMBAR PERSETUJUAN ..................................................................................
KATA PENGANTAR .............................................................................................
DAFTAR ISI ...........................................................................................................
Lembar Asistensi Modul I ......................................................................................
Latihan Pemrograman Komputer Modul I-Input/Output & Jenis Data
1.1 Program perdana: Hello World! .................................................................
1.2 Program Tampilan Menggunakan Kode Escape .......................................
1.3 Program Contoh .........................................................................................
1.4 Program Mengisi Input ke Variabel String ................................................
1.5 Program Matematika Bilangan Bulat & Rill: Pembagian ..........................
1.6 Program Input ke Variabel bilangan: Menghitung Akar............................
1.7 Program Input ke Variabel Bilangan: Menghitung Rerata ..........................
1.8 Program Menghitung Invers ........................................................................
1.9 Kepresisian Bilangan Rill .........................................................................
1.10 Program Kombinasi Input-Output: Data Diri ...........................................
1.11 Output Menggunakan Stream: Hello World! Dalam C++ ..........................
1.12 Input String Menggunakan Stream: Program Nama ..................................
1.13 Program Input ke Variabel Bilangan: Menghitung Akar ............................
1.14 Program dengan beberapa Input: Menghitung Rerata ...............................
1.15 Tugas ..........................................................................................................
Lembar Asistensi Modul II ...................................................................................
Latihan Pemrograman Komputer Modul II-Struktur Pemrograman
Pencabangan ............................................................................................................
2.1 Pencabangan Tunggal: IF ...........................................................................
2.2 Program Contoh .........................................................................................
2.3 Pencabangan Ganda: IF-ELSE ...................................................................
2.4 Pencabangan Bertingkat: IF-ELSE-IF .......................................................
2.5 Kondisi Kombinatorial ...............................................................................
2.6 Tugas .........................................................................................................
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
Lembar Asistensi Modul III ..................................................................................
Latihan Pemrograman Komputer Modul III-Struktur Pemrograman:
Lompatan & Kalang ...............................................................................................
3.1 Pencabangan ...............................................................................................
3.2 Pencabangan Berganda: SWITCH .............................................................
3.4 Lompatan: Label dan Goto ........................................................................
3.5 Pencabangan & Lompatan Untuk Perulangan ...........................................
3.6 Kalang Bersyarat “Periksa-Jalankan”:WHILE ..........................................
3.7 Kalang Bersyarat “Jalankan-Periksa”:DO-WHILE ...................................
3.8 Tugas Program Konversi Suhu dengan Switch ..........................................
3.9 Tugas Program Perulangan ........................................................................
Lembar Asistensi Modul IV ..................................................................................
Latihan Pemrograman Komputer Modul IV-Struktur Pemrograman Kalang
4.1 Tabel Kuadrat .............................................................................................
4.2 Memutus Kalang: BREAK & CONTINUE ...............................................
4.3 Tabel Sinus .................................................................................................
4.4 Metode Numeris: Bisection ......................................................................
4.5 Kalang FOR Untuk Perulangan ................................................................
4.6 Kalang FOR Bertingkat: Tabel Perkalian .................................................
4.7 Kalang FOR Untuk Tabel Kode ASCII ....................................................
4.8 Kalang FOR Bertingkat Untuk Simulasi Bunyi Dering Telpon ...............
4.9 Variabel Larik Pada Perhitungan Nilai Rerata ..........................................
4.10 Tugas Tabel Konversi Suhu .......................................................................
4.11 Tugas Program Nilai Rerata dan Standar Deviasi.....................................
4.12 Tugas Program Menghitung Tinggi Pantulan Bola Jatuh Bebas ..............
Lembar Asistensi Modul V ....................................................................................
Latihan Pemrograman Komputer Modul V-Variabel Larik:
Matriks & Strings ...................................................................................................
5.1 Sekup Variabel Dalam Kalang FOR ..........................................................
5.2 Operasi Pada String: Kutak Katik Nama ...................................................
5.3 String Sebagai Larik Karakter: Caesar Chiper ...........................................
5.4 Tugas Program User dan Password............................................................
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
Lembar Asistensi Modul VI ...................................................................................
Latihan Pemrograman Komputer Modul VI-Fungsi ..........................................
6.1 Fungsi Untuk Memotong-motong Program ......................................................
6.2 Fungsi Untuk Mengisi dan Menampilkan Matriks ....................................
6.3 Fungsi dengan Nilai Kembalian (Return Value): Bisection .......................
6.4 Program Konversi Suhu .............................................................................
6.5 Tugas ..........................................................................................................
6.6 Sekup Variabel di dalam Fungsi ...............................................................
6.7 Pelewatan Parameter pada Pemanggilan Fungsi ........................................
6.8 Overloading, Pendefinisian Fungsi dengan Nama Sama ...........................
6.9 Nilai Default pada Parameter Fungsi .........................................................
6.10 Fungsi Penukaran Dua Buah Variabel .......................................................
6.11 Menulis ke File Teks ..................................................................................
6.12 Membaca dari File Teks .............................................................................
6.13 Tugas ..........................................................................................................
LEMBAR PENILAIAN .........................................................................................
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
LABORATORIUM PEMROGRAMAN
FAKULTAS TEKNIK INFORMATIKA
UNIVERSITAS MUHAMMADIYAH SIDOARJO
2012
Lembar Asistensi
Praktikum Algoritma dan Pemrograman
Modul I
Judul : Input / Output dan Jenis data
Nama : MUHAMMAD NIZAR AL-AYUBI
Nim : 111080200304
Kelompok : 12
Dilaksanakan : 01 Agustus 2012
Mengetahui,
Dosen Praktikum
Ir.Rajudin
Asisten Praktikum
Moch Solichuddin
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
LATIHAN PEMROGRAMAN KOMPUTER
MODUL I - INPUT/OUTPUT & JENIS DATA
Program perdana: Hello World!
#include <stdio.h>
void main()
{
puts ("Hello Word!");
}
Hasil output :
Membuat program dengan menggunakan fungsi puts
Hai, nama saya…….
Saya sedang belajar memprogram memakai Bahasa C
Lumayan deh kalu sudah lancar nanti
OK, bye-bye ya.
#include <stdio.h>
main()
{
puts("Hai, nama saya Muhammad Nizar A");
puts("Saya sedang belajar memprogram memakai Bahasa C");
puts("Lumayan deh kalau sudah lancar nanti");
puts("OK, bye-bye ya.");
}
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
Hasil output :
Program tampilan menggunakan kode escape
Membuat program berikut :
#include<stdio.h>
void main()
{
printf("1\t2\t3\t4\t5\t6\t7\t8\n");
printf("program\tkomputer\tbahasa\tc");
printf("\tdl Lab\tini\n");
printf("Saya sedang mempelajari\r");
printf ("kode escape\n");
puts("Suara apakah ini?\a");
}
Hasil output :
Pada program di atas fungsi puts diganti menjadi printf (tanpa mengubah
parameternya).
Apa yang terjadi?
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
Akan menghasilkan satu baris tanpa ada perintah ganti baris
Apakah perbedaan antara puts dan printf?
Puts berfungsi untuk menampilkan suatu keluaran ke layar tetapi fungsi puts
hanya digunakan untuk menampilkan nilai string, sedangkan printf berfungsi
untuk menampilkan suatu keluaran pada layar dan menampilkan semua jenis
data.
Memperhatikan tampilan yang ada di layar. Bagaimana efek kode escape \n, \t, \r
dan \a?
\n : ganti baris baru
\t : tab
\r : pindah ke kolom paling kiri dari baris yang sama
\a : bel
Buatlah program menggunakan fungsi puts atau printf untuk menampilkan
tulisan berikut di layar: (6)
#include <stdio.h>
void main()
{
printf("Motto saya:\n");
puts("Anything you can perceive, you can achieve");
}
Hasil output :
Motto saya:
"Anything you can perceive, you can achieve"
Kode \n adalah untuk ganti baris
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
Program mengisi input ke variabel string
#include<stdio.h>
main()
{
char nama[80];
printf("Masukan nama:");
gets(nama);
printf("Halo ");
puts(nama);
printf("Betul kah,kamu si %s\n",nama);
}
Hasil ouput :
Apa arti angka 80 pada nama[80] di atas?
Angka 80 pada nama[80] artinya maksimal string (huruf) yang bisa dimasukkan
Apa kegunaan fungsi gets?
Gets digunakan untuk mendefinisikan string yang dimasukkan ke program
Mengganti baris
gets(nama);
menjadi:
scanf("%s",nama);
#include <stdio.h>
void main()
{
char nama[80];
printf("Masukkan nama: ");
gets (nama);
printf("Hallo ");
puts(nama);
printf("Betul kan, kamu si %s?\n", nama);
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
}
Hasil Output :
Apa pula kegunaan fungsi scanf?
Scanf digunakan untuk mendefinisikan setiap input yang dimasukkan ke dalam
progam
Program matematika bilangan bulat & riil: pembagian
#include<stdio.h>
main()
{
int a=10, c;
float b=3.5, d;
c=a/b; d=a/b;
printf("a=%d\n",a);
printf("b=%f\n",b);
printf("c=%d\n",c);
printf("d=%f\n",d);
}
Hasil output :
Memperhatikan cara menginisialisasi nilai variable a dan b
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
Berapakah nilai c dan d?
c = 0.000000 dan d = 2.857143
Mengapa nilai keduanya berbeda meskipun operasinya sama?
Karena c didefinisikan bertipe int (bil. bulat) dan d bertipe float (bil. Pecahan)
Program input ke variabel bilangan: menghitung akar
#include <math.h>
#include <stdio.h>
void main()
{
int a;
float b;
printf("masukkan nilai a = ");
scanf("%d",&a);
b = sqrt(a);
printf("akar dari a=%f",b);
}
Hasil output :
Variabel a bertipe bilangan bulat. Coba masukan nilai a = 100.5
Bagaimana hasilnya? Mengapa bisa begitu?
-Hasilnya 10 atau akar dari a tetap berharga bilangan bulat.
-Karena a sudah didefinisikan bertipe int (bil bulat), maka yang di
perhatikan Cuma bilangan bulatnya saja.
Mengganti baris
scanf("%d",&a);
menjadi:
scanf("%f",&a);
Mengganti baris
printf("akar dari a = %f",b);
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
menjadi:
printf("akar dari a = %d",b);
#include<math.h>
#include<stdio.h>
void main()
{
int a;
float b;
printf("Masukkan nilai a = ");
scanf("%f",&a);
b = sqrt (a);
printf("akar dari a = %d",b);
}
Hasil Output :
Apa yang terjadi? (1)
Mengapa harus %d, dan bukannya %f.?(2)
Akar dari a adalah 135541297, karena %d digunakan untuk mendefinisikan input
bertipe bil. bulat ke program
Apa yang terjadi? (3)
Mengapa harus %f, dan bukannya %d.?(4)
Akar dari a adalah 0, karena %f digunakan untuk mendefinisikan input bertipe bil.
pecahan ke program.
Program input ke variabel bilangan: menghitung rerata
#include<stdio.h>
main()
{
float a,b,c,rerata;
printf("Masukan nilai a,b, dan c= ");
scanf("%f %f %f",&a,&b,&c);
rerata=(a+b+c)/3;
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
printf("Rerata=%f", rerata);
}
Hasil output :
Program menghitung invers
#include<stdio.h>
main()
{
int a;
float b,c;
printf("Masukkan a = ");
scanf("%d",&a );
b=1/a;
printf("b=1/%d=%f\n",a,b);
c=1.0/a;
printf("c=1/%d=%f\n",a,c);
}
Hasil output :
Mengapa nilai b dan c berbeda meskipun operasinya sama?
Karena b,c telah di definisikan bertipe float, jadi rumusnya harus dalam
operasi pecahan dan ini tidak terjadi pada b.
Kepresisian bilangan riil
#include <stdio.h>
void main()
{
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
float a = 3, b;
double c;
b = 1000/a;
c = 1000/a;
printf("a = %f\n",a);
printf("b = %f\n",b);
printf("c = %f\n",c);
}
Hasil output :
Mengapa nilai b dan c berbeda meskipun operasinya sama?
Karena nilai b bertipe data pecahan dengan ketetapan data tunggal (float),
sedangkan nilai c bertipe data numerik
Pengaturan tampilan
#include <stdio.h>
void main()
{
double a=3.0,b;
b=1000.0/a;
printf("a=%f\t\t b=%f\n",a,b);
printf("a=%7.2f\t\t b =%7.2f\n",a,b);
printf("a=%+7.4f\t\t b =%+7.4f\n",a,b);
printf("a=%q\t\t\t b=%q\n",a,b);
printf("a=%e\t b=%e\n",a,b);
printf("a=%5.2e\t b =%5.2e\n",a,b);
}
Hasil output :
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
Tuliskan secara singkat maksud dari masing-masing format tadi (%f, %7.2f,
%+7.4f, %g, %e, %5.2e) (5).
%f : memanggil variable bertipe bil. pecahan
%7.2f : memanggil variable betipe bil. pecahan dengan lebar tampilan 7
digit dan ketelitian (presisi) 2 digit.
%7.4f : memanggil variable betipe bil. pecahan dengan tanda + diawali
bilangan, lebar tampilan 7 digit dan ketelitian (presisi) 4 digit.
%g : memanggil variable bertipe pecahan dengan nilai desimalnya
adalah duplikasi bilangan sebelum koma, untuk a tidak ada
%e : menyatakan bilangan ke dalam standar pangkat
%5.2e : menyatakan bilangan ke dalam standar pangkat dengan lebar
tampilan 5 digit dan ketelitian 2 digit
Program kombinasi input-output: data diri
#include <stdio.h>
void main()
{
char nama[50], progstudi[15], NIM[12];
int angkatan;
/* Mengisi data */
printf("Nama : "); gets (nama);
printf("Program studi : "); gets (progstudi);
printf("Angkatan : "); scanf("%d",&angkatan);
printf("NIM : ");scanf("%s",NIM);
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
/* Menampikan data */
printf("\nData anda adalah :\n");
printf("%s (%s %d/%s)\n", nama,progstudi,angkatan,NIM);
}
Hasil Output :
Pesan error apakah yang muncul saat program tersebut tampil, serta bagaimana
cara membetulkannya?
Tidak ada pesan error pada program
Mengganti pemotongan baris baris ke-2 dan 3
(a) menjadi:
printf("%s (%s %d/%d)\n",nama,progStudi,angkatan,NIM);
(b) menjadi:
printf("%s (%s %d/%d)
\n",nama,progStudi,angkatan,NIM);
Manakah di antara (a) dan (b) yang memberikan pesan error, dan mengapa
bisa terjadi error? (1).
Muncul error : undefined symbol „nama‟ dan untuk membetulkannya ganti
nama menjadi Nama, pada pemotongan b terjadi error karena terjadi
pemotongan pada range fungsi printf, yaitu di dalam tanda “”.
Output menggunakan stream: Hello World! dalam C++
#include<iostream.h>
void main()
{
cout <<"Hello World!" << endl
<< "We're in C++ now";
}
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
Hasil Output :
Apakah fungsi dari endl? (2)
Fungsi endl adalah untuk ganti baris atau sama dengan fungsi \n
Membuat program menggunakan cout untuk menampilkan tulisan yang sama
dengan program contoh no (1) pada modul 1
#include <iostream.h>
main()
{
cout << "Hai, Nama saya Silfi Irawati" << endl
<<"saya sedang belajar memprogram memakai Bahasa C++"
<< endl
<< "Lumayan deh kalau sudah lancar nanti" << endl
<< "OK, bye-bye ya.";
}
Hasil output :
Input string menggunakan stream: program nama
#include<iostream.h>
void main()
{
char nama[80];
cout<<"Masukkan nama:";
cin>>nama;
cout << "Halo " << nama << endl
<< "Betul kan, kamu si " << nama;
}
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
Hasil Output :
Menggantikan fungsi apakah cin dan cout?
-fungsi cin menggantikan gets, scanf
-fungsi cout menggantikan puts, printf
Program input ke variabel bilangan: menghitung akar
#include <iostream.h>
#include<math.h>
void main()
{
int a;
float b;
cout << "Masukkan nilai a = ";
cin >> a;
b = sqrt (a);
cout << "akar dari a = "<< b ;
}
Hasil Output :
Bandingkan dengan program serupa pada modul 1 yang mengisikan variabel
dengan fungsi scanf. Apakah perbedaan perlakuan terhadap variabel a untuk
input menggunakan cin dalam program di atas dengan yang menggunakan
scanf (3)
?
Program dengan scanf : pemanggilan variable a dengan scanf (“%d”, &a);
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
Program dengan cin : pemanggilan variable a dengan cin >> a; lebih
simple dengan memakai cin
Program dengan beberapa input: menghitung rerata
#include <iostream.h>
void main()
{
float a, b, c, rerata;
cout << "Masukkan nilai a, b dan c = ";
cin >> a >> b >> c;
rerata = (a+b+c)/3;
cout<< "Rerata = " << rerata ;
}
Hasil Output :
Terjadi kesalahan pada input data cin dan seharusnya cin >> a >> b >> c;
1. Tugas
1. Memperbaiki Program sehingga bisa dijalankan :
#include <stdio.h>
main(){
int iPertama, iKedua;
float fHasil;
printf("Masukan Bilangan Pertama : ");
scanf("%d",&iPertama);
printf("Masukan Bilangan Kedua : ");
scanf("%d",&iKedua);
fHasil = iPertama / iKedua;
printf("Hasilnya : %f", fHasil);
}
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
Hasil Output :
2. Buatlah program untuk menghitung Luas (L) segitiga siku-siku jika
diketahui panjang Alas (A) dan panjang Tingginya (T)
L = ½ AT
T = 0.5*A*T
A
#include <iostream.h>
void main()
{
/*DEKLARASI*/
float alas;
float tinggi;
float luas;
/*ALGORITMA*/
cout<<"Berapa alas segitiga?";
cin>>alas;
cout<<"Berapa tinggi segitiga?";
cin>>tinggi;
luas=0.5*alas*tinggi;
cout<<"luas="<<luas;
}
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
Hasil Output :
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
LABORATORIUM PEMROGRAMAN
FAKULTAS TEKNIK INFORMATIKA
UNIVERSITAS MUHAMMADIYAH SIDOARJO
2012
Lembar Asistensi
Praktikum Algoritma dan Pemrograman
Modul II
Judul : Struktur pemograman pencabangan
Nama : MUHAMMAD NIZAR AL-AYUBI
Nim : 111080200304
Kelompok : 12
Dilaksanakan : 01 Agustus 2012
Mengetahui,
Dosen Praktikum
Ir.Rajudin
Asisten Praktikum
Moch Solichuddin
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
LATIHAN PEMROGRAMAN KOMPUTER
MODUL II - STRUKTUR PEMROGRAMAN
PENCABANGAN
Pencabangan tunggal: IF
Buatlah program dibawah ini. Jika umur diisi lebih dari 60 tahun mka akan
ditampilkan komentar.
#include <iostream.h>
void main()
{ int umur;
cout << "Masukkan umurmu = ";
cin >> umur;
if (umur >= 60)
cout << "Hallo mbah"<< endl;
cout << "Salam buat Adek ya" << endl;
cout << "Jadi umurmu "<< umur << " tahun ";
}
Hasil output :
Error apakah yang muncul serta bagaimana yang benar? (1)
Karena tidak ada {} setelah if, dimana tanda itu digunakan sebagai pembatas blok
instruksi if, yang benar
if (umur >= 60){
cout << "halo mbah"<< endl;
cout << "Salam buat cucumu ya" << endl;
}
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
Buatlah Program sesuai contoh berikut :
Program Contoh
#include<iostream.h>
void 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";}
}
Hasil output :
Jalankan dan isikan tahun kelahiran 1988 dan 1975 serta nilai lain. Kesalahan
apakah yang terjadi dan bagaimana yang benar? (2)
Terjadi kesalahan logika, seharusnya jika umur = 17 atau diatas 17 ada pesan
kamu sudah dewasa
Pencabangan ganda: IF-ELSE
Buatlah program untuk menentukan apakah seseorang lulus atau tidak
menggunakan nilainya.
#include <iostream.h>
void main()
{
int N;
cout <<"Masukkan nilai(0 s/d 100) = ";
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
cin >> N;
if (N>= 50)
cout <<"Lulus"<<endl;
else if(N < 50)
cout <<"Tidak Lulus"<<endl;
}
Hasil output :
Error apakah yang muncul waktu dicompile dan bagaimana yang benar?
Terjadi error karena setelah else tidak ada if
Pencabangan bertingkat: IF-ELSE-IF
Buatlah program untuk member nilai huruf berikut.
#include<iostream.h>
void main()
{ int N;
cout << "Masukkan nilai = ";
cin >> N;
cout << "Nilai huruf = ";
if (N >= 80)
cout << "A";
else if (N >= 60)
cout << "B";
else if (N >= 40)
cout << "C";
else if (N < 40)
cout << "D";
}
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
Hasil output :
Mengapa hasil yang dikeluarkan tidak sesuai?
Karena tidak sesuai dengan syntax if yang digunakan dan setelah if harus dipisah
dengan else sebelum membuat perintah if baru.
Flowchart program di atas
Mulai
Masukkan
nilai N
If(N>=80)
If(N>=60)
If(N>=40)
else If(N>=40)
Selesai
Nilai huruf = A
Nilai huruf = B
Nilai huruf = C
Nilai huruf = D
ya
ya
ya
ya
tidak
tidak
tidak
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
Kondisi kombinatorial
#include<iostream.h>
void 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";
}
Hasil output :
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
Flowchart dari program di atas
Tugas
1. Program Genap Ganjil
Tulis program untuk menentukan apakah bilangan yang diinput oleh user
genap atau ganjil.
Contoh masukan :
Bilangan = 10
Contoh keluaran :
Bilangan 10 adalah genap
#include <iostream.h>
int main(){
int bil;
Mulai
Masukkan
nilai N
If(N>=80)
If(N>=60) && (N<80))
If(N>=40) && (N<60))
else If(N<=40)
Selesai
Nilai huruf = A
Nilai huruf = B
Nilai huruf = C
Nilai huruf = D
ya
ya
ya
ya tidak
tidak
tidak
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
cout<<"Masukkan bilangan bulat yang akan
diperiksa:";cin>>bil;
//Melakukan pengecekan bilangan apakah habis di bagi
dua atau tidak
if (bil%2==0){
cout<<bil<<"adalah bilangan genap";
}else {
cout<<bil<<"adalah bilangan ganjil";
}
return 0;
}
Hasil Output :
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
LABORATORIUM PEMROGRAMAN
FAKULTAS TEKNIK INFORMATIKA
UNIVERSITAS MUHAMMADIYAH SIDOARJO
2012
Lembar Asistensi
Praktikum Algoritma dan Pemrograman
Modul III
Judul : Struktur Pemrograman : Lompatan & Kalang
Nama : MUHAMMAD NIZAR AL-AYUBI
Nim : 111080200304
Kelompok : 12
Dilaksanakan : 01 Agustus 2012
Mengetahui,
Dosen Praktikum
Ir.Rajudin
Asisten Praktikum
Moch Solichuddin
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
LATIHAN PEMROGRAMAN KOMPUTER
MODUL III - STRUKTUR PEMROGRAMAN
LOMPATAN & KALANG
Pencabangan
#include<iostream.h>
void main()
{
int umur;
cout<<"Masukkan umur anda = ";
cin>>umur;
if (umur==20)
cout<<"Umur anda tepat dua puluh tahun"<<endl;
else
cout<<"Umur anda bukan dua puluh tahun"<<endl;
}
Hasil output :
Terjadi kesalahan pada bagian if (umur = 20)
Dengan memodifikasi “== “
Pencabangan berganda: SWITCH
#include <iostream.h>
void main()
{
char kategori;
float diskon;
cout << "Kategori pelanggan (A/B/C/D/E) =";
cin >> kategori;
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
switch (kategori) {
case 'A':
diskon = 40;break;
case 'B':
diskon = 25;break;
case 'C':
case 'D':
diskon = 10;break;
default:
diskon = 0;
}
cout << "Diskon = " << diskon << "%";
}
Hasil output :
Dengan menambahkan break di setiap case
Lompatan: label dan goto
#include <iostream.h>
void 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;
}
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
Hasil output :
Label dan Goto befungsi :
Label sebagai penunjuk dalam proses
Goto digunakan untuk melompati suatu proses ke proses yang lainnya di dalam
program dan juga bisa digunakan sebagai suatu proses perbandingan
Pencabangan & lompatan untuk perulangan
#include <iostream.h>
#include <conio.h>
void main()
{
float C, F;
char 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();cin>>tombol;
cout << endl;
if (tombol == 'Y' || tombol == 'y'){
goto Ulangi;}
else{
cout << "Selesai";
}
}
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
Hasil output :
Dengan menambahkan
if (tombol == 'Y' || tombol == 'y'){
goto Ulangi;}
else{
cout << "Selesai";
}
Apakah fungsi dari getch()
Gets berfungsi untuk membaca sebuah karakter tanpa perlu menekan enter
Kalang bersyarat “periksa-jalankan” : WHILE
#include <iostream.h>
#include <conio.h>
void main()
{ char nama [80];
char 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();cin >> tombol;
cout << endl << endl;
}
cout << "Selesai";
}
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
Hasil Output :
Apa yang terjadi mengapa hasi output kosong?
Karena belum ada fungsi getch dan sebelum masuk while diberi fungsi getch
tombol:();
#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();cin>>tombol;
cout<<endl<<endl;
}
cout<<"Selesai"<<endl;
}
Hasil output :
Kalang bersyarat “jalankan- periksa”: DO-WHILE
#include <iostream.h>
#include <iostream.h>
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
#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;
}
Hasil output:
Apa fungsi instruksi cacah++ (1)
.
Adalah peningkatan dengan menambahkan nilai satu setiap kali looping
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
Dan menambahkan variabel bertipe integer dan mengganti while (cacah<i) dan i
diinputkan dari keyboard
Tugas
Menu:Program konversi suhu dengan switch
Flowchart program konversi suhu dengan switch
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
#include <iostream.h>
#include <conio.h>
void main()
{
char menu;
Mulai
Masukkan suhu
Tampilkan Menu
Pilih menu (A,B,C,D,E,F)
Switch Menu
Case
„A‟
Case
„B‟
Case
„C‟
Case
„D‟
Case
„E‟
Case
„F‟
Konver
si C ke
F
Konver
si F ke
C
Konver
si C ke
R
Konver
si R ke
C
Konver
si F ke
R
Konver
si R ke
F
Menampilkan
tulisan eror
Selesai
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
float suhu, celsius, fahrenheit, reamur;
cout << "Program kenversi suhu" << endl
<< "---------------------" << endl;
cout << "Masukkan suhu = ";
cin >> suhu;
cout << "\nMenu konversi suhu :" << endl
<< "A. Celsius ke Fahrenheit" << endl
<< "B. Fahrenheit ke Celsius" << endl
<< "C. Celsius ke Reamur" << endl
<< "D. Reamur ke Celsius" << endl
<< "E. Fahrenheit ke Reamur" << endl
<< "F. Reamur ke Fahrenheit" << endl;
cout << "Pilih konversi suhu = ";
cin >> menu;
switch (menu){
case 'A':
fahrenheit = 9.0/5.0*suhu + 32;
cout << suhu << " C = " << fahrenheit << " F";
break;
case 'B':
celsius = 5.0/9.0*(suhu - 32);
cout << suhu << " F = " << celsius << " C";
break;
case 'C':
reamur = 4.0/5.0*suhu;
cout << suhu << " C = " << reamur << " R";
break;
case 'D':
celsius = 5.0/4.0*suhu;
cout << suhu << " R = " << celsius << " C";
break;
case 'E':
reamur = 4.0/9.0*(suhu - 32);
cout << suhu << " F = " << reamur << " R";
break;
case 'F':
fahrenheit = 9.0/4.0*suhu + 32;
cout << suhu << " R = " << fahrenheit << " F";
break;
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
default:
cout << "error";
break;
}
}
Hasil Output :
Program Perulangan
Buatlah program perulangan untuk menampilkan kalimat “Halo apa khabar ?”
sebanyak 5 kali. Dengan Sintaks: While, Do….While, dan For.
- Dengan Sintaks : While
#include <iostream.h>
int main(){
int C;
C=0;
while(C<5){
cout<<"Halo apa khabar?"<<endl;
C++;
}
return 0;
}
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
Hasil Output :
-Dengan Sintaks : Do-While
#include <iostream.h>
int main(){
int C=0;
do{
cout<<"Halo apa khabar?"<<endl;
C++;
}while(C<5);
return 0;
}
Hasil Output :
- Dengan Sintaks : For
#include <iostream.h>
int main(){
int C;
for (C=0;C<5;C++){
cout<<"Halo apa khabar?"<<endl;
}
return 0;
}
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
Hasil Output :
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
LABORATORIUM PEMROGRAMAN
FAKULTAS TEKNIK INFORMATIKA
UNIVERSITAS MUHAMMADIYAH SIDOARJO
2012
Lembar Asistensi
Praktikum Algoritma dan Pemrograman
Modul IV
Judul : Struktur Pemrograman : Kalang
Nama : MUHAMMAD NIZAR AL-AYUBI
Nim : 111080200304
Kelompok : 12
Dilaksanakan : 02 Agustus 2012
Mengetahui,
Dosen Praktikum
Ir.Rajudin
Asisten Praktikum
Moch Solichuddin
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
LATIHAN PEMROGRAMAN KOMPUTER
MODUL IV - STRUKTUR PEMROGRAMAN:
KALANG
Tabel kuadrat
#include <iostream.h>
#include <iomanip.h>
void main()
{
int x=0;
cout << " x x kuadrat\n";
while (x <= 20)
cout << setw(3) << x << setw(8) << (x*x) << endl;
x++;
}
Hasil output :
Ada beberapa kesalahan, karena while tidak ada kurung kurawal buka dan tutup
while (x <= 20) }
cout << setw(3) << x << setw(8) << (x*x) << endl;
x++;
}
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
Apa guna fungsi setw( ) berfungsi membuat tampilan dalam rata kanan dengan
lebar ditentukan oleh nilai yang ada dalam kurung
Memutus kalang: BREAK & CONTINUE
#include <iostream.h>
void main()
{
int i = 0;
cout << i;
do {
i++;
cout << "- ";
if (i == 4)
continue;
cout << i;
} while (i < 10);
cout << "\nSelesai\n";
}
Hasil output :
Fungsi simbol / /
Berfungsi sebagai komentar dalam program / keterangan
Fungsi dari keyword break
Break berfungsi mengeluarkan eksekusi compiler dari struktur program setelah
suatu kondisi tertentu dipenuhi
Fungsi dari continue
Continue berfungsi melanjutkan eksekusi compiler ke blok selanjutnya setelah
suatu kondisi tertentu dipenuhi.
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
Tabel sinus
#include <stdio.h>
#include <math.h>
void main ()
{
const float PI = 3.141593;
int x = 0, x2;
float y,y2;
puts ("Tabel sinus\n--");
puts (" x sin(x) x sin(x)");
do {
y = sin (x/180.0*PI);
x2 = x+180;
y2 = sin(x2/180*PI);
printf("%4d %8.4f %4d %8.4f\n",
x,y,x2,y2);
x+= 10;
}
while (x <= 180 );
}
Hasil output :
Yang menyebabkan nilai dalam tabel salah
y = sin (x/80,0*PI)
y = sin (x2/80*PI)
Seharusnya
y = sin (x/57,2958)
y 2= sin (x/57,2958)
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
Apakah fungsi dari operator += ?
+= untuk menambahkan nilai x dengan nilai 10
Metode numeris: Bisection
#include <iostream.h>
#include <iomanip.h>
#include <math.h>
void main()
{
int iterasi = 0;
double xL, xC, xU, yL, yC, yU;
cout <<"Mencari akar persamaan x*x-2*x-3=0"
<<"dengan metode bisection\n"
<<"Masukkan tebakan awal bawah = ";
cin >> xL;
cout<< "Masukkan tebakan awal atas = ";
cin >> xU;
cout << "iterasi xL xC"
<< " xU yL"
<< " yC yU\n";
do{
xC = ( xL+xU)/2;
yL = xL*xL-2*xL-3;
yU = xU*xU-2*xU-3;
yC = xC*xC-2*2*xC-3;
cout << setw(5) << iterasi
<< setiosflags (ios::fixed)
<< setprecision (5)
<<setw (12) << xL
<<setw (12) << xC
<<setw (12) << xU
<<setw (12) << yL
<<setw (12) << yC
<<setw (12) << yU << endl;
if (yL*yC <= 0)
xU = xC;
else
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
xL = xC;
iterasi ++;
}
while ((iterasi <= 50 )&& (fabs(yC)>1e-5));
cout << "Jadi akarnya adalah "<< xC;
}
Hasil outputnya:
Set presision, merupakan suatu fungsi manipulator yang digunakan untuk
mengatur jumlah digit desimal yang ingin ditampilkan.
Apa beda antara ios::fixed dan ios::scientific, mempunyai fungsi yang sama yaitu
format bilangan riil akan tetap dapat diubah dengan memanggil fungsi set atau
unset diikuti argumen ios::scientific atau ios::fixed
Kalang FOR untuk perulangan
#include <iostream.h>
void main()
{
int i;
for (i=1; i<=20; i++) {
cout << "kalang ke-" << i << endl;
}
}
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
Hasil output :
Fungsi masing-masing bagian pada baris for
(a)for (i=10; i<=20; i++) { : mengurutkan angka kalang 10 samapi 20
(b)for (i=1; i<=10; i++) { : mengurutkan angka kalang 1 sampai 10
(c)for (i=1; i<=20; i=i+2) { : mengurutkan angka kalang dengan
kelipatan 2
Kalang FOR bertingkat: Tabel Perkalian
#include <iostream.h>
#include <iomanip.h>
void main ()
{
for (int i=1; i<=10; i++) {
for (int j=1; j<=i; j++) {
cout << setw (5) << i*j;
}
cout << endl;
}
}
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
Hasil outputnya:
Kalang FOR untuk Tabel Kode ASCII
#include <iostream.h>
#include <iomanip.h>
void main ()
{
cout << "\t";
for (int i=32; i<=255; i++) {
cout << setw(3) << i << " "
<< char (i) << " ";
}
}
Hasil output :
Kelompok karakter apa yang masing-masing mempunyai kode dari 48 s/d 57, dari
65 s/d 90, dari 97 s/d 122 ?
kode dari 48 s/d 57 termasuk karakter angka 0-9
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
kode dari 65 s/d 97 termasuk karakter huruf capital A-Z
kode dari 97 s/d 122 termasuk marakter huruf kecil a-z
Kalang FOR bertingkat untuk simulasi bunyi dering telepon
#include <iostream.h>
#include <dos.h>
int main()
{
int kring;
for (kring = 1; kring <=2; kring++) {
delay(1000);
cout << "kr";
for (int i=1; i<=20; i++) {
cout << "i";
sound(600);
delay(100);
nosound();
sound(1500);
delay(30);
nosound();
}
cout << "ng\n";
}
return 0;
}
Hasil Output:
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
--------------------Configuration: modul6 latihan5 - Win32 Debug--------------------
Compiling...
M Nizar A(304).cpp
f:\M Nizar A(111080200304)\modul 4\M Nizar A(304).cpp (8) : error C2065:
'delay' : undeclared identifier
f:\M Nizar A(111080200304)\modul 4\M Nizar A(304).cpp (8) : error C2065:
'sound' : undeclared identifier
f:\M Nizar A(111080200304)\modul 4\M Nizar A(304).cpp (8) : error C2065:
'nosound' : undeclared identifier
Error executing cl.exe.
3 buah error apa yang terjadi ?
„delay‟ : undeclarated identifier
„sound‟ : undeclarated identifier
„nosound‟ : undeclarated identifier
Fungsi delay() ? berfungsi sebagai waktu tunda antara bunyi pertama ke bunyi
berikutnya
Fungsi sound() ? berfungsi menunjukkan besarnya frekuensi bunyi yang
dikeluarkan
Variabel larik pada perhitungan nilai rerata
Ingat kembali menghitung nilai rerata 3 nilai pada modul II. Alih-alih
menggunakan sebuah variable larik a. Error apa yang terjadi dan bagaimana yang
benar?
Error penggunaan tanda kurung (), seharusnya [] pada baris cin >> a(0) > a(1) >>
a(2);
#include <iostream.h>
main()
{
int N;
float jumlah, rerata, a[5];
cout << "banyaknya nilai = ";
cin >> N;
jumlah = 0;
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
for (int i=0; i<N; i++) {
cout << "Nilaike-" << (i+1) << " = ";
cin >> a[i];
jumlah = jumlah+a[i];
}
rerata = jumlah/N;
cout << "Rerata = " << rerata;
}
Hasil output :
Tugas
Tabel konversi suhu
#include <stdio.h>
#include <math.h>
void main()
{
int C=0;
float F, R, K;
puts("Tabel konversi suhu\n-------------------");
puts(" C F R K");
do {
F = 9.0/5.0*C + 32;
R = 4.0/5.0*C;
K = C + 273.25;
printf("%4d %8.1f %8.1f %8.2f\n",C,F,R,K);
C += 5;
} while (C <= 100);
}
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
Hasil output :
Perhitungan nilai rerata dan standar deviasi
#include <iostream.h>
#include <math.h>
void main()
{
int N;
float jumlah, rerata, pemb, stdrdev, a[5];
cout << "Banyaknya nilai = ";
cin >> N;
jumlah = 0;
for (int i=0; i<N; i++)
{
cout << "Nilai ke -" << (i+1) << " = ";
cin >> a[i];
jumlah += a[i];
}
rerata = jumlah/N;
pemb=0;
for(i=0; i<N; i++){
pemb += (a[i]-rerata )*(a[i]-rerata);
}
stdrdev = sqrt(pemb/(N-1));
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
cout << "rerata = " << rerata;
cout <<"\nstandar deviasi= "<< stdrdev;
}
Hasil output :
Program menghitung tinggi pantulan bola jatuh bebas
#include <iostream.h>
#include <iomanip.h>
void main()
{
float h,h0;
cout << "\nTinggi awal = ";
cin >> h0;
cout << "Pantulan ke- \t tinggi" << endl;
h=h0;
for (int i=1; i<=50; i++){
h=h-(0.2*h);
cout << setw(5) << i
<< setiosflags(ios::showpoint | ios::fixed)
<< setprecision(3) << setw(18) << h << endl;
if (h<1)
break;
}
}
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
Hasil Output:
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
LABORATORIUM PEMROGRAMAN
FAKULTAS TEKNIK INFORMATIKA
UNIVERSITAS MUHAMMADIYAH SIDOARJO
2011
Lembar Asistensi
Praktikum Algoritma dan Pemrograman
Modul V
Judul : Variabel Larik: Matriks & String
Nama : MUHAMMAD NIZAR AL-AYUBI
Nim : 111080200304
Kelompok : 12
Dilaksanakan : 02 Agustus 2012
Mengetahui,
Dosen Praktikum
Ir.Rajudin
Asisten Praktikum
Moch Solichuddin
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
LATIHAN PEMROGRAMAN KOMPUTER
MODUL V - VARIABEL LARIK: MATRIKS &
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;
}
Hasil Output ;
Mengganti 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(1)
. Muncul error karena Multiple
declaration for „i‟.
Mengganti pernyataan for di atas dengan menghilangkan bagian inialisasi kalang
for menjadi :
for (; i<=10; i++) {
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
Apakah yang terjadi apabila tidak dilakukan inisialisasi pada kalang for(2)
.
Pengaksesan variabel dalam kalang for memakai nilai awal yang telah
didefinisikan diluar kalang for
Hasil Output :
Kalang FOR untuk mengisi dan menampilkan matriks
#include <iostream.h>
main()
{
int i,j,N = 3;
float A[5][5];
for ( i=0; i<N; i++) {
for ( j=0; j<N; j++) {
cout << "A(" << i << "," << j << ") = ";
cin >> A[i][j];
}
}
cout << "Matriks A = \n";
for ( i=0; i<N; i++) {
for ( j=0; j<N; j++) {
cout << "\t" << A[i][j];
}
cout << endl;
}
}
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
Hasil Output ;
Program di atas adalah sebuah contoh program yang digunakan untuk mengisi
nilai-nilai elemen pada matriks ukuran 3x3. Modifikasi (dengan menambah atau
mengubah sekitar 3 baris saja) program tersebut agar dapat digunakan untuk
mengisi dan menampilkan matriks yang berukuran 4 baris x 5 kolom (3)
.
#include <iostream.h>
void main()
{
int N = 4;
int M = 5;
float A[5][5];
for (int i=0; i<N; i++) {
for (int j=0; j<M; j++) {
cout << "A(" << i << "," << j << ") = ";
cin >> A[i][j];
}
}
cout << "\nMatriks A = \n";
for ( i=0; i<N; i++) {
for (int j=0; j<M; j++) {
cout << "\t" << A[i][j];
}
cout << endl;
}
}
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
Hasil Output ;
Menambahkan beberapa baris perintah-perintah lain pada program di atas untuk
mengisi dan menampilkan juga matriks B dengan ukuran yang sama (3x3),
kemudian menampilkan matriks C yang merupakan matriks hasil penjumlahan A
dan B. Ingatlah bahwa penjumlahan matriks dilakukan elemen demi elemen (4)
.
Kemudian dari program tersebut gantilah kalang yang digunakan untuk
menghitung matriks C sebagai penjumlahan antara A dan B menjadi perkalian
antara matriks A dan B.
#include <iostream.h>
void main()
{
int i,j,N = 3;
float A[5][5];
float B[5][5];
cout << "Masukkan Matrix A = \n";
for ( i=0; i<N; i++) {
for ( j=0; j<N; j++) {
cout << "A(" << i << "," << j << ") = ";
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
cin >> A[i][j];
}
}
cout << "Masukkan Matrix B = \n";
for ( i=0; i<N; i++) {
for ( j=0; j<N; j++) {
cout << "B(" << i << "," << j << ") = ";
cin >> B[i][j];
}
}
cout << "Matriks A = \n";
for ( i=0; i<N; i++) {
for ( j=0; j<N; j++) {
cout << "\t" << A[i][j];
}
cout << endl;
}
cout << "Matriks B = \n";
for ( i=0; i<N; i++) {
for ( j=0; j<N; j++) {
cout << "\t" << B[i][j];
}
cout << endl;
}
cout << "Penjumlahan Matrix = \n";
for (i=0; i<N; i++) {
for (j=0; j<N; j++) {
cout << "\t" << A[i][j]+B[i][j];
}
cout << endl;
}
cout << "Perkalian Matrix = \n";
for (i=0; i<N; i++) {
for (j=0; j<N; j++) {
cout << "\t" << A[i][j]*B[i][j];
}
cout << endl;
}
}
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
Hasil Output ;
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 {
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
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;
}
Hasil Output ;
Jalankan program di atas dan jelaskan kegunaan dari fungsi berikut ini: strlen(),
strcpy(), strcat(), strcmp(),strlen(), strcspn(), strupr(), strlwr(), strrev(), dan strset()
(5).
strlen() = Bentuk format strlen(const char *s)
Fungsi menghitung panjang string s
strcpy() = Bentuk format strcpy(char *dest, const char *src)
Fungsi mengkopi string src ke dest
strcat() = Bentuk format strcat (char*dest, const char*src)
Fungsi menambahkan kopian src ke bagian akhir dest
strcmp() = Bentuk format strcmp(const char*s1, const char*s2)
Fungsi melakukan perbandingan s1 dengan s2
strcspn() = Bentuk format strcspn (const char *s1, const char *s2)
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
Fungsi menemukan bagian awal string s1 yang mengandung s2
strupr() = Bentuk format strupr(const char *s)
Fungsi mengubah string menjadi huruf KAPITAL (uppercase)
strlwr() = Bentuk format strlwr(const char *s)
Fungsi mengubah string menjadi huruf biasa/kecil (lowercase)
strrev() = Bentuk format strrev(const char *s)
Fungsi membalik semua karakter string, jadi huruf terakhir
menjadi awal
strset() = Bentuk format strset(const char *s, int ch)
Fungsi menset semua karakter dalam s ke ch
Gantilah baris:
gets(nama);
menjadi:
cin >> nama;
Apakah efeknya pada waktu program dijalankan? (6)
tidak memberikan efek saat program dijalankan, artinya keduanya memiliki fungsi
yang sama. Perbedaannya gets hanya bisa digunakan untuk operasi string, tetapi
cin dapat digunakan secara umum
Hasil Output:
String sebagai larik karakter: Caesar Chiper
#include <iostream.h>
#include <stdio.h>
#include <string.h>
main()
{
char tulisan[100], terenkripsi[100];
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
int kunci, panjang, kode;
cout << "Masukkan tulisan = ";
gets(tulisan);
cout << "Masukkan nilai kunci = ";
cin >> kunci;
panjang = strlen(tulisan);
strcpy(terenkripsi,tulisan);
for (int i=0;i<panjang;i++) {
kode = int(tulisan[i])+kunci;
if (kode < 32)
kode = kode + 95;
if (kode > 126)
kode = kode - 95;
terenkripsi[i] = char(kode);
}
cout << "Terenkripsi = " << terenkripsi << endl;
}
Hasil Output ;
Menjalankan program tersebut, masukkan sebuah tulisanb dan juga kunci untuk
mengenkripsi (bil bulat positif atau negatif). Sifat operasinya adalah dapat-balik
(reversible). Untuk mendekripsi gunakan nilai lawan dari kunci tersebut.
Bagaimana bentuk terenkripsi dari “Teknik Fisika” dengan kunci 10 (7)
?
Bentuk terenkripsi dari “Teknik Fisika ” dengan kunci 10 adalah ~ouxsu*ps}suk
Apa tulisan asli dari pesan berikut ini serta berapa nilai kunci yang dipakai untuk
mengenkripsi tulisan aslinya (8)
?
tulisan asli dari Ru|qzq#0!u}# w#q}q~0rqxq$q0S tidak dapat saya temukan!
Hilangkan baris strcpy(... di atas, apa yang terjadi (9)
?
strcpy(terenkripsi,tulisan); dihilangkan maka saat program dijalankan
muncul baris Teknik Fisika setelah baris Terenkripsi = ~ouxsu*ps}suk jika
inputnya Teknik Fisika.
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
Tugas Program User dan Password
Perbaiki program dibawah ini sehingga ketika password dimasukkan akan muncul
tanda *.
Hasil Program :
#include <stdio.h>
#include <conio.h>
#include <string.h>
void main()
{
char username[25],password[12];{
printf("User Name :");gets(username);
printf("Password :");
for(int i=0;i<32;i++){
password[i]=getch();
if(password[i]=='\r'){
password[i]=NULL;
break;}
if(password[i]=='\b'){
if(i!=0)printf("\b\b");
password[i]=NULL;
password[i-1]=NULL;
i-=2;
if(i<-1)i=-1;
continue;
}
printf("*");
}
if((strcmp(username,"daku")==0) &&
(strcmp(password,"tif05")==0))
{
printf("\nUsername dan password Ok !!!\n");
}
else {
printf("\n\nUsername Or password invalid !!!\n");
}
getch();
}}
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
Hasil Output :
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
LABORATORIUM PEMROGRAMAN
FAKULTAS TEKNIK INFORMATIKA
UNIVERSITAS MUHAMMADIYAH SIDOARJO
2012
Lembar Asistensi
Praktikum Algoritma dan Pemrograman
Modul VI
Judul : Fungsi
Nama : MUHAMMAD NIZAR AL-AYUBI
Nim : 111080200304
Kelompok : 12
Dilaksanakan : 02 Agustus 2012
Mengetahui,
Dosen Praktikum
Ir.Rajudin
Asisten Praktikum
Moch Solichuddin
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
LATIHAN PEMROGRAMAN KOMPUTER
MODUL VI – FUNGSI
Fungsi untuk memotong-motong program
Menjalankan program, lalu ubah dan tambahkan perhitungan standar deviasi (1)
.
#include <iostream.h>
#include <math.h>
int N;
float jumlah, rerata, peny, stdrdev, 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 Hitung_Standar_Deviasi() {
peny = 0;
for (int i=0; i<N; i++) {
peny += (data[i] - rerata)*(data[i] - rerata);
}
stdrdev = sqrt(peny/(N-1));
}
void Tampilkan_Hasil() {
cout << "Jumlah = " << jumlah << endl;
cout << "Rerata = " << rerata << endl;
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
cout << "Standar Deviasi = " << stdrdev << endl;
}
main ()
{
Masukkan_Data();
Hitung_Rerata ();
Tampilkan_Hasil();
}
Hasil Output ;
Fungsi untuk mengisi dan menampilkan matriks
Memodifikasi program untuk dapat mengisi dan menampilkan matriks B dengan
ukuran yang sama, serta matriks C yang merupakan penjumlahan antara A dan B
(2).
#include <iostream.h>
int N=2;
float A[5][5], B[5][5], C[5][5];
void MengisiMatriksA(float A[5][5])
{
for (int i=0; i<N; i++) {
for (int j=0; j<N; j++) {
cout << "elemen " << i << "," << j << " = ";
cin >> A[i][j];
}
}
}
void MengisiMatriksB(float B[5][5])
{
for (int i=0; i<N; i++) {
for (int j=0; j<N; j++) {
cout << "elemen " << i << "," << j << " = ";
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
cin >> B[i][j];
}
}
}
void MenjumlahMatriks(float C[5][5])
{
for (int i=0; i<N; i++) {
for (int j=0; j<N; j++) {
C[i][j] = A[i][j] + B[i][j];
}
}
}
void MenampilkanMatriksA (float A[5][5])
{
for (int i=0; i<N; i++) {
for (int j=0; j<N; j++) {
cout << "\t" << A[i][j];
}
cout << endl;
}
}
void MenampilkanMatriksB (float B[5][5])
{
for (int i=0; i<N; i++) {
for (int j=0; j<N; j++) {
cout << "\t" << B[i][j];
}
cout << endl;
}
}
void MenampilkanMatriksC (float C[5][5])
{
for (int i=0; i<N; i++) {
for (int j=0; j<N; j++) {
cout << "\t" << C[i][j];
}
cout << endl;
}
}
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
void main()
{
cout << "Masukkan elemen matriks A\n";
MengisiMatriksA(A);
cout << "Masukkan elemen matriks B\n";
MengisiMatriksB(B);
cout << "Matriks A = \n";
MenampilkanMatriksA(A);
cout << "Matriks B = \n";
MenampilkanMatriksB(B);
cout << "Jumlah kedua matriks adalah\n";
MenjumlahMatriks(C); //jk tdk ada hslnya 0 semua
MenampilkanMatriksC(C);
}
Hasil Output ;
Fungsi dengan nilai kembalian (return value) : Bisection
Review kembali program bisection pada Modul V. Memodifikasi program
tersebut dengan menggunakan fungsi, yaitu dengan menambahkan fungsi berikut
sebelum main().
Double y(double x)
{
return ::*x-2*x-3;
}
Kemudian mengganti instruksi yang digunakan untuk menghitung nilai – nilai yL,
yC, dan yU menjadi :
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
yL = y (xL);
yC = y(xC);
yU = y(xU);
Menjalankan dan memeriksa hasil. Program tersebut digunakan untuk persamaan
yang lain yaitu exp(x) - 2*x - 2 = 0, apakah yang harus diubah dalam program
tersebut (3)
? (akar persamaan tersebut kira-kira adalah = 1.67835).
#include <iostream.h>
#include <iomanip.h>
#include <math.h>
double y(double x)
{
/* Untuk mencari solusi persamaan lain, kita */
/* hanya mengubah bagian dibawah ini */
return exp(x)-2*x-2;
}
main()
{ int iterasi = 0;
double xL, xC, xU, yL, yC, yU;
cout << "Mencari akar persamaan x*x-2*x-3=0"
<< " dengan metode bisection\n";
cout << "Masukkan tebakan awal bawah = ";
cin >> xL;
cout << "Masukkan tebakan awal atas = ";
cin >> xU;
cout << "iterasi xL xC"
<< " xU yL"
<< " yC yU\n";
do {
xC = (xL+xU)/2;
yL = y(xL); // memakai fungsi pada return
yC = y(xC);
yU = y(xU);
cout << setw(5) << iterasi
<< setiosflags(ios::fixed)
<< setprecision(5)
<< setw(12) << xL
<< setw(12) << xC
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
<< setw(12) << xU
<< setw(12) << yL
<< setw(12) << yC
<< setw(12) << yU << endl;
if (yL*yC <= 0)
xU = xC;
else
xL = xC;
iterasi++;
} while((iterasi <= 50)&&(fabs(yC)>1e-5));
cout << "Jadi akarnya adalah " << xC;
}
Hasil Output ;
Program konversi suhu
#include <iostream.h>
float C_ke_F(float C);
void Mengisi_Input();
void Mengkonversi();
void Menampilkan_Hasil();
main() {
Mengisi_Input();
Mengkonversi();
Menampilkan_Hasil();
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
}
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;
}
Hasil output :
Memindahkan keempat fungsi yang ada ke bagian bawah setelah akhir dari
program utama main() lalu kompilelah. Error apa yang muncul?(4)
a. Function 'Mengisi_Input' should have a prototype
b. Function 'Mengkonversi' should have a prototype
c. Function 'Menampilkan_Hasil' should have a prototype
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
d. Type mismatch in redeclaration of 'Mengisi_Input()'
e. Type mismatch in redeclaration of 'Mengkonversi()'
f. Type mismatch in redeclaration of 'Menampilkan_Hasil()'
Menambahkan pendefinisian keempat fungsi tadi di atas main():
float C_ke_F(float C);
void Mengisi_Input();
void Mengkonversi();
void Menampilkan_Hasil();
Menjalankan dan menjelaskan apa guna definisi fungsi tersebut(5)
.
Kegunaan definisi fungsi tersebut adalah memberikan header baru sesuai
keinginan kita, dimana dalam header tersebut terdapat fungsi yang dapat
dipanggil. Jadi kita dapat menambahkan suatu header jika suatu compiler tidak
support terhadap fungsi yang kita gunakan.
Tugas
Membuat 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.
Menggunakan struktur pemrograman fungsi untuk masing-masing jenis
konversi(6).
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
#include <iostream.h>
char pilihan;
float input, output;
float C_ke_F(float C) {
float F;
F = 9.0/5.0*C + 32.0;
return F;
}
float F_ke_C(float F) {
float C;
C = 5.0/9.0*(F - 32.0);
return C;
}
float C_ke_R(float C) {
float R;
R = 4.0/5.0*C;
return R;
}
float R_ke_C(float R) {
float C;
C = 5.0/4.0*R;
return C;
}
float F_ke_R(float F) {
float R;
R = 4.0/9.0*(F - 32);
return R;
}
float R_ke_F(float R) {
float F;
F = 9.0/4.0*R + 32;
return F;
}
void Menampilkan_Menu() {
cout << "Pilih konversi berikut :" << endl
<< "A. Celsius ke Fahrenheit" << endl
<< "B. Fahrenheit ke Celsius" << endl
<< "C. Celsius ke Reamur" << endl
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
<< "D. Reamur ke Celsius"<< endl
<< "E. Fahrenheit ke Reamur" << endl
<< "F. Reamur ke Fahrenheit" << endl
<< "X. Selesai" << endl;
}
void Mengisi_Pilihan() {
cout << "Masukkan pilihan konversi = ";
cin >> pilihan;
}
void Mengisi_Input() {
cout << "Isikan nilai suhu = ";
cin >> input;
}
void Pilihan_Konversi() {
if ((pilihan == 'A')||(pilihan == 'a')) {
output = C_ke_F(input);
cout << "Temperatur " << input << " C = "
<< output << " F";
}
else if ((pilihan == 'B')||(pilihan == 'b')) {
output = F_ke_C(input);
cout << "Temperatur " << input << " F = "
<< output << " C";
}
else if ((pilihan == 'C')||(pilihan == 'c')) {
output = C_ke_R(input);
cout << "temperatur " << input << " C = "
<< output << " R";
}
else if ((pilihan == 'D')||(pilihan == 'd')) {
output = R_ke_C(input);
cout << "Temperatur " << input << " R = "
<< output << " C";
}
else if ((pilihan == 'E')||(pilihan == 'e')) {
output = F_ke_R(input);
cout << "Temperatur " << input << " F = "
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
<< output << " R";
}
else if ((pilihan == 'F')||(pilihan == 'f')) {
output = R_ke_F(input);
cout << "Temperatur " << input << " R = "
<< output << " F";
}
else if ((pilihan == 'X')||(pilihan == 'x')) {
cout << "Selesai";
}
else
cout << "Tidak ada dalam menu konversi";
}
main() {
Menampilkan_Menu();
Mengisi_Pilihan();
Mengisi_Input();
Pilihan_Konversi();
}
Hasil Output:
Sekup variabel di dalam fungsi
(a) Menjalankan program dan perhatikan. Tambahkan sebaris di atas cout
dalam SebuahFungsi dengan:
(b) X = 20;
(c) int X = 20;
Apakah yang terjadi pada X untuk ketiga kasus tersebut (1)
(kasus a, b, dan
c)
a)
#include <iostream.h>
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
int x=10;
void SebuahFungsi()
{
cout <<"Di dalam funsi, x="
<<x<<endl;
}
void main()
{
cout<<"Di dalam progam utama, x="
<< x<<endl;
SebuahFungsi();
cout<<"Keluar ke progam utama lagi,x="
<<x<<endl;
}
Hasil Output ;
b)
#include <iostream.h>
int X = 10;
void SebuahFungsi()
{
X = 20;
cout << "Di dalam fungsi, X = "
<< X << endl;
}
void main ()
{
cout << "Di dalam program utama, X = "
<< X << endl;
SebuahFungsi();
cout << "Keluar ke program utama lagi, X = "
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
<< X << endl;
}
Hasil output :
c)
#include <iostream.h>
int X = 10;
void SebuahFungsi()
{
X = 20;
int X = 20;
cout << "Di dalam fungsi, X = "
<< X << endl;
}
void main ()
{
cout << "Di dalam program utama, X = "
<< X << endl;
SebuahFungsi();
cout << "Keluar ke program utama lagi, X = "
<< X << endl;
}
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
Hasil Output :
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;
}
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
Hasil Output ;
Variabel manakah yang akan diubah nilainya ketika dijadikan parameter yang
dilewatkan pada fungsi Gandakan (2)
.
variabel Y dan Z, variabel X tidak termasuk karena pemanggilan variabel X tidak
diawal simbol ampersand (&) dan penulisan variabel dalam fungsi tidak diawali
symbol bintang (*)
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 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);
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
cout << "Luas lingkaran = " << Luas << endl;
Luas = HitungLuas(Panjang, Lebar);
cout << "Luas segiempat = " << Luas << endl;
}
Apakah yang menyebabkan terjadinya error pada program di atas? (3)
.
Yang menyebabkan adalah pada script
float HitungLuas(float R);
Dan
return float P*L;
Di ubah menjadi
float HitungLuas(float R)
Dan
return P*L;
Mengapa tidak terjadi error ketika 2 buah fungsi menggunakan nama yang sama?
(4).
tidak terjadi error karena 2 fungsi yang digunakan meskipun menggunakan nama
yang sama tetapi memiliki parameter yang berbeda.
Hasil Output :
Nilai default pada parameter fungsi
#include <iostream.h>
void Keterangan(int N = 10)
{
if (N >= 8)
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
cout << "Nilai " << N << " itu bagus\n";
else if (N < 5)
cout << "Nilai " << N << " itu parah\n";
else
cout << "Nilai " << N << " itu cukupan\n";
}
main()
{
int Nilai;
Keterangan();
cout << "Masukkan nilai = ";
cin >> Nilai;
Keterangan(Nilai);
}
Hasil Output ;
Apakah yang menyebabkan terjadinya error pada program di atas? (5)
.
Pada script di sini mengalami kesalahan
void Keterangan(int N : 10)
Dirubah menjadi
void Keterangan(int N = 10)
Mengapa tidak terjadi error ketika fungsi di atas dipanggil tanpa mengisikan
parameternya? (6)
tidak terjadi error ketika parameter fungsi tidak diisikan karena pada fungsi
tersebut
sudah ada nilai default, sehingga saat parameter fungsi tidak diisi maka program
akan
menggunakan nilai default itu.
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
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 = " << Y << ", Y = " << X;
}
Mengapa nilai X dan Y tidak bertukaran pada program di atas, dan bagaimana
cara memperbaikinya (7)
.
Pada program Dibawah ini diganti dengan ;
cout << "\nX = " << X << ", Y = " << Y;
Menjadi
cout << "\nX = " << Y << ", Y = " << X;
Hasil Output ;
Mencoba program sorting di bawah ini, dengan masih menggunakan fungsi
Tukarkan di atas.
#include <iostream.h>
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
void Tukarkan(int Angka1, int Angka2) {
int temp = Angka1;
Angka1 = Angka2;
Angka2 = temp;
}
void Cetak(int D[])
{
for(int i=0; i< 6; i++)
cout << D[i] << " ";
cout << endl;
}
void 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+i]);
Cetak(Data);
}
cout << "-------\n";
}
}
}
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
Hasil Output ;
Menulis ke file teks
#include <stdio.h>
#include <string.h>
#include <iostream.h>
main()
{
char namafileoutput[] = "filesaya.txt";
char teks[80];
FILE *fout;
fout = fopen(namafileoutput, "w");
cout << "Ketikkan teks yang akan ditulis "
<< "ke file, akhiri dengan END\n";
while (1) {
gets(teks);
if (strcmp(teks,"END") == 0)
break;
strcat(teks,"\n");
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
fputs(teks, fout);
}
fclose(fout);
cout << "Selesai" << endl;
}
Hasil output :
Membaca dari file teks
#include <stdio.h>
#include <string.h>
#include <iostream.h>
main()
{
char namafileinput[] = "filesaya.txt";
char teks[80];
FILE *fin;
fin = fopen(namafileinput, "rt");
cout << "Isi file " << namafileinput << endl;
while (1) {
if (fgets(teks, 80, fin)==NULL) {
break;
}
cout << teks;
}
fclose(fin);
cout << "Selesai" << endl;
}
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
Hasil output :
Tugas :
Fungsi adalah subprogram yang menerima data masukan atau parameter inputan,
kemudian melakukan beberapa proses, kemudian mengembalikan nilai hasil
proses untuk digunakan oleh proses yang memanggil fungsi tersebut.
Buatlah Program dengan menggunakan fungsi, program untuk menghitung luas
persegi.
#include <iostream.h>
float LuasPersegi( float sisi){
return (sisi*sisi);
}
main(){
float S;
float HASIL;
cout<<"Masukkan sisi persegi:";cin>>S;
//Memanggil fungsi LuasPersegi
HASIL=LuasPersegi(S);
//Menampilkan hasil yang didapatkan
cout<<"Luasnya="<<HASIL;
return 0;
}
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
Hasil Output :
Mbolong‟s blog ║ Algo dan Pemrograman C++ by Nizar_aluk
KARTU ASISTENSI
PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
FAKULTAS TEKNIK JURUSAN INFORMATIKA
UNIVERSITAS MUHAMMADIYAH SIDOARJO
NAMA : MUHAMMAD NIZAR AL-AYUBI
NIM : 111080200304
Mengetahui,
Dosen Praktikum
Ir.Rajudin
Asisten Praktikum
Moch Solichuddin
No Judul Praktikum Tanggal
Praktikum
Tanggal
Asistensi
Catatan
Asisten Nilai
1.
2.
3.
4.
5.
6.
Input/Output & Jenis Data
Struktur Pemrograman:
Percabangan
Struktur Pemrograman:
Lompataan & Kalang
Struktur Pemrograman:
Kalang
Variabel Larik :matriks dan
strings
Struktur Pemrograman:
Fungsi
01 Agustus 2012
01 Agustus 2012
01 Agustus 2012
02 Agustus 2012
02 Agustus 2012
02 Agustus 2012