Pemodelan Fungsional Perancangan Perangkat Lunak PEnentuan Jalur Kritis Dari Suatu Jaringan Kerja Proyek

proses, struktur perulangan, teknik pengambilan keputusan serta mekanisme kalkulasi yang ada pada sistem. Setelah algoritma dan flowchart terbentuk, barulah dilakukan proses pembentukan sistem yang sebenarnya.

3.3 Pemodelan Fungsional

Hasil yang diharapkan dari tahapan membangun suatu sistem adalah bagaimana caranya agar sistem yang dibangun memiliki fungsi yang berdaya guna maksimal. Oleh karena itu, maka fungsi-fungsi yang ada pada sistem tersebut perlu dianalisis. Pada sistem kriptografi Hill Cipher Tergeneralisasi, secara garis besar terdapat tiga fungsi yaitu pembentukan kunci, enkripsi pesan, dan dekripsi pesan. Pemodelan fungsional menggambarkan aspek dari sistem yang berhubungan dengan transformasi dari nilai, seperti fungsi, pemetaan, batasan, dan ketergantungan fungsional. Pemodelan fungsional menangkap sesuatu yang dikerjakan oleh sistem tanpa memperhatikan bagaimana dan kapan hal itu dikerjakan.

3.3.1 DFD dan Spesifikasi Proses

