Anda di halaman 1dari 112

2018

Modul Praktikum
Algoritma Struktur Data

Disclaimer Program Studi D3 Manajemen Informatika


Hanya dipergunakan di Lingkungan Internal Fakultas Ilmu Komputer
Universitas AMIKOM Yogyakarta Universitas AMIKOM Yogyakarta
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

KATA PENGANTAR

Algoritma Struktur Data (ASD) merupakan mata kuliah wajib untuk


mahasiswa semester 1 (ganjil) program studi D3 Manajemen Informatika. Tujuan
pembelajaran mata kuliah ini adalah mahasiswa memahami bagaimana pengertian,
konsep dan penerapan dari ilmu logika yang kemudian diterapkan ke dalam bahasa
pemrograman sehingga dapat diaplikasikan dengan benar, bersifat logis dan
sistematis.
Pokok pembahasan mata kuliah ini adalah konsep algoritma, dasar
pemrograman dan struktur bahasa pemrograman C++, perintah dasar seperti input
output, preprosesor directive, header file, variabel, konstanta, tipe data, pengaturan
desimal, tipe data bentukan, percabangan, perulangan, modular atau fungsi, pointer,
array 1 dan 2 dimensi, pengurutan data (sorting), pencarian data (searching),
struktur (struct), tumpukan data (stack), dan antrian data (queue).
Secara garis besar capaian pembelajaran dari mata kuliah ini adalah
mahasiswa diharapkan :
 Mampu membuat algoritma secara logis dan sistematis berdasarkan kasus.
 Mampu membuat program sederhana dengan menggunakan prepreprosesor
directive, header file dan perintah input output, menerapkan variabel,
konstanta, pengaturan desimal dan tipe data bentukan, menerapkan metode
percabangan dan perulangan, program dengan teknik modular.
 Mampu membuat program dengan menggunakan variabel array 1 dimensi
dan 2 dimensi.
 Mampu menerapkan pengelolaan data dengan sistem sorting, searching dan
struct dalam program.
 Mampu menerapkan pengelolaan data dengan algoritma stack dan queue.

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 1 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

PENGESAHAN

Disusun Oleh Diperiksa & Disetujui oleh


Dikendalikan Oleh
Ninik Tri Hartanti, Sri Ngudi Wahyuni, S.T., Hanif Al Fatta, M.Kom
M.Kom M.Kom D3 Manajemen
Yuli Astuti, M.Kom D3 Manajemen Informatika
Informatika
Tgl. Tgl. Tgl.

Modul ini syah dan diberlakukan


mulai: Tgl 17 September 2018
Dekan Fakultas Ilmu Komputer
Krisnawati, S.Si., M.T.

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 2 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Daftar Isi
KATA PENGANTAR ............................................................................................ 1
PENGESAHAN ...................................................................................................... 2
Minggu 1. Logika Proposision 1 (Proposition Logic) ......................................... 6
1.1. Tujuan Intruksi Khusus ........................................................................ 6
1.2. Dasar Teori ............................................................................................. 6
1.3 Latihan .................................................................................................. 14
1.4. Tugas......................................................................................................... 15
Minggu 2. Logika Proposision 2 (Proposition Logic) ....................................... 16
2.1. Tujuan Intruksi Khusus ......................................................................... 16
2.2. Dasar Teori .............................................................................................. 16
2.3. Latihan ..................................................................................................... 18
2.4. Tugas...................................................................................................... 18
Minggu 3. Dasar Pemrograman dengan Bahasa C++ ..................................... 19
3.1. Tujuan Intruksi Khusus ...................................................................... 19
3.2. Dasar Teori ........................................................................................... 19
3.3. Latihan .................................................................................................. 23
3.4. Tugas...................................................................................................... 25
Minggu 4. Tipedata, Variabel dan Kostanta dalam Bahasa C++ ................... 27
4.1. Tujuan Intruksi Khusus ...................................................................... 27
4.2. Dasar Teori ........................................................................................... 27
4.3. Latihan .................................................................................................. 29
4.4. Tugas...................................................................................................... 30
Minggu 5. Operator dan Struktur Percabangan dalam Bahasa C++ ............ 31
5.1. Tujuan Instruksi Khusus ..................................................................... 31
5.2. Dasar Teori ........................................................................................... 31
5.3. Latihan .................................................................................................. 35
5.4. Tugas...................................................................................................... 40
Minggu 6. Struktur Perulangan dalam Bahasa C++ ....................................... 43
6.1. Tujuan Instruksi Khusus ..................................................................... 43
6.2. Dasar Teori ........................................................................................... 43

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 3 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

6.3. Latihan .................................................................................................. 44


6.4. Tugas...................................................................................................... 49
Minggu 7. Review materi (minggu 1 – 6) dan Responsi 1 ............................... 52
7.1. Tujuan Instruksi Khusus ......................................................................... 52
7.2. Dasar Teori ............................................................................................... 52
7.3. Latihan ...................................................................................................... 52
7.4. Tugas.......................................................................................................... 52
Minggu 8. Fungsi dalam Bahasa C++ ............................................................... 53
8.1. Tujuan Instruksi Khusus ......................................................................... 53
8.2. Dasar Teori ............................................................................................... 53
8.3. Latihan ...................................................................................................... 54
8.4. Tugas.......................................................................................................... 58
Minggu 9. Array (Larik)..................................................................................... 59
9.1. Tujuan Instruksi Khusus ......................................................................... 59
9.2. Dasar Teori ............................................................................................... 59
9.3. Latihan ...................................................................................................... 60
9.4. Tugas.......................................................................................................... 69
Minggu 10. Sorting (Pengurutan Data)............................................................. 71
10.1. Tujuan Instruksi Khusus ....................................................................... 71
10.2. Dasar Teori ............................................................................................. 71
10.3. Latihan .................................................................................................... 72
10.4. Tugas........................................................................................................ 77
Minggu 11. Searching (Pencarian Data) ........................................................... 78
11.1. Tujuan Instruksi Khusus ....................................................................... 78
11.2. Dasar Teori ............................................................................................. 78
11.3. Latihan .................................................................................................... 78
11.4. Tugas........................................................................................................ 81
Minggu 12. Struct (Struktur) ............................................................................. 82
12.1. Tujuan Instruksi Khusus ....................................................................... 82
12.2. Dasar Teori ............................................................................................. 82
12.3. Latihan .................................................................................................... 82

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 4 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

12.4. Tugas........................................................................................................ 88
Minggu 13. Stack (Tumpukan Data) dan Queue (Antrian Data) ................... 90
13.1. Tujuan Instruksi Khusus ....................................................................... 90
13.2. Dasar Teori ............................................................................................. 90
13.3. Latihan .................................................................................................... 90
13.4. Tugas........................................................................................................ 93
Minggu 14. Pointer dan Responsi 2 ................................................................... 94
14.1. Tujuan Instruksi Khusus ....................................................................... 94
14.2. Dasar Teori ............................................................................................. 94
14.3. Latihan .................................................................................................... 94
14.4. Tugas........................................................................................................ 97
14.5. Contoh Program Lainnya ..................................................................... 97
DAFTAR PUSTAKA ........................................................................................ 111

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 5 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Minggu 1. Logika Proposision 1 (Proposition Logic)


1.1. Tujuan Intruksi Khusus
Setelah mengikuti modul ini, mahasiswa diharapkan mampu:
1. Menjelaskan pengertian proposisi
2. Menjelaskan pengertian proposisi atom, proposisi majemuk, dan operator
logika
3. Menjelaskan pernyataan ingkaran/negasi
4. Menjelaskan pernyataan majemuk yang meliputi konjungsi, disjungsi,
disjungsi exclusive (XOR), implikasi dan biimplikasi
5. Menjelaskan kontrapositif, konvers, dan invers
6. Menjelaskan formula logika proposisi
1.2. Dasar Teori
Proposision (Proposition)
Proposisi adalah merupakan kalimat deklaratif atau pernyataan yang
memiliki nilai kebenaran benar atau salah, tetapi tidak keduanya Logika
proposisi merupakan dasar ilmu yang dipergunakan dalam computer sciences
dan software engineering.. Logika Proposisi merupakan suatu sistem logika
yang didasarkan atas proposisi. Logika proposisi juga diistilahkan dengan
kalkulus proposisi (propositional calculus). Proposisi sederhana biasanya
ditulis dengan huruf p, q, r, s, p1, p2. Nilai kebenaran yang mungkin untuk suatu
proposisi :
 Benar, dapat pula ditulis: B, T, true, >, 1
 Salah, dapat pula ditulis: S, F, false, 0.
