Anda di halaman 1dari 33

Disusun Oleh

Atang Susila
I Putu Susila

Jl. Surya Kencana No. 1 Pamulang Telp (021)7412566, Fax. (021)7412566


Tangerang Selatan – Banten
AGENDA PRAKTIKUM

1. Pertemuan ke I : Pengantar
a. Pendataan peserta praktikum
b. Penjelasan tata tertib praktikum
c. Penjelasan pelaporan hasil praktikum
d. Penjelasan penilaian
e. Pretest
2. Pertemuan ke II : Pengenalan IDE Microsoft Visual C++ Express 2008
3. Pertemuan ke III : Input-Output
4. Pertemuan ke IV : Tipe Data dan Operator
5. Pertemuan ke V : Pencabangan/Pemilihan
6. Pertemuan ke VI : Pengulangan menggunakan FOR
7. Pertemuan ke VII : Pengulangan menggunakan WHILE
LAPORAN KE-1
8. Pertemuan ke VIII: Program menghitung rata-rata, nilai MIN, nilai MAX
9. Pertemuan ke IX : Array dan pointer
10. Pertemuan ke X : Fungsi tanpa nilai balik
11. Pertemuan ke XI : Fungsi dengan nilai balik
12. Pertemuan ke XII : Program menghitung Indek Prestasi
13. Pertemuan ke XIII: Pencarian metode Bagi Dua
14. Pertemuan ke XIV : Pengurutan metode Apung
LAPORAN KE-2
PERTEMUAN I
PENGANTAR

TUJUAN : Peserta dapat melaksanakan praktikum, membuat laporan praktikum dengan benar
dan mengikuti tata tertib dalam melaksanakan praktikum.

1. Tata tertib praktikum (terlampir)


2. Laporan Praktikum :
a. Ada 2 laporan :
i. Laporan ke-1 terdiri dari kumpulan laporan 6 pertemuan pertama,
dikumpulkan seminggu setelah pelaksanaan pertemuan ke-6 di tempat
yang telah ditentukan
ii. Laporan ke-2 terdiri dari kumpulan laporan 7 pertemuan berikutnya
dikumpulkan seminggu setelah pelaksanaan pertemuan ke-13 di tempat
yang telah ditentukan
iii. Hanya dilaporkan praktikum yang diikuti oleh masing-masing
praktikan
3. Penilaian :
a. Kehadiran : 30%
b. Laporan ke-1 : 35%
c. Laporan ke-2 : 35%
d. Salah satu atau lebih dari komponen penilaian diatas kosong maka mendapat
nilai E
4. Format laporan praktikum :
a. Laporan dicetak menggunakan printer pada kertas HVS A4
b. Menggunakan hurup Times New Roman 12 pt, spasi : 1,5. Margin masing-
masing 2,5 cm.
c. Isi laporan untuk masing-masing tema praktikum terdiri dari : teori singkat,
langkah kerja atau kode program, hasil, pembahasan, dan kesimpulan.
d. Laporan dijilid dengan menggunakan halaman depan (kertas HVS) yang telah
ditentukan dan dilapisi plastik transparan, dan jilid belakang menggunakan
kertas karton dengan warna ditentukan oleh asisten.
Contoh halaman muka :

LAPORAN KE-1

Disusun Oleh :
Nama : Cecep Gorbacep
NIM : 123456789
SMT : II.A

Asisten :
Hayam Wuruk
Rd. Wijaya

Jl. Surya Kencana No. 1 Pamulang Telp (021)7412566, Fax. (021)7412566


Tangerang Selatan – Banten
PERTEMUAN II
PENGENALAN IDE MICROSOFT VISUAL C++ EXPRESS 2008

TUJUAN : Agar peserta dapat memahami dan menggunakan IDE pada Microsoft Visual C++
Express 2008

Praktikum kali ini, menggunakan IDE (Integrated Development Environment) Microsoft


Visual C++ 2008 Express Edition. Sebelum membahas mengenai IDE, perlu diketahui dahulu
bagaimana source code dan komponen-komponen lainnya yang menyusun suatu aplikasi
diorganisir. Pengorganisiran komponen-komponen yang menyusun suatu aplikasi dilakukan
melalui Project.

Gambar 1. Project

Komponen penyusun project akan dikelompokkan lagi menjadi, Header, Resource dan Source
file. Header berisi file-file tentang deklarasi fungsi, variable, dsb (ekstensinya .h). Resource
berisi gambar, icon, dsb yang digunakan pada aplikasi. Sedangkan Source berisi file-file kode
sumber penyusun aplikasi (ekstensinya .cpp). Beberapa Project bisa digabungkan dalam
sebuah Solution.

Gambar 2. File-file yang ada dalam project

Gambar 2 menunjukkan file-file yang ada dalam suatu project. Semua file tersimpan dalam
satu direktori yang sama dengan nama Projectnya. File dengan ekstensi .vcproj adalah file
projectnya, file dengan ekstensi .sln adalah file Solutionnya
Selanjutnya kita akan mempelajari lebih detil mengenai IDE itu sendiri. Untuk menjalankan
Microsoft Visual C++ 2008 Express Edition dapat dilakukan melalui:

Start  All Programs  Microsoft Visual C++ 2008 Express


