• Tidak ada hasil yang ditemukan

ANALISIS DAN PERANCANGAN PERANGKAT LUNAK

3.2 Diagram Aliran Data (Data Flow Diagram) & Kamus Data

3.2.1 Diagram Aliran Data Level

Perangkat lunak IDE (Integrated Development Environment) yang akan dibangun, melakukan interaksi bolak-balik dengan pengguna. Seperti diperlihatkan pada Gambar 3.1, aliran informasi dari pengguna berupa dtKodeSumber, dtReg, dtOpsiCompiler, dtOpsiEditor, dtOpsiEnv, dan dtNamaFile.

Gambar 3.1 Diagram Aliran Data Level 0

Interaksi yang terjadi secara umum adalah, pengguna menuangkan algoritmanya ke dalam perangkat lunak dalam bentuk kode sumber (dtKodeSumber). Pengguna mungkin bekerja dengan berkas kode sumber yang telah ada sebelumnya ataupun pengguna bekerja dengan berkas baru yang kemudian akan disimpan dengan suatu nama, yang dispesifikasikan pada dtNamaFile. Ketika mengeksekusi program yang dikerjakan, pengguna mungkin memiliki preferensi opsi kerja compiler, assembler, dan atau linker, yang direpresentasikan dtOpsiCompiler dan dtOpsiEnv. Pengguna juga dapat mengatur tampilan editor sesuai dengan preferensinya

(dtOpsiEditor). Untuk memanfaatkan fitur enkripsi dan dekripsi kode sumber, pengguna terlebih dahulu harus meregistrasikan data diri (dtReg).

Setelah menerima masukan informasi dari pengguna, perangkat lunak IDE akan menghasilkan informasi dtInfoDebug, dtKodeObj, dtKodeSumberOut, dtExecutable. Pengguna menerima informasi debugging (dtInfoDebug) seandainya terdapat kesalahan pada kode program pengguna. Apabila tidak ditemukan kesalahan, maka pengguna akan mendapatkan informasi berupa kode objek (dtKodeObj) dan program yang siap untuk dijalankan (dtExecutable). Pengguna juga akan menerima informasi kode sumber keluaran perangkat lunak (dtKodeSumberOut) ketika pengguna melakukan penyimpanan kode sumber.

3.2.2Diagram Aliran Data Level 1

Pada Gambar 3.2 diperlihatkan aliran data dari dan ke pengguna melalui proses-proses utama dari perangkat lunak IDE. dtKodeSumber dan dtNamaFile yang berasal dari pengguna ditangani oleh proses P3 (Code Editor). Selain menerima informasi dari pengguna, proses P3 juga menghasilkan informasi ke pengguna, yaitu dtKodeSumberOut. dtReg ditangani oleh proses P1 (Registrasi). Proses P4 (Mengolah Opsi-Opsi P/L IDE) menangani dtOpsiCompiler, dtOpsiEditor, dtOpsiEnv. Proses P6 (Menampilkan Info Debugging) menghasilkan informasi debugging (dtInfoDebug) bagi pengguna. Proses P5 (Compiler Chain) menghasilkan dtKodeObj dan dtExecutable ke pengguna.

Gambar 3.2 Diagram Aliran Data Level 1

Selain memperlihatkan aliran data dari dan ke pengguna, Gambar 3.2 juga memperlihatkan aliran data antar proses P/L IDE. Data Registrasi (dtReg) dari pengguna ditransformasi oleh proses P1 untuk menghasilkan kunci (dtKunci), yang kemudian diberikan kepada proses Enkripsi/Dekripsi (P2) untuk mengenkripsi dtKodeSumber menjadi dtKodeSumber terenkripsi (dtKodeSumberEnkrip) dan juga untuk mendekripsi dtKodeSumberEnkrip menjadi dtKodeSumber. Proses P2 juga menerima dtOptEnv dari proses P4.

Pengguna dapat bekerja dengan berkas baru atau berkas yang telah ada sebelumnya. Ketika pengguna bekerja dengan berkas yang telah ada sebelumnya, maka proses P3 memeriksa berkas tersebut, apabila berkas tersebut merupakan berkas kode sumber terenkripsi, maka proses P3 akan memanggil proses P2 untuk melakukan dekripsi. Kemudian apabila pengguna akan menyimpan berkas kode sumber yang dikerjakannya menjadi berkas kode sumber terenkripsi, maka proses P3 akan memanggil proses P2 dengan dtKodeSumber sebagai masukan dan menerima

