0% menganggap dokumen ini bermanfaat (0 suara)
22 tayangan68 halaman

Praktikum Algoritma Pemrograman C++

Modul ini memperkenalkan bahasa pemrograman C++, meliputi struktur program C++ dan langkah pengembangan program. C++ merupakan bahasa pemrograman berorientasi objek yang diciptakan oleh Bjarne Stroustrup pada tahun 1980-an untuk memperluas fitur pemrograman berorientasi objek pada bahasa C.

Diunggah oleh

Pramudita Azis
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
22 tayangan68 halaman

Praktikum Algoritma Pemrograman C++

Modul ini memperkenalkan bahasa pemrograman C++, meliputi struktur program C++ dan langkah pengembangan program. C++ merupakan bahasa pemrograman berorientasi objek yang diciptakan oleh Bjarne Stroustrup pada tahun 1980-an untuk memperluas fitur pemrograman berorientasi objek pada bahasa C.

Diunggah oleh

Pramudita Azis
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

Modul Praktikum Algoritma dan Pemrograman 1

Halaman Sampul Depan

Modul Praktikum Algoritma dan Pemrograman 1 i


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

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.

STITEK Lebih Baik !!!

Bontang, Februari 2020

Tim Penyusun

ii Praktikum Algoritma dan Pemrograman 1


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

Daftar Isi

Halaman Sampul Depan ..............................................................................................................i

Kata Pengantar ........................................................................................................................... ii

Daftar Isi ..................................................................................................................................... iii

Modul 1. Pengenalan IDE Geany .............................................................................................. 1

Modul 2. Pengantar Pemrograman Bahasa C++ ...................................................................... 4

Modul 3. Tipe Data, Operator dan Ekspresi ............................................................................ 12

Modul 4. Input dan Output ....................................................................................................... 19

Modul 5. Statement Pengendalian .......................................................................................... 26

Modul 6. Statement Perulangan .............................................................................................. 34

Modul 7. Fungsi........................................................................................................................ 45

Modul 8. Array dan String ........................................................................................................ 58

Modul Praktikum Algoritma dan Pemrograman 1 iii


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

SEKOLAH TINGGI TEKNOLOGI BONTANG


PROGRAM STUDI TEKNIK INFORMATIKA
Praktikum Algoritma dan Pemrograman 1
Modul 1 Pengenalan IDE Geany

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

Modul Praktikum Algoritma dan Pemrograman 1 1


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

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

2. KOMPONEN IDE 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.

2 Praktikum Algoritma dan Pemrograman 1


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

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.

Modul Praktikum Algoritma dan Pemrograman 1 3


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

SEKOLAH TINGGI TEKNOLOGI BONTANG


PROGRAM STUDI TEKNIK INFORMATIKA
Praktikum Algoritma dan Pemrograman 1
Modul 2 Pengantar Pemrograman Bahasa C++

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.

Bahasa C++ memperluas kemampuan bahasa C dalam beberapa hal yaitu :


- Memberikan dukungan untuk menciptakan dan memanfaatkan abstraksi data.

4 Praktikum Algoritma dan Pemrograman 1


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

- Memberikan dukungan untuk pemrograman berorientasi objek.


- Memperbaiki beberapa kemampuan yang sudah ada pada bahasa C.
Agar suatu program dalam bahasa pemrograman dapat dimengerti oleh computer,
program diterjemahkan dulu ke dalam kode mesin oleh interpreter atau compiler.
Kebanyakan versi C++ yang beredar menggunakan penterjemah berupa compiler. Pada
praktikum ini versi C++ yang digunakan adalah GCC/G++ yang sudah terinstall secara
otomatis saat kita meng-install Linux.

EDITOR EDITOR

FILE INCLUDE(FILE JUDUL) FILE PROGRAM SUMBER


.H ATAU .HPP .C ATAU .CPP

COMPILER C++

FILE PUSTAKA(.LIB) FILE OBJEK (.OBJ) FILE OBJEK LAIN

LINKER

FILE EXECUTABLE(.EXE)

Gambar 1.0. Proses meng-kompilasi program

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)

Modul Praktikum Algoritma dan Pemrograman 1 5


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

ALPHA atau untuk sistem-sistem yang lain. Ini berarti kita belajar satu compiler saja tetapi
dapat digunakan di banyak platform.

6 Praktikum Algoritma dan Pemrograman 1


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

3. Struktur Bahasa C++


Bentuk program C mirip dengan kebanyakan program bahasa tingkat tinggi lainnya.
Bentuk programnya adalah :
Judul Program
Daftar Header File
Deklarasi
Deskripsi
• Judul Program
Judul program sifatnya sebagai dokumentasi saja, tidak signifikan terhadap proses
program. Ditulis dalam bentuk baris komentar.
Contoh :
//Program pertamaku//
• Daftar Header File
C menyediakan sejumlah file judul (header file) yaitu file yang umumnya berisi prototipe
fungsi, definisi makro, variabel dan definisi tipe. File ini mempunyai ciri yaitu namanya
diakhiri dengan extension .h.
Contoh :
#include <stdio.h>
Keterangan : menyatakan bahwa agar membaca file bernama stdio.h saat pelaksanaan
kompilasi.
• Deklarasi
Deklarasi adalah bagian untuk mendefinisikan semua nama yang dipakai dalam program.
Nama tersebut dapat berupa nama tetapan (konstanta), nama variabel, nama tipe, nama
prosedur, nama fungsi.
• Deskripsi
Bagian inti dari suatu program yang berisi uraian langkah-langkah penyelesaian masalah.
Program C pada hakekatnya tersusun atas sejumlah blok fungsi. Sebuah program minimal
mengandung sebuah fungsi. Setiap fungsi terdiri dari satu atau beberapa pernyataan, yang
secara keseluruhan dimaksudkan untuk melaksanakan tugas khusus.

4. Dasar Pemrograman Bahasa C++


Suatu program C++ ditulis dari beberapa elemen yaitu :
a. Statement
Statement berfungsi untuk mengontrol serangkaian eksekusi, mengevaluasi ekspresi
atau malah tidak mengerjakan apapun (disebut dengan null statement). Semua
statement di C++ berakhir dengan tanda titik koma (;). Demikian juga yang disebut
dengan null statement, yang hanya terdiri dari tanda titik koma (;) saja dan tidak ada
yang lainnya.
Contoh statement : x = a + b;

Modul Praktikum Algoritma dan Pemrograman 1 7


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

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

