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 diuji, 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 menggunakan parameter yang berbeda-beda
untuk setiap pemanggilan.Bahasa pemrograman terstruktur adalah pemrograman yan
g mendukung abstraksi data,pengkodean terstruktur dan kontrol program
terstuktur.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 Profesor 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 tertruktur 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 di
monitor 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 program
2. Program
mudah dibaca dan ditelusuri
3. Menyederhanakan
kerumitan program
4. Pemeliharaan
program, dan
5. Meningkatkan
produktivitas pemrograman
Ciri-ciri
Pemrograman Terstuktur :
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)
a. Masukan
(Input)
b. Proses
(Process)
c. Keluaran
(Output)
Contoh tabel :
Input
Process
Output
|
2.
Rancang
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 variable lokal maupun
variable 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.
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
Metode Pemrograman
Terstruktur
Pemrograman terstruktur memiliki metode
pengembangan Top-Down.Perancangan
program dilakukan secara Modular.
·
Pengembangan
Top-Down
Pengembangan yang dimulai dari langkah
global kemudian diperluas lagi sehingga memperoleh langkah lebih rinci.
·
Modular
Perancangan
program dilakukan dalam bentuk modul-modul
Teorema pada Pemrograman Terstruktur
1.
Sequence
Tips
instruksi dikerjakan secara berurutan sesuai dengan urutan penulisnya.
Contoh :
Perintah A
Perintah B
Perintah C
2. Selection
Instruksi akan
dikerjakan jika kondisi tertentu dipenuhi.
Contoh
:
Penggunaan
IF-THEN-ELSE
Penggunaan 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 dengan bahasa C++
adalah dengan fungsi.
Fungsi
dibagi menjadi 2 macam :
1.
Fungsi
yang tidak bernilai
Format
:
Nama_fungsi
([tipe par1, ...])
{
Pernyataan/instruksi;
}
2.
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>
// 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 1 :
//modul menghitung luas segitiga
Float Luas_sgt(float alas, float tinggi)
{
return
(alas*tinggi / 2); //pengembalian nilai dengan
// return
}
// program utama (main)
void main() {
float A,T;
cout <<”Data Alas :”; cin >> A;
cout <<”Data
Tinggi :”; cin >> T;
cout << “Luas
segitiga :” <<
Luas_sgt(A,T)<<endl;
}
·
Keterangan :
-
Variable A dengan alas a 2 variable yang
berbeda
-
Variable T dengan tinggi a 2 variable
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 segitiga
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 segitiga :” <<
luas<<endl;
}
·
Keterangan :
-
Variable & alas a berisi alamat dari
variable alas
-
Variable & tinggi a berisi alamat
dari variable 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
·
Membuat 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
dibuthkan relatif rendah
Perbedaannya
:
Dari pengertian
pemrograman terstruktur dan pemrograman berorientasi objek itu sendiri kita
dapat menyimpulkan, apa perbedaan 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).
Referensi :
https://rumahradhen.wordpress.com/materi-kuliahku/semester-iii-2/pemrograman-terstruktur/pengenalan-pemrograman-terstruktur/
Referensi :
https://rumahradhen.wordpress.com/materi-kuliahku/semester-iii-2/pemrograman-terstruktur/pengenalan-pemrograman-terstruktur/






0 komentar:
Posting Komentar