III-1
ANALISIS DAN PERANCANGAN
Pada bab ini akan dibahas mengenai analisis secara umum, analisis kebutuhan perangkat lunak dan penjelasan mengenai perancangan perangkat lunak.
3.1 Analisis Masalah Umum
Perangkat lunak yang akan dibangun akan menerima input dari user berupa beberapa baris program, dan akan menghasilkan output berupa sebuah report. Seluruh proses yang terjadi dalam simulasi tidak diperlihatkan secara langsung, tetapi dimasukkan ke dalam report yang dibuat melalui blok yang tugasnya melihat performa sistem. Report yang dihasilkan akan berupa suatu file teks.
GPSS direpresentasikan dalam blok operasi dan control statement yang selalu memiliki field sebagai atribut. Hal ini mirip dengan fungsi dan prosedur pada bahasa - bahasa pemrograman yang ada sekarang. Jadi operasi blok dan control statement pada GPSS dapat direpresentasikan sebagai fungsi atau prosedur.
Seperti terlihat pada bab II, GPSS terdiri dari blok operasi yang saling terkait satu sama lain dalam sekumpulan baris program. Untuk itu dibutuhkan suatu pembaca yang dapat memahami perintah-perintah yang ada didalamnya. Dengan demikian program berjalan sesuai dengan masukan dari user.
Karena proses dalam simulasi tidak ditampilkan, maka secara umum cara kerja perangkat lunak dapat dijabarkan sebagai berikut :
1. Dibuat sebuah list yang berisi waktu pembuatan transaksi (waktu transaksi di-generate). List terurut membesar sesuai waktu pembuatan.
2. Dari list yang dibuat di atas, diambil satu dengan waktu pembuatan terkecil dan diproses sesuai dengan perintah yang ada. Proses ini berlangsung terus hingga transaksi dihancurkan. Jika waktu kedatangan transaksi lebih kecil daripada waktu proses transaksi sebelumnya pada sebuah blok, maka menunggu. Jika masuk dalam blok split, maka transaksi dijalankan satu per satu hingga terminasi atau masuk dalam blok gather atau assemble. Jika masuk dalam blok gather atau assemble, maka
transaksi menunggu hingga kondisi dipenuhi (menjalankan transaksi lain yang di-split hingga masuk blok itu juga).
3. Mengulangi langkah 1 dan 2 sebanyak transaksi yang dibuat..
Karena tidak diketahui variabel apa saja yang dibutuhkan dalam satu simulasi, maka seluruh variabel sudah dideklarasikan terlebih dahulu. Jumlah variabel yang disediakan adalah kapasitas maksimum untuk suatu entitas yang dapat ditampung oleh perangkat lunak.
Alur dari transaksi dalam blok juga dimasukan ke dalam list dengan tujuan memudahkan proses. Dengan demikian pembacaan yang dilakukan cukup satu kali dan hasilnya dimasukan ke dalam suatu list yang akan merepresentasikan baris-baris program yang dimasukan user. Di dalam list ikut disertakan alamat atau lokasi yang dapat diacu beberapa operasi. Control statement tidak dimasukan ke dalam list ini, melainkan list terpisah.
3.2 Spesifikasi Umum Kebutuhan Perangkat Lunak
Perangkat lunak yang diperlukan adalah perangkat lunak yang mampu membaca baris program dari user, memrosesnya dengan benar dan menghasilkan report. Report merupakan satu-satunya output yang dihasilkan perangkat lunak, jadi report mengandung seluruh data yang diinginkan user dan juga satu-satunya alat penilaian hasil kerja sistem sepenuhnya.
III.2.1 Fungsi Perangkat Lunak
Fungsionalitas yang harus dimiliki perangkat lunak adalah sebagai berikut : 1. Pembacaan dan pengelolaan baris-baris program
2. Proses yang terjadi di dalam simulasi 3. Report yang dihasilkan.
III.2.2 Tujuan Perangkat Lunak
Perangkat lunak yang akan dibuat memiliki tujuan sebagai berikut : 1. Menilai efektifitas GPSS
III.2.3 Masukan dan Keluaran Perangkat Lunak
Masukan untuk perangkat lunak adalah sebuah file teks yang berisi baris-baris program yang sesuai dengan ketentuan. Keluaran dari perangkat lunak adalah sebuah report yang berisi waktu simulasi, jumlah transaksi yang masuk ke setiap blok, kondisi dari setiap blok setelah simulasi selesai, isi dari entitas yang dipakai, dan beberapa keterangan yang berhubungan dengan entitas tersebut.
III.2.4 Batasan Perangkat Lunak
Batasan yang diberikan dalam perangkat lunak :
1. Perangkat lunak tidak sepenuhnya memberikan pesan kesalahan setiap kesalahan terjadi, dengan kata lain hanya menerima masukan dan memberikan keluaran berupa file teks
2. Setiap baris merupakan baris operasi tersendiri
3. Entitas group tidak diimplementasikan, sehingga blok yang berhubungan dengan group (JOIN, REMOVE, EXAMINE, SCAN, ALTER) juga tidak diimplementasikan 4. Blok lain yang tidak diimplementasikan adalah : SPLIT, MATCH, GATHER dan
ASSAMBLE
5. Control Statement yang tidak diimpementasikan adalah : SIMULATE, JOB, dan END
6. Blok PRIORITY diimpelementasikan, namun tidak berpengaruh terhadap hasil simulasi karena transaksi dijalankan satu per satu sehingga tidak mungkin ada dua transaksi dalam satu queue.
III.2.5 Model Fungsional Perangkat Lunak
Model fungsional perangkat lunak memberikan gambaran mengenai proses-proses yang terjadi di dalam perangkat lunak serta aliran data antar proses atau dengan entitas luar di dalam perangkat lunak. Model fungsional tidak menjelaskan implementasi dar proses-proses tersebut. Aliran data yang diberikan menjelaskan mengenai masukan dan keluaran dari setiap proses yang ada. Dengan demikian, hubungan antar proses terlihat jelas. Model fungsional yang digunakan adalah Data Flow Diagram (DFD).
III.2.5.1 Diagram Konteks / DFD Level 0
report instruksi User 1 Perangkat Lunak + Gambar III-1 Diagram Konteks
Pada diagram konteks ini terlihat interaksi antara user dan perangkat lunak. Untuk dapat menggunakan perangkat lunak, user harus memasukan baris program yang dibuatnya atau susunan instruksi untuk perangkat lunak. Perangkat lunak akan menghasilkan sebuah report mengenai hasil penjalanan instruksi yang dimasukan oleh user sebelumnya. Instruksi yang dimasukan harus sesuai dengan kriteria input perangkat lunak.
III.2.5.2 DFD Level 1
control statement
blok nama blok
hasil program hasil proses blok
Hasil pembacaan report instruksi User User 1 Pembacaan baris program 2 Pembagian blok dan control statement 3 Pembuatan report 4 Pemrosesan blok 5 Pemrosesan control statement 6 Pengeksekusian program
Gambar III-2 DFD Level 1
Proses yang terjadi di dalam perangkat lunak terbagi menjadi enam buah subproses, yaitu : 1. Pembacaan baris program
Kegiatan ini untuk membaca input dari user dan menterjemahkannya ke dalam suatu bentuk yang dapat dimengerti oleh sistem. Di sini juga setiap baris operasi dipisah-pisahkan sesuai dengan urutannya.
2. Pembagian blok dan control statement
Kegiatan ini bertujuan untuk memisahkan operasi blok dan control statement sehingga sistem dapat berjalan dengan benar.
3. Pemrosesan blok
Kegiatan ini memroses blok operasi secara satu per satu dan menghasilkan output dari blok itu.
4. Pemrosesan control statement
Kegiatan ini memroses control statement yang ada dan memberikan nilai dari control statement tersebut.
5. Pengeksekusian program
Kegiatan ini menjalankan simulasi sepenuhnya berdasarkan hasil pemrosesan blok dan control statement. Urutan simulasi berdasarkan pada urutan blok. Setiap blok yang akan diproses dikirim ke pemrosesan blok dan hasilnya dikembalikan. Kegiatan ini menghasilkan hasil dari simulasi yang akan dibuat menjadi suatu report pada proses selanjutnya.
6. Pembuatan report
Kegiatan ini mengubah hasil yang dihasilkan pada proses simulasi menjadi suatu report yang dapat dimengerti oleh user
Tabel entitas dan data besarta tabel proses DFD level 1 dapat dilihat pada dua tabel berikut : Tabel III-1 Data dan Entitas pada DFD Level 1
No. Nama Data / Entitas Keterangan
1. User Entitas eksternal yang menggunakan perangkat lunak 2. instruksi File teks yang menjadi masukan bagi perangkat
lunak. File teks ini harus berupa instruksi – instruksi dalam bahasa GPSS dan mengikuti aturan yang berlaku
3. hasil pembacaan Data ini berisikan hasil pembacaan terhadap masukan dari user yang diubah ke dalam bentuk yang dapat dijalankan dalam simulasi
4. control statement Data ini berisikan hasil pembacaan yang berupa control statement, yang dipisahkan dari blok
5. blok Data ini berisikan hasil pembaccan yang berupa blok, yang dipisahkan dari control statement
6. nama blok Data ini berisi nama blok dan parameter – parameter yang mempengaruhi proses pemrosesan blok
7. hasil proses blok Data ini membawa hasil proses blok yang merupakan nilai yang mempengaruhi simulasi
8. nilai dari control statement Data ini berisikan nilai dari control statement yang merupakan pengontrol dari proses simulasi
9. hasil program Data ini berisikan hasil dari proses simulasi secara keseluruhan yang masih berupa keluaran mentah dari perangkat lunak
No. Nama Data / Entitas Keterangan
10. report Data ini berisikan hasil proses simulasi yang telah diubah ke dalam file teks yang dapat dilihat dan dimengerti oleh user
Tabel III-2 Proses pada DFD Level 1
No. Proses Data Masukan Data Keluaran Keterangan 1. Pembacaan
baris program
instruksi hasil pembacaan
Membaca masukan input dari user dan mengubahnya ke dalam bentuk yang dapat dijalankan atau dimengerti perangkat lunak secara langsung 2. Pembagian blok dan control statement hasil pembacaan blok, control statement
Memisahkan antara blok dan control statement yang kemudian akan diproses secara terpisah 3. Pembuatan
report
hasil program report Mengeluarkan hasil eksekusi program atau simulasi kepada user, dengan kata lain mengubah hasil eksekusi menjadi bentuk teks yang dapat dimengerti user
4. Pemrosesan blok
nama blok hasil proses blok
Memproses blok sesuai dengan nama dan fungsinya masing – masing dan mengembalikan hasil dari proses itu ke dalam Pengeksekusian program 5. Pemrosesan control statement control statement nilai dari control statement
Memproses control statement sesuai dengan nama dan fungsi dari masing –masing control statement dan mengembalikan nilai yang dihasilkan ke dalam proses Pengeksekusian program 6. Pengeksekusian program blok, hasil proses blok, nilai dari control statement nama blok, hasil program
Mengatur penjalanan dari simulasi dengan memproses blok dan mengambil nilai dari control statement untuk menjalankan simulasi secara bertahap (blok per blok) sampai selesai dan mengeluarkan hasil
3.3 Perancangan Perangkat Lunak
III.3.1 Perancangan Arsitektur
Arsitektur sistem memiliki tiga buah proses utama, yaitu pembacaan instruksi user, penjalanan dari instruksi tersebut dan penghasilan report dari penjalanan tersebut.
1. Pembacaan instruksi user
Sistem akan membaca instruksi menggunakan suatu mesin kata dan kemudian memasukkan hasil pembacaan ke dalam suatu tempat yang telah tersedia. Tempat
penyimpanan ini merupakan representasi dari instruksi-instruksi yang ada dalam bentuk yang lebih dipahami oleh sistem. Secara garis besar, metode pembacaan instruksi adalah sebagai berikut :
a) Membaca instruksi user dan memasukannya ke dalam list serta membuang komentar yang ada
b) Membedakan blok dan control statement 2. Penjalanan instruksi
Sistem akan menjalankan tahap simulasi dengan menggunakan blok dan control statement yang didapat dari proses pembacaan. Proses yang terjadi sangat bergantung pada instruksi masukan user.
3. Penghasilan report
Setelah proses simulasi selesai, maka hasil dari simulasi tersebut akan dibuat berupa report yang berisi waktu simulasi, perhitungan transaksi dalam blok, dan isi entitas.
Pembacaan Instruksi User
Penjalanan Instruksi Penghasilan Report
Masukan
Blok dan Control Statement
Hasil Simulasi Report
User
Gambar III-3 Arsitektur Sistem III.3.2 Perancangan Modul Perangkat Lunak
Perangkat lunak disusun atas modul-modul yang telah dijelaskan dalam DFD yang telah diberikan sebelumnya. Setiap modul akan terdiri dari beberapa submodul yang terdiri dari fungsi atau prosedur.
Perangkat lunak terdiri dari enam modul utama, yaitu modul pembaca, modul pembagi, modul pemroses blok, modul pemroses control statement, modul penjalanan instruksi, dan modul pembuat report. Keenam modul ini mewakili keenam proses pada DFD level 1.
III.3.2.1 Modul Pembaca
Modul ini membaca instruksi user (berupa file masukan) dan memasukannya ke dalam sebuah list untuk diproses kemudian.
Pembacaan instruksi
Procedure ReadInst( input namaFileMasukan : File , output ListofInst
: List) Deskripsi :
Memasukan instruksi dari file ke dalam list
I.S. namaFileMasukan merupakan file yang benar dan list kosong
F.S. ListofInst berisikan instruksi-instruksi dan beserta isi dari
field-nya.
III.3.2.2 Modul Pembagi
Modul ini membagi list hasil pembacaan menjadi dua, list blok dan list control statement. Masing-masing list kemudian akan diproses terpisah.
Pembagian instruksi
Procedure DivInst( input ListofInst : List , output ListofBlok :
List, ListofCtrlStmt : List) Deskripsi :
Membagi instruksi menjadi dua bagian, blok dan control statement I.S. ListofInst tidak kosong, ListofBlok dan ListofCtrlStmt kosong F.S. ListofBlok berisikan blok dan ListofCtrlStmt berisikan control
statement
III.3.2.3 Modul Pemroses Blok
Modul ini berisi seluruh blok yang dijelaskan pada bab II. Modul ini mengirimkan hasil dari blok tersebut ke proses selanjutnya. Secara umum bentuknya adalah :
Function namaBlok( input A,B,C,D,E,F,G,H : string)->transaksi
Deskripsi :
Memperbaharui nilai transaksi yang masuk dalam blok
I.S. Minimal satu dari field terisi (untuk beberapa blok : sembarang) F.S. transaksi terbaharui
III.3.2.4 Modul Pemroses Control Statement
Modul ini berisi seluruh control statement yang terdapat pada bab II. Modul ini memberikan nilai untuk setiap control statement. Secara umum, bentuknya adalah :
Procedure namaCtrlStmt( input A,B,C,D,E,F,G,H : string)
Deskripsi :
Menghasilkan nilai dari control statement I.S. Sembarang
F.S. nilai dari control statement masuk ke dalam proses simulasi
III.3.2.5 Modul Penjalanan Instruksi
Modul ini menjalankan simulasi jika ada perintah dari control statement dan menjalankan blok sesuai dengan urutan di dalam list. Control statement yang paling umum digunakan untuk menjalankan instruksi adalah START.
Penjalanan simulasi
Procedure Start( input A,B : string)
Deskripsi :
Menjalankan blok dan mengoutputkan hasil simulasi I.S. sembarang
F.S. simulasi selesai dijalankan dan semua hasil simulasi tertampung pada tempatnya masing-masing
III.3.2.6 Modul Pembuat Report
Modul ini membuat file report dari hasil penjalanan simulasi.
Pembuatan report
Procedure MakeRprt( input HslSimulasi : List , output namaFileRprt :
File)
Deskripsi :
Membuat sebuah file report I.S. sembarang