Berikut adalah beberapa contohnya :
1. 23 < 32
 Apakah merupakan pernyataan? < ya >
 Apakah merupakan proposisi? < ya >
 Apa nilai kebenarannya? < benar >
2. 34-43 < 10
 Apakah merupakan pernyataan? < ya >
 Apakah merupakan proposisi? < ya >

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 6 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

 Apa nilai kebenarannya? < salah >


3. x+3 >= 2015
 Apakah merupakan pernyataan? < ya >
 Apakah merupakan proposisi? < bukan, karena nilai kebenaran
tergantung pada nilai x, pernyataan benar apabila x>=2012 >
 Merupakan kalimat terbuka
4. x+2x-3x=0
 Apakah merupakan pernyataan? < ya >
 Apakah merupakan proposisi? < ya, karena berapapun nilai x,
pernyataan x+2x-3x=0 selalu benar >
 Apa nilai kebenarannya? < benar >
5. “pelajari matakuliah logika matematika dengan baik”
 Apakah merupakan pernyataan?
< bukan, ini merupakan permintaan >
 Apakah merupakan proposisi?
< bukan, karena bukan pernyataan >
 Hanya pernyataan yang bisa menjadi preposisi.
Proposisi Atom, Proposisi Majemuk dan Operator Logika
Beberapa contoh-contoh di atas adalah merupakan proposisi sederhana,
yang juga disebut sebagai proposisi atom, yang dapat dibentuk menjadi
proposisi baru menggunakan operator (penghubung) logika. Proposisi yang
dihasilkan selanjutnya disebut sebagai proposisi majemuk (compound
proposition). Berdasarkan banyaknya proposisi atom yang dioperasikan, ada
dua jenis operator logika dasar, yaitu :
1. Operator uner (unary ) hanya memerlukan satu operand  negasi
2. Operator biner (binary ) memerlukan dua operand, diantaranya :
konjungsi (), disjungsi (), implikasi (→), dan biimplikasi (↔ ).
Pernyataan adalah kalimat yang hanya benar saja atau salah saja, akan tetapi
tidak sekaligus benar dan salah, dan diberi lambang dengan huruf kecil, seperti
: a, b, p, q. Kalimat Terbuka adalah kalimat yang masih mengandung variabel,

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 7 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

sehingga belum dapat ditentukan nilai kebenarannya (benar atau salah),


sehingga untuk menentukan benar atau salahnya, kita perlu pengamatan lebih
lanjut. Berikut adalah beberapa contohnya.
 Indonesia Raya adalah lagu kebangsaan Indonesia (pernyataan benar)
 Bika ambon berasal dari Ambon. (pernyataan salah)
 Jakarta adalah ibukota negara Indonesia. (pernyataan benar)
 12x + 6 = 91 (pernyataan ini dinamakan kalimat terbuka karena masih
harus dibuktikan kebenarannya. Apakah benar 12x jika dijumlahkan
dengan 6 akan menghasilkan 91?).
 Terimakasih.., saya sudah kenyang. (Pernyataan ini dinamakan kalimat
terbuka karena masih harus dibuktikan kebenarannya. Apakah benar
dia tidak mau makan karena kenyang? Atau memang lagi malas
makan?)
Pernyataan Ingkaran/Negasi
Membuat pernyataan baru berupa “ingkaran/negasi/penyangkalan” atas
beberapa pernyataan. Berikut adalah tabel kebenaran ingkaran :
Tabel 1.1. Tabel Negasi
P p
T F
F T
T pernyataan bernilai benar, F pernyataan bernilai salah. Artinya, jika suatu
pertanyaan (p) benar, maka ingkaran ( p) akan bernilai salah, begitu pula
sebaliknya. Berikut adalah beberapa contoh:
p : Besi memuai jika dipanaskan (pernyataan bernilai benar).
 p : Besi tidak memuai jika dipanaskan (pernyataan bernilai salah).
p : Semua unggas adalah burung.
 p : Ada unggas yang bukan burung.
Pernyataan Majemuk
Majemuk adalah gabungan dari beberapa pernyataan tunggal yang
dihubungkan dengan kata hubung. Dalam ilmu matematika, terdapat 4 macam
pernyataan majemuk:

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 8 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

1. Konjungsi (  )
Konjungsi adalah pernyataan majemuk dengan kata hubung “dan”.
Sehingga, notasi “p ^ q” dibaca “p dan q”. Tabel kebenaran untuk
konjungsi adalah sebagai berikut:
Tabel 1.2. Tabel Kebenaran Konjungsi
p q pq
T T T
T F F
F T F
F F F
p = pernyataan 1
q = pernyataan 2
p  q = pernyataan 1 dan pernyataan 2
Dari tabel di atas, kita dapat melihat bahwa konjungsi hanya akan
benar jika kedua pernyataan (p dan q) benar.
Contoh:
 p: 3 adalah bilangan prima (pernyataan bernilai benar)
 q: 3 adalah bilangan ganjil (pernyataan bernilai benar)
 p  q: 3 adalah bilangan prima dan ganjil (pernyataan bernilai benar)
2. Disjungsi (  )
Disjungsi adalah pernyataan majemuk dengan kata hubung “atau”.
Sehingga notasi “p  q” dibaca “p atau q”. Tabel nilai kebenaran
disjungsi:
Tabel 1.3. Tabel Kebenaran Disjungsi
p q pq
T T T
T F T
F T T
F F F
p = pernyataan 1
q = pernyataan 2
p  q = pernyataan 1 atau pernyataan 2

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 9 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Dari tabel di atas, kita dapat melihat bahwa disjungsi hanya akan
benar jika salah satu dari kedua pernyataan (p atau q) benar, atau
disjungsi hanya salah jika kedua pernyataan (p dan q) salah.
Contoh:
p: Paus adalah mamalia (pernyataan bernilai benar)
q: Paus adalah herbivora (pernyataan bernilai salah)
p  q: Paus adalah mamalia atau herbivora (pernyataan bernilai benar)
3. Disjungsi Exclusive (XOR)
Apabila p dan q merupakan proposisi, maka p  q juga merupakan
proposisi yang dinamakan sebagai disjungsi eksklusif/ exclusive or (xor
) dari p dan q. p  q dibaca p xor q, p  q bernilai benar (T) tepat ketika
p dan q memiliki nilai kebenaran yang berbeda. Berikut adalah tabel
kebenaran XOR.
Tabel 1.4. Tabel Kebenaran XOR
P q pq
T T F
T F T
F T T
F F F
4. Implikasi (→)
Implikasi adalah pernyataan majemuk dengan kata hubung “jika…
maka…” Sehingga notasi dari “p → q” dibaca “Jika p, maka q”.
Adapun tabel nilai kebenaran dari implikasi seperti berikut :
Tabel 1.5. Tabel Kebenaran Implikasi
p q p→q
T T T
T F F
F T T
F F T
p = pernyataan 1
q = pernyataan 2
p → q = jika pernyataan 1 maka pernyataan 2
Dari tabel terlihat bahwa implikasi hanya bernilai salah jika
anteseden (p) benar, dan konsekuen (q) salah.

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 10 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Contoh:
p: Andi belajar dengan aplikasi ruangguru. (pernyataan bernilai benar)
q: Andi dapat belajar di mana saja. (pernyataan bernilai benar)
p → q: Jika Andi belajar dengan aplikasi ruangguru, maka Andi dapat
belajar di mana saja (pernyataan bernilai benar).
5. Biimplikasi (↔)
Biimplikasi adalah pernyataan majemuk dengan kata hubung “… jika
dan hanya jika”. Sehingga, notasi dari “p ↔ q” akan dibaca “p jika dan
hanya jika q”. Tabel nilai kebenaran biimplikasi sebagai berikut:
Tabel 1.5. Tabel Kebenaran Biimplikasi
p q p↔q
T T T
T F F
F T F
F F T
p = pernyataan 1
q = pernyataan 2
p ↔ q = pernyataan 1 jika dan hanya jika pernyataan 2
Dari tabel kebenaran tersebut, dapat kita amati bahwa biimplikasi akan
bernilai benar jika sebab dan akibatnya (pernyataan p dan q)
bernilai sama. Baik itu sama-sama benar, atau sama-sama salah.
Contoh:
 p: 30 x 2 = 60 (pernyataan bernilai benar)
 q: 60 adalah bilangan ganjil (pernyataan bernilai salah)
 p ↔ q: 30 x 2 = 60 jika dan hanya jika 60 adalah bilangan ganjil