Edition  Microsoft Visual C++ Express Edition

Kemudian akan tampil IDE seperti pada Gambar 3.

Gambar 3. Microsoft Visual C++ 2008 Express Edition IDE

Menu penting yang ada dalam IDE ketika baru dijalankan adalah sebagai berikut:
A. File
1. New
1 Project
Dipilih apabila hendak membuat Project yang baru. Ketika diklik akan muncul
seperti. Ada beberapa point yang perlu diperhatikan saat membuat project, yaitu:
a. Project Types (Tipe dari Project yang ingin dibuat) : CLR, Win32 dan
General
b. Name (Nama dari Project yang akan dibuat)
c. Location (Lokasi tempat menyimpan project tersebut)
d. Solution Name (Nama dari Solution yang memuat project tersebut)
e. Create directory for solution (Untuk solution apakah perlu dibuatkan
direktori tersendiri atau tidak)
2 File
Membuat file baru
3 Project From Existing Code
Membuat Project dengan menyertakan source code yang sudah ada / dibuat
ditempat lain
2. Open
Digunakan untuk membuka file, project, dsb
3. Save All
Menyimpan semua file-file yang sudah diedit

Daftar 1. Langkah-langkah untuk membuat project baru

Untuk keperluan praktikum algoritma dan pemrograman, adalah sebagai berikut:


1. Buat Project dari menu File  New  Project
2. Pastikan tipe Project-nya adalah Win32
3. Pada Kolom Templates, pilih Win32 Console Application
4. Masukkan ”Name” dari Project
5. Masukkan atau pilih (dengan tombol Browse) lokasi tempat Project akan disimpan. Agar
pencarian file/project mudah dimengerti, direktori tempat penyimpanan project dibuat
dengan pola: ALGO\<NIM>\P<nn> dimana bagian <NIM> diganti dengan NIM anda
sendiri, dan <nn> diganti dengan pertemuan ke-n (1, 2, 3, ...). Contohnya:
ALGO\201014000\P01
6. Hilangkan pilihan (centang) pada item ”Create directory for solution”
7. Tekan tombol OK untuk pindah ke dialog berikutnya
8. Jika muncul dialog baru klik Next
9. Pada dialog ”Application Settings”, Group Additional options, pilih (centang)
Empty Project. Untuk pilihan lainnya biarkan jangan dirubah.
10. Tekan tombol Finish
11. Bukalah folder pada item 5 (lokasi project), untuk melihat file-file yang telah dibuat
Gambar 4. Setting Pembuatan Project Baru

Gambar 5. Pembuatan Project Baru


Gambar 6. Pembuatan Project Baru Setting Terakhir

B. Edit
Menu yang berkaitan dengan pengubahan isi file meliputi copy, paste, replace, search, dll
C. View
Menu untuk menampilkan dan menyembunyikan berbagai macam window. Window-
window yang ada dalam IDE yaitu:
1. Solution Explorer
Untuk menampilkan solution, project dan file-file yang ada didalamnya.

Gambar 7. Solution Explorer


Gambar 8. Class View

2. Class View
Menampilkan class, fungsi yang ada dalam project tersebut.
3. Code Definition Window
Menampilkan kode yang berkaitan dengan fungsi/class yang di klik pada window
Class View.

Gambar 9. Code definition

4. Output window
Menampilkan keluaran hasil kompilasi maupun debug informasi.
Gambar 10. Output Window

5. Error List (ditampilkan dari menu view  Other windows)


Menampilkan daftar error, warning yang ada saat dilakukan kompilasi terhadap source
code. Pada Window ini ditampilkan posisi error pada file mana, baris berapa dan
errornya apa. Apabila pesan error tersebut diklik, akan jump ke posisi error
bersangkutan.

Gambar 11. Error List


6. Code Editor
Window untuk mengedit source code yang ada pada project tersebut.

Daftar 2. Window-window yang harus ditampilkan saat praktikum

Dalam setiap praktikum, minimal harus menampilkan window-window berikut:


 Solution Explorer
 Output Window
 Error List
 Code Editor
Gambar 12. Window-window yang harus ditampilkan ketika praktikum

D. Tools
Menu untuk menampilkan berbagai tools (kakas) yang berkaitan dengan pemrograman,
seperti Database Explorer, dsb. Dalam menu ini juga terdapat menu untuk melakukan
kustomisasi IDE.
E. Window
Menu untuk mengatur window-window yang ditampilkan dalam IDE.
F. Help
Menu untuk menampilkan dokumentasi IDE, baik mengenai C++ maupun IDE itu sendiri.
Sangat dianjurkan untuk melihat help, terutama untuk mengetahui apa-apa saja yang ada
dalam library dan cara penggunaannya.
Berikut adalah menu-menu baru yang akan muncul setelah membuat suatu project.
G. Project
1. Add Class
Menambahkan class baru.
2. Add Resources
Menambahkan resources baru.
3. Add New Item
Menambahkan file baru ke dalam Project.
4. Add Existing Item
Menambahkan file-file yang sudah ada / dibuat sebelumnya kedalam Project.
5. Menu lainnya yang berkaitan dengan seting project

Daftar 3. Cara Menambahkan Source Code Baru ke Project

Cara menambahkan file baru (source code) ke dalam project.


