BAB III 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 digenerate). 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
III-1
III-2 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 2. Melihat performa GPSS di masa sekarang
III-3 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 instruksi User
report
1 Perangkat Lunak
+ Gambar III-1 Diagram Konteks
III-4 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
1 instruksi User
Pembacaan baris program
Hasil pembacaan
4 2 Pembagian blok dan control statement
Pemrosesan blok
nama blok
5 control statement
Pemrosesan control statement
blok
6 hasil proses blok
Pengeksekusian program
hasil program
3 report
Pembuatan report
User
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 dipisahpisahkan sesuai dengan urutannya.
III-5 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
3.
hasil pembacaan
4.
control statement
5.
blok
6.
nama blok
7.
hasil proses blok
8.
nilai dari control statement
9.
hasil program
File teks yang menjadi masukan bagi perangkat lunak. File teks ini harus berupa instruksi – instruksi dalam bahasa GPSS dan mengikuti aturan yang berlaku Data ini berisikan hasil pembacaan terhadap masukan dari user yang diubah ke dalam bentuk yang dapat dijalankan dalam simulasi Data ini berisikan hasil pembacaan yang berupa control statement, yang dipisahkan dari blok Data ini berisikan hasil pembaccan yang berupa blok, yang dipisahkan dari control statement Data ini berisi nama blok dan parameter – parameter yang mempengaruhi proses pemrosesan blok Data ini membawa hasil proses blok yang merupakan nilai yang mempengaruhi simulasi Data ini berisikan nilai dari control statement yang merupakan pengontrol dari proses simulasi Data ini berisikan hasil dari proses simulasi secara keseluruhan yang masih berupa keluaran mentah dari perangkat lunak
III-6 No. 10.
Nama Data / Entitas report
Keterangan 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
1.
Pembacaan baris program
instruksi
hasil pembacaan
2.
Pembagian blok dan control statement Pembuatan report
hasil pembacaan
blok, control statement
hasil program
report
4.
Pemrosesan blok
nama blok
hasil proses blok
5.
Pemrosesan control statement
control statement
nilai dari control statement
6.
Pengeksekusian blok, hasil program proses blok, nilai dari control statement
3.
nama blok, hasil program
Keterangan Membaca masukan input dari user dan mengubahnya ke dalam bentuk yang dapat dijalankan atau dimengerti perangkat lunak secara langsung Memisahkan antara blok dan control statement yang kemudian akan diproses secara terpisah Mengeluarkan hasil eksekusi program atau simulasi kepada user, dengan kata lain mengubah hasil eksekusi menjadi bentuk teks yang dapat dimengerti user Memproses blok sesuai dengan nama dan fungsinya masing – masing dan mengembalikan hasil dari proses itu ke dalam Pengeksekusian program Memproses control statement sesuai dengan nama dan fungsi dari masing –masing control statement dan mengembalikan nilai yang dihasilkan ke dalam proses Pengeksekusian 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
III-7 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. User
Masukan
Blok dan Control Statement
Report
Penghasilan Report
Pembacaan Instruksi User
Hasil Simulasi
Penjalanan Instruksi
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-8
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-9 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 F.S. namaFIleRprt berisi hasil dari penjalanan simulasi.