modul praktikum algoritma

45
Disusun Oleh Atang Susila I Putu Susila

Upload: deni-diana

Post on 01-Jul-2015

1.184 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: MODUL PRAKTIKUM ALGORITMA

Disusun Oleh

Atang Susila

I Putu Susila

Jl. Surya Kencana No. 1 Pamulang Telp (021)7412566, Fax. (021)7412566Tangerang Selatan – Banten

Page 2: MODUL PRAKTIKUM ALGORITMA

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

Page 3: MODUL PRAKTIKUM ALGORITMA

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.

Page 4: MODUL PRAKTIKUM ALGORITMA

Contoh halaman muka :

Disusun Oleh :

Nama : Cecep GorbacepNIM : 123456789SMT : II.A

LAPORAN KE-1

Asisten :

Hayam WurukRd. Wijaya

Jl. Surya Kencana No. 1 Pamulang Telp (021)7412566, Fax. (021)7412566Tangerang Selatan – Banten

Page 5: MODUL PRAKTIKUM ALGORITMA

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

Page 6: MODUL PRAKTIKUM ALGORITMA

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

① 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)

Page 7: MODUL PRAKTIKUM ALGORITMA

d. Solution Name (Nama dari Solution yang memuat project tersebut)

e. Create directory for solution (Untuk solution apakah perlu dibuatkan

direktori tersendiri atau tidak)

② File

Membuat file baru

③ 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

Page 8: MODUL PRAKTIKUM ALGORITMA

Gambar 4. Setting Pembuatan Project Baru

Gambar 5. Pembuatan Project Baru

Page 9: MODUL PRAKTIKUM ALGORITMA

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

Page 10: MODUL PRAKTIKUM ALGORITMA

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.

Page 11: MODUL PRAKTIKUM ALGORITMA

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 List6. 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

Page 12: MODUL PRAKTIKUM ALGORITMA

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.

Page 13: MODUL PRAKTIKUM ALGORITMA

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

Gambar 13. Menambahkan source code

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)

Page 14: MODUL PRAKTIKUM ALGORITMA

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.

File yang baru ditambahkan

Code Editor

Page 15: MODUL PRAKTIKUM ALGORITMA

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

Page 16: MODUL PRAKTIKUM ALGORITMA

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:

Gambar 17. Siklis Pembuatan Program

Membuat Project

Menambahkan File (source)

Menulis Kode

Build / Compile

Debug / Eksekusi

PerbaikanFile Baru

Perbaikan Error

Page 17: MODUL PRAKTIKUM ALGORITMA

Daftar 4. Langkah-langkah pembuatan program

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.

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

Page 18: MODUL PRAKTIKUM ALGORITMA

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'

Page 19: MODUL PRAKTIKUM ALGORITMA

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#include<iostream>using namespace std;void main(void){ cout<<"Hello...."; cout<<"World..........."<<endl; cout<<"Program pertama saya\n"; cout<<"Menggunakan C++"; cout<<endl; //Baris baru cout<<"Ternyata menyenangkan";}

//Program1b_std::cout#include<iostream>void main(void){ std::cout<<"Hello...."; std::cout<<"World..."<<std::endl; std::cout<<"Program pertama \n"; std::cout<<"Menggunakan C++"; std::cout<<std::endl; std::cout<<"Menyenangkan”;}

//Program1c_printf#include<stdio.h>void main(void){ printf("%s","Hello...."); printf("%s\n","World..........."); printf("%s\n","Program pertama"); printf("%s\n","Menggunakan C++"); printf("%s\n","Menyenangkan"); puts("Good Bye...");}

//Program1d_cin#include<iostream>using namespace std;void main(void){ char karakter; cin>>karakter; cout<<"Karakter : "<<karakter; cout<<endl;}

//Program1e_cin#include<iostream>using namespace std;void main(void){ char karakter; cout<<"Masukan 1 karakter : "; cin>>karakter; cout<<"karakter : "; cout<<karakter<<endl;}

//Program1f_scanf#include<stdio.h>void main(void){ int C,D,E; printf("Inputkan bil ke-1 : "); scanf("%i",&C); printf("Inputkan bil ke-2 : "); scanf("%i",&D); printf("Inputkan bil ke-3 : "); scanf("%i",&E); printf("C %i,D=%i,E=%i\n",C,D,E);}

Page 20: MODUL PRAKTIKUM ALGORITMA

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 : 10Masukan Nilai ke-2 : 7Masukan Karakter ke-1 : AMasukan 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;

}

Page 21: MODUL PRAKTIKUM ALGORITMA

Tulis program dibawah ini lalu compile (F7) dan jalankan (ctr-F5). Amati outputnya,

Bandingkan output Program2c dengan output Program2d. Beri Penjelasan.