1. Klik menu Project  Add New Item
2. Setelah wizard seperti pada Gambar 13 muncul, pilihlan Code pada grup Categories, dan
C++ File (cpp) pada group Templates
3. Masukkan nama file yang akan dibuat pada kolom Name
4. Tekan tombol Add
5. Tuliskan kode program pada Code Editor (Gambar 14)

Gambar 13. Menambahkan source code


File yang baru Code
ditambahkan Editor

Gambar 14. IDE setelah penambahan file baru. Tuliskan Kode Program disini.

H. Build
1. Build Solution
Melakukan kompilasi terhadap seluruh Project, kemudian mengubahnya menjadi exe
ataupun library (tergantung dari jenis project). Jika dalam Project ada banyak file,
yang dikompilasi hanya file yang diedit saja.
2. Rebuild Solution
Melakukan kompilasi terhadap seluruh Project, kemudian mengubahnya menjadi exe
ataupun library (tergantung dari jenis project). Semua file akan dikompilasi ulang.
3. Clean Solution
Menghapus semua file-file hasil kompilasi pada Solution terkait.
4. Build <nama project>
Sama seperti item 1, tapi dilakukan hanya pada Project yang aktif.
5. Rebuild <nama project>
Sama seperti item 2, tapi dilakukan hanya pada Project yang aktif.
6. Clean <nama project>
Sama seperti item 3, tapi dilakukan hanya pada Project yang aktif.
7. Compile
Hanya melakukan kompilasi pada source code yang sedang dibuka. Umumnya
dilakukan untuk mengecek apakah ada error pada syntax program yang ditulis.
I. Debug
1. Start Debugging
Menu untuk menjalankan program (exe) yang sudah dibuat melalui Build disertai
dengan kemampuan untuk mengeksekusi kode program baris-perbaris. Fitur ini
digunakan untuk melacak bagaimana urutan eksekusi program, perubahan data-data,
mengamati isi memori, dsb, guna memperbaiki kesalahan-kesalahan yang ada dalam
program tersebut.

Apabila ingin menghentikan eksekusi pada baris tertentu dari program, klik kanan
pada baris tersebut untuk menampilkan context menu, lalu pilih : Breakpoint 
Insert Breakpoint (Gambar 15). Untuk menghilangkan atau mengedit Breakpoint,
bisa dilakukan dengan cara mengklik kanan pada baris dimana Breakpoint disetting,
lalu pada context menu pilih: Breakpoint  Delete Breakpoint (Gambar 16).
Apabila tidak ada breakpoint, maka program yang dijalankan hanya tampil sekejap,
kemudian langsung ditutup.
2. Start Without Debugging
Menjalankan program (exe) yang dibuat tanpa fasilitas Debug. Program yang
dijalankan tidak akan langsung ditutup seperti pada debugging.

Gambar 15. Menambahkan Breakpoint


Gambar 16. Menghilangkan atau mengedit Breakpoint

3. Step Into
Melanjutkan eksekusi baris program ke dalam kode pada fungsi yang dipanggil.
4. Step Over
Digunakan pada saat Debugging (setelah Start Debugging), untuk melanjutkan
eksekusi program ke baris berikutnya.

Demikianlah penjelasan singkat mengenai IDE dan komponen-komponennya. Selanjutnya,


ketika hendak membuat program dengan menggunakan IDE, siklusnya bisa digambarkan
sebagai berikut:

Perbaikan
Error

Membuat Menambahkan Menulis Build / Debug /


Project File (source) Kode Compile Eksekusi

File Baru Perbaikan

Gambar 17. Siklis Pembuatan Program


Daftar 4. Langkah-langkah pembuatan program

Langkah detilnya adalah sebagai berikut:


1. Buatlah Project baru dengan mengikuti langkah-langkah pada Daftar 1
2. Tambahkan File C++ dengan mengikuti langkah-langkah pada Daftar 3
3. Tambahkan kode program C++nya. Kode harus memuat fungsi main minimum seperti
tercantum berikut ini:

Bentuk fungsi main bisa juga:


int main() int main(void)
void main() void main(void)
4. Build Project melalui menu Build  Build Solution (lihat penjelasan menu Build). Jika
ada error, lakukan perbaikan. Jika tidak ada error, pada output window akan tampil
seperti berikut (pastikan failed dan error-nya 0):
… 0 error(s), 0 warning(s)
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

5. Jalankan program melalui Debug  Start Without Debugging (lihat penjelasan menu
Debug). Apabila ingin melakukan debugging, bisa dengan cara Debug  Start
Debugging
6. Apabila diperlukan perbaikan atau penambahan kode baru, kembali ke langkah terkait

Pada umumnya, program yang dibuat tidak langsung bisa dikompile. Ada saja error yang
timbul. Penyebab terjadinya error bisa bermacam-macam, tergantung dari kasus. Tapi
biasanya ada beberapa error yang sering dilakukan diawal-awal membuat program dengan C+
+. Error-error tersebut tercantum pada Daftar 5. Perhatikan kode errornya (yang ditandai).
Pesan yang ditampilkan biasanya tidak persis sama, tapi menyesuaikan, walaupun kodenya
sama. Saat terdapat error, Perbaiki dari error dengan nomor 1, 2, 3 dan seterusnya, bukan
sebaliknya atau loncat-loncat.
Daftar 5. Kesalahan-kesalahan yang sering terjadi dan Pesan Errornya

