IMPLEMENTASI
PERANGKAT LUNAK
TUJUAN
1. Mengetahui aktivitas pada tahapan
implementasi Perangkat Lunak
2. Mengetahui standar pemrograman
3. Mengetahui konsep modularitas program
4. Mengetahui konsep abstraksi data
A.1. AKTIVITAS
IMPLEMENTASI
Merupakan sekumpulan
aktivitas di mana rancangan perangkat lunak yang telah dibuat pada tahap
perancangan kemudian dikodekan ke dalam bentuk kode program dengan menggunakan
bahasa pemrograman tertentu agar dapat dijalankan pada komputer.
Fondasi dari
aktivitas ini adalah
pemrograman. Tools untuk
membuat program disebut
bahasa pemrograman. Programmer membuat program dengan panduan dokumentasi
rancangan perangkat lunak, namun pada
umumnya programmer juga memeriksa semua dokumen dari tahapantahapan sebelumnya
(semisal SKPL) untuk memeriksa konsistensi dari dokumentasi-dokumentasi yang
ada.
A.2. AKTIVITAS PEMROGRAMAN
Program adalah
serangkaian ekspresi yang disusun menjadi kesatuan prosedur berupa urutan
langkah untuk menyelesaikan suatu permasalahan dan diimplementasikan dalam
bentuk bahasa pemrograman sehingga dapat dijalankan pada komputer. Adapun
bahasa pemrograman merupakan tatacara penulisan program. Pada bahasa
pemrograman terdapat dua factor penting, yakni:
- Sintaks, yaitu aturan-aturan
gramatikal yang mengatur tatacara penulisan ekspresi/statemen.
- Semantik, yaitu aturan-aturan untuk
menyatakan suatu arti.
A.2.1. STANDAR PROGRAM
YANG BAIK
Standar pemrograman
dibutuhkan untuk menciptakan suatu program dengan portabilitas yang tinggi
sehingga memudahkan dalam
merancang dan merawat
program serta meningkatkan
efektivitas penggunaan peralatan komputer. Beberapa standar dasar
penilaian untuk sebuah program dikatakan baik antara lain:
1. Teknik pemecahan masalah
2. Penyusunan program
3. Perawatan program
4. Standar prosedur
A.2.1.1. STANDAR TEKNIK
PEMECAHAN MASALAH
Setelah masalah
dipahami dengan baik, seorang
pemrograman membutuhkan suatu teknik untuk memecahkan masalah tersebut.
Ada dua pendekatan yang umum digunakan, yakni:
- Teknik Top-Down merupakan teknik
pemecahan masalah di mana suatu masalah yang kompleks dibagi-bagi menjadi
beberapa struktur hingga unit yang paling kecil, setelah itu kemudian disusun
langkahlangkah untuk menyelesaikan masalah secara rinci. Teknik semacam ini
digunakan pada metode pemrograman terstruktur
- Teknik Bottom-Up merupakan teknik
pemecahan masalah yang berkebalikan dengan teknik Top-Down di mana penyelesaian
masalah dimulai dari hal-hal yang bersifat khusus, kemudian naik ke bagian
yangbersifat umum. Teknik semacam ini digunakan pada metode pemrograman
berorientasi objek Setelah memilih teknik
pemecahan masalah, pemrogram
mulai menyusun langkah-langkah untuk memecahkan masalah, yang disebut dengan
algoritma. Algoritma yang baik memiliki ciri-ciri sebagai.
berikut:
- Tepat, benar, sederhana, standar, dan
efektif
- Logis, terstruktur, dan sistematis
- Semua operasi terdefinisi
- Semua proses harus berakhir setelah
sejumlah langkah dilakukan
- Menggunakan bahasa standar sehingga
tidak ambigu
A.2.1.2. STANDAR
PENYUSUNAN PROGRAM
Beberapa faktor yang
menjadi standar dalam penyusunan program
antara lain:
- Kebenaran logika dan penulisan
Program yang disusun
harus memiliki kebenaran logika dalam pemecahan masalah maupun penulisan kode
program. Program harus tepat dan teliti dalam perhitungan sehingga hasilnya
dapat dipercaya
- Waktu minimum untuk penulisan program
Penulisan program harus
memiliki waktu minimum, artinya waktu minimal yang harus tersedia untuk
menuliskan kode program dari awal hingga siap untuk dieksekusi
- Kecepatan maksimum eksekusi program
Agar program memiliki
kecepatan eksekusi maksimum, perlu diperhatikan beberapa hal antara lain bahasa
pemrograman yang digunakan, algoritma yang disusun, teknik pemrograman yang
dipakai, dan perangkat keras yang digunakan. Kecepatan maksimum juga dapat
ditingkatkan dengan memperbaiki struktur program misalkan:
§ Menghindari
proses pengujian yang berulang-ulang secara percuma
§ Meletakkan
syarat pengujian yang akan menolak data dengan jumlah terbanyak sebagai syarat
pengujian pertama, syarat pengujian dengan jumlah terbanyak kedua sebagai
syarat pengujiankedua, dan seterusnya
§ Memperbaiki
susunan baris program guna meningkatkan kecepatan eksekusi
- Ekspresi penggunaan memori
Semakin sedikit
penggunaan memori, semakin cepat program dieksekusi. Untuk meminimumkan
penggunaan memori, maka perlu diperhatikan:
§ Menggunakan
tipe data yang cocok untuk kebutuhan pemrograman
§ Menghindari
penggunaan variabel berindeks secara berulang kali
-
Kemudahan merawat dan mengembangkan
program
Program yang memiliki
struktur yang baik, struktur data jelas, dan dokumentasi yang lengkap dan mudah
dipahami, akan mudah untuk dirawat dan dikembangkan
- User friendly
Program yang
baik harus memiliki
layanan untuk mempermudah
pemakai untuk menggunakannya,
misalkan layanan online help
- Portabilitas
Program yang baik harus
dapat dijalankan pada kondisi platform yang berbeda-beda, baik itu sistem
operasi maupun perangkat keras
- Modular
Pada pendekatan
pemrograman, masalah dibagi-bagi menjadi unit terkecil, yang disebut modul
untuk menyederhanakan pengimplementasian langkah-langkah pemecahan
masalah dalam bentuk program
A.2.1.3. STANDAR
PERAWATAN PROGRAM
Beberapa standar
yang harus dipenuhi
agar memudahkan pemrogram
dalam merawat dan mengembangkan program antara lain:
1. Dokumentasi
Dokumentasi merupakan
catatan dari setiap langkah pekerjaan membuat program dari awal hingga akhir.
Dokumentasi ini penting untuk memudahkan menelusuri adanya kesalahan maupun
untuk pengembangannya. Dokumentasi yang
baik akan memberikan informasi yang memada
2. Penulisan Instruksi
Untuk memudahkan perawatan program,
sebaiknya penulisan program
dilakukan sebagai berikut:
§ Menuliskan
satu instruksi pada satu baris program
§ Memisahkan modul-modul
dengan memberikan spasi
beberapa baris untuk mempermudah pembacaan
§ Membedakan
bentuk huruf dalam penulisan program
§ Memberikan
tabulasi yang berbeda untuk penulisan instruksiinstruksi yang berada pada loop
atau struktur kondisional
§ Menghindari
penggunaan konstanta dalam penulisan rumus, jika konstanta tersebut mungkin
berubah
§ Melakukan
pembatasan jumlah baris instruksi per moduli sehingga orang lain dapat mengerti
dan memahami alur logika program
A.2.1.4. STANDAR
PROSEDUR
Penggunaan prosedur
standar akan memudahkan bagi pengembang program untuk mengembangkan program
tersebut
A.3. MODULARITAS
Modularitas merupakan
sebuah konsep untuk memecah program menjadi modul-modul kecil di mana
masing-masing modul berinteraksi melalui antarmuka modul. Dengan adanya
modularitas, kesalahan di satu bagian program dapat dikoreksi tanpa perlu
mempertimbangkan bagian-bagian lainnya, program menjadi lebih sederhana sehingga
lebih mudah dipahami.
A.3.1. KRITERIA
MODULARITAS
Terdapat lima kriteria
modularitas, yakni:
1. Decomposibility
Kemampuan untuk
mendekomposisi masalah menjadi submasalah yang lebih sederhana dan dihubungkan
dengan struktur yang sederhana
2. Composability
Kemampuan membangun
modul-modul program yang kemudian dapat diintegrasikan menjadi program pada
lingkungan yang mungkin berbeda dengan saat modul tersebut dibangun
3. Understandability
Kemampuan menghasilkan
program di mana programmer dapat memahami masing-masing modul tanpa perlu
mengetahui detailnya
4. Continuity
Kemampuan meredam
propagasi perubahan, yaitu suatu kondisi
di mana perubahan kecil pada satu modul memicu perubahan hanya pada satu
modul atau sedikit modul yang terkait
5. Protection
Kemampuan meredam
kondisi abnormal hanya pada satu modul
A.3.2. ATURAN
MODULARITAS
Terdapat pula lima
aturan modularitas, antara lain:
1. Direct mapping
Struktur model yang ada
pada masing-masing tahap pengembangan perangkat lunak semestinya kontinyu,
dalam artian modul yang terdapat pada analisis masih merupakan modul pada tahap
perancangan dan tetap menjadi modul pada saat pemrograman
2. Few interfaces
Setiap modul seharusnya
berinteraksi dengan sesedikit mungkin dengan modul lain sebab jika terjadi
banyak interaksi antar modul akan meningkatkan propagasi perubahan
3. Small interfaces (weak coupling)
Untuk modul-modul yang
berkomunikasi, diusahakan informasi yang dipertukarkan pada saat komunikasi
adalah sesedikit mungkin sehingga mengurangi ketergantungan antar modul
3. Explicit interface
Kapan saja modul X dan
Y berkomunikasi maka komunikasi ini harus dari teks X atau Y atau keduanya
4. Information hiding
Pemrogram harus
merancang modul dengan sekelompok fitur pada suatu modul tampak pada modul
lain, sedangkan fitur lainnya diusahakan tersembunyi dari modul lain. Modul
lain hanya berhubungan dengan modul lewat deskripsi pada fitur yang terlihat
tersebut
A.3.3. PRINSIP
MODULARITAS
Terdapat juga lima
prinsip modularitas, yakni:
1. The Linguistic Modular Units principle
Modul harus merupakan
unit sintaks pada bahasa pemrograman yang digunakan. Prinsip ini umumnya dilanggar
karena itu pengembang
terpaksa harus melakukan
translasi atau restrukturisasi
terhadap model rancangan yang diperolehnya
2. The Self-Documentation Principle
Perancang modul harus
membuat semua informasi mengenai modul yang berkaitan terdapat pada modul
tersebut. Dokumentasi internal ini sangat penting untuk proses pengembangan dan
pemeliharaan perangkat lunak
3. The Uniform Access Principle
Semua layanan modul
seharusnya tersedia melalui notasi yang seragam tanpa memperhatikan
pengimplementasian layanan tersebut apakah untuk keperluan penyimpanan atau
komputasi
4. The Open-Closed Principle
Modul harus bersifat
terbuka dalam artian terbuka untuk dikembangkan serta bersifat tertutup
dalam artian komunikasi
antar modul hanya
melalui antarmuka yang
telah ditetapkan mekanismenya
5. The Single Choice Principle
Kapan saja program harus
mendukung beberapa alternatif, satu dan hanya satu modul pada program yang
mengetahui daftar lengkap dari yang dimilikinya
A.3.4. KRITERIA MODUL
YANG BAIK
Beberapa kriteria dari
modul yang baik antara lain:
1. Kohesif
Modul dikatakan kohesif
jika fungsionalitasnya terdefinisi
dan terfokus dengan baik.
Kohesi mengacu pada derajat
elemen-elemen modul yang
saling berhubungan. Modul
kohesif melakukan satu tugas tunggal pada suatu prosedur program yang memerlukan
sedikit interaksi dengan prosedur yang sedang dilakukan pada bagian lain
program.
Modul yang melakukan
serangkaian tugas yang saling berhubungan secara lepas disebut sebagai
kohesif koinsidental.
Modul yang melakukan tugas yang
berhubungan secara logis disebut kohesif secara
logis. Bila modul
berisi tugas-tugas yang dieksekusi dalam jangka waktu sama, maka modulmodul
tersebut disebut kohesif temporal.
Bila elemen pemrosesan
dari suatu modul dihubungkan dan dieksekusi dalam suatu urutan yang
spesifik, maka akan
muncul kohesi prosedural.
Dan bila semua
elemen pemrosesan berkonsentrasi
pada satu area pada suatu struktur data, maka terjadi kohesi komunikasional
2. Loosely coupled
Coupling mengacu kepada derajat modul-modul
saling berkomunikasi. Modul-modul
harus seminimal mungkin berkomunikasi dengan modulmodul lain. Maka dari
itu nilai derajat coupling harus sekecil mungkin
3. Enkapsulasi
Modul harus memenuhi
persyaratan information hiding. Atribut dari modul seharusnya tidak secara
langsung tersedia untuk modul-modul lain. Atribut-atribut modul hanya tersedia
ke modulmodul lain melalui antarmuka yang telah ditetapkan. Enkapsulasi
mengimplikasikan pemahaman implementasi
modul tertentu tidak
dibutuhkan bagi pemakai
modul sehingga tidak
perlu mengetahui detail dankeseluruhan isi modul
5. Reuseability
Merupakan sasaran
strategis rekayasa perangkat lunak dan dapat meningkatkan produktivitas
pengembangan perangkat lunak. Implikasi dari reuseability adalah fungsionalitas
modul harus segeneral dan seluas mungkin sehingga dapat digunakan oleh modul
lain dan dapat mengurangi waktu dan biaya yang dikeluarkan
A.4. ABSTRAKSI DATA
Abstraksi data
merupakan suatu cara
untuk menggambarkan data
dengan memisahkannya dari implementasinya. Salah satu jenis abstraksi
data adalah tipe data dan juga ADT (Abstract Data Type).
Dengan abstraksi,
seorang pemrogram tidak memperdulikan bagaimana data itu diimplementasikan,
contohnya tipe data int merupakan abstraksi dari sekumpulan bit di memori
sebagai bilangan bulat.
Tipe data merupakan
sekumpulan nilai dan operasi yang diasosiasikan pada nilai-nilai itu. Sedangkan
ADT mendeklarasikan sekumpulan nilai, operasi pada nilai, dan aksioma-aksioma
yang senantiasa dipenuhi oleh operasioperasi tersebut. ADT tidak mendefinisikan
cara nilai tersebut diimplementasikan sehingga mungkin terdapat beberapa
implementasi berbeda untuk ADT yang sama.
A.4.1. CIRI-CIRI DARI
ADT ADALAH:
- Berisi struktur data dan
operasi-operasi terhadap struktur data tersebut
- Menyediakan pengkapsulan
- Menyediakan information hiding
- Menyediakan abstraksi
- Tidak menspesifikasikan implementasi
struktur data
- Menspesifikasikan perilaku dari ADT
A.4.2. KEGUNAAN ADT
ANTARA LAIN:
- ADT menyediakan dasar untuk
modularitas perangkat lunak
- Mengidentifikasikan setiap modul
dengan implementasi ADT, yaitu deskripsi sekumpulan objek dengan antarmuka
bersama
- Antarmuka didefinisikan oleh
sekumpulan operasi yang
dibatasi oleh properti-properti yang abstrak
- Masing-masing operasi
diimplementasikan menggunakan satu representasi dari ADT
TERDAPAT TIGA KOMPONEN
DALAM IMPLEMENTASI ADT, YAKNI:
- Spesifikasi ADT berisi fungsi-fungsi,
aksioma-aksioma, dan prakondisiprakondisi
- Pemilihan representasi bagi ADT
- Sekumpulan subprogram,
masing-masing mengimplementasikan salah
satu fungsi pada spesifikasi ADT yang beroperasi pada
representasi yang telah dipilih
0 komentar:
Posting Komentar