Anda di halaman 1dari 38

MODUL PRAKTIKUM

ALGORITMA DAN PEMROGRAMAN DASAR

Disusun Oleh:

Dr. Prihastuti Harsani, M.Si


Dinar Mungaran Akhmad, M.Kom

LABORATORIUM KOMPUTER
PROGRAM STUDI ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS PAKUAN
BOGOR

1
MODUL PRAKTIKUM

ALGORITMA DAN PEMROGRAMAN DASAR

Disusun Oleh:

Prihastuti Harsani, M.Si.


Iyan Mulyana, S.Kom.
Jemy Arieswanto, S.Kom.

LABORATORIUM KOMPUTER DAN LABORATORIUM WORKSHOP


PROGRAM STUDI ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS PAKUAN
BOGOR
2021
TATA TERTIB PRAKTIKUM

1. Praktikum dilakukan secara daring menggunakan video conference


Jitsy/Meets/Zoom/Webex dan rekaman video yang telah asisten
praktikum buat. Dibantu dengan forum menggunakan media
perpesanan WhatsApp/Telegram.
2. Mahasiswa wajib hadir 10 menit sebelum praktikum dimulai.
3. Mahasiswa wajib membuka kamera/webcam pada saat praktikum
menggunakan video conference.
4. Mahasiswa wajib mengenakan pakaian rapih dan sopan.
5. Dilarang makan selama praktikum menggunakan video conference,
tetapi minum diperbolehkan asal menutup terlebih dahulu
kamera/webcam.
6. Pada saat praktikum menggunakan video conference berlangsung,
mahasiswa tidak melakukan aktivitas apapun yang tidak berhubungan
dengan praktikum. Jika ingin mencoba code diperbolehkan.
7. Selesai praktikum daring (baik video conference maupun rekaman
video), Mahasiswa wajib mengikuti Post-Test untuk mengetahui
seberapa jauh pemahaman mahasiswa dalam mengikuti praktikum
daring.

i
DAFTAR ISI

TATA TERTIB PRAKTIKUM ......................................................................................... i


DAFTAR ISI..................................................................................................................... ii
MODUL I PENGENALAN ALGORITMA DAN BAHASA PEMROGRAMAN ......... 1
1.1. Tujuan ................................................................................................................ 1
1.2. Landasan Teoretis .............................................................................................. 1
Algoritma .................................................................................................................. 1
Aturan Penulisan Teks Algoritma............................................................................. 1
Flowchart .................................................................................................................. 1
Penerjemahan Bahasa Pemrograman ........................................................................ 2
1.3. Program Pendukung ........................................................................................... 2
1.4. Metode Kerja ...................................................................................................... 3
Kasus 1 – Membuat Flowchart Algoritma Mengirim Email .................................... 3
Kasus 2 – Membuat Program Hello World C++ ...................................................... 5
1.5. Tugas .................................................................................................................. 6
MODUL II TIPE DATA DASAR, VARIABEL, DAN KONSTANTA .......................... 7
2.1. Tujuan ................................................................................................................ 7
2.2. Landasan Teoretis .............................................................................................. 7
Variabel ..................................................................................................................... 7
Deklarasi ................................................................................................................... 7
Tipe Data................................................................................................................... 7
Standard I/O Stream.................................................................................................. 8
2.3. Program Pendukung ........................................................................................... 8
2.4. Metode Kerja ...................................................................................................... 8
Kasus 1 – Mendeklarasikan Variabel dan Konstanta ............................................... 8
Kasus 2 – Menggunakan Variabel dan Standard I/O Stream ................................... 9
2.5. Tugas .................................................................................................................. 9
MODUL III OPERATOR LOGIKA DAN ARITMETIKA ........................................... 10
2.1. Tujuan .............................................................................................................. 10
2.2. Landasan Teoretis ............................................................................................ 10
Operator Penugasan ................................................................................................ 10

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.2. Landasan Teoretis