Fungsi/function biasanya digunakan jika dipanggil oleh instruksi-instruksi dalam


sebuah program. “main()” merupakan sebuah fungsi yang tidak biasa, karena
“main()” hanya dipanggil oleh sistem operasi. Sebuah fungsi harus mengembalikan
sebuah nilai yang berisi atau nilai kosong (tidak mengembalikan apapun) yang disebut
dengan void.

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

8 Praktikum Algoritma dan Pemrograman 1


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

/*
Program untuk menghitung luas lingkaran.

User hanya meng-inputkan jari-jari lingkaran Block Programmer/


komentar
*/

float ambilData(void);

float luasLing(float jari2);

void tampilkan(float area); Mendefinisikan fungsi


(Prototype fungsi)
int main()
{
float jari2; //variable jari-jari lingkaran
float luas; //variable luas lingkaran
jari2 = ambilData(); Fungsi Utama/main()
luas = luasLing(jari2);
tampilkan(luas);
}

float ambilData(void) //ambil data dari user


{
//block statement untuk meng-inputkan jari-jari lingkaran

float luasLing(float jari2) //menghitung luas lingkaran


{ Fungsi-
//block statement untuk menghitung luas lingkaran fungsi
yang lain
}
void tampilkan(float luas) //menampilkan hasil di monitor
{
//block statement untuk menampilkan hasil di layar monitor
}

Pembuatan atau pengembangan program secara garis besar meliputi :


1. Menulis source code.
2. Mengkompilasi source code.
3. Me-link hasil kompilasi.
4. Men-test program.

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,

Modul Praktikum Algoritma dan Pemrograman 1 9


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

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

Gambar 1.1. Langkah-langkah pengembangan program

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.

10 Praktikum Algoritma dan Pemrograman 1


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

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.

Modul Praktikum Algoritma dan Pemrograman 1 11


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

SEKOLAH TINGGI TEKNOLOGI BONTANG


PROGRAM STUDI TEKNIK INFORMATIKA
Praktikum Algoritma dan Pemrograman 1
Modul 3 Tipe Data, Operator dan Ekspresi

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.

Tabel 2.1. Tipe data di dalam C++

Tipe Ukuran Nilai Keterangan


char 1 byte 256 nilai karakter ASCII karakter
int(16 bit) 2 byte -32,768 sampai 32767 bilangan bulat
long int 4 byte -2,147,438,648 sampai 2,147,438,647 bilangan bulat
float 4 byte 1.2e-38 s/d 3.4e+38 real presisi tunggal
double 8 byte -2.2e-308 sampai 1.8e+308 real presisi ganda
long double 10 byte 3.4E-4932 s/d 1.1E+4932
unsigned short int 2 byte 0 sampai 65,535 Bilangan bulat
short int 2 byte -32,768 sampai 32,767 Bilangan bulat
unsigned long int 4 byte 0 sampai 4,294,967,295 Bilangan bulat

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

12 Praktikum Algoritma dan Pemrograman 1


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

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

Alamat 100 101 102 103 104 105

Gambar 2.1. Skema Representasi Memori

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.

Di bawah ini merupakan contoh penamaan variable :

➢ Benar : NIM, nama_mhs, a, x, f3098, f4, nilai, budi dan sebagainya.


➢ Salah : %NIM, 80nama_mhs, rata-rata, nilai!, dan sebagainya.

Modul Praktikum Algoritma dan Pemrograman 1 13


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

Deklarasi variable

Selain di awal block, variable dapat dideklarasikan/didefinisikan di antara instruksi.


Bentuk umum pendeklarasian suatu variable adalah :
tipe_data<spasi>nama_variabel.

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 :

#define PHI 3.14


#define nim "123040206"
#define nama "I Gusti Ngurah AWP"

14 Praktikum Algoritma dan Pemrograman 1


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

Sebagai gambaran, dibawah ini merupakan source code program pemakaian


konstanta untuk menghitung luas lingkaran :
1. #include <iostream>
2.
3. #define PHI 3.14
4.
5. using std::cout;
6.
7. int main ()
8. {
9. float jejari, luas ;
10. jejari = 20;
11. luas = 0.5 * PHI * jejari * jejari;
12. cout << "Data lingkaran";
13. cout << "\nJari-jari : " << jejari;
14. cout << "\nLuas : " << luas;
15. return 0;
16. }
Modul 2.3. Implementasi konstanta
2. Operator
Operator Penugasan (Assignment operator)
Operator Penugasan dalam bahasa C++ berupa tanda sama dengan (“=”).
Contoh : nilai = 80; A = x * y;

Operator Aritmatika

Bahasa C++ menyediakan lima operator aritmatika, yaitu :

Tabel 2.2. Operator Matematika

Operator Arti
* Perkalian
/ Pembagian
+ Penjumlahan
- Pengurangan
% Sisa pembagian

Operator Hubungan (Perbandingan)


Operator Hubungan digunakan untuk membandingkan hubungan antara dua buah
operand. Bahasa C++ menyediakan 6 operator hubungan, yaitu :
Tabel 2.3. Operator Hubungan

Operator Arti Contoh


< Kurang dari x < y : Apakah x kurang dari y
<= Kurang dari sama dengan x <= y Apakah x kurang dari sama dengan y
> Lebih dari x > y Apakah x lebih dari y
>= Lebih dari sama dengan x >= y Apakah x lebih dari sama dengan y
== Sama dengan x == y Apakah x sama dengan y
!= Tidak sama dengan x != y Apakah x tidak sama dengan y

Modul Praktikum Algoritma dan Pemrograman 1 15


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

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 :

Tabel 2.5 Operator Bitwise


Operator Arti
<< Pergeseran bit ke kiri
>> Pergeseran bit ke kanan
& Bitwise AND
^ Bitwise XOR (Exclusive OR)
| Bitwise OR
~ Bitwise NOT

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

16 Praktikum Algoritma dan Pemrograman 1


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

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

Modul 2.4. Implementasi Penggunaan Operator Matematika

/* Perbedaan operator peningkatan ++ yang diletakkan di depan dan dibelakang


operand */

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

Modul 2.5. Implementasi Penggunaan Operator Unary


3. Ekspresi
Semua yang mengevaluasi atau menghasilkan suatu nilai disebut dengan ekspresi.
Sebuah ekspresi harus mengembalikan (menghasilkan) sebuah nilai. Maka ketika ada
statement : 3+2; akan mengembalikan (menghasilkan) sebuah nilai, yaitu 5; maka
statement tersebut merupakan sebuah ekspresi. Semua ekspresi merupakan statement.
Sebagai gambaran, dibawah ini merupakan source code program untuk mengevaluasi
ekspresi-ekspresi yang kompleks :
1. #include <iostream>

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

Modul Praktikum Algoritma dan Pemrograman 1 17


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

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

1. Buatlah program untuk menghitung volume silinder. (V = Luas alas x tinggi)


2. Pada langkah praktikum no.4, jika beda hasilnya, bagaimana agar hasilnya sama?
3. Jelaskan langkah-langkah praktikum Anda dengan menjawab semua pertanyaan yang
menyertai.

18 Praktikum Algoritma dan Pemrograman 1


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

SEKOLAH TINGGI TEKNOLOGI BONTANG


PROGRAM STUDI TEKNIK INFORMATIKA
Praktikum Algoritma dan Pemrograman 1
Modul 4 Input dan Output

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.

Modul Praktikum Algoritma dan Pemrograman 1 19


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

b. Jika menggunakan Library “iostream”


Fungsi cin >> var
Fungsi cin >> digunakan untuk menginput data berupa data numerik, karakter dan
string. Var dapat lebih dari satu variable ( cin >> var1 >> var2) dan juga bisa
berupa karakter.
Fungsi [Link](var, sizeof(var))
Penggunaan format ini untuk membaca/menginput string lebih dari satu kata, tetapi
akan mengakibatkan kesalahan jika dalam satu program menggunakan perintah ini
lebih dari satu kali. Untuk menangani masalah ini lebih baik menggunakan format
[Link]().
Fungsi [Link](var, sizeof(var))
Penggunaan format ini untuk mengatasi kelemahan dari fungsi [Link]().
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
layer. Sedangkan pada getche() karakter yang dimasukkan akan ditampilkan pada
layar.
2. OUTPUT
a. Jika menggunakan Library ”stdio.h”
Fungsi printf()
Fungsi printf() digunakan untuk menampilkan semua jenis data (numeric dan
karakter). Untuk mengatur format tampilan bilangan pecahan (float), maka bentuk
penulisannya adalah : printf(“%[Link]”, argument);
Dimana “m” menyatakan panjang digit di depan koma (.) dan “n” menyatakan panjang
digit di belakang koma (.) serta argument menyatakan nilai atau variable yang akan
ditampilkan.
Fungsi puts()
Fungsi puts() digunakan untuk menampilkan data string dan secara otomatis
akan diakhiri dengan perpindahan baris.
Fungsi putchar()
Fungsi putchar() digunakan untuk menampilkan sebuah karakter.
b. Jika menggunakan Library ”iostream”
Fungsi cout << var
Fungsi cout << digunakan untuk menampilkan semua jenis data (numeric dan
karakter) yang berupa nilai dalam variabel maupun berupa konstanta. Untuk mengatur
format tampilan bilangan pecahan (float), maka digunakan perintah

20 Praktikum Algoritma dan Pemrograman 1


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

setpresicion(n) dengan menambahkan library iomanip.h. Dimana n


menyatakan jumlah kepresisian.

Modul Praktikum Algoritma dan Pemrograman 1 21


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

Di bawah ini merupakan daftar manipulator dan fungsinya :

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 :

/* Contoh program untuk memasukkan tipe data karakter/string dengan


stdio.h */

#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

/* Contoh program untuk memasukkan tipe data karakter/string dengan


iostream */

#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

22 Praktikum Algoritma dan Pemrograman 1


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

/* Contoh Program memasukan data dengan beberapa tipe data */

#include <stdio.h>

int main()
{
int jumlah;
char huruf, nim[10];
float nilai;

printf("Masukkan sebuah karakter : ");


scanf("%c",&huruf);
printf("Masukkan sebuah bilangan bulat : ");
scanf("%d",&jumlah);
printf("Masukkan nim Anda : ");
scanf("%s",&nim);
printf("Masukkan sebuah bilangan pecahan : ");
scanf("%f",&nilai);
printf("\nNilai variabel yang Anda masukkan adalah : ");
printf("\njumlah = %d",jumlah);
printf("\nhuruf = %c",huruf);
printf("\nnim = %s",nim);
printf("\nnilai = %4.2f",nilai);
return 0;
}
Modul 3.3. Pemakaian Library stdio.h lebih lanjut

/* Contoh Program memasukan data dengan beberapa tipe data */

#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

Modul Praktikum Algoritma dan Pemrograman 1 23


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

/* Contoh Program untuk menampilkan data berupa bilangan pecahan */

#include <stdio.h>

int main()
{
float nilai;

puts("Masukkan nilai Anda : ");


scanf("%f", &nilai);
printf("Anda memperoleh nilai %5.2f \n", nilai);
printf("Apakah Anda telah puas mendapat nilai %6.4f ?", nilai);
return 0;
}
Modul 3.5. Pemakaian Library stdio.h dalam mengatur tampilan

/* Contoh Program untuk menampilkan data berupa bilangan pecahan */


#include <iostream>
#include <iomanip>

using std::cout;
using std::cin;

int main()
{
float nilai;

cout << "Masukkan nilai Anda : "; cin >> nilai;


cout << "Anda memperoleh nilai " << setprecision(5) << nilai;
cout << "\nApakah Anda telah puas mendapat nilai ";
cout << setprecision(7) << nilai << " ?";
return 0;
}
Modul 3.6. Pemakaian Library iostream dalam mengatur tampilan

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

Inilah data Anda :


Nama : outputnama
NIM : outputNIM
Plug : outputPlug

Dalam bentuk tabel :


====================================================
NIM | Nama | Plug
====================================================
outputnim | outputnama | outputplug
----------------------------------------------------

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;

Modul Praktikum Algoritma dan Pemrograman 1 25


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

Dengan C = derajat celcius.


SEKOLAH TINGGI TEKNOLOGI BONTANG
PROGRAM STUDI TEKNIK INFORMATIKA
Praktikum Algoritma dan Pemrograman 1
Modul 5 Statement Pengendalian

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

26 Praktikum Algoritma dan Pemrograman 1


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

Modul Praktikum Algoritma dan Pemrograman 1 27


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

/*--------------------------------------------------*/
/* 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;

if (total_pembelian >= 50000)


korting = 0.05 * total_pembelian;

cout << "Besarnya korting : " << korting;


return 0;
}
Modul 4.1. Perintah if dengan satu pernyataan

/*--------------------------------------------------*/
/* 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";

if (total_pembelian >= 100000)


{
korting = 0.05 * total_pembelian;
bonus = "Laptop br";
}

cout << "Besarnya korting : " << korting <<"\n";


cout << "Bonus : " << bonus << "\n";
return 0;}

Modul 4.2. Perintah if dengan lebih dari satu pernyataan


2. PERINTAH if - else
Perintah if - else mempunyai bentuk umum sebagai berikut :
if (kondisi)
pernyataan ke-1;
else
pernyataan ke-2;

28 Praktikum Algoritma dan Pemrograman 1


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

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;

cout << "Masukan nilai yang didapat : ";


cin >> nilai;

if (nilai > 65)


cout << "\n LULUS !!!\n";
else
cout << "\n TIDAK LULUS !!!\n";

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

Modul Praktikum Algoritma dan Pemrograman 1 29


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

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.

30 Praktikum Algoritma dan Pemrograman 1


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

Perintah break menyebabkan eksekusi diarahkan ke akhir switch kalau nilai


konstanta ke-1 tidak sama dengan nilai ekspresi dan kemudian baru diteruskan pengujian
dengan konstanta ke-2 dan seterusnya. Jika sampai pada pengujian akhir tidak ada yang
cocok maka default akan berjalan.
Jika pernyataan break tidak diikutsertakan pada setiap case maka walaupun
konstantanya cocok dengan ekspresi, maka setelah pernyataan pada case tersebut
dikerjakan akan dilanjutkan ke case berikutnya sampai ditemui pernyataan break pada
akhir switch.
Sebagai gambaran, dibawah ini merupakan source code program penggunaan perintah
switch :

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

Modul 4.5. Penggunaan perintah SWITCH

Modul Praktikum Algoritma dan Pemrograman 1 31


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

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;

cout << "----------------\n";


cout << "MENU KALKULATOR \n";
cout << "----------------\n";
cout << "1 = PENJUMLAHAN\n";
cout << "2 = PENGURANGAN\n";
cout << "3 = KELUAR\n";
cout << "----------------\n";
cout << "Pilihan : ";
cin >> pilih;

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 :

32 Praktikum Algoritma dan Pemrograman 1


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

int nilai; char skor;

cout<<"Masukkan nilai= ";


cin>>"%d", &nilai;
if((nilai<=100)&&(nilai>=85))
skor='A';
else if((nilai>=79)&&(nilai<=84))
skor='B';
else if((nilai>=50)&&(nilai<=69))
skor='C';
else if((nilai>=30)&&(nilai<=49))
skor='D';
else skor='E';
cout<<"Nilai Huruf=%c\n";
cin>> skor;

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 !

Modul Praktikum Algoritma dan Pemrograman 1 33


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

SEKOLAH TINGGI TEKNOLOGI BONTANG


PROGRAM STUDI TEKNIK INFORMATIKA
Praktikum Algoritma dan Pemrograman 1
Modul 6 Statement Perulangan

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 :

while (kondisi) Hanya jika “kondisi” bernilai benar


Maka
Statement didalam block looping
{ Dikerjakan terus

Statement ke-1;

..

Jika “kondisi” ...


salah

Statement ke-n;

//sisa program

//yang berlanjut

34 Praktikum Algoritma dan Pemrograman 1


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

Gambar 5.1 Cara kerja while


Statement-statement yang ada di dalam block looping while dapat dimungkinkan
untuk tidak pernah dikerjakan. Mengapa? Karena hal ini tergantung dari kondisi yang
diberikan kepada while. Jika kondisi yang diberikan ternya selalu bernilai salah, maka
seluruh statement-statement yang berada didalam block looping tidak akan pernah
dikerjakan. Dengan kata lain selalu dilewati. Sebagai gambaran dibawah ini merupakan
source code penggunaan while :

#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

2. LOOPING DENGAN do – while


Looping dengan do – while akan mengerjakan dulu semua statement-statement yang
ada di dalam block looping sebelum kondisinya diperiksa. Sehingga block looping pasti
akan dikerjakan setidaknya satu kali. Dengan kata lain statement dikerjakan dahulu, baru
kondisinya diperiksa. Syntax statement do – while adalah sebagai berikut :
do
{
...
Statement;
...
}

Modul Praktikum Algoritma dan Pemrograman 1 35


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

while(kondisi);

Sedangkan cara kerjanya adalah sebagai berikut :

Selalu mengeksekusi
satu kali sebelum
mulai looping.

do Hanya jika kondisi bernilai benar


Maka mengerjakan statement
Di badan looping
{

Statement ke-1;

..

...

Statement ke-n;

while(kondisi)
Jika kondisi bernilai salah
//sisa program

//yang berlanjut

Gambar 5.2 Cara kerja do – while


Sebagai gambaran dibawah ini merupakan source code penggunaan do – while :
#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;

do
{
cout << "Mencetak : " << hitung << endl;
hitung--;
}
while(hitung > 0);

cout << endl;


if(hit <= 0)
{
cout << "Tidak ada pengulangan... ";
cout << endl;
}
else
{
cout << "Selesai mengulang... " << endl;
cout << "Perhitungan terakhir : " << hitung;
cout << endl;
}
return 0;

36 Praktikum Algoritma dan Pemrograman 1


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

}
Modul 5.2 Penggunaan do – while

Modul Praktikum Algoritma dan Pemrograman 1 37


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

3. LOOPING DENGAN for


Looping dengan for mengkombinasikan tiga langkah ke dalam satu statement. Ketiga
langkah tersebut adalah inisialisasi (awalan), pengujian kondisi dan aksi yang dilakukan;
yang dapat berupa penambahan atau pengurangan suatu variable. Syntax atau bentuk
statement for adalah sebagai berikut :
for(inisialisasi; pengujian; aksi)
{
...
statement;
...
}

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;

for(hitung=hit; hitung>0; hitung--)


{
cout << "Mencetak : " << hitung << endl;
}
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.3 Penggunaan for
38 Praktikum Algoritma dan Pemrograman 1
Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

4. LOOPING BERSARANG (Nested Loop)


Looping bersarang (Nested Loop) berarti bahwa ada looping lain di dalam suatu
looping. Dengan kata lain ada looping di dalam looping. Untuk memperjelas maksud di atas
marilah kita perhatikan gambar berikut ini :

for(luar=1; luar<=10; luar++)


{
for(dalam=1; dalam<=10; dalam++)
looping luar
looping {
lebih lambat
dalam lebih //badan looping
dari looping
cepat dari
dalam }
looping luar
}

Gambar 5.3a Nested Looping dengan satu looping dalam

for(luar=1; luar<=10; luar++)


{
for(dalam=1; dalam<=10; dalam++)
Looping {
dalam //badan looping pertama
pertama
looping luar }
lebih lambat
dari looping
dalam for(dalam2=5; dalam2<=20; dalam2++)
Looping {
dalam //badan looping kedua
kedua
}
}

Gambar 5.3b Nested Looping dengan dua looping dalam


Sebagai gambaran di bawah ini merupakan source code penggunaan nested loop :
#include <iostream>
#include <iomanip>
#define MAKS 8
using namespace std;
int main ()
{
int baris, kolom, hasil_kali;
for (baris = 1; baris <= MAKS; baris++)
{
for (kolom = 1; kolom<=MAKS; kolom++)
{
hasil_kali = baris * kolom;
cout << setw(3) << hasil_kali;
}
cout << endl;
}
return 0;
}

Modul Praktikum Algoritma dan Pemrograman 1 39


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

Modul 5.4 Penggunaan nested loop


5. PERNYATAAN break
Pernyataan ini berfungsi untuk keluar dari loop for, do-while dan while. Pada
struktur switch pernyataan ini berfungsi untuk keluar dari struktur switch. Jika
pernyataan break dijalankan maka eksekusi akan dilanjutkan ke pernyataan yang terletak
sesudah akhir tubuh loop for. Untuk lebih jelasnya marilah kita lihat gambar dibawah ini :
while (kondisi)

Statement ke-1;

...

break;

...

Statement ke-n;

//sisa program

//yang berlanjut

Gambar 5.4 Cara kerja break


6. PERNYATAAN continue
Pernyataan continue dalam loop akan menyebabkan kendali kembali ke awal proses
perulangan. Pada do-while dan while, pernyataan continue menyebabkan eksekusi
menuju ke kondisi pengujian pengulangan. Pada loop for pernyataan continue
menyebabkan bagian penaik variabel pengendali loop dikerjakan (kontrol pada struktur
for) dan kondisi untuk keluar dari loop for (syarat pada struktur for) diuji kembali.
Untuk lebih jelasnya marilah kita lihat gambar di bawah ini :

40 Praktikum Algoritma dan Pemrograman 1


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

while (kondisi)

Statement ke-1;

...

continue;

...

Statement ke-n;

//sisa program

//yang berlanjut

Gambar 5.5 Cara kerja continue


Sebagai gambaran dibawah ini merupakan source code penggunaan continue dalam
looping :
#include <iostream>

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;

cout << "\nJumlah data :"; cin >> jum_data;

while (nomor <= jum_data)


{
cout << "\n Data ke-" << nomor << " : ";
cin >> nilai;
if (nilai>100)
{
cout << "\nData terlalu besar";
continue;
}
total_nilai=total_nilai + nilai;
nomor++;
}
rata_rata =total_nilai/jum_data;
cout << "\nJumlah data = " << jum_data;
cout << "\nJumlah nilai = " << total_nilai;
cout << "\nRata-rata = " << rata_rata;
return 0;
}

Modul 5.5 Penggunaan continue

Modul Praktikum Algoritma dan Pemrograman 1 41


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

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

Gambar 5.6 Penggunaan goto

#include <iostream>
#include <iomanip>

using std::cin;
using std::cout;
using std::endl;

int main ()
{
int i,n;
float x,sx,rx;

cout << "Jumlah data :"; cin >> n;


cout << "\n==============================\n";
cout << "no data \n";
cout << "==============================\n";
sx=0;
for (i=1;i<=n; i++)
{
cout << i;
cout << setw(45) << "Input data : ";cin >> x;
cout << setw(23);
if (x<0)
{
cout << "\n";
goto selesai;

42 Praktikum Algoritma dan Pemrograman 1


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

}
cout << x << endl;
sx+=x;
}

selesai:

cout << "==============================\n";


cout << "Total data " << sx << "\n";
cout << "==============================\n";
rx= sx /(i-1);
cout << "Rata-rata " << rx << "\n";
cout << "==============================\n";
cout << " ";

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:

cout << "Menu Hitung\n";


cout << "1 = Luas Segitiga \n 2 = Keliling Segitiga \n 3 = Selesai";
cout << "\nPilihan :"; cin >> pilih;

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 Praktikum Algoritma dan Pemrograman 1 43


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

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

44 Praktikum Algoritma dan Pemrograman 1


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

SEKOLAH TINGGI TEKNOLOGI BONTANG


PROGRAM STUDI TEKNIK INFORMATIKA
Praktikum Algoritma dan Pemrograman 1
Modul 7 Fungsi

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 :

Tipe fungsi nama_fungsi (daftar parameter)


deklarasi paramater
{
tubuh fungsi
}

Hal-hal yang perlu diperhatikan dalam pemakaian fungsi :


• Jika tipe fungsi tidak disebutkan, maka akan dianggap sebagai fungsi dengan nilai
keluaran bertipe integer.
• Untuk fungsi yang memiliki keluaran bertipe bukan integer, maka diperlukan pendefinisian
penentu tipe fungsi.
• Untuk fungsi yang tidak mempunyai nilai keluaran maka dimasukkan ke dalam tipe void
Modul Praktikum Algoritma dan Pemrograman 1 45
Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

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

void info() /*definisi fungsi */


{
int i;
for(i=0; i<5; i++)
cout << i << endl;
}
Modul 6.1 Fungsi dengan tipe void
2. Lingkup Variable Fungsi
Variable Lokal
Variable ini berada di dalam sebuah fungsi dan hanya digunakan di dalam fungsi tersebut.
Ketika fungsi selesai dan kembali ke fungsi utama, variable local sudah tidak dapat
digunakan lagi. Variable local didefinisikan sama dengan variable-variabel lain. Parameter
fungsi juga disebut variable local, karena juga dipakai ketika fungsi tersebut aktif
(berjalan). Sebagai gambaran dibawah ini merupakan source code program penggunaan
variable local :
#include <iostream>
using namespace std;
void fungsiKu(); //deklarasi fungsi

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;

46 Praktikum Algoritma dan Pemrograman 1


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

}
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 x = 5, y = 7; //deklarasi variable global

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.