(pernyataan bernilai salah).
6. Kontrapositif, Konvers, dan Invers
Diberikan suatu implikasi p → q, maka :
a) kontrapositif (atau kontraposisi) dari p → q adalah  q →  p
b) konvers dari p → q adalah q → p
c) invers dari p → q adalah  p →  q

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 11 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Tabel kebenaran untuk kontrapositif, konvers, dan invers adalah


sebagai berikut:
Tabel 1.6. Tabel Kebenaran Kontrapositif, Konvers dan Invers
p q -p -q p→q -p→-q q → p -p → -q
T T F F T T T T
T F F T F T T T
F T T F T F F F
F F T T T T T T

Urutan Pengerjaan (Presedens) Operator Logika


Presedens operator logika memberikan suatu aturan operator mana
yang harus lebih dulu dioperasikan (dikenakan pada suatu operand). Berikut
adalah tabel presedens operator logika.
Tabel 1.7. Tabel Presedens Operator Logika
Operator Urutan
 1
 2
 3
 4
→ 5
↔ 6
Contoh presedens seperti di bawah ini:
1. p  q  r berarti p  (q  r)
2.  p  q berarti ( p)  q
3. p  q → r berarti (p  q) → r
4. p →  q  r berarti p → (( q)  r)
5.  p  q → r   s berarti (( p)  q) → (r  ( s))
Formula Logika Proposisi
Formula (atau kalimat) logika proposisi dibentuk dari:
a) Konstanta proposisi: True (benar) dan False (salah)
b) Variabel proposisi atom :
p, p1, p2,…

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 12 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

q, q1, q2,…
r, r1, r2,…
c) Operator logika proposisi :  , , , , →, ↔
Berdasarkan defnisi formula logika proposisi, kita dapat mengetahui
bahwa
1. p ^ q = adalah formula logika proposisi
2. pq  = bukan formula logika proposisi
3.   ( p →   r) = adalah formula logika proposisi, formula ini dapat
ditulis  ( ( p →  ( r)))
4. p ^ q →  r  s = bukan formula logika proposisi
5. p  q  → r  s = bukan formula logika proposisi
6. p  p  q → r  s = adalah formula logika proposisi, formula ini dapat
ditulis (p  (p  q)) → (r  s)
7.  ( (  (  p → q) → r) → s) = adalah formula logika proposisi
8.  ((p → q)  (r  s)) = bukan formula logika proposisi
Pohon urai
Pohon urai (parse tree) dapat digunakan untuk menggambarkan
struktur suatu formula logika proposisi. Sebagai contoh, pohon urai untuk
formula ( p  q) → (p  (q   r)) adalah sebagai berikut:

Gambar 1.1. Pohon Urai

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 13 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

1.3 Latihan
1. Tuliskan (dalam bahasa Indonesia) negasi dari proposisi-proposisi berikut:
a) Saya seorang mahasiswa
b) Bulan ini bukan bulan Agustus
c) Susi tidak pernah dating tidak tepat waktu
d) 2 10 < 10 2
e) 3 4 ≥ 4 3
2. Tentukan negasi dari proposisi-proposisi berikut dalam bahasa Indonesia.
a) Bella lebih kaya daripada Susi
b) Susi lebih tua daripada Bella
c) Bella lebih cerdas daripada Susi
3. Diberikan proposisi sebagai berikut:
p = Matahari terbit dari timur
r = Kucing adalah reptile
q = 2 x 3 ≤ 32
s=24<42
Tuliskan dalam Bahasa Indonesia dan tentukan nilai kebenaran dari
proposisi majemuk berikut ini:
a) p   q
b)  r   s
c)  p   q
d) r   s
4. Tentukan, apakah proposisi–proposisi berikut ekuivalen:
a) ((not p or q) and (p or not r)) and (p or not q) dengan not (p or r)
b) (r or p) and ((not r or (not r or (p and q)) and (r or q)) dengan p and
q
c) (p or q) and (not p and (not p and q)) dengan not p and q
5. Berikan tanda kurung untuk memperjelas presedens operator-operator
logika pada proposisi-proposisi majemuk berikut!
a) 1 p  q  r
b) 2  p  q

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 14 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

c) p  q → r
d) p →  q  r
e)  p  q → r   s
1.4. Tugas
1. Tentukan semua subformula dari formula (p → q)  (q → p)
2. Tentukan semua subformula dari formula ( p  q) → (p  (q   r)
3. Gambarkan pohon urai (parse tree) untuk formula-formula berikut:
a)  (p  (q →  p))  r
b) ( p  q) → (p  (q   r))
c)  ((q →  p)  (p → r  q))

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 15 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Minggu 2. Logika Proposision 2 (Proposition Logic)


2.1. Tujuan Intruksi Khusus
Setelah mengikuti modul ini, mahasiswa diharapkan mampu :
1. Menjelaskan interpretasi dan semantik formula logika proposisi
2. Menjelaskan pengertian sifat-sifat formula logika proposisi
berdasarkan semantiknya
3. Menjelaskan skema formula, konsekuensi logis, dan kesetaraan logika
4. Menjelaskan hukum-hukum ekuivalensi logika
2.2. Dasar Teori
Intrepetasi
Interpretasi dari suatu formula logika proposisi adalah pemberian nilai
kebenaran terhadap proposisi tersebut. Proposisi yang ditinjau dapat berupa
proposisi
majemuk. Untuk proposisi atom, interpretasi merupakan pemetaan antara suatu
variabel proposisi terhadap nilai kebenarannya. Interpretasi dilambangkan
dengan simbol I, I1, I2, . . . .
I (p) = T berarti p diinterpretasikan benar oleh interpretasi I
I (q) = F berarti q diinterpretasikan salah oleh interpretasi I
I3 (p) = F berarti p diinterpretasikan salah oleh interpretasi I3
I5 (q) = T berarti q diinterpretasikan benar oleh interpretasi I5
 Interpretasi untuk sebuah proposisi dapat diperoleh cukup dengan
memberikan nilai kebenaran pada semua variabel proposisi atom yang
muncul pada proposisi itu.
 Nilai kebenaran proposisi majemuk dapat ditentukan dari nilai kebenaran
proposisi atom yang menyusunnya.
 Untuk formula yang kompleks, interpretasi (disebut juga sebagai semantik)
dapat ditentukan dengan meninjau interpretasi setiap subformula yang ada
pada formula tersebut.

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 16 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Interpretasi dan Tabel Kebenaran


Satu baris tabel kebenaran bersesuaian dengan satu interpretasi dari
proposisi. Misalkan A adalah formula (p   q) → (p  q), tabel kebenaran
untuk A dapat diperoleh sebagai berikut :
Tabel 2.1. tabel Kebenaran Interpretasi
Intrepetasi Ik ( q) Ik (p   q) Ik (p  q) Ik ( A)
I1 (p) = T , I1 (q) = T F T T T
I2 (p) = T , I2 (q) = F T T F F
I3 (p) = F , I3 (q) = T F F F T
I4 (p) = F , I4 (q) = F T T F F

Keabsahan (Validity), Keterpenuhan (Satisfability), dan Kontradiksi


A dikatakan absah (valid) jika A benilai benar (T) untuk setiap
interpretasi yang diberikan pada A, dan A juga dikatakan sebagai suatu
tautologi. A dikatakan terpenuhi (satisfable) jika terdapat setidaknya sebuah
interpretasi I untuk A yang membuat A bernilai benar (T). A dikatakan
kontradiksi/ tak dapat terpenuhi (contradictory/ unsatisfable) jika A benilai
salah (F) untuk setiap interpretasi yang diberikan pada A.
Berikut adalah contoh formula absah, terpenuhi dan kontradiksi.
Terdapat formula A = (p  q)  (p   q), maka periksalah formula tersebut
bersifat absah, terpenuhi atau kontradiksi. Penyelesaiannya dengan
menggunakan tabel kebenaran, sehingga tabel akan seperti di bawah ini.
Tabel 2.2. Tabel Kebenaran formula (p  q)  (p   q)
p q q (p  q) (p   q) A
T T F F T T
T F T T F T
F T F T F T
F F T F T T

Karena terdapat sebuah interpretasi yang mengakibatkan A bernilai


