SlideShare a Scribd company logo
1 of 129
Download to read offline
Algoritma &
Struktur data
Matrikulasi
UNIVERSITAS DINAMIKA BANGSA
JAMBI
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.
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.
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
Contoh algoritma 1
• Ada 2 buah gelas. Satu berisi teh dan satunya lagi
berisi kopi. Bagaimana caranya menukar isi masing-
masing gelas?
teh kopi
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
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.
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.
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.
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.
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
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
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
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.
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
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
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
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
Penyajian Algoritma
• Teknik tulisan: Struktur english dan pseudocode
• Teknik gambar: Flow chart.
19
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
Contoh Algoritma Flow Chart
21
k<=N ?
sum = 0
k = 1
Input N
k = k + 1
sum = sum + k
Show sum
yes
no
Contoh Algoritma
Representasi algoritma di atas dalam bahasa C++
adalah:
22
cin >> N;
sum = 0;
for (int k = 0; k<=N; k++){
sum +=k;
}
cout << sum;
Pemrograman
Berdasarkan algoritma, akan dibuat solusi dengan
bahasa pemrograman menjadi suatu software.
23
Paradigma Pemrograman
24
Pemrogaman
berorientasi
obyek
Pemrogaman
abstraksi
data
Pemrogaman
Modular
Pemrograman
Prosedural
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
Program
Sebuah program dapat dibagi menjadi 3 bagian:
• Input data
• Processing data – Calculation, etc.
• Output information/results
Input
Calculation/
Processing
Output
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
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
Flowchart
Suatu diagram yang menggunakan simbol-simbol
khusus yang menunjukkan langkah-langkah sebuah
program
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.
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
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)
Terminal Symbol
• Only one “start” & one
“stop”
• 1 arrow only
• Each flowchart starts with
one “start” & ends with
one “stop”
start
stop
Input / Output Symbol
• 2 arrows only
• 1 in & 1 out
• Input Data
• get fullname:*
• Display result
• put fullname
Processing Symbol
• 2 arrows only
• 1 in & 1 out
• Declaration
• var sum : real
• Initialization
• sum := 30.14
• Calculation
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
Page connector
• 1 arrow only
1
2  Shows the next page
 Shows the previous page
 Run out of space
Step connector
• 1 arrow only
• Appear in
• 1 to 1
• Many to 1
• Use letters
• Go from one step to
another
A
A
Arrows
• From Top to Bottom &
from Left to Right
• Make turn
• Join together
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
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
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”
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
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
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
Flowchart Perintah if
46
true
false
Kondisi Perintah jika kondisi true
Perintah if
Contoh :
if ( detik = 60 )
menit = menit + 1 ;
if ( sisi >0 ) {
luas = panjang * lebar ;
isi = luas * tinggi ;
}
47
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
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
Flowchart Perintah if-else
50
true
false
Perintah False Perintah True
Kondisi
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
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
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
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
Perintah Switch
Perintah memiliki bentuk yang digunakan untuk
pilihan berjumlah banyak.
55
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
Flowchart Perintah Switch
57
true
false
….
case a case a action(s) break
case b case b action(s) break
false
false
case z case z action(s) break
true
true
default action(s)
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
Perintah for
C++ memiliki dua jenis pengulangan for - fixed
dan conditional.
Syntax :
for(<intialisasi variable >; <kondisi>;
<penambahan/pengurangan variable>){
<statement>
...
<statement>
}
59
Perintah for
Contoh :
for ( i = 0; i < 10; i++ )
cout << “ Kuadrat dari “ << i
<< “ = “ << i * i << “ n ”;
60
Infinite Loop
C++ mengijinkan pembentukan infinite loop / open
loop, dengan menghilangkan ketiga parameter yang
ada pada for loop.
Syntax :
for( ; ; ){
<statement>
...
<statement>
}
61
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
Flowchart Perintah Do-while Loop
63
true
false
action(s)
condition
Perintah Do-while Loop
Contoh :
int i = 2 ;
do {
cout << i << “ ^2 = “ << i * i << “ n ”;
} while ( ++i < 11 ) ;
64
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
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
Flowchart Perintah while Loop
67
action(s)
true
false
condition
Perintah while Loop
Contoh :
int i = 2 ;
while ( ++i < 11 ) {
cout << i << “ ^2 = “ << i * i << “ n ”;
};
68
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
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.
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
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
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
Struktur program dari POP
74
Struktur program dari OOP
75
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
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
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).
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
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
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
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
• 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
• 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
• 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
• 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
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
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
Penggunaan class
• Class baru dapat digunakan setelah melalui proses
pendefinisian
• Untuk menggunakan class, object dalam class
tersebut juga harus didefinisikan.
89
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
Model Obyek Titik:
91
Point
int x
int y
int Color
Move()
Print()
Hide()
SetColor(int)
• 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
• 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
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
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.
Notasi Kelas dan Object
Contoh:
96
Methods
Atributes
Nama Kelas
Mahasiswa
NIM
Nama
Jurusan
InputNIM()
InputNama()
InputJurusan()
TampilData(NIM)
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
Notasi Struktur Gen-Spek
98
Contoh:
Generalisasi
Spesifikasi 1 Spesifikasi 2
Kendaraan
Kecepatan
GantiKecepatan()
Mobil
Mesin
Motor
Tak
Sepeda
Gigi
Kereta Api
Gerbong
Notasi Struktur Whole-part
99
Contoh:
Whole
Part 1 Part 2
Mobil
Roda Body
Mesin
Struktur data
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
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.
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
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]
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
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?
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.
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.
Variabel
• Sesuatu alokasi tempat di memori untuk
menyimpan suatu nilai
• Variabel harus diberi nama sebagai identifikasi
• Contoh:
nilai X
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
String
Deklarasi :
// pesan untuk 20 char
char name[21];
char amir[5] = {“Amir”};
111
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
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
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;
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;
Contoh Array
116
int a[10];
a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9]
a[1]=10;
a[8]=2;
a[0]=7;
a[5]=6;
10
7 2
6
Array
Contoh program implementasi Array:
117
Jumlah bilangan: _
Input bil ke 1: _
Input bil ke 2: _
Input bil ke ...
Bilangan terbesar: _
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
Contoh Array
119
int a[2][3];
a[0][0] a[0][1] a[0][2]
a[1][0] a[1][1] a[1][2]
a[0][2]=20;
a[1][1]=5;
20
5
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
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
Struct
Syntax:
struct structTag{
<list of members>
};
Contoh:
struct point {
double x;
double y;
};
122
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
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
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;
}
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
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
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
ALGORITMA