Modul Praktikum Algoritma dan Pemrograman 1 47


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

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

float jumlah(float x, float y)


{
return(x+y);
}
Modul 6.5 Prototype fungsi
4. Pengiriman Parameter
Parameter formal adalah variabel yang ada pada daftar parameter dalam definisi
fungsi. Parameter aktual adalah parameter (tidak selanya menyatakan variabel) yang
dipakai dalam pemanggilan fungsi. Ada dua cara dalam pengiriman yaitu:

48 Praktikum Algoritma dan Pemrograman 1


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

1) Pemanggilan dengan nilai (call by value)

o Call by value akan menyalin nilai dari parameter aktual ke parameter


formal.
o Yang dikirimkan ke fungsi adalah nilai dari datanya, bukan alamat memori
letak dari datanya.
o Fungsi yang menerima kiriman nilai akan menyimpannya di alamat terpisah
dari nilai aslinya yang digunakan oleh bagian program yang memanggil
fungsi.
o Perubahan nilai di fungsi (parameter formal) tidak akan merubah nilai asli di
bagian program yang memanggilnya.
o Pengiriman parameter secara nilai adalah pengiriman searah, yaitu dari
bagian program yang memanggil fungsi ke fungsi yang dipanggil.
2) Pemanggilan dengan referensi