keluaran dari P2 berupa dtKodeSumberEnkrip. Selain itu, proses P3 juga menerima masukan dari P4 berupa data pengaturan editor dan environment, yaitu dtOpsiEditor dan dtOptEnv. Proses P3 menghasilkan FileKodeSumberOut (F1) yang merupakan berkas keluaran ke pengguna. Berkas keluaran tersebut berisi informasi keluaran (dtKodeSumberOut) dan dapat berupa informasi kode sumber biasa atau kode sumber terenkripsi. Ketika akan melakukan kompilasi kode sumber, proses P3 akan menghasilkan nama berkas yang akan dikompilasi (dtNamaFileTemp) kepada proses P5 (Compiler Chain).

Pada Gambar 3.2 juga tampak aliran data dari dan ke proses P4 (Mengolah Opsi-Opsi P/L IDE). Proses P4 menerima aliran data dari pengguna berupa data preferensi opsi-opsi editor, compiler, dan environment. Proses P4 menerjemahkan data preferensi opsi compiler (dtOpsiCompiler) dan environment (dtOpsiEnv) menjadi untai karakter parameter untuk dijalankan oleh compiler (dtOptCompiler) dan environment (dtOptEnv). Proses P4 juga kemudian mendistribusikan data opsi ke masing-masing proses yang memerlukan, yaitu dtOptEnv ke proses P2, dtOpsiEditor dan dtOptEnv ke proses P3, dtOptCompiler dan dtOptEnv ke proses P5, dan dtOptEnv ke proses P6.

Selain itu, pada Gambar 3.2, proses P5 ketika akan memanggil compiler, assembler, dan linker, proses P5 memerlukan masukan berupa dtNamaFileTemp, yaitu data nama file yang akan dikompilasi, dtOptCompiler, dan dtOptEnv. Proses P5 akan mengembalikan informasi hasil pemanggilan compiler, assembler, dan linker (dtDebug) ke proses P6 (Menampilkan Info Debug) dan juga dtKodeObj dan dtExcutable ke dalam berkas F2 (FileKodeObj) dan F3 (FileExecutable).

Proses P6 menerima masukan dtDebug dari P5 dan dtOptEnv dari P4. Kemudian proses P6 mengolah dtDebug menjadi informasi yang dapat dimengerti oleh pengguna (dtInfoDebug).

3.2.3Diagram Aliran Data Level 2

Rincian proses P1 (Registrasi) diperlihatkan pada Gambar 3.3. dtReg yang diterima oleh proses P1 diolah oleh proses P1.1 (Mengolah Data Registrasi) untuk disimpan ke dalam berkas F4 (FileRegistrasi). dtKunci yang dihasilkan oleh proses P1 merupakan hasil pengolahan proses P1.2 (Membangkitkan Kunci dari Data Registrasi) dari data registrasi pengguna yang tersimpan di dalam berkas F4.

Gambar 3.3 Proses Registrasi

Rincian proses P2 (Enkripsi/Dekripsi) diperlihatkan pada Gambar 3.4. Proses P2.1 (Initializer) menerima masukan dtOptEnv untuk menginisialisasi proses P2, dan dtKunci untuk kemudian didistribusikan ke proses P2.2 (Enkriptor) dan proses P2.3 (Dekriptor). Ketika Proses P2 menerima masukan berupa dtKodeSumberEnkrip, maka proses P2.3 akan melakukan proses dekripsi untuk menghasilkan dtKodeSumber. Sedangkan, ketika proses P2 menerima masukan dtKodeSumber, maka proses P2.2 akan melakukan proses dekripsi untuk menghasilkan dtKodeSumberEnkrip.

Gambar 3.4 Proses Enkripsi / Dekripsi

