Paradigma bahasa pemrograman memberikan model untuk
programmer dalam menulis listing program. Paradigma perbedaan dalam bahasa pemrograman sebagai berikut :
- Pemrograman tidak terstruktur atau Programming Monolithic
- Pemrograman prosedural
- Pemrograman structural
- Pemrograman Berorientasi Objek
Pemrograman tidak
terstruktur atau Programming Monolithic :
- Seluruh permasalahan ini diselesaikan sebagai blok tunggal.
- Semua data bersifat global dan tidak ada keamanan.
- Perintah melompat diperbolehkan jump dan banyak menggunakan perintah go to
- Cocok untuk permasalah kecil.
- Sulit untuk melacak kesalahan program
![]() |
Gambar 1. Bahasa pemrograman |
Contoh bahasa pemrograman yang termasuk dalam Programming
Monolithic adalah Assembly Language, BASIC.
Pemrograman
prosedural
Masalah yang diberikan dibagi dalam beberapa sub masalah
tergantung pada fungsinya. Masalah disebut prosedur atau Metode. Prosedur
apapun dapat dipanggil pada setiap saat selama pelaksanaan program. Program ini
memiliki variabel global dan lokal.
Fitur Pemrograman
berorientasi prosedur:
Program besar yang
terbagi dalam fungsi kecil atau Prosedur.
Menggunakan
Pendekatan pemrograman Top-Down.
Data bergerak bebas
dari satu fungsi ke yang lain.
Sebagian besar fungsi berbagi data umum.
Penekanan diberikan untuk
algoritma. Kekurangan:
Sangat sulit
mengidentifikasi data yang digunakan oleh yang berfungsi.
Sulit untuk melacak
kesalahan program
Pemrograman Terstruktur
Program ini dibagi menjadi modul dan modul tersebut kemudian
dibagi menjadi fungsi. Penggunaan Pernyataan go to dihapus atau dikurangi.
Setiap modul dapat bekerja independen satu sama lain.
Pemrograman berorientasi obyek
Program ini dibagi menjadi jumlah unit kecil yang disebut
Object. Data dan fungsi merupakan properti objek.
Data dari objek
hanya dapat diakses oleh fungsi yang terkait dengan objek tersebut.
Fungsi satu objek dapat mengakses fungsi objek lain.
Fitur pemrograman
berorientasi obyek
Penekanan diberikan
pada data daripada prosedur.
Masalah dibagi menjadi obyek.
Struktur data dirancang sedemikian rupa sehingga mereka
mengatur objek.
Data dan fungsi yang diikat bersama-sama.
Penyembunyian data adalah mungkin.
Data baru dan fungsi dapat dengan mudah dibuat.
Obyek dapat
berkomunikasi satu sama lain dengan menggunakan fungsi.
Pendekatan
bottom-up yang digunakan dalam membuat program
Perbedaan antara
Pemrograman Berorientasi Terstruktur dan Obyek
Dengan menggunakan OOP maka dalam melakukan pemecahan suatu
masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut
(terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah
tersebut. Sedangkan untuk pemrograman terstruktur, menggunakan prosedur/tata
cara yang teratur untuk mengoperasikan data struktur. Untuk tata nama, keduanya
pun memiliki tatanan yang sama walaupun memiliki pengertian tersendiri.
Object oriented menggunakan “method” sedangkan terstruktur
menggunakan “function”. Bila di OOP sering didengar mengenai “objects” maka di
terstruktur kita mengenalnya dengan ”modules”. Begitu pula halnya dengan “message” pada OO dan
“argument” pada terstruktur. “attribute” pada OO juga memiliki tatanan nama
yang sepadan dengan “variabel” pada pemrograman terstruktur.
Pemrograman prosedural akan dikatakan lebih baik apabila
dalam segala situasi melibatkan kompleksitas moderat atau yang memerlukan
signifikan kemudahan maintainability. Manfaat yang dirasakan dalam penggunaan
pemrograman prosedural adalah kemampuan kembali menggunakan kode yang sama
tanpa menggunakan kode yang berbeda ataupun mengkopinya kembali. Dengan
menggunakan “goto”, memudahkan programmer melacak kumpulan data sehingga
menghindarkan pemrograman terstruktur menjadi seperti spagethii code.
Pemrograman berorientasikan objek dikatakan lebih baik
apabila model data berorientasi objek dikatakan dapat memberi fleksibilitas
yang lebih, kemudahan mengubah program, dan digunakan luas dalam teknik piranti
lunak skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih
mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan
pendekatan OOP lebih mudah dikembangkan dan dirawat.
c. Rangkuman
Pengembangan
berorientasi objek merupakan cara pikir baru tentang perangkat lunak
berdasarkan abstraksi yang terdapat dalam dunia nyata. Dalam konteks
pengembangan menunjuk pada bagian awal dari siklus hidup pengembangan sistem,
yaitu survei, analisis, desain, implementasi, dan pemeliharaan sistem. Hal yang
lebih penting dalam pengembangan berorientasi objek adalah konsep
mengindentifikasi dan mengorganisasi domain aplikasi dibandingkan dengan fokus
penggunaan bahasa pemrograman, berorientasi objek atau tidak. Object adalah
gabungan antara beberapa data dan fungsi yang masing-masing bekerja
bersama-sama dan tidak dapat dipisahkan. Gabungan dari data dan fungsi tersebut
akan membentuk suatu object-object yang aktif. Dari kumpulan beberapa object
yang sama akan membentuk struktur baru yang disebut class.
Pemrograman berorientasi obyek (Inggris: object-oriented
programming disingkat OOP) merupakan paradigma pemrograman yang berorientasikan
kepada obyek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam
kelas-kelas atau obyek-obyek. Bandingkan dengan logika pemrograman terstruktur.
Setiap obyek dapat menerima pesan, memproses data, dan mengirim pesan ke obyek
lainnya. Pemrograman terstruktur adalah suatu proses untuk mengimplementasikan
urutan langkah untuk menyelesaikan suatu masalah dalam bentuk program. Selain
pengertian diatas Pemrograman Terstruktur adalah suatu aktivitas pemrograman
dengan memperhatikan urutan langkah-langkah perintah secara sistematis, logis,
dan tersusun berdasarkan algoritma yang sederhana dan mudah dipahami. Prinsip
dari pemrograman terstruktur adalah Jika suatu proses telah sampai pada suatu
titik/langkah tertentu ,maka proses selanjutnya tidak boleh mengeksekusi
langkah sebelumnya/kembali lagi ke baris sebelumnya, kecuali pada
langkah–langkah untuk proses berulang (Loop).
Kegiatan Belajar 2 :
Perangkat Lunak Pemrograman Berorientasi Obyek
a.
Tujuan Pembelajaran
Setelah mengikuti kegiatan belajar 2 ini siswa diharapkan dapat :
1)
Memahami alur kerja perangkat lunak pemrograman berorientasi obyek
2) Menyajikan perangkat lunak
pemrograman berorientasi obyek
b. Uraian Materi
1) Alur kerja perangkat lunak
pemrograman berorientasi obyek
Mengapa memilih Java
sebagai perangkat lunak pemrograman berorientasi obyek?
Java diciptakan
oleh suatu tim
yang dipimpin oleh
Patrick Naughton dan James Gosling dalam suatu proyek dari Sun Micro
System yang memiliki kode Green dengan tujuan untuk menghasilkan bahasa
komputer sederhana yang dapat dijalankan di peralatan sederhana dengan tidak
terikat pada arsitektur tertentu. Mulanya disebut OAK, tetapi karena OAK
sendiri merupakan nama dari bahasa pemrograman komputer yang sudah ada. Maka
Sun mengubahnya menjadi Java.
Sun kemudian meluncurkan browser dari Java yang disebut Hot
Java yang mampu menjalankan applet. Setelah itu teknologi Java diadopsi oleh
Netscape yang memungkinkan program Java dijalankan di browser Netscape yang
kemudian diikuti Internet Explorer. Karena keunikanya dan kelebihanya,
teknologi Java mulai menarik banyak
vendor seperti IBM, Symantec, Inprise, dan lain-lain. Sun merilis versi awal
Java secara resmi pada awal tahun 1996 yang kemudian terus berkembang hingga
muncul JDK 1.1, kemudian JDK 1.2 yang mulai disebut sebagai versi Java2 karena
banyak mengandung peningkatan dan perbaikan. Perubahan utama adalah adanya
Swing yang merupakan teknologi GUI (Graphical User Interface) yang mampu
menghasilkan window yang portabel. Dan pada tahun 1998–1999 lahirlah teknologi
J2EE. Diawali dengan servlet dan EJB kemudian diikuti JSP. Java juga
menjadi lebih cepat
populer di lingkungan
server side dikarenakan kelebihanya di lingkungan.
2) Arsitektur
teknologi
java Java adalah
suatu teknologi di
dunia software komputer,
yang merupakan suatu bahasa pemrograman, dan sekaligus suatu platform.
Sebagai bahasa pemrograman, Java dikenal sebagai bahasa pemrograman tingkat
tinggi. Java mudah dipelajari, terutama bagi programmer yang telah mengenal
C/C++. Java merupakan
bahasa pemrograman berorientasi
objek yang merupakan paradigma
pemrograman masa depan. Sebagai bahasa pemrograman Java dirancang menjadi
handal dan aman. Java juga dirancang agar dapat
dijalankan di semua platform. Dan juga dirancang untuk menghasilkan
aplikasi–aplikasi dengan performansi yang terbaik, seperti aplikasi database
Oracle 8i/9i yang core-nya dibangun menggunakan bahasa pemrograman Java.
Sedangkan Java bersifat neutral architecture, karena Java Compiler yang
digunakan untuk mengkompilasi kode program Java dirancang untuk menghasilkan
kode yang netral terhadap semua arsitektur perangkat keras yang disebut sebagai
Java Bytecode.
Sebagai sebuah
platform, Java terdiri atas dua bagian utama, yaitu:
Java Virtual Machine (JVM).
Java Application Programming
Interface (JavaAPI).
Sun membagi
arsitektur Java membagi tiga bagian, yaitu:
Enterprise Java (J2EE) untuk
aplikasi berbasis web, aplikasi sistem tersebar dengan beraneka ragam klien
dengan kompleksitas yang tinggi. Merupakan superset dari Standar Java
Standar Java (J2SE), ini adalah
yang biasa dikenal sebagai bahasa Java.
Micro Java
(J2ME) merupakan subset
dari J2SE dan
salah satu aplikasinya yang
banyak dipakai adalah untuk wireless device / mobile device
1. Java API
Beberapa fitur yang ditawarkan
Java API antara lain sebagai berikut:
a. Applet
Program Java yang
dapat berjalan di atas
browser, yang dapat membuat halaman HTML
lebih dinamis dan menarik.
b. Java Networking
Sekumpulan
API (Application Programming
Interface) yang menyediakan
fungsi–fungsi untuk aplikasi–aplikasi jaringan, seperti penyediaan akses untuk
TCP, UDP, IP Adrress dan URL. Tetapi Java Networking tidak menyediakan akses
untuk ICMP dikarenakan alasan sekuriti
dan pada kondisi
umum hanya administrator ( root )
yang bisa memanfaatkan protokol ICMP.
c. JavaDatabase Connectivity (JDBC)
JDBC menyediakan sekumpulan API yang dapat
digunakan untuk mengakses database seperti Oracle, MySQL, PostgreSQL, Microsoft
SQL Server.
d. Java Security
Java Security menyediakan sekumpulan API untuk
mengatur security dari aplikasi Java baik secara high level atau low level,
seperti public/private key management dan certificates
e. JavaSwing
Java Swing menyediakan sekumpulan API untuk
membangun aplikasi– aplikasi GUI (Graphical User Interface) dan model GUI yang
diinginkan bisa bermacam–macam, bisa model Java, model Motif/CDE atau model
yang dependent terhadap platform yang digunakan.
f.
Java
RMI
Java
RMI menyediakan sekumpulan
API untuk membangun aplikasi– aplikasi Java yang mirip
dengan model RPC (Remote Procedure Call) jadi object-object Java bisa di call
secara remote pada jaringan komputer.
g. Java2D/3D
Java 2D/3D menyediakan sekumpulan
API untuk membangun grafik– grafik 2D/3D yang menarik dan juga akses ke printer.
h. Java Server Pages
Berkembang dari Java Servlet yang
digunakan untuk menggantikan aplikasi–aplikasi CGI, JSP (Java Server Pages)
yang mirip ASP dan PHP merupakan alternatif terbaik untuk solusi aplikasi
Internet.
i.
JNI
(Java Native Interface)
JNI menyediakan sekumpulan API yang
digunakan untuk mengakses fungsi –
fungsi pada library (*.dll atau *.so) yang dibuat dengan bahasa pemrograman
yang lain seperti C, C++, dan Basic.
j.
JavaSound
Java Sound
menyediakan sekumpulan API
untuk manipulasi sound.
k. Java IDL + CORBA
Java IDL (Interface Definition
Language) menyediakan dukungan Java
untuk implementasi CORBA (Common
Object Request Broker) yang merupakan model distributed-Object untuk solusi
aplikasi besar di dunia networking.
l.
JavaCard
Java Card utamanya digunakan untuk
aplikasi–aplikasi pada smart card, yang sederhana wujudnya seperti SIM Card
pada handphone.
m. JTAPI (Java Telephony API)
Java Telepony API menyediakan sekumpulan API untuk memanfaatkan devices–devices
telepony, sehingga akan cocok untuk aplikasi–aplikasi CTI (Computer Telephony
Integration) yang dibutuhkan seperti ACD (Automatic Call Distribution), PC- PBX
.
Berdasarkan white
paper resmi dari SUN, Java memiliki karakteristik sebagai berikut :
Sederhana
Bahasa pemrograman Java menggunakan sintaks mirip dengan C++
namun sintaks pada Java telah banyak diperbaiki terutama menghilangkan
penggunaan pointer yang rumit dan multiple inheritance. Java juga menggunakan
automatic memory allocation dan memory garbage collection.
Berorientasi objek
(ObjectOriented)
Java mengunakan
pemrograman berorientasi objek yang membuat program dapat dibuat secara modular
dan dapat dipergunakan kembali. Pemrograman berorientasi objek memodelkan dunia
nyata ke dalam objek dan melakukan interaksi antar objek-objek tersebut.
Dapat didistribusi dengan mudah
Java dibuat untuk
membuat aplikasi terdistribusi secara mudah dengan adanya libraries networking
yang terintegrasi pada Java.
Interpreter Program
Java dijalankan
menggunakan interpreter yaitu Java Virtual Machine (JVM). Hal ini menyebabkan
sourcecode Java yang telah dikompilasi menjadi Java bytecodes dapat dijalankan
pada plat form yang berbeda-beda.
Robust
Java mempunyai
reliabilitas yang tinggi. Compiler pada
Java mempunyai kemampuan
mendeteksi error secara lebih teliti dibandingkan bahasa pemrograman lain. Java
mempunyai runtime Exception handling untuk membantu mengatasi error pada
pemrograman.
Aman
Sebagai bahasa pemrograman untuk aplikasi internet dan
terdistribusi, Java memiliki beberapa mekanisme keamanan untuk menjaga aplikasi
tidak digunakan untuk merusak system computer yang menjalankan aplikasi
tersebut.
ArchitectureNeutral
Program Java merupakan platform independent. Program cukup
mempunyai satu buah versi yang dapat dijalankan pada platform yang berbeda
dengan Java VirtualMachine.
Portable
Source code maupun
program Java dapat dengan mudah dibawa ke platform yang berbeda-beda tanpa
harus dikompilasi ulang.
Performance
Performance pada Java
sering dikatakan kurang tinggi.Namun performance Java dapat ditingkatkan
menggunakan kompilasi Java lain seperti buatan Inprise, Microsoft ataupun
Symantec yang menggunakan
Just In Time Compilers (JIT).
Multithreaded
Java mempunyai kemampuan untuk membuat suatu program yang
dapat melakukan beberapa pekerjaan secara sekaligus dan simultan.
Dinamis
Java didesain untuk
dapat dijalankan pada lingkungan yang dinamis. Perubahan pada suatu class
dengan menambahkan properties ataupun
method dapat dilakukan tanpa menggangu program yang menggunakan class
tersebut.
Sebagai sebuah bahasa pemrograman, Java dapat membuat
seluruh bentuk aplikasi, desktop, web dan lainnya, sebagaimana dibuat dengan
menggunakan bahasa pemrograman konvensional yang lain. Java adalah
bahasa pemrograman yang berorientasi objek
(OOP) dan dapat
dijalankan pada berbagai platform system operasi.
Perkembangan Java tidak hanya terfokus
pada satu sistem operasi, tetapi dikembangkan untuk berbagai sistem operasi dan bersifat open source.
Sebagian fitur dari Java antara lain:
Java Virtual
Machine (JVM)
JVM adalah sebuah
mesin imajiner (maya) yang bekerja dengan menyerupai aplikasi pada sebuah mesin nyata. JVM menyediakan spesifikasi
hardware dan platform dimana kompilasi
kode Java terjadi. Spesifikasi inilah yang membuat aplikasi berbasis Java
menjadi bebas dari platform manapun karena proses kompilasi diselesaikan oleh
JVM. Aplikasi program Java diciptakan dengan file teks berekstensi .java.
Program ini dikompilasi menghasilkan satu berkas bytecode berekstensi .class atau
lebih. Bytecode adalah serangkaian instruksi serupa instruksi kode mesin.
Perbedaannya adalah kode mesin harus dijalankan pada sistem komputer dimana
kompilasi ditujukan, sementara bytecode berjalan pada java interpreter yang
tersedia di semua platform sistem komputer dan sistem operasi.
Garbage Collection
Banyak bahasa
pemrogaman lain yang mengizinkan seorang programmer mengalokasikan memori pada
saat dijalankan. Namun, setelah menggunakan alokasi memori tersebut, harus
terdapat cara untuk menempatkan kembali blok memori tersebut supaya program
lain dapat menggunakannya. Dalam C, C++ dan bahasa lainnya, adalah programmer
yang mutlak bertanggung jawab akan hal ini. Hal ini dapat menyulitkan bilamana
programmer tersebut alpa untuk mengembalikan blok memori sehingga menyebabkan
situasi yang dikenal dengan nama memory leaks. Program Java melakukan garbage
collection yang berarti program tidak perlu menghapus sendiri objek–objek yang
tidak digunakan lagi. Fasilitas ini mengurangi beban pengelolaan memori oleh
programmer dan mengurangi atau mengeliminasi sumber kesalahan terbesar yang
terdapat pada bahasa yang memungkinkan alokasi dinamis.
Code Security
Code Security
terimplementasi pada Java
melalui penggunaan Java
Runtime Environment (JRE). Java menggunakan model pengamanan 3 lapis
untuk melindungi sistem dari untrusted Java Code.
1.
Pertama, class-loader menangani pemuatan kelas
Java ke runtime interpreter. Proses ini menyediakan pengamanan dengan
memisahkan kelas–kelas yang berasal dari
local disk dengan kelas–kelas yang diambil dari jaringan. Hal ini membatasi
aplikasi Trojan karena kelas–kelas yang berasal dari local disk yang dimuat
terlebih dahulu.
2.
Kedua,
byte code verifie rmembaca byte code sebelum dijalankan dan menjamin byte code
memenuhi aturan–aturan dasar bahasa Java.
3.
Ketiga,
manajemen keamanan menangani keamanan tingkat aplikasi dengan mengendalikan
apakah program berhak mengakses sumberdaya seperti system file, port jaringan,
proses eksternal dan system windowing.
Setelah seluruh proses tersebut selesai dijalankan, barulah kode program di eksekusi.
Fase-Fase pemrograman Java Gambar di bawah ini menjelaskan
aliran proses kompilasi dan eksekusi sebuah program Java
Langkah pertama dalam pembuatan sebuah program berbasis Java
adalah menuliskan kode program pada text editor. Contoh text editor yang dapat
digunakan antara lain: notepad, vi, emacs dan lain sebagainya. Kode program
yang dibuat kemudian tersimpan dalam sebuah berkas berekstensi .java. Setelah
membuat dan menyimpan kode program, kompilasi file yang berisi kode program
tersebut dengan menggunakan Java Compiler. Hasil dari kompilasi berupa berkas
byte code dengan ekstensi .class. Berkas yang mengandung byte code tersebut
kemudian akan dikonversikan oleh Java Interpreter menjadi bahasa mesin sesuai
dengan jenis dan platform yang digunakan
0 Response to "Perbandingan Pemrograman Berorientasi Obyek dengan Pemrograman Terstruktur"
Post a Comment