More Related Content

What's hot

Dasar dasar algoritma - 1-1
Dasar dasar algoritma - 1-1Dasar dasar algoritma - 1-1
Dasar dasar algoritma - 1-1Rachmat Narendra
 
Micro teaching konsep logika algoritma
Micro teaching konsep logika algoritmaMicro teaching konsep logika algoritma
Micro teaching konsep logika algoritmaApriyanto_apo
 
Pengantar Algoritma Dan Program
Pengantar Algoritma Dan ProgramPengantar Algoritma Dan Program
Pengantar Algoritma Dan ProgramAkmal Fajar
 
Pengertian algoritma lengkap by.artayahonest
Pengertian algoritma lengkap by.artayahonestPengertian algoritma lengkap by.artayahonest
Pengertian algoritma lengkap by.artayahonestArtaya Honest
 
Sejarah Algoritma
Sejarah Algoritma Sejarah Algoritma
Sejarah Algoritma casnadi
 
Pengenalan kepada pengaturcaraan komputer
Pengenalan kepada pengaturcaraan komputerPengenalan kepada pengaturcaraan komputer
Pengenalan kepada pengaturcaraan komputerctlady92
 
Materi algoritma dan pemrograman insan unggul new
Materi algoritma dan pemrograman insan unggul newMateri algoritma dan pemrograman insan unggul new
Materi algoritma dan pemrograman insan unggul newasdammantap
 
Algoritma dan Pemrograman C++ (Pseudocode & Flowchart)
Algoritma dan Pemrograman C++ (Pseudocode & Flowchart)Algoritma dan Pemrograman C++ (Pseudocode & Flowchart)
Algoritma dan Pemrograman C++ (Pseudocode & Flowchart)Nabil Muhammad Firdaus
 
PENGERTIAN ALGORITMA DAN PEMROGRAMAN
PENGERTIAN ALGORITMA DAN PEMROGRAMANPENGERTIAN ALGORITMA DAN PEMROGRAMAN
PENGERTIAN ALGORITMA DAN PEMROGRAMANAziz Moeslim
 
Pertemuan 1 - Algoritma - Tri Lux
Pertemuan 1 - Algoritma - Tri LuxPertemuan 1 - Algoritma - Tri Lux
Pertemuan 1 - Algoritma - Tri Luxtri lux
 
Topik 1(pengantar algoritma)
Topik 1(pengantar algoritma)Topik 1(pengantar algoritma)
Topik 1(pengantar algoritma)SyaharullahDisa
 