//Program2c_short#include<iostream>using namespace std;void main(void){ short a,b,c,d,e,f,g; a=-32768; b=-32769; c=32767; d=32768; e=25000; f=25000; g=e+f; cout<<"a : "<<a<<endl; cout<<"b : "<<b<<endl; cout<<"c : "<<c<<endl; cout<<"d : "<<d<<endl; cout<<e<<" + "<<f<<" = "<<g<<endl;}

//Program2d_unsigned short#include<iostream>using namespace std;void main(void){ unsigned short a,b,c,d,e,f,g; a=0; b=65535; c=-1; d=65536; e=25000; f=25000; g=e+f; cout<<"a : "<<a<<endl; cout<<"b : "<<b<<endl; cout<<"c : "<<c<<endl; cout<<"d : "<<d<<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;

}

Page 22: MODUL PRAKTIKUM ALGORITMA

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#include<iostream>using namespace std;void main(void){ int x,s; cout<<"Masukan bilangan bulat : "; cin>>x; s=x%2; if(s==0) { cout<<"Bilangan Genap"<<endl; }}

//Program 3b#include<iostream>using namespace std;void main(void){ int x,s; cout<<"Masukan bilangan bulat : "; cin>>x;s=x%2; if(s==0) { cout<<"Bilangan Genap"<<endl; } else { cout<<"Bilangan Ganjil"<<endl; }}

//Program 3c#include<iostream>using namespace std;void main(void){ int x; cout<<"Masukan bilangan (1-3):"; cin>>x; if(x==1) { cout<<"Minggu"<<endl; } else { if(x==2) { cout<<"Senin"<<endl; } else {

if(x==3) { cout<<"Minggu"<<endl; } else { cout<<"Input Salah"<<endl; }

} }}

//Program 3d#include<iostream>using namespace std;void main(void){ int x; cout<<"Masukan bil bulat (1-3):"; cin>>x; switch(x) {

case 1: cout<<"Minggu"<<endl; break;case 2: cout<<"Senin"<<endl; break;case 3: cout<<"Selasa"<<endl;default: cout<<"Input Salah"<<endl;

}}

Page 23: MODUL PRAKTIKUM ALGORITMA

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#include<iostream>using namespace std;void main(void){ for(int i=1;i<10;i++) { cout<<i<<endl; }}

//Program 4b#include<iostream>using namespace std;void main(void){ for(int i=1;i<=10;i++) { cout<<i<<endl; }}

//Program 4c#include<iostream>using namespace std;void main(void){ int i; for(i=1;i<=10;i+=2); { cout<<i<<endl; }}

//Program 4d#include<iostream>using namespace std;void main(void){ int i=0; for(;i<=10;) { i++;

cout<<i<<endl; }}

//Program 4e#include<iostream>using namespace std;void main(void){ for(int i=0;i<=10;) {

cout<<i<<endl;i++;

}}

//Program 4f#include<iostream>using namespace std;void main(void){ int i,j; for(i=1;i<=5;i++) { for(j=1;j<=i;j++) { cout<<”*”; } cout<<endl; }}

//Program 4g#include<iostream>using namespace std;void main(void){ int i; for(i=1;i<5;i+=10) {

cout<<i<<endl; }}

//Program 4h#include<iostream>using namespace std;void main(void){ for(int i=1;i>5;i--) {

cout<<i<<endl; }}

//Program 4i#include<iostream>using namespace std;void main(void){ int i; for(i=10;i>=0;i--) {

cout<<i<<endl; }}

Page 24: MODUL PRAKTIKUM ALGORITMA

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#include<iostream>using namespace std;void main(void){ int i=1; while(i<5) {

cout<<i<<endl; i++; }}

//Program 5b#include<iostream>using namespace std;void main(void){ int i=1; while(i<5) {

cout<<i++<<endl; }}

//Program 5c#include<iostream>using namespace std;void main(void){ int i=1; while(i<=5) { cout<<++i<<endl; }}

//Program 5d#include<iostream>using namespace std;void main(void){ int i=1; while(i=5) {

cout<<i<<endl; i++; }}

//Program 5e#include<iostream>using namespace std;void main(void){ int i=1; while(i) {

cout<<i<<endl; i++; }}

//Program 5f#include<iostream>using namespace std;void main(void){ int i=1; while(0) {

cout<<i<<endl; i++; }}

//Program 5g#include<iostream>using namespace std;void main(void){ int I=1; do {

cout<<I<<endl; I++; } while(I 5 );}

//Program 5h#include<iostream>using namespace std;void main(void){ int I=10; while(I<5) {

cout<<I<<endl; I++; }}

//Program 5i#include<iostream>using namespace std;void main(void){ int I=10; do {

cout<<I<<endl; I++; }while(I<5);}

Page 25: MODUL PRAKTIKUM ALGORITMA

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;

}

