Pemrograman Terstruktur merupakan suatu tindakan untuk membuat program yang berisi instruksi-instruksi dalam bahasa komputer yang disusun secara logis dan sistematis supaya mudah dimengerti, mudah dites, dan mudah dimodifikasi.
Pemrograman terstruktur adalah bahasa pemrograman yang mendukung pembuatan program sebagai kumpulan prosedur. Prosedur-prosedur ini dapat saling memanggil dan dipanggil dari manapun dalam program dan dapat mengunakan parameter yang berbeda-beda untuk setiap pemanggilan. Bahasa pemrograman terstruktur adalah pemrograman yang mendukung abstraksi data, pengkodean terstruktur dan kontrol program terstruktur. Sedangkan Prosedur adalah bagian dari program untuk melakukan operasi-operasi yang sudah ditentukan dengan menggunakan parameter tertentu.
Sejarah Metodologi Pemrograman
Ide pemrograman terstruktur pertama kali diungkapkan oleh Prof Edsger Djikstra dari Universitas Eindhoven sekitar tahun 1965. Dalam papernya, Djikstra mengusulkan peniadaan perintah GOTO pada pemrograman terstruktur. Berbeda dengan pendapat HD Millis yang mengungkapkan bahwa pemrograman terstruktur tidak tergantung pada ada tidaknya GOTO tetapi lebih pada struktur program itu sendiri. Dari pernyataan keduanya, memberikan gambaran tidak adanya definisi yang jelas untuk pemrograman terstruktur. Tetapi dapat digaris bawahi bahwa pemrograman terstruktur merupakan suatu proses untuk mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah dalam bentuk program.

Alasan Pemrograman Terstruktur ialah

– Krisis metode pengembangan

– Kemampuan tenaga programmer tertinggal

– Sulitnya modifikasi program jika ada kesalahan atau perubahan

– Sulitnya modifikasi kode program karena tidak terstruktur dengan baik

Manfaat Pemrograman Terstruktur

– Dapat menangani program yang  besar dan komplek

– Dapat menghindari konflik internal team

– Membagi kerja team berdasarkan modul-modul program yang sudah dirancang

– kemajuan pengerjaan sistem dapat dimonitor dan dikaji

 

Ciri – ciri Program Terstruktur (Good Program)

– Run correctly (program handal)

–  Run efficiently (program menjadi sederhana / tidak rumit)

–  Be easy to read and understand (mudah dibaca dan ditelusuri)

– Be easy to debug (program mudah ditelusuri kesalahannya)

– Be easy to modify (program mudah dimodifikasi)

Tujuan dari pemrograman terstruktur adalah

1.       Meningkatkan kehandalan suatu progam,
2.       program mudah dibaca dan ditelusuri,
3.       menyederhanakan kerumitan program,
4.       pemeliharaan program, dan
5.       meningkatkan produktivitas pemrograman.
Pemrograman terstruktur bercirikan:
1.         mengandung teknik pemecahan yang tepat dan benar,
2.         memiliki algoritma pemecahan masalah yang sederhana, standar dan efektif,
3.         memiliki struktur logika yang benar dan mudah dipahami,
4.         terdiri dari 3 struktur dasar yaitu urutan, seleksi dan perulangan,
5.         menghindari penggunaan GOTO,
6.         biaya pengujian rendah, Source Program penterjemah Machine Languages Komputer dan Pemrograman
7.         memiliki dokumentasi yang baik,
8.         biaya perawatan dan dokumentasi yang dibutuhkan rendah.

Langkah-langkah untuk membuat program yang baik dan terstruktur adalah:
1. Mendefinisikan Masalah
2. Menentukan Solusi
3. Memilih Algoritma
4. Menulis Program
5. Menguji Program
6. Menulis Dokumentasi
7. Merawat Program
8. Pengenalan Komputer

Langkah – Langkah Pengembangan Program

 

  1. Definisikan masalah (Batasan masalah)
  2. Rancang outline pemecahan masalah (Pengembangan model)
  3. Buat algoritma berdasarkan outline pemecahan masalah
  4. Test algoritma (Perbaikan algoritma)
  5. Coding (Pemrograman dan pengujian program)
  6. Execute (Running)
  7. Dokumentasi dan pemeliharaan

1. Definisi Masalah

a. Keluaran (Output)

b. Masukan (Input)

c. Proses (Proces)

 

Contoh tabel definisi masalah:

Input Proces output

 

2. Outline Pemecahan Masalah (Pengembangan model)

a. Buat langkah – langkah proses (modul/proses apa saja yang terjadi pada menu utama dan sub menu)

