Dasar pemprograman berdisiplin
P
|
enyelesaian persoalan memakai
komputer memerlukan perngkat keras dan perangkat lunak. Perangkat keras berisi komponen komponen fisik seperti
CPU (central procesing unit), memori dan perangkat masukan/keluaran
pembentuk sistem. Perngakat lunak mengacu ke program yang mengendalikan operasi
operasi perangkat keras untuk menyelesaikan masalah.
7.1 Perangkat lunak : Seni, Sains dan
Rekayasa
Pengembangan
perangkat lunak merupakan proses yang kompleks, gabungan seni dan sains. Proses
ini merupakan seni dalam arti memerlukan imajinasi, kreativitas dan kecerdikan
untuk menghasilkan perangkat lunak yang mengesankan. Juga merupkan sains karena
menggunakan teknik, kakasdan metodologi sistematik yang memenuhi kaidah dan
aturan sains serta rekayasa. Rekayasa perangkat lunak (softwareengineering) merupakan
disiplin yang mempelajari teknik, metodologi, dan manajemen untuk menghasilkan
perangkat lunak berkualitas.
Tahap tahap yang di
lalui pengembangan perangkat lunak berfariasi sesuai sifat aplikasi/sistem.
Berikut adalah tahap tahap generik pengembangan perangkat lunak. Urutan dan
jenis aktivitas aktivitasyang benar benar di lakukan sesuai model proses dan
metodologi yang di pilih.
1. Analisis dan spesifikasi masalah
2. Perancangan sistem
3. Pengkodean atau pemprograman, serta integrasi
4. Verifikasi dan validasi
5.
Pemeliharaan sistem
Analisis dan
Spesifikasi Masalah
Mula mula
program harus di analisis dan di rumuskan dengan spesifikasi lengkap, presisi,
jelas dan tidak teranbigu. Kitadapat merumuskan dengan kurang formal namun
ampuh meski tidak seampuh cara formal spesifikasi kurang formal
misalnyadengan spesifikasi melalui prakondisi (precondition), poskondisi
(postcondition), dan invarian.
Perancangn
Sistem
Begitu spesifikasi
di hasilkan di aktivitas analisis, perancangn sistem di lakukan untuk memenuhi
spesifikasi. Perancangan mengikuti kaidah kaidah perancangan seperti
modularitas, kejelasan(claricity), guna ulang (reusability), keterbacaan
(readibility) dan sebagainya. Kriteria kriteria yang bertentangan harus
di kompromikan sehingga memperoleh kualitas sistem yang optimal berdasar waktu,
biaya dan usaha.
Pengkodean
atau pemprograman, serta integrasi
Berikut adalah
praktek praktek pemprograman yang baik
1. Rencanakan perancangn program
2. Pengapsulan terhadap modul modul
3. Gunakan bagian bagian program yang telah ada
4.
Jadilah pembuat perkakas
bantu di mana potongan program melakukan suatu kerja tertentu, atau memberi
manfaat tertentu dengan sangat baik sehinggadapat di gunakan secara umum.
Misalnya membuat pengurutan maka di usahakan potongn program dapat di gunakan
di program lain.
Proses persiapan program
tidak hanya menguntungkan secara ekonomi dan ilmiah tapi juga merupakan
pengalaman estetika yang mengasikan seperti seorang komposer menyusun music
atau penyair mengarang puisi.
Verifikasi
dan Validasi
Program telah
di hasilkan harus di periksa terhadap pemenuhan spesifikasi. Untuk melakukan
ini maka program perlu di uji secara black-box maupun white box. Pengujian
di tunjukan untuk menemukan cacat di program.
Pemeliharaan
Sistem
Program akan
selalu di kelola agar dapat berevolusi mengikuti perubahan lingkungan.
Petunjuk
pembangunan perangkat lunak berdisiplin dan menyeluruh mengikuti kaidah
rekayasa perangkat lunak.
7.2 Bahasa pemprograman adalah
kakas
Pemprograman
mengharuskan pemahaman. Bahasa pemprograman merupakan kakas perancangan dan
pemprograman. Hanya denagn memahami gagasan keberadaan fasilitas di bahasa yang
memungkinkan program menjadi mahir menggunakan bahsasa. Pemprogram adalah
aktivitasi mplementasi.
Pada bahsa
orientasi objek, program di organisasisebagai koleksi entitas (objek) ADT.
Koleksi entitas berinteraksi, bekerja sama, masing masing mempresentasi instan
ADT. Definisi mengarah ke bahasa yang mendukung entitas entitas indhependen, di
sebut objek. Perilaku entitas (objek) harus di definisi tipe yang dapat di
definisikan oleh pemprogram.
Bahasa orientasi
dapat meningkatkan peluang kekeliruan pemprogram yang sembrono. Pemprogram yang
baik memerlukan disiplin yangmenjalankan prinsip prinsip gaya pemprograman yang
baik. Penulisan program tidak sekedar mengetahui bentukan bentukan bahasa dalam
merakitnya menjadi program. Pemprogram yang baik mengikuti suatu disiplin.
Pemprogram yang mengikuti rancangan yang baik cenderung menjadi mudah diguna
ulang, di perluas dan di lakukan debugging.
7.3 Gaya Pemprograman
7.3.1 Guna
ulang (Reusability)
Perangkat
lunak dapat di guna ulang mereduksi ongkos perancangan, pengkodean dan
pengujian. Reduksi kode juga menyederhanakan pemahaman. Guna ulang mungkin di
lakukan di bahasa non orientasi objek, namun bahasa orientasi objek
meningkatkanya.
Aturan aturan
untuk guna ulang [RUM91]:
1. Jaga agar operasi koheren. Operasi adalah koheren jika operasi
melakukan satu fungsi tunggal atau sekelompok fungsi terhubung erat. Jika
operasi melakukan dua hal atau lebih yang tidakberhubungan maka pecahmenjadi
operasi operasi lebih kecil.
2. Jaga agar operasi berurutan kecil. Jika operasi berukuran besar,
pecahan menjadi operasi operasi lebih kecil. Operasi yang melebihi satu atau
dua halaman adalah terlalu besar. Dengan memecah operasi menjadi bagian bagian
lebih kecil, kita dapat mengguna ulang bebereapa bagian meski seluruh operasi
tidak di guna ulang.
3. Jaga agar operasi konsisten. Operasi operasi serupa seharusnya
menggunakan nama,kondisi, urutan argumen, tipe data, nilai krim, dan kondisi
kesalahan yang sama.
4. Pemisahan kebijakan dan implementasi. Operasi kebijakan
melakukan keputusan. Operasi kebijakan mengendali alih di antara operasi
operasi implementasi. Operasi kebijkan harus memeriksa status dan kesalahan,
tidak melakukan implementasi atau kalkulasi mentasi algoritma kompleks secarara
langsung. Operasi kebijakan sangat bergantung aplikasi, sederhana dan mudah di
pahami. Operasi implentasi melekukan operasi operasi rinci spesifik tanpa tahu
kenapa melakukan. Jika operasi implementasi menemui kesalahan, operasi hanya
melakukan setatus, tidak melakukan aksi kesalahan. Jangan menggabungkan operasi
kebijakan dan implementasi di satu
operasi.
5. Menyediakan cakupan yang seragam. Jika kondisi masukan dapat
terjadi di beragam kombinasi, tulis operasi untuk seluruh kombinasi, tidak
hanya untuk saat itu. Contoh jika kita ingin menulis operasi memperoleh
elementerhair di list maka kitajuga menulis operasi memperoleh elemen
pertama.
6. Perlebar operasi sebesar mungkin. Coba untuk generalisasi tipe
argumen, prekondisi dan konstrain, asumsi cara kerja operasi dan konteks
operasi. Buat aksi berati untuk nilai kososng, nilai batas dan nilai di luar
batas.
7. Menghindari infor masi global. Meminimkan pengacuan eksternal.
7.3.2
Kemampuan Perluasan
Pengkapsulan
Kelas (ADT)
Kelas ADT di kapsulkan
jika strutur internal tesembunyi dar ADT-ADT lain. Hanya metode metode di kelas
ADT itu hanya mengakses implementasi.
Penyembunyian
struktur data
Jangan mengeksport
struktur data metode. Struktur data internal spesifik algoritma metode. Jika
kita mengeksport, kita membatasi fleksibilitas untuk berubah bagi algoritma
itu.
Pembedaan
operasi publik dan privat
Kita harus membedakan
operasi publik dan privat. Operasi publik tampak dari luar ADT dan antar muka
di publikasikan. Sekali operasi publik di gunakan ADT lain maka sangat mahal
untuk mengubah antarmuka. Operasi privat adalah internal ADT untuk membantu
mengimplementasi operasi publik.
7.3.3
Ketangguhan
Kita memrogram dengan
tujuan memperoleh efisiensi penulisan metode, namun tidak boleh mengorbankan
ketangguhan. Metode disebut tegar jika tidak gagal meski menerima para meter
tidak benar. Ketangguhan melawan bug dapat trade-of (bertentangan)
denagan tujuan efisiensi. Ketangguhan terhadap kesalahan pemakai tidak boleh di
korbankan hanya untuk memperoleh efisiensi.
Perlindungan
dari kesalahan
Perangkat lunak seharusnya
melindungi diri dari masukan tidak benar. Masukan tidak benar seharusnya tidak
pernah membuat sistem menjadi crash. Sembarang metode yang menerima
masukan harus melekukan validasi masukan sehingga dapat menghindari petaka yang
di sebabkan masukan itu.
Perancangan metode harus
mempedulikan dua macam kondisi kesalahan, yaitu :
1. Kesalahan pemakai aplikasi, kesalahan ini di definisikan selama
analisis dan laporan kondisi ini ada di domain masalah.
2.
Kesalahan sistem di
level rendah berkaitan dengan aspek
pemprograman metode. Kesalahan ini antara lain di sebabkan kesalahan sistem
operasi seperti kesalahan alokasi memori kesalahan masukan /keluaran file, dan
kegagalan perangkat keras. Program harus memriksa kesalahan kesalahan ini dan
mencoba mati dengan degradasi secara perlahan dan nyaman.
Bahasa pemrograman
orientasi objek strongly-type menyediakan perlindungan lebih besar
terhadap kesalahan tipe.
Optimasi
dilakukan setelah program berjalan benar
Kita melakukan
optimasi program setelah program berjalan berjalan. Jangan melakukan optimasi
program sampai kita memperoleh program yang telah bekerja benar.
Validasi
argumen
Operasi yang
tersedia untuk pemakai harus memriksa argumen argumen untuk mencegah kegagalan.
Metode internal dapat mengasumsi argumen di berikan secara absah untukalasan
efisiensi.
Penghindaran
batasan terdefinisi
Kita
menghindari batasan terdefinisi lebih dulu. Bila mungkin gunakan alokasi memori
diamis untuk mencipta struktur data yang tidak mempunyai batas. Selama
perancangan, memprediksi kapasitas maksimum adalah halyang sulit.
Fasilitas
debuging dan monitoring
Kita seharusnya
melengkapi program dengan fasilitas debugging, statistik dan monotoring.
7.4 Petunjuk Pemprogram
Pemprogram aplikasi yang besar dan
kompleks memerlukan kerja tim yang kompak. Berikut inin adalah petunjuk bagus
untuk pemprogram.
1.
Jangan memulai pemprogram bila belum siap. Adalah
hal yang panting untuk melengkapi proses perancangan sebelum implementasisecara
tuntas. Semua metodologi pengembangangan menekankan pentingnya perancangan
memadahi lebih dulu, kemudian melakukan pengkodean.
2.
Jaga agar metode metode mudah di pahami. Metode
mudah di pahami jika orang yang bukan pencipta metode dapat memahamikode yang
di tulis. Menjaga metode berukuran kecil dan koheren membantu sasaran ini.
3.
Buat agar metode mudah di baca. Pemberian nama
variabel yang memiliki arti membantu sasaran ini.
4.
Gunakan nama yang sama debgan yang di gunakan di
model objek.
5.
Pilihlah nama identifier
secara berhati hati.
6.
Gunakan petunjuk pemprogram yang telah di pakai
tim.
7.
Lakaukan pemaketan ke modul. kelompokan fungsi
fungsi serupamenjadi satu modul.
8.
Lakukan dokumentasi terhadap kelas (ADT) dan
metode.
9.
Lakukan publikasi spesifikasi.
7.5 Pustaka dan “Don’t Reinvent The Wheel”
Ketersediaan pustaka berarti banyak komponen tidak
perlu di implementasi ulang oleh pemprogram. Struktur seperti set, dynamic array, list, queue, stack,
dictionary, tree, dan sebagainya biasanya telah di sediakan paket
kompilator. Ini biasa di sebut kelas wadah (container)
yang berguna sebagai kerangka kerja untuk mengorganisasi koleksi.
Bashasa
C++ memulai standirasi pustaka seperti STL (standart
template library),. Selain itu lingkungan bahasa pemprograman seperti
microsoft visual C++ menyediakan pustaka MFC (Microsoft foundation class), ATL (active template library), Borland C++ menyediakan OWL (object windows library), Delphi
menyadiakan komponen, Java menyediakan
JFC (Java foundation class).
Kita
hendaklah memantfaatkan pustaka semaksimal mungkin. Bila tidak tersedia di
pustaka standar, uahakan untuk dapat memperoleh pustaka pihak ketiga yang apat
dihandalkan trutama yang terdapat kode sumber. Bila ternyaryata keperluan kita
begitu spesifik maka buatlah pustaka sendiri berdasar analisis dan rancangan
domain. Basis representasi adalah pustaka standart di bahasa yang di gunakan.
Jangan
berusaha untuk menemukan roda pedati yang telah di temukan ber bentuk
lingkaran.
1 komentar:
makasih sangat membantu gan :)
Posting Komentar