Anda di halaman 1dari 41

By: Dr.

Kemal
Pemograman Berorientasi Objek
Maulana Alhasa
Tujuan Pembelajaran
Mahasiswa memahami konsep pemograman berorientasi objek
(object-oriented programing)

01

Mahasiswa dapat menerapkan konsep PBO kedalam bahasa


pemograman C++

02

Mahasiswa dapat menerapkan kemampuan pemograman dan


konsep PBO dalam bidang embedded system.

2/2/20XX P R E S E N TAT I O N T I T L E 2
Kontrak Kuliah
Komponen Penilaian Prosentase
*Tugas 40%
**UTS 25%
**UAS 35%

NB:
* Tugasan akan diberikan setiap selepas pembelajaran. Tugasan
dapat dikerjakan dalam berkelompok atau individual
** UTS dan UAS bisa dalam bentuk projek maupun essay
Wajib hadir minimal 11 kali pertemuan dari 14 kali perkuliahan

2/2/20XX P R E S E N T AT I O N T I T L E 3
Tools
IDE yang digunakan selama pembelajaran ini
disarkan menggunakan visual studio code

https://code.visualstudio.com/docs/setup/windows
2/2/20XX P R E S E N T AT I O N T I T L E 4
Buku dan webiste
Rujukan

Object –Oriented Programming in C++, Robert lafore, fourt edition .

Object –Oriented Programming in C++ Simplified, Hari Mohan Pandey,


First edition, 2015.

https://www.tutorialspoint.com/cplusplus/index.htm

https://www.w3schools.com/CPP/default.asp

2/2/20XX P R E S E N T AT I O N T I T L E 5
Kemal Maulana Alhasa Marojahan Tampubolon
Dr Dr

Dosen Pengajar
2/2/20XX P R E S E N T AT I O N T I T L E 6
Agenda Hari Ini

1. Algoritma
2. Isu program terstruktur / procedural
3. Apa itu PBO
4. PBO VS Pemograman tersrtuktur
5. Konsep PBO
6. Kelebihan PBO
7. Contoh-contoh penerapan PBO dalam Bahasa
pemograman C++

2/2/20XX P R E S E N T AT I O N T I T L E 7
Apa itu Algoritma?
• Algoritma adalah urutan langkah-langkah penyelesaian
masalah yang disusun secara sistematis dan logis.
• Pada hakikatnya algoritma dapat berbeda-beda bergantung
kepada orang yang membuatnya.
• Algoritma dapat diterjemahkan kedalam berbagai bahasa
pemograman.
• Algoritma sebaiknya dibuat dengan instruksi yang jelas dan
tidak ambigu
• Input dan output didalam sebuah algoritma harus jelas.
• Akhir dari algoritma tidak boleh berada di loop yang tak
terbatas
• Algoritma harus efektif

2/2/20XX P R E S E N T AT I O N T I T L E 8
Penyajian Algoritma.
Menggunakan Bahasa natural
(Bahasa Manusia)

Menggunakan flowchart
(Bagan Alir)

Menggunakan Pseudocode
2/2/20XX P R E S E N T AT I O N T I T L E 9
Penyajian Algoritma.

System Flowchart
• Bagan alir yang menunjukkan proses pekerjaan
yang dilakukan oleh sebuah sistem

Program Flowchart
• Bagan alir yang menjelaskan secara terperinci
mengenai alur kerja dari sebuah program komputer
2/2/20XX P R E S E N T AT I O N T I T L E 10
Simbol Flowchart
Gambar Nama Fungsi Gambar Nama Fungsi
Proses pemberian nilai awal
Garis alir Arah aliran program Inialisasi pada suatu parameter
Arah aliran program

Terminator Permulaan dan akhir program Predifined proses Sub program / sub proses

Menyatakan proses yang ada Berfungsi sebagai penghubung


Proses Konektor dalam
didalam diagram alir antara satu proses ke proses lain
halaman
(berbeda halaman)
Proses / langkah di mana perlu
Decision adanya keputusan atau adanya Disk magnetik Untuk penyimpanan data
kondisi tertentu