benar, maka A merupakan formula yang terpenuhi. Kemudian, karena setiap
interpretasi yang diberikan pada A mengakibatkan A bernilai benar, maka A
merupakan formula yang absah.

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 17 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

2.3. Latihan
Cobalah kerjakan beberapa soal latihan di bawah ini!
1. Periksa apakah formula A yang berupa (p  q)  ( p   q) bersifat
absah, terpenuhi atau kontradiksi.
2. Periksa apakah formula B yang berupa (p  q)   r bersifat terpenuhi.
Apakah B bersifat absah? Apakah B bersifat kontradiksi? Apakah B
merupakan contingency?
2.4. Tugas
1. Diberikan formula A =  (p  q  r  s) → ( p   q   r   s). Untuk
memeriksa apakah A bersifat absah (valid), apakah kita harus
menggunakan tabel kebenaran?
2. Tunjukkan bahwa (p → q) ↔ ( p  q) adalah formula yang absah tanpa
memakai tabel kebenaran.

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 18 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Minggu 3. Dasar Pemrograman dengan Bahasa C++


3.1. Tujuan Intruksi Khusus
Setelah mengikuti modul ini, mahasiswa diharapkan mampu:
1. Menjelaskan tentang dasar-dasar bahasa pemrograman
2. Menjelaskan tentang elemen dasar bahasa pemrograman dari variabel
dan tipe data yang digunakan
3. Menjelaskan dan mencontohkan operasi input dan output pada bahasa
pemrograman
3.2. Dasar Teori
Dasar Bahasa Pemrograman C++
Pemrograman sudah ada semenjak adanya komputer pertama
diciptakan. Tapi pada awalnya programmer bekerja dengan bahasa komputer
yang sangat sulit untuk di pahami oleh manusia, bahasa itu adalah bahasa
mesin. Karena sangat sulit untuk bekerja dengan bahasa mesin, maka dari itu
dibuatlah bahasa Assembly yang merupakan bahasa rakitan, kumpulan dari
singkatan kode-kode. Bahasa tingkat rendah Assembly pun masih sulit untuk
manusia, maka manusia menciptakan bahasa pemrograman tingkat tinggi yang
mudah untuk dipahami oleh manusia. Waktu ke waktu semakin banyak
pengembang yang berusaha untuk mengembangkan bahasa pemrograman,
banyak bahasa tingkat tinggi yang bermunculan dengan fasilitas yang mereka
tawarkan, salah satunya adalah C++.
Bahasa C++ lahir pada tahun 1980, yang dibuat oleh Bjarne
Stroustrup di AT&T Bell Laboratories awal tahun 1980-an berdasarkan C
ANSI (American National Standard Institute). Pertama kali, prototype C++
muncul sebagai C yang dipercanggih dengan fasilitas kelas, bahasa tersebut
disebut “C dengan kelas” (C with Class). Struktur penulisan kode program C++
pada dasarnya masih menuruni struktur penulisan Bahasa Pemrograman C.
Bahasa Pemrograman C++ merupakan Bahasa Pemrograman sendiri dan hanya
peluasan dari Bahasa Pemrograman C, dan kita masih dapat menggunakan
bahasa C di tengah bahasa C++. Struktur program dari bahasa pemrograman
C++ terdiri dari kumpulan baris pernyataan yang dibentuk dari sejumah blok

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 19 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

fungsi dan keyword. Kode program tersebut dimungkinkan untuk memerintah


komputer untuk melaksanakan tugas yang diberikan.
Tabel 3.1. Perangkat yang diperlukan Hardware – Software
No Jenis Hardware Software
1 PC Desktop Windows 10
2 Dev C++ 5.11

Struktur Bahasa C++ seperti di bawah ini.

Keterangan Baris Program:


• Baris yang diawali dengan double slash (//) atau ( /*.....*/ ) merupakan baris
komentar dan tidak akan dieksekusi. Baris ini berguna untuk memberi judul
,catatan, atau keterangan pada program.
• #include<header>
Program yang dibuat menggunakan file header yang berisi prototype fungsi
yang nantinya akan digunakan dalam program. Baris ini digunakan untuk
mengarahkan kompiler tentang file header yang digunakan.
• main() { }
Baris ini merupakan awal dari eksekusi program dan merupakan program
utama yang harus dimiliki oleh program dalam bahasa C++.
• Dalam program utama dapat berisi deklarasi variabel, konstanta, serta
perintah-perintah program. Setiap baris deklarasi maupun perintah harus
diakhiri tanda titik koma ( ; ).

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 20 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Elemen Dasar bahasa Pemrograman


Berikut adalah contoh struktur penulisan program Bahasa C++.

Gambar 3.1 Struktur Program Bahasa C++


Program C maupun C++ selalu tersusun dari 5 (Lima) bagian utama,
yaitu:
1. Preprocessor Directive (Pengarah Kompilator)
2. Declaration (Deklarasi)
3. Definition (Definisi)
4. Statement atau Expressions (Pernyataan atau Ekspresi)
5. Comments (Komentar)
#include merupakan salah satu jenis pengarah praprosesor (preprocessor
directive). Pengarah praprosesor ini dipakai untuk membaca file yang di antaranya
berisi deklarasi fungsi dan definisi konstanta. Beberapa file judul disediakan dalam
C. File-file ini mempunyai ciri yaitu namanya diakhiri dengan ekstensi .h. Misalnya
pada program #include <stdio.h> menyatakan pada kompiler agar membaca file
bernama stdio.h saat pelaksanaan kompilasi.
Bentuk umum #include = #include “namafile”. Bentuk pertama (#include
<namafile>) mengisyaratkan bahwa pencarian file dilakukan pada direktori khusus,
yaitu direktori file include.
Sedangkan bentuk kedua (#include “namafile”) menyatakan bahwa
pencarian file dilakukan pertama kali pada direktori aktif tempat program sumber
dan seandainya tidak ditemukan pencarian akan dilanjutkan pada direktori lainnya
yang sesuai dengan perintah pada sistem operasi.

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 21 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Operasi Input dan Output


Perintah untuk input data adalah dengan menggunakan perintah
cin>>variabel. Beberapa perintah yang fungsinya hampir sama dengan "cin",
perintah tersebut yaitu :
a) cin>>variabel
b) cin.getline (nama_variabel,ukuran_variabel) atau getline (cin, nama_var_input
)
c) gets (nama_variabel)
Tabel di bawah ini adalah tabel perbedaan dari ketiga perintah input tersebut.
Tabel 3.2. Perbedaan perintah input cin – cin.getline – gets
cin cin.getline gets
Pada perintah cin, Dapat membaca spasi Pada perintah gets juga
tidak dapat membaca pada karakter data dapat membaca spasi
spasi pada karakter yang kita inputkan pada karakter yang kita
data yang kita tetapi kita harus inputkan namun pada
inputkan memberikan nama perintah ini kita harus
variabel dan ukuran menambahkan
variabel di dalam Preprocessor #include
perintah cin.getline <stdio.h> dan pada
akhir perintah tidak
disarankan untuk
memasukan ukuran
dari variabel

Berikut adalah contoh program untuk deklarasi variabel dan cara mengaksesnya

Gambar 3.2 Contoh Program Input dengan perintah getline dan


cin.getline

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 22 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

3.3. Latihan
Latihan 3.1.cpp
Penerapan perintah cin>>variabel

Gambar 3.3 Contoh Program Input dengan perintah cin


Hasilnya sebagai berikut:

Gambar 3.4 Hasil Program Input dengan perintah cin


Berdasarkan hasil di atas, perintah cin tidak bisa menampilkan nama dengan
lengkap, dan hanya bisa menampilkan kata pertama saja.
Latihan 3.2.cpp
Penerapan perintah cin.getline (nama_variabel,ukuran_variabel)

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 23 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Gambar 3.5 Contoh Program Input dengan perintah cin.getline


Hasilnya adalah sebagai berikut:

Gambar 3.6 Hasil Program Input dengan perintah cin.getline

Berdasarkan hasil di atas, perintah cin.getline sudah bisa menampilkan


nama dengan lengkap, tidak hanya menampilkan kata pertama saja.

Latihan 3.3.cpp
Penerapan gets (nama_variabel)

Gambar 3.7 Contoh Program Input dengan perintah gets

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 24 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Gambar 3.8 Hasil Program Input dengan perintah gets


3.4. Tugas
Cobalah beberapa program latihan di bawah ini, dan analisalah hasilnya !
1. Latihan 3.4.cpp

2. Latihan 3.5.cpp

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 25 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

