Pemrograman Terstruktur | Pemrograman Berbasis Objek |
Memecah program dalam fungsi dan data | Menggabungkan fungsi dan data dalam kelas – kelas atau objek – objek |
Memiliki ciri Sequence (berurutan), Selection (pemilihan) dan Repetition (perulangan) | Memiliki ciri Encapsulation (pengemasan), Inheritance (penurunan sifat) dan Polymorphism (perbedaan bentuk dan perilaku) |
Struktur program rumit karena berupa urutan proses dan fungsi-fungsi | Struktur program ringkas, cukup dengan membuat Objek dan class lalu bekerja berdasarkan object dan class tersebut. |
Re-use kode program kurang | Kode program sangat re-usable. object dan class dapat digunakan berkali-kali, sehingga dapat menghemat space memori. |
Efektif digunakan untuk menyelesaikan masalah kecil dan tidak cocok untuk menyelesaikkan masalah yang rumit, karena nantinya akan kesulitan menemukan solusi permasalahan ketika terjadi error | Efektif digunakan untuk menyelesaikan masalah besar, karena OOP terdiri dari class-class yang memisahkan setiap kode program menjadi kelompok – kelompok kecil, sesuai dengan fungsinya |
Mudah di awal, namun kompleks diproses selanjutnya | Sulit di awal (karena harus membuat class) namun selanjutnya akan terasa mudah dan cepat |
Eksekusi lebih lambat karena setiap perintah dikerjakan berurutan | Eksekusi lebih cepat karena dieksekusi bersamaan, program hanya mengatur Objek, properties dan method-nya saja |
Bahasa pemrograman yang mendukung pemrograman terstruktur:
- Cobol
- C
- Pascal
- Delphi
- Borland Delphi
Bahasa pemrograman yang mendukung PBO antara lain:
- Visual Foxpro
- Java
- C++
- Pascal
- Visual Basic.NET
- SIMULA
- Smalltalk
- Ruby
- Python
- PHP
- C#
- Delphi
- Eiffel
- Perl
- Adobe Flash AS 3.0
Kesimpulan
Pemrograman berorientasi objek (Object-Oriented Programming atau OOP) merupakan salah satu cara pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam cara ini dibungkus dalam kelas-kelas atau objek-objek. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya, Sedangkan untuk pemrograman terstruktur adalah kebalikan dari pemrograman berorientasi objek yaitu sebuah cara pemrosesan data yang terstruktur dalam analisa, cara dan penulisan pemrograman. Dikarenakan harus terstruktur sehingga dalam pembuatannya semua linenya harus berhubungan.
Konsep utama dari Pemrograman Berbasis Objek terletak pada kondisi dimana kode merupakan sebuah kesatuan modular. Untuk program yang simpel/sederhana biasanya menggunakan pemrograman terstruktur karena masih mudah dan tidak banyak dilakukan perubahan yang berarti, sedangkan untuk kode dengan line lebih dari 100 atau bisa dikatakan rumit, maka pemrograman berorientasi objek lebih baik untuk digunakan. Pemrograman Terstruktur terdiri dari pemecahan masalah yang besar menjadi masalah yang lebih kecil dan seterusnya, sedangkan untuk pemrograman berorientasi objek terdiri dari pengkelompokan kode dengan setiap objek berfungsi secara independen sehingga untuk setiap perubahan kode tidak tergantung pada kode yang lainnya, atau lebih dikenal dengan modular. Terdapat juga perbedaan secara spesifik antara Pemrograman Berorientasi Objek dengan Pemrograman Terstruktur, yaitu pada kelas dan objek. Pada Pemrograman Terstruktur tidak terdapat kelas dan objek.
Contoh Pemrograman Terstruktur
Program untuk menjalankan operator-operator dasar pada Java
import java.util.Scanner;
public class OperatorAritmatika {
public static void main(String[] args) {
int angka1;
int angka2;
int hasil;
Scanner keyboard = new Scanner(System.in);
System.out.print("Input angka-1: ");
angka1 = keyboard.nextInt();
System.out.print("Input angka-2: ");
angka2 = keyboard.nextInt();
// penjumlahan
hasil = angka1 + angka2;
System.out.println("Hasil = " + hasil);
System.out.print("Input angka-1: ");
angka1 = keyboard.nextInt();
System.out.print("Input angka-2: ");
angka2 = keyboard.nextInt();
// pengurangan
hasil = angka1 - angka2;
System.out.println("Hasil = " + hasil);
System.out.print("Input angka-1: ");
angka1 = keyboard.nextInt();
System.out.print("Input angka-2: ");
angka2 = keyboard.nextInt();
// perkalian
hasil = angka1 * angka2;
System.out.println("Hasil = " + hasil);
System.out.print("Input angka-1: ");
angka1 = keyboard.nextInt();
System.out.print("Input angka-2: ");
angka2 = keyboard.nextInt();
// Pembagian
hasil = angka1 / angka2;
System.out.println("Hasil = " + hasil);
System.out.print("Input angka-1: ");
angka1 = keyboard.nextInt();
System.out.print("Input angka-2: ");
angka2 = keyboard.nextInt();
// Sisa Bagi
hasil = angka1 % angka2;
System.out.println("Hasil = " + hasil);
}
}
Output dari program :
Contoh PBO :
Program dengan package bernama dasar serta berisi Player.java dan Game.java
Player.java
package dasar;
public class Player {
// definisi atribut
String name;
int speed;
int healthPoin;
// definisi method run
void run(){
System.out.println(name +" is running...");
System.out.println("Speed: "+ speed);
}
// definisi method isDead untuk mengecek nilai kesehatan (healthPoin)
boolean isDead(){
if(healthPoin <= 0) return true;
return false;
}
}
Game.java
package dasar;
public class Game {
public static void main(String[] args){
// membuat objek player
Player petani = new Player();
// mengisi atribut player
petani.name = "Petani Kode";
petani.speed = 78;
petani.healthPoin = 0;
// menjalankan method
petani.run();
if(petani.isDead()){
System.out.println("Game Over!");
}
}
}
Output dari Program setelah dijalankan adalah :