Parameter informasi input dan Memberikan input secara


Input/output data Manual input
output manual
Berfungsi sebagai penghubung
Konektor luar
antara satu proses ke proses lain dokumen File
halaman
(berbeda halaman)

2/2/20XX P R E S E N T AT I O N T I T L E 11
Kenapa Perlu
menggunakan
PBO (OOP)?

 PBO yang dikembangkan pada tahun


1970 digunakan untuk mengatasi
keterbasan yang ada di teknik program
sebelumnya
 Untuk mengetahui kenapa PBO menjadi
pilihan Developer untuk mengembakan
sebuah program maka kita perlu
mengetahui batasa-batasan yang muncul
dari teknik program sebelumnya.
Program
Prosedural

1. Batasan yang paling serius dialami oleh


program prosedural adalah ketika program
prosedural digunakan dalam skala besar
yang memungkinkan program akan menjadi
“spageti-code”
2. Sebagian besar fungsi dalam program
beroperasi pada Global data dan ada
kemungkinan jika fungsi atau procedural
merubah global data dapat mempengaruhi
operasi fungsi lainnya

2/2/20XX P R E S E N T AT I O N T I T L E 13
Program
Prosedural

1. Tidak terbatasnya akses data, membuat


data lebih rentan karena semua fungsi
dengan mudah dapat memodifikasi data
2. Oleh karena Global data dengan mudah
dapat diubah yang memungkin
fungsionalitas sebuah fungsi dapat
terpengaruh juga, karena mereka
menggunakan data yang sama.

2/2/20XX P R E S E N T AT I O N T I T L E 14
Apa itu PBO
(OOP)?

1. Pendekatan PBO menyediakan solusi yang


dapat mengatasi keterbatasan yang dihadapi
oleh prosedural program
2. Didalam pendekatan PBO, Ia memberikan
kemudahan dalam mengontrol akses data dan
data lebih terlindungi
3. PBO memudahkan untuk memodelkan real-
world objek sebagai representasi objek
didalam kode program.

2/2/20XX P R E S E N T AT I O N T I T L E 15
PBO VS Procedural
PBO Prosudural

Program dibagi menjadi beberapa bagian Program dipecah menjadi bagian-bagian kecil
yang disebut object yang disebut function

Orientasinya kepada data bukan function Orientasinya bukan pada data melainkan
atau prosedural kepada function

Menggunakan pendekatan Bottom-up Menggunakan pendekatan Top-down dalam


dalam mendesain program mendesain program

Mempunyai spesifik akses data seperti


Tidak mengenal spesifik akses data
Public, private dan protected

Menyediakan hiding data sehingga lebih Tidak mempunyai protokok untuk hidden data
aman sehingga kurang aman

Contoh program OOP : C++, JAVA, Contoh program POP : C, VB, FORTRAN,
C#, VB.NET Pascal

2/2/20XX P R E S E N T AT I O N T I T L E 16
PBO
Class
Objects

Abstraksi Pembukusan Pewarisan Polimorfisme

Konsep PBO
2/2/20XX P R E S E N T AT I O N T I T L E 17
Konsep PBO?

1. Fundamental konsep PBO yang digunakan dalam


pengembangan software adalah bedasarkan class and object
2. Didalam metodologi PBO, semua program yang ditulis
direpresentasikan sebagai objek
3. Objek didalam PBO digambarkan sebagai sebuah Class
didalam penulisan kode program

2/2/20XX P R E S E N T AT I O N T I T L E 18
Apa itu Object ?

Objek dapat didefinisikan sebagai sesuatu yang dapat dimodelkan atau


menyederhanakan permasalahan yang ada di dunia nyata (real-word)

Suatu objek biasanya mempunyai satu atau lebih kumpulan pernyataan


dan perilaku

Objek dapat saling berinteraksi dengan mengirim suatu pesan, biasanya


data yang dikirim tidak perlu diketahui secara detail hanya perlu
mengetahui jenis pesan yang diterima dan jenis respons yang
dikembalikan oleh objek