Topik 2(notasi flowchart)
Topik 2(notasi flowchart)Topik 2(notasi flowchart)
Topik 2(notasi flowchart)SyaharullahDisa
 

What's hot (20)

Dasar dasar algoritma - 1
Dasar dasar algoritma - 1Dasar dasar algoritma - 1
Dasar dasar algoritma - 1
 
Dasar dasar algoritma - 1-1
Dasar dasar algoritma - 1-1Dasar dasar algoritma - 1-1
Dasar dasar algoritma - 1-1
 
02 algoritma
02 algoritma02 algoritma
02 algoritma
 
Algoritam1
Algoritam1Algoritam1
Algoritam1
 
Micro teaching konsep logika algoritma
Micro teaching konsep logika algoritmaMicro teaching konsep logika algoritma
Micro teaching konsep logika algoritma
 
Algoritma
AlgoritmaAlgoritma
Algoritma
 
Pengantar Algoritma Dan Program
Pengantar Algoritma Dan ProgramPengantar Algoritma Dan Program
Pengantar Algoritma Dan Program
 
Algoritma Pemrograman
Algoritma PemrogramanAlgoritma Pemrograman
Algoritma Pemrograman
 
Pengertian algoritma lengkap by.artayahonest
Pengertian algoritma lengkap by.artayahonestPengertian algoritma lengkap by.artayahonest
Pengertian algoritma lengkap by.artayahonest
 
Sejarah Algoritma
Sejarah Algoritma Sejarah Algoritma
Sejarah Algoritma
 
Pengenalan kepada pengaturcaraan komputer
Pengenalan kepada pengaturcaraan komputerPengenalan kepada pengaturcaraan komputer
Pengenalan kepada pengaturcaraan komputer
 
Materi algoritma dan pemrograman insan unggul new
Materi algoritma dan pemrograman insan unggul newMateri algoritma dan pemrograman insan unggul new
Materi algoritma dan pemrograman insan unggul new
 
Algoritma dan Pemrograman C++ (Pseudocode & Flowchart)
Algoritma dan Pemrograman C++ (Pseudocode & Flowchart)Algoritma dan Pemrograman C++ (Pseudocode & Flowchart)
Algoritma dan Pemrograman C++ (Pseudocode & Flowchart)
 
PENGERTIAN ALGORITMA DAN PEMROGRAMAN
PENGERTIAN ALGORITMA DAN PEMROGRAMANPENGERTIAN ALGORITMA DAN PEMROGRAMAN
PENGERTIAN ALGORITMA DAN PEMROGRAMAN
 
Pertemuan 1 - Algoritma - Tri Lux
Pertemuan 1 - Algoritma - Tri LuxPertemuan 1 - Algoritma - Tri Lux
Pertemuan 1 - Algoritma - Tri Lux
 
Efisiensi algoritma
Efisiensi algoritmaEfisiensi algoritma
Efisiensi algoritma
 
Algoritma
AlgoritmaAlgoritma
Algoritma
 
Topik 1(pengantar algoritma)
Topik 1(pengantar algoritma)Topik 1(pengantar algoritma)
Topik 1(pengantar algoritma)
 
Topik 2(notasi flowchart)
Topik 2(notasi flowchart)Topik 2(notasi flowchart)
Topik 2(notasi flowchart)
 
Pengenalan Algoritma Komputer
Pengenalan Algoritma KomputerPengenalan Algoritma Komputer
Pengenalan Algoritma Komputer
 

Similar to ALGORITMA

konsep & struktur algoritma
konsep & struktur algoritmakonsep & struktur algoritma
konsep & struktur algoritmaRohwiyanto Oi
 
Materi_1_Pengantar_Algoritma.pptx
Materi_1_Pengantar_Algoritma.pptxMateri_1_Pengantar_Algoritma.pptx
Materi_1_Pengantar_Algoritma.pptxwahyu479353
 
Materi Pemrograman Dasar 1.1 Algoritma Pemrograman.pptx
Materi Pemrograman Dasar 1.1 Algoritma Pemrograman.pptxMateri Pemrograman Dasar 1.1 Algoritma Pemrograman.pptx
Materi Pemrograman Dasar 1.1 Algoritma Pemrograman.pptxAmuharnis1
 
Algoritma dan Flowchart1.ppt
Algoritma dan Flowchart1.pptAlgoritma dan Flowchart1.ppt
Algoritma dan Flowchart1.pptBKKSMKN2Jombang
 
Pengantar Konsep Pemrograman.ppt
Pengantar Konsep Pemrograman.pptPengantar Konsep Pemrograman.ppt
Pengantar Konsep Pemrograman.pptssuser1f9e371
 