3. Latihan 3.6.cpp

4. Latihan 3.7.cpp
a) Buatlah listing program untuk memasukkan data berupa angka
kemudian berikan perintah berupa perkalian, penjumlahan,
pembagian dan pengurangan.
b) Buatlah listing program untuk memasukkan dan menampilkan data
mahasiswa (nama, nim, alamat, jurusan/prodi, kelas, jumlah sks
yang diambil.
c) Buat dan simpan di dalam folder dengan nama nim mahasiswa
masing-masing, kirimkan ke folder yang ditentukan asisten
praktikum.
d) Berikanlah kesimpulan dari beberapa latihan program di atas!

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 26 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Minggu 4. Tipedata, Variabel dan Kostanta dalam Bahasa C++


4.1. Tujuan Intruksi Khusus
Setelah mempelajari materi ini, mahasiswa diharapkan mampu :
1. Memahami definisi tipedata, variabel dan konstanta
2. Mendeklarasikan variabel dan konstanta dengan tipedata yang sesuai
3. Memanggil variabel dan konstanta
4. Membuat program sederhana menggunakan perintah input, output,
variabel dan konstanta
4.2. Dasar Teori
Tipe data
Tipe data adalah suatu kelompok yang mempunyai jenis-jenis tertentu,
atau sebuah cara yang digunakan untuk menentukan jenis suatu data tersebut.
Dalam bahasa pemrograman mempunyai banyak jenis-jenis tipe data yang bisa
digunakan. Namun setiap bahasa pemrograman mempunyai tipe data yang
mungkin tidak ada di bahasa pemrograman lain.
Secara umum, dalam bahasa pemrograman apapun mengenal 5 tipe data
ini, yaitu integer, float, char, string, dan boolean. Masing masing tipe data ini
mempunyai kegunaan masing-masing. Oleh karena itu, jika pada saat
pengolahan data yang terdapat data yang mempunyai tipe data berbeda, maka
harus dilakukan konversi terlebih dahulu. Berikut adalah penjelasan dari
keempat tipe data.
1. Integer, tipe data integer ini digunakan untuk mendeklarasikan data
atau variabel sebagai bilangan bulat. Misalkan nilai 10, 7, 29,100.
Penggunaan tipe data integer biasanya digunakan untuk data yang akan
dilakukan dalam penjumlahan, pengurangan, pembagian, atau
perkalian.
2. Float, tipe data ini digunakan untuk data angka, namun untuk angka
atau nilai yang berupa pecahan (decimal). Misalkan nilai 1.5, 3.5, 3.14,
dan pecahan lainnya.

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 27 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

3. Char, tipe data yang digunakan untuk deklarasi variabel berupa


karakter. Karakter tersebut bisa berupa simbol, alphabet (huruf) , atau
angka.
4. String, tipe data yang digunakan untuk mendeklarasikan data yang
berisi kalimat atau kata. Misalkan nama mahasiwa, alamat.
5. Boolean, tipe data ini sangat berbeda dengan yang lainnya. Karena tipe
data boolean ini hanya digunakan untuk data yang mempunyai 2 nilai
saja, yaitu true atau false.
Variabel
Variabel adalah suatu data yang nilainya dapat berubah-ubah. Variabel
sangat erat kaitannya dengan tipe data. Karena keberadaan suatu data harus
ditentukan tipe datanya untuk pengenalan processor dalam mengolah data
tersebut. Contohnya seperti dibawah ini :
int A ;
Maksud dari satu baris script diatas adalah memberi instruksi pada processor
untuk membuat variable A yang dialokasikan pada memori sebesar bit tipe data
integer dengan nilai NULL (tidak terisi apapun). Mempelajari bahasa
permrograman selain Asembly, tidak perlu dipikirkan di mana alamat memori
untuk menyimpan variabel tersebut, tetapi yang perlu dipahami ialah harus tahu
dan paham dalam penggunaan tipe data pada variabel.
Konstanta
Variabel dan konstanta intinya hampir sama. Konstanta berarti suatu data
yang nilainya tetap. Jadi konstanta juga seperti variabel namun nilainya tidak
dapat berubah-ubah. Contoh deklarasi variabel yang bersifat konstan (tetap)
adalah:
# define pi 3.14 //di bagian atas sebelum fungsi utama (main)
Atau
const float pi = 3.14; //di dalam fungsi utama (main).
Maksud dari satu baris script diatas adalah mendeklarasikan dan menentukan
bahwa nilai (value) dari variabel pi adalah 3.14.

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 28 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

4.3. Latihan
Cobalah beberapa program latihan di bawah ini, dan analisalah hasilnya !
Latihan 4.1.cpp

Latihan 4.2.cpp

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 29 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Latihan 4.3.cpp

4.4. Tugas
Berdasarkan beberapa latihan program di atas, maka buatlah program untuk
kasus berikut ini:
a) Menentukan luas bangun segitiga dan luas persegipanjang.
b) Aplikasi kalkulator sederhana, terdiri dari penjumlahan, pengurangan,
perkalian dan pembagian.
c) Pada program latihan 4.4.cpp terdapat penerapan typecasting, jelaskan
bagaimana typecasting tersebut dan jelaskan typecasting apa saja dalam
Bahasa C++!

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 30 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Minggu 5. Operator dan Struktur Percabangan dalam Bahasa C++


5.1. Tujuan Instruksi Khusus
Setelah mempelajari materi ini, mahasiswa diharapkan mampu :
1. Memahami operator gabungan dan type casting
2. Membuat program sederhana menggunakan perintah input, output dan
konstanta
3. Menggunakan operator gabungan dan type casting pada program.
4. Menerapkan struktur proses increment dan decrement.
5.2. Dasar Teori
Operator
Macam-macam operator yang digunakan diantaranya adalah sebagai
berikut:
1. Operator Assignment (=)
2. Operator Unary (+, -, ++, - -)
3. Operator Binary (aritmatika, logika, relasional)
4. Operator Ternary
Operator Assignment (=)
Operator assignment dilambangkan dengan ‘=‘ (sama dengan), dan
berfungsi untuk
memasukkan (assign) nilai ke dalam suatu variabel atau konstanta.
Contoh :
const float pi = 3.14;
int nilai = 50;
Operator Unary (+, -, ++, - -)
Operator Unary adalah merupakan operator yang melibatkan sebuah
operand.
Tabel 5.1. Operator Unary
Operator Jenis Operator Contoh
+ Membuat nilai positif + 10
- Membuat nilai negative - 10
++ Increment ++10
-- Decrement --10

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 31 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Increment
Increment adalah suatu penambahan nilai yang terjadi pada sebuah
variabel. Adapun operator yang digunakan untuk melakukan increment adalah
operator ++. Operator ini akan menambahkan nilai dari suatu variabel dengan
nilai 1. Terdapat dua jenis increment dalam bahasa C++ yaitu pre-increment
dan post-increment.
Pre-increment adalah melakukan penambahan nilai sebelum suatu variable itu
diproses, sedangkan Post-increment adalah melakukan proses terlebih dahulu
sebelum dilakukan penambahan nilai.
Decrement
Merupakan kebalikan dari proses increment, yaitu menurunkan
(mengurangi) nilai dari suatu variabel, dan ada dua jenis yaitu pre-decrement,
dan post-decrement.
Operator Binary (Aritmatika, Logika, Relasional)
Tabel 5.2. Operator Aritmatika
Operator Jenis Operator Contoh
+ Penjumlahan 4+5 = 9
- Pengurangan 6-2 = 4
* Perkalian 4*2 = 8
/ Pembagian 9/3 = 3
% Sisa bagi 10%3 = 1
Tabel 5.3. Operator Logika
Operator Jenis Operator Contoh
&& And (dan) 1 && 1 = 1
|| Or (atau) 1 || 1 = 1
! Negasi (lawan) !0 = 1
Tabel 5.4. Operator Relasional
Operator Jenis Operator
< Lebih kecil
<= Lebih kecil atau sama
dengan
> Lebih besar
>= Lebih besar atau sama
dengan
= Sama dengan
!= Tidak sama dengan

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 32 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Operator Ternary
Operator Ternary digunakan dalam operasi yang melibatkan 3 buah
operand, dan operator yang digunakan adalah “ ?: ”
Bentuk umum:
Ekspresi1 ? Ekspresi2 : Ekspresi3 ;
Contoh :
X = (X<0) ? –X : X
Operator Gabungan
Tabel 5.5. Operator Gabungan
Operator Contoh Ekuivalen
+= bonus + = 5000 bonus = bonus +5000
-= bonus - = 5000 bonus = bonus - 5000
*= bonus * = 5000 bonus = bonus * 5000
/= bonus /= 5000 bonus = bonus / 5000
%= bonus % = 5000 bonus = bonus % 5000

