SP112 - Analisa Sistem Informasi 08-09 / 1-22 PROCESS SPECIFICATION Setiap proses (bubble) di DFD harus memiliki process specification. Tanpa ini kita tidak akan mengetahui apa yang terjadi di dalam proses (bubble) tersebut. Banyak cara / metode yang dapat digunakan untuk menggambarkan proses tersebut. Metode yang digunakan untuk menggambarkan proses pada top level berbeda dengan metode yang digunakan untuk proses yang ada pada level yang paling bawah. SP112 - Analisa Sistem Informasi 08-09 / 2-22 Demikian pula ada beberapa istilah yang digunakan, yaitu : * Mini-spec (mini specifications) * Job-spec (job specifications) * Process descriptions * dll. Spesifikasi proses untuk level atas dapat meng-gunakan kalimat deskriptif namun pada level yang lebih rinci, yaitu pada proses paling bawah (functional primitive) membutuhkan spesifikasi yang lebih terstruktur dengan menggunakan kaidah - kaidah tertentu. SP112 - Analisa Sistem Informasi 08-09 / 3-22 Spesifikasi proses menjadi pedoman bagi programmer dalam membuat program (coding). Metode yang digunakan dapat berupa : Narasi, uraian proses dalam bentuk cerita Bahasa Indonesia / Inggris yang terstruktur Decision Table (Tabel Keputusan) Decision Tree (Pohon Keputusan) SP112 - Analisa Sistem Informasi 08-09 / 4-22 NARASI Penjelasan proses dalam bentuk kalimat : Untuk setiap pembelian dari pelanggan harap diperiksa : Apabila batas kredit dilampui maka periksa histori pembayarannya. Apabila historinya kurang baik maka di. Apabila historinya baik dan pembelian tidak melebihi 1 juta rupiah mintalah persetujuan manajer; bila lebih dari 1 juta rupiah maka di.
SP112 - Analisa Sistem Informasi 08-09 / 5-22 BAHASA INDONESIA TERSTRUKTUR Instruksi proses dengan Bahasa Indonesia : * JIKA MAKA * JIKA MAKA SELAIN ITU ---- * SELAMA LAKUKAN * ULANG AKHIR SELAMA SAMPAI SP112 - Analisa Sistem Informasi 08-09 / 6-22 * BUKA FILE... * BACA FILE... * BACA FILE... BERDASARKAN... * TULIS FILE... * TUTUP FILE... * HITUNG... * CETAK KE PRINTER... * TAMPIL KE LAYAR... Instruksi tidak mutlak (kaku), yang penting dapat dimengerti. * LAKUKAN KASUS KASUS KASUS AKHIR KASUS SP112 - Analisa Sistem Informasi 08-09 / 7-22 Contoh Bahasa Indonesia Terstruktur : MODUL Validasi_ JIKA Saldo_Piutang > Limit_Kredit MAKA JIKA Histori_Bayar = Buruk MAKA SELAIN ITU JIKA Nilai_Barang <= 1 juta MAKA minta_persetujuan_manajer SELAIN ITU SELAIN ITU pembelian_dilayani AKHIR MODUL SP112 - Analisa Sistem Informasi 08-09 / 8-22 STRUCTURED ENGLISH Instruksi proses dengan Bahasa Inggris : * IF THEN * IF THEN ELSE ---- * WHILE DO * REPEAT ENDWHILE UNTIL * DO CASE CASE CASE ENDCASE
SP112 - Analisa Sistem Informasi 08-09 / 9-22 * OPEN FILE... * READ FILE... * WRITE FILE... * REWRITE FILE... * SEARCH FILE... FOR... * LOCATE FILE... FOR... * PRINT... * DISPLAY... * INPUT... * CALCULATE... * COMPUTE... SP112 - Analisa Sistem Informasi 08-09 / 10-22 ELSE pembelian_dilayani DECISION TABLE Aturan Kredit limit dilampui Y Y Y Y N N N N Contoh Structured English : MODULE Validasi_ IF Saldo_Piutang > Limit_Kredit THEN IF Histori_Bayar = Buruk THEN ELSE IF Nilai_Barang <= 1 juta THEN minta_persetujuan_manajer ELSE Kondisi Aksi Histori pembayaran baik Y Y N N Y Y N N Pembelian di atas 1 juta Y N Y N Y N Y N Pembelian diterima X X X X Tolak X X X Minta persetujuan manajer X SP112 - Analisa Sistem Informasi 08-09 / 11-22 DECISION TREE SP112 - Analisa Sistem Informasi 08-09 / 12-22 Contoh Spesifikasi Proses Pembelian di atas 1 juta Di 2.3 Detil_ Mencatat Summary_ Histori pembayaran baik FILE-PENJUALAN Kredit dilampui Kredit limit tidak dilampui Histori pembayaran kurang baik Pembelian Minta dibawah persetujuan 1 juta manajer Di Diterima Detil_ : Cust + Part_No + Qty_Sold + Unit_Price File_ : Part_No + Total_Qty + Total_Value Summary_ : Cust + Sale_Value MODULE Mencatat_ Receive Detil_ Get record in File for PART_NO in Detil_ TOTAL_QTY = TOTAL_QTY + QTY_SOLD SALE_VALUE = QTY_SOLD * UNIT_PRICE TOTAL_VALUE = TOTAL_VALUE + SALE_VALUE Write File record Send Summary
SP112 - Analisa Sistem Informasi 08-09 / 13-22 Pada contoh berikut ditambah kondisi: bila nilai penjualan > 5 juta maka diberi discount sebesar 10 %. 2.3.1 Kirim Discount Discount = Cust + Tot_Discount SP112 - Analisa Sistem Informasi 08-09 / 14-22 MODULE Mencatat_ Receive Detil_ Get record in File for PART_NO in Detil_ TOTAL_QTY = TOTAL_QTY + QTY_SOLD SALE_VALUE = QTY_SOLD * UNIT_PRICE TOTAL_VALUE = TOTAL_VALUE + SALE_VALUE Write File record Send Summary IF SALE_VALUE > 5 juta DISCOUNT = SALE_VALUE * 0.10 Send Discount 2.3.0 Detil_ Mencatat Summary_ FILE-PENJUALAN SP112 - Analisa Sistem Informasi 08-09 / 15-22 Pada contoh berikut ditambah kondisi lagi (dari contoh sebelumnya), yaitu bila pembelian dengan tunai atau cek akan diberi tanda terima sedangkan untuk pembelian dengan kredit akan dikirim invoice dan bila pembelian menggunakan fasilitas account akan diposting. Discount hanya diberikan untuk fasilitas account. 2.3.1 kirim Disc. Detil_ Tanda_Terima = Cust + Sale_Value Discount = Cust + Tot_Discount 2.3.3 kirim Invoice 2.3.0 Mencatat 2.3. 2 Posting Acc Invoice = Part_No + Tot_Invoice Account_Posting= Cust + Sale_Value Summary_ File_ SP112 - Analisa Sistem Informasi 08-09 / 16-22 MODULE Mencatat_ Receive Detil_ Get record in File for PART_NO in Detil_ TOTAL_QTY = TOTAL_QTY + QTY_SOLD SALE_VALUE = QTY_SOLD * UNIT_PRICE TOTAL_VALUE = TOTAL_VALUE + SALE_VALUE Write File record Send Summary DO CASE CASE Pembayaran = account Posting account IF SALE_VALUE > 5 juta DISCOUNT = SALE_VALUE * 0.10 Send Discount CASE Pembayaran = tunai or cek Send Tanda Terima CASE Pembayaran = kredit Send Invoice ENDCASE
SP112 - Analisa Sistem Informasi 08-09 / 17-22 Order = Order_No + {Part_No+Qty+Price Pesanan = Order_No+ 3.2 +Amount}+{Part_ {Part_No+Qty} Pencatatan Total_Value} Order Part_No + Price FILE-PENJUALAN Pada gambar di atas, setiap Pesanan dapat terdiri lebih dari satu macam barang. Hal ini berarti bahwa pendataan order terhadap setiap pesanan akan dilakukan sampai semua Part_No didatakan. Jadi di sini terdapat proses repetition. Get Pesanan Total_Value = 0 While not end of line Get next order line Get Price from File for Part_No Amount = Qty * Price Total_Value = Total_Value + Amount End Send Order SP112 - Analisa Sistem Informasi 08-09 / 18-22 LAPORAN PENJUALAN PERIODE : S/D TANGGAL NO. FAKTUR NILAI 99-99 - 999 xxxxxxxxxxxx 999999 xxxxxxxxxxxx 999999 TOTAL TANGGAL 9999999 99-99 - 9999 xxxxxxxxxxxx 999999 xxxxxxxxxxxx 999999 TOTAL TANGGAL 9999999 GRAND TOTAL 9999999 Jual_H = {@NO_Faktur + Tgl_Faktur + Kd_Pelanggan} Jual_D = {@ No_Faktur + @ Kd_Barang + Harga_Unit + Jml_Unit} File Jual_H harus diindeks berdasarkan Tgl_Faktur + No_Faktor SP112 - Analisa Sistem Informasi 08-09 / 19-22 SP112 - Analisa Sistem Informasi 08-09 / 20-22 Model Input File : Cetak laporan penjualan : Periode laporan : Jual_H indexed brg Tgl_Faktur + No_Faktur Jual_D indexed brg No_Faktur + Kd_Barang Print Grand_Total Close File Jual_D, Jual_H End module Module cetak_lap_ Open file Jual_D, Jual_H Get Tgl_Awal, Tgl_Akhir Repeat Read File Jual_H Until (Tgl_Faktur >= Tgl_Awal) on EOF (Jual_H) Grand_Total 0 Do While not EOF (Jual_H) and (Tgl_Faktur <= Tgl_Akhir) Total_Tgl 0 Tgl_X Tgl_Faktur Do While (Tgl_Faktur = Tgl_X) and not EOF (Jual_H) Process all record of Jual_D for No_Faktur = No_Faktur of Jual_H Compute Nilai Harga_Unit * Jual_Unit Total_Tgl Print detail line Read file Jual_H Enddo Print Total_Tgl Grand_Total Enddo Total_Tgl + nilai Grand_Total + Total_Tgl KESIMPULAN Setiap proses pada tingkat yang paling bawah (functional primitive) harus memiliki spesifikasi proses. Spesifikasi proses ini harus menjelaskan transformasi aliran data yang masuk (input) menjadi aliran data yang keluar (output). Isi spesifikasi proses harus menjelaskan tentang bagaimana mentransformasi input agar menghasilkan output. Metode Penulisan harus jelas, ringkas dan lengkap.
SP112 - Analisa Sistem Informasi 08-09 / 21-22 Buatlah Spesifikasi Proses di bawah ini dengan Structured English : SP112 - Analisa Sistem Informasi 08-09 / 22-22 LAPORAN PENJUALAN Periode : 99-99-99 s/d 99-99-99 Tgl No Faktur Pelanggan Barang Jumlah Nilai Barang Tgl_Awal 3.5.2* Cetak Laporan Tgl_Akhir Jual_H Jual_D 99-99-99 x----------x x-----------x x--------x 9999 99999 x--------x 9999 99999 x--------x 9999 99999 Total Nilai 999999 Discount 999999 Total Bersih 999999 Pelanggan x----------x x-----------x x--------x 9999 99999 BARANG = { Kode-Barang + Nama + Min_Stock + Harga_Unit + Kwantitas } Laporan_ PELANGGAN = { Kode-Pelanggan + Nama + Alamat + Limit_Kredit + Saldo_Piutang } Discount 999999 Total Bersih 999999 x----------x x-x x--------x 9999 99999 x--------x 9999 99999 Total Nilai 999999 Discount 999999 Total Bersih 999999 Total Tanggal 99999999 JUAL-H = { Tgl-Jual + No-Faktur + Kode_Pelanggan + Persen_Discount } JUAL-D = { No-Faktur + Kode-Barang + Harga_Unit + Jml_Unit }