Praktikum Algoritma Pemrograman C++
Praktikum Algoritma Pemrograman C++
Kata Pengantar
Selaga puji kepada Tuhan Yang Maha Esa, sehingga modul praktikum Algoritma dan
Pemrograman 1 dapat diselesaikan. Modul ini dibuat sebagai petunjuk praktikum kepada
mahasiswa yang megambil mata kuliah Algoritma dan Pemrograman 1 pada Program Studi
Teknik Informatika STITEK Bontang.
Tim penyusun berterima kasih kepada semua pihak yang telah membantu dalam
penyelesaian modul praktikum ini. Modul ini masih jauh dari kesempurnaan oleh karenanya
dibutuhkan kritik dan saran yang membangun demi perbaikan modul praktikum ini. Semoga
modul praktikum ini dapat berguna dan bermanfaat dalam proses pendidikan di Program Studi
Teknik Informatika STITEK Bontang.
Tim Penyusun
Daftar Isi
Modul 7. Fungsi........................................................................................................................ 45
A. TUJUAN PRAKTIKUM
1. Mengetahui dan memahami IDE Geany beserta komponen-komponennya.
B. DASAR TEORI
1. IDE GEANY
Geany adalah kompiler editor yang lingkungan perkembangannya
menggabungkan antara dua jenis kelebihan yaitu kecil dan ringan. Geany
dikembangkan untuk menyediakan IDE kecil dan cepat, yang hanya memiliki beberapa
dependensi dari paket-paket lain. Tujuan lain adalah untuk menjadi sebagai kompiler
editor yang berdiri sendiri yang memungkinkan dari lingkungan desktop yang lebih
khusus seperti KDE atau GNOME. Geany hanya membutuhkan library runtime GTK2.
Beberapa fitur dasar Geany :
a. Sintaks penyorotan.
b. Kode lipat.
c. Nama symbol auto-completion (otomatisasi pelengkapan simbol).
d. Membuatkan penyelesaian / potongan.
e. Otomatisasi penutupan tag XML dan tag HTML.
f. Pemanggilan tips.
g. Banyak jenis filetypes / berkas yang didukung termasuk ActionScript, Ada, ASM, C,
C#, C++, CAML, CMake, Conf, CSS, D, Diff, Docbook, F77, Ferite, Fortran,
FreeBasic, GLSL, Haskell, Haxe, HTML, Java, Javascript, LaTeX, Lua, Make,
Markdown, Matlab, None, NSIS, Pascal, Perl, PHP, Po, Python, R,
reStructuredText, Ruby, Sh, SQL, Tcl, Vala, VHDL, XML, dan YAML.
h. Daftar simbol.
i. Kode navigasi.
j. Membangun sistem untuk mengkompilasi dan mengeksekusi kode.
k. Manajemen proyek yang simple.
l. Plugin interface.
Geany dapat berjalan pada Linux, FreeBSD, NetBSD, OpenBSD, MacOS X,
AIX v5.3, Solaris Express dan Windows. Secara umum, geany dapat berjalan di seluruh
platform, yang didukung oleh pustaka GTK. Hanya di Windows, Geany kehilangan
beberapa fitur.
Geany di bawah ketentuan dari GNU General Public Licence, bersifat
opensource. Dibutuhkan library GTK2, kompiler GCC (untuk bahasa C) dan kompiler
G++ (untuk bahasa C++). Geany bisa didapatkan secara gratis di
[Link] atau jika system operasi menggunakan Linux keluarga
Debian (ubuntu), Geany dapat diperoleh dari repository, baik melalui Synaptic
Package Manager maupun melaui command :
$sudo apt-get install geany
Menu
Speed Bar / Toolbar
Editor Code
Structur
Code
Properties I/O
a. Menu
Menu pada Geany, seperti pada aplikasi lainnya yang terdiri dari sejumlah sub
menu, yang masing-masing memiliki kegunaan dan fungsi sendiri-sendiri, antara
lain save, open, compile, build, execute dan lain-lain. Segala sesuatu yang
berhubungan dengan Geany semuanya dapat dilakukan melalui menu.
b. Speed Bar / Toolbar
Speed Bar / Toolbar berisi sekumpilan tombol item menu yang sering digunakan
saat pembuatan aplikasi program. Tombol-tombol yang akan diletakkan pada
speedbar / toolbar dapat ditambah / dikurangi sesuai kebutuhan melalui bagian
menu Tools → Configuration Files → ui_toolbar.xml . Tambahkan script
toolbar pada file xml tersebut, kemudian simpan dengan tombol Save.
c. Editor Code
Editor code merupakan tempat dimana kita menuliskan script program dari
aplikasi yang akan kita buat.
d. Structur Code
Merupakan bagian struktur aplikasi yang kita buat.
e. Properties
Sebagai notifikasi / pesan yang disampaikan saat program di compile, di build dan
di execute.
f. I/O
Menampilkan hasil eksekusi program.
A. TUJUAN
• Memperkenalkan Bahasa Pemrograman C++
• Mempraktekkan struktur Program Bahasa C++ dan mengenalkan langkah-langkah
pengembangan program
• Compiler yang digunakan
B. ALOKASI WAKTU
• 120 menit (1 x pertemuan)
C. DASAR TEORI
1. PENGENALAN
Bahasa C++ diciptakan oleh Bjame Stroustrup di AT & T Bell Laboratories pada awal
tahun 1980-an. Pada awalnya bahasa ini dikenal sebagai “C with Classes” (nama C++
digunakan sejak tahun 1983, setelah diusulkan oleh Rick Mascitti). Pada tahun 1985
bahasa ini mulai disebarluaskan oleh AT&T dengan mengeluarkan perangkat lunak cfront
yang berfungsi sebagai C++ translator (cfront menerima masukkan program bahasa C++
dan menghasilkan kode bahasa C).
Mengapa menggunakan C++? Ada beberapa kriteria yang dimiliki oleh C++ yang
berbeda dengan bahasa pemrograman yang lain. Kriteria-kriteria itu adalah :
a. Pemrograman berorientasi objek
Pemrogram dapat merancang suatu objek yang tersusun dari beberapa kode-kode atau
objek-objek yang tersusun menjadi suatu modul yang memudahkan komunikasi antara
pemrogram satu dengan pemrogram yang lain atau dengan programnya sendiri dan
rancangan inilah yang akan berkembang menjadi suatu pemrograman berorientasi
objek.
b. Portabilitas
Kita dapat membuat program C++ dengan segala jenis computer dan system operasi
tanpa dengan susah payah membuat perubahan. C++ adalah salah satu yang paling
cocok untuk digunakan ke bahasa program dengan platform berbeda.
c. Singkat
Kode program dalam C++ sangat pendek jika dibandingkan dengan bahasa
pemrograman lain.
EDITOR EDITOR
COMPILER C++
LINKER
FILE EXECUTABLE(.EXE)
2. Lingkungan GNU/Linux
Apakah GNU? Sebenarnya GNU adalah sebuah nama binatang yang berasal dari
afrika, tetapi oleh Richard M. Stallman dipakai untuk nama project pengembangan
perangkat lunak yang bersifat terbuka (open source). Kemudian oleh banyak orang GNU
disebut sebagai singkatan GNU is Not Unix. Pengembangan perangkat lunak tersebut
dilakukan oleh para sukarelawan di seluruh dunia secara berkesinambungan.
Linux adalah system operasi yang sangat mirip dengan UNIX dan sebagian besar
perintah Linux merupakan bagian dari GNU project yang didukung oleh Free Software
Foundation. Hanya 3% bagian dari system operasi linux yang benar-benar Linux. Jadi pada
waktu kita menggunakan Linux, sebenarnya kita sedang menggunakan perangkat-
perangkat pendukung GNU (GNU Utilities).
GNU Project juga memasukkan Compiler C dan C++ bersama-sama dengan utilities
dan perangkat-perangkat pendukung yang lainnya. Compiler C dikenal dengan nama GCC
sedangkan compiler C++ dikenal dengan nama G++.
Hal yang menarik dari GNU Tools adalah dapat digunakan dibanyak platform. Jadi
kita dapat memakai compiler GNU untuk Linux atau untuk DOS atau untuk DEC (Compaq)
ALPHA atau untuk sistem-sistem yang lain. Ini berarti kita belajar satu compiler saja tetapi
dapat digunakan di banyak platform.
b. Block
Block merupakan sebuah tempat yang memuat single statement, ataupun gabungan
statement. Block dimulai dengan kurung kurawal buka ({) dan diakhiri dengan kurung
kurawal tutup (}), serta setiap statement yang berada didalam block harus diakhiri
dengan tanda titil koma (;). Sedangkan block itu sendiri tidak diakhiri dengan tanda titik
koma (;).
Contoh :
{
temp = a;
a = b;
b = a;
}
c. Komentar
Komentar berfungsi untuk memberikan informasi tentang apa yang dikerjakan oleh
suatu statement, blok statement, dan fungsi. Dalam program, komentar dimulai
dengan karakter double slash (//) untuk satu baris komentar, atau komentar diletakkan
diantara tanda slash-start (/*) dan star-slash (*/) untuk satu atau lebih baris komentar.
Baris komentar ini tidak dikerjakan oleh komputer, hanya dianggap sebagai baris
kosong.
Contoh :
//awal fungsi
/* program ini akan menampilkan kalimat
“programku yang pertama” dilayar monitor */
d. Fungsi
Di bawah ini merupakan struktur program C++ secara umum, yaitu terdiri dari
preprocessor, fungsi, variable local. Marilah kita amati dan kita pahami bersama.
#include <iostream>
#include <math.h> Preprocessor
#define PI 3.14159 Directives
#define SQUARE(x) ((x)*(x))
/*
Program untuk menghitung luas lingkaran.
float ambilData(void);
Beberapa bugs (kesalahan) akan menyebabkan kompilasi menjadi gagal atau akan
menyebabkan proses link menjadi gagal, dan diantaranya akan muncul ketika sedang
menjalankan program tersebut. Apapun bugs (kesalahan) yang ditemukan, kita harus
memperbaikinya. Itu berarti kita harus meng-edit ulang source code, meng-kompilasi ulang,
me-link ulang, dan men-test ulang program tersebut. Perputaran ini digambarkan sebagai
berikut :
START
EDIT
SOURCE
CODE
COMPILE
YA
TIDAK
LINK
YA
TIDAK
TEST PROGRAM
YA
TIDAK
END
D. LANGKAH PRAKTIKUM
Pada praktikum ini kita akan mencoba untuk membuat sebuah program sederhana yang
akan menampilkan pesan “Programku yang pertama” di layar monitor. Dibawah ini adalah
source code dari program kita yang pertama.
1: #include <iostream>
2:
3: using std::cout;
4:
5: int main()
6: {
7: cout << "Programku yang pertama";
8: return 0;
9: }
Modul 1.0 Program pertama
1. Buka text editor. Nomor-nomor yang ada disebelah kiri tidak usah diketik. Itu hanya nomor
baris supaya kita lebih mudah membaca/mencari suatu kesalahan pada waktu kompilasi.
Kemudian beri nama source code ini dengan nama [Link]. Jika kita memakai text
editor vi, maka kita langsung dapat member nama.
Contoh : vi [Link] [enter].
2. Kemudian ketik source code diatas tanpa nomor-nomor disebelah kiri. Setelah selesai tekan
tombol Esc dan ketikkan :wq; yang berarti menyuruh vi untuk menyimpan file tersebut dan
langsung keluar dari vi.
3. Untuk mengkompilasi dan me-link source code tersebut, gunakan GNU Compiler under
Linux, dengan cara : g++ [Link] –o pertama.
4. Jika terdapat kesalahan (error) ketika kompilasi, silahkan untuk memeriksa kembali source
code dengan teliti dan periksalah apakah beda dengan source code diatas. Jika tidak
terdapat kesalahan, cobalah untuk menjalankan program tersebut dengan cara
mengetikkan di prompt : ./pertama
5. Seharusnya ada tampilan di layar monitor, tepatnya satu baris di bawah perintah yang
barusan kita ketikkan yaitu : Programku yang pertama.
E. TUGAS PRAKTIKUM
1. Kembangkanlah modul 1.0 diatas agar mengeluarkan output seperti dibawah ini :
Data Pribadi
Nama : <nama anda>
Nim : <nim anda>
Plug : <nomor plug praktikum anda>
Jenis Kelamin : <L/P>
Alamat : <alamat rumah/kost/kontrakan anda>
e-mail : <email anda>
No. Hp : <nomor handphone anda yang aktif>
2. Catat semua tahapan Anda membuat program dan juga jelaskan kesalahan yang Anda
temukan ketika membuat program dan berikan solusinya.
3. Apa pendapat Anda setelah mempelajari tahap awal pemrograman bahasa C++?
4. Apakah Anda memiliki buku pegangan untuk membantu Anda mempelajari bahasa
pemrograman C++ selain modul praktikum? Jika Anda memilikinya tolong sebutkan.
5. Apakah Anda sebelumnya sudah pernah membuat program? Jika Ya tolong sebutkan
bahasa pemrograman apa yang Anda gunakan.
A. TUJUAN
• Mendefinisikan dan membedakan tipe data dasar, operator-operator dan ekspresi
• Mempraktekkan penggunaan tipe data dasar, operator-operator dan ekspresi
B. ALOKASI WAKTU
• 120 menit (1 x Pertemuan)
C. DASAR TEORI
1. Tipe Data, Variabel dan Konstanta
a. Tipe data
Tabel dibawah ini merepresentasikan tipe-tipe variable dan menunjukkan seberapa
banyak memori yang dibutuhkan, dan nilai-nilai yang dapat disimpan.
Sebagai gambaran, dibawah ini merupakan source code program untuk mengetahui
seberapa banyak tempat yang dibutuhkan untuk sebuah tipe variabel :
1. #include <iostream>
2. using std::cout;
3. int main()
4. {
5. cout << "ukuran sebuah 'int' adalah :\t\t " << sizeof(int) << "bytes.\n ";
6. cout << "ukuran sebuah 'short int' adalah :\t\t " << sizeof(short int) <<
"bytes.\n ";
7. cout << "ukuran sebuah 'long int' adalah :\t\t " << sizeof(long int) <<
"bytes.\n ";
8 cout << "ukuran sebuah 'char' adalah :\t\t " << sizeof(char) << "bytes.\n ";
9. cout << "ukuran sebuah 'float' adalah :\t\t " << sizeof(float) << "bytes.\n
";
10. cout << "ukuran sebuah 'double' adalah :\t\t " << sizeof(double) <<
"bytes.\n ";
11. cout << "ukuran sebuah 'bool' adalah :\t\t " << sizeof(bool) << "bytes.\n ";
12. return 0;
13. }
Modul 2.1. Ukuran dari masing-masing tipe data
b. Variable
Di dalam C++, variable merupakan tempat untuk menyimpan informasi. Dalam hal
ini informasi merupakan nilai-nilai yang akan digunakan untuk keperluan program yang
dibuat. Variable adalah sebuah lokasi memori di computer kita, dimana kita dapat
menyimpan suatu nilai dan suatu saat nilai tersebut dapat kita ambil kembali.
Memori computer dapat diibaratkan seperti sebuah lemari rak. Satu rak
merupakan sebuah bagian dari lemari rak. Setiap rak diberi nomor urut. Nomor urut ini
kemudian dikenal sebagai alamat memori. Sebuah variable menyiapkan satu atau lebih
rak yang akan kita isi nilainya.
Nama Variabel coba
RAM
Nama variable (misal : coba) adalah label dari salah satu rak tersebut, sehingga
kita dapat dengan mudah menemukannya, tanpa harus tahu alamat memori yang
sebenarnya. Pada gambar diatas variable coba menempati alamat memori 101 s.d.
104. Nama dari suatu variable dapat ditentukan sendiri oleh pembuat program dengan
aturan sebagai berikut :
✓ Terdiri dari gabungan huruf dan angka dengan karakter pertama harus berupa
huruf.
✓ Tidak boleh mengandung spasi.
✓ Tidak boleh mengandung symbol-simbol khusus kecuali garis bawah (under
score). Symbol khusus yang tidak diperbolehkan antara lain : $, ?, %, #, !, &, *,
(, ), -, +, dsb.
✓ Panjangnya bebas, tetapi hanya 31 karakter pertama yang dipakai.
Deklarasi variable
Sebagai gambaran, dibawah ini merupakan source code program penggunaan variable
untuk menghitung luas persegi panjang :
1. #include <iostream>
2.
3. using std::cout;
4.
5. int main()
6. {
7. int lebar = 5;
8. int panjang = 5;
9. int luas = panjang * lebar;
10. cout << "Panjang : " << panjang << "\n";
11. cout << "Lebar : " << lebar << "\n";
12. cout << "Luas : " << luas << "\n";
13. return 0;
14. }
Modul 2.2. Implementasi variable
c. Konstanta
Seperti variable, konstanta merupakan lokasi penyimpanan data. Tetapi seperti
namanya (constant), nilai konstanta tidak dapat berubah. Kita harus mengisikan
sebuah nilai ke dalam konstanta ketika kita membuatnya dan sesudahnya kita tidak
dapat mengganti atau menambahkan nilai baru ke dalamnya. Dengan kata lain,
konstanta tidak dapat diubah ketika program berjalan, karena pemakai tidak dapat
meng-input data ke konstanta.
C++ mempunyai 2 jenis konstanta, yaitu literal dan simbolik, yaitu literal dan
simbolik. Literal konstanta merupakan konstanta yang langsung diberi nilai angka.
Contohnya : int usia = 23;
Simbolik konstanta merupakan konstanta yang tidak langsung diberi nilai angka
melainkan lewat symbol.
Contoh : usia = usiaKuKini;
Deklarasi Konstanta
Dengan menggunakan preprocessor directive #define pendefinisian konstanta
menjadi lebih mudah. Untuk kasus di atas, maka simbolik konstantanya adalah :
#define usiaKuKini 23;
Contoh lain :
Operator Aritmatika
Operator Arti
* Perkalian
/ Pembagian
+ Penjumlahan
- Pengurangan
% Sisa pembagian
Operator Logika
Jika operator hubungan membandingkan hubungan antara dua buah operand, maka
operator logika digunakan untuk membandingkan logika hasil dari operator-operator
hubungan. Operator logika ada tiga macam, yaitu :
Tabel 2.4. Operator Logika
Operator Arti
&& Logika AND
|| Logika OR
! Logika NOT
Operator Bitwise
Operator bitwise digunakan untuk memanipulasi bit-bit dari nilai data yang ada di memori.
Operator bitwise dalam bahasa C++ ada 6, yaitu :
Operator Unary
Operator Unary merupakan operator yang hanya membutuhkan satu operand saja. Dalam
bahasa C++ terdapat beberapa operator unary, yaitu :
Tabel 2.6. Operator Unary
Operator Arti/Maksud Letak Contoh Equivalen
- Unary minus Sebelum operator A + -B * C A + (-B) * C
++ Peningkatan dengan Sebelum dan sesudah A++ A = A + 1
Penambahan nilai 1
-- Penurunan dengan Sebelum dan sesudah A-- A = A – 1
Pengurangan nilai 1
sizeof Ukuran dari operand dalam Sebelum sizeof(I) -
Byte (ukuran tipe data)
! Unary NOT Sebelum !A -
~ Bitwise NOT Sebelum ~A -
& Menghasilkan alamat memori Sebelum &A -
Operand
* Menghasilkan nilai dari Sebelum *A -
Pointer
Sebagai gambaran, ada beberapa source code program penggunaan operator berikut ini :
#include <iostream>
using std::cout;
int main()
{
cout <<"Nilai dari 9 + 4 = "<< 9 + 4; /* mencetak hasil 9+4 */
cout <<"\nNilai dari 9 - 4 = "<< 9 - 4; /* mencetak hasil 9-4 */
cout <<"\nNilai dari 9 * 4 = "<< 9 * 4; /* mencetak hasil 9*4 */
cout <<"\nNilai dari 9 div 4 = "<< 9 / 4; /*mencetak hasil 9 div 4*/
cout <<"\nNilai dari 9 / 4 = "<< 9.0 / 4.0; /* mencetak hasil 9/4 */
cout <<"\nNilai dari 9 mod 4 = "<< 9 % 4; /* mencetak hasil 9%4 */
return 0;
}
#include <iostream>
using std::cout;
int main()
{
int x, nilai;
x = 5;
nilai = ++x; /* berarti x = x + 1; nilai = x; */
cout << "nilai = "<< nilai <<" , x = " << x;
nilai = x++; /* berarti nilai = x; nilai = x + 1; */
cout << "\nnilai = "<< nilai <<" , x = " << x;
return 0;
}
2. using std::cout;
3. int main()
4. {
5. int a=0, b=0, x = 0, y = 35;
6. cout << “a : ”<< a << ”\nb : ” << b;
7. cout << “\nx : ” << x << “\ny : ” << y;
8. a = 9;
9. b = 7;
10. y = x = a + b;
11. cout << “\na : ”<< a << ”\nb : ” << b;
12. cout << “\nx : ” << x << “\ny : ” << y;
13. return 0;
14. }
Modul 2.6. Contoh penulisan ekspresi
D. LANGKAH PRAKTIKUM
1. Buka text editor, kerjakan semua modul diatas dan simpan untuk setiap modulnya.
2. Untuk contoh program 2.4, tambahkan program dengan deklarasi variabel sbb (simpan
dengan nama lain) :
........
int x,y,z,m,n;
x = 9 + 4; /* menghitung 9+4 */
y = 9 - 4; /* menghitung 9-4 */
z = 9 * 4; /* menghitung 9*4 */
m = 9 / 4; /* menghitung 9/4 */
m2 = 9.0 / 4.0; /* menghitung 9/4 */
n = 9 % 4; /* menghitung 9%4 */
clrscr();
cout <<"Nilai dari 9 + 4 = "<< x;
cout <<"\nNilai dari 9 - 4 = "<< y;
cout <<"\nNilai dari 9 * 4 = "<< z;
cout <<"\nNilai dari 9 / 4 = "<< m;
cout <<"\nNilai dari 9 mod 4 = "<< n;
........
Samakah hasilnya?
3. Untuk modul 2.5 ubah operator “++” dengan “- -” dan simpan dengan nama lain. Amati apa
yang terjadi!
E. TUGAS PRAKTIKUM
A. TUJUAN
• Memperkenalkan fungsi input dan output
• Mempraktekkan fungsi input dan output
B. ALOKASI WAKTU
• 120 menit (1 x Pertemuan)
C. DASAR TEORI
Input dan output yang dibahas di praktikum ini hanya yang berhubungan dengan keyboard
dan layar monitor. Format penulisan input dan output pada bahasa C++ ada bermacam-
macam dan juga tergantung pada library yang dipakai (file includenya). Berikut diberikan dua
standar penulisan input output dengan format yang berbeda.
1. INPUT
a. Jika menggunakan Library “stdio.h”
Fungsi scanf()
Fungsi scanf() digunakan untuk menginput data berupa data numerik, karakter
dan string secara terformat. Kode penentu format adalah sbb:
• %c : Membaca sebuah karakter
• %s : Membaca sebuah string
• %i, %d : Membaca sebuah bilangan bulat (integer)
• %f, %e : Membaca sebuah bilangan pecahan (real)
• %o : membaca sebuah bilangan octal
• %x : Membaca sebuah bilangan heksadesimal
• %u : Membaca sebuah bilangan tak bertanda
Fungsi gets()
Fungsi gets() digunakan untuk memasukkan data bertipe karakter dan tidak dapat
digunakan untuk memasukkan data numeric dan tidak memerlukan penentu format
Fungsi getchar()
Fungsi getchar() digunakan untuk membaca data yang bertipe karakter
Fungsi getch() dan getche()
Fungsi getch() dan getche() digunakan untuk membaca data karakter. Karakter
yang dimasukkan tidak perlu diakhiri dengan penekanan tombol enter. Jika
menggunakan fungsi getch() karakter yang dimasukkan tidak akan ditampilkan pada
layar. Sedangkan pada getche() karakter yang dimasukkan akan ditampilkan pada
layar.
Manipulator Fungsi
endl End line, identik dengan \n
kursor pindah ke posisi awal berikutnya
ends Menyisipkan karakter Null
flush Mencetak isi buffer
dec Mengonversi kebilangan decimal
hex Mengonversi kebilangan hexadecimal
oct Mengonversi kebilangan octadecimal
setbase(n) Mengonversi kebilangan berbasis n
setw(n) Mengatur lebar cetakan selebar n
setfill(c) Mengisi leading field dengan karakter c
setprecision(n) Membuat lebarr decimal point=n
setiosflags(lf) Men-set format yang diatur dengan tanda format ios:
resetiosflags(lf) Men-set format yang diset oleh setioflagss
Sebagai gambaran, dibawah ini merupakan source code program pemakaian fungsi input dan
output :
#include <stdio.h>
int main()
{
char nama[20];
printf("Masukkan nama Anda : ");
gets(nama);
printf("Hello, Nama Anda adalah %s", nama);
return 0;
}
Modul 3.1. Pemakaian Library stdio.h
#include <iostream>
using std::cout;
using std::cin;
int main()
{
char nama[20];
cout << "Masukkan nama Anda : ";
[Link](nama,sizeof(nama));
cout << "Hello, Nama Anda adalah " << nama;
return 0;
}
Modul 3.2. Pemakaian Library iostream
#include <stdio.h>
int main()
{
int jumlah;
char huruf, nim[10];
float nilai;
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
int main()
{
int jumlah;
char huruf, nim[10];
float nilai;
cout << "Masukkan sebuah bilangan bulat : ";
cin >> jumlah; /* membaca sebuah bilangan bulat */
cout << "Masukkan sebuah karakter : ";
cin >> huruf; /* membaca sebuah karakter */
cout << "Masukkan nim Anda : ";
cin >> nim; /* membaca sebuah string */
cout << "Masukkan sebuah bilangan pecahan : ";
cin >> nilai; /* membaca sebuah bilangan float */
cout << "\n Nilai variabel yang Anda masukkan adalah :\n";
cout << "jumlah = " << jumlah << endl;
cout << "huruf = " << huruf << endl;
cout << "nim = " << nim << endl;
cout << "nilai = " << nilai << endl;
return 0;
}
Modul 3.4. Pemakaian Library iostream lebih lanjut
#include <stdio.h>
int main()
{
float nilai;
using std::cout;
using std::cin;
int main()
{
float nilai;
D. LANGKAH PRAKTIKUM
1. Buka text editor, kerjakan semua modul diatas dan simpan untuk setiap modulnya.
2. Kerjakan 3 contoh program dibawah ini dan bandingkan hasilnya :
a. #include <iostream>
using std::cout;
using std::endl;
int main()
{
cout << "ABC" << endl << "PQR";
return 0;
}
b. #include <iostream>
using std::cout;
using std::endl;
int main()
{
cout << ”ABC";
cout << endl << "PQR";
return 0;
}
24 Praktikum Algoritma dan Pemrograman 1
Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1
c. #include <iostream>
using std::cout;
int main()
{
cout << "ABC\nPQR";
return 0;
}
3. Kerjakan 2 contoh program dibawah ini dan bandingkan hasilnya :
a. #include <iostream>
int main ()
{
cout << setw(10) << 4725;
return 0;
}
b. #include <iostream>
int main ()
{
cout << setw(5) << 4725;
return 0;
}
E. TUGAS PRAKTIKUM
1. Buatlah program untuk menghasilkan output berikut : (manfaatkan manipulator)
Masukkan :
Nama : input nama melalui keyboard
NIM : input NIM melalui keyboard
Plug : input Plug melalui keyboard
2. Buatlah program untuk mencari konversi suhu dari Celcius ke Fahrenheit, Kelvin, dan
Reamur. Dengan rumus :
Fahrenheit = (9/5 * C) + 32;
Kelvin = 273 + C;
Reamur = (4/9 * C) + 32;
A. TUJUAN
• Memperkenalkan perintah pengambilan keputusan dalam bahasa C++
• Mempraktekkan dan membandingkan statement-statement pengendalian dengan
sintak, semantik dan logika yang benar.
B. ALOKASI WAKTU
• 120 menit (1 x Pertemuan)
C. DASAR TEORI
1. PERINTAH if
Perintah if berguna untuk memilih satu dari dua atau lebih alternative jawaban yang
tersedia. Jika perintah if tersebut terdiri dari dua atau lebih pernyataan maka pernyataan
tersebut harus berada di antara “{” dan “}”.
Perintah if memiliki bentuk umum :
if (kondisi)
Pernyataan;
Bentuk di atas memiliki arti jika kondisi bernilai benar maka pernyataan dibawahnya akan
dikerjakan. Jadi perintah if merupakan perintah yang menentukan pengambilan
keputusan bahwa pernyataan itu akan dikerjakan atau tidak.
Pada perintah if dapat pula diikuti oleh pernyataan majemuk. Untuk itu digunakan
tanda “{” dan “}” untuk menandai awal dan akhir pernyataan yang akan dikerjakan jika
pernyataan benar.
Bentuknya adalah sebagai berikut :
if (kondisi)
{
Pernyataan ke-1;
Pernyataan ke-2;
…
Pernyataan ke-n;
}
Bentuk di atas memiliki arti jika kondisi bernilai benar maka semua pernyataan
dibawahnya akan dikerjakan. Sebagai gambaran, di bawah ini merupakan source code
program penggunaan perintah if
/*--------------------------------------------------*/
/* Contoh pemakaian if untuk menentukan korting
/*--------------------------------------------------*/
#include <iostream>
using std::cin;
using std::cout;
int main ()
{
double total_pembelian, korting;
cout << "Total pembelian : Rp ";
cin >> total_pembelian;
korting = 0;
/*--------------------------------------------------*/
/* Contoh pemakaian if untuk menentukan korting
/*--------------------------------------------------*/
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int main ()
{
double total_pembelian, korting;
char bonus[10];
cout << "Total pembelian : Rp ";
cin >> total_pembelian;
korting = 0;
bonus = "Tidak Ada";
Bentuk ini mempunyai arti : jika kondisi bernilai benar maka pernyataan ke-1 akan
dikerjakan dan jika kondisi bernilai salah maka pernyataan ke-2 yang akan dikerjakan.
Pada perintah if - else dapat pula di ikuti oleh pernyataan majemuk. Untuk itu
digunakan tanda “{” dan “}” untuk menandai awal dan akhir pernyataan yang akan
dikerjakan jika pernyataan benar. Sebagai gambaran, dibawah ini merupakan source code
program penggunaan perintah if - else :
/*----------------------------*/
/* Contoh pemakaian if-else */
/*----------------------------*/
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int main ()
{
float nilai;
return 0;
}
Modul 4.3. Perintah if - else
3. PERINTAH if DALAM if
Perintah if dalam if sering disebut nested-if. Perintah ini mempunyai bentuk umum :
if (kondisi)
if (kondisi)
Pernyataan ke-1;
else
Pernyataan ke-2;
else
Pernyataan ke-3;
Perintah if dalam if juga mempunyai bentuk yang majemuk yang sering disebut if
bertingkat. Bentuknya adalah sebagai berikut :
if (kondisi)
pernyataan ke-1;
else if (kondisi)
pernyataan ke-2;
else if (kondisi)
pernyataan ke-3;
…
else
Pernyataan ke-n;
Sebagai gambaran, dibawah ini merupakan source code program penggunaan perintah if
bertingkat :
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int main()
{
int x;
cout << “Masukkan bilangan bulat : ”;
cin >> x;
if(x > 0)
cout << “Bilangan yang anda masukkan adalah bilangan positif”;
else if(x < 0)
cout << “Bilangan yang anda masukkan adalah bilangan negatif”;
else
cout << “Bilangan yang anda masukkan adalah bilangan nol”;
return 0;
}
Modul 4.4. Perintah if bertingkat
4. PERINTAH switch-case
Perintah switch merupakan pernyataan yang dirancang untuk menangani
pengambilan keputusan yang melibatkan sejumlah pilihan alternatif yang diantaranya untuk
menggantikan pernyataan IF bertingkat.
Bentuk umumnya adalah sebagai berikut :
switch (ekspresi)
{
case konstanta ke-1:
pernyataan ke-1;
break;
case konstanta ke-2:
pernyataan ke-2;
break;
...
...
case konstanta ke-n:
pernyataan ke-n;
break;
default: pernyataan x;
}
Ekspresi dapat berupa ungkapan yang bernilai integer atau bertipe karakter. Setiap
konstanta ke-1, konstanta ke-2, sampai dengan konstanta ke-n dapat berupa konstanta
integer atau konstanta karakter.
Setiap pernyataan ke-1, pernyataan ke-2, sampai dengan pernyataan ke-n dapat
berupa sebuah atau beberapa pernyataan.
Pengujian pada switch akan dimulai dari konstanta ke-1. Apabila nilainya cocok
dengan ekspresi maka pernyataan ke-1 akan dikerjakan.
/*----------------------------------------------------*/
/* Contoh switch dan case untuk menampilkan nama hari */
/*----------------------------------------------------*/
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int main ()
{
int kode_hari;
cout << "Menentukan hari";
cout << "\n1 = SENIN 3 = RABU 5 = JUMAT 7 = MINGGU";
cout << "\n2 = SELASA 4 = KAMIS 6 = SABTU ";
cout << "\n Masukkan kode hari (1..7) : ";
cin >> kode_hari;
switch (kode_hari)
{
case 1 :
cout << "Hari SENIN";
break;
case 2 :
cout << "Hari SELASA";
break;
case 3 :
cout << "Hari RABU";
break;
case 4 :
cout << "Hari KAMIS";
break;
case 5 :
cout << "Hari JUMAT";
break;
case 6 :
cout << "Hari SABTU";
break;
case 7 :
cout << "Hari MINGGU";
break;
default:
cout << "kode yang masukkan salah !";
}
return 0;
}
Di bawah ini merupakan source code program penggunaan SWITCH untuk membuat menu
pilihan :
/*----------------------------------------------------*/
/* Contoh switch-case untuk membuat menu */
/*----------------------------------------------------*/
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int main ()
{
int pilih,x,y;
switch (pilih)
{
case 1 :
cout << "\nPENJUMLAHAN";
cout << "\nz = x + y\n";
cout << " x = ";
cin >> x ;
cout << " y = ";
cin >> y ;
cout << " z = " << x+y ;
break;
case 2 :
cout << "\nPENGURANGAN";
cout << "\nz = x - y\n";
cout << " x = ";
cin >> x ;
cout << " y = ";
cin >> y ;
cout << " z = " << x-y ;
break;
case 3 :
cout << "KELUAR ...";
break;
default:
cout << "Nomor yang dimasukkan salah !";
}
return 0;
}
Modul 4.6. Perintah switch untuk menu
D. LANGKAH PRAKTIKUM
1. Kerjakan semua modul program yang ada dan simpan untuk setiap modulnya.
2. Sempurnakan potongan Listing Program berikut, sehingga dapat menampilkan output untuk
menghitung nilai ujian :
Output :
Masukkan nilai = 89
Nilai Huruf = A
3. Sempurnakan potongan source code modul 4.6., sehingga dapat mengerjakan pembagian,
perkalian, dan kuadrat.
E. TUGAS PRAKTIKUM
1. Buatlah flowchart struktur perintah if dalam if dan if bertingkat.
2. Buatlah flowchart struktur perintah switch.
3. Buat program untuk menentukan bulan-bulan masehi berdasarkan jumlah harinya.
4. Korban gempa bumi yang terjadi di Jogja diberi bantuan oleh pemerintah berdasarkan
jumlah dan usia anggota jiwa dalam keluarganya selama sebulan. Jika di bawah usia
balita, biaya per jiwa adalah Rp 7000,00/hari, dan diatas balita biayanya adalah
Rp.12000,00/hari. Buatlah algoritma yang membaca jumlah biaya yang harus dikeluarkan
oleh pemerintah untuk satu keluarga yang terdiri dari 5 jiwa dalam sebulan !
A. TUJUAN
• Memperkenalkan statement perulangan
• Mempraktekkan dan membandingkan statement-statement perulangan dengan sintak,
semantik dan logika yang benar
B. ALOKASI WAKTU
• 240 menit (2 x Pertemuan)
C. DASAR TEORI
1. LOOPING DENGAN while
Looping dengan while akan menyebabkan program kita mengulang barisan statement
seperti yang dikondisikan di awal looping. Syntax statement while sebagai berikut :
while (kondisi)
{
Statement ke-1;
.
.
Statement ke-n
}
“kondisi” adalah ekspresi sembarang yang diterima oleh C++ dan “statement” adalah
statement yang diterima oleh C++. Jika kondisi bernilai benar (true), maka statement-
statement di dalam badan looping dikerjakan, kemudian kondisi diperiksa lagi. Hal ini
berlanjut terus sampai kondisi bernilai salah (false). Jika kondisi bernilai salah maka
looping dengan statement while akan berhenti dan program akan berlanjut ke statement
berikutnya di bawah block statement looping. Berikut gambaran cara kerja while :
Statement ke-1;
..
Statement ke-n;
//sisa program
//yang berlanjut
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int main()
{
int hitung, hit;
cout << "Berapa kali pengulangan ?";
cin >> hitung;
hit = hitung;
cout << "Menghitung mundur ...\n" << endl;
while(hitung > 0)
{
cout << "Mencetak : " << hitung << endl;
hitung--;
}
cout << endl;
if(hit <= 0)
{
cout << "Tidak ada pengulangan...";
cout << endl;
}
else
{
cout << "Selesai mengulang..." << endl;
cout << "Perhitungan terakhir : " << hitung;
cout << endl;
}
return 0;
}
Modul 5.1 Penggunaan while
while(kondisi);
Selalu mengeksekusi
satu kali sebelum
mulai looping.
Statement ke-1;
..
...
Statement ke-n;
while(kondisi)
Jika kondisi bernilai salah
//sisa program
//yang berlanjut
using std::cin;
using std::cout;
using std::endl;
int main()
{
int hitung, hit;
cout << "Berapa kali pengulangan ? ";
cin >> hitung;
hit = hitung;
cout << "Menghitung mundur ...\n" << endl;
do
{
cout << "Mencetak : " << hitung << endl;
hitung--;
}
while(hitung > 0);
}
Modul 5.2 Penggunaan do – while
Sebagai catatan, inisialisasi dan aksi dapat berupa statement yang berlaku di dalam
C++, sedangkan pengujian harus berupa ekspresi (kondisi). Cara kerja looping for adalah
sebagai berikut : 1. Melakukan inisialisasi.
2. Memeriksa kondisi (pengujian).
3. Jika kondisi bernilai benar, maka kerjakan badan looping
(statement) dilanjutkan ke no 4. Jika tidak, maka looping berakhir
(selesai).
4. Kerjakan aksi. Kembali kerjakan no 2.
Setelah setiap kali mengerjakan badan looping, dan langkah keempat dilakukan, maka
looping akan mengulangi langkah kedua dan ketiga. Sebagai gambaran di bawah ini
merupakan source code penggunaan for :
#include <iostream>
using namespace std;
int main()
{
int hitung, hit;
cout << "Berapa kali pengulangan ? ";
cin >> hitung;
hit = hitung;
cout << "Menghitung mundur ...\n" << endl;
Statement ke-1;
...
break;
...
Statement ke-n;
//sisa program
//yang berlanjut
while (kondisi)
Statement ke-1;
...
continue;
...
Statement ke-n;
//sisa program
//yang berlanjut
using std::cin;
using std::cout;
using std::endl;
int main ()
{
int jum_data = 0;
int nomor=1;
float total_nilai =0;
float nilai, rata_rata;
7. PERNYATAAN goto
Pernyataan goto merupakan instruksi untuk mengarahkan eksekusi ke pernyataan
yang diawali dengan suatu label (diikuti dengan tanda titik dua (:)). Penggunaan statement
goto sangat tidak disarankan! Mengapa? Karena dengan menggunakan statement
goto, kita dapat dengan mudah membuat lompatan (jump) maju atau mundur dari program
kita. Dengan demikian program kita akan menjadi tidak terstruktur. Untuk lebih jelasnya
coba perhatikan gambar di bawah ini :
ulang:
Statement ke-1;
...
if(kondisi)
goto ulang;
...
Statement ke-n;
//sisa program
//yang berlanjut
#include <iostream>
#include <iomanip>
using std::cin;
using std::cout;
using std::endl;
int main ()
{
int i,n;
float x,sx,rx;
}
cout << x << endl;
sx+=x;
}
selesai:
return 0;
}
Modul 5.6 Penggunaan goto
8. FUNGSI exit()
Suatu eksekusi program dapat dihentikan melalui pemanggilan fungsi exit(). Nilai
nol diberikan pada argumen exit() untuk menunjukkan penghentian program yang
normal. Penggunaan exit() perlu ditambahkan #include <stdlib.h> pada awal
program. Sebagai gambaran dibawah ini merupakan source code penggunaan goto,
switch-case-break, dan exit :
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int main ()
{
int sisia, sisib, sisic,pilih, alas, tinggi, keliling;
float luas;
menu:
switch(pilih)
{
case 1 : {
cout << "\nMasukkan alas :"; cin >> alas;
cout << "Masukkan tinggi :"; cin >> tinggi;
luas=0.5*alas*tinggi;
cout << "Luas Segitiga = " << luas;
break;
}
case 2 : {
cout << "\nPanjang sisi a :"; cin >> sisia;
cout << "Panjang sisi b :"; cin >> sisib;
cout << "Panjang sisi c :"; cin >> sisic;
keliling = sisia+ sisib +sisic;
cout << "Keliling Segitiga = " << keliling;
break;
}
case 3 : { exit(0);}
}
goto menu;
return 0;
}
Modul 5.7 Program menu
D. LANGKAH PRAKTIKUM
1. Kerjakan semua modul yang ada di bab ini dan simpan untuk setiap modulnya.
2. Pada modul 5.6 kita membuat program menu menggunakan pernyataan goto, cobalah
ganti pernyataan goto dengan looping.
E. TUGAS PRAKTIKUM
1. Buatlah flowchart looping while, do-while, nested loop, dan for.
2. Buatlah flowchart looping while, do-while, nested loop, dan for jika di dalamnya
terdapat pernyataan continue;
3. Buatlah flowchart looping while, do-while, nested loop, dan for jika di dalamnya
terdapat pernyataan break;
4. Sempurnakan program dibawah ini yang dapat menghitung jumlah bilangan ganjil diatas
sehingga dapat menampilkan semua bilangan ganjil yang terletak antara 10 sampai
dengan 150.
#include<stdlib.h>
int main()
{
int i, jum = 0;
int bilangan=0;
int jumlah=0;
clrscr();
cout << "Menentukan jumlah bilangan ganjil pada suatu bilangan\n";
cout << "\nMasukkan bilangan : ";
cin >> bilangan;
for(i=1;i<=bilangan;i++)
{
if((i % 2)==1)
jumlah=jumlah+i;
else
jum++;
}
cout << "\nBanyaknya bilangan ganjil sebelum " << bilangan;
cout << " Adalah " << jum << " bilangan" << endl;
return 0;
}
A. TUJUAN
• Memperkenalkan prosedur dan fungsi.
• Mengimplementasikan procedure dan function dengan memperhatikan parameter
dan variabel-variabel yang akan dipakai
B. ALOKASI WAKTU
• 240 menit (2 x Pertemuan)
C. DASAR TEORI
Fungsi adalah subprogram yang akan mengolah data dan mengembalikan nilai. Dengan
kata lain, fungsi adalah sebuah program kecil di dalam program utama. Setiap program C++
pasti mempunyai fungsi, minimal satu fungsi, yaitu main(). Ketika program kita dimulai, maka
fungsi main() akan dijalankan secara otomatis oleh Sistem Operasi. Fungsi main() mungkin
akan memanggil fungsi lain, demikian juga fungsi lain tersebut, ada kemungkinan memanggil
fungsi yang lainnya lagi.
Setiap fungsi memiliki namanya sendiri. Dan ketika namanya tersebut ditemukan dalam
urutan instruksi, maka jalannya program akan berpindah ke dalam fungsi tersebut. Hal ini
disebut dengan pemanggilan fungsi. Ketika fungsi tersebut selesai di eksekusi, maka jalannya
program akan kembali ke baris berikutnya setelah baris pemanggilan fungsi tersebut di
program utama.
Setiap fungsi dapat mengembalikan nilai. Jika tidak ingin mengembalikan nilai maka tipe
fungsinya dibuat dengan void. Ketika kita memanggil fungsi, maka fungsi tersebut bekerja
dan kemudian mengirim kembali nilai hasil pekerjaannya. Nilai yang dikembalikan disebut
dengan return value, dan tipenya harus dideklarasikan.
Bentuk umum :
• Pernyataan yang diberikan untuk memberikan nilai akhir fungsi berupa pernyataan return.
• Suatu fungsi dapat menghasilkan nilai balik bagi fungsi pemanggilnya.
1. Fungsi Bertipe void
Tipe void digunakan untuk mendeklarasikan fungsi-fungsi yang tidak menghasilkan
suatu nilai. Sebagai gambaran dibawah ini merupakan source code penggunaan tipe
void pada fungsi :
#include <iostream>
using namespace std;
void info(); /*deklarasi fungsi */
int main()
{
info();
return 0;
}
int main()
{
int x = 5;
cout << "x dari fungsi 'main()' : " << x << endl;
cout << endl;
cout << "*** Panggil fungsi 'fungsiKu()' ***\n\n";
fungsiKu();
cout << "\nKembali lagi ke 'main()' dari 'fungsiKu()'\n";
cout << endl;
cout << "x dari fungsi 'main()' lagi: " << x << endl;
return 0;
}
void fungsiKu()
{
int x = 10; // variable local x
cout << "x sebagai local dari fungsi 'fungsiKu()' : " << x << endl;
{
cout << "x dari dari block 'fungsiKu()' : " << x << endl;
int x = 8;
cout << "x sebagai local yg didefinisikan lagi : " << x << endl;
}
cout << "Keluar dari block, didalam 'fungsiKu()', x : " << x;
cout << endl;
}
Modul 6.2 Penggunaan variable lokal
Variabel Global
Merupakan varibel yang didefinisikan di luar atau sebelum semua fungsi didefinisikan
sehingga mempunyai wilayah/jangkauan yang luas (di seluruh program) dan dapat dipakai
oleh semua fungsi yang ada di dalam program, termasuk juga fungsi main( ) dapat
memakainya.
Variable local yang mempunyai nama yang sama dengan variable global tidak menjadi
persoalan di C++. Karena begitu variable local (dengan nama yang sama dengan variable
global) didefinisikan dan dipakai dalam sebuah fungsi, maka variable global untuk
sementara tidak dipakai.
Sebagai gambaran dibawah ini merupakan source code program penggunaan variable
global :
#include <iostream>
using namespace std;
void fungsiKu(); //deklarasi fungsi
int main()
{
cout << "x dari fungsi 'main()' : " << x << endl;
cout << "y dari fungsi 'main()' : " << y << endl;
cout << endl;
cout << "*** Panggil fungsi 'fungsiKu()' ***\n\n";
fungsiKu();
cout << "\nKembali lagi ke 'main()' dari 'fungsiKu()'\n";
cout << "";
cout << endl;
cout << "x dari fungsi 'main()' : " << x << endl;
cout << "y dari fungsi 'main()' : " << y << endl;
return 0;
}
void fungsiKu()
{
int y = 10; // variable local y
cout << "x dari fungsi 'fungsiKu()' : " << x << endl;
cout << "y dari fungsi 'fungsiKu()' : " << y << endl;
}
Modul 6.3 Penggunaan variable global
Variabel Statis
Variabel statis adalah variabel yang nilainya tetap dan bisa berupa variabel local
dan variabel global. Sifat-sifat variabel statis :
• Jika bersifat lokal, maka variabel hanya dikenal oleh fungsi tempat variabel
dideklarasikan dan Jika bersifat global, maka variabel dapat dipergunakan oleh
semua fungsi yang terletak pada program yang sama.
• Nilai variabel statis tidak akan hilang walau eksekusi terhadap fungsi telah
berakhir.
• Inisialisasi hanya dilakukan sekali saja, yaitu pada saat fungsi dipanggil pertama
kali.
• Jika tidak diberi nilai awal secara otomatis berisi nilai nol.
• Dideklarasikan dengan menambahkan kata “static”.
Variabel Register
Variabel Register adalah variabel yang nilainya disimpan dalam register dan bukan
dalam memori RAM. Sifat-sifat variabel register :
• Hanya dapat diterapkan pada variabel lokal yang bertipe int dan char, dan
digunakan untuk mengendalikan proses perulangan (looping).
• Dideklarasikan dengan menambahkan kata “register”.
Sebagai gambaran dibawah ini merupakan source code penggunaan variable register :
#include <iostream>
using namespace std;
int main()
{
register int i;
int jumlah;
for(i=1; i<=100; i++)
jumlah=jumlah+i;
cout << "1+2+3+4+5+...+100 = " << jumlah;
}
Modul 6.4 Variabel register
3. Prototype Fungsi
Prototype fungsi digunakan untuk menjelaskan kepada kompiler mengenai : tipe
keluaran fungsi, jumlah parameter dan tipe dari masing-masing fungsi. Sebagai gambaran
dibawah ini merupakan source code program prootype fungsi :
#include <iostream>
using namespace std;
float jumlah(float, float); /* prototipe fungsi */
int main ()
{
int a = 6;
int b = 3;
float c;
c = jumlah(a,b);
cout << "c = a + b = " << c;
cout << "\nHasil penjumlahan = " << jumlah(20.1,0.9);
return 0;
}
Sebagai gambaran dibawah ini merupakan source code program pemanggilan dengan
nilai dan pemanggilan dengan referensi :
#include <iostream>
using namespace std;
void tukar(int, int);
int main ()
{
int a, b;
a = 50;
b = 60;
y = z;
cout << "Nilai diakhir fungsi tukar () \n";
cout << "x = " << x << " y = " << y << "\n\n";
}
Modul 6.6 Pemanggilan dengan nilai
#include <iostream>
using namespace std;
void tukar(int *px, int *py);
int main ()
{
int a, b;
a = 50;
b = 60;
5. Fungsi Rekursi
Fungsi rekursi adalah fungsi yang memanggil dirinya sendiri dan dapat dilakukan secara
langsung atau tidak langsung. Secara langsung berarti bahwa fungsi tersebut dipanggil
dari dalam fungsi itu sendiri. Secara tidak langsung berarti bahwa fungsi akan memanggil
fungsi yang lain terlebih dahulu yang kemudian akan memanggil fungsi tersebut. Sebagai
gambaran, perhatikan gambar berikut :
int fungsiKu()
{
...
a = fungsiKu();
...
}
int fungsiKu()
{
...
a = fungsiDua();
...
}
Int fungsiDua()
{
...
b = fungsiKu();
...
}
int main ()
{
int x;
cout << "Mencari faktorial dari x! \n";
cout << "Masukkan nilai x (bulat positif) : ";
cin >> x;
cout << "Faktorial dari " <<x<< " = " <<faktorial(x) <<endl;
return 0;
}
Fungsi Penggunaan
strncmp(s1, s2, n) Membandingkan sebanyak n karakter dari s1 dengan s2 karakter demi
karakter, dan mengembalikan nilai perbedaannya. Jika s1 dan s2 sama
maka nilai yang dikembalikan adalah 0, jika tidak maka nilai positif atau
negatif yang akan dikembalikan.
strlen(s1) Menghitung panjang s1
strlwr(s1) Mengubah s1 menjadi huruf kecil (lowercase)
strtod(s1) Mengubah nilai numeric s1 ke dalam tipe integer.
strtol(s1) Mengubah nilai numeric s1 ke dalam tipe long.
strupr(s1) Mengubah s1 menjadi huruf besar (uppercase)
c. Fungsi Umum
Masih banyak fungsi-fungsi lain yang terdapat di dalam standard library
(stdlib.h). Beberapa diantaranya yang tidak termasuk dalam kategori fungsi
matematika dan fungsi string yang sering digunakan terdapat dalam tabel berikut ini :
Tabel 6.3 Fungsi-Fungsi Umum
Fungsi Penggunaan
system(s1) Membuat s1 menjadi sebuah perintah ke system operasi atau di
command shell.
malloc(n) Mengalokasikan n byte memori dan mengembalikan pointer ke alamat
tersebut. Jika gagal akan mengembalikan NULL.
free(ptr) Membebaskan memori yang telah dialokasikan lewat malloc() atau
realloc().
realloc(ptr, n) Mengalokasikan n byte memori secara dinamis, yang sebelumnya
sudah dialokasikan dengan malloc().
abs(n) Mencari absolute tipe integer dari n, contoh abs(-1) = 1, abs(0)
= 0, abs(1) = 1.
asctime(time) Mengubah format internal waktu time menjadi waktu yang dapat
dicetak.
bsearch() Melakukan binary search di struktur data yang sudah terurut.
qsort() Mengurutkan data.
isalpha(char) Mengembalikan nilai benar (true) jika karakter char merupakan huruf
(alphabetic).
isdigit(char) Mengembalikan nilai benar (true) jika karakter char merupakan angka
(numeric digit).
islower(char) Mengembalikan nilai benar (true) jika karakter char merupakan huruf
kecil (lowercase alphabetic).
isupper(char) Mengembalikan nilai benar (true) jika karakter char merupakan huruf
besar(uppercase alphabetic).
div(a,b) Digunakan untuk menghitung hasil pembagian dan sisa pembagian.
Bentuk umum : div_t div(int x, int y)
Strukturnya :
typedef struct
{ int qout; // hasil pembagian
int rem // sisa pembagian
} div_t;
D. LANGKAH PRAKTIKUM
1. Kerjakanlah semua modul yang ada dan simpan untuk setiap modulnya.
2. Buatlah program dibawah ini yang mengimplementasikan fungsi matematika.
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int x, y;
float z;
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
float sudut;
#include <iostream>
#include <math.h>
#include <stdlib.h>
using namespace std;
int main()
{
char x[4] = "100", y[5] ="10.3";
int a;
float b;
a = atoi(x); b = atof(y);
cout << "Semula A = "<< x <<" B = " << y << endl;;
cout << "Setelah dikonversi A = "<< a << "B = " << b << endl;
return 0;
}
Modul 6.11 Fungsi atof dan atoi
3. Buatlah program dibawah ini yang mengimplementasikan fungsi karakter dan string.
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
char nama[25];
strcpy(nama, "I Gusti Ngurah Alit Widana Putra");
cout << "Nama : "<< nama;
cout << "\nBanyaknya karakter nama Anda : " << strlen(nama);
return 0;
}
Modul 6.12 Fungsi strcpy dan strlen
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
char satu[80] = " Teknik Informatika ";
char dua[40] = "Universitas Pembangunan Nasional ";
strcat(satu, dua);
cout << "Hasil penggabungannya : \n" << satu;
cout << "\n\nJika diubah menjadi huruf kapital semua :\n";
cout << strupr(satu);
cout << "\n\nJika diubah menjadi huruf kecil semua :\n";
cout << strlwr(satu);
return 0;
}
Modul 6.13 Fungsi strcat, strupr, dan strlwr
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
char string1[5], string2[5];
int hasil;
#include <iostream>
#include <ctype.h>
using namespace std;
int main()
{
char karakter;
#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
int x, y;
div_t hasil;
cout << "Menghitung sisa dan hasil pembagian x dengan y\n";
cout << "x = "; cin >> x;
cout << "y = "; cin >> y;
hasil = div(x,y);
cout <<"\n\n"<<x<<" div "<<y<<" = "<<[Link]<<" sisa "<<[Link];
}
Modul 6.16 Fungsi div
E. TUGAS PRAKTIKUM
1. Buatlah program dengan menggunakan fungsi (dimana fungsinya Anda buat sendiri) untuk
menghitung :
a. volume tabung
b. volume kerucut
c. keliling dan luas segitiga
d. keliling dan luas persegi panjang
2. Buatlah program untuk menentukan manakah bilangan terbesar dan terkecil dari 3 buah
bilangan yang di-input melalui keyboard
A. TUJUAN
• Mendefinisikan dan menggunakan tipe data array
B. ALOKASI WAKTU
• 240 menit (2 x Pertemuan)
C. DASAR TEORI
Array adalah sebuah kumpulan data yang terdiri dari tipe data yang sama. Setiap nilai yang
berada di dalam array disebut dengan element, apapun tipe datanya. Nomor-nomor data yang
menunjuk pada element array disebut dengan subscript atau offset.
Array dapat digambarkan seperti sebuah rak dengan ukuran yang sama dan untuk
menyimpan barang-barang yang sejenis (bertipe sama). Misalkan rak untuk menyimpan jenis-
jenis sepatu. Perhatikan gambar dibawah ini :
[0] Boot
[1] Lari
4 Element
[2] Santai
[3] Resmi
Subscript (offset)
Dibawah ini merupakan source code program menginput nilai(bilangan) ke dalam array
dimensi dua dan menampilkannya :
#include <iostream>
using namespace std;
int main()
{
int baris, kolom, matriks[3][4];
Dibawah ini merupakan source code program penjumlahan matriks dua dimensi :
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
int A[3][4], B[3][4], X[3][4], i, j;
3. Array Multi-Dimensi
• Array multi-dimensi merupakan array yang mempunyai ukuran lebih dari dua. Bentuk
pendeklarasian array sama saja dengan array dimensi satu maupun array dimensi dua.
• Bentuk umumnya yaitu :
tipe_array nama_array[ukuran1][ukuran2]…[ukuranN];
Contoh :
float X[2][4][3];
{ 1, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 1, 0, 0, 0, 0, 0, 0 },
{ 1, 1, 0, 0, 0, 0, 0, 0 },
{ 1, 1, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0 }}
};
/* Tampilkan Huruf */
for(i=0; i<3; i++)
{
for(j=0; j<8; j++)
{
for(k=0;k<8; k++)
if(data_huruf[i][j][k])
putchar('\xDB');
else
putchar(' '); /* spasi */
puts("");
}
puts("");
}
}
Modul 7.4 Array Multidimensi
4. Array char (String)
Array char adalah sebuah array yang terdiri dari rangkaian karakter saja dan sering
disebut dengan string. Didalam C++ string adalah array dari char yang berakhir dengan
null character. Kita dapat mendeklarasikan dan menginisialisasikan string dengan cara
yang sama seperti kita mendeklarasikan array yang lain.
Bentuk umumnya : char nama_array[jml_element].
Dibawah ini merupakan source code penggunaan array char (string) :
#include <iostream>
using namespace std;
int main()
{
char buffer[80];
cout << "Masukkan sembarang string : ";
cin >> buffer;
cout << endl;
cout << "Inilah isi buffer array : " << buffer;
cout << endl;
return 0;
}
Modul 7.5 Penggunaan array char
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
char jurusan[25], jenjang[10], nim[10], nama[20];
switch(nim[2])
{
case '1' : strcpy(jurusan, "Teknik Informatika"); break;
case '2' : strcpy(jurusan, "Teknik Industri"); break;
case '3' : strcpy(jurusan, "Teknik Kimia"); break;
case '4' : strcpy(jurusan, "FISIP"); break;
default: cout << "Anda salah masukkan NIM. Coba periksa lagi !";
}
D. LANGKAH PRAKTIKUM
1. Kerjakanlah semua modul yang ada dan simpan untuk setiap modulnya.
2. Jika pada Modul 7.5 antara input dan output tidak cocok, cobalah Anda perbaiki agar
cocok.
3. Buat program yang dapat membuat matriks sesuai dengan jumlah kolom dan jumlah baris
yang kita inginkan.
Contoh output :
Masukkan
Jumlah Baris Matrik : 2
Jumlah Kolom Matrik : 3
Tampilan Matriks
| 1 | 2 | 3 |
| 4 | 5 | 6 |
E. TUGAS PRAKTIKUM
1. Modifikasi Langkah Praktikum no.3, sehingga dapat membuat dua matriks dan dapat
menampilkan perkalian dari matriks yang telah dibuat.
Contoh output :
Masukkan
Jumlah Baris Matriks A dan B : 2
Jumlah Kolom Matriks A : 2
Jumlah Kolom Matriks B : 3
Tampilan Matriks
A : | 1 | 2 | B : | 1 | 2 | 3 |
| 4 | 5 | | 4 | 5 | 6 |
Hasil Perkalian Matriks A dan B
| 9 | 12 | 15 |
| 24 | 33 | 42 |