Type casting
Pengertian dari type casting adalah suatu cara yang digunakan untuk
menentukan atau merubah (konversi) nilai dari suatu tipe data numerik ke
dalam tipedata numerik lainnya. Terdapat 4 macam type casting dalam
Bahasa C++, diantaranya adalah dynamic_cast, const_cast, statis_cast dan
reinterpret_cast.
Struktur Kontrol Percabangan
1. Struktur if
Memutuskan untuk mengeksekusi statement atau blok statement
jika dan hanya jika ekspresi bernilai true.

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 33 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Gambar 5.1. Alur Percabangan if kondisi


2. Struktur if else
Memutuskan untuk mengeksekusi statement atau blok statement
bila kondisi bernilai true, atau mengeksekusi statement atau blok
statement lain bila kondisi bernilai false

Gambar 5.2. Alur Percabangan if else kondisi

3. Struktur switch
Memperbolehkan percabangan pada multiple outcomes. Berikut
adalah diagram alirnya untuk struktur switch.

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 34 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Gambar 5.3. Alur Percabangan switch kondisi

5.3. Latihan
Cobalah beberapa program latihan di bawah ini, dan analisalah hasilnya !
Latihan 5.1.cpp

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 35 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Latihan 5.2. cpp

Latihan 5.3.cpp

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 36 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Latihan 5.4.cpp

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 37 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Latihan 5.5.cpp

Latihan 5.6.cpp

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 38 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Latihan 5.7.cpp

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 39 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Latihan 5.8.cpp

5.4. Tugas
Berdasarkan contoh program di atas, buatlah program dengan kasus seperti
berikut :
1. Menentukan gaji karyawan, dengan ketentuan sbb:
a) Gaji Pokok
kode gol=1 --> gaji pokok=Rp. 1.500.000
kode gol=2 --> gaji pokok=Rp. 2.000.000
kode gol=3 --> gaji pokok=Rp. 2.500.000
kode gol=4 --> gaji pokok=Rp. 3.000.000
b) Tunjangan = 10% x gaji pokok
c) Gaji Bersih = gaji pokok + tunjangan

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 40 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Input : Nama Karyawan, NIK, Golongan.


Output : Nama Karyawan, NIK, Golongan, Gaji bersih
2. Menentukan status lulus tidaknya seseorang berdasarkan jenis kelamin dan
tinggi badannya, yaitu untuk jenis kelamin perempuan dinyatakan lulus
apabila tinggi badan (TB) nya minimal 160 cm, dan untuk laki-laki tinggi
badannya (TB) nya minimal 165 cm.
Input : Nama, Tinggi Badan (TB)
Output : Nama, Tinggi Badan (TB), status (lulus tidaknya).
Contoh output/hasilnya sbb:

3. Konversikan nilai ujian mahasiswa kedalam kategori sebagai berikut :


Nilai 80-100=A,
Nilai 65-79=B,
Nilai 55-64=C,
Nilai 40-54=D,
Nilai 0-39=E .
Input : Nama Mhs, NIM, Nama MataKuliah, Nilai Angka
Output : Nama Mhs, NIM, Nama MataKuliah, Nilai Angka, Nilai Huruf

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 41 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

4. Buatlah menu pilihan sebagai berikut :


MENU PILIHAN
[1]. Luas Segitiga
[2]. Luas Lingkaran
[3]. Luas Persegi Panjang
[4]. Keliling Persegi Panjang
[5]. Keluar
========================================
Masukkan pilihanmu [1/2/3/4/5] =...

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 42 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Minggu 6. Struktur Perulangan dalam Bahasa C++


6.1. Tujuan Instruksi Khusus
Setelah mempelajari materi ini, mahasiswa diharapkan mampu :
1. Menjelaskan struktur perulangan
2. Menjelaskan alasan kenapa harus menggunakan perulangan
3. Menyebutkan jenis perulangan dan menjelaskan perbedaannya (for, while
dan do while)
4. Menyelesaikan masalah dengan teknik perulangan
6.2. Dasar Teori
Tujuan perulangan disini adalah untuk mengulang pernyataan atau blok
pernyataan berulang kali sesuai dengan jumlah yang ditentukan pemakai.
Terdapat tiga macam struktur perulangan yang dapat digunakan yaitu struktur
for, struktur do..while, dan struktur while. Masing-masing struktur digunakan
pada jenis perulangan yang berbeda, meski untuk menyelesaikan sebuah kasus.
1. Struktur for
Perulangan dengan struktur for digunakan untuk mengulang pernyataan atau
suatu blok pernyataan berulang kali. Perulangan for digunakan apabila
sudah diketahui berapa kali akan mengulang suatu pernyataan.
 Bentuk umum dari struktur for yang bersifat menaik (increment) adalah:
for (var = nilai_awal; kondisi; var++)
{
Pernyataan
};
 Bentuk umum dari struktur for yang bersifat menurun (decrement)
adalah:
for (var = nilai_awal; kondisi; var--)
{
Pernyataan
};

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 43 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

2. Struktur while
Struktur while digunakan untuk melakukan proses perulangan pernyataan
atau blok pernyataan terus-menerus selama kondisi ungkapan logika pada
while masih bernilai logika benar.
Bentuk umum struktur while :
while (kondisi)
{
Statement/pernyataan yang akan diulang ;
}
3. Struktur do while
Struktur do..while digunakan untuk mengulang pernyataan atau blok
pernyataan sampai kondisi yang diseleksi pada while tidak terpenuhi.
Bentuk umum struktur do while :
do
{
Statement yang akan diulang;
}
while(kondisi);

6.3. Latihan
Cobalah beberapa program latihan di bawah ini, dan analisalah hasilnya !

Latihan 6.1.cpp

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 44 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Latihan 6.2.cpp

Latihan 6.3.cpp

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 45 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Latihan 6.4.cpp

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 46 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Latihan 6.5.cpp

Latihan 6.6.cpp

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 47 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Latihan 6.7.cpp

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 48 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Latihan 6.8.cpp

6.4. Tugas
Berdasarkan beberapa latihan di atas, buatlah program untuk kasus di bawah
ini!

1. Menampilkan hasil proses perulangan sebagai berikut:


Input:
Masukkan banyaknya angka = 4
Masukkan batas awal =1
Masukkan kelipatan =5
Output:
[1 6 11 16]
2. Menampilkan hasil proses perulangan menentukan nilai rata-rata sebagai
berikut:

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 49 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

3. Menampilkan posisi simbol bintang seperti di bawah ni:

4. Menampilkan posisi symbol bintang seperti berikut ini!

5. Menampilkan data urutan genap ganjil seperti di bawah ini!

6. Menampilkan posisi simbol menyerupai sebuah huruf A, T, dan X.

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 50 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 51 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Minggu 7. Review materi dan Responsi 1


7.1. Tujuan Instruksi Khusus
Setelah mempelajari materi ini, mahasiswa diharapkan mampu :
1. Mengulang materi (review materi)
2. Mampu menyelesaikan soal pemrograman yang meliputi deklarasi
variabel, tipe data, konstanta, macam operator, struktur percabangan
dan struktur perulangan
7.2. Dasar Teori
Materi yang diberikan adalah mengulang materi yang telah diberikan
yang meliputi dasar pemrograman Bahasa C++, tipedata, variabel, konstanta,
penggunaan macam-macam operator, struktur perulangan, dan struktur
percabangan.
7.3. Latihan
Mengerjakan soal-soal latihan dari semua materi yang telah diberikan.
7.4. Tugas
Mengerjakan soal responsi (ujian praktikum)

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 52 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Minggu 8. Fungsi dalam Bahasa C++


8.1. Tujuan Instruksi Khusus
Setelah mempelajari materi ini, mahasiswa diharapkan mampu :
1. Menjelaskan pengertian fungsi
2. Menjelaskan manfaat penggunaan fungsi
3. Menjelaskan kapan harus menggunakan modular/fungsi
4. Menjelaskan jenis-jenis fungsi
5. Menjelaskan perbedaan dari jenis-jenis fungsi (void dan non void)
6. Menulis deklarasi, definisi dan pemanggilan fungsi
7. Menyelesaikan masalah dengan teknik fungsi
8.2. Dasar Teori
Fungsi/Function adalah satu blok kode yang melakukan tugas tertentu
atau satu blok instruksi yang dieksekusi ketika dipanggil dari bagian lain dalam
suatu program. Tujuan pembuatan fungsi adalah :
 Memudahkan dalam pembuatan program.
 Menghemat ukuran program.