Pengantar mata kuliah Konsep Pemrograman
Pengantar mata kuliah Konsep PemrogramanPengantar mata kuliah Konsep Pemrograman
Pengantar mata kuliah Konsep Pemrogramanirwansyafibonaci
 
Pengantar Konsep Pemrograman Dalam Dunia Programming
Pengantar Konsep Pemrograman Dalam Dunia ProgrammingPengantar Konsep Pemrograman Dalam Dunia Programming
Pengantar Konsep Pemrograman Dalam Dunia Programminglutfiadnan
 
Lampiran materi simkomdig 3.1 4.1
Lampiran materi simkomdig 3.1   4.1Lampiran materi simkomdig 3.1   4.1
Lampiran materi simkomdig 3.1 4.1Adrian Odja
 
Materi simkomdig-pengertian-dasar-logika-dan-algoritma
Materi simkomdig-pengertian-dasar-logika-dan-algoritmaMateri simkomdig-pengertian-dasar-logika-dan-algoritma
Materi simkomdig-pengertian-dasar-logika-dan-algoritmaDonnie Xover
 
M03b algoritma lanjutan
M03b algoritma lanjutanM03b algoritma lanjutan
M03b algoritma lanjutanBilly Alhamra
 
Pertemuan 1 algoritma
Pertemuan 1 algoritmaPertemuan 1 algoritma
Pertemuan 1 algoritmaBraga Rezpect
 
Algoritma Pemrograman
Algoritma Pemrograman Algoritma Pemrograman
Algoritma Pemrograman hanujisudiman
 
Pemrograman dasar pertemuan1
Pemrograman dasar pertemuan1Pemrograman dasar pertemuan1
Pemrograman dasar pertemuan1ndriehs
 
Algoritma dan flowchart
Algoritma dan flowchartAlgoritma dan flowchart
Algoritma dan flowchartpurispace
 
listiati univ bung hata (1110013211051) Algoritma dan flowchart
listiati univ bung hata (1110013211051) Algoritma dan flowchartlistiati univ bung hata (1110013211051) Algoritma dan flowchart
listiati univ bung hata (1110013211051) Algoritma dan flowchartMaryanto Sumringah SMA 9 Tebo
 

Similar to ALGORITMA (20)

konsep & struktur algoritma
konsep & struktur algoritmakonsep & struktur algoritma
konsep & struktur algoritma
 
Algoritma Pemrogaman
Algoritma PemrogamanAlgoritma Pemrogaman
Algoritma Pemrogaman
 
Materi_1_Pengantar_Algoritma.pptx
Materi_1_Pengantar_Algoritma.pptxMateri_1_Pengantar_Algoritma.pptx
Materi_1_Pengantar_Algoritma.pptx
 
Materi Pemrograman Dasar 1.1 Algoritma Pemrograman.pptx
Materi Pemrograman Dasar 1.1 Algoritma Pemrograman.pptxMateri Pemrograman Dasar 1.1 Algoritma Pemrograman.pptx
Materi Pemrograman Dasar 1.1 Algoritma Pemrograman.pptx
 
Algoritma dan Flowchart1.ppt
Algoritma dan Flowchart1.pptAlgoritma dan Flowchart1.ppt
Algoritma dan Flowchart1.ppt
 
Pengantar Konsep Pemrograman.ppt
Pengantar Konsep Pemrograman.pptPengantar Konsep Pemrograman.ppt
Pengantar Konsep Pemrograman.ppt
 
Pengantar mata kuliah Konsep Pemrograman
Pengantar mata kuliah Konsep PemrogramanPengantar mata kuliah Konsep Pemrograman
Pengantar mata kuliah Konsep Pemrograman
 
Pengantar Konsep Pemrograman Dalam Dunia Programming
Pengantar Konsep Pemrograman Dalam Dunia ProgrammingPengantar Konsep Pemrograman Dalam Dunia Programming
Pengantar Konsep Pemrograman Dalam Dunia Programming
 
Lampiran materi simkomdig 3.1 4.1
Lampiran materi simkomdig 3.1   4.1Lampiran materi simkomdig 3.1   4.1
Lampiran materi simkomdig 3.1 4.1
 
Materi simkomdig-pengertian-dasar-logika-dan-algoritma
Materi simkomdig-pengertian-dasar-logika-dan-algoritmaMateri simkomdig-pengertian-dasar-logika-dan-algoritma
Materi simkomdig-pengertian-dasar-logika-dan-algoritma
 
M03b algoritma lanjutan
M03b algoritma lanjutanM03b algoritma lanjutan
M03b algoritma lanjutan
 