o Pemanggilan secara Referensi merupakan upaya untuk melewatkan alamat


dari suatu variabel ke dalam fungsi.
o Yang dikirimkan ke fungsi adalah alamat letak dari nilai datanya, bukan nilai
datanya.
o Fungsi yang menerima kiriman alamat ini makan menggunakan alamat yang
sama untuk mendapatkan nilai datanya.
o Perubahan nilai di fungsi akan merubah nilai asli di bagian program yang
memanggil fungsi.
o Pengiriman parameter secara referensi adalah pengiriman dua arah, yaitu
dari fungsi pemanggil ke fungsi yang dipanggil dan juga sebaliknya.

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;

cout << "Nilai sebelum pemanggilan fungsi\n";


cout << "a = " << a << " b = " << b << "\n\n";
tukar(a,b);
cout << "Nilai sesudah pemanggilan fungsi\n";
cout << "a = " << a << " b = " << b << "\n\n";
return 0;
}
void tukar (int x, int y)
{
int z; /* variabel sementara */
z = x;
x = y;

Modul Praktikum Algoritma dan Pemrograman 1 49


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

y = z;
cout << "Nilai diakhir fungsi tukar () \n";
cout << "x = " << x << " y = " << y << "\n\n";
}
Modul 6.6 Pemanggilan dengan nilai