Algoritma
Algoritma adalah urutan langkah-langkah yang tersusun secara logis dan
sistematis untuk memecahkan suatu masalah. Setiap aksi harus dilakukan dengan langkah
yang berhingga. Algoritma dapat dituliskan dengan banyak cara, mulai dari menggunakan
bahasa alami yang digunakan sehari-hari, simbol grafik bagan alir, sampai menggunakan
bahasa pemrograman seperti bahasa C atau C++.

Aturan Penulisan Teks Algoritma


Ada tiga cara penulisan algoritma, yaitu:

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.

Simbol Nama Maksud


Terminator Memulai atau mengakhiri algoritma.
Preparasi/Terminasi
Process Proses pengolahan atau aksi tertentu.
Proses
Data Data input dari IO atau output dari
proses.
Decision Pemilihan kondisi ya dan tidak.
Pemilihan/Keputusan
Flow Alur dari satu proses ke proses lainnya.
Alur tahapan

Penerjemahan Bahasa Pemrograman


Untuk menerjemahkan bahasa pemrograman yang kita tulis maka diperlukan
compiler dan interpreter. Compiler adalah suatu program yang menerjemahkan bahasa
program (source code) ke dalam objek (object code) secara keseluruhan program.
Interpreter menganalisis dan mengeksekusi setiap baris dari program tanpa melihat
program secara keseluruhan. Perbedaan antara compiler dan interpreter adalah pada tahap
eksekusi, compiler memeriksa semua bagian kode dan menerjemahkan keseluruhan kode,
sedangkan interpreter hanya menerjemahkan dan mengeksekusi kode yang sedang
digunakan saja.

Compiler memerlukan waktu untuk membuat suatu program yang dapat di


eksekusi oleh komputer. Tetapi, program yang di produksi oleh compiler bisa berjalan
lebih cepat dibandingkan dengan yang di produksi oleh interpreter dan bersifat
independen. Bahasa C++ termasuk ke dalam bahasa pemrograman yang bersifat
compiled, alias kodenya perlu dikompilasi sebelum dapat dieksekusi.

1.3. Program Pendukung


1. Pembuatan bagan alir dapat digunakan dengan aplikasi Microsoft Office Word,
PowerPoint, dan Microsoft Visio.
2. E-learning KFlearning.
3. Visual Studio Code.

2
1.4. Metode Kerja
Kasus 1 – Membuat Flowchart Algoritma Mengirim Email
Buatlah algoritma untuk membuat mengirim email!

1. Analisa masalah dengan menentukan solusi melalu tahapan penentuan input,


proses, dan output.
a. Input adalah item-item yang dibutuhkan untuk menghasilkan output.
b. Proses adalah langkah-langkah memproses input menjadi output.
c. Output adalah item keluaran yang diharapkan.
2. Berdasarkan analisis masalah yang telah dilakukan maka dibuat algoritma.
Algoritma berisi langkah-langkah atau aksi-aksi sehingga persoalan dapat
diselesaikan. Biasanya algoritma dibuat dengan struktur sebagai berikut:
a. Perintah melakukan/memasukkan input.
b. Perintah memproses input.
c. Perintah mendapatkan/menampilkan output.
3. Buat flowchart berdasarkan algoritma yang dibuat berdasarkan simbol-simbol
yang telah diberikan pada Tabel 1.1.

Flowchart Algoritma Mengirim Email


Pembuatan algoritma untuk pengiriman email dilakukan dengan melakukan
analisis sistem di tahap awal. Email yang dikirimkan menggunakan layanan email yang
tidak berbayar, misalnya mail.yahoo.com atau mail.google.com. Output yang diharapkan
adalah email dapat terkirim. Input yang dibutuhkan adalah username, password, alamat
email yang dituju, subjek email, dan isi email. Prosesnya adalah sebagai berikut

1. Buka aplikasi email, misalnya mail.yahoo.com.


2. Setelah halaman ditampilkan, masukkan username dan password.
3. Pilihlah pilihan Compose.
4. Masukkan alamat email tujuan.
5. Masukkan subjek email.
6. Buat isi surat.
7. Pilih tombol Send.