Pada Gambar 3.5 diperlihatkan rincian proses Code Editor. Mula-mula, proses P3 diawali dengan proses inisialisasi oleh proses P3.1 (Initializer). Proses P3.1 mengolah dtOptEnv dan meneruskan dtOpsiEditor ke proses P3.2 (Editor). Proses P3.2 mengolah baris-baris kode sumber yang berasal dari pengguna (dtKodeSumber) dan atau dari berkas sebelumnya (dtKodeSumber). Ketika pengguna akan menyimpan pekerjaannya, maka proses P3.2 akan menghasilkan keluaran baris-baris kode sumber (dtKodeSumber) ke proses P3.4 (Menyimpan Kode Sumber). Ketika pengguna akan mengkompilasi pekerjaannya, maka proses P3.2 terlebih dahulu akan meneruskan baris kode program (dtKodeSumber) ke proses P3.5 (Menulis Kode Sumber Temp). Ketika pengguna memulai dengan berkas yang telah ada sebelumnya, maka proses P3.3 (Loader) akan membaca baris masukan dari berkas (dtNamaFile). Jika berkas merupakan berkas kode sumber terenkripsi, maka proses P3.3 akan membaca baris kode terenkripsi (dtKodeSumberEnkrip) dan mengirimkan ke proses P2 untuk didekripsi menjadi baris kode biasa (dtKodeSumber). Proses P3.3 akan memuatkan baris-baris kode yang tidak terenkripsi (dtKodeSumber) ke proses P3.2 dan juga nama berkas (dtNamaFile) untuk proses P3.4 (Menyimpan Kode Sumber). Ketika pengguna memilih untuk menyimpan pekerjaannya (dtKodeSumber) ke dalam baris kode terenkripsi (dtKodeSumberEnkrip), maka proses P3.4 akan mengirimkan dtKodeSumber ke proses P2 untuk dienkripsi. Proses P3.4 akan menghasilkan dtKodeSumberOut yang dapat merupakan baris kode sumber biasa atau baris kode sumber terenkripsi. Proses P3.5 menerima masukan baris kode (dtKodeSumber), ketika pengguna bermaksud untuk melakukan kompilasi. Proses P3.5 akan menulis

baris-baris kode sumber ke dalam berkas F5 (FileTemp) dan menerima path berkas sementara tersebut (dtNamaFileTemp). dtNamaFileTemp akan diteruskan ke proses P5.

Gambar 3.5 Proses Code Editor

Rincian proses P4 (Mengolah Opsi-Opsi P/L IDE) diperlihatkan pada Gambar 3.6. Informasi preferensi opsi environment pengguna (dtOpsiEnv) menjadi data masukan bagi proses P4.1 (Mengolah & Menerjemahkan Opsi Env) dan kemudian diteruskan ke proses P4.2 (Mengolah File Konfigurasi). Proses P4.1 menerima dtOpsiEnv dan menerjemahkannya menjadi dtOptEnv untuk kemudian didistribusikan ke proses-proses yang membutuhkan. Proses P4.3 (Mengolah & Menerjemahkan Opsi Compiler) menerima masukan informasi preferensi opsi compiler dari pengguna untuk diteruskan ke proses P4.2. Kemudian, Proses 4.3 juga menerima masukan dtOpsiCompiler dari P4.2 untuk diterjemahkan (dtOptCompiler) dan didistribusikan ke proses P5. Proses 4.4 menerima informasi preferensi opsi editor dari pengguna (dtOpsiEditor), meneruskannya ke proses 4.2. Berikutnya proses 4.4 menerima dtOpsiEditor dari proses 4.2 dan mendidtribusikannya tanpa menerjemahkan dtOpsiEditor ke proses P3. Proses 4.2 menerima masukan informasi preferensi compiler (dtOpsiCompiler), environment (dtOpsiEnv), dan editor (dtOpsiEditor) dan menyimpan masing-masing ke berkas F6 (FileKonfigurasiCompiler), F7 (FileKonfigurasiEnv), dan F8 (FileKonfigurasiEditor).

Selain itu, proses P4.2 juga membaca kembali (retrieve) informasi preferensi opsi dari pengguna yang tersimpan pada berkas-berkas konfigurasi dan mendistribusikan ke proses P4.1, P4.3, dan P4.4.

Gambar 3.6 Proses Mengolah Opsi-Opsi P/L IDE