50 Praktikum Algoritma dan Pemrograman 1


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

#include <iostream>
using namespace std;
void tukar(int *px, int *py);
int main ()
{
int a, b;
a = 50;
b = 60;

cout << "Nilai sebelum pemanggilan fungsi\n";


cout << "a = " << a << " b = " << b << "\n\n";
tukar(&a,&b); /* parameter alamat a dan alamat b */
cout << "Nilai sesudah pemanggilan fungsi\n";
cout << "a = " << a << " b = " << b << "\n\n";
return 0;
}
void tukar (int *px, int *py)
{
int z; /* variabel sementara */
z = *px;
*px = *py;
*py = z;
cout << "Nilai diakhir fungsi \n";
cout << "*px = " << *px << " *py = " << *py << "\n\n";
}
Modul 6.7 Pemanggilan dengan referensi

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();
...
}

Gambar 6.1a Rekursi Langsung

Modul Praktikum Algoritma dan Pemrograman 1 51


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

int fungsiKu()
{
...
a = fungsiDua();
...
}

Int fungsiDua()
{
...
b = fungsiKu();
...
}

Gambar 6.1b Rekursi Tak Langsung


Sebagai contoh, dibawah ini source code program yang akan menghitung factorial secara
rekursi :
#include <iostream>
using namespace std;
int faktorial (int);

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