Langkah tersebut dilakukan apabila email yang dikirimkan tidak mempunyai


lampiran atau file terpisah yang akan dikirimkan juga. Apabila terdapat file gambar yang
akan dikirimkan, maka digunakan kondisi sebelum mengirim email, sehingga proses
menjadi sebagai berikut :

1. Buka aplikasi email, misalnya mail.yahoo.com.


2. Setelah halaman ditampilkan, masukkan username dan password.
3. Pilihlah pilihan Compose.
4. Masukkan alamat email tujuan.
5. Masukkan subjek email.
6. Buat isi surat.

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

Buka aplikasi email

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.

1. Buka program KFlearning.


2. Klik Proyek Baru.
3. Masukkan nama “Praktikum1” dan pilih template Konsol C++, kemudian klik OK.
4. Tunggu Visual Studio Code terbuka, kemudian klik ganda pada file program.cpp
pada sidebar kiri.
5. Tuliskan kode berikut ini.
#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
// Menampilkan teks keluaran
cout << "Hello World!";

getch();
return 0;
}
6. Tekan F5 untuk memulai menjalankan program.

Analisis Sintak pada C/C++


Dari potongan kode di atas, terdapat banyak sintak dalam bahasa pemrograman
C++ yang sudah digunakan. Beberapa sintak tersebut yaitu:

a. Preprocessor directive  #include<iostream>


Bagian ini disebut dengan preprocessor directive. Pada direksi include, artinya
meminta compiler untuk menyertakan file lain (pada contoh ini iostream) ke dalam
program yang sedang dibuat. Terdapat banyak jenis preprocessor directive lainnya
seperti pragma dan define.
b. Import namespace members  using namespace xxx;
Pernyataan using namespace digunakan untuk melakukan impor anggota dari suatu
namespace, contohnya using namespace std;.
c. Main program/entry point/program utama  int main() {...}
Bagian ini disebut juga dengan program utama. Fungsi dari blok kode ini yaitu
sebagai bagian kode yang pertama kali di eksekusi dan akhir dari program (entry
point).
d. Comment/komentar  double forward slash ( // )
Komentar adalah bagian kode yang tidak dikompilasi dan bertindak hanya untuk
mengomentari kode. Terdapat dua jenis komentar, yaitu:

5
Jenis 1 – Block comment
/* Komentar Anda diletakkan di dalam ini
Bisa mengapit lebih dari satu baris */

Jenis 2 – Line comment


// Komentar Anda diletakkan di sini (hanya bisa perbaris)

e. Statement ending  semicolon ( ; )


Tanda semicolon/titik koma ( ; ) digunakan untuk mengakhiri suatu pernyataan atau
statement. Setiap pernyataan harus diakhiri dengan semicolon.
f. Standard output stream  cout
Pernyataan cout merupakan sebuah objek dalam C++ yang digunakan untuk
mengarahkan data ke dalam standard output stream (pada program konsol, maka
layar konsol/CLI adalah standard output stream).

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 :

1. Mengenal macam-macam tipe data.


2. Membuat program dengan menggunakan variabel dan konstanta.

2.2. Landasan Teoretis


Variabel
Variabel adalah suatu pengenal (identifier) yang digunakan untuk mewakili suatu nilai
tertentu di dalam proses program. Berbeda dengan konstanta yang nilainya selalu tetap,
nilai dari suatu variabel bisa diubah-ubah.

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.

Tabel 2.1. Tabel Tipe Data Bawaan pada C/C++.

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)

Standard I/O Stream


Pada C++ terdapat tiga jenis I/O dasar, yaitu:

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.

2.3. Program Pendukung


1. E-learning KFlearning.
2. Visual Studio Code.

2.4. Metode Kerja


Kasus 1 – Mendeklarasikan Variabel dan Konstanta
Terdapat beberapa cara untuk mendeklarasikan variabel dan konstanta, yaitu:

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.

Kasus 2 – Menggunakan Variabel dan Standard I/O Stream


Pada kasus ini Anda akan membuat program penjumlahan dua angka dengan
menggunakan C/C++.