2/2/20XX P R E S E N T AT I O N T I T L E 19
Apa itu Class?

Sebuah class dapat didefinisikan sebagai blueprint atau


template yang digunakan untuk membuat atau
mendeskripsikan sebuah objek
Pengguna dapat mendefinisikan tipe data, anggota data
dan method
Anggota data adalah variabel data dan fungsi anggota
adalah fungsi yang digunakan untuk memanipulasi
variabel-variabel ini dan bersama-sama anggota data ini
dan fungsi anggota mendefinisikan properti dan perilaku
objek di Class.

2/2/20XX P R E S E N T AT I O N T I T L E 20
Class and object example in C++
2/2/20XX P R E S E N T AT I O N T I T L E 21
Apa itu Pembungkusan
(encapsulation)

Encapsulation merupakan sebuah konsep PBO yang digunakan untuk


membungkus data dan fungsi, yang bertujuan untuk mengontrol akses data
dan fungsi agar tidak ada penyalahgunaan.

Encapsulation berfungsi untuk membuat antar muka dan menyembunyikan


mekanisme atau isi proses terhadap pengguna.

Dengan menggunakan teknik encapsulation, pengguna tidak diperbolehkan


mengakses data atau fungsi yang disembunyikan tetapi pengguna dapat
menggunakan dan memahami dari antar muka yang telah dibuat

Konsep encapsulation melahirkan Abstraksi atau data tersembunyi

2/2/20XX P R E S E N T AT I O N T I T L E 22
Car

Kelajuan
Tukar roda gigi
rem

Merek: Suzuki XL7


Warna: Snow white
Kecepatan: 100 km/jam

Dapat diakses
tidak dapat diakses

Example ecapsulation
2/2/20XX P R E S E N T AT I O N T I T L E 23
Apa itu Abstraksi

Abstraksi merupakan sebuah cara untuk menampilkan


fitur yang hanya diperlukan tanpa harus menjelaskan
secara detail.
Abstraksi memishkan tampilan penyajian dengan
mekanisme atau proses implementasi pada program

2/2/20XX P R E S E N T AT I O N T I T L E 24
Contoh Abstraksi in C++
2/2/20XX P R E S E N T AT I O N T I T L E 25
Apa itu Pewarisan
/ inheritance ?

1. Pewarisan atau inheritance merupakan suatu


konsep PBO yang berfungsi untuk mengatasi
masalah reusability dalam penulisan
program.
2. Pewarisan didalam PBO mengadopsi konsep
pewarisan yang dimiliki oleh objek pada
dunia nyata.
3. Pewarisan dalam konsep PBO mengizinkan
sebuah class mengambil data dari class lain

2/2/20XX P R E S E N TAT I O N T I T L E 26
Contoh inheritance in C++
2/2/20XX P R E S E N T AT I O N T I T L E 27
Apa itu Polimorfisme

Pewarisan atau inheritance pada PBO menyebabkan


terjadinya banyak kelas yang saling terkait.
konsekuensinya, atribut dan metode yang ada di sebuah
class bisa diwarisi oleh class lainnya.
Oleh itu, konsep Polimorfisme dihadirkan pada program
PBO. Polimorfisme mengizinkan suatu atribut atau
metode yang sama bekerja dengan cara yang berbeda.
Salah satu jenis polimorfisme pada C++ dapat digunakan
pada fungsi atau operator yang dikenal dengan istilah
overloading

2/2/20XX P R E S E N T AT I O N T I T L E 28
Contoh Polimorfisme di C++
2/2/20XX P R E S E N T AT I O N T I T L E 29
Kelebihan PBO

• PBO sesuai untuk pengembangan


software yang berskala besar dan
mempunyai komplesitas yang tinggi
• PBO menawarkan proteksi data
yang lebih aman
• Re-usability kode
• Mempunyai kemampuan yang lebih
bagus dalam mempresentasikan
objek nyata
• Kode mudah untuk dimodifikasi

2/2/20XX PRESENTATION TITLE 30