b. Buat rincian/detail Proses (masing-masing submenu akan mengerjakan berapa modul/proses, setiap modul/proses yang terjadi berinteraksi dengan berapa file dan file apa saja )

c. Tentukan Variable dan record (dalam setiap proses (modul), baik variabel lokal maupun variabel global)

d. Tentukan struktur kontrol (urut, pengulangan, kondisi), berapa bentuk struktur kontrol yang terlibat dalam satu proses, dan jenis strukturnya apa saja dan berapa banyak

 

Metode Pemrograman Terstruktur

Pemrograman terstruktur memakai metode pengembangan Top-Down. Perancangan program dilakukan secara Modular.

  • Pengembangan Top-Down

Pengembangan yang dimulai dari langkah yang global lebih dahulu, yang kemudian diperluas lagi sehingga didapat langkah rinci

  • Modular

Perancangan program dilakukan dalam bentuk modul-

modul

Teorema Pada Pemrograman Terstruktur

1. Sequence

Tiap instruksi dikerjakan secara berurutan sesuai dengan urutan penulisannya

Contoh :

Perintah A

Perintah B

Perintah C
2. Selection

Instruksi akan dikerjakan jika kondisi tertentu dipenuhi

 Contoh :

Penggunaan IF-THEN-ELSE

Penggunaas CASE

 

3. Repetition

Instruksi dikerjakan berulang – ulang sampai suatu kondisi dicapai.

 Contoh :

Penggunaan DO WHILE

Penggunaan REPEAT – UNTIL

 

a. Modular Programming

b. Membuat Modul   :

Membuat Modul      dalam bahasa C++ adalah dengan fungsi.

Fungsi ada 2 macam :

  1. Fungsi yang tidak bernilai
  2. Fungsi yang bernilai
  • Fungsi yang tidak bernilai

Format :

Nama_fungsi([tipe par1,  ….])

{

pernyataan / instruksi;

}

 

  • Fungsi yang bernilai

Format :

tipe hasil Nama_fungsi([tipe par1,  ….])

{

       pernyataan / instruksi;

}

 

Cara memanggil modul dari program utama :

void main()

{

Nama_fungsi([par1,  ….])

}

Contoh :

1.          Fungsi yang tidak bernilai

 

#include <iostream.h>

// modul membuat garis

void garis()  {

for (i=0; i<49; i++) cout << ‘-‘;

                cout << endl;

}

 // modul membuat judul

void judul()  {

                int i;

                cout << “\t\tDAFTAR BUKU”<< endl;  // \t = tabulasi

                garis();

                cout <<”Judul Buku”<<”\t\tPengarang”<< endl;

                garis();

            }

             // program utama (main)

     void main()  {

           judul();   // memanggil modul judul

     }

 

Contoh :

2.          Fungsi yang bernilai

Modul menghitung Luas_segitiga

Cara I :

// modul menghitung luas segita

float Luas_sgt(float alas, float tinggi)

{

                return (alas * tinggi / 2);   //pengembalian nilai dgn

  // return

             }

    // program utama (main)

            void main()  {

        float A, T;

        cout <<”Data Alas       : “; cin >> A;

        cout <<”Data Tinggi    : “; cin >> T;

cout <<”Luas segi tiga : “ << Luas_sgt(A,T)<<endl;

    }

  • Keterangan :

–      Variable A dengan alas à 2 variabel yang berbeda

–      Variable T dengan tinggi à 2 variabel yang berbeda

–      Luas_sgt(A,T) cara pemanggilan fungsi, yang akan menghasilkan nilai dari fungsi Luas_sgt

 

Contoh :

Fungsi yang bernilai

 Modul menghitung Luas_segitiga

Cara II :

// modul menghitung luas segita

Luas_sgt(float &alas, float &tinggi, float &luas)

            {

               luas = alas * tinggi / 2;

             }

    // program utama (main)

           void main()  {

        float alas, tinggi,luas;

        cout <<”Data Alas       : “; cin >> alas;

        cout <<”Data Tinggi    : “; cin >> tinggi;

Luas_sgt(alas, tinggi, luas);

cout <<”Luas segi tiga : “ << luas<<endl;

   }

 

  • Keterangan :

–      Variable &alas à berisi alamat dari variabel alas

–      Variable &tinggi à  berisi alamat dari variabel tinggi

–      Luas_sgt(alas,tinggi,luas) cara pemanggilan fungsi, yang akan menghasilkan nilai dari variable luas melalui alamat (passing parameter by location)

 