3-1 Algoritma.pptx
3-1 Algoritma.pptx3-1 Algoritma.pptx
3-1 Algoritma.pptx
 
Pk 1 kimia algo and flowchart
Pk 1 kimia algo and flowchartPk 1 kimia algo and flowchart
Pk 1 kimia algo and flowchart
 
Pk 1 kimia algo and flowchart
Pk 1 kimia algo and flowchartPk 1 kimia algo and flowchart
Pk 1 kimia algo and flowchart
 
Pertemuan 1 algoritma
Pertemuan 1 algoritmaPertemuan 1 algoritma
Pertemuan 1 algoritma
 
Algoritma Pemrograman
Algoritma Pemrograman Algoritma Pemrograman
Algoritma Pemrograman
 
alur pemrograman.pptx
alur pemrograman.pptxalur pemrograman.pptx
alur pemrograman.pptx
 
Pemrograman dasar pertemuan1
Pemrograman dasar pertemuan1Pemrograman dasar pertemuan1
Pemrograman dasar pertemuan1
 
Algoritma dan flowchart
Algoritma dan flowchartAlgoritma dan flowchart
Algoritma dan flowchart
 
listiati univ bung hata (1110013211051) Algoritma dan flowchart
listiati univ bung hata (1110013211051) Algoritma dan flowchartlistiati univ bung hata (1110013211051) Algoritma dan flowchart
listiati univ bung hata (1110013211051) Algoritma dan flowchart
 

Recently uploaded

Unikbet: Situs Slot Pragmatic Bank Seabank Terpercaya
Unikbet: Situs Slot Pragmatic Bank Seabank TerpercayaUnikbet: Situs Slot Pragmatic Bank Seabank Terpercaya
Unikbet: Situs Slot Pragmatic Bank Seabank Terpercayaunikbetslotbankmaybank
 
RISK BASED INTERNAL AUDIT - AUDITING .pptx
RISK BASED INTERNAL AUDIT - AUDITING .pptxRISK BASED INTERNAL AUDIT - AUDITING .pptx
RISK BASED INTERNAL AUDIT - AUDITING .pptxerlyndakasim2
 
Togel Online: Panduan Lengkap tentang Dkitoto, Dkitogel, dan Situs Togel
Togel Online: Panduan Lengkap tentang Dkitoto, Dkitogel, dan Situs TogelTogel Online: Panduan Lengkap tentang Dkitoto, Dkitogel, dan Situs Togel
Togel Online: Panduan Lengkap tentang Dkitoto, Dkitogel, dan Situs TogelHaseebBashir5
 
PPT Presentasimatkul Hukum Komersial.pptx
PPT Presentasimatkul Hukum Komersial.pptxPPT Presentasimatkul Hukum Komersial.pptx
PPT Presentasimatkul Hukum Komersial.pptxYasfinaQurrotaAyun
 
Judul: Mengenal Lebih Jauh Tentang Jamintoto: Platform Perjudian Online yang ...
Judul: Mengenal Lebih Jauh Tentang Jamintoto: Platform Perjudian Online yang ...Judul: Mengenal Lebih Jauh Tentang Jamintoto: Platform Perjudian Online yang ...
Judul: Mengenal Lebih Jauh Tentang Jamintoto: Platform Perjudian Online yang ...HaseebBashir5
 
TERBAIK!!! WA 0821 7001 0763 (FORTRESS) Aesthetic Pintu Aluminium di Banda Aceh
TERBAIK!!! WA 0821 7001 0763 (FORTRESS) Aesthetic Pintu Aluminium di Banda AcehTERBAIK!!! WA 0821 7001 0763 (FORTRESS) Aesthetic Pintu Aluminium di Banda Aceh
TERBAIK!!! WA 0821 7001 0763 (FORTRESS) Aesthetic Pintu Aluminium di Banda AcehFORTRESS
 
Time Value of Money Mata Kuliah Ekonomi 2
Time Value of Money Mata Kuliah Ekonomi 2Time Value of Money Mata Kuliah Ekonomi 2
Time Value of Money Mata Kuliah Ekonomi 2PutriMuaini
 
WA/TELP : 0822-3006-6162, Toko Box Delivery Sayur, Toko Box Delivery Donat, T...
WA/TELP : 0822-3006-6162, Toko Box Delivery Sayur, Toko Box Delivery Donat, T...WA/TELP : 0822-3006-6162, Toko Box Delivery Sayur, Toko Box Delivery Donat, T...
WA/TELP : 0822-3006-6162, Toko Box Delivery Sayur, Toko Box Delivery Donat, T...gamal imron khoirudin
 
