Algoritma & Pemrograman C++ - Gabung PDF
Algoritma & Pemrograman C++ - Gabung PDF
& PEMROGRAMAN
Humuntal Rumapea
Darwis R. Manalu
ALGORITMA
&
PEMROGRAMAN C++
HUMUNTAL RUMAPEA
DARWIS R. MANALU
2013
KATA PENGANTAR
iii
DAFTAR ISI
BAB 8, PERULANGAN
8.1 Pengulangan for ........................................................................... 76
8.2 Pengulangan while ....................................................................... 79
8.3 Pengulangan Bertingkat ................................................................ 82
BAB 9, POINTER
9.1 Mendekarasikan Variabel Pointer ................................................... 97
9.2 Inisialisasi Variabel Pointer ............................................................ 98
9.3 Operator Indireksi dan Operator Alamat ......................................... 99
v
BAB 13, PENGURUTAN DATA (SORTING)
13.1 Defenisi Pengurutan .................................................................... 136
13.2 Pengurutan Internal dan Pengurutan Eksternal ............................. 136
13.3 Algoritma Pengurutan Gelembung (Buble Sort) ............................. 137
13.4 Pengurutan Pilih ......................................................................... 138
13.5. Pengurutan Sisip ........................................................................ 145
13.6. Penggabungan Dua Buah Larik Terurut ........................................ 148
vi
Algoritma & Pemrograman C++
BAB
1 ALGORITMA DAN
BAHASA PEMROGRAMAN
1
Algoritma & Pemrograman C++
Defenisi :
2
Algoritma & Pemrograman C++
3
Algoritma & Pemrograman C++
4
Algoritma & Pemrograman C++
praktis bagi kita, maka diperlukan suatu bahasa yang mudah dimengertii
oleh setiap orang.
Banyak ahli yang mencoba mengembangkan suatu bahasa
pemrograman yang mendekati bahasa manusia dan tidak bergantung
kepada jenis komputer yang digunakan. Kemudian bahasa yang seperti ini
disebut dengan bahasa pemrograman tingkat tinggi (high level programming
language). Contoh bahasa pemrograman tingkat tinggi sekarang banyak
digunakan seperti : BASIC, TURBO PASCAL, C++, COBOL, JAVA, PROLOG,
bahas Pemrogram Visual dan juga bahasa lainnya. Tentunya dengan
menggunakan bahasa tersebut diatas selalu diterjemahkan terlebih dahulu
ke dalam bahasa mesin agar dapat dimengerti oleh komputer itu sendiri.
Jenis penerjemah bahasa pemrograman tingkat tinggi ke dalam
bahasa mesin ada dua jenis yaitu iterpreter dan compiler. Perbedaan kedua
penerjemah ini adalah:
Pada Interpreter, perintah/instruksi dalam program sumber
dibaca/diterjemahkan (diinterpretasikan), dan langsung dilaksanakan baris
per baris progam. Jadi tidak akan memperoleh hasil terjemahan program
sumber dalam bahasa mesin. Setiap kali program di jalankan atau melihat
hasil (run), harus menggunakan program sumber dan karenanya selalu
dibutuhkan interpreter untuk menerjemahkannya. Dalam arti programmer
menulis programnya dengan bahasa tingkat tinggi yang mirip dengan
bahasa manusia kemudian akan diterjemahkan oleh penerjemah interpreter
ke dalam bahasa yang dimengerti mesin komputer.
Sedangkan compiler membaca keseluruhan program sumber
(Source program) dan menerjemahkannya menjadi satu set lengkap
instruksi dalam bahasa mesin, sebelum instruksi-instruksi itu dilaksanakan.
Setelah proses itu dilaksanakan maka akan menghasilkan sebuah program
objek (Object Program) dan file pendukung lainnya yang biasanya disimpan
dalam media penyimpanan yang telah memiliki nama objek. Sehingga
apabila ingin menjalankan program tersebut dapat menggunakan objek
yang sudah dihasilkannya tanpa menggunakan program sumber file Aplikasi.
5
Algoritma & Pemrograman C++
6
Algoritma & Pemrograman C++
1. Runtunan
Contoh Runtunan instruksi yang dilambangkan dengan A1, A2, A3, A4, dan
A5 berikut :
A1
A2
A3
A4
A5
2. Pemilihan
Adakalanya sebuah instruksi dikerjakan jika kondisi tertentu dipenuhi. Dalam
bahasa Indonesia , IF berarti “jika” dan then artinya “maka”. Kondisi adalah
persyaratan yang dapat dinilai benar atau salah.
Rumus : If kondisi then
Aksi 1
Else
Aksi 2
7
Algoritma & Pemrograman C++
Contoh :
If hari hujan then
Pergilah naik beca
Else
Pergilah naik motor
3. Pengulangan
Struktur pengulangan terdiri dari :
- Repeat - Until
- While - do
- For
Contoh pengulangan dengan Repeat … Until
Algoritma Menulis_FIKOM_UMI
{menulis kalimat “FIKOM_UMI” sebanyak 100 kali.}
DEKLARASI :
Kalimat : Integer; {peubah data bilangan bulat}
DESKRIPSI :
Kalimat = 0
Repeat
Tulis “FIKOM_UMI”
Naikkan kalimat dengan 1
Until = 100
8
Algoritma & Pemrograman C++
1. Dengan Naratif
Dengan menggunakan kalimat sendiri sesuai dengan pengertian dan
pemahaman seorang programmer (untuk memudahkan programmer dalam
membuat kode program).
2. Dengan Flowchart
Dengan menggunakan bagan atau simbol-simbol tertentu dengan logis dan
sistematis
Simbol-simbol flowchart:
Process
Decision (kondisi/perbandingan)
Document
Mulai
Mencari
Nomor Telepon
Mengangkat
GagangTelepon
Memutar
Nomor Telepon
Berkomunikasi
(berbicara)
Meletakkan
Gagang Telepon
Selesai
10
Algoritma & Pemrograman C++
3. Dengan Pseudocode
Dengan menggunakan Pseudocode artinya algoritma tersebut mirip dengan
statemen atau perintah pada bahasa pemrograman yang digunakan: contoh
statement:
- INPUT (menerangkan data masukan)
- OUTPUT (data keluaran)
- PRINT (pencetakan ke input/output standar)
- FI (kondisi/seleksi)
- LOOP (perulangan/iterasi)
Contoh Kasus :
Penentuan Kelulusan Mata Kuliah berdasarkan Nilai Akhir
Kriteria : Jika NA >= 60 Maka Lulus
NA < 60 MAka Tidak Lulus
11
Algoritma & Pemrograman C++
Mulai
Ya
NA>=60 “LULUS”
Tidak
“Tidak LULUS”
Selesai
12
Algoritma & Pemrograman C++
13
Algoritma & Pemrograman C++
4. Pengkodean (Coding)
- memilih bahasa pemrograman yang sesuai
- menerjemahkan algoritma ke dalam bahasa pemrograman
tersebut
5. Mencari Kesalahan
Cari Kesalahan-kesalahan
- kompilasi: sintaks
- pelaksanaan: simantik, logika/algoritma, ketelitian
7. Dokumen Tertulis
- pemakai: (manual petunjuk pemakaian program)
- dokumentasi bagi pemrogram untuk keperluan perbaikan
atau perubahan jika sewaktu-waktu diperlukan
8. Pemeliharaan Program
- Memperbaiki kekurangan yang ditemukan kemudian
- Modifikasi atas dasar perubahan dalam spesifikasi masalah.
14
Algoritma & Pemrograman C++
BAB
BAHASA
2 PEMROGRAMAN C++
Cara ini dilakukan tidak harus semua program dibaca tetapi dengan
melakukan seleksi atau pencabangan tertentu sehingga jika satu kondisi
telah dipenuhi maka kondisi lain tidak diteruskan’dikerjakan lagi, prosesnya
akan lebih cepat. Sedangkan struktur pengulangan adalah konsep yang lebih
maju dari kedua struktur diatas yaitu program dapat melakukan
pengulangan atau iterasi pada sebuah proses tertentu dan dapat
mebedakan hasil proses setiap pengulangan. Jumlah atau batas
pengulangan dapat ditentukan sesuai dengan jumlah yang diinginkan.
Sekarang ini pada setiap bahasa program harus menggunakan
ketiga struktur ini agar dapat menjawab setiap persoalan yang muncul
dalam pemrograman. Bahasa program juga akan dilengkapi dengan
pembuatan konstanta pendefenisian variabel, penggunaan operator, cara
penulisan program atau sintaks, fungsi dan procedure. Sehingga dalam
mempelajari sebuah bahasa pemrograman langkah yang baik dilakukan
adalah dengan megetahui ketiga struktur diatas serta dapat mengenal
komponen yang tersedia dalam bahasa tersebut.
.
.
tipe SubProgramN(parameter)
tipe main(parameter) //Program Utama
{
//deklarasi variabel lokal
.
.
[return nilai;]
}
tipe SubProgram1(parameter) //deklarasi isi sub program
{
//deklarasi variabel lokal
.
.
[return nilai;]
}
tipe SubProgram2(parameter)
{
//deklarasi variabel lokal
.
.
[return nilai;]
}
.
.
3
tipe SubProgramN(parameter)
{
//deklarasi variabel lokal
.
.
[return nilai;]
}
17
Algoritma & Pemrograman C++
18
Algoritma & Pemrograman C++
Pesan
Gambar Layar Utama C++ Kesalahan
Memulai file baru
- Menu File Shortcut Program
- New
Membuka File
- Menu File
- Open, pilih File dengan ekstensi *.CPP
Meyimpan file
- Menu File
- Save
- Tentukan Folder dan Ketikkan nama file ekstensi *.CPP
20
Algoritma & Pemrograman C++
21
Algoritma & Pemrograman C++
Untuk memastikan kompiler dapat berjalan dengan baik maka seting file
source dan file system pada menu Option, Directori sesuai dengan folder file
Bahasa C++ di komputer yang digunakan.
Contoh
22
Algoritma & Pemrograman C++
Selain dari pada ANSI C juga terdapat beberapa tambahan keywords yaitu:
23
Algoritma & Pemrograman C++
BAB
ATURAN PENULISAN
3 PROGRAM C++
Setiap fungsi utama (main) maupun fungsi buatan terdiri dari badan
fungsi yang memuat bagian deklarasi lokal dan kode program yang dapat
dieksekusi. Secara umum susunan C++ dapat digambarkan seperi berikut
ini:
[dokumentasi program]
[pengarah prapengolahan]
[deklarasi global]
[jenis-data] main[daftar argumen]
{
[ deklarasi lokal]
[kode program yang dapat dieksekusi]
}
[fungsi-fungsi buatan programmer]
keterangan: setiap kurung siku diatas bersifat opsional jka dibutuhkan maka
dapat dituliskan dan jika tidak diperlukan maka tidak dituliskan.
24
Algoritma & Pemrograman C++
Fungsi utama merupakan fungsi induk dari sebuah program C++ yang harus
ada pada setiap pembuatan Program. Bentuk penulisan adalah sebagai
berikut:
void main()
{
cout << “Selamat Belajar C++”;
}
tanda () berfungsi untuk mengapit sebuah argumen fungsi yaitu sebuah nilai
yang akan dileewatkan melalui fungsi.
#include <namafile.h>
contoh:
1. #include <iostream.h>
2. void main()
3. {
a. clrscr();
b. cout << “ Selamat Menggunakan C++”;
4. }
25
Algoritma & Pemrograman C++
Berikut ini akan dibuat sebuah contoh lain yang dapat menggambarkan
susunan dari setiap baris program.
26
Algoritma & Pemrograman C++
Pembahasan Linkaran.CPP
x /* program untuk menghitung luas Lingkaran*/
dokumentasi program atau keterangan tentang tujuan program
(komentar) tdk dieksekusi program
x #include <stdio.h>
x #include <math.h>
Merupakan pengarah atau prapengolah dimana dalam file #include
perintah atau sintaks penulisan perintah yang digunakan terdapat
dalam file <stdio.h> dan <math.h> (file source jika file ini tidak ada
maka program tidak dapt dieksekusi atau tidak mengenal perintah
yang dituliskan dalam listing program)
x #define pi 3.14
Defenisi konstanta artinya mendefenisikan sebuah variabel dengan
nilai tertentu yang tetap
x double luas;
x double luas_lingkaran(double);
Bagian deklarasi global yang mendefenisiakn dua variabel yaitu luas
bertipe double dan luas_lingkaran bertipe double yang dapat
digunakan dalam setiap fungsi.
x double jarijari;
bagian deklarasi lokal yang memuat deklarasi variabel jarijari bertipe
double
x if (ardc<2)
{
cout << “Penggunaan : \n\t%s jarijari \n” << argv[0]);
exit(0);
}
jarijari=atof[argv[1]);
luas=luas_lingkaran(jarijari);
cout << “Luas Lingkaran berjari-jari %F = %f \n” <<
jarijari,luas;
Bagian kode program merupakan proses yang dapat dieksekusi dan
menghasilkan nilai, dalm kode ini terdapat fungsi if dan blok
pernyataan dan memiliki struktur pencabangan.
x }
Akhir blok program fungsi main
x double luas_lingkaran(double r)
{
return (pi * kuadrat(r));
}
fungsi buatan programmer, berjenis double dan dapat menerima
argumen berjenis doubel dengan nama fungsi luas_lingkaran.
28
Algoritma & Pemrograman C++
Contoh Program
Penggunaan printf
1. #include<stdio.h>
2. void main()
3. {
4. int A,B,C;
5. A=6;
6. B=4;
7. C=A + B;
8. printf("%i",C);
9. }
Hasil tercetak : 10
Penggunaan sqrt()
1. #include<stdio.h>
2. #include<math.h>
3. void main()
4. {
5. int A,B;
6. A=25;
7. B=sqrt(A);
8. printf("%i",B);
9. }
Hasil tercetak : 25
Penggunaan strcpy()
1. #include<stdio.h>
2. #include<string.h>
3. void main()
4. {
5. Char A[5] = “ABCD”;
6. Char B[5] = “PQRS”;
7. Strcpy(B,A);
8. puts (B);
9. }
29
Algoritma & Pemrograman C++
BAB
Semua kata kunci diatas harus dituliskan dalam bentuk huruf kecil
30
Algoritma & Pemrograman C++
4.2 Pengenal
Berbeda dengan kata kunci yang telah memiliki arti dan kegunaan
yang tetap, sebuah pengenal adalah kata yang digunakan oleh programmer
untuk maksud dan tujuan tertentu. Sebuah pengenal merupakan kombinasi
dari huruf, angka dan garis bawah penghubung dan huruf pertama harus
diawali dengan huruf. Jumlah maksimum karakter yang digunakan untuk
membentuk pengenal bervariasi tergantung dari kompiler yang digunakan.
Standa ANSI memperkenalkan panjang maksimum 31 karakter.
Karakter yang digunakan dapat berupa huruf kecil atau huruf besar atau
kombinasi keduanya dan tidak dapat menggunakan sapasi dengan kata lain
harus satu kata. Tetapi dalam hal ini bahasa C membedakan antara huruf
kecil dan huruf besar (case sensitive) contoh pemakaian pengenal yang
mengacu ke nama variabel, konstanta bernama, nama fungsi dan nama larik
(array) seperti contoh berikut ini:
x Indeks /* nama variabel */
x yN /* nama variabel */
x PI /* konstanta bernama */
x CariAngka() /* nama fungsi */
x JlhArr[10] /* nama array */
31
Algoritma & Pemrograman C++
4.3 Konstanta
‘d’,’D’,’3’,’$’
‘\r’,’\a’,’\n’, ‘\0’
Kelompok huruf
‘a’,’b,’c’....’z’...’A’,’B’....’’Z’
kelompok angka
‘0’,’1’,’2’...’9’
32
Algoritma & Pemrograman C++
Konstanta integer
Terdiri dari untaian bilangan bulat, berdasarkan basisnya konstanta
integer biasa digunakan dalam Bahasa C dapat dibagi atas tiga
integer Heksadesimal (0 – F)
234.,456,AB23,43FA,A1,12,0..
33
Algoritma & Pemrograman C++
4.4 Variabel
Jenis_data nama_variabel
Contoh
Int nilai;
Double luas;
Char jk;
1. Hanya boleh terdiri dari huruf, angka dan garis bawah dan tidak boleh diawali
oleh angka
2. Tidak boleh menggunakan karakter khusus seperti #,$,@, dll
3. Dua pengenal yang dibedakan dengan huruf besar dan kecil adalah dua
pengenal yang berbeda (case sensitive)
A. Operator Aritmatik
No Operator Contoh Arti/Fungsi
1 + c=a+b; Operator Penjumlahan
2 - c=a-b; Operator Pengurangan
3 * c=a*b; Operator Perkalian
4 / c=a/b; Operator Pembagian
5 % c=5%2; Modulus (Mengambil sisa bagi) dari 5/2
6 = c=10; Operator Assignment
7 ++ i++; i=i+1;
8 -- i--; i=i-1;
9 += c+=3; c=c+3;
10 -= c-=2; c=c-2;
11 *= c*=3; c=c*3;
12 /= c=/2; c=c/2;
13 %= c%=4; c=c%4;
35
Algoritma & Pemrograman C++
B. Operator Logika
C. Operator Logika
No Operator Contoh Dalam Biner Arti/Fungsi
1 & a=6&9; 0110 & 1001 = 0000 a menghasilkan 0
2 | a=6|9; 0110 | 1001 = 1111 a menghasilkan 15
3 ! b=!6; !0110 = 1001 b menghasilkan 9
4 ^ b=9^3; 1001 ^ 0011 = 1000 b menghasilkan 8
5 << c=3 << 2; 0011 digeser 2 bit ke kiri = 1100 c menghasilkan 12
6 >> c=12 >> 2; 1100 digeser 2 bit ke kanan = 0011 c menghasilkan 3
1 #include <iostream.h>
2 #include <conio.h>
3
4 void main()
5 {
6
7 unsigned char ch;
8 clrscr();
9 cprintf("Tabel ASCII \n");
10 cout << "\n";
11
12 for (ch=0; ch<255; ch++)
36
Algoritma & Pemrograman C++
13 {
14 // jika karakter line feed
15 if (ch==0)
16 {
17 // cprintf("<LF>");
18 cout << "=");
19 cout << "%-3d " << ch;
20 }
13 {
14 fr = ((9 * cel) / 5) + 32;
15 ru = (4 * cel) / 5;
16 kel = cel + 273;
17 cel=cel+10;
18 cprintf("%d \t %d \t %d \t %d \n ",cel,ru,fr,kel);
19 }
20 getch();
21 }
38
Algoritma & Pemrograman C++
39
Algoritma & Pemrograman C++
BAB
40
Algoritma & Pemrograman C++
41
Algoritma & Pemrograman C++
Output :
42
Algoritma & Pemrograman C++
I=0;
Tambah = ++hitung;
Total = total + 1;
LuasSegitiga = ( LuasAlas * Tinggi ) * 0.5;
43
Algoritma & Pemrograman C++
while((c=getchar()) != ‘*’ )
44
Algoritma & Pemrograman C++
5.10 Ekspresi
45
Algoritma & Pemrograman C++
Sebagai contoh,
A= b + 4;
X = --k % 2;
(x>= 0) || ((x %11) == 0);
/* Contoh Program penggunaan Operator Aritmatika */
1 #include<constrea.h>
2
3 void main(void)
4 {
5 int x,y=10,z=20;
6 x=z++;
7 y=y%4;
8 cprintf("x= %d, y= %d, z= d \n", x, y, z);
9 X=++z;
10 Y=x/2;
11 cprintf("x= %d, y= %d, z= d \n", x, y, z);
12 X=--y;
13 Z = z * 2;
14 cprintf("x= %d, y= %d, z= d \n", x, y, z);
15 X=y--;
16 Z= y + 1;
17 cprintf("x= %d, y= %d, z= d \n", x, y, z);
18 X=++z;
19 getch();
20 }
46
Algoritma & Pemrograman C++
BAB
a. Fungsi cprintf()
Fungsi ini paling banyak digunakan karena memiliki format sehingga
disesuaikan dengan apa bentuk output yang diinginkan.
Contoh
cprintf(“\n”)
cprintf (“Good Luck For You”);
cprintf(“%.4.1f = %4.1f / %4.1f “,x,y,z);
cprintf(“Hasil Jumlah = %d \n”,jlh);
47
Algoritma & Pemrograman C++
Berikut ini tabel lengkap penentu format yang dapat digunakan pada
fungsi cprintf()
Contoh Program
1 /* untuk penggunaan penentu format*/
2
3 #include<constrea.h>
4 //pengaturan control standart input/output
5 #include<conio.h>
6
7 void main(void)
8 {
9 char str[] = "Pemilihan Umum Tinggal Sebentar Lagi";
10 int i=12, j=102, k =1002;
11 float x=10.1, y = -101.1, z=1001.1;
12 unsigned l =345, m = 0xf01c, n=0xafde;
13 short p =1001;
14 long q = 55555;
15 long double r = 250100.5;
16
17 // untuk membersihkan tampilan diawal terlebih dahulu
18 clrscr();
19
20 cprintf ("Format Data \n");;
21 cprintf (" %50s \n", str);
22 cprintf (" Kelompok Integer : \n %5i \n%-5d \n%5d \n", i,j,k);
48
Algoritma & Pemrograman C++
Output:
49
Algoritma & Pemrograman C++
b. Fungsi puts()
Fungsi puts adalah fungsi yang dapat dgigunakan untuk menuliskan
string ke layar dan menambahkan baris baru. Contoh,
50
Algoritma & Pemrograman C++
a. Fungsi cin>>
Fungsi ini merupakan pasangan dari fungsi cout yang bertujuan untuk
menerima masukkan dari alat input. fungsi ini sangat baik digunakan
untuk pengolahan data numerik.bentuk penulisannya adalah sebagai
berikut:
b. Fungsi Scanf()
Fungsi ini paling banyak digunakan karena memiliki banyak fasilitas
konversi ke dalam nilai yang diinginkan dengan format tertentu.
Fungsi scanf() memiliki dua ciri yaitu daftar argumen sepanjang apapun
dapat di scan dan keua input yang diberikan dikendalikan oleh sebuah
spesifikasi konversi atau format yang sederhana.
Contoh
Char ch1,ch2,ch3,str[100];
Int x;
Double z;
51
Algoritma & Pemrograman C++
Berikut ini tabel lengkap penentu format yang dapat digunakan pada
fungsi scanf()
Penentu Format Jenis Data Spesifikasi Konversi
%c Char Karakter tunggal
%s Char[] String berupa konstanta
%d Int Integer desimal
%f Float/double Floating point
%e atau %E Float/double Notasi ilmiah
%n Pointer ke int Menyimpan jlh char dicetak
%g atau %G Float/double Floating point
%u Unsigned Integer desimal
%x atau %X Unsigned Untuk heksadesimal huruf keci/besar
%o Unsigned Integer oktal
p Far pointer ke void Alamat dicetak bentuk segment/offset
52
Algoritma & Pemrograman C++
Contoh program:
Output Program:
53
Algoritma & Pemrograman C++
Contoh 2:
Output program
12. {
13. textcolor(2);
14. textbackground(7);
15. cprintf("salemat");
16. cout << "\n";
17. }
18. else
19. if (i==2)
20. {
21. textcolor(5);
22. textbackground(2);
23. cprintf("selamat");
24. cout << "\n";
25. }
26. else
27. if (i==3)
28. {
29. textcolor(4);
30. textbackground(6);
31. cprintf("selamit");
32. cout << "\n";
33. }
34. else
35. cprintf("\n\nTdak ada Pilihan");
36. getch();
37. }
55
Algoritma & Pemrograman C++
BAB
SELEKSI DAN
7 PECABANGAN
7.1 Struktur if
Statemen if digunakan untuk membandingkan suatu kondisi ke
kondisi tertentu. Jika kondisi tersebut sesuai dengan pembandingnya maka
akan dijalankan perintah tertentu. Tetapi apabila tidak memenuhi syarat
atau tidak sesuai dengan pembandingnya maka kondisi tersebut salah dan
akan dilanjutkan ke kondisi yang berikutnya serta perintah yang diberikan
tidak dijalankan.
56
Algoritma & Pemrograman C++
Sintaks pernyataan if :
if (ekspresi)
{
.. Peryataan1…
.. Peryataan2…
}
Kondisi ini dapat digambarkan seperti berikut ini:
if (ekspresi)
Benar
Salah
…Pernyataan…
if (Bilangan % 2 == 0)
{
printf(“Bilangan Genap”);
}
57
Algoritma & Pemrograman C++
Contoh lain
if scanf(“%d”, &n) !=1)
cPrintf(“Jenis input yang diberikan salah \n”);
if (ekspresi1) Then
{
…pernyataan1…
}
else
{
.. pernyataan2…
}
Benar
if (Ekpresi )
Pernyataan1
Salah
Pernyataan 2
Keluar
58
Algoritma & Pemrograman C++
Contoh Progam:
if (Bilangan % 2 == 0)
{
printf(“Bilangan Genap”);
}
else
{
printf(“Bilangan Ganjil”);
}
59
Algoritma & Pemrograman C++
Contoh program
Buatlah satu program penilaian pada dengan syarat jika,
Range Nilai
Total Nilai 85 – 100 =A
Total Nilai 71 – 84 =B
Total Nilai 65 – 70 =C
Total Nilai 50 – 64 =D
Total Nilai 0 - 50 =E
60
Algoritma & Pemrograman C++
Contoh Program :
62
Algoritma & Pemrograman C++
9 clrscr();
10 cout << "Nilai Quiz = " ); cin >> q ;
11 cout << "\n");
12 cout << "Nilai Final = "; cin >> f ;
13 cout << "\n";
14 cout << "-------------------------------" ;
15 cout << "\n";
16
17 tot=0.3 * q + 0.7 * f;
18
19
20 if (tot >= 85 && tot <= 100 )
21 {
22 cout << "Nilai = A " ;
23 }
24 Else
25 if (tot >= 75 && tot <= 84 )
26 {
27 cout << "Nilai = B " ;
28 }
29 Else
30 if (tot >= 65 && tot <= 74 )
31 {
32 cout << "Nilai = C " ;
33 }
34 Else
35 if (tot >= 55 && tot <= 64 )
36 {
37 cout << "Nilai = D " ;
38 }
39 Else
40 if ( tot <= 55 )
41 {
42 cout << "Nilai = E " ;
43 }
44
45 getch() ;
46 }
63
Algoritma & Pemrograman C++
64
Algoritma & Pemrograman C++
switch (ekspresi1)
case value1:
……pernyataan1…
break;
case value2:
……pernyataan2…
break;
case value3:
……pernyataan3…
break;
.…
default :
……pernyataanN…
penggunaan default adalah jika salah satu pilihan tidak dipenuhi maka nilai
yang akan ditampilkan adalah nilai default.
Catatan:
Tuliskanlah kode program dengan rapi dan teratur agar mudah dbaca,
diperbaiki serta mudah mendeteksi kesalahan.
65
Algoritma & Pemrograman C++
switch
(ekspresi)
Case value1:
..Pernyatan1.
Case value2:
..Pernyatan2
Case value3:
..Pernyatan3.
default
switch (x)
{
Case 1:
{
printf(“"Rp. 10000");
break;
}
Case 2:
{
printf(“"Rp. 15000");
break;
}
default :
{
printf(“"Rp. 20000")
break;
}
}
66
Algoritma & Pemrograman C++
Contoh Program 1:
1 #include<stdio.h>
2 #include<conio.h>
3 #include<string.h>
4
5 main()
6 {
7 int pil;
8
9 clrscr();
10 cout << "Pembahasan switch – case \n";
11 cout << "\nMasukkan Pilihan Anda [1..5] : ";
12 cin >> pil;
13
14 switch (pil)
15 {
16 case 1:
17 cprintf( "\n Bilangan 1 ");
18 break;
19 case 2:
20 cprintf( "\n Bilangan 2 ");
21 break;
22 case 3:
23 cprintf( "\n Bilangan 3 ");
24 Break;
25 case 4:
26 cprintf( "\n Bilangan 4 ");
27 break;
28 case 5:
29 cprintf( "\n Bilangan 5 ");
30 break;
31 default:
32 cprintf( "\n Pilihan Tidak Ada");
33 }
34 getch();
35 }
67
Algoritma & Pemrograman C++
Contoh Program 2 :
/* Program untuk perhitungan matematika */
1. #include <iostream.h>
2. #include <stdio.h>
3. #include <conio.h>
4. void main()
5. {
6. int pilihan;
7. float Lsegitiga,Ksegitiga,Lpersegi,Kpersegi;
8. float Lpersegipanjang,Kpersegipanjang,Llingkaran;
9. float Klingkaran,Vkubus,LPkubus,Vbalok,LPbalok;
10. float Vbola,LPbola,Vlimassegiempat,LPlimassegiempat;
11. float Vtabung,LPtabung ;
12. float a, t, s, p, l, r, phi,sAB,sBC,sCA;
13. char ulang;
14. do
15. {
16. clrscr();
69
Algoritma & Pemrograman C++
84. break;
85. case 6 :
86. cout<<"Menghitung Volum Balok"<<endl;
87. cout<<"Menghitung Luas Permukaan Balok"<<endl;
88. cout<<"Masukkan panjang balok : ";cin>>p;
89. cout<<"Masukkan lebar balok : ";cin>>l;
90. cout<<"Masukkan tinggi balok : ";cin>>t;
91. Vbalok = p*l*t;
92. LPbalok = (2*p*l)+(2*p*t)+(2*l*t);
93. cout<<"Volum balok adalah : "<<Vbalok<<endl;
94. cout<<"Luas permukaan balok adalah : "<<LPbalok<<endl;
95. break;
96. case 7 :
97. cout<<"Menghitung Volum Bola"<<endl;
98. cout<<"Menghitung Luas Permukaan Bola"<<endl;
99. cout<<"Masukkan jari jari bola : ";cin>>r;
100. cout<<"Masukkan tinggi bola : ";cin>>t;
101. phi = 3.14;
102. Vbola = 4/3*phi*r*t*t*t;
103. LPbola = 4*phi*r*r;
104. cout<<"Volum bola adalah : "<<Vbola<<endl;
105. cout<<"Luas permukaan bola adalah : "<<LPbola<<endl;
106. break;
107. case 8 :
108. cout<<"Menghitung Volum Limas Segi Empat"<<endl;
109. cout<<"Menghitung Luas Permukaan Limas Segi Empat"<<endl;
110. cout<<"Masukkan panjang limas segi empat : ";cin>>p;
111. cout<<"Masukkan lebar limas segi empat : ";cin>>l;
112. cout<<"Masukkan tinggi limas segi empat : ";cin>>t;
113. Vlimassegiempat = (p*l*t)*1/3;
114. LPlimassegiempat = ((p+l)*t)+(p*l);
115. cout<<"Volum limas segi empat adalah :
"<<Vlimassegiempat<<endl;
116. cout<<"Luas permukaan limas segi empat adalah :
"<<LPlimassegiempat<<endl;
117. break;
118. case 9 :
119. cout<<"Menghitung Volum Tabung"<<endl;
120. cout<<"Menghitung Luas Permukaan Tabung"<<endl;
121. cout<<"Masukkan jari jari tabung : ";cin>>r;
122. cout<<"Masukkan tinggi tabung : ";cin>>t;
123. phi = 3.14;
124. Vtabung = phi*r*r*t;
125. LPtabung = (2*phi*r)*(r*t);
70
Algoritma & Pemrograman C++
23. Hasil
24. masukan nilai yang akan dipangkatkan: 2
25. masukan pangkat:5
32
3 #include<conio.h>
4 #include<ctype.h>
5
6 int main(void)
7 {
8 unsigned char ch;
9
10 clrscr();
11 cprintf("Tuliskan sembarang tombol");
12 while((ch =getchar()) != '\n')
13 {
14 // untuk menguji angka atau tidak
15 if ((!isdigit(ch)) && (ch != '\n'))
16 goto err_label;
17 putchar(ch);
18 }
19 cprintf("\n");
20 return 0;
21
22 err_label:
23 cprintf("\n\Errorr : %c bukan karakter angka \n",ch);
24 getch();
25 }
1 #include<stdio.h>
2 #include<conio.h>
3
4 main()
5 {
6 char ch;
7
8 int ax=1,ay=1;
9 int x = 40, y=10;
10 clrscr();
11 _setcursortype(_NOCURSOR);
12
73
Algoritma & Pemrograman C++
13 gotoxy(1,25);
14 do
15 {
16 gotoxy(x,y);
17 cprintf("*");
18 ch = getch();
19 If(ch==0)
20 {
21 ch = getch();
22 cgotoxy(x,y);
23 printf(" ");
24
25 switch(ch)
26 {
27 case 72 : if (y>=1);
28 y=y-ay;
29 textcolor(2);
30 break;
31 case 80 : if (y<=25);
32 y=y+ay;
33 textcolor(3);
34 break;
35 case 75 : if ( x>=1);
36 x=x-ax;
37 textcolor(4);
38 break;
39 case 77 : if ( x<=80);
40 x=x+ax;
41 textcolor(5);
42 break;
43 }
44
45 if (x == 80 || x == 1)
46 ax = -ax;
47
48 if (y == 25 || y == 1)
49 ay = -ay;
50
74
Algoritma & Pemrograman C++
51 }
52 }
53 while (ch != 27);
54 }
Output dapat digerakkan oleh panah ke atas, ke bawah , ke kanan dan ke kiri
75
Algoritma & Pemrograman C++
BAB
8 PERULANGAN
untuk
P erulangan (loop) atau sering disebut dengan iterasi, adalah
kumpulan instruksi program yang memerintahkan suatu tugas
dikerjakan secara berulang-ulang berdasarkan suatu kondisi
tertentu/interval tertentu. Perulangan ini tentunya dapat dibatasi nilai atau
jumlah perulangan yang dilakukan. Loop ini akan terus dilakukan selama
kondisi yang dibandingkan oleh suatu loop tersebut masih memenuhi syarat
atau bernilai true. Apabila sudah diluar syarat yang ditentukan maka
perulangan akan berhenti atau bernilai false.
76
Algoritma & Pemrograman C++
Penjelasan:
Ekspresi1 : Nilai awal dari perulangan
Ekspresi2 : Nilai akhir dari suatu perulangan
Ekspresi3 : Besarnya kenaikan yang dilakukan selama perulangan
pernyatan : Instruksi-instruksi yang akan dilakukan jika kondisi
memenuhi syarat
Contoh progam:
1 #include<stdio.h>
2 #include<conio.h>
3
4 void main(void)
5 {
6 int i;
7 clrscr();
8 printf("Pembahasan LOOP \n");
9
10 for (i=1; i<6; i++)
11 printf("%d\n",i) ;
12
13 getch();
14 }
15
16 Output:
17 1
18 2
19 3
20 5
21 6
77
Algoritma & Pemrograman C++
78
Algoritma & Pemrograman C++
79
Algoritma & Pemrograman C++
Pengertian program:
x=1
while (x <= 6)
Variabel x akan diperiksa apakah isinya kurang atau sama dengan 6, jika
benar maka akan dilajutkan
X++ Æ x = x + 1
variabel i dalam hal ini akan berubah-ubah setiap pengulangan dilakukan
jika masih memenuhi persyaratan pada perulangan.
printf(“%d\n”,x);
Nilai dari variabel ini akan selalu dicetak setelah melakukan satu
pengulangan
False
while
(ekspresi)
True
..pernyataan
..ekspresi..
Berikutnya
80
Algoritma & Pemrograman C++
Contoh Progam 1:
2
3
4 #include<stdio.h>
5 #include<conio.h>
6
7 void main(void)
8 {
9 int i;
10 clrscr();
11 do
12 {
13 cprintf("Masukkan Bilangan [1..20] : ");
14 scanf("%d",&i);
15 }
16
17 while(i<=1 || i>=20);
18 //program ini akan dijalankan jika antara 1-20
19 {
20 cprintf("Angka yang diinput antara 1-20");
21 }
22 getch();
23 }
Contoh Program 2.
#include <constrea.h>
void main()
{
clrscr();
char A = '\0';
do{
A = getch();
cout << "Hello" << endl;
cout << "Belajar\n";
cout << "A = " << A << endl;
//getch();
}while(A != 13);
}
81
Algoritma & Pemrograman C++
while (ekspresi)
{
do
{
…pernyataan1 ..
…Pernyataan 2..
}
while (ekspresi)
}
Contoh Programmya:
1 /* contoh program loop bersarang */
2 #include<stdio.h>
3 #include<conio.h>
4
5 void main()
6 {
7 int i,j;
8 clrscr();
9 cprintf("Contoh Loop Bersarang\n\n");
10
11 for (i=1; i<=3; i++)
12 {
13 cprintf("Bahasa Pemrograman C++\n");
14 for (j=1; j<=3; j++)
15 cprintf(" Mudah Dipelajari\n");
82
Algoritma & Pemrograman C++
16 }
17
18 getch();
19 }
20
21 Output:
22 Bahasa Pemrograman C++
23 Mudah Dipelajari
24 Mudah Dipelajari
25 Mudah Dipelajari
26 Bahasa Pemrograman C++
27 Mudah Dipelajari
28 Mudah Dipelajari
29 Mudah Dipelajari
30 Bahasa Pemrograman C++
31 Mudah Dipelajari
32 Mudah Dipelajari
33 Mudah Dipelajari
83
Algoritma & Pemrograman C++
20 }
21
22
23 output :
24 1
25 4 4
26 9 9 9
27 16 16 16 16
28 25 25 25 25 25
29 36 36 36 36 36 36
27 * *
28 * **
29 * ** *
30 * ** **
31 * ** ***
32 * ** **
33 * ** *
34 * **
35 * *
36 *
28 lg=getche();
29 printf("\n");
30 }
31 while(toupper(lg)=='Y');
32 getch();
33 }
34
35 Output :
36 Input Bilangan :10
37 Jlh Bilangan : 5
38
39 11 13 15 17 19
40 pada posisi baris 13 kolom 15
41 Coba Lagi [Y/T] : y
42
86
Algoritma & Pemrograman C++
23 if (ctr == 2)
24 cprintf("%d ",i);
25 }
26 getch();
27 }
29 Output:
30 Berikan Batas awal : 2
31 Berikan Batas Akhir : 10
32 Bilangan Prima antara 2 dan 10 =
33 2 3 5 7
1 /* Proram untuk membuat huruf berjalan pada layar
2 secara berkeliling mulai dari posisi sudut kiri ke bawah
3 lanjut kekanan posisi sudat kanan bawah, naik ke
4 sudut kanan atas dan mundur keposisi kiri atas*/
5
6 #include<constrea.h>
7 #include<conio.h>
8 #include<dos.h> // fungsi watu dlm mili detik
9
10 void main()
11 {
12 int y =1;
13 int x=1;
14 clrscr();
15 Do
16 {
17 // untuk menampilkan bintang dari line 1 sampai 24
18 // secara menurun
19 // y bertambah 1
20 Do
21 {
22 gotoxy(1,y);
23 cprintf("*");
24 delay (100);
25 gotoxy(1,y);
26 cprintf (" ");
27 Y++;
28 }
87
Algoritma & Pemrograman C++
88
Algoritma & Pemrograman C++
69 delay (100);
70 gotoxy(x,1);
71 cprintf ( "*");
72 delay (100);
73 }
74 while(x>1 && !kbhit());
75
76 }
77 while(!kbhit());
78 }
Output program huruf mengelilingi layar
* *
* *
/*Program Bilangan Rambang (Random)*/
1 #include <constrea.h>
2 #include <stdlib.h>
3 #include <conio.h>
4
5 int main(void)
6 {
7 int i;
8 randomize();
9 clrscr();
10 cout << "10 Bilangan random 0 to 99\n\n";
11 for(i=0; i<10; i++)
12 cprintf("%d\n", rand() % 10);
13 getch();
14 return 0;
15 }
16
17 output
18 10 Bilangan random 0 to 99
89
Algoritma & Pemrograman C++
19 2
20 3
21 4
22 5
23 6
24 7
25 7
26 0
27 6
28 3
28 delay(100);
29
30 }
31 while(!kbhit());
32 _setcursortype(_NORMALCURSOR);
33 }
Output:
Bitang akan dipantulkan pada setiap sisi paling kiri, atas, bawah dan kanan.
dan akan terus bergerak.
91
Algoritma & Pemrograman C++
1 #include <constrea.h>
2 #include <conio.h>
3 int a1,a2;
4
5 void main(void)
6 {
7 int fibo(int);
8 int i,n;
9 clrscr();
10 cprintf("Masukkan jumlah bilangan Fibonacci : ");
11 scanf("%d",&n);
12 cprintf("Deret %d Bilangan Fibonacci :\n",n);
13
14 for ( i=1;i<=n;++i)
15 cprintf("%d ",fibo(i));
16 cprintf("\n");
17 getch();
18 }
19
20 int fibo(int a)
21 {
22 a = (a <=2) ? 1 : a1 + a2;
92
Algoritma & Pemrograman C++
23 a2 = a1;
24 a1=a;
25
26 return a;
27 }
28
29 /* Pengertian Program
30 int a1,a2 : variabel eksternal dapat diakses dari seluruh program
31
32 for ( i=1;i<=n;++i)
33 cprintf("%d ",fibo(i));
34
35 untuk melakukan perulangan dalam menampilkan bilangan fibonacci
36 sejumlah n yang dimasukkan
37
38 int fibo(int a)
39 a = (a <=2) ? 1 : a1 + a2;
40 a2 = a1;
41 a1=a;
42 return a;
43
44 Nilai yang akan dikirim ke fungsi diperiksa apakah lebih kecil
45 atau sama dengan 2, jika ya berikan nilai 1 ke a,
46 jika tidak masukkan nilai a1 + a2 ke a.
47 kemudian nilai a1 dipindahkan ke a2,
48 dan nilai a dipindahkan ke a1, Kemudian nilai a
49 dikembalikan ke fungsi utama main() sebagai suku bilangan fibonacci
50
51 OUTPUT:
52 Masukkan jumlah bilangan Fibonacci : 10
53 Deret 10 Bilangan Fibonacci :
54 1 1 2 3 5 8 13 21 34 55
55 */
93
Algoritma & Pemrograman C++
5. void main()
6. {
7. _setcursortype(_NOCURSOR);
8. randomize();
9. int x1, y1, ax1, ay1;
10. int x2, y2, ax2, ay2;
11. clrscr();
12. x1 = random(50)+15;
13. y1 = random(16)+5;
14. ax1 = random(2)*2-1;
15. ay1 = random(2)*2-1;
16. x2 = random(50)+15;
17. y2 = random(16)+5;
18. ax2 = random(2)*2-1;
19. ay2 = random(2)*2-1;
20. do
{
21 for(int i=1;i<16;i++)
22 {
23 textcolor(i);
24 gotoxy(x1,y1);
25 cprintf("o");
26 gotoxy(x2,y2);
27 cprintf("*");
28 delay(20);
29 }
30 gotoxy(x1,y1);
31 cprintf(" ");
32 gotoxy(x2,y2);
33 cprintf(" ");
34 x1+=ax1;
35 y1+=ay1;
36 x2+=ax2;
37 y2+=ay2;
38 if(x1==15 || x1==65)
39 ax1 = -ax1;
94
Algoritma & Pemrograman C++
40 if(y1==5 || y1==20)
41 ay1 = -ay1;
42 if(x2==15 || x2==65)
43 ax2 = -ax2;
44 if(y2==5 || y2==20)
45 ay2 = -ay2;
46
47 gotoxy(25,23);
48 cout << "Koordinat xo = " << x1;
49 gotoxy(43,23);
50 cout << "yo = " << y1;
51 gotoxy(25,24);
52 cout << "Koordinat x* = " << x2;
53 gotoxy(43,24);
54 cout << "y* = " << y2;
55 }while(!kbhit());
56 }
g
Hasil program di atas
95
Algoritma & Pemrograman C++
1. #include <stdio.h>
2. long Faktorial(int n)
3. {
4. long f=1;
5. unsigned char i;
6. for(i=2;i<=n;i++) f*=i;
7. return f;
8. }
9. void main()
10. {
11. int nilai;
12. clrscr();
13. printf("Masukkan nilai yang akan dihitung faktorialnya : ");
14. scanf("%i",nilai);
15. printf("%i! = %ld\n",Faktorial(nilai));
16. }
96
Algoritma & Pemrograman C++
DAFTAR PUSTAKA
208
Drs. Humuntal Rumapea, M.Kom
Lahir di Pangururan 16 Agustus 1962 adalah lulusan Jurusan
Matematika FMIPA Universitas Sumatera Utara tahun 1987 dan
Magister Ilmu Komputer FASILKOM Universitas Indonesia tahun
2001. Saat ini bekerja sebagai Dosen Tetap di Fakultas Ilmu
Komputer Universitas Methodist Indonesia, dan telah tersertifikasi
sebagai dosen Profesional untuk mata kuliah Algoritma dan
Pemrograman, Pengolahan Citra, serta Logika Fuzzy.
ISBN 979-458-662-5