BAB 3
ANALISIS DAN PERANCANGAN PROGRAM
3.1 Perancangan Program
3.1.1 Perancangan Perangkat Lunak
Perangkat lunak atau piranti lunak adalah:
1. Program komputer yang berfungsi sebagai sarana interaksi antara pengguna dan perangkat keras, penerjemah peintah-perintah yangdijalankan pengguna komputer untuk diteruskan kea tau diproses oleh perangkat keras.
2. Perintah (berupa sebuah program) yang bila dieksekusi memberikan sebuah fungsi dan unjuk kerja seperti yang diinginkan oleh si pembuat.
3. Sruktur data yang memungkinkan program memanipulasi informasi secara proporsioanal.
Menurut Sommerville (2001, p6), perncangan perangkat lunak adalah disiplin perancangan yang berhubungan dengan semua aspek dari produksi perangkat lunak dari tahap awal spesifikasi sistem sampai dengan pemeliharaan setelah sistem dalam tahap berjalan.
Perangkat lunak dibagi menjadi 3 tingkatan:
1. Tingkatan program aplikasi (application program misalnya Microsoft office).
2. Tingkatan system operasi (operating system misalnya Microsoft windows).
3. Tingkatan bahasa pemrograman (yang dibagi lagi atas bahasa pemrograman tingkat tinggi seperti pascal dan bahasa pemrograman tingkat rendah seperti bahasa rakitan).
Perangkat lunak umumnya digunakan untuk mengontrol perangkat keras, melakukan perhitungan (memproses), berinteraksi dengan perangkat lunak yang lebih mendasar lainnya seperti system operasi, dan bahasa pemrograman, dan lain-lain.
3.1.2 Daur Hidup Perangkat Lunak
Salah satu model perancangan perangkat lunak adalah dengan menggunakan model air terjun (waterfall model). Menurut Sommerville (2001, p45), tahap-tahap utama dalam model air terjun yang menggambarkan aktivitas dasar pengembangan perangkat lunak adalah sebagai berikut:
Analisis dan penentuan
Desain Sistem dan Perangkat
Implementasi dan Pengujian
Integrasi dan Pengujian
Pengoperasian dan
Gambar 3.1 Daur Hidup Perangkat Lunak (Sumber: Sommerville, 2001, p45) a) Analisis dan Penentuan Kebutuhan (Requirements)
Tugas, kendala, dan tujuan system ditentukan melalui konsultasi dengan pemakai sistem. Kemudian ditentukan cara yang dapat dipahami, baik oleh user maupun penulis.Dalam hal ini menggunakan bahasa pemrograman Java b) Desain Sistem dan Perangkat Lunak (Design)
Proses desain sistem terbagi dalam kebutuhan perangkat keras dan
perangkat lunak. Hal ini menentukan arsitektur perangkat lunak secara keseluruhan. Desain perangkat lunak mewakili fungsi sistem perangkat lunak dalam suatu bentuk yang dapat ditransformasikan ke dalam satu atau lebih program yang dapat dieksekusi.
Penulis membuat sebuah desain program menggunakan Java dan membuat flowchart jalannya program.
c) Implementasi dan Pengujian Unit (Implementation)
Dalam tahap ini, desain perangkat lunak direalisasikan dalam suatu himpunan program atau unit-unit program. Pengujian unit mencakup kegiatan verifikasi terhadap suatu unit sehingga memenuhi syarat spesifikasinya.
d) Integrasi dan Pengujian Sistem (Verification)
Unit program secara individual diintegrasikan dan diuji sebagai satu system yang lengkap untuk memastikan bahwa kebutuhan perangkat lunak telah terpenuhi. Setelah pengujian, sistem perangkat lunak disampaikan kepada pengguna.
e) Pengoperasian dan Pemeliharaan (Maintenance)
Secara normal, walaupun tidak selalu diperlukan, tahap ini merupakan bagian siklus hidup yang terpanjang. Sistem telah terpasang dan sedang
dalam penggunaan. Pemeliharaan mencakup perbaikan kesalahan yang tidak ditemukan dalam tahap-tahap sebelumnya, meningkatkan implementasi unit-unit sistem dan mempertinggi pelayanan sistem yang disebabkan oleh penemuan kebutuhan baru.
3.2 Alat Bantu Perancangan
3.2.1. State transition Diagram (STD)
State transition diagram menggambarkan jalannya suatu program dalam kondisi tertentu. Notasi yang digunakan adalah sebagai berikut:
State menunjukkan satu atau lebih kegiatan atau keadaan atau atribut yang menjelaskan bagian tertentu dari program.
Kondisi/aksi
Anak panah berarah menunjukkan perubahan state yang disebabkan oleh aksi (action) terhadap kondisi (condition) tertentu. Kondisi merupakan suatu event pada lingkungan eksternal yang dapat dideteksi oleh suatu sistem, misalnya
sinyal, interupsi, atau data. Hal ini akan menyebabkan perubahan dari suatu state ke state lainnya atau satu aktivitas ke aktivitas lainnya. Aksi merupakan hal yang dilakukan oleh sistem jika terjadi perubahan state atau merupakan reaksi terhadap kondisi. Aksi dapat menghasilkan output, tampilan pesan pada layar, kalkulasi atau kegiatan lainnya.
3.2.2. Pseudocode
Pseudocode adalah suatu bahasa pemrograman yang informal dan sangat fleksibel, yang tidak dimaksudkan untuk eksekusi pada mesin, tetapi hanya digunakan untuk mengatur pemikiran programmer sebelum melakukan pengkodean (Page-Jones. 1980, p11).
Pseudocode dapat merupakan alternatif lain dalam perancangan perangkat lunak di samping alat-alat bantu berupa diagram. Tidak ada standarisasi dalam hal penulisan pseudocode. Programmer dapat menulisnya dalam bahasa apa saja yang mereka suka, dipadukan dengan bahasa pemrograman tertentu.
Programmer juga bebas menggunakan teknik dan aturannya sendiri. Aturan untuk menulis pseudocode adalah sebagai berikut:
z Pernyataan ditulis dalam bahasa inggris sederhana.
z Seiap perintah ditulis pada baris tersendiri.
z Kata kunci atau identasi (penulisan yang menjorok ke dalam) digunakan untuk menandai struktur control khusus.
z Setiap bimbingan perintah ditulis dari atas ke bawah dengan hanya satu awal dan satu akhir program.
z Kumpulan pernyataan-pernyataan dapat dibentuk dalam modul-modul yang diberi nama tertentu.
3.3 Perancangan Sistem
3.3.1 Diagram Transisi Menu Aplikasi
Di bawah ini adalah diagram transisi keadaan sistem:
Diagram 3.1 STD Menu View
Diagram 3.2 STD Menu Create Menu Utama
view
Menu Utama
Create
Menu Utama
Create
Next
Diagram 3.3 STD Menu Next
Menu Utama
Clear
Diagram 3.4 STD Menu Clear
3.3.2 Rancangan Menu Aplikasi
Di bawah ini adalah perancangan untuk menu aplikasi yang akan dibuat softwarenya, di dalam menu ini akan dijabarkan tombol-tombol apa saja yang ada, serta urutan kejadian yang terjadi setelah penekanan tombol dilakukan.
Gambar 3.2 Rancangan Menu Aplikasi Create
View Clear
Next Menu Utama
3.3.3 Perancangan Layar Coloring Algorithm Menu
Nodes: Colors:
View
Display
Create Clear Next
Gambar 3.3 Tampilan Layar Program Menu Utama
Pada layar ini, user akan memilih banyaknya node dan warna yang diinginkan yang terdapat pada masing-masing combo box.
Node dalam program melambangkan banyaknya komputer.
Color melambangkan banyaknya software yang dilambangkan dengan warna.
Banyaknya node yang tersedia sebanyak 1-15 node. Sedangkan, banyaknya color yang tersedia sebanyak 1-10 warna. Dalam proses pemilihan ini perlu diperhatikan bahwa jumlah color tidak boleh melebihi jumlah node. Jika ternyata melebihi, maka akan muncul message dialog yang menyatakan bahwa jumlah color tidak boleh melebihi jumlah node.
ok
Invalid number of colors X Jumlah warna tidak boleh melebihi jumlah node
Gambar 3.4 Tampilan Layar Program invalid number of colors
Setelah memilih jumlah node dan color yang diinginkan, untuk menjalankan program maka tekan tombol ‘OK’. Setelah itu akan muncul gambar jaringan pada display sebelah kiri. Jika setelah itu menekan tombol ‘NEXT’ maka
akan muncul gambar jaringan pada display sebelah kanan.
3.4 Perancangan FlowChart
Di bawah ini adalah perancangan FlowChart dari program yang akan dibangun:
Mulai
clear
ok
Clear Ya
Tidak
OK
Clear
Delete gambar di display panel
Tekan Tombol OK/Clear
Display Panel Kosong?
Baca Jumlah Node
Baca Jumlah Warna
A
Tamplikan Kotak Peringatan
B C
Ya
Next tidak
Tekan tombol Next/Clear Jalankan Algoritma RANDOMIZATION
B
Jumlah Warna lebih besar dari
jumlah node?
A C
Jalankan Algoritma FLIPPING
Tampilkan Hasil pada Layar
Akhir
3.5 Perancangan Spesifikasi Proses
Untuk memperjelas proses-proses yang terjadi pada setiap modul terdapat dalam program, maka akan diperinci dengan spesifikasi modul di bawah ini:
Modul inisialisasi BEGIN
Set nilai awal untuk semua variable dan komponen.
END
Modul ok
Menunggu user memasukkan nilai inputan jumlah node dan jumlah warna.
Menunggu user menekan tombol ‘OK’
BEGIN
If tombol ”OK” dipilih then event handler untuk button click diaktifkan If display panel tidak kosong then tampilkan kotak peringatan
Else
Baca jumlah node dan jumlah warna.
If jumlah warna lebih besar dari jumlah node then tampilkan kotak peringatan
Else
Simpan kumpulan node ke dalam vector dengan menjalankan algoritma randomization.
END
Modul next BEGIN
Simpan kumpulan node ke dalam vector dengan menjalankan algoritma flipping.
END
Modul clear
Menunggu user menekan tombol Clear.
BEGIN
Me-reset tampilan display panel.
END
Modul randomization BEGIN
Inisialisasi vektor untuk menampung node-node yang dibuat.
For i=0 sampai jumlah node
If semua warna yang tersedia sudah dipakai then tentukan warna sebuah node secara random dari kumpulan-kumpulan warna yang tersedia.
Buat objek node.
Simpan objek node ke dalam vector.
Return vector yang sudah dibuat.
END
Modul flipping BEGIN
Baca jumlah sisi yang rusak pada kumpulan node-node di dalam vector awal.
For i=0 sampai jumlah node
Dapatkan vector sementara dengan eksekusi method TryFlipping untuk mencoba apakah sebuah node akan melakukan color flip.
If vector sementara tidak sama dengan null then set node-node dalam vector sementara ke vector awal.
Baca jumlah sisi yang rusak dari node-node yang ada di dalam vector awal.
END
Modul generate color BEGIN
For i=0 sampai jumlah warna
Tentukan R antara 1 sampai 255 secara random.
Tentukan G antara 1 sampai 255 secara random.
Tentukan B antara 1 sampai 255 secara random.
END
3.6 Perancangan Algoritma
Berikut ini akan dijelaskan perancangan algoritma randomization dan color flipping yang akan digunakan pada program:
3.6.1 Perancangan algoritma Randomization
Function Randomization(nColor, nNode, calcXY, R, G, B) Var vect := the empty set
For i := 0 till i <= nNode Var index
If i < nColor Then index := i Else
index = random(nColor)
Var color := new color (R, G, B)
Var position := calculate(i) from calcXy Var node := new Node
Add to vector
return vector;
nColor adalah jumlah warna yang tersedia.
nNode adalah jumlah node yang ada dalam jaringan.
calcXY merupakan variable yang digunakan untuk mendapatkan posisi X dan Y sebuah node pada saat digambar di display panel.
R, G, B adalah kumpulan nilai-nilai untuk membuat objek warna.
Pertama-tama, variable vect diinitialisasikan dengan nilai nil. I adalah sebuah variable counter yang akan melakukan operasi-operasi di dalam for loop sebanyak jumlah node yang ada. Variable index merupakan index untuk kumpulan nilai-nilai RGB. Jika nilai I lebih kecil dari jumlah warna, maka index yang
dipakai sama dengan nilai i. Namun jika tidak, maka nilai index akan didapatkan secara random dengan angka berkisar antara 0 sampai jumlah warna yang tersedia.
Variable color dibuat berdasarkan dengan nilai-nilai RGB. Nilai variable position didapatkan mengeksekusi metode calculate di dalam calcXY. Variable node dibuat berdasarkan color, posisi, dan informasi lainnya yang perlu diketahui oleh sebuah node. Kemudian, masukkan node yang sudah dibuat ke dalam variable vector.
3.6.2 Perancangan algoritma Color Flipping Function Flipping(random)
Var defectEdge := Get defective edges Var newSet := new empty set
Foreach j in random
Var color := get minority color Var node := get the node in random
Var temp := try to flip the color of the selected node If defect edge < defectEdge then
Set temp as the new set of nodes
defectEdge := get current defective edge return newSet
random merupakan kumpulan dari node-node yang dibuat oleh algoritma randomization. Variable defectEdge diinisialisasikan dengan mengeksekusi metode get defective edge. Variable newest diinisialisasikan dengan nilai nil.
Untuk setiap node di dalam random, dilakukan evaluasi color flipping.
Variable color diinisialisasikan dengan mengeksekusi metode get minority color.
Variable temp merupakan variable sementara dimana color flip sudah dilakukan oleh node tertentu.
Jika jumlah sisi yang rusak dari variable sementara lebih kecil dari jumlah sisi yang rusak sebelumnya, maka variable sementar ditetapkan sebagai kumpulan node-node yang baru.