OBJECT ORIENTIED vs STRUCTURE DESIGN


NAMA : ZENITHO MADYAGANTANG HAKIKI

NIM : 1202162310

KELAS : SI-40-02

Object Oriented Programming vs Pemrograman Terstruktur

A. Pemrograman Terstruktur

Pemrograman Terstruktur adalah suatu proses untuk mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah dalam bentuk program. Selain pengertian diatas Pemrograman Terstruktur adalah suatu aktifitas 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).

Bahasa pemrograman yang mendukung pemrograman terstruktur:

  1. Cobol Turbo Prolog
  2. C

  3. Pascal

  4. Delphi

  5. Borland Delphi

Kelebihan

  1. Milestone diperlihatkan dengan jelas yang memudahkan dalam manajemen proyek
  • SSAD merupakan pendekatan visual, ini membuat metode ini mudah dimengerti oleh pengguna atau programmer.

  • Penggunaan analisis grafis dan tool seperti DFD menjadikan SSAD menjadikan bagus untuk digunakan.

  • SSAD merupakan metode yang diketahui secara umum pada berbagai industry.

  • SSAD sudah diterapkan begitu lama sehingga metode ini sudah matang dan layak untuk digunakan.

  • SSAD memungkinkan untuk melakukan validasi antara berbagai kebutuhan

  • SSAD relatif simpel dan mudah dimengerti.

  • Kekurangan

    1. SSAD berorientasi utama pada proses, sehingga mengabaikan kebutuhan non-fungsional.
  • Sedikit sekali manajemen langsung terkait dengan SSAD.

  • Prinsip dasar SSAD merupakan pengembangan non-iterative (waterfall), akan tetapi kebutuhan akan berubah pada setiap proses.

  • Interaksi antara analisis atau pengguna tidak komprehensif, karena sistem telah didefinisikan dari awal, sehingga tidak adaptif terhadap perubahan (kebutuhan-kebutuhan baru).

  • Selain dengan menggunakan desain logic dan DFD, tidak cukup tool yang digunakan untuk mengkomunikasikan dengan pengguna, sehingga sangat sliit bagi pengguna untuk melakukan evaluasi.

  • Pada SAAD sliit sekali untuk memutuskan ketika ingin menghentikan dekomposisi dan mliai membuat sistem.

  • SSAD tidak selalu memenuhi kebutuhan pengguna.

  • B. Konsep Dasar Pemrograman Berorientasi Objek

    I. Objek

    Untuk mempermudah pemahaman, maka disini akan dijelaskan melalui analogi. Pada dasarnya semua benda yang adadi dunia nyata dapat dianggap sebagai objek. Misalnya rumah, mobil, sepeda, motor, gelas, komputer, meja, sepatu, dll. Setiap objek memiliki atribut sebagai status (state) dan tingkah laku sebagai behavior.

    Contoh objek : Motor. Maka atribute (state) nya adalah pedal, roda, jeruji, speedometer, warna, jumlah roda. Sedangkan tingkah laku (behavior) nya adalah kecepatan menaik, kecepatan menurun, dan perpindahan gigi motor.

    Analogi pemrograman berorientasi objek sama dengan penggambara pada dunia nyata seperti contoh di atas. Dalam OOP, state disimpan pada variabel dan tingkah laku disimpan pada method.

    Dalam bahasa teoretis OOP, Objek berfungsi untuk membungkus data dan fungsi bersama menjadi satu unit dalam sebuah program komputer. Objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek.

    II. Class

    Definisi class yaitu template untuk membuat objek. Class merupakan prototipe atau blue prints yang mendefinisikan variabel-variabel dan method-method secara umum. Objek merupakan hasil instansiasi dari suatu class. Proses pembentukan objek dari suatu kelas disebut sebagai instantiation. Objek disebut juga sebagai instances.

    Dalam bahasa teoretis OOP, class merupakan kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Sebagai contoh ‘class of dog’ adalah suatu unit yang terdiri atas definisi-definisi data dan fungsi-fungsi yang menunjuk pada berbagai macam perilaku/turunan dari anjing. Sebuah class adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi object.

    Sebuah class secara tipikal sebaiknya dapat dikenali oleh seorang non-programmer sekalipun terkait dengan domain permasalahan yang ada, dan kode yang terdapat dalam sebuah class sebaiknya (relatif) bersifat mandiri dan independen (sebagaimana kode tersebut digunakan jika tidak menggunakan OOP). Dengan modularitas, struktur dari sebuah program akan terkait dengan aspek-aspek dalam masalah yang akan diselesaikan melalui program tersebut. Cara seperti ini akan menyederhanakan pemetaan dari masalah ke sebuah program ataupun sebaliknya.

    III. Abstraksi

    Abstraksi adalah kemampuan sebuah program untuk melewati aspek informasi yang diproses olehnya, yaitu kemampuan untuk memfokus pada inti. Setiap objek dalam sistem melayani sebagai model dari “pelaku” abstrak yang dapat melakukan kerja, laporan dan perubahan keadaannya, dan berkomunikasi dengan objek lainnya dalam sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan. Proses, fungsi atau metode dapat juga dibuat abstrak, dan beberapa teknik digunakan untuk mengembangkan sebuah pengabstrakan.

    Kelebihan

    1. Dibandingkan dengan metode SSAD, OOAD lebih mudah digunakan dalam pembangunan system.
  • Encapsliation data dan method, memungkinkan penggunaan kembali pada proyek lain, hal ini akan memperingan proses desain, pemrograman dan reduksi harga.

  • OOAD memungkinkan adanya standarisasi obyek yang akan memudahkan memahami desain dan mengurangi resiko pelaksanaan proyek.

  • Dekomposisi obyek, memungkinkan seorang analis untuk memcah masalah menjadi pecahan-pecahan masalah dan bagian-bagian yang dimanage secara terpisah. Kode program dapat dikerjakan bersama-sama. Metode ini memungkinkan pembangunan software dengan cepat, sehingga dapat segera masuk ke pasaran dan kompetitif. Sistem yang dihasilkan sangat fleksibel dan mudah dalam memelihara.

  • B. Menggambarkan Diagram OOP

    1. DIAGRAM USE CASE

    Adalah abstraksi dari interaksi antara sistem dan actor. Use case bekerja dengan cara mendeskripsikan tipe interaksi antara user sebuah sistem dengan sistemnya sendiri melalui sebuah cerita bagaimana sebuah sistem dipakai.

    2. COLLABORATION DIAGRAM

    Dalam menunjukkan pertukaran pesan, collaboration diagram menggambarkan objek dan hubungannya (mengacu pada konteks).

    3. ACTIVITY DIAGRAM

    Menggambarkan berbagai aliran aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana akhirnya.

    4. STATECHART DIAGRAM

    Menggambarkan transisi dan perubahan keadaan (dari satu state ke state lainnya) suatu objek pada sistem sebagai akibat dari stimuli yang diterima.

    Contoh Kasus OOP

    Membuat daftar laporan berupa nama peminjam, no id, jenis id yang digunakan untuk meminjam, jumlah buku, total harga serta list buku (jumlah buku, kode dan nama buku) yang dipinjam. Ketentuan-ketentuan sebagai berikut : tiap peminjam harus menyebutkan nama, No ID, jenis ID. Peminjam berhak meminjam buku maksimal lima buah. Tiap buku yang akan dipinjam dikenakan biaya Rp100,00.

    public class Peminjam

    {

    private String nama, noId;

    private String jenisId;

    private int total;

    private int jumlah;

    private ListBuku [] lb = new ListBuku [5];

    public Peminjam (){

    this.nama = "";

    this.noId = "";

    }

    public Peminjam(String nama, String noId){

    this.nama = nama;

    this.noId = noId;

    }

    public Peminjam(String nama, String noId, String jenisId, int jumlah, int total){

    this.nama = nama;

    this.noId = noId;

    this.jenisId = jenisId;

    this.total = total;

    this.jumlah = jumlah;

    }

    public void setNama(String nama)

    {

    this.nama = nama;

    }

    public void setNoId(String noId)

    {

    this.noId = noId;

    }

    public String getJenisId()

    {

    return jenisId;

    }

    public String getNama (){

    return " ";

    }

    public void inputListBuku(int idx, ListBuku lb){

    this.lb[idx] = lb;

    }

    public void printDaftar(){

    System.out.println("***************************************");

    System.out.println("NO ID : "+noId+"");

    System.out.println("Jenis ID : "+getJenisId());

    System.out.println("Nama Peminjam : "+nama+"");

    System.out.println("Jumlah : "+jumlah);

    total = jumlah * 100;

    System.out.println("Total : "+total);

    System.out.println("++++++++ Daftar List Buku ++++++++++++++");

    for(int i = 0; i < 5; i++){

    System.out.println((i+1) +". "+lb[i].Laporan());

    } System.out.println("++++++++++++++++++++++++++++++++++");

    }

    }

    public class ListBuku

    {

    private String kodeBuku;

    private String namaBuku;

    public ListBuku(String kode, String nama){

    this.kodeBuku = kode;

    this.namaBuku = nama;

    }

    public String getKode(){

    return this.kodeBuku;

    }

    public String getNama(){

    return this.namaBuku;

    }

    public String Laporan(){

    return ("Buku dengan kode "+getKode()+" judulnya "+getNama()+"");

    }

    }

    REFERENSI

    https://www.slideshare.net/andiseprianto/pembuatan-uml-pada-toko-belanja-online

    https://informartitekuswim.wordpress.com/materi-kuliah/pemrograman-berorientasi-objek/

    http://njajall-bloglho.blogspot.co.id/2012/04/sekilastentang-oop-contoh-sederhana.html

    http://rpl.if.its.ac.id/perbedaan-pemrograman-terstruktur-dan-pemrograman-berorientasi-objek/


    Leave a Reply