Keuntungan memakai fungsi :
 Menguraikan tugas pemrograman rumit menjadi langkah-langkah yang
lebih sederhana atau kecil.
 Mengurangi duplikasi kode (kode yang sama ditulis berulang-ulang)
dalam program.
 Dapat menggunakan kode yang ditulis dalam berbagai program yang
berbeda.
 Memecah program besar menjadi kecil sehingga dapat dikerjakan oleh
programmer-programmer atau dipecah menjadi beberapa tahap
sehingga mempermudah pengerjaan dalam sebuah projek
 Menyembunyikan informasi dari user sehingga mencegah adanya
perbuatan iseng seperti memodifikasi atau mengubah program yang
kita buat

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 53 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

 Meningkatkan kemampuan pelacakan kesalahan, jika terjadi suatu


kesalahan kita tinggal mencari fungsi yang bersangkutan saja dan tak
perlu mencari kesalahan tersebut di seluruh program.
Bentuk umum Sebuah fungsi adalah sebagai berikut :
Tipe_fungsi nama_fungsi (daftar parameter)
{
Detail fungsi;
}
Tipe_fungsi ada 2 yaitu void dan nonvoid.
8.3. Latihan
Cobalah beberapa program latihan di bawah ini, dan analisalah hasilnya !
Latihan 8.1.cpp
Tipe void

Latihan 8.2.cpp
Program menggunakan prototype fungsi

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 54 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Latihan 8.3.cpp

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 55 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Latihan 8.4.cpp

Latihan 8.5.cpp
Tipe non void

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 56 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Latihan 8.6.cpp

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 57 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

8.4. Tugas
Berdasarkan beberapa program di atas, buatlah fungsi untuk kasus berikut ini!
1. Menentukan luas segitiga secara void dan nonvoid, ditambah adanya
prototype dalam program.
2. Buatlah program konversi nilai dengan fungsi sehingga tampilannya
seperti berikut:

Adapun ketentuan konversi nilai adalah :


Nilai > 80  A
Nilai > 60  B
Nilai > 40  C
Nilai > 20  D
Selain itu E
3. Menentukan luas lingkaran secara void dan nonvoid, ditambah adanya
prototype fungsi dalam program.
4. Menentukan keliling lingkaran secara nonvoid dan disertai adanya
prototype dalam program.
5. Membuat progam yang di dalamnya terdapat fungsi kalkulator (kali,
tambah, kurang, bagi).
6. Menentukan kesimpulan atau intisari dari materi ini, tentang penggunaan
prototype fungsi dalam program, diantaranya adalah struktur program
apabila menggunakan prototype dan tanpa prototype fungsi dalam
program.

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 58 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Minggu 9. Array (Larik)


9.1. Tujuan Instruksi Khusus
Setelah mempelajari materi ini, mahasiswa diharapkan mampu :
1. Menjelaskan pengertian array
2. Menulis pendeklarasian dan pemanggilan array
3. Menyelesaikan kasus menggunakan array 1, 2 dimensi dan dimensi
banyak
9.2. Dasar Teori
Array adalah suatu tipe data terstuktur yang berupa sejumlah data
sejenis (bertipe data sama) yang jumlahnya tetap dan diberi suatu nama
tertentu, elemen-elemen array tersusun secara berderet dan dapat diakses
secara random di dalam memori. Array memiliki alamat yang
besebelahan/berdampingan tergantung lebar tipe datanya dan dapat berupa
array 1 dimensi, 2 dimensi, bahkan n-dimensi. Elemen-elemen array bertipe
data sama dan bisa berisi nilai yang sama atau berbeda-beda.
Elemen-elemen array dapat diakses oleh program menggunakan suatu
indeks tertentu secara random ataupun berurutan. Pengisian dan pengambilan
nilai pada indeks tertentu dapat dilakukan dengan mengeset nilai atau
menampilkan nilai pada indeks yang dimaksud. Dalam C++, tidak terdapat
error handling terhadap batasan nilai indeks, apakah indeks tersebut berada di
dalam indeks array yang sudah didefinisikan atau belum. Hal ini merupakan
tanggung jawab programmer, sehingga jika programmer mengakses indeks
yang salah, maka nilai yang dihasilkan akan berbeda atau rusak karena
mengakses alamat memori yang tidak sesuai.
Deklarasi Array secara umum :
tipe_data nama_var_array [ukuran];
Keterangan :
tipe_data : menyatakan jenis tipe data elemen larik (int, char, float, dll)
nama_var_array : menyatakan nama variabel yang dipakai.
ukuran : menunjukkan jumlah maksimal elemen larik.

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 59 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

9.3. Latihan
Cobalah bebrapa program di bawah ini!
Latihan 9.1.cpp

Latihan 9.2.cpp

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 60 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Latihan 9.3.cpp

Latihan 9.4.cpp

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 61 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Latihan 9.5.cpp

Latihan 9.6.cpp
Array 2 Dimensi untuk input

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 62 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Latihan 9.7.cpp
Operasi Matrix

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 63 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 64 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 65 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Latihan 9.8.cpp
Diagonal Matrix

Latihan 9.9.cpp
Perkalian Matrix dengan Konstanta

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 66 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Latihan 9.10.cpp
Perkalian antar Matrix

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 67 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 68 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

9.4. Tugas
Berdasarkan beberapa program di atas, buatlah program seperti berikut ini!
1. Menentukan nilai jumlah dan rata-rata dari data di dalam array.
Output seperti di bawah ini:

2. Buatlah program sehingga tampilannya seperti di bawah ini:

3. Buatlah program Menu yang isinya merupakan gabungan dari operasi-


operasi matrik no 1-9 dengan output sbb:

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 69 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

4. Buatlah Program perkalian antar matrix secara dinamis

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 70 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Minggu 10. Sorting (Pengurutan Data)


10.1. Tujuan Instruksi Khusus
Setelah mempelajari materi ini, mahasiswa diharapkan mampu :
1. Menjelaskan pengertian dan perbedaan algoritma pada sorting data.
2. Menerapkan algoritma sorting disetiap metodenya (Bubble, Selection
/max-min dan Insertion)
10.2. Dasar Teori
Sorting adalah proses mengatur sekumpulan objek menurut aturan
atau susunan tertentu. Urutan objek tersebut dapat naik (ascending = dari data
kecil ke data lebih besar) atau turun (descending = dari data besar ke data
lebih kecil). Pada sorting ini menggunakan 3 metode yaitu bubble sort,
Selection sort dan Insertion sort.
1. Bubble Sort (Gelembung)
Bubble sort adalah Metode pengurutan gelembung (bubble
sort) diinspirasi oleh gelembung sabun yang ada di permukaan air.
Karena berat jenis gelembung sabun lebih ringan daripada berat jenis
air maka gelembung sabun akan selalu mengapung. Prinsip
pengapungan ini juga dipakai pada pengurutan gelembung. Elemen
yang berharga paling kecil “diapungkan”, artinya diangkat ke atas
(atau ke ujung paling kiri) melalui pertukaran.
2. Selection Sort (Maksimum atau Minimum)
Metode pengurutan ini disebut pengurutan maksimum atau
minimum karena didasarkan pada pemilihan elemen maksimum atau
minimum kemudian mempertukarkan elemen maksimum/minimum
tersebut dengan elemen terujung larik (elemen ujung kiri atau elemen
ujung kanan). Selanjutnya elemen terujung itu kita “isolasi” dan tidak
diikut sertakan pada proses selanjutnya. Karena proses utama dalam
pengurutan adalah pemilihan elemen maksimum atau minimum, maka
metode ini disebut metode pemilihan (selection sort).

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 71 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

3. Insertion Sort (Sisip)


Pengurutan sisip (insertion sort) adalah metode pengurutan
dengan cara menyisipkan elemen larik pada posisi yang tepat.
Pencarian posisi yang tepat dilakukan dengan pencarian beruntun.
Selama pencarian posisi yang tepat dilakukan pergeseran elemen
larik.
10.3. Latihan
Latihan 10.1. cpp
Metode Bubble Sort secara ascending

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 72 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Latihan 10.2. cpp


