Disusun Oleh:
LABORATORIUM KOMPUTER
PROGRAM STUDI ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS PAKUAN
BOGOR
1
MODUL PRAKTIKUM
Disusun Oleh:
i
DAFTAR ISI
ii
Operator Aritmetika ................................................................................................ 10
Operator Increment dan Decrement ........................................................................ 10
Operator Logika ...................................................................................................... 11
2.3. Program Pendukung ......................................................................................... 11
2.4. Metode Kerja .................................................................................................... 11
Tugas ........................................................................................................................... 12
MODUL IV PEMILIHAN.............................................................................................. 13
4.1. Tujuan .............................................................................................................. 13
4.2. Landasan Teoretis ............................................................................................ 13
Pernyataan if ........................................................................................................... 13
Pernyataan switch ................................................................................................... 14
4.3. Program Pendukung ......................................................................................... 14
4.4. Metode Kerja .................................................................................................... 14
4.5. Tugas ................................................................................................................ 16
MODUL V PERULANGAN (LOOPING) ..................................................................... 18
7.1. Tujuan .............................................................................................................. 18
7.2. Landasan Teoretis ............................................................................................ 18
7.3. Program Pendukung ......................................................................................... 19
7.4. Metode Kerja .................................................................................................... 19
7.5. Tugas ................................................................................................................ 21
MODUL VI SUB-ROUTINE DAN SCOPE ................................................................... 22
6.1. Tujuan .............................................................................................................. 22
6.2. Landasan Teoretis ............................................................................................ 22
Routine .................................................................................................................... 22
Sub-routine.............................................................................................................. 22
Parameter ................................................................................................................ 24
Pointer ..................................................................................................................... 24
Parameter dalam Pemanggilan Sub-Routine .......................................................... 24
Scope ....................................................................................................................... 24
Rekursif ................................................................................................................... 25
6.3. Program Pendukung ......................................................................................... 25
6.4. Metode Kerja .................................................................................................... 25
iii
6.5. Tugas ................................................................................................................ 28
MODUL VII ARRAY (LARIK) ...................................................................................... 29
7.1. Tujuan .............................................................................................................. 29
7.2. Landasan Teoretis ............................................................................................ 29
Array/Larik ............................................................................................................. 29
Dimensionalitas Array/Larik .................................................................................. 29
Sistem Indeks pada Array/Larik ............................................................................. 29
7.3. Program Pendukung ......................................................................................... 30
7.4. Metode Kerja .................................................................................................... 30
7.5. Tugas ................................................................................................................ 31
DAFTAR PUSTAKA ..................................................................................................... 32
iv
MODUL I
PENGENALAN ALGORITMA DAN BAHASA
PEMROGRAMAN
1.1. Tujuan
1. Mahasiswa dapat membuat algoritma dalam bentuk bahasa sehari-hari dan grafik
bagan alir.
2. Mahasiswa dapat menjalankan aplikasi bahasa pemrograman C++.
1. Uraian deskriptif.
2. Menggunakan uraian-uraian/simbol-simbol tertentu seperti diagram air
(flowchart).
3. Menggunakan kata-kata atau kalimat yang mirip dengan bahasa dengan
pemrograman yaitu pseudo-code.
Flowchart
Flowchart merupakan notasi simbolik suatu proses tertentu. Flowchart berisi
simbol-simbol yang merepresentasikan suatu aksi tertentu. Simbol-simbol flowchart yang
biasanya dipakai adalah standar yang dikeluarkan oleh ANSI dan ISO. Simbol-simbol
flowchart beserta artinya disajikan pada Tabel 1.1.
1
Tabel 1.1. Tabel Simbol Flowchart.
2
1.4. Metode Kerja
Kasus 1 – Membuat Flowchart Algoritma Mengirim Email
Buatlah algoritma untuk membuat mengirim email!
3
7. Apakah ada file lain yang akan dikirimkan?
a. Jika YA, maka pilih tombol Add Attachment kemudian pilih file.
b. Jika TIDAK, maka lanjut ke tahap selanjutnya.
8. Pilih tombol Send.
Berdasarkan deskripsi algoritma di atas, dapat kita buat sebuah flowchart sebagai berikut.
Mulai
Masukkan
username &
password
Pilih Compose
Masukkan
alamat,
judul & isi
Ada Ya
Tambah attachment
attachment?
Tidak
Pilih Send
Selesai
Gambar 1.2.
Flowchart Algoritma Mengirim Email.
4
Kasus 2 – Membuat Program Hello World C++
Hello World merupakan aplikasi paling sederhana yang dapat dibuat oleh seorang
programmer untuk memulai belajar menggunakan bahasa pemrograman baru.
int main()
{
// Menampilkan teks keluaran
cout << "Hello World!";
getch();
return 0;
}
6. Tekan F5 untuk memulai menjalankan program.
5
Jenis 1 – Block comment
/* Komentar Anda diletakkan di dalam ini
Bisa mengapit lebih dari satu baris */
1.5. Tugas
1. Buatlah algoritma dan flowchart untuk merebus mi instan.
2. Buatlah program sederhana untuk menampilkan pesan “SAYA MAHASISWA
SEMESTER I ILMU KOMPUTER UNIVERSITAS PAKUAN”.
6
MODUL II
TIPE DATA DASAR, VARIABEL, DAN KONSTANTA
2.1. Tujuan
Setelah mempelajari bab ini diharapkan mahasiswa akan mampu :
Deklarasi
Deklarasi diperlukan apabila kita akan menggunakan pengenal (identifier) dalam
program. Identifier dapat berupa variabel, konstanta dan fungsi.
Tipe Data
Tipe data dapat dikelompokkan menjadi atas dua macam:
a. Tipe dasar.
b. Tipe bentukan.
Tipe dasar adalah tipe yang sudah ada dari bahasa pemrograman itu sendiri, beberapa tipe
dasar yang dikenal disajikan pada Tabel 2.1.
Ukuran Jumlah
Tipe data memori Jangkauan nilai digit
(byte) persisi
char 1 -128 hingga +127 -
int 2 -32768 hingga +32767 -
long 4 -2.147.438.648 hingga 2.147.438.647 -
float 4 3,4E-38 hingga 3,4E38 6-7
double 8 1.7E-308 hingga 1.7E308 15-16
long double 10 3.4E-4932 hingga 1.1E4932 19
Tipe data yang berhubungan dengan bilangan bulat adalah char, int, long. Sedangkan
lainnya berhubungan dengan bilangan desimal. Dalam C/C++, terdapat juga beberapa
karakter khusus yang biasa disebut escape sequence characters, yang digunakan untuk
menyisipkan simbol tertentu.
7
Tabel 2.2. Tabel Escape Sequence Characters pada C/C++.
Karakter Keterangan
\0 Karakter ber-ASCII nol ( karakter null )
\a Karakter bell
\b Karakter backspace
\f Karakter ganti halaman ( formfeed )
\n Karakter baris baru ( newline )
\r Karakter carriage return ( ke awal baris )
\t Karakter tab horizontal
\v Karakter tab vertika
\\ Karakter \
\’ Karakter ‘
\” Karakter “
\? Karakter ?
\ooo Karakter yang nilai oktalnya adalah ooo ( 3 digit octal )
\xhh Karakter yang nilai heksadesimalnya adalah hh (2 digit)
a. Standard input stream, berfungsi untuk membaca data dari input device
(keyboard). Contoh: cin.
b. Standard output stream, berfungsi untuk menuliskan data ke layar konsol.
Contoh: cout.
c. Standard error stream, fungsinya sama seperti standard output stream, tetapi data
pada stream ini merupakan informasi error dan bukan output standar program.
Contoh: cerr.
a. Deklarasi variabel
<tipe data> <nama variabel> [= [nilai awal]];
Contoh:
int a;
int b = 10;
Pada deklarasi kedua, terdapat initializer atau nilai awal variabel.
8
b. Deklarasi konstanta
const <tipe data> <nama variabel> = <nilai konstanta>;
Contoh:
const int c = 21;
Pada deklarasi konstanta, initializer menjadi wajib sebagai nilai konstan yang
akan disimpan.
int main()
{
int a, b;
getch();
return 0;
}
6. Tekan F5 untuk memulai menjalankan program.
7. Inputkan sembarang angka dan lihat hasilnya.
2.5. Tugas
1. Buatlah program untuk menampilkan 5 buah variabel dengan tipe char, int, float,
long, dan double serta 2 buah konstanta.
2. Buatlah program berisikan Biodata lengkap kalian.
9
MODUL III
OPERATOR LOGIKA DAN ARITMETIKA
2.1. Tujuan
Setelah melakukan praktikum ini diharapkan mahasiswa akan mampu:
Operator Penugasan
Operator penugasan (assignment operator) dalam bahasa C++ berupa tanda sama
dengan ( = ). Penggunaannya yaitu untuk memberikan nilai pada suatu variabel.
Operator Aritmetika
Tabel 3.1. Tabel Operator Aritmetika.
+ Penjumlahan (Add) m + n 5 + 1 = 6
Pengurangan (Substract) m – n 2 – 1 = 1
-
Negasi (Negate) -m -2
* Perkalian (Multiply) m * n 2 * 3 = 6
/ Pembagian (Divide) m / n 4 / 2 = 2
% Sisa Pembagian Integer (Modulus) m % n 9 % 2 = 1
Operator seperti operator negasi (-) disebut unary operator karena membutuhkan
hanya satu buah operand (hanya kiri), sedangkan operator lain disebut binary operator
karena menggunakan dua operand (kiri dan kanan).
10
2. Post-increment/post-decrement, mengembalikan nilai variabel saat itu ke
pemanggil kemudian menambah atau mengurangi suatu variabel dengan 1.
Contoh: angka++; nilai--;
Operator Logika
Operator logika digunakan untuk menghubungkan dua atau lebih ungkapan
menjadi sebuah ungkapan terkondisi.
Perbedaan antara logika biasa dan fast-failing logic yaitu pada pengecekan. Pada
logika biasa, semua operand akan di cek nilai keabsahannya, sedangkan pada fast-failing
logic, apabila suatu kondisi sudah dinyatakan FALSE, maka pengecekan akan langsung
berhenti dan nilai kembalian diberikan.
11
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
int a, b;
getch();
return 0;
}
6. Tekan F5 untuk memulai menjalankan program. Lihat hasil program!
7. Tuliskan kode berikut ini (contoh penggunaan operator increment/decrement).
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
int a;
getch();
return 0;
}
8. Tekan F5 untuk memulai menjalankan program. Lihat hasil program!
Tugas
1. Buatlah program penghitungan luas & keliling segi tiga, persegi panjang, lingkaran.
12
MODUL IV
PEMILIHAN
4.1. Tujuan
Setelah mempelajari bab ini diharapkan mahasiswa akan mampu :
Pernyataan if
Sebuah pernyataan yang dapat dipakai untuk mengambil keputusan berdasarkan
suatu kondisi. Bentuk pernyataan ini ada dua macam, yaitu IF dan TERNARY.
if (<ekspresi 1>)
{
...blok apabila ekspresi 1 TRUE...
}
[else if (<ekspresi 2>)
{
...blok apabila ekspresi awal FALSE
dan ekspresi 2 TRUE...
}]
[else
{
...blok apabila semua ekspresi FALSE...
}]
Blok if pertama merupakan bentuk dasar dari kontrol if. Selain itu, dapat pula
digabung dengan bentuk else dan else if untuk menambahkan pengecekan kondisi lain.
Perlu diperhatikan bahwa statement else dan else if bersifat opsional dan dapat
dihilangkan.
Bentuk ternary merupakan versi penyingkatan dari bentuk umum if. Apabila blok
if yang digunakan hanya berisi satu baris kode yang mengembalikan nilai, maka
penggunaan operator ternary dapat digunakan.
13
Pernyataan switch
Pernyataan switch mirip seperti pemilihan if, perbedaannya pembandingan logika
tidak berdasarkan ekspresi tunggal, melainkan membandingkan ekspresi nilai dengan
nilai lainnya dalam berbagai kasus.
default:
...blok kode jika ekspresi nilai tidak cocok dengan case di
atasnya...
break;
}
14
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
int umur;
cout << "Selamat datang di bioskop, tolong inputkan umur Anda: ";
cin >> umur;
getch();
return 0;
}
6. Tekan F5 untuk memulai menjalankan program dan inputkan umur Anda. Lihat hasil
program!
7. Tuliskan kode berikut ini (contoh penggunaan if ternary operator).
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
int umur;
cout << "Selamat datang di bioskop, tolong inputkan umur Anda: ";
cin >> umur;
getch();
return 0;
}
8. Tekan F5 untuk memulai menjalankan program dan inputkan umur Anda. Lihat hasil
program!
9. Tuliskan kode berikut ini (contoh penggunaan pemilihan swicth).
15
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
int film;
switch (film)
{
case 1:
cout << "Your Name.";
break;
case 2:
cout << "Weathering With You";
break;
case 3:
cout << "Hello World";
break;
default:
cout << "Maaf, input Anda salah...";
break;
}
getch();
return 0;
}
10. Tekan F5 untuk memulai menjalankan program kemudian masukkan input angka
antara 1-3 dan di luar angka tersebut. Lihat hasil program!
4.5. Tugas
1. Buatlah program untuk menentukan apakah suatu bilangan itu ganjil dan genap,
dengan bilangan merupakan masukan/input.
2. Buatlah program untuk menentukan bilangan positif, negatif, atau nol dengan
bilangan merupakan masukan/input.
3. Buatlah program nested if sebanyak 3 kali. Contoh :
if ( <kondisi 1> ){
if ( <Kondisi 2> ){
if ( <Kondisi 3> ){
}
}
}
16
17
MODUL V
PERULANGAN (LOOPING)
7.1. Tujuan
Setelah mempelajari bab ini diharapkan mahasiswa akan mampu:
1. Perulangan for.
2. Perulangan while.
3. Perulangan do...while.
4. Pernyataan continue dan break.
18
7.3. Program Pendukung
1. E-learning KFlearning.
2. Visual Studio Code.
int main()
{
for (int i = 0; i < 10; i++)
{
cout << i << "\n";
}
getch();
return 0;
}
6. Tekan F5 untuk memulai menjalankan program. Lihat hasil program!
7. Tuliskan kode berikut ini (contoh penggunaan perulangan while).
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
int i = 0;
while (i < 10)
{
cout << i << "\n";
}
getch();
return 0;
}
8. Tekan F5 untuk memulai menjalankan program. Lihat hasil program!
9. Tuliskan kode berikut ini (contoh penggunaan perulangan do...while).
19
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
int i = 0;
do
{
cout << i << "\n";
} while (i < 10);
getch();
return 0;
}
10. Tekan F5 untuk memulai menjalankan program. Lihat hasil program!
11. Tuliskan kode berikut ini (contoh penggunaan pernyataan continue dan break).
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
for (int i = 0; i < 100; i++)
{
if (i == 10)
{
continue;
}
else if (i == 20)
{
break;
}
getch();
return 0;
}
12. Tekan F5 untuk memulai menjalankan program. Lihat hasil program!
20
7.5. Tugas
1. Buatlah program untuk mencetak deret 10 9 8 7 6 5 4 3 2 1.
2. Buatlah program untuk mencetak (gunakan for).
* 1
* 2 1 *
* 2 * 1 * 3
* 2 * 4 1 * 3 *
* 2 * 4 * 1 * 3 * 5
* 2 * 4 * 6 1 * 3 * 5 *
* 2 * 4 * 1 * 3 * 5
* 2 * 4 1 * 3 *
* 2 * 1 * 3
* 2 1 *
* 1
3. Buatlah program untuk mencetak (gunakan for).
1 *****
2 *****
3 *****
4 *****
5 *****
21
MODUL VI
SUB-ROUTINE DAN SCOPE
6.1. Tujuan
Setelah mempelajari bab ini diharapkan mahasiswa akan mampu:
Sub-routine
Sub-routine pada dasarnya adalah sub atau prosedur/fungsi selain dari fungsi
utama. Fungsinya yaitu untuk memisahkan bagian-bagian kode agar lebih terstruktur dan
dapat dipanggil kembali oleh fungsi utama atau prosedur lain. Semua prosedur/fungsi
selain fungsi utama adalah sub-routine.
Secara umum dalam mendeklarasikan nama routine, tidak boleh ada nama yang
sama dengan sub-routine bawaan dari C/C++ (misalnya printf, scanf, new, dll.).
Hal ini bertujuan untuk mencegah collision atau tabrakan antara definisi satu prototipe
dengan prototipe lainnya.
22
Sama seperti variabel, sebelum dapat menggunakan fungsi/prosedur, perlu
dilakukan deklarasi dan definisi terlebih dahulu. Pada sub-routine, terdapat dua proses
pembuatan sub-routine, yaitu deklarasi dan definisi.
Secara umum, pada C/C++ semua sub-routine wajib memiliki definisi prototipe
sebelum fungsi utama agar sub-routine tersebut dapat diakses oleh fungsi utama atau
sub-routine lain. Inilah fungsi dari file header, untuk menempatkan deklarasi prototipe
sub-routine. Contoh pembuatan sub-routine:
Kenapa bentuk kedua dapat dilakukan? Karena pada pendefinisian badan sub-
routine, harus memiliki prototipe yang sama dengan definisi sub-routine yang akan
dibuat. Karena dalam definisi sudah ada prototipe, sehingga tidak perlu mendeklarasikan
kembali prototipe di atas fungsi utama.
23
Parameter
Parameter adalah sarana komunikasi antar sub-routine. Dengan menggunakan
parameter, suatu sub-routine dapat menerima data dari routine lain yang memanggilnya.
Terdapat dua macam bentuk parameter dalam hubungannya dengan penggunaan fungsi
dalam program, yaitu:
Parameter formal, yaitu parameter yang diberi nilai. Parameter formal merupakan
parameter yang terdapat dalam daftar parameter fungsi.
Parameter aktual, yaitu parameter yang memberi nilai. Merupakan variabel yang
memberi nilai pada parameter formal.
Pointer
Pointer adalah variable yang menunjuk alamat dari variable lain, dengan kata lain
menunjuk secara tidak langsung pada varible yang dituju.
Scope
Scope merupakan blok atau penggalan kode yang berada di dalam kurung
kurawal. Setiap satu kurung kurawal penuh { } menandakan satu scope. Scope bisa berada
di dalam scope lain dan variabel yang didefinisikan di scope luar dapat diakses dari scope
di dalamnya. Pemanfaatan scope salah satunya adalah membatasi akses ke suatu variabel.
Karena fungsinya dapat digunakan sebagai pembatas akses, ada sebuah konsep
dalam C/C++ prosedural yang membagi variabel menjadi dua jenis berdasarkan scope
aksesnya, yaitu:
Variabel lokal, yaitu variabel yang hanya dapat diakses oleh scope yang
mendeklarasikannya.
24
Variabel eksternal, yaitu variabel yang bersifat global dan dapat diakses oleh
semua sub-routine.
Rekursif
Rekursif adalah sub atau fungsi yang dapat memanggil dirinya sendiri.
void pesan();
int tambah10(int); // tidak perlu nama parameter
int main()
{
pesan();
getch();
return 0;
}
void pesan()
{
cout << "Halo!\n";
}
25
#include <iostream>
#include <conio.h>
using namespace std;
int angka = 4;
void tambah10(int &angka); // perlu nama parameter
int main()
{
tambah10(angka);
getch();
return 0;
}
int angka1 = 1;
void ganti_angka1();
int main()
{
int angka2 = 10;
cout << "angka1 = " << angka1 << "\n";
cout << "angka2 = " << angka2 << "\n";
ganti_angka1();
angka2 = 22;
getch();
return 0;
}
void ganti_angka()
{
angka1 = 14;
}
10. Tekan F5 untuk memulai menjalankan program. Lihat hasil program!
26
11. Tuliskan kode berikut ini (contoh pointer).
1 #include <iostream>
2 #include <conio.h>
3 using namespace std;
4
5 int main ()
6 {
7 int *Andi;
8 int Budi = 9;
9 Andi = &Budi;
10
11 cout << “Isi alamat memori Andi : “ << Andi << “\n”;
12 cout << “Isi alamat memori Budi : “ << Budi << “\n”;
13 cout << “Isi alamat memori Budi : “ << *Andi << “\n”;
14 cout << “Alamat memori Andi : “ << &Andi << “\n”;
15 cout << “Alamat memori Budi : “ << &Budi << “\n”;
16
17 getch ();
18 return 0;
19 }
27
6.5. Tugas
1. Buatlah fungsi untuk menghitung luas segi tiga yang menerima input dari parameter
dan mengembalikan luas segi tiga.
2. Buatlah 3 program bebas sederhana menggunakan fungsi, dengan dikategorikan 3
tingkat kesulitan, contoh : mudah, sedang, sulit.
28
MODUL VII
ARRAY (LARIK)
7.1. Tujuan
Setelah mempelajari bab ini diharapkan mahasiswa akan mampu :
Dimensionalitas Array/Larik
Suatu larik dapat memiliki satu atau banyak dimensi. Pendeklarasiannya juga
tidak terlalu berbeda dengan pendeklarasian larik satu dimensi. Bentuk umum
pendeklarasian larik adalah sebagai berikut.
Contoh:
Pada deklarasi pertama, larik siswa memiliki 10 elemen dan 1 dimensi. Sedangkan
pada deklarasi kedua, larik absen memiliki 10 elemen pada dimensi 1 dan 2 elemen pada
dimensi 2, dengan total 20 elemen pada larik.
29
Perhatikan pada penggunaan aksesor larik, indeks selalu dimulai dari nol. Untuk
mengakses elemen larik, dapat digunakan array dereference operator dengan simbol
square bracket [ ]. Saat operator [ ] digunakan dalam mendeklarasikan larik, maka angka
di dalamnya adalah banyaknya elemen dalam larik. Sedangkan apabila operator [ ]
digunakan setelah deklarasi larik, maka fungsinya berubah menjadi aksesor ke elemen
larik pada indeks tersebut.
int main()
{
int a[3];
for (int i = 0; i < 3; i++)
{
cout << "a[" << i << "] = ";
cin >> a[i];
}
getch();
return 0;
}
6. Tekan F5 untuk memulai menjalankan program dan inputkan data. Lihat hasil
program!
30
7. Tuliskan kode berikut ini (contoh Array 2 Dimensi).
1 #include <iostream>
2 #include <conio.h>
3 using namespace std;
4
5 int main (){
6
7 int a [3][3];
8
9 for (int i = 0; i < 3; i++){
10 for (int j = 0; j < 3; j++){
11 cout << “a[“ << i << “][“ << j << “] = “;
12 cin >> a [i][j];
13 }
14 cout << “\n”;
15 }
16
17 for (int i = 0; i < 3; i++){
18 for (int j = 0; j < 3; j++){
19 cout << “Nilai elemen ke-“ << i+1 << “ & “ << j+1 << “ = ” << a [i][j]
20 << “\n”;
21 }
22 }
23 return 0;
24 }
8. Tekan F5 untuk memulai menjalankan program dan inputkan data. Lihat hasil
program!
7.5. Tugas
1. Buatlah array 1 dimensi dengan data acak dan menampilkan elemen-elemennya
pada konsol.
2. Buatlah matriks 2x2 dengan menggunakan array 2 dimensi dan carilah invers-
nya.
31
DAFTAR PUSTAKA
Applied C : an introduction and More. 2000. Fsicher. AE. Mc Graw Hill. New York.
Munir, Rinaldi d& Leoni Lidya. 1998. Algoritma dan Pemrograman. Jilid 1.Bandung:
CV. Informatika.
32