Kesalahan-kesalahan yang sering terjadi sehingga mengakibatkan error:


1. Tidak ada fungsi main. Tampilan pada Error List Window:
Error 1 error LNK2001: unresolved external symbol _main
2. Salah menulis nama fungsi, nama variabel, termasuk beda HURUF BESAR dan huruf
kecil. Tampilan pada Error List Window seperti:
Error 1 error C3861: 'print': identifier not found
Error 2 error C2065: 'X' : undeclared identifier
3. Lupa menuliskan ; (titik koma) pada akhir pernyataan. Tampilan Error List Window:
Error 1 error C2146: syntax error : missing ';' before identifier 'x'
4. Seharusnya ; (titik koma) tapi tertulis : (titik dua). Tampilan Error List Window:
Error 1 error C2143: syntax error : missing ';' before ':'
5. Jumlah kurung tutup ) tidak sama dengan kurung buka ( . Tampilan Error List:
Error 1 error C2143: syntax error : missing ')' before ';'
6. Jumlah kurung kurawal } tidak sama dengan kurung kurawal buka {.
Error 1 fatal error C1075: end of file found before the left brace '{' at
'.\main.cpp(7)' was matched
7. String yang diawali dengan tanda petik tidak diakhiri dengan tanda petik. Tampilan Error
List Window:
Error 1 error C2001: newline in constant
Error 2 error C2146: syntax error : missing ')' before identifier 'x'
PERTEMUAN III
INPUT-OUTPUT

TUJUAN :
Memahami format Input-Output dalam bahasa C/C++.

Tulis program dibawah ini lalu compile (F7) dan jalankan (ctr-F5). Amati outputnya.
//Program1a_cout //Program1b_std::cout
#include<iostream> #include<iostream>
using namespace std; void main(void)
void main(void) {
{ std::cout<<"Hello....";
cout<<"Hello...."; std::cout<<"World..."<<std::endl;
cout<<"World..........."<<endl; std::cout<<"Program pertama \n";
cout<<"Program pertama saya\n"; std::cout<<"Menggunakan C++";
cout<<"Menggunakan C++"; std::cout<<std::endl;
cout<<endl; //Baris baru std::cout<<"Menyenangkan”;
cout<<"Ternyata menyenangkan"; }
}

//Program1c_printf //Program1d_cin
#include<stdio.h> #include<iostream>
void main(void) using namespace std;
{ void main(void)
printf("%s","Hello...."); {
printf("%s\n","World..........."); char karakter;
printf("%s\n","Program pertama"); cin>>karakter;
printf("%s\n","Menggunakan C++"); cout<<"Karakter : "<<karakter;
printf("%s\n","Menyenangkan"); cout<<endl;
puts("Good Bye..."); }
}

//Program1e_cin //Program1f_scanf
#include<iostream> #include<stdio.h>
using namespace std; void main(void)
void main(void) {
{ int C,D,E;
char karakter; printf("Inputkan bil ke-1 : ");
cout<<"Masukan 1 karakter : "; scanf("%i",&C);
cin>>karakter; printf("Inputkan bil ke-2 : ");
cout<<"karakter : "; scanf("%i",&D);
cout<<karakter<<endl; printf("Inputkan bil ke-3 : ");
} scanf("%i",&E);
printf("C %i,D=%i,E=%i\n",C,D,E);
}
PERTEMUAN IV
TIPE DATA DAN OPERATOR

TUJUAN :
Memahami tipe data dan operator dalam bahasa C.

Tulis program dibawah ini lalu compile (F7) dan jalankan (ctr-F5). Amati outputnya.
//Program2a_sizeof, Menentukan lebar data
#include<iostream>
using namespace std;
void main(void)
{
cout<<" Lebar data tipe bool = "<<sizeof(bool)<<" byte"<<endl;
cout<<" Lebar data tipe char = "<<sizeof(char)<<" byte"<<endl;
cout<<" Lebar data tipe short = "<<sizeof(short)<<" byte"<<endl;
cout<<" Lebar data tipe integer = "<<sizeof(int)<<" byte"<<endl;
cout<<" Lebar data tipe float = "<<sizeof(float)<<" byte"<<endl;
cout<<" Lebar data tipe double = "<<sizeof(double)<<" byte"<<endl;
}

Tulis program dibawah ini lalu compile (F7) dan jalankan (ctr-F5).
Masukan Inputnya sbb :

Masukan Nilai ke-1 : 10


Masukan Nilai ke-2 : 7
Masukan Karakter ke-1 : A
Masukan Karakter ke-2 : B

Amati Outputnya, jelaskan!


//Program2b
#include<iostream>
using namespace std;
void main(void)
{
int Nilai1,Nilai2,Hasil1;
char Karakter1,Karakter2,Hasil2;
cout<<"Masukan Nilai ke-1 : ";cin>>Nilai1;
cout<<"Masukan Nilai ke-2 : ";cin>>Nilai2;
cout<<"Masukan Karakter ke-1 : ";cin>>Karakter1;
cout<<"Masukan Karakter ke-2 : ";cin>>Karakter2;
Hasil1=Nilai1+Nilai2;
cout<<Nilai1<<" + "<<Nilai2<<" = "<<Hasil1<<endl;
Hasil1=Nilai1%Nilai2;
cout<<Nilai1<<" % "<<Nilai2<<" = "<<Hasil1<<endl;
Hasil2=Karakter1+Karakter2;
cout<<Karakter1<<" + "<<Karakter2<<" = "<<Hasil2<<endl;
cout<<"65 adalah kode ASCII untuk karakter : "<<(char)65<<endl;
cout<<"66 adalah kode ASCII untuk karakter : "<<(char)66<<endl;
cout<<"131 adalah kode ASCII untuk karakter : "<<(char)131<<endl;
}
Tulis program dibawah ini lalu compile (F7) dan jalankan (ctr-F5). Amati outputnya,
Bandingkan output Program2c dengan output Program2d. Beri Penjelasan.
//Program2c_short //Program2d_unsigned short
#include<iostream> #include<iostream>
using namespace std; using namespace std;
void main(void) void main(void)
{ {
short a,b,c,d,e,f,g; unsigned short a,b,c,d,e,f,g;
a=-32768; a=0;
b=-32769; b=65535;
c=32767; c=-1;
d=32768; d=65536;
e=25000; e=25000;
f=25000; f=25000;
g=e+f; g=e+f;
cout<<"a : "<<a<<endl; cout<<"a : "<<a<<endl;
cout<<"b : "<<b<<endl; cout<<"b : "<<b<<endl;
cout<<"c : "<<c<<endl; cout<<"c : "<<c<<endl;
cout<<"d : "<<d<<endl; cout<<"d : "<<d<<endl;
cout<<e<<" + "<<f<<" = "<<g<<endl; cout<<e<<" + "<<f<<" = "<<g<<endl;
} }

Tulis program dibawah ini lalu compile (F7) dan jalankan (ctr-F5). Amati outputnya
//Program2e
#include<iostream>
#include<iomanip>
using namespace std;
void main(void)
{
int x=10,y;double xx=123.456789;
x++;y=16-x;cout<<x<<endl<<y<<endl;
x=x&y;cout<<x<<endl;
x+=5;cout<<x<<endl;
cout<<123456789<<endl;cout<<setw(9)<<123<<endl;
cout<<xx<<endl;
cout<<setprecision(0)<<xx<<endl;
cout<<setprecision(1)<<xx<<endl;
cout<<setprecision(2)<<xx<<endl;
cout<<setprecision(3)<<xx<<endl;
cout<<setprecision(4)<<xx<<endl;
cout<<setprecision(5)<<xx<<endl;
cout<<setprecision(6)<<xx<<endl;
cout<<setiosflags(ios::fixed)<<setprecision(5)<<xx<<endl;
}

PERTEMUAN V
PENCABANGAN/PEMILIHAN
TUJUAN :
Memahami sintak dan mekanisme pencabangan/pemilihan dalam bahasa C/C++
Tulis program dibawah ini lalu compile (F7) dan jalankan (ctr-F5). Isi inputnya dengan
bilangan-bilangan 1,2, 3, 4,5. Amati outputnya untuk masing-masing input.
//Program 3a //Program 3b
#include<iostream> #include<iostream>
using namespace std; using namespace std;
void main(void) void main(void)
{ {
int x,s; int x,s;
cout<<"Masukan bilangan bulat : "; cout<<"Masukan bilangan bulat : ";
cin>>x; cin>>x;s=x%2;
s=x%2; if(s==0)
if(s==0) {
{ cout<<"Bilangan Genap"<<endl;
cout<<"Bilangan Genap"<<endl; }
} else
} {
cout<<"Bilangan Ganjil"<<endl;
}
}
//Program 3c //Program 3d
#include<iostream> #include<iostream>
using namespace std; using namespace std;
void main(void) void main(void)
{ {
int x; int x;
cout<<"Masukan bilangan (1-3):"; cout<<"Masukan bil bulat (1-3):";
cin>>x; cin>>x;
if(x==1) switch(x)
{ {
cout<<"Minggu"<<endl; case 1:
} cout<<"Minggu"<<endl;
else break;
{ case 2:
if(x==2) cout<<"Senin"<<endl;
{ break;
cout<<"Senin"<<endl; case 3:
} cout<<"Selasa"<<endl;
else default:
{ cout<<"Input Salah"<<endl;
if(x==3) }
{ }
cout<<"Minggu"<<endl;
}
else
{
cout<<"Input Salah"<<endl;
}
}
}
}

PERTEMUAN VI
PENGULANGAN MENGGUNAKAN FOR

TUJUAN :
Memahami sintak dan mekanisme pengulangan dalam bahasa C/C++

Tulis program dibawah ini lalu compile (F7) dan jalankan (ctr-F5). Amati outputnya
//Program 4a //Program 4b //Program 4c
#include<iostream> #include<iostream> #include<iostream>
using namespace std; using namespace std; using namespace std;
void main(void) void main(void) void main(void)
{ { {
for(int i=1;i<10;i++) for(int i=1;i<=10;i++) int i;
{ { for(i=1;i<=10;i+=2);
cout<<i<<endl; cout<<i<<endl; {
} } cout<<i<<endl;
} } }
}
//Program 4d //Program 4e //Program 4f
#include<iostream> #include<iostream> #include<iostream>
using namespace std; using namespace std; using namespace std;
void main(void) void main(void) void main(void)
{ { {
int i=0; for(int i=0;i<=10;) int i,j;
for(;i<=10;) { for(i=1;i<=5;i++)
{ cout<<i<<endl; {
i++; i++; for(j=1;j<=i;j++)
cout<<i<<endl; } {
} } cout<<”*”;
} }
cout<<endl;
}
}
//Program 4g //Program 4h //Program 4i
#include<iostream> #include<iostream> #include<iostream>
using namespace std; using namespace std; using namespace std;
void main(void) void main(void) void main(void)
{ { {
int i; for(int i=1;i>5;i--) int i;
for(i=1;i<5;i+=10) { for(i=10;i>=0;i--)
{ cout<<i<<endl; {
cout<<i<<endl; } cout<<i<<endl;
} } }
} }

PERTEMUAN VII
PENGULANGAN MENGGUNAKAN WHILE

TUJUAN :
Memahami sintak dan mekanisme pengulangan dalam bahasa C/C++

Tulis program dibawah ini lalu compile (F7) dan jalankan (ctr-F5). Amati outputnya
//Program 5a //Program 5b //Program 5c
#include<iostream> #include<iostream> #include<iostream>
using namespace std; using namespace std; using namespace std;
void main(void) void main(void) void main(void)
{ { {
int i=1; int i=1; int i=1;
while(i<5) while(i<5) while(i<=5)
{ { { cout<<+
cout<<i<<endl; cout<<i++<<endl; +i<<endl;
i++; } }
} } }
}
//Program 5d //Program 5e //Program 5f
#include<iostream> #include<iostream> #include<iostream>
using namespace std; using namespace std; using namespace std;
void main(void) void main(void) void main(void)
{ { {
int i=1; int i=1; int i=1;
while(i=5) while(i) while(0)
{ { {
cout<<i<<endl; cout<<i<<endl; cout<<i<<endl;
i++; i++; i++;
} } }
} } }
//Program 5g //Program 5h //Program 5i
#include<iostream> #include<iostream> #include<iostream>
using namespace std; using namespace std; using namespace std;
void main(void) void main(void) void main(void)
{ { {
int I=1; int I=10; int I=10;
do while(I<5) do
{ { {
cout<<I<<endl; cout<<I<<endl; cout<<I<<endl;
I++; I++; I++;
} while(I 5 ); } }while(I<5);
} } }

PERTEMUAN VIII
Program menghitung rata-rata, nilai MIN, nilai MAX

TUJUAN :
Praktikan dapat membuat program aplikasi sederhana menggunakan kontrol
pengulangan.

Tulis program dibawah ini lalu compile (F7) dan jalankan (ctr-F5). Amati outputnya.
Hilangkan pernyataa (double) pada perhitungan RATA. Compile dan jalankan lagi, isi dengan
data yang sama dengan sebelumnya, amati outputnya, bandingkan dengan hasil sebelumnya.
//Program 6
#include<iostream>
using namespace std;
void main(void)
{
int NILAI,SUM=0,MAX=0,MIN=0,i=1,JML_DAT;
double RATA;
cout<<"Jumlah Data : ";cin>>JML_DAT;
cout<<"Masukan Nilai ke-"<<i<<" :";cin>>NILAI;
i++;
MAX=NILAI;
MIN=NILAI;
SUM=SUM+NILAI;
while(i<=JML_DAT)
{
cout<<"Masukan Nilai ke-"<<i<<" :";cin>>NILAI;
if(NILAI>MAX)
MAX=NILAI;
if(NILAI<MIN)
MIN=NILAI;
SUM=SUM+NILAI;
i++;
}
RATA=(double)SUM/JML_DAT;
cout<<"Nilai Terendah : "<<MIN<<endl;
cout<<"Nilai Tertinggi : "<<MAX<<endl;
cout<<"Rata-rata : "<<RATA<<endl;
}

PERTEMUAN IX
Array dan Pointer

TUJUAN :
Memahami sintak dan mekanisme penggunaan array dan pointer dalam bahasa
C/C++

Tulis program dibawah ini lalu compile (F7) dan jalankan (ctr-F5). Amati outputnya
//Program 7a //Program 7b //Program 7c
#include<iostream> #include<iostream> #include<iostream>
using namespace std; using namespace std; using namespace std;
void main(void) void main(void) void main(void)
{ { {
int i,a[4]; int i,a[4]={2,4,7,6}; int i,a[3];
//Mengisi array //Mencetak array //Mengisi array
for(i=0;i<=3;i++) for(i=0;i<=3;i++) a[0]=a[1]=10;
a[i]=2+i; cout<<a[i]<<endl; a[2]=20;
//Mencetak array } //Mencetak array
for(i=0;i<=3;i++) for(i=0;i<3;i++)
cout<<a[i]<<endl; cout<<a[i]<<endl;
} }

//Program 7e Penjumlahan 2 array //Program 7f Pointer


#include<iostream> #include<iostream>
using namespace std; using namespace std;
void main(void) void main(void)
{ {
int i=0, c[5]; int A=25,*pA;
int a[4]={2,4,7,6}; pA=&A;
int b[4]={3,6,8,9}; cout<<"A = "<<A<<endl;
for(i=0;i<4;i++) cout<<"pA = "<<pA<<endl;
c[i]=a[i]+b[i]; cout<<"&A = "<<&A<<endl;
//Cetak hasil cout<<"&pA = "<<&pA<<endl;
cout<<"a : { "; cout<<"*pA = "<<*pA<<endl;
for(i=0;i<4;i++) *pA=100;
cout<<a[i]<<" "; cout<<"*pA = "<<*pA<<endl;
cout<<" }"<<endl; }
cout<<"b : { ";
for(i=0;i<4;i++)
cout<<b[i]<<" ";
cout<<" }"<<endl;
cout<<"c : { ";
for(i=0;i<4;i++)
cout<<c[i]<<" ";
cout<<" }"<<endl;
}

//Program 7g //Program 7h //Program 7i


#include<iostream> #include<iostream> #include<iostream>
using namespace std; using namespace std; using namespace std;
void main(void) void main(void) void main(void)
{ { {
int *P; int *P; int *P;
int A[5]={2,1,7,0,5}; int A[5]={2,1,7,0,5}; int A[5]={2,1,7,0,5};
P=A; P=A; P=A;
cout<<*P++<<endl; cout<<*++P<<endl; cout<<++*P<<endl;
cout<<*P<<endl; cout<<*P<<endl; cout<<*P<<endl;
} } }

PERTEMUAN X
FUNGSI TANPA NILAI BALIK
TUJUAN :
Memahami sintak dan mekanisme penggunaan fungsi dalam bahasa C/C++

Tulis program dibawah ini lalu compile (F7) dan jalankan (ctr-F5). Amati outputnya.
//Program 8a //Program 8b
#include<iostream> #include<iostream>
using namespace std; using namespace std;
void Luas(); void Luas(int a,int b);
void main(void) void main(void)
{ {
Luas(); int panjang, lebar;
} cout<<"Masukan panjang : ";
void Luas() cin>>panjang;
{ cout<<"Masukan lebar : ";
int panjang, lebar, HitungLuas; cin>>lebar;
cout<<"Masukan panjang : "; Luas(panjang,lebar);
cin>>panjang; }
cout<<"Masukan lebar : "; void Luas(int pnj,int lbr)
cin>>lebar; {
HitungLuas = panjang*lebar; int HitungLuas;
cout<<"Luas : "<<HitungLuas; HitungLuas = pnj*lbr;
cout<<endl; cout<<"Luas : "<<HitungLuas;
} cout<<endl;
}

//Program 8a //Program 8d
#include<iostream> #include<iostream>
using namespace std; using namespace std;
void hitung(int,int,int * ); void Tukar(int *, int *);
void main(void) void main(void)
{ {
int panjang,lebar,luas; int X,Y,Z;
cout<<"Panjang = "; cout<<"X = ";cin>>X;
cin>>panjang; cout<<"Y = ";cin>>Y;
cout<<"Lebar = "; if(X<Y)
cin>>lebar;cout<<endl; Tukar(&X,&Y);
hitung(panjang,lebar,&luas); Z=X-Y;
cout<<"Luas = "<<luas<<endl; cout<<"Setelah Ditukar"<<endl;
} cout<<"X = "<<X<<endl;
void hitung(int A, int B, int *luas) cout<<"Y = "<<Y<<endl;
{ cout<<Z<<endl;
*luas=A*B; }
} void Tukar(int *A, int *B)
{
int tmp;
tmp=*A;
*A=*B;
*B=tmp;
}

PERTEMUAN XI
FUNGSI DENGAN NILAI BALIK
TUJUAN :
Memahami sintak dan mekanisme penggunaan fungsi dalam bahasa C/C++

Tulis program dibawah ini lalu compile (F7) dan jalankan (ctr-F5). Amati outputnya.
//Program 9a //Program 9b
#include<iostream> #include<iostream>
using namespace std; using namespace std;
float F(float x,float y); float HitungRata(int x[],int Jml);
void main(void) void main(void)
{ {
float x,y,Hasil; int A[]={2,3,5,7,5,11};
cout<<"x = "; int JML_DAT=6;
cin>>x; float RATA;
cout<<"y = "; RATA=HitungRata(A,JML_DAT);
cin>>y; cout<<"Rata : "<<RATA<<endl;
Hasil=F(x,y); }
cout<<endl; float HitungRata(int X[],int N)
cout<<"x : "<<x<<endl; {
cout<<"y : "<<y<<endl; int i,SUM=0;
cout<<"Hasil : "<<Hasil<<endl; float Rata;
} for(i=0;i<N;i++)
float F(float A, float B) SUM=SUM+X[i];
{ Rata=(float)SUM/N;
float H; return Rata;
H=3*A+2*B; }
return H;
}

PERTEMUAN KE XII
PROGRAM MENGHITUNG INDEK PRESTASI
TUJUAN :
Mahasiswa dapat membuat program aplikasi sederhana menghitung IP
Tulis program dibawah ini lalu compile (F7) dan jalankan (ctr-F5). Amati outputnya.
//Program 10
#include<iostream>
#include<iomanip>
using namespace std;
#define SIZE 100 //Jumlah maksimum mata kuliah
float HitungIP(int SKS[],int AM[],int AM_SKS[],int JML_MK);
void InputData(char NILAI[],int SKS[],int AM[],int JML_MK);
void CetakHasil(char N[],int A[],int S[],int AS[],int J,float I);
void main(void)
{
int SKS[SIZE],AM[SIZE],AM_SKS[SIZE];
char NILAI[SIZE];float IP;
int JML_MK;
cout<<"Jumlah Mata Kuliah = ";cin>>JML_MK;
InputData(NILAI,SKS,AM,JML_MK);
IP=HitungIP(SKS,AM,AM_SKS,JML_MK);
CetakHasil(NILAI,AM,SKS,AM_SKS,JML_MK,IP);
}
void InputData(char NILAI[],int SKS[],int AM[],int JML_MK)
{
for(int i=0;i<JML_MK;i++)
{
cout<<"Masukan Nilai ke-"<<i<<": ";cin>>NILAI[i];
cout<<"Masukan SKS ke-"<<i<<": ";cin>>SKS[i];
switch(NILAI[i])
{
case 'A':
case 'a':
AM[i]=4;
break;
case 'B':
case 'b':
AM[i]=3;
break;
case 'C':
case 'c':
AM[i]=2;
break;
case 'D':
case 'd':
AM[i]=1;
break;
case 'E':
case 'e':
AM[i]=0;
break;
}
}
}

float HitungIP(int SKS[],int AM[],int AM_SKS[],int JML_MK)


{
float IndexPrestasi;
int SUM_SKS=0,SUM_AM_SKS=0,i;
for(i=0;i<JML_MK;i++)
{
AM_SKS[i]=AM[i]*SKS[i];
}
for(i=0;i<JML_MK;i++)
{
SUM_SKS=SUM_SKS+SKS[i];
}
for(i=0;i<JML_MK;i++)
{
SUM_AM_SKS=SUM_AM_SKS+AM_SKS[i];
}
IndexPrestasi=(float)SUM_AM_SKS/SUM_SKS;
return IndexPrestasi;
}
void CetakHasil(char NILAI[],int AM[],int SKS[],int AM_SKS[],int
JML_MK,float IP)
{
cout<<" NILAI MUTU SKS MUTU*SKS "<<endl;
cout<<"==================================="<<endl;
for(int i=0;i<JML_MK;i++)
{
cout<<setw(5)<<NILAI[i];
cout<<setw(6)<<AM[i];
cout<<setw(6)<<SKS[i];
cout<<setw(6)<<AM_SKS[i]<<endl;
}
cout<<endl<<"IP : "<<IP<<endl;
}

PERTEMUAN KE XIII
PENCARIAN METODE BAGI DUA
TUJUAN :
Memahami teknik pencarian Bagi Dua

Tulis program dibawah ini lalu compile (F7) dan jalankan (ctr-F5). Amati outputnya.
//Program 11
#include<iostream>
using namespace std;
#define jmlDat 8
void BinSearch(int Data[], int n, int x, int *idx);
void main(void)
{
int Data[jmlDat]={81,76,21,18,16,13,10,7},x,idx,i;
cout<<"Elemen Array : ";
for(i=0;i<jmlDat;i++)cout<<Data[i]<<" ";cout<<endl;
cout<<"Masukan data yang akan dicari ?:";cin>>x;
BinSearch(Data,jmlDat,x,&idx);
if(idx!=-1)cout<<"Data yang dicari berada pada indeks : "<<idx<<endl;
else cout<<"Data yang dicari tidak ada dalam array"<<endl;
}
void BinSearch(int Data[],int n,int x, int *idx)
{
bool ketemu = false;
int top = n-1,bottom = 0,mid;
while(bottom<=top && !ketemu)
{
mid=(top+bottom)/2;
if(Data[mid]==x)ketemu=true;
else
if(Data[mid]<x)top=mid-1;
else bottom=mid+1;
}
if(ketemu) *idx=mid;
else *idx=-1;
}

PERTEMUAN KE XIV
PENGURUTAN METODE APUNG
TUJUAN :
Memahami teknik pengurutan Metode Apung

Tulis program dibawah ini lalu compile (F7) dan jalankan (ctr-F5). Amati outputnya.
//Program 12
#include<iostream>
using namespace std;
void BubbleSort(int data[],int n);
void main(void)
{
int i;
int n=9;//Jml Data = 10 maka n = 9
int data[]={20,10,32,100,60,12,70,25,45,65};
cout<<"Sebelum diurutkan :"<<endl;
for(i=0;i<=n;i++)
cout<<data[i]<<" ";
cout<<endl;
cout<<"_______________________________"<<endl;
BubbleSort(data,n); /*Pemanggilan fungsi BubbleSort*/
cout<<"Setelah diurutkan"<<endl;
for(i=0;i<=n;i++)
cout<<data[i]<<" ";
cout<<endl;
}
void BubbleSort(int array1[],int n)
{
int i,k,tmp;
for(i=1;i<=n;i++)
{
for(k=n;k>=i;k--)
{
if(array1[k]<array1[k-1])
{
tmp=array1[k];
array1[k]=array1[k-1];
array1[k-1]=tmp;
}
}
}
}