Page 26: MODUL PRAKTIKUM ALGORITMA

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#include<iostream>using namespace std;void main(void){ int i,a[4]; //Mengisi array for(i=0;i<=3;i++)

a[i]=2+i; //Mencetak array for(i=0;i<=3;i++)

cout<<a[i]<<endl;}

//Program 7b#include<iostream>using namespace std;void main(void){ int i,a[4]={2,4,7,6}; //Mencetak array for(i=0;i<=3;i++)

cout<<a[i]<<endl;}

//Program 7c#include<iostream>using namespace std;void main(void){ int i,a[3]; //Mengisi array a[0]=a[1]=10; a[2]=20; //Mencetak array for(i=0;i<3;i++)

cout<<a[i]<<endl;}

//Program 7e Penjumlahan 2 array#include<iostream>using namespace std;void main(void){

int i=0, c[5];int a[4]={2,4,7,6};int b[4]={3,6,8,9};for(i=0;i<4;i++)

c[i]=a[i]+b[i];//Cetak hasilcout<<"a : { ";for(i=0;i<4;i++)

cout<<a[i]<<" ";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 7f Pointer#include<iostream>using namespace std;void main(void){

int A=25,*pA;pA=&A;cout<<"A = "<<A<<endl;cout<<"pA = "<<pA<<endl;cout<<"&A = "<<&A<<endl;cout<<"&pA = "<<&pA<<endl;cout<<"*pA = "<<*pA<<endl;*pA=100;cout<<"*pA = "<<*pA<<endl;

}

Page 27: MODUL PRAKTIKUM ALGORITMA

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

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

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

Page 28: MODUL PRAKTIKUM ALGORITMA

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#include<iostream>using namespace std;void Luas();void main(void){ Luas();}void Luas(){ int panjang, lebar, HitungLuas; cout<<"Masukan panjang : "; cin>>panjang; cout<<"Masukan lebar : "; cin>>lebar; HitungLuas = panjang*lebar; cout<<"Luas : "<<HitungLuas; cout<<endl;}

//Program 8b#include<iostream>using namespace std;void Luas(int a,int b);void main(void){ int panjang, lebar; cout<<"Masukan panjang : "; cin>>panjang; cout<<"Masukan lebar : "; cin>>lebar; Luas(panjang,lebar);}void Luas(int pnj,int lbr){ int HitungLuas; HitungLuas = pnj*lbr; cout<<"Luas : "<<HitungLuas; cout<<endl;}

//Program 8a#include<iostream>using namespace std;void hitung(int,int,int * );void main(void){ int panjang,lebar,luas; cout<<"Panjang = "; cin>>panjang; cout<<"Lebar = "; cin>>lebar;cout<<endl; hitung(panjang,lebar,&luas); cout<<"Luas = "<<luas<<endl;}void hitung(int A, int B, int *luas){ *luas=A*B;}

//Program 8d#include<iostream>using namespace std;void Tukar(int *, int *);void main(void){ int X,Y,Z; cout<<"X = ";cin>>X; cout<<"Y = ";cin>>Y; if(X<Y)

Tukar(&X,&Y); Z=X-Y; cout<<"Setelah Ditukar"<<endl; cout<<"X = "<<X<<endl; cout<<"Y = "<<Y<<endl; cout<<Z<<endl;}void Tukar(int *A, int *B){ int tmp; tmp=*A; *A=*B; *B=tmp;}

Page 29: MODUL PRAKTIKUM ALGORITMA

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#include<iostream>using namespace std;float F(float x,float y);void main(void){ float x,y,Hasil; cout<<"x = "; cin>>x; cout<<"y = "; cin>>y; Hasil=F(x,y); cout<<endl; cout<<"x : "<<x<<endl; cout<<"y : "<<y<<endl; cout<<"Hasil : "<<Hasil<<endl;}float F(float A, float B){ float H; H=3*A+2*B; return H;}

//Program 9b#include<iostream>using namespace std;float HitungRata(int x[],int Jml);void main(void){ int A[]={2,3,5,7,5,11}; int JML_DAT=6; float RATA; RATA=HitungRata(A,JML_DAT); cout<<"Rata : "<<RATA<<endl;}float HitungRata(int X[],int N){ int i,SUM=0; float Rata; for(i=0;i<N;i++)

SUM=SUM+X[i]; Rata=(float)SUM/N; return Rata;}

Page 30: MODUL PRAKTIKUM ALGORITMA

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 kuliahfloat 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;

} }}

Page 31: MODUL PRAKTIKUM ALGORITMA

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;}

Page 32: MODUL PRAKTIKUM ALGORITMA

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 8void 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;}

Page 33: MODUL PRAKTIKUM ALGORITMA

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 = 9int 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;

}}

}}