Bahasa Pemograman Berorientasi Object

C++ JAVA Python Ruby Delphi

Matlab C# Kotlin dll


Pengenalan Bahasa
Pemograman C++
Bahasa pemograman C++ merupakan bahasa pemograman
tingkat tinggi (High-level).

Dikembangkan oleh Bjarne Stroustrup pada tahun 1979 di lab


Bells

Bahasa C++ dapat dijalankan diberbagai platform seperti


Windows, Linux dan Mac Os.

Pengembangan dari Bahasa pemograman struktur C dimana


Bahasa pemograman C++ dikembangkan dengan konsep PBO

2/2/20XX P R E S E N T AT I O N T I T L E 32
Ada dua software yang perlu
dipasang di komputer anda
Local • Teks editor, beberapa editor yang biasa
Environment digunakan seperti notepad, notepad++,
codelite, Visual studio code, vim or vi.
Setup File yang ditulis didalam editor disimpan
dengan ektension .cpp, .cp, atau .c.
• Memerlukan C++ compiler digunakan
untuk mengkompilasi code yang telah
ditulis menjadi program akhir yang dapat
dieksekusi.

2/2/20XX P R E S E N TAT I O N T I T L E 33
Struktur Program C++

#include <iostream> Header untuk memanggil library


using namespace std; Untuk memanggil fungsi seperti cout , cin, endl, dll.
// main() is where program execution begins. Memberikan komen didalam program
int main() { Deklarasi Fungsi utama atau main function
cout << "Hello World"; // prints Hello World Perintah untuk mencetak kalimat Hello world
return 0;
} Mengakhiri fungsi

2/2/20XX P R E S E N T AT I O N T I T L E 34
C++ Tokens

Keywords

Special
Identifiers
symbol

C++
Tokens
Operators Constants

String

2/2/20XX P R E S E N T AT I O N T I T L E 35
Keyword

Merupakan kata yang maknanya telah diketahui oleh compiler, sehingga tidak perlu lagi
didefinisikan kembali. Sifat dari keyword ini adalah tetap (fixed) atau tidak dapat dirubah.

2/2/20XX P R E S E N T AT I O N T I T L E 36
Identifier

Merupakan cara pemberian nama kepada sebuah variable, fungsi, array, struktur, dll.
Terdapat beberapa rules yang perlu diperhatikan dalam pemberian nama di pemograman C++

Pemberian huruf pertama pada nama harus dalam bentuk alphabet atau
underscore

Untuk huruf kedua diizinkan mengunakan kombinasi angka, huruf dan


underscore

Untuk penamaan tidak boleh menggunakan symbol

Keyword tidak boleh digunakan untuk penamaan

Untuk aturan ANSI, maksimum penamaan hanya 32 character, tetapi banyak


compiler yang membolehkan lebih dari 32
2/2/20XX P R E S E N T AT I O N T I T L E 37
Constant
Decimal (12,
-12, 0)

Octal (034, 0,
Integer constant
0564)

Numeric Hex (0x34,


Constant 0xa35)

Floating (0.67,
Real constant
212.345)

constant
Single (quote)

Character String (double


constant quote)
Non-numeric
constants
String constant Backlash

2/2/20XX P R E S E N T AT I O N T I T L E 38
Backlash character

2/2/20XX P R E S E N T AT I O N T I T L E 39
 Buatlah satu algoritma yang berhubungan dengan bidang keahlian anda
 Jelaskan perbedaan antara paradigma program terstruktur dan PBO
 Sebutkan konsep PBO dan berikan contoh yang berhubungan dengan bidang keahliah anda
 Install software editor dan compiler untuk menjalankan pemograman C++ di komputer atau laptop
 Buatlah program sederhana “hello world”

Assignment
2/2/20XX P R E S E N T AT I O N T I T L E 40
Thank you
Kemal Maulana Alhasa
kemal.maulana@lecturer.umn.ac.id

2/2/20XX P R E S E N T AT I O N T I T L E 41

Anda mungkin juga menyukai