int faktorial (int m)


{
if (m == 1)
return(1);
else
return(m * faktorial(m-1));
}
Modul 6.8 Hitung Faktorial
6. Fungsi-Fungsi Standard C++
Merupakan fungsi built-in yang sudah ada, yang disertakan bersama compiler, disebut
sebagai standard library. Dengan kata lain kita tidak harus membuat fungsi-fungsi tertentu
yang sudah disediakan oleh compiler C++.
Ada 3 kategori fungsi-fungsi standard C++, yaitu fungsi matematika, fungsi karakter dan
string, dan fungsi umum.
a. Fungsi Standard Matematika
Untuk mengaktifkan fungsi ini kita harus menambahkan header math.h di awal
program (dibaris include), dengan mengetikkan : #include <math.h>
Fungsi standard ini berfungsi untuk perhitungan matematika. Misalnya untuk
menghitung “akar pangkat dua” dari sebuah angka positif. Sebagian besar fungsi-
fungsi matematika ada di tabel dibawah ini :

52 Praktikum Algoritma dan Pemrograman 1


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

Tabel 6.1 Fungsi-Fungsi Matematika


Fungsi Penggunaan
ceil(nilai) Membulatkan ke atas nilai, misal ceil(3.3) = 4,
ceil(-3.3) = 3.
cos(nilai) Menghitung cosinus dari nilai, misal cos(0.0) = 1,
cos(3.1415926) = -1.
exp(nilai) Fungsi eksponensial dalam format , misal
exp(0.0) = 1, exp(1.0) = 2.718(e).
fabs(nilai) Mencari absolute tipe float dari nilai, misal fabs(1.0)=1,
fabs(0.0) = 0, fabs(-1.0) = -1.
floor(nilai) Membulatkan ke bawah nilai, contoh floor(3.3) = 3, floor(-
3.3) = -4. Bandingkan dengan fungsi ceil().
fmod(a,b) Menghitung sisa pembagian a/b sebagai tipe float.
log(nilai) Menghitung logaritma dari nilai berbasis e, contoh log(1.0) = 0.0,
log(2.718) = 1.0.
log10(nilai) Menghitung logaritma basis 10 dari nilai, contoh log10(0.0) = tidak
terdefinisikan, log10(1.0) = 0.0, log10(10.0) = 1,
log10(1000.0) = 3.
pow(a,b) Menghitung a pangkat b ( ), contoh pow(2.0, 3.0) = 8,
pow(3.0, 2.0) = 9.
sin(nilai) Menghitung sinus dari nilai, contoh sin(0.0) = 0,
sin(3.1415926/2.0) = 1.
sqrt(nilai) Menghitung akar pangkat dua dari nilai. Contoh sqrt(4.0) = 2,
sqrt(9.0) = 3.
tan(nilai) Menghitung tangen dari nilai, contoh tan(0.0) = 0,
tan(3.1415926/4.0) = 1.
acos, asin, atan Anti cosines, anti sinus, anti tangent.
acosh, asinh, atanh Hyperbolic cosines, hyperbolic sinus, hyperbolic tangent.
atof(nilai) mengkonversi nilai string menjadi bilangan bertipe double, contoh
atof("10.3") = 10.3.
atoi(nilai) mengkonversi nilai string menjadi bilangan bertipe integer, contoh
atoi("100") = 100.