"Melompati Ramtoto: Keterampilan dan Kebahagiaan Anak-anak"
"Melompati Ramtoto: Keterampilan dan Kebahagiaan Anak-anak""Melompati Ramtoto: Keterampilan dan Kebahagiaan Anak-anak"
"Melompati Ramtoto: Keterampilan dan Kebahagiaan Anak-anak"HaseebBashir5
 
PRTOTO SITUS SPORTING BET DAN TOGEL TERPERCAYA
PRTOTO SITUS SPORTING BET DAN TOGEL TERPERCAYAPRTOTO SITUS SPORTING BET DAN TOGEL TERPERCAYA
PRTOTO SITUS SPORTING BET DAN TOGEL TERPERCAYALex PRTOTO
 
Tugas unjuk keterampilan_HERI PURWANTO1.pptx
Tugas unjuk keterampilan_HERI PURWANTO1.pptxTugas unjuk keterampilan_HERI PURWANTO1.pptx
Tugas unjuk keterampilan_HERI PURWANTO1.pptxHeripurwanto62
 
10. (D) LEASING (PSAK-73-Sewa-20012020) .pptx
10. (D)  LEASING (PSAK-73-Sewa-20012020) .pptx10. (D)  LEASING (PSAK-73-Sewa-20012020) .pptx
10. (D) LEASING (PSAK-73-Sewa-20012020) .pptxerlyndakasim2
 
KEAGENAN KAPAL DALAM DUNIA MARITIME INDO
KEAGENAN KAPAL DALAM DUNIA MARITIME INDOKEAGENAN KAPAL DALAM DUNIA MARITIME INDO
KEAGENAN KAPAL DALAM DUNIA MARITIME INDOANNISAUMAYAHS
 
PROMOTIF KESEHATAN JIWA TERBARUHGFF.pptx
PROMOTIF KESEHATAN JIWA TERBARUHGFF.pptxPROMOTIF KESEHATAN JIWA TERBARUHGFF.pptx
PROMOTIF KESEHATAN JIWA TERBARUHGFF.pptxMelandaNiuwa
 
Judul: Memahami Jabrix4D: Situs Togel dan Slot Online Terpercaya di Indonesia
Judul: Memahami Jabrix4D: Situs Togel dan Slot Online Terpercaya di IndonesiaJudul: Memahami Jabrix4D: Situs Togel dan Slot Online Terpercaya di Indonesia
Judul: Memahami Jabrix4D: Situs Togel dan Slot Online Terpercaya di IndonesiaHaseebBashir5
 
Cimahitoto: Situs Togel Online Terpercaya untuk Penggemar Judi
Cimahitoto: Situs Togel Online Terpercaya untuk Penggemar JudiCimahitoto: Situs Togel Online Terpercaya untuk Penggemar Judi
Cimahitoto: Situs Togel Online Terpercaya untuk Penggemar JudiHaseebBashir5
 
10. (C) MERGER DAN AKUISISI Presentation.pptx
10. (C) MERGER DAN AKUISISI Presentation.pptx10. (C) MERGER DAN AKUISISI Presentation.pptx
10. (C) MERGER DAN AKUISISI Presentation.pptxerlyndakasim2
 
PCM STRUKTUR JALAN JONGKANGOK JONGKANG.pptx
PCM STRUKTUR JALAN JONGKANGOK JONGKANG.pptxPCM STRUKTUR JALAN JONGKANGOK JONGKANG.pptx
PCM STRUKTUR JALAN JONGKANGOK JONGKANG.pptxmuhammadfajri44049
 
Tajuk: SV388: Platform Unggul Taruhan Sabung Ayam Online di Indonesia
Tajuk: SV388: Platform Unggul Taruhan Sabung Ayam Online di IndonesiaTajuk: SV388: Platform Unggul Taruhan Sabung Ayam Online di Indonesia
Tajuk: SV388: Platform Unggul Taruhan Sabung Ayam Online di IndonesiaHaseebBashir5
 
Contoh contoh soal dan jawaban persediaan barang
Contoh contoh soal dan jawaban persediaan barangContoh contoh soal dan jawaban persediaan barang
Contoh contoh soal dan jawaban persediaan barangRadhialKautsar
 

Recently uploaded (20)

Unikbet: Situs Slot Pragmatic Bank Seabank Terpercaya
Unikbet: Situs Slot Pragmatic Bank Seabank TerpercayaUnikbet: Situs Slot Pragmatic Bank Seabank Terpercaya
Unikbet: Situs Slot Pragmatic Bank Seabank Terpercaya
 
