Modul Algoritma Pemrograman Fix
Modul Algoritma Pemrograman Fix
& PEMROGRAMAN
Dalam Bahasa Pemrograman C++
16
KATA PENGANTAR
Pertama kali kami memanjatkan rasa syukur ke hadirat Allah Subhanahu
Wata’la bahwasanya penyusunan Modul dengan judul ”Algoritma &
Pemrograman Dalam Pemrograman Bahasa C++ ” ini dapat diselesaikan. Kerja
keras yang telah dilakukan dalam penulisan ini telah membuahkan hasil dengan
baik. Buku ini sangat berarti bagi para mahasiswa terutama mereka yang
mempelajari bidang teknologi informatika dan komunikasi atau bidang lain yang
sejenis. Selain itu, dengan ditulisnya modul ini, akan menambah perbendaharaan
pustaka yang dapat dijadikan pegangan bagi para tenaga pengajar pada perguruan
tinggi.
ii
DAFTAR ISI
HALAMAN JUDUL ........................................................................................... i
KATA PENGANTAR ........................................................................................ ii
DAFTAR ISI .....................................................................................................iii
Identifier ............................................................................................................. 9
Tipe Data ............................................................................................................. 9
Konstanta ......................................................................................................... 10
Variabel ............................................................................................................ 11
Operator............................................................................................................. 12
Latihan Soal ..................................................................................................... 14
iii
BAB VI. STRUKTUR KONTROL KONDISIONAL & PERULANGAN
IF Statement ..................................................................................................... 28
Switch Case Statement ...................................................................................... 32
For Statement ................................................................................................... 35
Nested For ......................................................................................................... 36
While Statement ................................................................................................ 38
Do While Statement ......................................................................................... 40
Pernyataan Continue and Break ........................................................................ 41
Pernyataan Go To .............................................................................................. 42
Latihan Soal ..................................................................................................... 43
Array ................................................................................................................ 46
Array Dua Dimensi ........................................................................................... 50
Latihan Soal ..................................................................................................... 52
String ................................................................................................................. 53
Function Untuk Operasi String ......................................................................... 55
Latihan Soal ..................................................................................................... 56
Pointer .............................................................................................................. 57
Pointer dan Array .............................................................................................. 59
Pointer dan String ............................................................................................. 61
Pointer dan Function ......................................................................................... 62
iv
ALGORITMA PEMROGRAMAN
BAB I
PENGENALAN C/C++
1
ALGORITMA PEMROGRAMAN
2
ALGORITMA PEMROGRAMAN
3
ALGORITMA PEMROGRAMAN
4
ALGORITMA PEMROGRAMAN
BAB II
Struktur Bahasa C/C++
void main()
{
deklarasi variabel;
deklarasi konstanta;
perintah – perintah;
//komentar
#include <iostream.h>
#include <conio.h>
void main()
clrscr();
cout<<"Hello World"<<endl;
cout<<"enter my World";
getch();
5
ALGORITMA PEMROGRAMAN
Penjelasan :
1. include
Adalah salah satu Pengarah Preprosesor (preprocessor directive) yang
tersedia pada C++. Preprocessor selalu dijalankan terlebih dahulu pada saat
proses kompilasi terjadi. Bentuk umumnya :
# include <nama_file>
tidak diakhiri dengan tanda semicolon (;), karena bentuk tersebut bukanlah
suatu bentuk pernyataan, tetapi merupakan prepocessor directive. Baris
tersebut menginstrusikan kepada kompiler untuk menyisipkan file lain dalam
hal ini file yang berakhiran .h (file header) yaitu file yang berisi C++
standard library.
contohnya:
a. #include <iostream.h> : diperlukan pada program yang melibatkan
objek cout dan cin
b. #include <conio.h> : diperlukan bila melibatkan clrscr(),
yaitu perintah untuk membersihkan layar dan fungsi getch() untuk
menerima sembarang input keyboard dari user.
c. #include <iomanip.h> : diperlukan bila melibatkan setw()
yang bermanfaat untuk mengatur lebar dari suatu tampilan data.
d. #include <math.h> : diperlukan pada program yang menggunkan
operasi sqrt() yang bermanfaat untuk operasi matematika kuadrat.
2. Fungsi main ()
Program C++ terdiri dari satu atau lebih fungsi, dan di antara salah satunya
harus ada fungsi main dan hanya boleh ada satu main pada tiap program C++.
Setiap program C++ akan dan pasti akan memulai eksekusi programnya pada
fungsi main ini, meskipun main bukan fungsi yang pertama ditulis di program.
Melihat bentuk seperti itu dapat kita ambil kesimpulan bahwa batang tubuh
program utama berada didalam fungsi main(). Berarti dalam setiap pembuatan
program utama, maka dapat dipastikan seorang pemrogram menggunakan
6
ALGORITMA PEMROGRAMAN
minimal sebuah fungsi. Tanda { dan pada akhir program terdapat tanda }.
Tanda { harus ada pada setiap awal dari sebuah fungsi dan tentu saja harus
diakhiri dengan tanda }. Tanda ini digunakan untuk menunjukkan
cakupan(scope) dari sebuah fungsi, dimana untuk menunjukkan fungsi ini
dimulai dan berakhir.
3. Komentar
Komentar tidak pernah dicompile oleh compiler. Dalam C++ terdapat 2 jenis
komentar, yaitu:
a. Jenis 1 : /* Komentar anda diletakkan di dalam ini Bisa mengapit lebih
dari satu baris */
b. Jenis 2 : // Komentar anda diletakkan disini (hanya bisa sebaris)
Programmer sering sekali memasukkan komentar di dalam code agar program
lebih mudah dibaca. Komentar juga membantu orang lain untuk membaca dan
mengerti isi dari code. Komentar tidak menyebabkan komputer melakukan
suatu instruksi ketika program dijalankan.
4. Tanda Semicolon
Tanda semicolon “ ; ” digunakan untuk mengakhiri sebuah pernyataan. Setiap
pernyataan harus diakhiri dengan sebuah tanda semicolon.
5. Mengenal Input/Output
Pernyataan cout (dibaca C out) merupakan sebuah objek di dalam C++, yang
digunakan untuk mengarahkan data ke dalam standar output (cetak pada
layar). Sedangkan untuk menginputkan data, dapat digunakan cin (dibaca C
in). Berikutnya adalah operator << Operator ini digunakan sebagai
penghubung antara stream dengan kalimat. Operator ini disesuaikan dengan
fungsional dari cout. Untuk sementara bayangkan saja operator << sebagai
arah dari aliran data. Jadi karena kita ingin mencetak kalimat ke layar, dan
yang menghubungkan program kita dengan layar dengan cout, otomatis kita
harus mengirimkan kalimat ke cout. Maka operator << digunakan, yang berarti
kalimat dialirkan ke arah cout, dan cout akan mencetaknya ke layar. Sintaks
yang digunakan :
7
ALGORITMA PEMROGRAMAN
Latihan Soal 1.
#include"iostream.h" //prepocessor
#include<conio.h>
void main() //ada 3; void main(), main() & int main()
{
cout<<"Hello world\n"; //cout untuk menampilkan ke layar
//cout<<"Hello world"<<endl;
getch();
}
Latihan Soal 2.
// programku
#include <iostream.h>
int main ()
{
cout << "Selamat Belajar C++";
return 0;
}
8
ALGORITMA PEMROGRAMAN
BAB III
Identifier, Tipe Data, Variabel, Konstanta, Operator
3.1. Identifier
9
ALGORITMA PEMROGRAMAN
3.3. Konstanta
Konstanta merupakan suatu nilai yang tidak dapat diubah selama proses
program berlangsung. Konstanta nilainya selalu tetap. Konstanta harus didefinisikan
terlebih dahulu di awal program. Konstanta dapat bernilai integer, pecahan, karakter
dan string. Pendeklarasian konstanta dapat dilakukan dengan 2 cara :
1. menggunakan (#define)
deklarasi konstanta dengan cara ini, lebih gampang dilakukan karena akan
menyertakan #define sebagai preprocessor directive. Dan sintaknya diletakkan
bersama – sama dengan pernyataan #include (di atas main()). Format
penulisannya adalah :
#define pengenal nilai
Contoh penggunaan :
#define phi 3.14159265
pendeklarasian dengan #define tanpa diperlukan adanya tanda = untuk
memasukkan nilai ke dalam pengenal dan juga tanpa diakhiri dengan tanda
semicolon(;)
10
ALGORITMA PEMROGRAMAN
2. menggunakan (const)
Sedangkan dengan kata kunci const, pendeklarasian konstanta mirip dengan
deklarasi variable yang ditambah kata depan const Contoh :
const int lebar = 100;
const char tab = ‘\t’;
3.4. Variabel
Variabel adalah suatu pengenal (identifier) yang digunakan untuk mewakili suatu
nilai tertentu di dalam proses program. Berbeda dengan konstanta yang nilainya
selalu tetap, nilai dari suatu variable bisa diubah-ubah sesuai kebutuhan. Bentuk
umum pendeklarasian suatu variable adalah :
tipe_data nama_variabel;
Contoh :
int x; // Deklarasi x bertipe integer
char y, huruf, nim[10]; // Deklarasi variable bertipe char
float nilai1; // Deklarasi variable bertipe float
double beta; // Deklarasi variable bertipe double
int array[5][4]; // Deklarasi array bertipe integer
char *p; // Deklarasi pointer p bertipe char
3.5. Operator
1. Operator Assign (=)
Operator (=), akan memberikan nilai ke dalam suatu variable. artinya
memberikan nilai 5 ke dalam variable a. Sebelah kiri tanda = dalam pernyataan
di atas, dikenal dengan lvalue (left value) dan di sebelah kanan tanda = dikenal
dengan rvalue (right value). lvalue harus selalu berupa variable, sedangkan
rvalue dapat berupa variable, nilai, konstanta, hasil operasi ataupun
kombinasinya.
2. Operator Majemuk ( +=, -=, *=, /=, %=, <<=, >>=, &=, |= )
Dalam C++, operasi aritmatika dapat disederhanakan penulisannya dengan
format penulisan operator majemuk. Misalnya :
a += 5 sama artinya dengan menuliskan a = a+5
a *= 5 sama artinya dengan menuliskan a = a*5
a /= 5 sama artinya dengan menuliskan a = a/5
a %= 5 sama artinya dengan menuliskan a = a %
11
ALGORITMA PEMROGRAMAN
12
ALGORITMA PEMROGRAMAN
hasil output:
10
9
Jadi bisa diambil kesimpulan, dengan operator --/++ (--i) di sebelah kiri variabel
maka operator tersebut akan mempunyai prioritas lebih tinggi untuk dikerjakan
terlebih dahulu. Jadi i akan dikurangi terlebih baru dicetak oleh cout. Sebaliknya
dengan operator --/++ (i--) di sebelah kanan variabel maka operator
tersebut akan mempunyai prioritas lebih rendah untuk dikerjakan. Maka i akan
dicetak terlebih dahulu, baru dikurangi.
4. Operator Relasional (==, !=, >, <, >=, <=)
Yang dihasilkan dari operator ini bukan berupa sebuah nilai, namun berupa
bilangan bool yaitu benar atau salah.
Contoh :
(7==5) hasilnya adalah false
(5>4) hasilnya adalah true
(5<5) hasilnya adalah false
13
ALGORITMA PEMROGRAMAN
Latihan Soal 1.
#include <conio.h>
#include <iostream.h>
void main()
{
const float phi = 3.141592;
float jari_jari, keliling, luas;
jari_jari = 7.2;
luas = phi * jari_jari * jari_jari;
keliling = 2 * phi * jari_jari;
cout<<"Luas lingkaran adalah " << luas << " satuan
luas "<<endl;
cout<<"Keliling lingkaran adalah " << keliling <<" satuan
panjang";
getch();
}
Latihan Soal 2.
#include"iostream.h"
#include"conio.h"
//#include"stdio.h"
void main()
{
float data1,data2,tambah,kurang,kali,bagi;
cout<<"Operasi aritmatika Dasar"<<endl;
cout<<"Masukkan data1: ";
cin>>data1;
cout<<"Masukkan data2: ";
cin>>data2;
tambah=data1+data2;
kurang=data1-data2;
kali=data1*data2;
bagi=data1/data2;
cout<<endl;
cout<<data1<<" + " <<data2<<" = "<<tambah<<endl;
cout<<data1<<" - " <<data2<<" = "<<kurang<<endl;
cout<<data1<<" * " <<data2<<" = "<<kali<<endl;
cout<<data1<<" : " <<data2<<" = "<<bagi;
//printf("%6.2f",bagi);
getch();}
Latihan Soal 3.
1. Buatlah sebuah program untuk menghitung jumlah dan rata-rata dari 5 buah
bilangan bulat positip.
14
ALGORITMA PEMROGRAMAN
Latihan Soal 4.
1. Suatu ember berbentuk tabung dengan tutupnya terbuka berisi air penuh. Jari-
jari alas ember adalah 10.5 cm, dan tingginya 5 cm. Kemudian sebuah kerucut
dengan jari-jari alas yang berbentuk lingkaran adalah 4 cm dan tingginya 4.7
cm dimasukkan ke dalam ember. Akibatnya sebagian air dalam ember tumpah.
Dengan menggunakan program C++ hitunglah berapa liter air yang tumpah?
15
ALGORITMA PEMROGRAMAN
BAB IV
Function dan Procedure
16
ALGORITMA PEMROGRAMAN
17
ALGORITMA PEMROGRAMAN
Contoh lain :
long kuadrat (long l) ;
Pada contoh pertama, fungsi kuadrat ( ) mempunyai argumen/parameter
bertipe long dan nilai balik bertipe long.
void garis ( );
Pada contoh kedua, fungsi garis ( ) tidakmemiliki argumen/parameter dan nilai
baliknya tidak ada (void). double maks (double x, double y) Pada
contoh ketiga, fungsi maks( ) mempunyai dua buah argumen/parameter,
dengan masing-masing argumen bertipe double.
b. Function Definition
tipe_data nama_fumgsi(arguman 1, argument 2,argument ...)
{
Variabel_lokal;
Statement_1;
Statement_2;
...
return (variabel);}
18
ALGORITMA PEMROGRAMAN
3. Parameter Fungsi
Terdapat dua macam para parameter fungsi, yaitu :
a. Parameter formal adalah variabel yang ada pada daftar parameter dalam
definisi fungsi.
b. Parameter Aktual adalah variabel yang dipakai dalam pemanggilan fungsi.
4. Contoh Penerapan
Contoh 1.
/*Contoh penerapan function dg prototype tapi tidak
memberikan
nilai balik (void) */
#include<iostream.h>
#include<conio.h>
19
ALGORITMA PEMROGRAMAN
void main()
{
double m,a,f;
cout<<"Massa : "; cin>>m;
cout<<"percepatan : "; cin>>a;
f=gaya(m,a);
cout<<"F : "<<f;
getch();
}
5. Cara pelewatan argumen fungsi
a. Pass by value
Pemanggilan dengan nilai merupakan cara yang dipakai untuk seluruh
fungsi buatan yang telah dibahas didepan. Pada pemanggilan dengan
nilai, nilai dari parameter aktual akan ditulis keparameter formal. Dengan
cara ini nilai parameter aktual tidak bisa berubah, walaupun nilai
parameter formal berubah.
b. Pas by Reference
Pemanggilan dengan reference merupakan upaya untuk melewatkan
alamat dari suatu variabel kedalam fungsi. Cara ini dapat dipakai untuk
mengubah isi suatu variabel diluar fungsi dengan melaksanakan
pengubahan dilakukan didalam fungsi.
20
ALGORITMA PEMROGRAMAN
Contoh 3.
/* ---------------------------- */
/* Penggunaan Pass By Reference */
/* Program Pertukaran Nilai */
/* ---------------------------- */
#include<conio.h>
#include<stdio.h>
#include<iostream.h>
void tukar(int *x, int *y);
void main()
{
int a, b;
a = 88;
b = 77;
clrscr();
cout<<"Nilai Sebelum Pemanggilan Fungsi"<<endl;
cout<<"a = "<<a<<" b = "<<b<<endl;
tukar(&a,&b);
cout<<endl;
cout<<"Nilai Setelah Pemanggilan Fungsi"<<endl;
cout<<"a = "<<a<<" b = "<<b<<endl;
getch();
}
void tukar(int *x, int *y)
{
int z;
z = *x;
*x = *y;
*y = z;
cout<<endl;
cout<<"Nilai di Akhir Fungsi Tukar()"<<endl;
cout<<"x = "<<*x<<" y = "<<*y<<endl;
}
Contoh 4.
#include <iostream.h>
#include <conio.h>
void Ubah(int *a)
{
*a = 10;
cout<<"Ubah menjadi= "<<*a<<endl;
}
/*main program*/
void main()
{
int bil;
bil = 1;
cout<<"Bil sebelum = "<<bil<<endl;
Ubah(&bil);
cout<<"Bil sesudah = "<<bil<<endl;
getch();
}
21
ALGORITMA PEMROGRAMAN
22
ALGORITMA PEMROGRAMAN
Latihan Soal.
Buatlah Program (dg function) untuk menghitung jarak maksimum (xmax) dan
ketinggian maksimum (hmax) dari sebuah peluru yang ditembakkan dengan sudut
elevasi A. Anggap g = 10 m/s2 (Gunakan fungsi sin() dan cos() )!
23
ALGORITMA PEMROGRAMAN
BAB V
FILE dan STREAM
24
ALGORITMA PEMROGRAMAN
endl;
fileteks << “berdasarkan kondisi dan potensi yg dimiliki saat “ << itu “ <<
endl;
fileteks.close();
}
perintah fileteks.open(“C:/algo.txt”); akan membuka file algo.txt yang
ada di C:\ Apabila file tersebut belum ada maka akan dibuat secara otomatis,
dan apabila sudah ada isi file algo.txt akan terhapus.
5.4. Menambah Data pada File
Suatu file yang sudah ada sebelumnya dapat ditambah data yang baru
(tidak menghapus data lama). Caranya dengan menambahkan perintah
ios::app pada open().
nama_obyek.open(“nama file”, ios::app);
Contoh 2.
#include<iostream.h>
#include<fstream.h>
void main()
{
ofstream fileteks;
fileteks.open(“C:/algo.txt”, ios::app);
fileteks << endl;
fileteks << “Oleh: Al Khowarizmi << endl;
fileteks.close();
}
5.5. Memeriksa Keberhasilan Operasi File
Tidak selamanya jalan yang mulus ditemui. Ada kemungkinan terjadi
saat file dibuka, ternyata file tidak ada. Dalam C++ tersedia function untuk
memeriksa kondisi-kondisi pada operasi file, sehingga kesalahan saat
eksekusi dapat dikendalikan. Function yang dimaksud adalah fail().
Contoh 3:
#include<iostream.h>
#include<fstream.h>
void main(){
ifstream fileteks; { ifstream digunakan u/ membaca file }
fileteks.open(“C:/algo.txt”);
if (fileteks.fail()) cout << “Maaf file takdapat dibuka/”
<< “tidak ditemukan”;
fileteks.close();
}
25
ALGORITMA PEMROGRAMAN
#include<iostream.h>
#include<fstream.h>
void main()
{
char karakter;
ifstream fileteks; {}
fileteks.open(“C:/contoh.txt”);
while(!fileteks.eof())
{
fileteks.get(karakter);
cout << karakter;
}
fileteks.close();
}
26
ALGORITMA PEMROGRAMAN
Latihan Soal.
1. Buatlah program C++ untuk menghitung jumlah karakter dalam suatu file.
Inputnya adalah nama file dan pathnya. Jangan lupa error handling!
2. Buatlah program C++ untuk menghitung jumlah karakter tertentu, misalnya
karakter ‘A’. Input berupa nama file dan karakter yang akan dihitung.
Jangan lupa error handling!
3. Misalkan suatu file teks berisi listing program C++. Buatlah program untuk
menghitung pasangan kurung kurawal yang ada pada file teks tersebut.
Jangan lupa error handling!
27
ALGORITMA PEMROGRAMAN
BAB VI
Struktur Kontrol Kondisional & Perulangan
28
ALGORITMA PEMROGRAMAN
clrscr();
cout << "Berapa usia Anda : ";
cin >> usia;
if (usia < 17)
{
cout << "Anda tidak boleh menonton bioskop"<<endl;
cout << "Kerjakan PR anda...";
}
getch();
}
29
ALGORITMA PEMROGRAMAN
Contoh 3:
#include <conio.h>
#include <iostream.h>
void main()
{
int usia;
clrscr();
cout << "Berapa usia Anda : ";
cin >> usia;
if (usia < 17)
{
cout << "Anda tidak boleh menonton bioskop"<<endl;
cout << "Kerjakan PR anda...";
}
else
{
cout << "Anda Boleh ke Bioskop."<<endl;
cout << "Belikan 1 Tiket Buat ASDOS";
}
getch();
}
30
ALGORITMA PEMROGRAMAN
31
ALGORITMA PEMROGRAMAN
32
ALGORITMA PEMROGRAMAN
Contoh 4:
#include <iostream.h>
#include <conio.h>
void main()
{
int bil;
clrscr();
cout << "Masukkan bilangan : ";
cin >> bil;
switch (bil)
{
case 1 : cout << "Anda memasukkan bil. satu";
break;
case 2 : cout << "Anda memasukkan bil. dua";
break;
case 3 : cout << "Anda memasukkan bil. tiga";
break;
default: cout << "Anda memasukkan bil selain 1,2, dan 3";
break;
}
getch();
}
Note :
Tidak setiap IF bisa dijadikan Switch. Tapi semua Switch dapat dijadikan
IF.
Contoh 5:
#include<conio.h>
#include<iostream.h>
void main()
{
char kode;
clrscr();
cout<<"Masukkan Kode Barang [A..C] : ";
cin>>kode;
switch(kode)
{
case 'A' :
case 'a' :
cout<<"Alat Olah Raga";
break;
case 'B' :
case 'b' :
cout<<"Alat Elelktronik";
break;
33
ALGORITMA PEMROGRAMAN
case 'C' :
case 'c' :
cout<<"Alat Masak";
break;
default:
cout<<"Anda Salah Memasukan kode";
break;
}getch();}
Latihan Soal.
1. Buatlah program untuk mengetahui bilangan tersebut genap atau
ganjil!
2. Buatlah program untuk menentukan banyaknya uang pecahan yang
dibutuhkan, urut dari pecahan terbesar! Input: jumlah uang dalam
rupiah
3. Proses: ratusanribu = jml_uang dibagi 100000
sisa = jml_uang – (ratusanribu*100000)
limaplhribu = sisa dibagi 50000
sisa = sisa – (limaplhribu*50000)dan seterusnya.
4. Buatlah program konversi angka ke nilai huruf:
100 >= nilai > 80 A
80 >= nilai > 60 B
60 >= nilai > 40 C
40 >= nilai > 20 D
20 >= nilai > 0 E
3. Struktur Kontrol Perulangan
Perulangan digunakan untuk mengerjakan suatu perintah secara berulang-
ulang sesuai dengan yang diinginkan. Struktur pengulangan terdiri atas dua
bagian :
a. Kondisi pengulangan yaitu ekspresi boolean yang harus dipenuhi
untuk melaksanakan pengulangan.
b. Isi atau badan pengulangan yaitu satu atau lebih pernyataan (aksi)
yang akan diulang.
Perintah atau notasi dalam struktur pengulangan adalah :
1) Pernyataan For
2) Pernyataan while
34
ALGORITMA PEMROGRAMAN
3) Pernyataan do..while
4) Pernyataan continue dan break
5) Pernyataan go to
Contoh 1.
#include<conio.h>
#include<iostream.h>
void main()
{
int a;
clrscr();
for(a = 0; a <= 10; a++)
cout<<a<<" ";
getch();
}
35
ALGORITMA PEMROGRAMAN
Contoh 2.
# include <conio.h>
# include <iostream.h>
void main()
{
clrscr();
for(int a = 20; a >= 1; a-=2)
cout<<a<<endl;
getch();
}
Nested For
Perulangan bertumpuk secara sederhana dapat diartikan : terdapat
satu atau lebih loop di dalam sebuah loop. Banyaknya tingkatan
perulangan, tergantung dari kebutuhan. Biasanya, nested loops
digunakan untuk membuat aplikasi matematika yang menggunakan
baris dan kolom. Loop luar, biasanya digunakan untuk mendefinisikan
baris. Sedangkan loop dalam, digunakan untuk mendefinisikan kolom.
Penjelasan program:
Perulangan akan menghasilkan nilai sebagai berikut :
36
ALGORITMA PEMROGRAMAN
37
ALGORITMA PEMROGRAMAN
38
ALGORITMA PEMROGRAMAN
while (i<=angka)
{
cout<<i<<" --> "<<huruf<<endl;
i++;
huruf++;
}
getch();
}
39
ALGORITMA PEMROGRAMAN
40
ALGORITMA PEMROGRAMAN
getch();
}
41
ALGORITMA PEMROGRAMAN
Contoh 8.
Penjelasan :
Dari program diatas, dapat dilihat perulangan dari suatu bilangan
sebanyak 10 kali. Tetapi, pada perulangan i=4, ada perintah continue.
Dengan perintah ini, maka program langsung meloncat ke loop
berikutnya dan ketika sampai perulangan i = 6, ada perintah break.
Otomatis program akan berhenti dan tidak sampai ke i=10. Dan
program akan mencetak bilangan 0, bilangan 1, bilangan 2, bilangan
3, bilangan 5, bilangan 6.
42
ALGORITMA PEMROGRAMAN
Contoh 9.
Latihan Soal 1.
Buatlah simulasi menu program dengan tampilan di bawah ini
menggunakan Do … WHILE.
MENU PILIHAN
1. Baca Data
2. Ubah Data
3. Hapus Data
4. Exit
Pilihan Anda (1/2/3/4) ? ...
--------------------------------------------------------------------------------------
Apabila dipilih menu no 1, maka akan tampil teks “Anda memilih menu
1”. Demikian pula untuk menu 2 dan 3. Kemudian setelah itu muncul teks
“Tekan ENTER untuk kembali ke menu utama”. Artinya begitu kita tekan
ENTER menu pilihan akan muncul kembali, dst. Akan tetapi bila
yang dipilih menu 4 (EXIT), program langsung berhenti.
43
ALGORITMA PEMROGRAMAN
Latihan Soal 2.
Buatlah program dengan looping untuk menampilkan hasil seperti berikut:
Q
P P or Q P and Not P P xor Q
Q
========================================
11 1 1 0 0
1 0 0 1
01 1 0 1 1
0 0 1 0
10
00
============================================
Latihan Soal 3.
Buatlah program untuk menampilkan deret ’Gossip Girls’:
Untuk n = 5
XOXOX
XOXO
XOX
XO
X
Latihan Soal 4.
Buatlah program untuk menampilkan bilangan fibonacci pada deret ke-n!
Bilangan fibonacci adalah bilangan seperti: 1 1 2 3 5 8 13 ... dst Jadi jika
inputan n = 7, maka hasil adalah 13
Latihan Soal 5.
Buatlah program untuk menampilkan bilangan prima sampai deret ke-n!
44
ALGORITMA PEMROGRAMAN
Bilang prima adalah bilangan yang hanya habis dibagi 1 dan bilangan itu
sendiri. Jika inputan = 10, maka hasil 2 3 5 7
45
ALGORITMA PEMROGRAMAN
BAB VII
ARRAY dan STRING
7.1 Array
Selama ini kita menggunakan satu variabel untuk menyimpan 1 buah nilai
dengan tipe data tertentu. Misalnya :
int a1, a2, a3, a4, a5;
Deklarasi variabel diatas digunakan untuk menyimpan 5 data integer
dimana masingmasing variabel diberi nama a1, a2, a3, a4, dan a5. Jika kita
memiliki 10 data, 100 data integer bahkan mungkin data yang ingin kita
proses tidak kita ketahui atau bersifat dinamis? Kita tidak mungkin
menggunakan variabel seperti diatas. Di dalam C dan pemrograman yang
lain, terdapat suatu fasilitas untuk menyimpan data-data yang bertipe data
sama dengan suatu nama tertentu.
Solusi?? = Array
Array merupakan kumpulan dari nilai-nilai data yang bertipe sama dalam
urutan tertentu yang menggunakan nama yang sama. Dengan
menggunakan array, sejumlah variabel dapat memakai nama yang sama.
Letak atau posisi dari elemen array ditunjukkan oleh suatu index. Dilihat
dari dimensinya array dapat dibagi menjadi Array dimensi satu, array
dimensi dua dan array multi-dimensi.
Bentuk Umum pendeklarasian array :
46
ALGORITMA PEMROGRAMAN
Contoh :
int nil[5];
Nilai suatu variabel array dapat juga diinisialisasi secara langsung pada
saat deklarasi, misalnya:
Contoh Penerapan:
Misalkan kita memiliki sekumpulan data ujian seorang siswa ujian
47
ALGORITMA PEMROGRAMAN
ujian[0] = 90;
ujian[1] = 95;
ujian[2] = 78;
ujian[3] = 85;
int ujian[4];
Perhatikan bahwa nilai 4 yang berada didalam tanda kurung menujukkan
jumlah elemen larik, bukan menunjukkan elemen larik yang ke-4. Jadi
elemen larik ujian dimulai dari angka 0 sampai 3. Pemrogram juga dapat
menginisialisasi larik sekaligus mendeklarasikannya, sebagai contoh :
int ujian[4] = {90,95,78,85};
Contoh 1.
#include <iostream.h>
#include <conio.h>
void main()
{
//inisialisasi array
// int ujian[5]= {90,95,78,85};
int ujian[5];
//input data ke array
for (int k=0;k<5;k++)
{
cout<<"masukkan data nilai ujian["<<k<<"] = ";
cin>>ujian[k];
}
//tampil data array
for (int j=0;j<5;j++)
{
cout<<"data nilai ujian["<<j<<"] = "<<ujian[j]<<endl;
}
getch();
}
48
ALGORITMA PEMROGRAMAN
Contoh 2.
#include <iostream.h>
#include <conio.h>
void main()
{
float data[5];
float rata, total = 0;
//input data ke array
for (int k=0;k<5;k++)
{
cout<<"masukkan data["<<k<<"] = ";
cin>>data[k];
}
//menghitung total nilai pada array
for (int j=0;j<5;j++)
{
total = total + data[j];
}
//menghitung rata - rata
rata = total / 5;
cout<<"rata - rata data pada array = "<<rata<<endl;
getch();
}
Contoh 3.
#include<iostream.h>
#include<conio.h>
void main()
{
int data[10] = {4, 1, 0, -9, 8, 5, -1, 2, 3, -7};
int elemen, ketemu, x;
cout << "Data yang dicari : ";
cin >> x;
ketemu = 0;
for(elemen=0; elemen<= 9; elemen++)
{
if (data[elemen] == x)
{
ketemu = !ketemu;
break;} }
if (ketemu == 0)
cout << "Data tidak ditemukan ";
else
cout << "Data ada di elemen : " << elemen;
getch();
}
49
ALGORITMA PEMROGRAMAN
Contoh 4.
#include <iostream.h>
#include <conio.h>
void main()
{
int matrix[3][4] = {{5,10,1,11},{4,7,67,-9},{9,0,45,3}};
for (int i = 0; i<3; i++)
{
for (int j=0;j<4; j++)
{
cout<<matrix[i][j]<<" ";
}
cout<<endl;
50
ALGORITMA PEMROGRAMAN
}
getch();
}
Contoh 5.
#include<conio.h>
#include<iostream.h>
void main()
{
int i,j,kola,kolb,bara,barb;
int data1[25][25],data2[25][25],hasil[25][25];
char jawab;
do
{
do
{
clrscr();
cout<<"Program Penjumlahan Matrix"<<endl;
cout<<"======================================"<<endl;
cout<<endl;
cout<<"Input Matrix A "<<endl;
cout<<"Jml baris Matrix A: "; cin>>bara;
cout<<"Jml kolom Matrix A: "; cin>>kola;
cout<<endl;
cout<<"Input Matrix B "<<endl;
cout<<"Jml baris Matrix B: "; cin>>barb;
cout<<"Jml kolom Matrix B: "; cin>>kolb;
}
while ((kola!=kolb) || (bara!=barb));
cout<<endl;
for (i=1; i<=bara; i++)
{
for (j=1; j<=kola; j++)
{
cout<<"Data A ["<<i<<","<<j<<"]: ";
cin>>data1[i][j];
}
}
cout<<endl;
for (i=1; i<=bara; i++)
{
for (j=1; j<=kola; j++)
{
cout<<"Data B ["<<i<<","<<j<<"]: ";
cin>>data2[i][j];
}
}
for (i=1; i<=bara; i++)
51
ALGORITMA PEMROGRAMAN
{
for (j=1; j<=kola; j++)
{
hasil[i][j]=data1[i][j] + data2[i][j];
}
}
cout<<endl;
cout<<"Hasil Penjumlahan Matrix A + Matrix B:
"<<endl;
for (i=1; i<=bara; i++)
{
for (j=1; j<=kola; j++)
{
cout<<hasil[i][j]<<" ";
}
cout<<endl;
}
getch();
cout<<endl;
cout<<"Mau Melakukan Perhitungan Lagi [Y/T] = ";
cin>>jawab;
}
while ((jawab == 'y') || (jawab == 'Y'));
}
Latihan Soal 1.
Modifikasi program penjumlahan array diatas dengan menambahkan
fasilitas pengurangan dan perkalian matrix! Perhatikan error handling
nya!
Latihan Soal 2.
Buatlah sebuah program untuk menentukan nilai maximum dan
minimum dari nilai elemen matrix!
52
ALGORITMA PEMROGRAMAN
7.2 String
Dalam hal ini “s” juga merupakan string, meskipun karakter penyusunnya
terlihat hanya satu. Akan tetapi pada kenyataannya, “s” disusun tidak hanya
karakter ‘s’ saja, melainkan terdapat pula karakter NULL atau ‘\0’, yang
berfungsi sebagai tanda akhir dari string.
53
ALGORITMA PEMROGRAMAN
Perintah di atas bermakna bahwa teks merupakan variabel string dengan jumlah
karakter yang dapat disimpan maksimal adalah 20 (sudah termasuk karakter
NULL). Misalkan suatu variabel string katakanlah kalimat[30] akan diberi nilai
“SAYA BELAJAR C++”, maka perintahnya:
char kalimat[30] = “SAYA BELAJAR C++”;
Contoh 1.
#include <iostream.h>
#include <conio.h>
void main()
{
int a;
a = 20;
char kalimat[30] = "SAYA BELAJAR C++";
cout << "Nilai a = " << a << endl;
cout << "Nilai kalimat = " << kalimat << endl;
getch();
}
Selanjutnya bagaimana cara membaca string yang berasal dari keyboard?
#include<iostream.h>
#include<conio.h>
void main()
{
char nama[20];
char alamat[30];
cout << "Masukkan nama Anda : ";
cin.getline(nama, sizeof(nama));
cout << "Masukkan alamat Anda : ";
cin.getline(alamat, sizeof(alamat));
cout << "Nama Anda : " << nama << endl;
cout << "Alamat Anda : " << alamat << endl;
getch();}
54
ALGORITMA PEMROGRAMAN
Contoh;
char string1[30] = “aBcDefgHIJKLmno”;
strupr(string1);//string1 menjadi
“ABCDEFGHIJKLMNO”
55
ALGORITMA PEMROGRAMAN
sintaks:
strrev(string);
Contoh:
char kata[10] = “C++”;
strrev(kata);
cout << kata;
Latihan Soal.
1. Buatlah program yang meminta inputan data karakter dari user yang disimpan
ke dalam array 1 dimensi. Kemudian buatlah menu dan program untuk menu
seperti berikut:
a. Input karakter
b. Cari karakter
c. Hapus karakter
d. Ubah karakter tertentu
e. Tampilkan karakter-karakter tersebut
f. Statistik karakter (jumlah vokal dan konsonan)
g. Exit
56
ALGORITMA PEMROGRAMAN
BAB VIII
POINTER
Pointer sesungguhnya berisi alamat dari suatu data, bukan data
sebagaimana pada variable yang sudah anda kenal. Pointer (variabel
penunjuk) adalah suatu variabel yang berisi alamat memori dari suatu
variabel lain. Alamat ini merupakan lokasi dari obyek lain (biasanya
variabel lain) di dalam memori. Contoh, jika sebuah variabel berisi alamat
dari variabel lain, variabel pertama dikatakan menunjuk ke variabel kedua.
A. Operator Pointer ada dua, yaitu :
1. Operator & (Dereference Operator)
a. Operator & menghasilkan alamat dari operandnya.
b. Setiap variabel yang dideklarasikan, disimpan dalam sebuah
lokasi memori dan pengguna biasanya tidak mengetahui di
alamat mana data tersebut disimpan. Dalam C++, untuk
mengetahui alamat tempat penyimpanan data, dapat digunakan
tanda ampersand(&) yang dapat diartikan “alamat”. Contoh :
Bil1 = &Bil2; dibaca: isi variabel bil1 sama dengan alamat bil2
2. Operator * (Reference Operator)
a. Operator * menghasilkan nilai yang berada pada sebuah alamat.
b. Penggunaan operator ini, berarti mengakses nilai sebuah alamat
yang ditunjuk oleh variabel pointer. Contoh : Bil1 = *Bil2;
dibaca: bil1 sama dengan nilai yang ditunjuk oleh bil2
Contoh :
57
ALGORITMA PEMROGRAMAN
Guided 1.
//contoh program menggunakan pointer
#include<iostream.h>
#include<conio.h>
void main()
{
x = 87;
px = &x; // px berisi alamat dari x
y = *px; // y berisi nilai yang ditunjuk px
Guided 2.
clrscr();
cout<<"vint semula = "<<vint<<endl;
Penjelasan :
pint = &vint; //pointer menunjuk ke vint
*pint = 69; //Nilai yang ditunjuk diubah menjadi 69
58
ALGORITMA PEMROGRAMAN
Pernyataan ; Menyebabkan yang ditunjuk oleh pint (yaitu vint) berubah menjadi 69
Contoh 3.
//operasi aritmatika pada pointer
#include<iostream.h>
#include<conio.h>
void main()
{ int nilai[3], *penunjuk;
clrscr();
nilai[0] = 125;
nilai[1] = 345;
nilai[2] = 750;
penunjuk = &nilai[0];
cout<<"Nilai "<<*penunjuk<<"ada di alamat memori
"<<penunjuk<<endl;
cout<<"Nilai "<<*(penunjuk+1)<<" ada di alamat
memori"<<(penunjuk+1)<<endl;
cout<<"Nilai "<<*(penunjuk+2)<<"ada di alamat
memori"<<(penunjuk+2)<<endl;
getch();
}
1. Pointer dan Array
Pointer dan array mempunyai hubungan yang dekat. Secara
internal array juga menyatakan alamat. Misalnya didefinisikan :
char data1[] = {”A”, ”I”, ”U”, “E”, “O”}
dan :
char *pdata;
59
ALGORITMA PEMROGRAMAN
void main()
{
char data1[] = {'A', 'I', 'U', 'E', 'O'};
clrscr();
char *pdata;
pdata = data1; // pdata menunjuk ke array
for (int i=0; i<5; i++)
{
cout<<*(pdata + i)<<" ";
}
getch();
}
Seluruh elemen array data1 dapat ditampilkan juga melalui pernyataan :
for (int i=0; i<5; i++)
cout<<data1[i])<<" ";
clrscr();
p = x;
60
ALGORITMA PEMROGRAMAN
61
ALGORITMA PEMROGRAMAN
cout<<"vptr = "<<vptr<<endl;
cout<<"ptr = "<<ptr<<endl;
#include <iostream.h>
#include <conio.h>
void proses(char *);
void main()
{
char string[] = "characters";
clrscr();
cout<<"String sebelum proses adalah "<<string<<endl;
proses(string);
cout<<"String setelah proses adalah "<<string<<endl;
getch();
}
62
ALGORITMA PEMROGRAMAN
DAFTAR PUSTAKA
Sanjaya, Dwi. 2003. Asyiknya Belajar Struktur Data di Planet C++. Jakarta : PT.
ElexMedia Komputindo
Utami, Erna & Sukrisno. 2005. 10 Langkah Belajar Logika dan Algoritma,
Menggunakan Bahasa C dan C++ di GNU/Linux. Yogyakarta : Penerbit
ANDI Yogyakarta
63