1. Buka program KFlearning.


2. Klik Proyek Baru.
3. Masukkan nama “Praktikum2” dan pilih template Konsol C++, kemudian klik OK.
4. Tunggu Visual Studio Code terbuka, kemudian klik ganda pada file program.cpp
pada sidebar kiri.
5. Tuliskan kode berikut ini (contoh penggunaan standard input/output stream).
#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
int a, b;

cout << "Masukkan nilai a: ";


cin >> a;

cout << "Masukkan nilai b: ";


cin >> b;

cout << "Nilai a = " << a << "\n";


cout << "Nilai b = " << b << "\n";

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:

1. Mengenal macam-macam operator.


2. Membuat program dengan fungsi operator aritmetika.

2.2. Landasan Teoretis


Operator adalah simbol yang dilibatkan dalam program untuk melakukan sesuatu
operasi atau manipulasi.

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.

Operator Deskripsi Contoh Implementasi

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

Operator Increment dan Decrement


Operator ini akan menambah atau mengurangkan nilai variabel dengan 1,
kemudian hasilnya disimpan dalam variabel tersebut. Terdapat dua jenis operator ini
bergantung posisi operatornya, yaitu:

1. Pre-increment/pre-decrement, menambah atau mengurangi suatu variabel dengan


1 kemudian mengembalikannya ke pemanggil.
Contoh: ++angka; --nilai;

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.

Tabel 3.2. Tabel Operator Logika.

Operator Deskripsi Contoh


&& Logic AND m && n
|| Logic OR m || n
! Logic NOT !m
== Logic equals m == n
!= Logic not equals m != n
< Logic less than m < n
<= Logic less than or equals m <= n
> Logic greater than m > n
>= Logic greater than or equals m >= n

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.

2.3. Program Pendukung


1. E-learning KFlearning.
2. Visual Studio Code.

2.4. Metode Kerja


Pada kasus ini Anda akan membuat program yang menggunakan operator penugasan,
aritmetika, logika, increment dan decrement, dan operator logika dengan menggunakan
C/C++.

1. Buka program KFlearning.


2. Klik Proyek Baru.
3. Masukkan nama “Praktikum3” dan pilih template Konsol C++, kemudian klik OK.
4. Tunggu Visual Studio Code terbuka, kemudian klik ganda pada file program.cpp
pada sidebar kiri.
5. Tuliskan kode berikut ini (contoh penggunaan operator aritmetika).

11
#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
int a, b;

cout << “Masukkan nilai a = “;


cin >> a;

cout << “Masukkan nilai b = “;


cin >> b;

cout << "a + b = " << a + b << "\n";


cout << "a – b = " << a - b << "\n";
cout << "a * b = " << a * b << "\n";
cout << "a / b = " << a / b << "\n";
cout << "a % b = " << a % b << "\n";
cout << "-a = " << -a << "\n";

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;

cout << “Masukkan nilai a = “;


cin >> a;

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


cout << "++a = " << ++a << "\n";
cout << " a = " << a << "\n";
cout << "--a = " << --a << "\n";
cout << " a = " << a << "\n";
cout << "a++ = " << a++ << "\n";
cout << " a = " << a << "\n";
cout << "a-- = " << a- << "\n";

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 :

1. Dapat menyelesaikan masalah dengan menggunakan kondisi tertentu.


2. Menggunakan bentuk if dan switch.

4.2. Landasan Teoretis


Dalam bahasa pemrograman, pasti terdapat struktur kontrol yang dapat memproses
suatu ekspresi dan melanjutkan blok kode tertentu sesuai kondisi dari ekspresinya. Hal
ini disebut dengan control flow.

Pernyataan if
Sebuah pernyataan yang dapat dipakai untuk mengambil keputusan berdasarkan
suatu kondisi. Bentuk pernyataan ini ada dua macam, yaitu IF dan TERNARY.

Bentuk umum IF adalah sebagai berikut.

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 umum IF TERNARY OPERATOR adalah sebagai berikut.

<variabel > = <ekspresi> ? <nilai jika TRUE> : <nilai jika FALSE>;

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.