Pemodelan fungsional digambarkan dengan diagram aliran data DFD. Data Flow Diagram DFD merupakan cara yang intuitif untuk menunjukkan bagaimana data diproses oleh sistem atau bagaimana data mengalir dalam serangkaian pemrosesan. Data ditransformasikan pada setiap langkah sebelum berlanjut ke tahapan selanjutnya. Langkah-langkah pemrosesan atau transformasi ini merupakan fungsi program ketika diagram aliran data digunakan untuk mendokumentasikan desain perangkat lunak. Simbol DFD yang akan digunakan dalam pembahasan ini adalah simbol yang sering digunakan oleh Yourdan, De Marco, dan lainnya. Data Flow Diagram dari sistem keamanan data dengan algoritma Hill Cipher Tergeneralisasi yang dirancang dapat dilihat pada Gambar 3.1 untuk diagram konteks sedangkan untuk diagram level 1 dapat dilihat pada Gambar 3.2, dan untuk diagram level 2 ditunjukkan oleh Gambar 3.3, Gambar 3.4, dan Gambar 3.5. P.0 HILL CIPHER TERGENERALISASI USER pesan, matriks_kunci, inv_terg_matriks_kunci, pilihan cipherteks, plainteks, inv_terg_matriks_kunci Gambar 3.1 Diagram Konteks atau DFD level 0. DFD level 0 di atas menggambarkan sistem secara garis besar yang memperlihatkan masukan, proses, dan keluaran dari sistem yang akan dirancang. Hill Cipher Tergeneralisasi Kriptosistem akan menghasilkan keluaran berupa file output. Proses yang terjadi pada diagram konteks atau DFD Level 0 di atas dapat dijelaskan dengan menggunakan spesifikasi proses pada tabel 3.1 berikut. Tabel 3.1 Spesifikasi Proses Diagram Konteks atau DFD level 0. Nama Input Keterangan Proses Output Proses 0 pesan, matriks_ku nci, inv_terg_matriks_kunci, pilihan Mengamankan data dengan algoritma Hill Cipher Tergeneralisasi Cipherteks, plainteks, inv_terg_matriks_kunci Pengembangan proses yang terjadi pada DFD level 0 di atas dapat di jabarkan pada DFD level 1 berikut. USER P.1 Pemilihan proses P.3 Enkripsi P.4 Dekripsi P.2 Pembentukan kunci pilihan order_enkripsi order_kunci Order_dekripsi pesan, matriks_kunci matriks_kunci Inv_terg_matriks_kunci inv_terg_mariks_kunci, cipherteks plainteks cipherteks Gambar 3.2 Diagram level 1 Proses 0. Pada gambar di atas dapat dilihat bahwa terdapat tiga pilihan proses yang dapat dilakukan pada kriptosistem ini yaitu: 1. Proses Pembentukan Kunci Proses pembentukan kunci merupakan proses yang dilakukan untuk mendapatkan matriks kunci matriks A dan invers tergeneralisasi matiks kunci matriks B yang di input oleh user. 2. Proses Enkripsi Proses enkripsi merupakan proses yang dilakukan untuk mengubah pesan asli menjadi pesan terenkripsi yang tidak dapat dipahami. Untuk memperoleh pesan terenkripsi tersebut, user menggunakan matriks kunci yang diperoleh dari proses pembentukan kunci. 3. Proses Dekripsi Proses dekripsi merupakan proses untuk mengubah pesan yang telah di enkripsi menjadi pesan asli seperti semula. Untuk melakukan proses dekripsi ini user menggunakan invers tergeneralisasi matriks kunci. Spesifikasi proses dari DFD level 1 pada Gambar 3.2 dijelaskan pada tabel berikut. Tabel 3.2 Spesifikasi Proses Diagram Level 1. Nama Input Keterangan Proses Output Proses 1 pilihan Memilih proses yang ingin dilakukan order kunci atau order enkripsi atau order dekripsi Proses 2 matriks_kunci, order_kunci Proses pembentukan kunci . inv_terg_matriks_ kunci Proses 3 pesan, matriks_kunci Proses enkripsi pesan menjadi cipherteks atau pesan yang tidak dapat dipahami. cipherteks Proses 4 pesan, inv_terg_matriks _kunci Proses pengembalian kembali cipherteks menjadi pesan jelas. plainteks Proses dua pada Gambar 3.2 merupakan proses pembentukan kunci. Proses ini dapat dilakukan dengan menginput sebuah matriks dari user yang disebut matriks kunci sehingga akan dihasilkan sebuah matriks baru yaitu invers tergeneralisasi matriks kunci, atau user dapat menginput sebuah kalimat untuk diubah menjadi sebuah matriks yang akan digunakan sebagai kunci. Untuk lebih jelasnya, proses pembentukan kunci dapat dilihat pada gambar DFD level 2 proses pembentukan kunci berikut ini. USER P2.1 Pemilihan proses P2.2 Input martiks mxn P2.3 Periksa matriks P2.4 Cari inv_terg_ Matriks_kunci P2.5 Input kalimat P2.6 Periksa kalimat P2.7 Bentuk matriks mxn pilihan matriks_kunci m _input m1 _hasil m2 _hasil k _hasil k _input kalimat inv_terg_matriks_kunci Gambar 3.3 DFD Level 2 Proses Pembentukan Kunci. Spesifikasi proses pada DFD level 2 proses pembentukan kunci, dapat dilihat pada tabel berikut . Tabel 3.3 Spesifikasi Proses DFD Level 2 Proses 2. Nama Proses Input Keterangan Proses Output Proses 2.1 pilihan Memilih proses yang ingin dilakukan Order matriks_kunci atau order_kalimat Proses 2.2 matriks_kunci Menginput matriks mxn m _input Proses 2.3 m_input Memeriksa apakah matriks memenuhi syarat untuk digunakan m_hasil Proses 2.4 m_hasil Menghitung invers matriks tergeneralisasi matriks kunci inv_terg_matriks_ kunci Proses 2.5 kalimat Menginput kalimat kalimat_input Proses 2.6 kalimat_input Memeriksa apakah kalimat memenuhi syarat untuk digunakan kalimat_hasil Proses 2.7 kalimat_hasil Membentuk matriks mxn dari kalimat matriks_hasil Proses enkripsi akan dilakukan pada file. Setiap karakter yang ada pada file dikonversikan ke dalam Z p karena pada algoritma Hill Cipher Tergeneralisasi digunakan bilangan prima yaitu Z 29 . Karakter-karakter tersebut di enkripsi menggunakan matriks kunci yang diperoleh dari proses pembentukan kunci. USER P3.1 Input matriks_kun ci P3.2 Input pesan P3.5 Hitung cipher blok P3.3 Partisi perkarakter P3.4 Konversi Ke Zp P3.7 Gabungkan cipher P3.6 Konversi ke char kunci_input matriks_kunci order_enkripsi pesan pesan_input char_pesan char_Zp cipher Char_cipher cipherteks Gambar 3.4 DFD Level 2 Proses Enkripsi. Spesifikasi proses enkripsi ditunjukkan pada tabel berikut. Tabel 3.4 Spesifikasi Proses DFD Level 2 Proses 3. Nama Input Keterangan Proses Output Proses 3.1 matriks_kunci Menginput matriks kunci kunci_input Proses 3.2 pesan, order_enkripsi Menginput pesan yang akan di enkripsi pesan_input Proses 3.3 pesan_input Memotong isi pesan menjadi blok-blok karakter char_pesan Proses 3.4 char_pesan Mengkonversikan plainteks ke dalam Z char_ Z p p Proses 3.5 char_ Z Menghitung cipherteks perblok p cipher Proses 3.6 cipher Mengkonversikan cipherteks ke karakter char_cipher Proses 3.7 char_cipher Proses menggabungkan blok cipherteks cipherteks Untuk mengembalikan cipherteks sehingga dapat dipahami, maka file yang telah dienkripsi didekripsi. Untuk melakukan proses dekripsi digunakan invers tergeneralisasi matriks kunci. Proses dekripsi dapat dilihat pada gambar DFD level 2 proses dekripsi berikut. USER P4.1 Input inv_terg_ matriks_kunci P4.2 Input pesan P4.5 Hitung plain P4.3 Partisi perkarakter P4.4 Konversi Ke Zp P4.7 Gabungkan cipher P4.6 Konversi ke char kunci_input inv_terg_matriks_kunci order_dekripsi pesan pesan_input char_pesan char_Zp plain Char_plain plainteks Gambar 3.5 DFD Level 2 Proses Dekripsi. Spesifikasi proses dekripsi dapat dilihat pada tabel berikut. Tabel 3.5 Spesifikasi Proses DFD Level 2 Proses 4. Nama Input Keterangan Proses Output Proses 4.1 inv_terg_matriks _kunci Menginput invers matriks tergeneralisasi matriks kunci matriks_input Proses 4.2 pesan, order_dekripsi Menginput pesan yang akan di dekripsi pesan_input Proses 4.3 pesan_input Memotong isi pesan menjadi blok-blok karakter char_pesan Proses 4.4 char_pesan Mengkonversikan plainteks ke dalam Z char_ Z p p Proses 4.5 char_ Z Menghitung plainteks perblok p plain Proses 4.6 plain Mengkonversikan cipherteks ke karakter char_plain Proses 4.7 char_plain Proses menggabungkan blok plainteks plainteks

