2. Definisi Algoritma
• Algoritma adalah urutan langkah-langkah logis penyelesaian masalah
yang disusun secara sistematis.
• Kata logis disini berarti benar sesuai dengan logika manusia.
• Untuk menjadi sebuah algoritma, urutan langkah yang ditempuh
untuk menyelesaikan masalah harus memberikan hasil yang benar.
3. Asal-usul kata algoritma
• Abu Ja’far Muhammad Ibnu Musa Al Khuwarizmi adalah seorang penulis buku
Arab yang berjudul Kitab Al Jabar Wal Muqabala (Buku Pemugaran dan
Pengurangan). Kata Al Khuwarizmi dibaca orang Barat menjadi algorism.
• Kata algorism berarti proses menghitung dengan angka Arab. Seseorang
dikatakan algorist jika orang tersebut menggunakan angka Arab.
• Kata algorism lambat laun menjadi algorithm disebabkan kata algorism sering
dikelirukan dengan kata arithmetic sehingga akhiran –sm berubah menjadi –thm.
Kata algorithm diserap ke dalam bahasa Indonesia menjadi algoritma.
4. Algoritma
• Algoritma merupakan deskripsi urutan pelaksanaan suatu proses
• Algoritma tersusun oleh sederetan langkah instruksi yang logis
• Tiap langkah instruksi akan mengerjakan suatu tindakan (Aksi)
• Bila Aksi dilaksanakan, maka sejumlah operasi yang bersesuaian akan
dikerjakan oleh CPU
5. Contoh algoritma 1
• Ada 2 buah gelas. Satu berisi teh dan satunya lagi
berisi kopi. Bagaimana caranya menukar isi masing-
masing gelas?
teh kopi
6. Contoh algoritma 1
Algoritma
• Siapkan gelas cadangan X
• Tuangkan gelas yang berisi
teh ke gelas cadangan
• Tuangkan gelas yang berisi
kopi ke gelas yang awalnya
dipakai teh
• Tuangkan isi gelas
cadangan ke gelas yang
awalnya berisi kopi
teh
kopi
teh
X
X
kopi X
7. Contoh Algoritma 2
• Algoritma untuk menentukan apakah suatu bilangan merupakan
bilangan ganjil atau bilangan genap.
• Algoritmanya :
a. Masukkan bilangan yang akan ditentukan
b. Bagi bilangan dengan bilangan 2
c. Hitung sisa hasil bagi pada langkah b.
d. Bila sisa hasil bagi sama dengan 0 maka bilangan itu adalah bilangan genap
tetapi bila sisa hasil bagi sama dengan 1 maka bilangan itu adalah bilangan
ganjil.
8. Domain algoritma
• Masalah : motivasi untuk membuat algoritma.
• Algoritma : prosedur untuk menyelesaikan masalah.
Seringkali satu masalah dapat diselesaikan dengan
lebih dari satu cara (banyak kemungkinan).
• Program: representasi formal dari suatu algoritma
dengan menggunakan bahasa pemrograman yang
bisa dimengerti oleh komputer.
• Proses : aktivitas menjalankan langkah-langkah dalam
algoritma.
9. Hal yang harus dipenuhi dalam membuat
algoritma
• Input : data yang harus diberikan pada komputer
• Output: informasi yang akan diperoleh dari komputer
• Logika: Merencanakan proses program. Terdiri dari sejumlah instruksi
yang mengubah input menjadi output yang diinginkan.
10. Definisi Logika
• Logika identik dengan masuk akal dan penalaran. Penalaran adalah salah satu
bentuk pemikiran. Pemikiran adalah pengetahuan tak langsung yang didasarkan
pada pernyataan langsung pemikiran mungkin benar dan mungkin juga tak benar.
• Definisi logika sangat sederhana yaitu ilmu yang memberikan prinsip-prinsip yang
harus diikuti agar dapat berfikir valid menurut aturan yang berlaku
• Pelajaran logika menimbulkan kesadaran untuk menggunakan prinsip-prinsip
untuk berfikir secara sistematis.
11. Membuat sebuah program
• Defining the problem
Mendefinisikan apa yang akan dilakukan atau yang dihasilkan
oleh program
• Planning
Mendefinisikan langkah-langkah, membuat flowchart
• Programming
Menuliskan program, termasuk perbaikan eror dan testing
• Documentation
Menambahkan komentar dan “membukukan” program
• Implementation
Pengembangan, membuat program semakin baik
12. Programming
• Merubah langkah-langkah ke instruksi-instruksi / bahasa pemrograman
• Debug – Mengoreksi eror/kesalahan
• Kesalahan sintak
• Kesalahan grammar yang mudah ditemukan
• Kesalahan logical
• Program berjalan & bekerja tetapi menghasilkan output yang salah atau tidak sesuai
harapan.
• Dapat ditemukan melalui testing
13. Documentation
• Menambahkan komentar
• Lebih mudah untuk dimengerti
• Menggunakan “spaces” dengan bijak
• Blanks, Tabs, New Lines
• Easy to trace, follow & understand
• Pemilihan nama variabel & konstanta
• Mudah dimengerti, tidak terlalu panjang dan tidak terlalu pendek
14. Implementation
❖ Meminta orang lain untuk menjalankan program
❖ Menjadikan lebih user friendly termasuk input &
output
❖ Menjadikan lebih eficien (lebih sedikit baris)
❖ Menjadikan waktu eksekusi cepat
❖Menambahkan tampilan akhir, dll.
15. Kriteria Algoritma Pemrograman
1. Memiliki logika perhitungan / metode yang
tepat untuk memecahkan masalah.
2. Menghasilkan output yang tepat dan benar
dalam waktu yang singkat.
3. Ditulis dengan bahasa yang standard secara
sistematis, sehingga tidak menimbulkan arti
ganda.
15
16. Kriteria Algoritma Pemrograman
4. Ditulis dengan format yang mudah dipahami
sehingga mudah diimplementasikan ke dalam
bahasa pemrograman.
5. Semua operasi yang dibutuhkan terdefinisi
dengan jelas dan selalu berakhir setelah
sejumlah langkah dilakukan.
16
17. Ukuran Kualitas Software
1. Sebuah program harus dapat mengerjakan
tugasnya dengan benar
2. Dapat melakukan tugasnya secara cepat
3. Tidak menggunakan banyak sumber daya
(processor time, memory, disk capasity,
network capacity)
4. Program mudah dibaca dan dimengerti
5. Sebuah program harus independent dan tidak
bergantung pada program lain
6. Mudah pemeliharaannya
17
18. Ukuran Kualitas Software
7. Adanya kesalahan tidak mempengaruhi bagian
program (error locality)
8. Proses pembuatan program selesai tepat
Waktu
9. Mempunyai dokumentasi yang baik
10. Teknik OOP memungkin programmer membuat
program dengan kualitas tinggi pada saat
perancangan dan pembuatan kode program.
11. Ukuran kualitas software harus tertanam dalam
pikiran setiap programer.
18
20. Contoh Algoritma
Algoritma untuk mencari jumlah N bilangan bulat lebih
dari nol, yaitu 1 + 2 + 3 + … + N, adalah:
20
1. Set sum = 0 and the counter k = 1.
2. Repeat the following steps until k > N
a. Calculate the sum = sum + k
b. Increase the value of k by 1
3. The result required is the number in sum
21. Contoh Algoritma Flow Chart
21
k<=N ?
sum = 0
k = 1
Input N
k = k + 1
sum = sum + k
Show sum
yes
no
25. Paradigma Pemrograman
1. Pemrograman Prosedural, Pemrogaman dengan
fungsi dan prosedur.
2. Pemrogaman Modular, Pemrograman dengan
menggabungkan fungsi dan prosedur ke dalam
modul untuk menyembunyikan data.
3. Pemrogaman abstraksi data, Pemrograman dengan
menggunakan tipe data abstrak yang diperlukan
dengan setiap tipe menyediakan semua operasi
yang diperlukan tipe tersebut.
4. Pemrogaman berorientasi obyek, Pemrograman
dengan menggunakan konsep inheritance,
polymorphism dan generic programming.
25
26. Program
Sebuah program dapat dibagi menjadi 3 bagian:
• Input data
• Processing data – Calculation, etc.
• Output information/results
Input
Calculation/
Processing
Output
27. 1. Metode pemrograman ini memecah program
menjadi beberapa fungsi dan modul.
2. Tidak ada hubungan antara fungsi dan data,
Fungsi tidak dapat membatasi akses terhadap
data yang global.
3. Data lokal tersembunyi dalam fungsi dan
digunakan secara eklusif oleh fungsi tersebut,
tetapi pada saat dua fungsi mengakses data yang
sama, maka data tersebut harus dibuat.
27
Procedural Oriented Programming
28. 4. Dalam program yang besar, terdapat banyak fungsi
dan data global, sehingga timbul masalah:
28
o Struktur program rumit.
o Program sulit dimodifikasi, karena perubahan pada data
global dapat menyebabkan penulisan program diulang
kembali.
5. Pemrograman terstruktur menggunakan teorema
terstruktur:
o Sequence (berurutan).
o Selection (pemilihan).
o Repetition (pengulangan).
Procedural Oriented Programming
30. Apakah flowchart?
• Sebuah diagram yang dibangun oleh berbagai macam bentuk simbol yang saling terhubung
dengan garis-garis beranak panah.
• Simbol-simbol tersebut mengindikasikan aksi apa yang akan dilakukan atau keputusan apa
yang akan dibuat.
• Bisa juga digunakan untuk menggambarkan proses yang kompleks ketika terjadi gabungan
antara aksi dan pengambilan keputusan.
• Flowchart membantu dalam planning & programming.
31. Flowchart digunakan untuk menggambarkan:
• Langkah-langkah dalam suatu proses
• Keputusan yang dibuat dalam proses tersebut
• Data penting yang digunakan dalam langkah-langkah
tersebut, jika data tersebut penting
32. Flowchart Symbols
Terminal symbol
(Start & Stop)
Processing symbol
(Calculate, Assign,
Initialize, Declare)
Input/Output symbol
(get, put)
2 1
A
A
T
F
Decision symbol
(Selection, Conditional
Statement)
Page connector
(used when run out of
room at the bottom)
Step connector
(go from one part to
another)
33. Terminal Symbol
• Only one “start” & one
“stop”
• 1 arrow only
• Each flowchart starts with
one “start” & ends with
one “stop”
start
stop
34. Input / Output Symbol
• 2 arrows only
• 1 in & 1 out
• Input Data
• get fullname:*
• Display result
• put fullname
35. Processing Symbol
• 2 arrows only
• 1 in & 1 out
• Declaration
• var sum : real
• Initialization
• sum := 30.14
• Calculation
36. Decision Symbol
• 3 arrows
• 1 in & 2 out
• Question
• Gunakan kalimat tanya
yang dapat dijawab dengan
Yes atau No
• 2 out going arrows
• T (True, Yes)
• F (False, No)
Q. ?
T
F
37. Page connector
• 1 arrow only
1
2 Shows the next page
Shows the previous page
Run out of space
38. Step connector
• 1 arrow only
• Appear in
• 1 to 1
• Many to 1
• Use letters
• Go from one step to
another
A
A
39. Arrows
• From Top to Bottom &
from Left to Right
• Make turn
• Join together
40. Latihan 1
1.is it the door bell?
2.start
3.answer the phone
4.turn off the alarm
5.is it the telephone?
6.listen to bell ringing
7.stop
8.see who is at the door
start
bell
ringing
phone?
Y
answer the
phone
stop
N
door?
Y
see who is
at the door
N turn off the
alarm
41. Latihan 2
const PI := 3.14
var radius, volume : real
put “please enter...”..
get radius
volume := (4/3)*PI*radius**3
put “”
put “The volume is”, volume
start
Declare
radius, volume
input radius
Calculate
volume
output
volume
stop
Define PI
ask radius
42. start
var mark: real
_____ mark
mark
stop
A
A
T
F
ask mark
Latihan 3
1.start declare variables
2.what is the mark
3.ask for mark
4.check mark>=50
5.>=50 show “U Pass”
6.<50 show “U Fail”
7.stop
get
>=50 “U Pass”
“U Fail”
43. Latihan 4 dengan Trace Table
start
x = y
y = sum
sum of x&y
Declare & Initialise
x & y to1
stop
Y
N
x y sum
Trace Table
1 1 2
1 2 3
2 3 5
3 5 8
5 8 13
8 13 21
is
sum<20
A
A
Show x,y
and sum
44. Struktur Kendali Pemilihan
Struktur ini digunakan untuk menguji suatu
kondisi, kemudian melaksanakan satu urutan
perintah.
• Struktur pilihan dalam C++ meliputi :
- perintah if
- perintah if - else
- perintah switch
44
45. Perintah if
C++ tidak memiliki kata kunci (key word) then pada
konstruksi perintah if.
• Syntax
if ( condition )
statement ;
atau
if ( condition ) {
< sequence of statement>
}
45
47. Perintah if
Contoh :
if ( detik = 60 )
menit = menit + 1 ;
if ( sisi >0 ) {
luas = panjang * lebar ;
isi = luas * tinggi ;
}
47
48. Contoh Program
// Contoh program C++ menggunakan if
#include <iostream.h>
void main() {
double x;
cout<<“Masukkan x (jangan 0): “;
cin>>x;
if ( x != 0 )
cout<<“Reciprocal dari “<<x
<<“ adalah ”<<(1/x)<<“n”;
}
48
49. Perintah if-else
Perintah ini memberikan satu alternatif dari dua
kemungkinan, kemudian diikuti dengan urutan
perintah sebagai hasil uji boolean.
Syntax :
if (condition) {
< sequence #1 of statements>
}
else {
< sequence #2 of statements>
}
49
51. Perintah if-else
Contoh :
if ( pembagi ! = 0 ) {
hasil = nilai / pembagi ;
cout << “ Hasil = “ << hasil << “ n ” ;
}
else {
hasil = 0 ;
cout << “ Hasil tidak ada - pembagi = “
<< pembagi << “ n ” ;
}
51
52. Contoh Program
// Contoh program C++ menggunakan if - else
#include <iostream.h>
#include <ctype.h>
void main() {
char c ;
cout << “ Masukkan Huruf : “ ;
cin >> c ;
c = toupper(c); //ubah menjadi huruf besar
if ( c >= ‘ A ’ && c <= ‘ Z ’ )
cout << “ Input anda adalah hurufn ”;
else
cout << “ Input anda bukan hurufn ”;
}
52
53. Multiple if - else
C++ memberikan fasilitas nested if - else untuk
mendukung fleksibilitas dalam program aplikasi.
• Syntax :
if (tested_condition1)
statement1 {<sequence #1 of statement>}
else if (tested_condition2)
statement2 {<sequence #2 of statement>}
...
else if (tested_conditionN)
statementN {<sequence #N of statement>}
53
54. Contoh Program
// Contoh program C++ menggunakan multiple if-else
#include <iostream.h>
void main() {
char c ;
cout << “ Masukkan satu karakter : “ ;
cin >> c ;
if ( c >= ‘ A ’ && c <= ‘ Z ’ )
cout << “Input anda adalah huruf besarn”;
else if ( c >= ‘ a ’ && c <= ‘ z ’ )
cout << “Input anda adalah huruf keciln”;
else if (c >= ‘0’ && c <= ‘9’)
cout << “Input anda adalah satu angkan”;
else
cout << “Input bukan alphanumericn”;
}
54
56. Syntax Perintah Switch
switch (expression) {
case constant1_1:
[ case constant1_2: ...]
<one or more statements>
break;
case constant2_1:
[ case constant2_2: ...]
<one or more statements>
break;
...
case constantN_1:
[ case constantN_2: ...]
<one or more statements>
break;
default:
<one or more statements>
}
56
58. Struktur Pengulangan (Loops)
Merupakan fasilitas bahasa C++ yang mampu
melakukan proses pengulangan, karena itu komputer
dapat mengerjakan proses berulang-ulang dengan
cepat, tepat dan tanpa lelah.
Kontruksi pengulangan dalam C++ meliputi :
• perintah for
• perintah do-while
• perintah while
58
59. Perintah for
C++ memiliki dua jenis pengulangan for - fixed
dan conditional.
Syntax :
for(<intialisasi variable >; <kondisi>;
<penambahan/pengurangan variable>){
<statement>
...
<statement>
}
59
60. Perintah for
Contoh :
for ( i = 0; i < 10; i++ )
cout << “ Kuadrat dari “ << i
<< “ = “ << i * i << “ n ”;
60
61. Infinite Loop
C++ mengijinkan pembentukan infinite loop / open
loop, dengan menghilangkan ketiga parameter yang
ada pada for loop.
Syntax :
for( ; ; ){
<statement>
...
<statement>
}
61
62. Perintah Do-while Loop
Loop ini dikenal dengan nama conditional loop,
dimana kondisi pengulangan di periksa pada akhir
blok loop.
Syntax :
do {
<sequence of statements>
} while (condition);
62
65. Contoh Program
// Contoh program C++ menggunakan do-while loop
#include <math.h>
void main() {
char c ; double x, y ;
do{
do {
cout << “Masukkan Bilangan: “ ;
cin >> x ;
} while ( x < 0 ) ;
y = sqrt ( x ) ;
cout << “Sqrt(“ << x << “)=“<< y << “n”
<< “Masukkan bilangan lain?(Y/N)”;
cin >> c ;
cout << “ n ” ;
} while ( c == ‘ Y ’ || c == ‘ y ’ ) ;
}
65
66. Perintah while Loop
Loop ini juga merupakan conditional loop, dimana
kondisi pengulangan diuji pada awal blok
pengulangan.
Syntax :
while ( condition )
statement { sequence of statement }
66
68. Perintah while Loop
Contoh :
int i = 2 ;
while ( ++i < 11 ) {
cout << i << “ ^2 = “ << i * i << “ n ”;
};
68
69. Contoh Program
// Contoh program C++ menggunakan while loop
#include <math.h>
void main() {
char c = ‘y’ ; double x=-1, y ;
while ( c == ‘ Y ’ || c == ‘ y ’ ){
while ( x < 0 ) {
cout << “Masukkan Bilangan: “ ;
cin >> x ;
};
y = sqrt ( x ) ;
cout << “Sqrt(“ << x << “)=“<< y << “n”
<< “Masukkan bilangan lain?(Y/N)”;
cin >> c ;
cout << “ n ” ;
};
}
69
70. Object Oriented Programming
3. Encapsulation adalah pengemasan data dan fungsi
dalam satu wadah bernama obyek.
70
1. Gagasan dasar dari OOP adalah
menggabungkan data dengan fungsi menjadi
satu kesatuan yang utuh.
2. Karakteristik utama dari OOP adalah:
o Encapsulation.
o Inheritance.
o Polymorphism.
71. Object Oriented Programming
4. Inheritance (pewarisan) merupakan sifat dari OOP
yang dimungkinkan menurunkan sifat-sifat dari suatu
kelas pada kelas yang lain.
5. Polymorphism merupakan suatu konsep yang
menyatakan bahwa sesuatu yang sama dapat
mempunyai berbagai bentuk dan perilaku yang
berbeda.
71
72. Object Oriented Programming
72
6. Keuntungan OOP:
o Problem Oriented Approach.
o Information Hiding (Data Abstraction).
o Reusability & Extensibility.
o Improve maintainability.
o Low probability errors.
o Teamwork.
73. 73
1. Penggunaan alat:
Untuk menggambarkan model dalam PBO
digunakan object diagram sedangkan dalam
Non-PBO digunakan data flow diagram, entity
relationship diagram dan structure chart
2. Data dan proses:
Pada non-obyek, data dan proses dianggap
sebagai dua komponen yang berlainan,
sedangkan pada PBO, data dan proses
merupakan satu kesatuan yaitu bagian dari
obyek.
Perbedaan OOP dengan Non-Obyek
76. Bahasa C
1. Flexibility: dapat mengakses / mendekati mesin,
namun mudah dimengerti oleh manusia.
2. Portability: dipakai mulai dari komputer mikro
(mikrokontroller) sampai superkomputer.
3. Bahasa yang paling banyak digunakan dalam ilmu
komputer, untuk membuat OS, aplikasi, dll.
4. Didukung oleh banyak pustaka (libraries).
76
77. Bahasa C++
1. Bahasa C yang dikembangkan dan diberi kemampuan
OOP.
2. Dikembangkan oleh Bjarne Stroustrup di AT&T Bell
Labs pada 1980.
3. Digunakan pertama kali diluar Bell Labs pada Juli
1983.
4. Sejak 1987 mulai dikembangkan oleh ANSI dan
vendor lainnya.
77
78. Bahasa C++
5. Karena merupakan subset dari bahasa C, maka library
yang ditulis dalam bahasa C dapat dipergunakan
dalam C++.
6. Mendukung metode pemrograman:
78
• Pemrograman abstraksi data, kemampuan
menciptakan tipe data.
• Pemrograman berorientasi obyek,
pemrograman dengan hirarki kelas dan
polymorphism.
• pemrograman generic, dengan parameterisasi
pada data dan fungsi (algoritma).
79. Perbedaan C dan C++
1. Dalam C atau bahasa pemrograman procedural yang
lain, cenderung action oriented, sedangkan dalam
C++ adalah object oriented.
2. Dalam C, unit pemrograman adalah fungsi
(prosedure), sedangkan dalam C++, unit
pemrogramannya adalah kelas (class) yang
membentuk object.
3. Pada C, programmer lebih terfokus pada penulisan
fungsi, atau kumpulan action dalam suatu fungsi
sehingga terbentuk program, sedangkan dalam C++
programmer memfokuskan pada pembuatan tipe
data yang didefinisikan oleh user yaitu class sebagai
pembentuk object.
79
80. Struktur Program
Setiap program C/C++ terdiri dari satu atau lebih
fungsi. Bila program tersebut adalah program/modul
utama maka dalam program tersebut harus
mempunyai fungsi bernama main().
Fungsi main() adalah fungsi yang pertama kali
dikerjakan dalam setiap program.
80
81. Contoh Program
1. // program C++ sederhana
2. #include <iostream.h>
3. main()
4. {
5. cout << "Selamat belajar AMOOP"
6. << endl;
7. return 0;
8. }
81
82. Penjelasan program
• Baris (1), merupakan komentar yang tidak dieksekusi pada saat
kompilasi
• Baris (2), merupakan header file yangdigunakan untuk proses
pembacaan dan penulisan
• Baris (3), merupakan fungsi main(). Tipe data dari fungsi ini
secara default adalah int, sehingga perlu return nilai integer.
• Baris (4) dan (8), adalah tanda pembuka dan penutup tubuh
program/fungsi main()
• Baris (5), digunakan untuk menuliskan “selamat belajar
AMOOP” di monitor.
• Baris (6), digunakan untuk mengarahkan kursor ke baris
berikutnya.
• Baris (7), digunakan untuk mengembalikan nilai 0 jika program
berjalan baik dan telah selesai.
82
83. • Ide dasar dari pemrograman berorientasi obyek adalah
bahwa dalam dunia nyata terdiri dari obyek, yang memiliki
dua bagian yaitu properties (data/karakteristik) dan
behavior (kemampuan melakukan sesuatu).
• Untuk memecahkan masalah dalam PBO, programmer
tidak lagi bertanya bagaimana program dipecah menjadi
fungsi, tetapi bagaimana dipecah ke dalam obyek.
83
PEMROGRAMAN BERORIENTASI OBYEK
84. • Benda-benda yang dapat menjadi obyek:
- Human entities: Employee, customer, worker, manager.
- Graphics program: point, line, circle, etc.
- Mathematics: matrix, vector, complex number.
- Computer user environment: windows, menus.
- Data-storage: array, stacks, linked-lists.
• Berfikir dalam batasan obyek dari pada fungsi sangat
berpengaruh dalam membantu proses perancangan
program, hasilnya adalah repre- sentasi yang dekat antara
obyek dalam program dan obyek dalam dunia nyata.
84
PEMROGRAMAN BERORIENTASI OBYEK
85. • Konsep utama dalam PBO:
1. Encapsulation 2. Inheritance 3. Polymorphism
• Pada PBO program terdiri atas object yang saling
berinteraksi.
• PBO menggambarkan hubungan interaksi antar objek
sebagai satu peristiwa (events), disertai pengiriman pesan
(messages) antar object.
• Sebuah object dianalogikan sebagai object dari dunia
nyata yang mempunyai :
1. Specific properties 2. Specific behavior
85
PEMROGRAMAN BERORIENTASI OBYEK
86. • Siklus hidup object:
1. Born (created)
2. Life (run, do it’s job)
3. Dead (destroyed)
• Object merupakan suatu variable yang memiliki dua
property yaitu data attribute dan operasi, atau dalam C++
disebut data members dan member functions.
• Penggambaran sekelompok object yang mempunyai
property sama disebut Kelas (class), yang juga merupakan
suatu tipe data.
86
PEMROGRAMAN BERORIENTASI OBYEK
87. Data Class (data member)
• Pada pengembangan disain program secara keseluruhan,
prinsip yang digunakan adalah menyembunyikan atribut
class (information hiding)
• Dalam class terdapat dua interface dari attributenya yaitu
private dan public.
• Atribut private berarti data tersebut hanya dapat diakses
oleh fungsi dari class itu sendiri.
• Atribute public berarti data tersebut dapat diakses oleh
fungsi di luar class.
• Penentuan suatu attribute private atau public tergantung
pada tingkat keamanan yang diterapkan pada atribut
tersebut.
87
88. Fungsi Anggota (Member Function)
• Merupakan kemampuan yang dipunyai oleh suatu
class
• Kemampuan tersebut diwujudkan dengan fungsi
anggota
• Dalam suatu class dapat mempunyai lebih dari satu
fungsi anggota.
• Dalam disain program, fungsi anggota ada yang
bersifat private maupun public.
88
89. Penggunaan class
• Class baru dapat digunakan setelah melalui proses
pendefinisian
• Untuk menggunakan class, object dalam class
tersebut juga harus didefinisikan.
89
90. Contoh Sebuah Obyek
• Sebuah titik (point) dalam komputer grafik
• Titik dalam bidang mempunyai data: koordinat x-y
• Kemampuan dari titik adalah bergerak (move) dalam
bidang, muncul ke layar dan sembunyi (hide)
• Bentuk model dari titik dalam PBO adalah:
• Dua variable bilangan bulat (x, y) untuk merepresentasikan
koordinat x-y
• Satu fungsi move untuk, menggerakkan titik
• Satu fungsi print, untuk menampilkan titik
• Satu fungsi hide, untuk menyembunyikan titik
90
92. • Teknik pemodelan object menggunakan tiga macam
model penggambaran system yaitu:
o Model object
o Model dinamik
o Model use case (use case scenario)
• Model object menggambarkan struktur statis dari suatu
object dalam system dan relasinya, digambarkan
dengan diagram object (class hierarchy).
92
PEMODELAN BERORIENTASI OBYEK
93. • Model dinamik mengambarkan interaksi antara object
dalam system yang digambarkan dengan state diagram.
Model ini berhubungan dengan waktu dan sekuen
operasi.
• Model use case (use case scenario) model ini
menggambarkan bagaimana system bekerja secara
keseluruhan dan pada skenario tertentu. Sehingga jika
sebuah object merupakan sesuatu yang menyediakan
layanan maka harus dapat dibuktikan bahwa semua
layanan tersebut ada dalam suatu use case. Model ini
digambarkan dengan diagram use case scenario.
93
PEMODELAN BERORIENTASI OBYEK
94. Model Obyek
• Pada Pengembangan system berorientasi object,
terdapat beberapa metode pemodelan, seperti object
modeling technique OMT (Rumbaugh -1991), Objectory
(Jacobson - 1992), dan OOA-OOD (coad and Yourdon -
1991).
• Gabungan dari ketiga metode tersebut adalah unified
Modeling language (UML) pada tahun 1997.
• Pemodelan dalam slide ini dengan UML:
94
95. Notasi Kelas dan Object
Kelas dan object dimodelkan dengan nama_kelas,
attribute dan metode atau fungsi sbb:
95
• Atributes, berupa data atau
informasi yang dipunyai oleh
setiap object dalam kelas
tersebut.
Nama_kelas
Atributes
Methods • Fungsi (methods) adalah
kemampuan dari object untuk
memproses data,
menginputkan data dan
mendisplaynya.
96. Notasi Kelas dan Object
Contoh:
96
Methods
Atributes
Nama Kelas
Mahasiswa
NIM
Nama
Jurusan
InputNIM()
InputNama()
InputJurusan()
TampilData(NIM)
97. Notasi Struktur
• Istilah struktur digunakan untuk menjelaskan hubungan
generalisasi spesifikasi (gen-spek) dan hubungan
keseluruhan sebagian (wholepart).
97
• Stuktur gen-spek
menjelaskan hubungan kelas
satu dengan yang lain yang
memakai hubungan “is a”
atau “is a kind of”
Contoh:
A car is a kind of vehicle
• Struktur whole-part
menjelaskan struktur
kepemilikan “has
a/an”
Contoh:
A Car has a body
101. Pengertian Struktur Data
Struktur data adalah cara menyimpan atau
merepresentasikan data di dalam komputer agar bisa
dipakai secara efisien Sedangkan data adalah representasi
dari fakta dunia nyata.
Fakta atau keterangan tentang kenyataan yang
disimpan, direkam atau direpresentasikan dalam bentuk
tulisan, suara, gambar, sinyal atau simbol
102. Hubungan Struktur Data dan Algoritma
• Dengan pemilihan struktur data yang baik, maka problem
yang kompleks dapat diselesaikan sehingga algoritma dapat
digunakan secara efisien, operasi-operasi penting dapat
dieksekusi dengan sumber daya yang lebih kecil, memori
lebih kecil, dan waktu eksekusi yang lebih cepat.
• Tidak semua struktur data baik dan sesuai. Contoh untuk
problem data bank: pengupdate-an harus cepat, sedangkan
penambahan/penghapusan data boleh lebih lambat.
103. Bagaimana cara mengatasi masalah
implementasi program dengan komputer?
• Pemahaman masalah secara menyeluruh dan persiapan
data
• Keputusan operasi-operasi yang dilakukan terhadap data
• Penyimpanan data-data pada memori sehingga tersimpan
dan terstruktur secara logis, operasinya efisien
• Pengambilan keputusan terhadap bahasa pemrograman
mana yang paling cocok untuk jenis data yang ada
104. Aktivitas Struktur Data
• Di dalam struktur data kita berhubungan dengan 2 aktivitas:
• Mendeskripsikan kumpulan obyek data yang sah sesuai dengan tipe data yang
ada
• Menunjukkan mekanisme kerja operasi-operasinya
• Contoh: integer (-32768 s/d 32767) dan jenis operasi yang diperbolehkan adalah +, -, *, /,
mod, ceil, floor, <, >, != dsb.
• Struktur data = obyek data + [operasi manipulasi data]
105. ADT (Abstract Data Type) atau Tipe Data Bentukan
• Bahasa pemrograman bisa memiliki tipe data:
• Built-in : sudah tersedia oleh bahasa pemrograman tersebut
• Tidak berorientasi pada persoalan yang dihadapi.
• UDT : User Defined Type, dibuat oleh pemrogram.
• Mendekati penyelesaian persoalan yang dihadapi
• Contoh: record pada Pascal, struct pada C, class pada Java
• ADT : Abstract Data Type
• memperluas konsep UDT dengan menambahkan pengkapsulan atau enkapsulasi, berisi
sifat-sifat dan operasi-operasi yang bisa dilakukan terhadap kelas tersebut.
• Contoh: class pada Java
106. Perbedaan Tipe Data, Obyek Data & Struktur Data
• Tipe data adalah jenis data yang mampu ditangani oleh suatu bahasa
pemrograman pada komputer.
• Tiap-tiap bahasa pemrograman memiliki tipe data yang
memungkinkan:
• Deklarasi terhadap variabel tipe data tersebut
• Menyediakan kumpulan operasi yang mungkin terhadap variabel bertipe data
tersebut
• Jenis obyek data yang mungkin
• Contoh tipe data di C? Java? Pascal? .NET?
107. Perbedaan Tipe Data, Obyek Data & Struktur Data
• Obyek Data adalah kumpulan elemen yang mungkin untuk suatu tipe
data tertentu.
• Mis: integer mengacu pada obyek data -32768 s/d 32767, byte 0 s/d 255,
string adalah kumpulan karakter maks 255 huruf
• Struktur Data adalah cara penyimpanan dan pengorganisasian data-
data pada memori komputer maupun file secara efektif sehingga
dapat digunakan secara efisien, termasuk operasi-operasi di
dalamnya.
108. Tipe Data
Type data sederhana
1. Type Data
a. Type data sederhana tunggal, misalnya: Integer, real, boolean dan karakter
b. Type data sederhana majemuk, misalnya: String
2. Struktur Data, meliputi
a. Struktur data sederhana, misalnya array dan record
b. Struktur data majemuk, yang terdiri dari
Linier : Stack, Queue, serta List dan Multilist
Non Linier : Pohon Biner dan Graph
Pemakaian struktur data yang tepat di dalam proses pemrograman akan
menghasilkan algoritma yang lebih jelas dantepat, sehingga menjadikan program
secara keseluruhan lebih efisien dan sederhana.
109. Variabel
• Sesuatu alokasi tempat di memori untuk
menyimpan suatu nilai
• Variabel harus diberi nama sebagai identifikasi
• Contoh:
nilai X
110. String
• String merupakan array of character
• Index dimulai dari 0
• Diakhiri dengan karakter ‘0’ (NULL String).
• Untuk menyimpan n buah character dibutuhkan
deklarasi array sebesar (n+1).
• C/C++ dilengkapi dengan library yang lengkap untuk
mengakses string, seperti strlen(), strcpy(), strcmp(),
strchr(), dll.
110
112. String
#include <iostream.h>
void main() {
char name[81]; // allocate for 80 chars
cout << “What is your name?“;
cin >> name;
if (strlen(name) > 0)
cout << “Hello, “ << name
<< “, how are you?n”;
else
cout << ”Hmm, I don’t know what your name.”;
}
112
113. Array
• Sesuatu alokasi beberapa tempat di memori secara
berurutan yang digunakan untuk menyimpan
beberapa nilai.
• Array harus diberi nama sebagai identifikasi
• Cara mengaksesnya adalah dengan menyebutkan
nama array dan indeksnya
• Contoh:
bilangan
1 2 3 4
114. Array
Adalah struktur data yang terdiri dari kumpulan
variabel yang bertipe sama.
Syntax:
type array_name[number of element];
Contoh:
114
int bil[3];
double a, b[10], c;
115. Array
Menggunakan index untuk mengakses element array.
Index dimulai dari 0 s/d jumlah_element – 1
Contoh:
115
bil[0]=10;
bil[1]=15;
bil[2]=12;
117. Array
Contoh program implementasi Array:
117
Jumlah bilangan: _
Input bil ke 1: _
Input bil ke 2: _
Input bil ke ...
Bilangan terbesar: _
118. Array Dua / Multi Dimensi
Syntax:
type array [size1][size2];
Array dua dimensi memiliki dua atribut baris dan jalur,
Array tiga dimensi memiliki tiga atribut baris, jalur dan
tinggi.
118
120. Matriks
• Sesuatu alokasi beberapa tempat di memori secara
berurutan yang digunakan untuk menyimpan
beberapa nilai.
• Mirip dengan array, tetapi 2 dimensi
• Matriks harus diberi nama sebagai identifikasi
• Cara mengaksesnya adalah dengan menyebutkan
nama matriks serta baris dan kolomnya
• Contoh:
M
1 2 3
1
2
121. Struct
Adalah struktur data yang terdiri dari 1 atau lebih
variabel yang bertipe sama/berbeda
Struct secara logik membuat suatu tipe data baru (user
defined) yang dapat dipergunakan untuk menampung
informasi / data yang bersifat majemuk.
121
123. Deklarasi Variabel Struct
Struktur yang telah didefinisikan dapat
dipergunakan sebagai tipe data dalam
membentuk suatu variable.
Contoh:
struct point { struct {
double x; double x;
double y; double y;
}; } p1, p2, p3;
point p1, p2, p3;
123
124. Akses Anggota Struct
C++ memberikan fasilitas inisialisasi satu struktur serta
akses anggota satu struktur.
Contoh :
point p1 = {1.0, 8.5};
Atau
p1.x = 9.0;
p1.y = 12.5;
p2.x = 5.0;
p2.y = 7.2;
124
125. Contoh Struct
Setiap barang di Indomart mempunyai:
KdBarang, NmBarang, HargaBeli, HargaJual, JumlahStock.
125
struct MsBrg{
char KdBarang[5];
char NmBarang[31];
double HargaBeli;
double HargaJual;
int JumlahStock;
}
126. Enum
Enum merupakan tipe data yang anggota datanya telah
diketahui.
Contoh Nama_hari, Nama_bulan, Status.
enum Months { JAN, FEB, MAR, APR, MAY, JUN, JUL,
AUG, SEP, OCT, NOV, DEC };
enum Nama_Hari { Senin, Selasa, rabu, Kamis, Jum’at,
Sabtu, Minggu };
enum Status {Lanjut, Menang, Kalah };
126
127. Stack
• Mekanisme penyimpanan nilai secara LIFO (Last In
First Out)
• Bekerja seperti tumpukan
• Stack harus diberi nama sebagai identifikasi
• Cara mengaksesnya adalah dengan melakukan aksi
push dan pop
• Contoh:
S
push pop
128. Queue
• Mekanisme penyimpanan nilai secara FIFO (First In
First Out)
• Bekerja seperti antrian
• Queue harus diberi nama sebagai identifikasi
• Cara mengaksesnya adalah dengan melakukan aksi
enqueue dan dequeue
• Contoh: Q
enqueue dequeue