Anda di halaman 1dari 25

Pemrograman

Berorientasi
Objek
Paradigma Pemrograman
HAMIDILLAH AJIE, S.SI, M.T
 Memahami peristiwa software crisis
sebagai pemicu berkembangnya
bidang ilmu software engineering
 Memahami keberadaaan sejumlah
paradigm pemrograman

Tujuan  Membedakan karakteristik


paradigm-paradigm
Pembelajaran pemrograman popular
 Memahami rangkaian urutan
terbentuknya paradigm
pemrograman berorientasi objek
 Memahami tahapan dalam proses
pengembangan perangkat lunak
 Software crisis merujuk pada masalah-
masalah yang muncul di awal industry
software pada tahun 1950 -1960an
 Masalah yang muncul diantaranya :
 Projects running over-budget
 Projects running over-time

Software 


Software was very inefficient
Software was of low quality
Crisis  Software often did not meet
requirements
 Projects were unmanageable and
code difficult to maintain
 Software was never delivered
 Software Crisis memicu berkembangnya
bidang ilmu software engineering
Software

KUMPULAN DATA /DATABASE MENJALANKAN DOKUMENTASI USER MANUAL


PROGRAM SATU ATAU
SEJUMLAH TUGAS
Paradigma Pemrograman

 Cara pandang bagaimana program dibuat


 Menentukan proses penulisan program
 Menghasilkan sejumlah aturan/konsep dalam pemrograman
 Sejumlah bahasa pemrograman dapat memiliki/menerapkan
sejumlah paradigm pemrograman
 Pemrograman Terstruktur
 Pemrograman Imperatif
 Pemrograman Prosedural

Paradigma  Pemrograman Deklaratif


Pemrograman Logic
Pemrograman

 Pemrograman Fungsional
Popular  Pemrograman Berorientasi Objek
 Pemrograman dikendalikan kejadian(data
driven programming)
Riwayat Pemrograman Berorientasi
Objek
Pemrograman Tidak terstruktur

Pemrograman Imperatif

Pemrograman Terstruktur

Pemrograman Prosedural

Pemrograman Berorientasi Objek


Pemrograman Imperatif

 Menerapkan kecenderungan alamiah


manusia dalam memberi perintah, dimana
perintah diberikan melalui pernyataan atau
urutan pernyataan(algoritma)
 Paradigma pemrograman yang
menekankan pada penggunaan setiap baris
program/statement dalam mengatur
status/kondisi program.
 Menekankan pada urutan penulisan baris-
baris kode program.
 Pada awalnya Bahasa-Bahasa imperative
termasuk Bahasa tidak terstruktur
 Tidak menerapkan/menekankan
konsep pemrograman terstruktur,
seperti loop, dan subrutin
 Banyak menerapkan penggunaan
labeling/goto, sebagai warisan dari
bahasa pemrograman tingkat
rendah/assembler
Pemrograman  Melahirkan bentuk program yang
dikenal dengan spaghetti code,
Tidak karena program sulit diurai.

Terstruktur  Paradigma pemrograman yang


sering digunakan pada saat
munculnya software crisis
 Bahasa pemrograman yang sering
digunakan : Basic, Fortran, COBOL,
dsb, Tentu saja beserta bahasa2
pemrograman tingkat rendah
sebelumnya
 “Goto statement is Considered Harmful”, Edsger
W. Dijkstra
 Penekanan pada penggunaan strukur blok
(begin .. End., { } ), struktur kontrol, looping, dan
subrutin
Pemrograman
Terstruktur
Pemrograman Prosedural

 Pemrograman Prosedural adalah turunan dari pemrograman


imperative
 Menekankan pada penggunaan subrutin/prosedur/fungsi-fungsi
 Memecahkan masalah besar menjadi sejumlah permasalahan
yang lebih kecil, dan dituliskan di dalam prosedur/subrutin/fungsi.
Istilah : decomposition/refinment
 Pada tahapah penggunaan, detil/isi dari sebuah
subrutin/prosedur/fungsi/library tidak perlu lagi diketahui 
enkapulasi
Pemrograman Berorientasi Objek

 Paradigma pemrograman dimana sebuah program dianggap


dapat diuraikan ke dalam sejumlah objek.
 Objek mengikuti pemahaman objek di dalam kehidupan sehari-hari
yang memiliki sejumlah atribut dan fungsi.
 Contoh objek dalam kehidupan sehari-hari : Budi adalah seorang
manusia, yang memiliki nama, berat badan alamat, dan Budi
dapat berjalan, makan/minum, belajar, dan lain sebagainya.
 Budiobjek(bentuk real), manusia  kelas(abstraksi dari objek),
nama, berat badan  atribut, sedangkan berjalan, makan/minum
dan belajar adalah method/fungsi.
Siklus Hidup Perangkat Lunak
Tahapan Minimal