Metode Bubble Sort secara descending

Latihan 10.3. cpp


Metode Selection Sort secara ascending

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 73 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Latihan 10.4.cpp
Metode Selection Sort Ascending

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 74 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Latihan 10.5.cpp
Metode Selection Sort Descending

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 75 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Latihan 10.6.cpp
Metode Insertion Sort

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 76 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

10.4. Tugas
Kerjakan soal di bawah ini!
1. Buat program untuk mengurutkan data dari n nilai serta tampilkan data
yang belum terurut dan yang sudah diurutkan
2. Buat program untuk mengurutkan huruf dengan inputan dinamis.
3. Buatlah program untuk mengurutkan nama teman sekelas anda.
Langkah :
a) Inputkan data secara dinamis, minimal 5 data
b) Buatlah pilihan pengurutan secara ascending dan decending
c) Tampilkan hasil sebelum pengurutan dan sesudah pengurutan

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 77 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Minggu 11. Searching (Pencarian Data)


11.1. Tujuan Instruksi Khusus
Setelah mempelajari materi ini, mahasiswa diharapkan mampu :
1. Menjelaskan pengertian dan perbedaan algoritma pada searching data
2. Menulis dan menjelaskan algoritma sorting disetiap metodenya
(Binary, Sentinel dan Sequential)
11.2. Dasar Teori
Algoritma pencarian (searching) adalah algoritma yang menerima
sebuah argumen kunci dengan langkah-langkah tertentu akan mencari data
melalui kunci tersebut, Proses pencarian dikatakan berhasil jika antara kunci
dan data yang tersedia bernilai sama. Beberapa metode pencarian diantaranya
metode Bagi Dua (Binary Search), Sentinel dan Beruntun (Sequential
Search).
11.3. Latihan
Latihan 11.1. cpp
Metode Binary Search

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 78 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Latihan 11.2.cpp
Metode Sentinel Search

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 79 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Latihan 11.3.cpp
Metode Sequential Search

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 80 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

11.4. Tugas
Buatlah sebuah program dengan pencarian data nama dalam sebuah kelas.
Langkah tugas :
1. Contoh program sebelumnya
2. Lakukan input array secara dinamis
3. Pencarian dilakukan dengan menggunakan nama siswa
4. Jika pencarian tidak ditemukan maka berilah keterangan
ditemukan tidaknya.

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 81 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Minggu 12. Struct (Struktur)


12.1. Tujuan Instruksi Khusus
Setelah mempelajari materi ini, mahasiswa diharapkan mampu :
1. Menjelaskan pengertian struct
2. Menjelaskan pengertian struct of array dan array of struct
3. Menulis dan menjelaskan program struct
12.2. Dasar Teori
Struktur merupakan kumpulan elemen data yang digabungkan
menjadi satu kesatuan data. Masing-masing elemen data tersebut dinamakan
field atau elemen struktur. Field tersebut bisa memiliki tipe data yang sama
ataupun berbeda, meskipun field tersebut dalam satu kesatuan tetapi tetap bisa
diakses secara individu. Sedangkan struct of array adalah struct yang
memiliki anggota/elemen berupa data array. Cara mengaksesnya adalah
dengan menyebutkan object struct-nya, diikuti dengan nama variabel array
dan indeks yang akan diakses.
12.3. Latihan
Latihan 12.1.cpp

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 82 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Latihan 12.2.cpp
Struct yang berisi struct lain.

Latihan 12.3.cpp
Menghitung nilai mahasiswa

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 83 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 84 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Latihan 12.4.cpp
Struct of array

Latihan 12.5.cpp

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 85 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 86 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Latihan 12.6.cpp
IPK mahasiswa dengan menggunakan Struct

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 87 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

12.4. Tugas
Kerjakan beberapa kasus di bawah ini!
1. Buat sebuah program struct untuk menghitung gaji harian pegawai, bila
diketahui ketentuannya sebagai berikut :
 Gaji per jam = Rp 5000
 Bila jumlah jam kerja hari itu > 7 jam, maka kelebihannya
dihitung lembur yang besarnya 15 x gaji per jam.
Langkah pengerjaan :

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 88 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

 Inputkan identitas pekerja, meliputi nama dan no.identitas kerja


 Inputkan berapa jam ia bekerja setiap hari nya dari hari senin s/d
jumat
 Lalu jumlahkan dan tampilkan jam kerjanya
 Output berupa total gaji pegawai
2. Buatlah program untuk menghitung IPK menggunakan struct of array.

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 89 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Minggu 13. Stack (Tumpukan Data) dan Queue (Antrian Data)


13.1. Tujuan Instruksi Khusus
Setelah mempelajari materi ini, mahasiswa diharapkan mampu :
1. Menjelaskan pengertian stack dan queue
2. Menulis dan menjelaskan program stack dan queue
13.2. Dasar Teori
Stack merupakan suatu susunan koleksi data dimana data dapat
ditambahkan dan dihapus selalu dilakukan pada bagian akhir data, yang
disebut dengan top of stack. Stack bersifat LIFO (Last In First Out) “Benda
yang terakhir masuk ke dalam stack akan menjadi yang pertama keluar
dari stack.
Queue (antrian) dibuat menggunakan array dan dua buah variabel
bertipe integer yang menunjukkan posisi awal dan akhir antrian. Queue
bersifat FIFO (First In First Out) artinya elemen yang pertama masuk ke
antrian akan keluar pertama kalinya.
13.3. Latihan
Latihan 13.1.cpp
Program stack

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 90 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Latihan 13.2.cpp
Program Queue

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 91 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 92 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

13.4. Tugas
Berdasarkan beberapa contoh program stack dan queue tersebut di atas,
silahkan dimodifikasi ke dalam animasi sehingga proses tumpukan dan
antriannya bisa terlihat.

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 93 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Minggu 14. Pointer dan Responsi 2


14.1. Tujuan Instruksi Khusus
Setelah mempelajari materi ini, mahasiswa diharapkan mampu :
1. Menjelaskan pengertian dan manfaat pointer
2. Menyelesaikan masalah dengan pointer
3. Menyelesaikan masalah menggunakan pointer dalam array dan struct
14.2. Dasar Teori
Pointer merupakan var. yg berisi alamat memori dari objek (variabel)
lain.
Operator pointer (ada 2):
1. Operator &
2. Operator *
Tabel 14.1. Perbedaan antara variabel biasa dengan pointer
Pointer Var.biasa
Deklarasi variabel Int * A; int A;
Alamat memori Tidak otomatis otomatis
Mengetahui alamat A &A
memori
Mengetahui datanya *A A

Deklarasi variabel pointer sebagai berikut:


tipe * nama_pointer;
Contoh deklarasi :
int *nilai;
char *huruf;
14.3. Latihan
Latihan 14.1.cpp

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 94 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Latihan 14.2.cpp

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 95 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Latihan 14.3.cpp

Latihan 14.4.cpp

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 96 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Latihan 14.5.cpp

14.4. Tugas
Buatlah program menggunakan array dengan pointer untuk membaca huruf
digit ke 9 sampai digit terakhir, dengan contoh tampilan sebagai berikut:

14.5. Contoh Program Lainnya


1. Random Array

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 97 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

2. Program IPK dengan Struct

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 98 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 99 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

3. Program IPK dengan Struct of array

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 100 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 101 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

4. Sorting Huruf

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 102 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

5. Searching Huruf

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 103 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 104 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

6. Stack (Tumpukan)

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 105 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 106 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 107 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

7. Queue

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 108 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 109 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 110 dari 111
Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen Informatika

DAFTAR PUSTAKA

Bambang Wirawan, Paulus. 2004. Struktur Data dengan C. Yogyakarta: Andi


Dewayani, Ery. 2014. Logika Informatika Teori dan Soal. Yogyakarta: Graha Ilmu.
Kadir, Abdul. 2017. Dasar Logika Pemrograman Komputer. Jakarta: Elex Media
Komputindo.
Utami, Ema dan Mega P.D, Windha. 2017. Langkah Mudah Belajar Struktur Dta
Menggunakan C/C++. Jakarta : Elex Media Komputindo.
Raharjo, Budi. 2006. Pemrograman C++ Mudah dan Cepat Menjadi Master C++
dengan mengungkap rahasia-rahasia prmrograman dalam C++. Bandung:
Informatika.

Modul Mata Kuliah : Algoritma Struktur Data [DM073] Hal. 111 dari 111

Anda mungkin juga menyukai