3.3.2 Kamus Data

Kamus data merupakan suatu data yang disusun untuk memudahkan selama proses analisis dan desain. Selain suatu dokumen, kamus data mengumpulkan dan mengoordinasi istilah-istilah data yang terdapat pada diagram alir. Penganalisis sistem harus hati-hati dalam mengatalogkan istilah-istilah yang berbeda-beda yang menunjuk pada item yang sama. Kehati-hatian ini membantu dalam menghindari duplikasi, memungkinkan adanya komunikasi yang baik antara bagian-bagian yang saling berbagi basis data, dan membuat upaya pemeliharaan lebih bermanfaat. Kamus data juga bertindak sebagai standar tetap untuk elemen-elemen data. Masukan-masukan kamus data dapat dibuat setelah diagram aliran data dilengkapi atau dapat juga disusun saat diagram aliran data sedang dikembangkan. Penganalisis sistem mungkin saja membuat suatu diagram aliran data level 0 dan sekaligus membuat masukan-masukan data awal. Selanjutnya, sewaktu penganalisis sistem mengembangkan diagram level data menjadi diagram anak, penganalisis juga dapat memodifikasi masukan-masukan kamus data yang baru sesuai dengan aliran data pada diagram alir anak.

3.3.2.1 Kamus Data Proses Pembentukan Kunci

Kamus data untuk proses pembentukan kunci diperlihatkan pada tabel berikut ini. Tabel 3.6 Kamus Data Proses Pembentukan Kunci. Nama Tipe Data Deskripsi inv_terg_matriks_kunci integer Matriks yang digunakan untuk dekripsi pesan. kalimat integer Kalimat yang akan dibentuk menjadi matriks. k_hasil integer Kalimat yang telah diuji. k_input integer Kalimat yang merupakan input dari user. m_input integer Matriks yang merupakan input dari user matriks_kunci integer Matriks yang digunakan untuk enkripsi pesan. m1_hasil integer Matriks kunci yang telah diuji m2_hasil integer Matriks kunci yang dibentuk dari kalimat pilihan string Perintah untuk memilih proses.

3.3.2.2 Kamus Data Proses Enkripsi

Kamus data untuk proses enkripsi diperlihatkan pada tabel berikut. Tabel 3.7 Kamus Data Proses Enkripsi. Nama Tipe Data Deskripsi char_cipher char Karakter cipher hasil enkripsi. char_pesan integer Karakter pesan yang telah dipotong. char_ Z integer p Karakter pesan yang telah dikonversikan kedalam Z p . cipher integer Hasil enkripsi. cipherteks char Pesan yang telah disandikan. kunci_input integer Kunci rahasia untuk enkripsi. matriks_kunci integer Matriks yang digunakan untuk enkripsi. pesan integer File yang akan dienkripsi pesan_input integer Pesan yang di input user order_enkripsi string Perintah untuk menginput pesan 3.3.2.3 Kamus Data Proses Dekripsi Kamus data untuk proses dekripsi diperlihatkan pada tabel berikut. Tabel 3.8 Kamus Data Proses Dekripsi. Nama Tipe Data Deskripsi char_pesan integer Karakter pesan yang telah dipotong. char_plain char Karakter plain hasil ekripsi. char_ Z integer p Karakter pesan yang telah dikonversikan kedalam Z p inv_terg_matriks_kunci integer Matriks kunci yang digunakan untuk proses dekripsi. kunci_input integer Matriks kunci yang di input untuk proses dekripsi. pesan integer File yang akan didekripsi. pesan_input integer Blok-blok file input. plain integer Hasil enkripsi. plainteks char Pesan yang sebenarnya. order_dekripsi string Perintah untuk menginput pesan. BAB 4 PERANCANGAN DAN IMPLEMENTASI

4.1 Perancangan.