Bentuk umum switch adalah sebagai berikut.

switch (<ekspresi nilai>)


{
case <nilai 1>:
...blok kode jika ekspresi nilai = nilai 1...
break;

case <nilai 2>:


...blok kode jika ekspresi nilai = nilai 2...
break;

default:
...blok kode jika ekspresi nilai tidak cocok dengan case di
atasnya...
break;
}

4.3. Program Pendukung


1. E-learning KFlearning.
2. Visual Studio Code.

4.4. Metode Kerja


1. Buka program KFlearning.
2. Klik Proyek Baru.
3. Masukkan nama “Praktikum4” dan pilih template Konsol C++, kemudian klik OK.
4. Tunggu Visual Studio Code terbuka, kemudian klik ganda pada file program.cpp
pada sidebar kiri.
5. Tuliskan kode berikut ini (contoh penggunaan pemilihan if).

14
#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
int umur;

cout << "Selamat datang di bioskop, tolong inputkan umur Anda: ";
cin >> umur;

if (umur < 17)


{
cout << "Tidak boleh masuk.";
}
else
{
cout << "Silakan masuk.";
}

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;

cout << (umur < 17 ? "Tidak boleh masuk." : "Silakan masuk.");

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;

cout << "Selamat datang di bioskop!\n";


cout << "Silakan pilih nomor film (1-3) = ";
cin >> 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. Dapat menyelesaikan masalah dengan perulangan.


2. Menggunakan bentuk while, do..while, for.

7.2. Landasan Teoretis


Suatu bahasa pemrograman selain memiliki logika kontrol pemilihan, biasanya
memiliki juga satu atau lebih bentuk perulangan. Perulangan digunakan untuk
mengeksekusi kembali suatu blok kode selama kondisi atau ekspresi perulangan masih
bernilai TRUE. Beberapa jenis perulangan yang ada pada C/C++ adalah sebagai berikut.

1. Perulangan for.
2. Perulangan while.
3. Perulangan do...while.
4. Pernyataan continue dan break.

Tabel 5.1. Tabel Bentuk Umum Perulangan.

Pernyataan/Bentuk Umum Deskripsi


Perulangan for dimulai dengan
for (<init>; <kondisi>; <update>) menginisialisasi suatu variabel,
{ kemudian mengecek kondisi apakah
...blok kode... masih bernilai TRUE, kemudian
} bagian update akan dipanggil setelah
eksekusi blok kode selesai.
while (<kondisi>) Perulangan while dimulai dengan
{ memeriksa kondisi, jika masih TRUE
...blok kode... maka blok kode akan terus dieksekusi
} hingga kondisi menjadi FALSE.
Perulangan do memulai eksekusi
do
kode baru mengecek kondisi. Sama
{
seperti while tetapi pada perulangan
...blok kode...
do dipastikan blok kode minimal
} while (<kondisi>);
dieksekusi satu kali.
Pernyataan ini digunakan untuk
menghentikan perulangan pada iterasi
continue;
saat ini dan tidak menghentikan
keseluruhan perulangan.
Pernyataan ini digunakan untuk
break;
menghentikan seluruh perulangan.

18
7.3. Program Pendukung
1. E-learning KFlearning.
2. Visual Studio Code.

7.4. Metode Kerja


1. Buka program KFlearning.
2. Klik Proyek Baru.
3. Masukkan nama “Praktikum5” dan pilih template Konsol C++, kemudian klik OK.
4. Tunggu Visual Studio Code terbuka, kemudian klik ganda pada file program.cpp
pada sidebar kiri.
5. Tuliskan kode berikut ini (contoh penggunaan perulangan for).
#include <iostream>
#include <conio.h>
using namespace std;

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

cout << i << "\n";


}

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:

1. Menyelesaikan masalah dengan menggunakan fungsi built-in.


2. Membangun program secara modular menggunakan fungsi user-defined.

6.2. Landasan Teoretis