Analisis Desain Implementasi Testing


Analisis

 Software Bisa Apa?


 Tahapan mencari daftar kebutuhan perangkat
lunak atau apa saja yang harus dipenuhi
perangkat lunak yang akan dikembangkan
 Proses yang bisa dilakukan : wawancara calon
user, penerapan konsep dari teori
 Produk : Dokumentasi deskripsi perangkat lunak,
software requirement list, umumnya
menggunakan tools seperti Data Flow Diagram,
use Case, dsb.
Desain

 Bagaiman Rancangaan Bentuk/fungsi


softrware
 Alur program perangkat lunak
 Rangangan Database
 Rancangan antar muka
(mockup/prototype)
 Dokumen yang dihasilkan biasanya
menggunakan tools seperti ERD(database)
wireframe(antar muka), activity
diagram(alur program), class
diagram(khusus PBO)
Implementasi

 Do It !
 Mengimplementasi rancangan antar muka dan menulis kode
program
Testing

 Uji !
 Pastikan perangka lunak error free
 Menggunakan sejumlah pendekatan uji perangkat lunak yang
disesuaikan dengan kondisi dan kebutuhan
 Pada kasus tertentu perlu dilakukan evaluasi oleh end user, untuk
memastikan user telah menerima perangkat lunak.
Evolusi

 Hidup!!!
 Dalam penggunaannya, software perlu diperbaiki dan
dikembangkan
 Pemicu perbaikan/pengembangan software :
 Ditemui bug
 Muncul kebutuhan baru
 Muncul teknologi baru, sehingga system harus dapat bekerja di
platform yang baru.
Jenis Software berdasar Target
Pengguna
 General Purpose Software
 Software yang diperuntukan untuk pengguna umum
 Memiliki banyak fitur untuk mengantisipasi kebutuhan yang beragam
 Dalam perkembangannya memungkinkan mengalamai pertambahan
fitur.
 Contoh : MS Word versi awal, hingga MS Word 2016
 Tailor Made Software
 Software yg dibuat khusus untuk memenuhi kebutuhan klien
 Dalam perkembangannya kebutuhan klien akan berubah/bertambah,
perlu penambahan fitur
 Contoh : Siakad 2005  Siakad 2017
Perkembangan Teknologi
Pengembangan Perangkat Lunak
 Paradigma, teknologi, & framework pengembangan perangkat
lunak senantiasa mengalami perkembangan, yang dipicu dalam
rangka mempermudah pengembangan software, peningkatan
kualitas dan termasuk mengantisipasi evolusi software.
 Software dibuat bukan oleh 1 orang, tetapi oleh sebuah tim,
bahkan tim yang besar. Dalam perkembangannya, penambahan
fitur software akan dilakukan oleh orang-orang yang berbeda.
Pengembangan perangkat lunak yang baik, harus dapat
memenuhi evolusi perangkat lunak, dengan effort yang seminimal
mungkin. Hal ini hanya dapat dilakukan dengan dokumentasi yang
baik dan penerapan paradigm pengembangan perangkat lunak
yang konsisten.
 Menjadiprogrammer pada dasarnya adalah
persoalan mental
 Menjadiprogrammer pada dasarnya adalah
melatih diri menjadi lebih teliti, disiplin,
senantiasa belajar dan beradaptasi pada
lingkungan baru sehingga memiliki wawasan
yang luas, dan meningkatkan kemampuan
komunikasi dalam menghadapi orang
banyak.
Perkembangan yang lebih baru

 Semakin banyak bermunculan library, framework yang


dikembangkan dan telah umum digunakan dalam menghasilkan
produk baru. Hal ini menyebabkan proses pengembangan produk
menjadi lebih mudah dan murah.
 Dahulu pengembangan program dilakukan secara full stack(tidak
ada pembagian antar bagian-bagian perangkat lunak).
Kecenderungan saat ini dibagi menjadi sejumlah bagian(multi-tier,
back-end & front end). Hal ini memecah kompleksitas
pengembangan program. Pada banyak kasus, mempermudah
perubahan user interface(front end).
 Programmer diarahkan pada menghasilkan produk yang cepat
dalam memenuhi perubahan kebutuhan yang cukup sering.
Diskusi

1. Faktor-faktor yang melahirkan munculnya bidang ilmu Software


Engineering
2. Jenis-jenis paradigma pemrograman
3. Karakteristik-karakteristik paradigma pemrograman
4. Bahasa-Bahasa pemrograman berdasar paradigma
pemrograman
5. Tahapan pengembangan perangkat lunak
Niat baik sudah bernilai kebaikan,
tapi sebaik-baiknya manusia
adalah yang bermanfaat bagi
sesama!
TERIMA KASIH

Anda mungkin juga menyukai