Tambahan :

Perbedaan Pemrograman Terstruktur dan Pemrograman Berorientasi Objek

OOP (Object-Oriented Programming)

Pemrograman berorientasi objek (Inggris: object-oriented programming disingkat OOP) merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Bandingkan dengan logika pemrograman terstruktur. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya.

Bahasa pemrograman yang mendukung OOP antara lain:

  • Visual Foxpro
  • Java
  • C++
  • Pascal (bahasa pemrograman)
  • Visual Basic.NET
  • SIMULA
  • Smalltalk
  • Ruby
  • Python
  • PHP
  • C#
  • Delphi
  • Eiffel
  • Perl
  • Adobe Flash AS 3.0

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:

  • Cobol Turbo Prolog
  • C
  • Pascal
  • Delphi
  • Borland Delphi

Sifat-sifat pemrograman terstruktur

  • Memuat teknik pemecahan masalah yang logis dan sistematis
  • Memuat algoritma yang efisien, efektif dan sederhana
  • Program disusun dengan logika yang mudah dipahami
  • Tidak menggunakan perintah GOTO
  • Biaya pengujian program relatif rendah
  • Memiliki dokumentasi yang baik
  • Biaya perawatan dan dokumentasi yang dibutuhkan relatif rendah

Perbedaannya

Dari pengertian pemrograman terstruktur dan pemrograman berorientasi objek itu sendiri kita dapat menyimpulkan, apa perbedaan dari pemrograman terstruktur dan pemrograman berorientasi objek itu. Pemrograman berorientasi objek (Object-Oriented Programming atau OOP) merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Bandingkan dengan logika pemrograman terstruktur. 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 antara satu line pemrograman dengan yang lainnya berhubungan.

Konsep utama dari Pemrograman Berbasis Objek terletak pada kondisi kode/line pemrogramanannya dimana 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 line lebih dari 100 atau bisa dikatakan rumit, maka digunakan pemrograman berorientasi objek. 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 data yang mana 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.

Berdasarkan penjelasan diatas, sangat jelas bahwa pemrograman tersktruktur unggul dalam melakukan pemrograman sederhana karena lebih efisien dan lebih murah dalam hal perawatannya tetapi permodelan ini lebih susah untuk dipahami oleh orang – orang selain pembuat program itu sendiri (contohnya ketika dlakukan tracing program).

Keuntungan pemrograman berorientasi objek

  • Maintenance; program lebih mudah dibaca dan dipahami, dan pemrograman berorientasi obyek mengontrol kerumitan program hanya dengan mengijinkan rincian yang dibutuhkan untuk programmer.
  • Pengubahan program (berupa penambahan atau penghapusan fitur tertentu); perubahan yang dilakukan antara lain menyangkut penambahan dan penghapusan dalam suatu database program misalnya.
  • Dapat digunakannya obyek-obyek sesering yang diinginkan, kita dapat menyimpan obyek-obyek yang yang dirancang dengan baik ke dalam sebuah tolkit rutin yang bermanfaat yang dapat disisipkan kedalam kode yang baru dengan sedikit perubahan atau tanpa perubahan pada kode tersebut.

Jadi, sangat jelas bahwa pemrograman berorientasi objek sangat cocok sekali digunakan dalam kasus pembuatan software yang rumit dan kompleks karena memberikan berbagai kemudahan kepada pemrogram seperti yang telah disebutkan diatas.

Permodelan yang mana yang lebih bagus? itu tergantung dari kebutuhan dan dari sudut pandang mana anda melihatnya. Yang perlu anda ingat adalah tujuan dari pemodelan itu sendiri, yang mana agar pada akhir proyek sistem dapat diperoleh sistem informasi yang memenuhi kebutuhan pemakai, tepat waktu dan sesuai anggaran, serta mudah digunakan, dimengerti dan dipelihara.

Perbedaan mendasar antara OOP dan pemrograman terstruktur

Sistem pemrograman berorientasi objek, bentuk pemodelan programnya diorientasikan dalam bentuk objek – objek, sedangkan Sistem pemrograman terstruktur pemodelan programnya diuraikan dan diorganisasikan secara lebih detail.

Konsep dasar pemrograman berorientasi objek dikelompokkan kedalam kelas, objek, abstraksi, enkapulasi dan Polimorfisme melalui pengiriman pesan, sedangkan konsep dasar pemrograman terstruktur harus mengandung teknik pemecahan masalah yang tepat dan benar, memiliki algoritma pemecahan masalah yang sederhana, standar dan efektif, penulisan program memiliki struktur logika yang benar dan mudah dipahami, program hanya memiliki 3 struktur dasar, yaitu : Struktur berurutan, struktur seleksi, dan struktur pengulangan, Menghindari penggunaan pernyataan GOTO, Memiliki dokumentasi yang baik.