Routine
Routine adalah blok kode dengan nama tersendiri yang dapat menerima argumen
dan dapat mengembalikan nilai kembalian. Contoh routine yang pasti digunakan pada
C/C++ adalah fungsi main().

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.

Berdasarkan nilai kembaliannya, sub-routine dibagi menjadi dua yaitu:

1. Prosedur/method/fungsi tanpa nilai balik, yaitu blok prosedur yang tidak


mengembalikan nilai kembalian (dideklarasikan dengan tipe void).
2. Fungsi/function/fungsi dengan nilai balik, yaitu blok prosedur yang
mengembalikan nilai kembalian (dideklarasikan dengan tipe selain void).

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.

Tabel 6.1. Tabel Bentuk Umum Sub-Routine.

Bentuk Umum Jenis Sub-Routine


void <nama prosedur>([<tipe data> <param1>]..) Prosedur
{
...blok kode...
}
<tipe data> <nama fungsi>([<tipe data> <param1>]..) Fungsi
{
...blok kode...
}

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.

1. Deklarasi prototipe, yaitu mendeklarasikan nilai kembalian, nama, dan parameter


yang akan diterima oleh sub-routine.
2. Definisi badan routine, yaitu isi kode yang dimiliki oleh sub-routine.

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:

int minta_angka(); // deklarasi prototipe

int main() // fungsi utama


{
...blok kode...
}

int minta_angka() // definisi badan


{
...blok kode...
}

Selain dengan mendeklarasikan prototipe di atas fungsi utama, dapat juga


langsung mendefinisikan sub-routine di atas fungsi utama sehingga tidak memerlukan
deklarasi prototipe. Contohnya:

int minta_angka() // definisi badan


{
...blok kode...
}

int main() // fungsi utama


{
...blok kode...
}

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.

Ada 2 Operator yang digunakan :

 & = menunjukan alamat dari variable


 * = menunjukan nilai dari variable

Parameter dalam Pemanggilan Sub-Routine


Dalam pemanggilan sub-routine, pemberian argumen kepada parameter dapat
dilakukan dengan dua cara, yaitu dengan nilai (by value) atau dengan referensi (by
reference).

 Pass by value, merupakan bentuk pemanggilan standar pada C/C++. Pada


pemanggilan ini data dari pemanggil akan disalin ke parameter sehingga pada sub-
routine yang dipanggil tidak akan mengubah data pada variabel pemanggil.
 Pass by reference, merupakan bentuk pemanggilan dengan cara memberikan
referensi (pointer) ke variabel dari pemanggil ke sub-routine yang dipanggil.
Sehingga memungkinkan sub-routine untuk mengubah nilai pada variabel dari
routine pemanggil. Materi ini akan dibahas lebih lanjut pada semester 2.

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.

6.3. Program Pendukung


1. E-learning KFlearning.
2. Visual Studio Code.

6.4. Metode Kerja


1. Buka program KFlearning.
2. Klik Proyek Baru.
3. Masukkan nama “Praktikum6” dan pilih template Konsol C++, kemudian klik OK.
4. Tunggu Visual Studio Code terbuka, kemudian klik ganda pada file program.cpp
pada sidebar kiri.
5. Tuliskan kode berikut ini (contoh pembuatan prosedur dan fungsi).
#include <iostream>
#include <conio.h>
using namespace std;

void pesan();
int tambah10(int); // tidak perlu nama parameter

int main()
{
pesan();

int angka = tambah10(4);


cout << "4 + 10 adalah " << angka;

getch();
return 0;
}

void pesan()
{
cout << "Halo!\n";
}

int tambah10(int awal)


{
return awal + 10;
}
6. Tekan F5 untuk memulai menjalankan program. Lihat hasil program!
7. Tuliskan kode berikut ini (contoh pemanggilan dengan referensi/pass by reference).

25
#include <iostream>
#include <conio.h>
using namespace std;

int angka = 4;
void tambah10(int &angka); // perlu nama parameter

int main()
{
tambah10(angka);

cout << "4 + 10 adalah " << angka;

getch();
return 0;
}

void tambah10(int &angka)


