Anda di halaman 1dari 112

2018

Modul Praktikum
Algoritma Struktur Data

Disclaimer Program Studi D3 Manajemen Informatika


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

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 Hal. 1 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 2 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 3 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 4 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 5 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 6 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

 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 Hal. 7 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 8 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 9 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 10 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 11 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 12 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 13 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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) p  q  r
b)  p  q

Modul Mata Kuliah : Algoritma Struktur Data Hal. 14 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 15 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 16 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 17 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 18 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 19 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 20 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 21 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 22 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 23 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 24 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 25 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 26 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 27 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 28 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 29 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 30 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 31 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 32 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 33 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 34 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 35 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

Latihan 5.2. cpp

Latihan 5.3.cpp

Modul Mata Kuliah : Algoritma Struktur Data Hal. 36 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

Latihan 5.4.cpp

Modul Mata Kuliah : Algoritma Struktur Data Hal. 37 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

Latihan 5.5.cpp

Latihan 5.6.cpp

Modul Mata Kuliah : Algoritma Struktur Data Hal. 38 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

Latihan 5.7.cpp

Modul Mata Kuliah : Algoritma Struktur Data Hal. 39 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 40 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 41 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 42 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 43 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 44 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

Latihan 6.2.cpp

Latihan 6.3.cpp

Modul Mata Kuliah : Algoritma Struktur Data Hal. 45 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

Latihan 6.4.cpp

Modul Mata Kuliah : Algoritma Struktur Data Hal. 46 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

Latihan 6.5.cpp

Latihan 6.6.cpp

Modul Mata Kuliah : Algoritma Struktur Data Hal. 47 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

Latihan 6.7.cpp

Modul Mata Kuliah : Algoritma Struktur Data Hal. 48 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 49 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 50 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

Modul Mata Kuliah : Algoritma Struktur Data Hal. 51 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 52 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 53 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

 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 Hal. 54 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

Latihan 8.3.cpp

Modul Mata Kuliah : Algoritma Struktur Data Hal. 55 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

Latihan 8.4.cpp

Latihan 8.5.cpp
Tipe non void

Modul Mata Kuliah : Algoritma Struktur Data Hal. 56 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

Latihan 8.6.cpp

Modul Mata Kuliah : Algoritma Struktur Data Hal. 57 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 58 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 59 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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

Latihan 9.2.cpp

Modul Mata Kuliah : Algoritma Struktur Data Hal. 60 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

Latihan 9.3.cpp

Latihan 9.4.cpp

Modul Mata Kuliah : Algoritma Struktur Data Hal. 61 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

Latihan 9.5.cpp

Latihan 9.6.cpp
Array 2 Dimensi untuk input

Modul Mata Kuliah : Algoritma Struktur Data Hal. 62 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

Latihan 9.7.cpp
Operasi Matrix

Modul Mata Kuliah : Algoritma Struktur Data Hal. 63 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

Modul Mata Kuliah : Algoritma Struktur Data Hal. 64 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

Modul Mata Kuliah : Algoritma Struktur Data Hal. 65 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

Latihan 9.8.cpp
Diagonal Matrix

Latihan 9.9.cpp
Perkalian Matrix dengan Konstanta

Modul Mata Kuliah : Algoritma Struktur Data Hal. 66 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

Latihan 9.10.cpp
Perkalian antar Matrix

Modul Mata Kuliah : Algoritma Struktur Data Hal. 67 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

Modul Mata Kuliah : Algoritma Struktur Data Hal. 68 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 69 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

4. Buatlah Program perkalian antar matrix secara dinamis

Modul Mata Kuliah : Algoritma Struktur Data Hal. 70 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 71 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 72 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

Latihan 10.2. cpp


Metode Bubble Sort secara descending

Latihan 10.3. cpp


Metode Selection Sort secara ascending

Modul Mata Kuliah : Algoritma Struktur Data Hal. 73 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

Latihan 10.4.cpp
Metode Selection Sort Ascending

Modul Mata Kuliah : Algoritma Struktur Data Hal. 74 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

Latihan 10.5.cpp
Metode Selection Sort Descending

Modul Mata Kuliah : Algoritma Struktur Data Hal. 75 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

Latihan 10.6.cpp
Metode Insertion Sort

Modul Mata Kuliah : Algoritma Struktur Data Hal. 76 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 77 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 78 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

Latihan 11.2.cpp
Metode Sentinel Search

Modul Mata Kuliah : Algoritma Struktur Data Hal. 79 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

Latihan 11.3.cpp
Metode Sequential Search

Modul Mata Kuliah : Algoritma Struktur Data Hal. 80 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 81 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 82 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

Latihan 12.2.cpp
Struct yang berisi struct lain.

Latihan 12.3.cpp
Menghitung nilai mahasiswa

Modul Mata Kuliah : Algoritma Struktur Data Hal. 83 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

Modul Mata Kuliah : Algoritma Struktur Data Hal. 84 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

Latihan 12.4.cpp
Struct of array

Latihan 12.5.cpp

Modul Mata Kuliah : Algoritma Struktur Data Hal. 85 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

Modul Mata Kuliah : Algoritma Struktur Data Hal. 86 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

Latihan 12.6.cpp
IPK mahasiswa dengan menggunakan Struct

Modul Mata Kuliah : Algoritma Struktur Data Hal. 87 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 88 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

 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 Hal. 89 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 90 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

Latihan 13.2.cpp
Program Queue

Modul Mata Kuliah : Algoritma Struktur Data Hal. 91 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

Modul Mata Kuliah : Algoritma Struktur Data Hal. 92 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 93 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 94 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

Latihan 14.2.cpp

Modul Mata Kuliah : Algoritma Struktur Data Hal. 95 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

Latihan 14.3.cpp

Latihan 14.4.cpp

Modul Mata Kuliah : Algoritma Struktur Data Hal. 96 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 97 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

2. Program IPK dengan Struct

Modul Mata Kuliah : Algoritma Struktur Data Hal. 98 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

Modul Mata Kuliah : Algoritma Struktur Data Hal. 99 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

3. Program IPK dengan Struct of array

Modul Mata Kuliah : Algoritma Struktur Data Hal. 100 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

Modul Mata Kuliah : Algoritma Struktur Data Hal. 101 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

4. Sorting Huruf

Modul Mata Kuliah : Algoritma Struktur Data Hal. 102 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

5. Searching Huruf

Modul Mata Kuliah : Algoritma Struktur Data Hal. 103 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

Modul Mata Kuliah : Algoritma Struktur Data Hal. 104 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

6. Stack (Tumpukan)

Modul Mata Kuliah : Algoritma Struktur Data Hal. 105 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

Modul Mata Kuliah : Algoritma Struktur Data Hal. 106 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

Modul Mata Kuliah : Algoritma Struktur Data Hal. 107 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

7. Queue

Modul Mata Kuliah : Algoritma Struktur Data Hal. 108 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

Modul Mata Kuliah : Algoritma Struktur Data Hal. 109 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

Modul Mata Kuliah : Algoritma Struktur Data Hal. 110 dari


Universitas AMIKOM Yogyakarta
Fakultas Ilmu Komputer - Program Studi Diploma Tiga Manajemen

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 Hal. 111 dari

Anda mungkin juga menyukai