Gambar 3.7 mengilustrasikan rincian proses Compiler Chain. Proses P5.1 (Initializer) menerima dtOptCompiler, dtOptEnv dan meneruskannya ke proses P5.2 (Memanggil Compiler, Assembler, & Linker). Proses P5.2 memanggil compiler, assembler, dan linker dengan parameter berupa nama berkas yang akan dikompilasi (dtNamaFileTemp) dan opsi-opsi compiler (dtOptCompiler), dan opsi-opsi environment (dtOptEnv). Apabila pada pemanggilan compiler, assembler, dan linker, terdapat kesalahan, maka proses P5.2 akan mengembalikan informasi debugging (dtDebug). Tetapi, apabila tidak terdapat kesalahan, maka proses P5.2 akan mengembalikan dtKodeObj, dan dtExecutable. Selain itu, proses P5.2 juga mengirimkan informasi dtNamaFileEXE kepada proses P5.3 (Memanggil Loader). Proses P5.3 menerima informasi nama berkas yang akan dijalankan (dtNamaFileEXE) dan kemudian menjalankan berkas tersebut.

P5.1 P5.2 Memanggil & P5.3 Memanggil Loader dtNamaFileTemp dtOptCompiler dtOptEnv dtOptCompiler dtNamaFileEXE dtKodeObj dtDebug dtExecutable dtOptEnv

Gambar 3.7 Proses Compiler Chain

3.2.4Diagram Aliran Data Level 3

Gambar 3.8 mengilustrasikan rincian proses Enkriptor. Masukan dtKodeSumber dibaca karakter demi karakter oleh proses P2.2.1 (Membaca Karakter demi Karakter) dan kemudian meneruskan informasi tersebut ke proses P2.2.3 (Substitusi Karakter). Proses P2.2.2 (Membaca Untaian Kunci) menerima masukan dtKunci, membaca untaian kunci satu demi satu, dan meneruskan informasi tersebut ke proses P2.2.2. Proses P2.2.2 menerima masukan karakter-karakter kode sumber (dtKodeSumber) dan mensubstitusikannya dengan tiap untai kunci (dtKunci) dan menghasilkan karakter- karakter terenkripsi (dtKodeSumberEnkrip).

Gambar 3.9 mengilustrasikan rincian proses Dekriptor. Karakter demi karakter dtKodeSumberEnkrip dibaca oleh proses P2.3.1 (Membaca Karakter demi Karakter) dan kemudian meneruskan informasi tersebut ke proses P2.3.3 (Substitusi Karakter). Proses P2.3.2 (Membaca Untaian Kunci) membaca untaian kunci satu demi satu, dan meneruskan informasi tersebut ke proses P2.3.2. Proses P2.3.2 menerima masukan karakter-karakter kode sumber (dtKodeSumberEnkrip) dan mensubstitusikannya dengan tiap untai kunci (dtKunci) dan menghasilkan karakter- karakter semula (dtKodeSumber).

Gambar 3.9 Proses Dekriptor

Rincian proses Editor diilustrasikan pada Gambar 3.10. Proses P3.2.1 (Mengolah dan Menampilkan Kode Sumber) menerima masukan dtKodeSumber dan kemudian meneruskan dtKodeSumber tersebut ke proses P3.2.2 (Scanning Kode Sumber) dan proses P3.2.4 (Melakukan Kompilasi/Eksekusi). Selain itu, proses P3.2.1 juga menerima masukan baris kode sumber terformat (dtHighlight) dari proses P3.2.5 (Highlight Kode Sumber) dan informasi preferensi opsi editor dari proses P3.2.3 (Pengaturan Komponen). Proses P3.2.2 melakukan scanning terhadap masukan kode sumber dari proses P3.2.1 dan kemudian meneruskan hasil scan kepada proses P3.2.5. P3.2.3 menerima informasi preferensi opsi editor, mengatur komponen sesuai dengan preferensi tersebut, dan kemudian meneruskannya ke proses P3.2.1 dan proses P3.2.5. Proses 3.2.4 dipanggil ketika pengguna akan mengkompilasi dan atau mengeksekusi kode sumber. Proses 3.2.4 menerima masukan dtKodeSumber, dan meneruskannya ke proses P3.5. Proses 3.2.5 menentukan jenis besaran leksik dari masukan hasil

scanning proses P3.2.2 dan menghasilkan keluaran dtHighlight sesuai dengan jenis besaran leksik tersebut.

Gambar 3.10 Proses Editor

Dokumen terkait