{
angka = angka + 10;
}
8. Tekan F5 untuk memulai menjalankan program. Lihat hasil program!
9. Tuliskan kode berikut ini (contoh deklarasi variabel lokal dan eksternal).
#include <iostream>
#include <conio.h>
using namespace std;

int angka1 = 1;
void ganti_angka1();

int main()
{
int angka2 = 10;
cout << "angka1 = " << angka1 << "\n";
cout << "angka2 = " << angka2 << "\n";

ganti_angka1();
angka2 = 22;

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


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

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 }

12. Tekan F5 untuk memulai menjalankan program. Lihat hasil program!


13. Tuliskan kode berikut ini (contoh rekursif).
1 #include <iostream>
2 #include <conio.h>
3 using namespace std;
4
5 int pangkat (int x, int y);
6
7 int main ()
8 {
9 int x, y;
10
11 cout << “Masukan X : “ << “\n”;
12 cin >> x;
13 cout << “Masukan Y : “ << “\n”;
14 cin >> y;
15 cout << “Hasil dari X pangkat Y : “ << pangkat (x,y) << “\n”;
16
17 getch ();
18 }
19
20 int pangkat (in x, int n)
21 {
22 if (n == 1)
23 return (x);
24 else
25 return (x*pangkat (x, n-1));
26 }

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 :

1. Mengenal bentuk umum array.


2. Membuat program dengan array satu dimensi.

7.2. Landasan Teoretis


Array/Larik
Array/larik merupakan bentuk tipe data yang memiliki elemen-elemen di
dalamnya dengan tipe data yang sama dan dapat diakses menggunakan indeks dan
memiliki batasan tertentu. Array/larik ini sangat banyak penggunaannya dalam struktur
data dan algoritma. Khususnya pada penerapan untuk deep learning/machine learning
yang banyak menggunakan array untuk operasi matriks.

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.

<tipe data> <nama>[<jum. elemen dim 1>][<jum. elemen dim 2>];

Contoh:

int siswa[10]; <- “1 Dimensi”


long absen[10][2]; <- “2 Dimensi”

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.

Sistem Indeks pada Array/Larik


Misalkan kita memiliki sekumpulan data ujian seorang siswa, ujian pertama
bernilai 90, 95, 78, dan 85. Sekarang kita ingin menyusunnya sebagai suatu data
kumpulan ujian seorang siswa. Dalam larik kita menyusunnya sebagai berikut.

Menggunakan Assignment Menggunakan Initializer


int ujian[4]; int ujian[4] = {90,95,78,85};
ujian[0] = 90;
ujian[1] = 95;
ujian[2] = 78;
ujian[3] = 85;

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.

7.3. Program Pendukung


1. E-learning KFlearning.
2. Visual Studio Code.

7.4. Metode Kerja


1. Buka program KFlearning.
2. Klik Proyek Baru.
3. Masukkan nama “Praktikum7” dan pilih template Konsol C++, kemudian klik OK.
4. Tunggu Visual Studio Code terbuka, kemudian klik ganda pada file program.cpp
pada sidebar kiri.
5. Tuliskan kode berikut ini (contoh Array 1 Dimensi).
#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
int a[3];
for (int i = 0; i < 3; i++)
{
cout << "a[" << i << "] = ";
cin >> a[i];
}

for(int i = 0; i < 3; i++)


{
cout<< "Nilai elemen ke-" << i + 1 << " = " << a[i] << “\n”;
}

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

An introduction to Programming tih C++. 2002. Diane Zak. Course technology.


Singapore.

Applied C : an introduction and More. 2000. Fsicher. AE. Mc Graw Hill. New York.

Wirth, Niklaus. Algorithm + Data Structures = Programs. New Jersey: Prentice-Hall.

Liem, Inggriani. Algoritma dan Pemrograman. Jilid 1. Bandung: Teknik Informatika-


ITB, 1993.

Munir, Rinaldi d& Leoni Lidya. 1998. Algoritma dan Pemrograman. Jilid 1.Bandung:
CV. Informatika.

32

Anda mungkin juga menyukai