UML adalah contoh salah satu bahasa pemrograman yang berkonsepkan OOP, sedangkan DFD dan ERD adalah contoh bahasa pemrograman yang berkonsepkan pemrograman secara terstruktur.

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.

Kelebihan dan Kekurangan Pemograman Berorientasi Objek dengan Pemograman Terstruktur

METODE TERSTRUKTUR

Perancangan Terstruktur (Structured Analisys and Design / SSAD)

Metode ini diperkenalkan pada tahun 1970, yang merupakan hasil turunan dari pemrograman terstruktur. Metode pengembangan dengan metode terstruktur ini terus diperbaiki sampai akhirnya dapat digunakan dalam dunia nyata. Perancangan ini bertujuan untuk membuat model SOLUSI terhadap PROBLEM yang sudah dimodelkan secara lengkap pada tahap analisis terstruktur.

Kelebihan

  • 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

  • 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.
  • SSAD tidak dapat memenuhi kebutuhan terkait bahasa pemrograman berorientasi obyek, karena metode ini memang didesain untuk mendukung bahasa pemrograman terstruktur, tidak berorientasi pada obyek (Jadalowen, 2002).

METODE BERORIENTASI OBYEK

Perancangan Berbasis Objek (Object-oriented Analysis and Design / OOAD)

Metode OOAD melakukan pendekatan terhadap masalah dari perspektif obyek, tidak pada perspektif fungsional seperti pada pemrograman terstruktur. Akhir-akhir ini penggunakan OOAD meningkat dibandingkan dengan pengunaan metode pengembangan software dengan metode tradisional. Sebagai metode baru dan sophisticated bahasa pemrograman berorientasi obyek diciptakan, hal tersebut untuk memenuhi peningkatan kebutuhan akan pendekatan berorientasi obyek pada aplikasi bisnis

Kelebihan

  • Dibandingkan dengan metode SSAD, OOAD lebih mudah digunakan dalam pembangunan sistem
  • Dibandingkan dengan SSAD, waktu pengembangan, level organisasi, ketangguhan,dan penggunaan kembali (reuse) kode program lebih tinggi dibandingkan dengan metode OOAD (Sommerville, 2000).
  • Tidak ada pemisahan antara fase desain dan analisis, sehingga meningkatkan komunikasi antara user dan developer dari awal hingga akhir pembangunan sistem.
  • Analis dan programmer tidak dibatasi dengan batasan implementasi sistem, jadi desain dapat diformliasikan yang dapat dikonfirmasi dengan berbagai lingkungan eksekusi.
  • Relasi obyek dengan entitas (thing) umumnya dapat di mapping dengan baik seperti kondisi pada dunia nyata dan keterkaitan dalam sistem. Hal ini memudahkan dalam mehami desain (Sommerville, 2000).
  • Memungkinkan adanya perubahan dan kepercayaan diri yang tinggi terhadap kebernaran software yang membantu untuk mengurangi resiko pada pembangunan sistem yang kompleks (Booch, 2007).
  • 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.

Kekurangan

  • Pada awal desain OOAD, sistem mungkin akan sangat simple.
  • Pada OOAD lebih fockus pada coding dibandingkan dengan SSAD.
  • Pada OOAD tidak menekankan pada kinerja team seperti pada SSAD.
  • Pada OOAD tidak mudah untuk mendefinisikan class dan obyek yang dibutuhkan sistem.
  • Sering kali pemrogramam berorientasi obyek digunakan untuk melakukan anlisisis terhadap fungsional siste, sementara metode OOAD tidak berbasis pada fungsional sistem.
  • OOAD merupakan jenis manajemen proyek yang tergolong baru, yang berbeda dengan metode analisis dengan metode terstruktur. Konsekuensinya adalah, team developer butuh waktu yang lebih lama untuk berpindah ke OOAD, karena mereka sudah menggunakan SSAD dalam waktu yang lama ( Hantos, 2005).
  • Metodologi pengembangan sistem dengan OOAD menggunakan konsep reuse. Reuse merupakan salah satu keuntungan utama yang menjadi alasan digunakannya OOAD. Namun demikian, tanpa prosedur yang emplisit terhadap reuse, akan sangat sliit untuk menerapkan konsep ini pada skala besar (Hantos, 2005).

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s