b. Fungsi Karakter dan String


Untuk mengaktifkan fungsi ini kita harus menambahkan header string.h di awal
program (di baris include), dengan mengetikkan : #include <string.h>.
Fungsi-fungsi karakter dan string yang sering digunakan terdapat dalam tabel di
bawah ini :
Tabel 6.2 Fungsi-Fungsi Karakter dan String
Fungsi Penggunaan
strcpy(s1, s2) Menyalin s2 ke s1 secara karakter demi karakter sampai null terminator
tersalin.
strncpy(s1, s2, n) Menyalin s2 ke s1 secara karakter demi karakter sampai null terminator
tersalin atau sebanyak n karakter yang disalin.
strcat(s1, s2) Menyambung s2 di akhir s1.
strncat(s1, s2, n) Menyambung sebanyak n karakter dari s2 di akhir s1.
strcmp(s1, s2) Membandingkan karakter-karakter s1 dengan s2, 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.

Modul Praktikum Algoritma dan Pemrograman 1 53


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

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;

54 Praktikum Algoritma dan Pemrograman 1


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

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;

cout << "Menghitung x pangkat y\n";


cout << "x = "; cin >> x;
cout << "y = "; cin >> y;
cout << x <<" dipangkatkan dengan "<< y <<" adalah "<< pow(x,y);

cout << "\nMenghitung akar suatu bilangan z\n";


cout << "z = "; cin >> z;
cout << "Akar dari " << z << " adalah " << sqrt(z);
return 0;
}
Modul 6.9 Fungsi sqrt() dan pow()

#include <iostream>
#include <math.h>
using namespace std;
int main()
{
float sudut;

cout << "Menghitung nilai sinus, cosinus dan tangens\n";


cout << "\nMasukkan sudut : "; cin >> sudut;
cout << "\nNilai sinus "<<sudut<<" derajat adalah "<<sin(sudut);
cout << "\nNilai cosinus"<<sudut<<" derajat adalah "<<cos(sudut);
cout << "\nNilai tangens "<<sudut<<" derajat adalah "<<tan(sudut);
return 0;
}
Modul 6.10 Fungsi sin, cos, tan

#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

Modul Praktikum Algoritma dan Pemrograman 1 55


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

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;

cout << "Masukkan string 1 : "; cin >> string1;


cout << "Masukkan string 2 : "; cin >> string2;
hasil = strcmp(string1, string2);
if(hasil > 0)
cout << string1 << " > " << string2;
else
if(hasil == 0)
cout << string1 << " = " << string2;
else
cout << string1 << " < " << string2;
}
Modul 6.14 Fungsi strcmp
4. Buatlah program dibawah ini yang mengimplementasikan fungsi umum.

#include <iostream>
#include <ctype.h>
using namespace std;
int main()
{
char karakter;

cout << "Masukkan sebuah karakter : ";


cin >> karakter;

56 Praktikum Algoritma dan Pemrograman 1


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

if(isupper(karakter)) //periksa apakah "karakter" adalah huruf kapital


{
cout << " adalah huruf besar";
cout << "\nHuruf kecilnya adalah : " << tolower(karakter);
}
else
if(islower(karakter)) //periksa apakah "karakter" adalah huruf kecil
{
cout << " adalah huruf kecil";
cout << "\nHuruf besarnya adalah : " << toupper(karakter);
}
else
if(isdigit(karakter)) //periksa apakah "karakter" adalah digit
cout << " adalah karakter digit";
else
cout << " bukan huruf besar, huruf kecil atau digit";
}
Modul 6.15 Fungsi islower, isupper, dan isdigit

#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

Modul Praktikum Algoritma dan Pemrograman 1 57


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

SEKOLAH TINGGI TEKNOLOGI BONTANG


PROGRAM STUDI TEKNIK INFORMATIKA
Praktikum Algoritma dan Pemrograman 1
Modul 8 Array dan String

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 :

Sepatu Nama Rak

[0] Boot

[1] Lari
4 Element
[2] Santai

[3] Resmi

Subscript (offset)

Gambar 7.1 Rak Penyimpanan Jenis Sepatu


Dilihat dari dimensinya array dapat dibagi menjadi Array dimensi satu, array dimensi dua dan
array multi-dimensi.
1. Array Satu-Dimensi

• Setiap elemen array dapat diakses melalui indeks.


• Indeks array secara default dimulai dari 0.
• Bentuk umum : tipe_data nama_array[jumlah_element];
Nama array dibuat seperti kita membuat nama variable, tetapi tidak boleh sama dengan
nama variable atau array yang lain di dalam wilayah jangkauannya. Sebagai gambaran
Anda bisa melihat lagi Gambar 7.1 tentang array satu-dimensi.

58 Praktikum Algoritma dan Pemrograman 1


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

Dibawah ini merupakan source code penggunaan array satu-dimensi :


#include <iostream>
using namespace std;
int main()
{
int index, nilai[10],no;

/* input nilai mahasiswa */


cout << "Input nilai 10 mahasiswa : \n";
for(index=0; index < 10; index++)
{
no = index+1;
cout << "Mahasiswa "<< no << " : ";
cin >> nilai[index];
}

/* tampilkan nilai mahasiswa */


cout << "Nilai mahasiswa yang telah diinput\n";
for(index=0; index < 10; index++)
{
cout << nilai[index] << " ";
}
}
Modul 7.1 Array satu-dimensi
2. Array Dua-Dimensi
• Array dua dimensi merupakan array yang terdiri dari m buah baris dan n buah kolom.
• Bentuknya dapat berupa matriks atau tabel.
• Deklarasi array : tipe_data nama_array[baris][kolom];
Contoh : int X[3][4];