RISK BASED INTERNAL AUDIT - AUDITING .pptx
RISK BASED INTERNAL AUDIT - AUDITING .pptxRISK BASED INTERNAL AUDIT - AUDITING .pptx
RISK BASED INTERNAL AUDIT - AUDITING .pptx
 
Togel Online: Panduan Lengkap tentang Dkitoto, Dkitogel, dan Situs Togel
Togel Online: Panduan Lengkap tentang Dkitoto, Dkitogel, dan Situs TogelTogel Online: Panduan Lengkap tentang Dkitoto, Dkitogel, dan Situs Togel
Togel Online: Panduan Lengkap tentang Dkitoto, Dkitogel, dan Situs Togel
 
PPT Presentasimatkul Hukum Komersial.pptx
PPT Presentasimatkul Hukum Komersial.pptxPPT Presentasimatkul Hukum Komersial.pptx
PPT Presentasimatkul Hukum Komersial.pptx
 
Judul: Mengenal Lebih Jauh Tentang Jamintoto: Platform Perjudian Online yang ...
Judul: Mengenal Lebih Jauh Tentang Jamintoto: Platform Perjudian Online yang ...Judul: Mengenal Lebih Jauh Tentang Jamintoto: Platform Perjudian Online yang ...
Judul: Mengenal Lebih Jauh Tentang Jamintoto: Platform Perjudian Online yang ...
 
TERBAIK!!! WA 0821 7001 0763 (FORTRESS) Aesthetic Pintu Aluminium di Banda Aceh
TERBAIK!!! WA 0821 7001 0763 (FORTRESS) Aesthetic Pintu Aluminium di Banda AcehTERBAIK!!! WA 0821 7001 0763 (FORTRESS) Aesthetic Pintu Aluminium di Banda Aceh
TERBAIK!!! WA 0821 7001 0763 (FORTRESS) Aesthetic Pintu Aluminium di Banda Aceh
 
Time Value of Money Mata Kuliah Ekonomi 2
Time Value of Money Mata Kuliah Ekonomi 2Time Value of Money Mata Kuliah Ekonomi 2
Time Value of Money Mata Kuliah Ekonomi 2
 
WA/TELP : 0822-3006-6162, Toko Box Delivery Sayur, Toko Box Delivery Donat, T...
WA/TELP : 0822-3006-6162, Toko Box Delivery Sayur, Toko Box Delivery Donat, T...WA/TELP : 0822-3006-6162, Toko Box Delivery Sayur, Toko Box Delivery Donat, T...
WA/TELP : 0822-3006-6162, Toko Box Delivery Sayur, Toko Box Delivery Donat, T...
 
"Melompati Ramtoto: Keterampilan dan Kebahagiaan Anak-anak"
"Melompati Ramtoto: Keterampilan dan Kebahagiaan Anak-anak""Melompati Ramtoto: Keterampilan dan Kebahagiaan Anak-anak"
"Melompati Ramtoto: Keterampilan dan Kebahagiaan Anak-anak"
 
PRTOTO SITUS SPORTING BET DAN TOGEL TERPERCAYA
PRTOTO SITUS SPORTING BET DAN TOGEL TERPERCAYAPRTOTO SITUS SPORTING BET DAN TOGEL TERPERCAYA
PRTOTO SITUS SPORTING BET DAN TOGEL TERPERCAYA
 
Tugas unjuk keterampilan_HERI PURWANTO1.pptx
Tugas unjuk keterampilan_HERI PURWANTO1.pptxTugas unjuk keterampilan_HERI PURWANTO1.pptx
Tugas unjuk keterampilan_HERI PURWANTO1.pptx
 
10. (D) LEASING (PSAK-73-Sewa-20012020) .pptx
10. (D)  LEASING (PSAK-73-Sewa-20012020) .pptx10. (D)  LEASING (PSAK-73-Sewa-20012020) .pptx
10. (D) LEASING (PSAK-73-Sewa-20012020) .pptx
 
KEAGENAN KAPAL DALAM DUNIA MARITIME INDO
KEAGENAN KAPAL DALAM DUNIA MARITIME INDOKEAGENAN KAPAL DALAM DUNIA MARITIME INDO
KEAGENAN KAPAL DALAM DUNIA MARITIME INDO
 
PROMOTIF KESEHATAN JIWA TERBARUHGFF.pptx
PROMOTIF KESEHATAN JIWA TERBARUHGFF.pptxPROMOTIF KESEHATAN JIWA TERBARUHGFF.pptx
PROMOTIF KESEHATAN JIWA TERBARUHGFF.pptx
 
