Modul
Praktikum
Pengenalan Teknologi Informasi B
Daftar Isi
Bab I _______________________________________ 3
Pengenalan Algoritma dan Pemrogramana ________ 3
Algoritma _______________________________________ 4
Kompleksitas Algoritma ___________________________ 5
Algoritma dalam Pemrograman_____________________ 7
Sintaks Program _________________________________ 8
Input, Output, dan Komentar______________________ 10
Variabel dan Tipe Data ___________________________ 11
Bab II ______________________________________ 14
Ekspresi, Operator, dan Percabangan ____________ 14
Operator ______________________________________ 15
Operator Aritmatik ________________________________ 15
Operator Relasi ___________________________________ 17
Operator Logika_________________________________ 17
Struktur Percabangan (IF Conditional) _____________ 18
Struktur _____________________________________ 22
Enumerasi ___________________________________ 25
Typedef _____________________________________ 25
pg. 1
Bab IV _____________________________________ 26
Pengulangan (Looping) _______________________ 26
Logika Pengulangan _____________________________ 27
Switch dan Break________________________________ 27
Do-While dan While-Do Loop _____________________ 28
For Loop _______________________________________ 30
Bab V ______________________________________ 33
Array ______________________________________ 33
Array _________________________________________ 34
Dimensi _______________________________________ 34
Operasi Dengan Array ____________________________ 35
Bab VI _____________________________________ 40
Fungsi dan Prosedur __________________________ 40
Fungsi dan Prosedur _____________________________ 41
Variabel Lokal __________________________________ 41
Fungsi Rekursif _________________________________ 42
pg. 2
Bab I
Pengenalan Algoritma
dan Pemrogramana
pg. 3
Algoritma
Dalam ilmu matematika dan komputasi, algoritma berarti
langkah-langkah yang harus ditempuh untuk kalkulasi atau
pemecahan masalah. Pada dasarnya definisi algoritma
abstrak, untuk lebih mudahnya dapat dipelajari melalui
contoh studi kasus berikut.
Kasus 1a : Mengupas Kentang
Bayangkan kalian ingin mengupas kentang untuk memasak
sebuah sup. Jika disediakan sebuah pisau, mangkuk, dan
kentang bagaimana langkah-langkah mengupas kentang
untuk ditaruh di dalam mangkuk ?
Jawab :
Dengan mudah persoalan tersebut dijawab dengan langkahlangkah sebagai berikut :
1.
2.
3.
4.
5.
Ambil pisau
Ambil 1 buah kentang
Kupas kulit kentang tersebut
Taruh kentang di mangkuk
Kembalikan pisau ke tempatnya jika kentang sudah habis
pg. 4
Ambil
Pisau
Kupas
Kulit
Ambil
Kentang
Kembalikan
Pisau
Taruh di
mangkuk
Kompleksitas Algoritma
Algoritma bisa saja sederhana seperti contoh mengupas
kentang pada sebelumnya. Namun, perlu diketahui
terkadang ada beberapa proses yang dilewati dan dianggap
sudah dilakukan, contohnya seperti permasalahan berikut.
Kasus 1b : Mengupas Kentang (2)
Langkah apa saja yang ditambahkan apabila pisau kalian
belum tajam dan kentang harus direbus sebelum ditaruh di
mangkuk ? (Asumsikan telah disediakan panci untuk merebus
kentang)
Jawab :
Terjadi beberapa perubahan pada flowchart mengupas
kentang seperti contoh berikut :
pg. 5
Ambil pisau
Rebus Kentang
Tajamkan pisau
Nyalakan kompor
Taruh kentang di
mangkok
Ambil kentang
Kembalikan pisau
pg. 6
Makna
Menyatakan awal (start) dan akhir program (end)
Menandakan input dan output
Menandakan suatu proses
Kondisi perulangan (if conditional)
Konektor untuk algoritma
Menandakan struktur percabangan (looping)
Tabel 1- Simbol Flowchart Pseudocode
pg. 7
Sintaks Program
Sebuah program umumnya memiliki penanda awal dan akhir
dari sebuah program. Uniknya, untuk bahasa yang berbeda,
penanda awal dan akhir program juga berbeda. Di dalam
pseudocode, umumnya sebuah program diawali dengan kata
begin dan diakhiri dengan kata end.
Perlu diketahui, di beberapa bahasa pemrograman tanda
awal dan akhir program akan mirip dengan tanda awal dan
akhir fungsi (akan dijelaskan lebih lanjut pada bab
selanjutnya).
Contoh sintaks awal dan akhir program sesuai dengan
bahasanya dapat dilihat dalam tabel berikut :
Pseudocode
Pascal
Begin
<isi program>
End
begin
<isi program>;
end.
C++
#include <nama library>
using namespace std;
int main ()
{
<isi program>
return 0;
}
Fortran
program <nama program>
<isi program>
end program <nama program>
pg. 8
Pascal
Program HelloWorld
program HelloWorld
Begin
Output (Hello World !)
End
begin
write(Hello World !);
end.
C++
#include <iostream>
using namespace std;
int main ()
{
cout << Hello World !;
return 0;
}
Fortran
program HelloWorld
write(*,*) Hello World !
end program HelloWorld
Pseudocode
Input <variabel>
/* <isi comment> */
/* <isi comment> */
pg. 10
Jawab :
#include <iostream>
#include <string>
using namespace std;
int main() {
string nama; // Deklarasi variabel nama
getline (cin,nama); // Input nama
cout << \nHello << nama << !; // Output
}
pg. 11
Tipe Data
char
Deskripsi
Merupakan tipe data karakter
int
long int
float
Bilangan desimal
string
pg. 12
pg. 13
Bab II
Ekspresi, Operator, dan
Percabangan
pg. 14
Operator
Operator merupakan simbol tertentu dalam bahasa
pemrograman yang mampu membuat compiler (penerjemah
bahasa, dari bahasa yang ditulis pada layar menjadi bahasa
mesin) melakukan sejumlah operasi tertentu.
Terdapat beberapa macam operator dalam C. Tiga jenis
operator yang sering digunakan dalam pemrograman adalah
operator aritmatik, operator relasi, dan operator logika.
Operator Aritmatik
Pada dasarnya, pemrosesan akan membutuhkan operasi
secara matematis seperti tambah, kurang, kali, dan bagi.
Operator aritmatik memiliki fungsi untuk melakukan operasi
secara matematis pada bahasa pemrograman. Jenis operator
aritmatik dapat dilihat pada tabel berikut.
Simbol Operator
+
*
/
pg. 15
Operator Relasi
Operator relasi adalah operator yang digunakan untuk
menyatakan relasi atau hubungan antara dua variabel.
Berbeda dengan operator aritmatik, operator relasi akan
selalu menghasilkan data true atau false.
Penggunaan operator relasi umumnya terdapat pada
statement if sebagai syarat true atau false. Jenis operator
relasi adalah sebagai berikut.
Simbol
==
!=
>
<
>=
<=
Definisi
Bernilai True jika
Sama dengan
10 == 10
Tidak sama dengan
8 != 10
Lebih dari
12 > 7
Kurang dari
10 < 33
Lebih dari sama dengan
14 >= 14
Kurang dari sama dengan
1 <= 1
Tabel 7 - Jenis Operator Relasi
Operator Logika
Tipe operator yang ke tiga adalah operator logika. Operator
logika adalah simbol yang memiliki fungsi khusus untuk
melakukan operasi logika seperti and, or, dan not.
pg. 17
Fungsi
Contoh penggunaan
AND
true && true beroutput true
OR
true || false beroutput true
NOT
!true beroutput false
Tabel 8 - Jenis Operator Logika
Start
Atau
Cond.
if <kondisi/expression>
{ statement 1 }
else
{ statement 2 }
No
Process 1
Yes
Process 2
End
pg. 18
Flowchart 3 - IF bertingkat
pg. 20
Bab III
Tipe Data Bentukan
pg. 21
Tipe Data
Pada bahasa pemrograman C / C++, secara umum terdapat
dua buah tipe yaitu tipe dasar dan tipe bentukan. Tipe dasar
merupakan tipe data variabel standar yang telah disediakan.
Contoh tipe data dasar adalah : integer, float, boolean,
double dan char. Tipe data dasar dapat langsung digunakan
pada variabel yang dibuat.
Untuk keperluan khusus pada pemrograman, user dapat
membuat tipe bentukan sendiri. Berikut adalah jenis tipe
bentukan :
1. Struktur
Struktur adalah tipe data bentukan yang menyimpan
lebih dari satu variabel bertipe sama ataupun
berbeda. Berikut adalah bentuk umum penulisan
struktur :
struct nama_struktur {
tipe_data variabel1;
tipe_data variabel2;
.......
};
---------------------------------------------------------------struct nama_struktur {
tipe_data variabel1;
tipe_data variabel2;
.......
}nama_variabel;
pg. 22
Contoh program :
Contoh 1:
struct mahasiswa {
int NIM;
string nama;
string alamat;
};
//contoh pendeklarasian
//tipe data mahasiswa
variabel
dengan
struct mahasiswa M;
//cara mengakses variabel M
M.NIM=13211000;
M.nama=Abah;
Contoh 2:
struct mahasiswa {
int NIM;
string nama;
string alamat;
}M;
//cara akses
M.NIM=13211000;
M.nama=Abah;
pg. 23
pg. 24
2. Enumerasi
Tipe enumerasi adalah tipe data yang nilainya telah
didefinisikan sejak awal tipe tersebut dibuat oleh
user. Tipe ini digunakan untuk membentuk tipe data
yang nilainya bersifat pasti. Misalnya : nama hari dan
jenis kelamin.
Bentuk umum :
enum nama_tipe(nilai1,nilai2,nilai3,......);
3. Typedef
Typedef atau type definition berguna untuk
mencipatakan nama lain dari suatu tipe data. Salah
satu fungsi dari typedef adalah untuk mempermudah
penulisan struct yang kadang terlalu panjang. Berikut
adalah contoh pemakaian typedef :
typedef struct mahasiswa mhs;
pg. 25
Bab IV
Pengulangan (Looping)
pg. 26
Logika Pengulangan
Pada pemrograman, sering kali dibutuhkan pemrosesan
berulang-ulang untuk mencapai suatu hasil tertentu. Apabila
pengulangan ini dilakukan secara manual ukuran file program
akan menjadi terlalu besar. Contoh sederhana adalah jika kita
ingin menuliskan Hello World di layar sebanyak 7 kali, maka
akan dibutuhkan paling tidak 7 baris perintah. Menggunakan
sintaks pengulangan, persoalan tersebut dapat diselesaikan
hanya menggunakan 3 baris program.
int a;
for (a=1;a<=5;a++){
cout << \nHello !;
}
Output :
Hello
Hello
Hello
Hello
Hello
!
!
!
!
!
switch (variabel) {
case <kondisi 1> :
case <kondisi 2> :
<statement 1>;
break;
<statement 2>;
break;
.
.
case <kondisi n> :
default :
<statement n>;
break;
<statement default>
break;
While-Do
while (<kondisi loop>)
{<statement loop>}
pg. 29
#include <iostream>
using namespace std;
int main () {
// Deklarasi variabel
int a, i;
// Proses
cin >> a; // Input
while (a >= 0){
if (a > 0)
// a > 0, tampilkan angka
cout << a << endl;
a--;}
else
// a = 0, tampilkan START
cout << \nSTART;
a--;}
} // Eliminasi loop, a < 0
return 0;
}
For Loop
Bentuk looping yang ke tiga adalah bentuk For. Bentuk ini
umumnya digunakan untuk pengulangan yang sudah
diketahui jumlahnya. Meskipun begitu, loop for bisa saja
dibuat seperti loop while. Sintaks loop for adalah sebagai
berikut.
for (<variabel loop>;<kondisi looping>;<inc/decrement>)
{
<statement loop>
}
pg. 30
pg. 31
pg. 32
Bab V
Array
pg. 33
Array
Setelah membahas mengenai variabel dan beberapa proses
seperti percabangan dan pengulangan, pada bab ini kita akan
membahas kumpulan variabel atau array.
Array adalah sebuah variabel yang didalamnya terdiri dari
sekumpulan variabel. Sebuah array umumnya dilambangkan
dengan indeks dan isi dari array tersebut. Secara visual,
penggambaran array adalah sebagai berikut.
Dimensi
Seperti sebuah tabel, sebuah array dapat dibuat memiliki
beberapa dimensi. Dimensi disini berarti indeksnya memiliki
n komponen. Contoh, array berdimensi satu dengan jumlah
array 4 buah akan memiliki indeks dari nol sampai tiga. Array
dengan jumlah array 4 buah tersebut bisa saja
pg. 34
pg. 36
#include <iostream>
using namespace std;
int main () {
// Deklarasi variabel
int i, a; // i = counter, a = input user
int tabel[7] = {0,3,4,1,2,5,6};
// variabel array
// Input, inisialisasi counter
cin >> a;
// Loop
for (i = 0; i < 9; i++) {
if (a == tabel[i])
// Angka ditemukan
{
cout << \nBilangan anda ditemukan;
break;
}
} // loop selesai apabila I >= 9 atau break
if (i >= 9) // tidak ditemukan, mencapai akhir
{cout << \nBilangan tidak ditemukan !;}
return 0;
}
pg. 37
pg. 38
pg. 39
Bab VI
Fungsi dan Prosedur
pg. 40
Variabel Lokal
Dengan adanya fungsi, variabel dibagi menjadi 2 yaitu
variabel lokal dan global. Variabel lokal adalah variabel yang
nilainya hanya berlaku di dalam fungsi tersebut. Variabel
lokal akan dihapus nilainya setelah fungsi selesai. Variabel
pg. 41
Fungsi Rekursif
Terdapat salah satu trik yaitu penggunaan fungsi rekursif.
Rekursif berarti fungsi tersebut memanggil dirinya sendiri
terus menerus sampai suatu syarat tercapai. Fungsi rekursif
tidak banyak digunakan dalam pemrograman dasar karena
sedikit kompleks.
Untuk memahami lebih jauh mengenai penggunaan fungsi
dan prosedur dalam C, simak contoh kasus berikut ini.
Kasus 5a : Persamaan Posisi, Percepatan, dan Kecepatan
Pada ilmu fisika, terdapat suatu fungsi yang digunakan untuk
mencari posisi, percepatan, dan kecepatan dari suatu objek.
Fungsi ini biasa disebut persamaan Newton yang umumnya
dideklarasikan sebagai berikut :
vt = v0 + a. t
1
x = v0 . t + at 2
2
Fungsi akan terlalu panjang apabila ditulis dalam satu
program. Untuk itu, buatlah program yang menerima
pg. 42
Jawab :
Seperti biasa, kelompokkan terlebih dahulu informasi yang
diperoleh dari soal seperti berikut.
1. Terdapat 3 variabel dengan tipe float yang diinput oleh
user yaitu variabel kecepatan, percepatan, dan waktu.
2. 2 Variabel hasil yaitu posisi dan kecepatan akhir.
3. Terdapat 2 fungsi dan 1 prosedur yaitu countpos,
countvelocity, dan showresult.
4. Persamaan untuk kedua fungsi didefinisikan dalam soal.
Dari hal-hal tersebut, program dapat dibuat seperti berikut.
Perlu diperhatikan bahwa penambahan jumlah variabel
untuk menyimpan nilai posisi dan kecepatan akhir tidak
bersifat wajib.
#include <iostream>
using namespace std;
// Deklarasi fungsi
float countpos (float v, float a, float t)
pg. 43
{
// Deklarasi variabel lokal
float position;
// Proses
position = v*t + (0.5*v*t*t);
// Kembalikan nilai position
return position;
}
float countvelocity (float v, float a, float t)
{
// Deklarasi variabel lokal
float velo;
// Proses
velo = v + a*t;
// Kembalikan nilai kecepatan / velo
return velo;
}
void showresult (float velo, float pos)
{
// Proses, variabel lokal tidak dibutuhkan
cout << Posisi benda adalah pada << pos << meter <<
endl;
cout << Kecepatan akhir benda adalah << velo << meter per
sekon << endl;
}
// Program utama
int main ()
{
// Deklarasi variabel
float a,v,t;
float finalvelo, finalpos;
// Proses
cout << Masukkan
cin >> v; cout <<
cout << Masukkan
cin >> a; cout <<
cout << Masukkan
cin >> t; cout <<
nilai kecepatan : ;
endl;
nilai percepatan : ;
endl;
nilai waktu : ;
endl;
pg. 44
finalvelo = countvelocity(v,a,t);
finalpos = countposition(v,a,t);
// Tampilkan dengan showresult
showresult(finalvelo, finalpos);
return 0;
}
pg. 45