X[0][0] X[0][1] X[0][2] X[0][3]


X[1][0] X[1][1] X[1][2] X[1][3]
X[2][0] X[2][1] X[2][2] X[2][3]

• Cara mengakses array :


Untuk mengakses array, misalnya kita ingin mengisi elemen array baris 2 kolom 3
dengan 10 maka perintahnya adalah sbb : X[1][2] = 10;
• Untuk mengisi dan menampilkan isi elemen array ada dua cara yaitu :
o Row Major Order (secara baris per baris)
o Column Major Order (secara kolom per kolom)

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

// Input elemen array secara Row Major Order


cout << "Input elemen Array : \n";
for(baris=0; baris<3; baris++)
{
for(kolom=0; kolom<4; kolom++)
{

Modul Praktikum Algoritma dan Pemrograman 1 59


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

cout << "matriks["<<baris+1<<"]["<<kolom+1<<"] = ";


cin >> matriks[baris][kolom];
}
cout << "\n";
}

// Tampilkan elemen Array secara Row Major Order


cout << "Isi array : \n";
for(baris=0; baris<3; baris++)
{
for(kolom=0; kolom<4; kolom++)
{
cout << " " << matriks[baris][kolom];
}
cout << "\n";
}
}
Modul 7.2 Array dua-dimensi

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;

/******* Masukkan matriks A *******/


for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
cout << "input data matrik A["<<i+1 <<"]["<<j+1<<"] : ";
fflush(stdin);cin >> A[i][j];
}
}
/******** Masukkan matriks B ********/
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
cout << "input data matrik B["<<i+1<<"]["<<j+1<<"] : ";
fflush(stdin);cin >> B[i][j];
}
}

/******** Proses penjumlahan matriks A dan B ********/


for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
X[i][j]=A[i][j]+B[i][j];
}
}

/******** Cetak isi matriks A ********/


cout << "\n matrik A\n";
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
cout << " " << A[i][j];
cout << "\n";
}
cout << "\n";

60 Praktikum Algoritma dan Pemrograman 1


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

/******** Cetak isi matriks B *******/


cout << "\n matrik B\n";
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
cout << " " << B[i][j];
cout << "\n";
}
cout << "\n";

/******** Cetak hasil penjumlahan matriks A dan B *******/


cout << "\n matrik penjumlahan A+B\n";
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
cout << " " << X[i][j];
cout << "\n";
}
cout << "\n\n";
}
Modul 7.3 Penjumlahan pada array Dua-Dimensi

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

X[1][0][0] X[0][0][0] X[0][0][1] X[0][0][2] X[1][0][1] X[1][0][2]


X[1][1][0] X[0][1][0] X[0][1][1] X[0][1][2] X[1][1][1] X[1][1][2]
X[1][2][0] X[0][2][0] X[0][2][1] X[0][2][2] X[1][2][1] X[1][2][2]
X[1][3][0] X[0][3][0] X[0][3][1] X[0][3][2] X[1][3][1] X[1][3][2]
Dibawah ini merupakan source code program penggunaan array multidimensi :
#include <stdio.h>
using namespace std;
int main()
{
int i, j, k;
static int data_huruf[3][8][8] =
{
{ { 0, 0, 0, 1, 1, 0, 0, 0 },
{ 0, 0, 1, 1, 1, 1, 0, 0 },
{ 0, 0, 1, 0, 0, 1, 0, 0 },
{ 0, 0, 1, 0, 0, 1, 0, 0 },
{ 0, 1, 1, 1, 1, 1, 1, 0 },
{ 0, 1, 1, 0, 0, 1, 1, 0 },
{ 1, 1, 0, 0, 0, 0, 1, 1 },
{ 0, 0, 0, 0, 0, 0, 0, 0 }},
{ { 1, 1, 0, 0, 0, 0, 1, 1 },
{ 1, 1, 0, 0, 0, 0, 1, 1 },
{ 1, 1, 0, 0, 0, 0, 1, 1 },
{ 1, 1, 0, 1, 1, 0, 1, 1 },
{ 1, 1, 0, 1, 1, 0, 1, 1 },
{ 1, 1, 1, 0, 0, 1, 1, 1 },
{ 1, 1, 0, 0, 0, 0, 1, 1 },
{ 0, 0, 0, 0, 0, 0, 0, 0 }},
{ { 1, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 1, 0, 0, 0, 0, 1, 1 },
{ 1, 1, 0, 0, 0, 0, 1, 1 },

Modul Praktikum Algoritma dan Pemrograman 1 61


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

{ 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];

cout << "Masukkan nama Anda : "; cin >> nama;


cout << "Masukkan NIM Anda : "; cin >> nim;

/***** cari jurusan *****/

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;

62 Praktikum Algoritma dan Pemrograman 1


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

default: cout << "Anda salah masukkan NIM. Coba periksa lagi !";
}

/***** cari jenjang *****/


if(nim[4] == '5')
{
strcpy(jenjang, "Strata-1");
}
else
{
if(nim[4] == '3')
{
strcpy(jenjang,"Diploma-3");
}
else
cout << "Anda salah memasukkan NIM. Coba periksa lagi !";
}

/***** tampilkan data mahasiswa *****/

cout << "\n << Data Mahasiswa Stitek Bontang >>";


cout << "\nNama : " << nama;
cout << "\nNIM : " << nim;
cout << "\nJurusan : " << jurusan;
cout << "\nJenjang : " << jenjang;
}
Modul 7.6 Contoh lain penggunaan array char

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

Masukkan nilai Matriks


[0][0] = 1
[0][1] = 2
[0][2] = 3
[1][0] = 4
[1][1] = 5
[1][2] = 6

Tampilan Matriks
| 1 | 2 | 3 |
| 4 | 5 | 6 |

Modul Praktikum Algoritma dan Pemrograman 1 63


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang
Modul Praktikum Algoritma dan Pemrograman 1

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

Masukkan nilai Matriks A


[0][0] = 1
[0][1] = 2
[1][0] = 4
[1][1] = 5

Masukkan nilai Matriks B


[0][0] = 1
[0][1] = 2
[0][2] = 3
[1][0] = 4
[1][1] = 5
[1][2] = 6

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 |

64 Praktikum Algoritma dan Pemrograman 1


Prodi Teknik Informatika Sekolah Tinggi Teknologi Bontang

Anda mungkin juga menyukai