Judul: Memahami Jabrix4D: Situs Togel dan Slot Online Terpercaya di Indonesia
Judul: Memahami Jabrix4D: Situs Togel dan Slot Online Terpercaya di IndonesiaJudul: Memahami Jabrix4D: Situs Togel dan Slot Online Terpercaya di Indonesia
Judul: Memahami Jabrix4D: Situs Togel dan Slot Online Terpercaya di Indonesia
 
Cimahitoto: Situs Togel Online Terpercaya untuk Penggemar Judi
Cimahitoto: Situs Togel Online Terpercaya untuk Penggemar JudiCimahitoto: Situs Togel Online Terpercaya untuk Penggemar Judi
Cimahitoto: Situs Togel Online Terpercaya untuk Penggemar Judi
 
10. (C) MERGER DAN AKUISISI Presentation.pptx
10. (C) MERGER DAN AKUISISI Presentation.pptx10. (C) MERGER DAN AKUISISI Presentation.pptx
10. (C) MERGER DAN AKUISISI Presentation.pptx
 
PCM STRUKTUR JALAN JONGKANGOK JONGKANG.pptx
PCM STRUKTUR JALAN JONGKANGOK JONGKANG.pptxPCM STRUKTUR JALAN JONGKANGOK JONGKANG.pptx
PCM STRUKTUR JALAN JONGKANGOK JONGKANG.pptx
 
Tajuk: SV388: Platform Unggul Taruhan Sabung Ayam Online di Indonesia
Tajuk: SV388: Platform Unggul Taruhan Sabung Ayam Online di IndonesiaTajuk: SV388: Platform Unggul Taruhan Sabung Ayam Online di Indonesia
Tajuk: SV388: Platform Unggul Taruhan Sabung Ayam Online di Indonesia
 
Contoh contoh soal dan jawaban persediaan barang
Contoh contoh soal dan jawaban persediaan barangContoh contoh soal dan jawaban persediaan barang
Contoh contoh soal dan jawaban persediaan barang
 

ALGORITMA

  • 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
  • 19. Penyajian Algoritma • Teknik tulisan: Struktur english dan pseudocode • Teknik gambar: Flow chart. 19
  • 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
  • 22. Contoh Algoritma Representasi algoritma di atas dalam bahasa C++ adalah: 22 cin >> N; sum = 0; for (int k = 0; k<=N; k++){ sum +=k; } cout << sum;
  • 23. Pemrograman Berdasarkan algoritma, akan dibuat solusi dengan bahasa pemrograman menjadi suatu software. 23
  • 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
  • 29. Flowchart Suatu diagram yang menggunakan simbol-simbol khusus yang menunjukkan langkah-langkah sebuah program
  • 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
  • 46. Flowchart Perintah if 46 true false Kondisi Perintah jika kondisi true
  • 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
  • 55. Perintah Switch Perintah memiliki bentuk yang digunakan untuk pilihan berjumlah banyak. 55
  • 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
  • 57. Flowchart Perintah Switch 57 true false …. case a case a action(s) break case b case b action(s) break false false case z case z action(s) break true true default action(s)
  • 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
  • 63. Flowchart Perintah Do-while Loop 63 true false action(s) condition
  • 64. Perintah Do-while Loop Contoh : int i = 2 ; do { cout << i << “ ^2 = “ << i * i << “ n ”; } while ( ++i < 11 ) ; 64
  • 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
  • 67. Flowchart Perintah while Loop 67 action(s) true false condition
  • 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
  • 91. Model Obyek Titik: 91 Point int x int y int Color Move() Print() Hide() SetColor(int)
  • 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
  • 98. Notasi Struktur Gen-Spek 98 Contoh: Generalisasi Spesifikasi 1 Spesifikasi 2 Kendaraan Kecepatan GantiKecepatan() Mobil Mesin Motor Tak Sepeda Gigi Kereta Api Gerbong
  • 99. Notasi Struktur Whole-part 99 Contoh: Whole Part 1 Part 2 Mobil Roda Body Mesin
  • 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
  • 111. String Deklarasi : // pesan untuk 20 char char name[21]; char amir[5] = {“Amir”}; 111
  • 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;
  • 116. Contoh Array 116 int a[10]; a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[1]=10; a[8]=2; a[0]=7; a[5]=6; 10 7 2 6
  • 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
  • 119. Contoh Array 119 int a[2][3]; a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] a[0][2]=20; a[1][1]=5; 20 5
  • 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
  • 122. Struct Syntax: struct structTag{ <list of members> }; Contoh: struct point { double x; double y; }; 122
  • 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