analisis dan perancangan perangkat lunak ide (integrated - USU-IR

advertisement
ANALISIS DAN PERANCANGAN PERANGKAT LUNAK IDE
(INTEGRATED DEVELOPMENT ENVIRONMENT)
FORTRAN G77
SKRIPSI
JEFRI UMAR
051401042
PROGRAM STUDI S1 ILMU KOMPUTER
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
2009
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
ANALISIS DAN PERANCANGAN PERANGKAT LUNAK IDE
(INTEGRATED DEVELOPMENT ENVIRONMENT)
FORTRAN G77
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana
Komputer
JEFRI UMAR
051401042
PROGRAM STUDI S1 ILMU KOMPUTER
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
2009
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
ii
PERSETUJUAN
Judul
Kategori
Nama
Nomor Induk Mahasiswa
Program Studi
Departemen
Fakultas
: ANALISIS DAN PERANCANGAN PERANGKAT
LUNAK IDE (INTEGRATED DEVELOPMENT
ENVIRONMENT) FORTRAN G77
: SKRIPSI
: JEFRI UMAR
: 051401042
: SARJANA (S1) ILMU KOMPUTER
: ILMU KOMPUTER
: MATEMATIKA DAN ILMU PENGETAHUAN
ALAM (FMIPA) UNIVERSITAS SUMATERA
UTARA
Diluluskan di
Medan, 15 Juli 2009
Komisi Pembimbing
:
Pembimbing 2
Pembimbing 1
Ir. Elviawaty MZ, MT, MM
NIP 132 306 873
Syahriol Sitorus, S.Si, MIT
NIP 132 174 687
Diketahui/Disetujui oleh
Departemen Ilmu Komputer FMIPA USU
Ketua,
Prof. Dr. Muhammad Zarlis
NIP 131 570 434
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
iii
PERNYATAAN
ANALISIS DAN PERANCANGAN PERANGKAT LUNAK IDE
(INTEGRATED DEVELOPMENT ENVIRONMENT)
FORTRAN G77
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa
kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, 15 Juli 2009
JEFRI UMAR
051401042
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
iv
PENGHARGAAN
Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Pemurah dan Maha
Penyayang, dengan limpah karunia-Nya, kertas kajian ini berhasil diselesaikan dalam
waktu yang telah ditetapkan.
Ucapan terima kasih penulis sampaikan kepada Syahriol Sitorus, S.Si, MIT
dan Ir. Elviawaty MZ, MT, MM selaku pembimbing pada penyelesaian skripsi ini
yang telah memberikan panduan dan penuh kepercayaan kepada penulis untuk
menyempurnakan kajian ini. Panduan ringkas, padat, dan profesional telah diberikan
kepada penulis agar dapat menyelesaikan tugas ini. Ucapan terima kasih juga
ditujukan kepada Ketua dan Sekretaris Departemen Ilmu Komputer, Prof. Dr.
Muhammad Zarlis dan Syahriol Sitorus, S.Si, M.I.T, Dekan dan Pembantu Dekan
Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara, semua
dosen pada Departemen Ilmu Komputer FMIPA USU, pegawai di Ilmu Komputer
FMIPA USU, dan rekan-rekan kuliah. Tidak lupa juga penulis menyampaikan terima
kasih kepada Ayahanda Salim dan Ibunda Herlinah yang memberikan dukungan, doa,
dan semangat tanpa henti. Terakhir, kepada Yuli dan Yudi yang selalu memberikan
inspirasi, kepada Johnny yang selalu memberikan semangat, dan juga kepada Sherly
yang selalu mendukung dan memotivasi penulis. Semoga Tuhan Yang Maha Esa
memberikan limpahan karunia kepada semua pihak yang telah memberikan bantuan,
perhatian, serta dukungan kepada penulis dalam menyelesaikan skripsi ini.
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
v
ABSTRAK
Fortran merupakan bahasa pemrograman yang dikhususkan untuk melakukan
komputasi numerik, sehingga bahasa Fortran sesuai untuk kepentingan akademis.
Tetapi bahasa Fortran tidak umum digunakan oleh mahasiswa, hal ini dikarenakan
kurang tersedianya lingkungan pengembangan Fortran; Lingkungan pengembangan
mengintegrasikan modul-modul yang dibutuhkan untuk pengembangan program. Isu
berikutnya yang perlu diperhatikan adalah otentikasi kode sumber. Diperlukan modul
tambahan yang terintegrasi ke dalam lingkungan pengembangan untuk melakukan
otentikasi kode sumber. Objektif utama dari kajian ini adalah untuk merancang dan
membangun IDE Fortran G77 yang mengintegrasikan modul code editor, compiler
chain, dan enkripsi/dekripsi. Menganalisis efisiensi dan efektivitas pengembangan
program, serta menganalisis otentikasi kode sumber melalui pemanfaatan IDE tersebut.
IDE yang dihasilkan, dinamakan dengan cryptIDE. cryptIDE kemudian dianalisis dan
diperoleh, bahwa otentikasi kode sumber lebih terjamin serta efisiensi dan efektivitas
pengembangan program menjadi lebih baik dengan pemanfaatan cryptIDE. cryptIDE
dikembangkan dengan menggunakan Borland Delphi 7 Enterprise. Paket compiler
yang digunakan adalah GNU Fortran G77 versi 2.95.
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
vi
IDE (INTEGRATED DEVELOPMENT ENVIRONMENT) FORTRAN G77
SOFTWARE ANALYSIS AND DESIGN
ABSTRACT
Fortran is a programming language that is specialized to do numerical computation,
and so, Fortran is suitable for academical use. But Fortran is not popular among the
student. This is caused by there are not much Fortran development environment;
Development environment integrates modules which are needed in program
development. Next concerning issue is source code authentication. Extra module that
is integrated to the development environment to authenticate source code is needed.
Main objectives of this study is to design and build IDE Fortran G77 that integrates
code editor, compiler chain, and encryption/decryption modules. Analyze the
efficiency and effectivity of developing program, and also, analyze source code
authentication by using the IDE. The IDE is named after cryptIDE. Next, cryptIDE is
being analyzed, henced, source code authentication is more safe, and also, the
efficiency and effectivity of developing program by using cryptIDE is better.
cryptIDE is developed with Borland Delphi 7 Enterprise. Compiler package that is
used is GNU Fortran G77 version 2.95.
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
vii
DAFTAR ISI
Halaman
Persetujuan
Pernyataan
Penghargaan
Abstrak
Abstract
Daftar Isi
Daftar Tabel
Daftar Gambar
Bab 1 Pendahuluan
1.1 Latar Belakang
1.2 Rumusan Masalah
1.3 Batasan Masalah
1.4 Tujuan Penelitian
1.5 Manfaat Penelitian
1.6 Langkah-Langkah Pengerjaan Penelitian
1.7 Sistematika Penulisan
ii
iii
iv
v
vi
vii
ix
x
1
1
2
2
3
3
3
4
Bab 2 Landasan Teori
2.1 Sejarah Bahasa Pemrograman
2.2 Tahapan Proses Penerjemahan Program
2.3 Rekayasa Perangkat Lunak
2.3.1 Proses Perangkat Lunak
2.3.1.1 Spesifikasi Perangkat Lunak
2.3.1.2 Perancangan dan Implementasi Perangkat Lunak
2.3.1.3 Validasi Perangkat Lunak
2.3.1.4 Evolusi Perangkat Lunak
2.3.2 Model Proses Perangkat Lunak: Model Proses Air Terjun
2.4 Analisis Leksikal, Besaran Leksik, dan Code Highlighting
2.5 Algoritma Kriptografi Klasik: Caesar Cipher
2.6 Fortran
2.6.1 Sejarah Fortran
2.6.2 Himpunan Karakter pada Fortran
2.6.3 Tipe Data pada Fortran
2.6.4 Nama Simbol pada Fortran
2.6.5 Pernyataan pada Fortran
2.6.6 Struktur Baris pada Fortran
2.6.7 Struktur Program pada Fortran
2.7 Interaksi Pengguna dengan Fortran
5
5
6
8
8
9
9
10
11
11
13
14
15
15
16
17
18
18
19
20
21
Bab 3 Analisis dan Perancangan Perangkat Lunak
3.1 Analisis Bahasa Fortran
23
23
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
viii
3.1.1 Kata Tercadang pada Fortran
3.1.2 Konstanta pada Fortran
3.1.3 Fortran G77
3.2 Diagram Aliran Data (Data Flow Diagram) & Kamus Data
3.2.1 Diagram Aliran Data Level 0
3.2.2 Diagram Aliran Data Level 1
3.2.3 Diagram Aliran Data Level 2
3.2.4 Diagram Aliran Data Level 3
3.2.5 Kamus Data
3.3 State Diagram
3.4 Perancangan Antarmuka
23
24
26
30
30
31
34
38
40
43
46
Bab 4 Hasil dan Pembahasan
4.1 Antarmuka cryptIDE
4.2 Kode Program cryptIDE
4.3 Pembahasan cryptIDE
4.3.1 Analisis Memory
4.3.2 Analisis Storage
4.3.3 Analisis Efisiensi
54
54
70
74
74
77
78
Bab 5 Implementasi dan Pengujian
5.1 Implementasi
5.1.1 Kebutuhan Sistem Minimum (Minimum System Requirement)
5.1.2 Pengaturan cryptIDE
5.2 Pengujian cryptIDE
81
81
81
81
82
Bab 6 Kesimpulan dan Saran
6.1 Kesimpulan
6.2 Saran
86
86
87
Daftar Pustaka
88
Lampiran A: Rincian Fungsi getlexeme
Lampiran B: Rincian Prosedur thighligh
89
91
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
ix
DAFTAR TABEL
Halaman
Tabel 2.1 Tabel Substitusi dengan Pergeseran Sejauh 3 Huruf
Tabel 2.2 Himpunan Karakter Alphabet dan Karakter Angka
Tabel 2.3 Himpunan Karakter Khusus dan Karakter Alphabet Tambahan
Tabel 3.1 Daftar Kata Tercadang
Tabel 3.2 Penanda Baris
Tabel 3.3 Daftar Opsi Wrapper
Tabel 3.4 Daftar Opsi Compiler
Tabel 3.5 Daftar Opsi Assembler
Tabel 3.6 Daftar Opsi Linker
Tabel 3.7 Kamus Data Diagram Aliran Data
Tabel 4.1 Daftar Opsi Compiler pada Jendela Compiler Options
Tabel 4.2 Opsi Environment pada Jendela Environment Options
Tabel 4.3 Alokasi Memory Proses cryptIDE untuk n Buah Berkas
Tabel 4.4 Memory yang Digunakan untuk Memuat Sebuah Berkas
Tabel 4.5 Rincian Ukuran Berkas dan Folder cryptIDE
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
15
17
17
24
25
27
28
29
29
40
62
66
76
77
78
x
DAFTAR GAMBAR
Halaman
Gambar 2.1 Proses Perakitan Program
Gambar 2.2 Tahapan Proses Transformasi Kode Sumber
Gambar 2.3 Model Air Terjun
Gambar 2.4 Struktur Baris pada Fortran
Gambar 2.5 Mengolah Kode Sumber Melalui Notepad
Gambar 2.6 Memanggil Wrapper
Gambar 2.7 Menjalankan Executable
Gambar 3.1 Diagram Aliran Data Level 0
Gambar 3.2 Diagram Aliran Data Level 1
Gambar 3.3 Proses Registrasi
Gambar 3.4 Proses Enkripsi / Dekripsi
Gambar 3.5 Proses Code Editor
Gambar 3.6 Proses Mengolah Opsi-Opsi P/L IDE
Gambar 3.7 Proses Compiler Chain
Gambar 3.8 Proses Enkriptor
Gambar 3.9 Proses Dekriptor
Gambar 3.10 Proses Editor
Gambar 3.11 State Diagram Bilangan Desimal
Gambar 3.12 State Diagram Bilangan Biner
Gambar 3.13 State Diagram Bilangan Oktal
Gambar 3.14 State Diagram Bilangan Heksadesimal
Gambar 3.15 State Diagram Bilangan Pecahan
Gambar 3.16 State Diagram Untaian Karakter
Gambar 3.17 Jendela Utama Perangkat Lunak IDE
Gambar 3.18 Menu File
Gambar 3.19 Menu Edit
Gambar 3.20 Menu Search
Gambar 3.21 Menu Execute
Gambar 3.22 Menu Tools
Gambar 3.23 Menu Window
Gambar 3.24 Jendela Find
Gambar 3.25 Jendela Replace
Gambar 3.26 Jendela Compiler Options
Gambar 3.27 Jendela Environment Options
Gambar 3.28 Jendela Editor Options
Gambar 3.29 Jendela Register
Gambar 3.30 Jendela Compile Progress
Gambar 4.1 Jendela Utama cryptIDE
Gambar 4.2 Menu File
Gambar 4.3 Jendela Open
Gambar 4.4 Jendela Save As
Gambar 4.5 Jendela Confirm
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
5
7
12
20
21
21
22
30
32
34
35
36
37
38
38
39
40
43
43
44
44
45
45
46
47
47
47
48
48
49
49
50
50
51
52
52
53
54
55
56
56
57
xi
Gambar 4.6 Jendela Warning (1)
Gambar 4.7 Menu Edit
Gambar 4.8 Menu Search
Gambar 4.9 Jendela Find Text
Gambar 4.10 Jendela Replace Text
Gambar 4.11 Menu Execute
Gambar 4.12 Jendela Compile Progress
Gambar 4.13 Jendela Warning (2)
Gambar 4.14 Menu Tools
Gambar 4.15 Jendela Compiler Options: Dialect
Gambar 4.16 Jendela Compiler Options: Optimization
Gambar 4.17 Jendela Environment Options: Compiler
Gambar 4.18 Jendela Environment Options: Assembler
Gambar 4.19 Jendela Environment Options: Linker
Gambar 4.20 Jendela Environment Options: Warnings
Gambar 4.21 Jendela Environment Options: Directories
Gambar 4.22 Jendela Editor Options: General
Gambar 4.23 Jendela Editor Options: Syntax
Gambar 4.24 Jendela Register
Gambar 4.25 Jendela Information (1)
Gambar 4.26 Jendela Information (2)
Gambar 4.27 Menu Window
Gambar 4.28 Menu Popup Toolbar
Gambar 4.29 Menu Popup Tab Code Editor
Gambar 4.30 Rincian Proses cryptIDE yang Sedang Idle
Gambar 4.31 Rincian Proses cryptIDE dengan Satu Berkas Terbuka
Gambar 4.32 Rincian Proses Notepad yang Sedang Idle
Gambar 4.33 Berkas dan Folder cryptIDE
Gambar 4.34 Ilustrasi Perbandingan Lingkungan Kerja
Gambar 5.1 Environment Options: Directories
Gambar 5.2 Jendela Register Pengguna A
Gambar 5.3 Proses Pengolahan Kode Sumber
Gambar 5.4 Isi Berkas ‘tes1.4esc’ pada Media Penyimpanan
Gambar 5.5 Jendela Register Pengguna B
Gambar 5.6 Berkas ‘tes1.4esc’ pada cryptIDE pengguna B
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
57
58
58
58
59
59
60
60
61
61
62
64
64
65
65
66
67
67
68
68
68
69
69
70
75
75
76
78
79
82
83
83
83
84
84
BAB 1
PENDAHULUAN
1.1 Latar Belakang
Dewasa ini, pemanfaatan bahasa pemrograman semakin berkembang. Bahkan, bahasa
pemrograman digunakan untuk kepentingan akademis, misalnya pengembangan
program untuk menyelesaikan suatu persamaan matematik yang kompleks. Satu di
antara alasan mengapa pemanfaatan bahasa pemrograman semakin berkembang
adalah tersedianya lingkungan pengembangan (development environment) yang
mengintegrasikan
(integrating)
modul-modul
yang
dibutuhkan
sehingga
pengembangan program menjadi mudah dan juga kemampuan compiler dapat
dimanfaatkan secara maksimal.
Satu di antara bahasa pemrograman yang digunakan adalah Fortran. Fortran
merupakan singkatan dari FORmula TRANslator. Fortran merupakan bahasa
pemrograman yang dikhususkan untuk melakukan komputasi numerik dan scientific.
Compiler Fortran yang umum dipakai di lingkungan akademis adalah Fortran 77.
Tetapi, IDE untuk compiler Fortran 77 masih sangat kurang, sehingga pemanfaatan
compiler Fortran 77 tidak maksimal dan diperlukan pengetahuan yang lebih lanjut
untuk mengoperasikan compiler Fortran 77.
Isu berikutnya yang harus diperhatikan adalah otentikasi kode sumber, yaitu
kepemilikan kode sumber. Diperlukan suatu modul untuk mengamankan kode sumber,
sehingga kode sumber tersebut dapat diotentikasi, yaitu dapat ditentukan siapa pemilik
dari kode sumber tersebut. Idealnya modul tersebut harus terintegrasi ke dalam IDE,
tetapi arsitektur IDE yang ada sekarang ini tidak menyediakan fitur seperti yang
diharapkan. Menurut Wong dalam IDEs of Change, IDE yang beredar pada umumnya
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
2
mengandung modul-modul yang terintegrasi, diantaranya code editor, compiler chain,
dan debugger.
Oleh karena itu, maka pada skripsi ini akan dilakukan studi, perancangan,
dan pengembangan perangkat lunak IDE untuk Fortran 77. Selain itu, juga akan
dilakukan analisis terhadap IDE yang dihasilkan.
1.2 Rumusan Masalah
Dari uraian latar belakang, masalah-masalah yang muncul dapat dirumuskan menjadi:
1. Bagaimana merancang dan membangun suatu perangkat lunak IDE yang
mengintegrasikan modul-modul yang dibutuhkan untuk pengembangan program.
2. Apakah pengembangan program dengan perangkat lunak IDE yang akan dibangun
dapat meningkatkan efisiensi dan efektivitas dibandingkan dengan pengembangan
program tanpa menggunakan perangkat lunak IDE tersebut.
3. Apakah keotentikan kode sumber dapat dicapai dengan pemanfaatan modul
enkripsi/dekripsi yang terintegrasi ke dalam IDE yang akan dibangun.
1.3 Batasan Masalah
Supaya pembahasan masalah lebih mendalam dan terperinci, maka pembahasan
masalah dibatasi menjadi:
1. IDE yang akan dibangun adalah IDE GNU Fortran G77 versi 2.95 19990728.
2. Tiap pengguna IDE memiliki kode registrasi yang unik.
3. IDE yang akan dibangun terdiri atas modul code editor, compiler chain, enkripsi,
dan dekripsi.
4. Code editor hanya melakukan code highlighting.
5. Teknik kriptografi yang digunakan dalam enkripsi dan dekripsi kode sumber
adalah Caesar cipher.
6. IDE yang akan dibangun adalah IDE yang berjalan pada sistem operasi Windows.
7. Perangkat Lunak IDE dibangun dengan Borland Delphi 7.
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
3
1.4 Tujuan Penelitian
Adapun tujuan penelitian yang hendak dicapai adalah:
1. Merancang dan membangun perangkat lunak IDE yang mengintegrasikan modul
code editor, compiler chain, enkripsi, dan dekripsi.
2. Menganalisis
efisiensi
dan
efektivitas
pengembangan
program
melalui
pemanfaatan IDE yang akan dibangun.
3. Menganalisis keaslian (authentication) kode sumber melalui pemanfaatan modul
enkripsi/dekripsi yang terintegrasi ke dalam IDE yang akan dibangun.
1.5 Manfaat Penelitian
Manfaat penelitian yang hendak dicapai di antaranya:
1. Penelitian dan hasilnya diharapkan dapat digunakan untuk kepentingan akademis
dan untuk memperkaya literatur akademis.
2. Efisiensi dan efektivitas pengembangan program serta keotentikan kode sumber
dapat dicapai dengan menggunakan perangkat lunak IDE ini.
1.6 Langkah-Langkah Pengerjaan Penelitian
Penelitian dikerjakan berdasarkan urutan langkah-langkah berikut:
1. Studi literatur.
2. Analisis dan perancangan perangkat lunak IDE.
3. Implementasi.
4. Pengujian perangkat lunak IDE.
5. Menyusun laporan dan menarik kesimpulan akhir.
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
4
1.7 Sistematika Penulisan
Sistematika penulisan dari skripsi ini terdiri dari beberapa bagian utama sebagai
berikut:
BAB 1: PENDAHULUAN
Bab ini menjelaskan mengenai latar belakang pemilihan judul skripsi “Analisis dan
Perancangan Perangkat Lunak IDE (Integrated Development Environment) Fortran
G77”, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian,
langkah-langkah pengerjaan penelitian, dan sistematika penulisan.
BAB 2: LANDASAN TEORI
Bab ini membahas sejarah bahasa pemrograman, tahapan penerjemahan program,
rekayasa perangkat lunak, analisis leksikal, algoritma kriptografi klasik, dan Fortran.
BAB 3: ANALISIS DAN PERANCANGAN PERANGKAT LUNAK
Bab ini menguraikan analisis perangkat lunak yang dilakukan serta perancangan
perangkat lunak yang sesuai dengan tujuan penelitian.
BAB 4: HASIL DAN PEMBAHASAN
Bab ini digunakan untuk memaparkan perangkat lunak hasil rancangan. Selain itu, bab
ini juga menyajikan hasil analisis dari perangkat lunak tersebut.
BAB 5: IMPLEMENTASI DAN PENGUJIAN
Bab ini menjelaskan prasyarat dan syarat yang harus dipenuhi supaya perangkat lunak
yang dikembangkan dapat dijalankan secara baik serta pengujian terhadap perangkat
lunak tersebut.
BAB 6: KESIMPULAN DAN SARAN
Bab ini memuat kesimpulan dari uraian bab-bab sebelumnya dan hasil penelitian yang
diperoleh. Bab ini juga memuat saran yang diharapkan dapat bermanfaat untuk
pengembangan selanjutnya.
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
BAB 2
LANDASAN TEORI
2.1 Sejarah Bahasa Pemrograman
Pada awal komputer diciptakan, para pemrogram diharuskan untuk memrogram
komputer dengan suatu bahasa, dimana tiap instruksi direduksi menjadi serangkaian
angka-angka yang dikenal dengan bahasa mesin (machine language). Program yang
ditulis dengan bahasa mesin dapat langsung diinputkan kepada komputer, dan dapat
dijalankan tanpa perlu diterjemahkan terlebih dahulu. Tetapi, bahasa mesin
merupakan bahasa yang sulit dipahami oleh manusia. Oleh karena itu, perekayasa
perangkat lunak memilih untuk menulis program dengan menggunakan bahasa
sederhana, dimana tiap kata dalam bahasa tersebut mewakili instruksi bahasa mesin.
Bahasa ini dikenal dengan bahasa rakitan (assembly language). Kemudian, kode
program bahasa rakitan yang ditulis oleh perekayasa perangkat lunak, dirakit
(diterjemahkan) oleh pemrogram menjadi kode program bahasa mesin, seperti
diilustrasikan pada Gambar 2.1, untuk kemudian diinputkan kepada komputer.
Bahasa Rakitan
(Assembly Language)
.
.
7 A, 4
MOV
ADD A, B
HALT
.
.
Proses Perakitan
(Assembly)
Bahasa Mesin
(Machine Language)
Programmer
.
.
11 11
1010
0011 0111
0111 0110
.
.
Gambar 2.1 Proses Perakitan Program
Sumber: Practical C Programming
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
6
Pada saat itu, proses penerjemahan/translasi merupakan pekerjaan yang sulit
serta memerlukan ketelitian dan ketepatan. Sehingga dibangun suatu program yang
disebut assembler untuk melakukan pekerjaan tersebut. Namun, pada saat tersebut
biaya pengoperasian komputer jauh lebih tinggi dibandingkan dengan biaya untuk
menggaji pemrogram.
Seiring berkembangnya komputer, proses penerjemahan bahasa rakitan
dengan menggunakan assembler menjadi lebih efektif. Dengan pemanfaatan bahasa
rakitan, program menjadi lebih terstruktur dan lebih mudah untuk dipahami. Tetapi,
program yang ditulis dengan bahasa rakitan menjadi lebih rumit untuk dipahami dan
dijalankan oleh komputer; Program terlebih dahulu harus diterjemahkan menjadi
bahasa mesin sebelum dapat dijalankan.
Kemudian, untuk memperluas pemanfaatan bahasa pemrograman, maka
pengembang perangkat lunak mengembangkan bahasa pemrograman yang lebih baik.
Bahasa pemrograman ini digolongkan sebagai bahasa pemrograman tingkat tinggi
(high level language). Bahasa pemrograman berkembang menjadi semakin mudah
untuk digunakan oleh para pemrogram.
Bahasa pemrograman tingkat tinggi memerlukan tambahan tahapan proses
untuk penerjemahan sebelum dapat dijalankan oleh komputer. Tetapi, waktu yang
diperlukan untuk melakukan penerjemahan tidak menjadi masalah yang signifikan.
Sejalan dengan perkembangan kecepatan komputasi, waktu yang diperlukan untuk
menerjemahkan kode program bahasa tingkat tinggi menjadi bahasa mesin menjadi
semakin singkat. Serangkaian bahasa pemrograman tingkat tinggi yang telah
dikembangkan, diantaranya: COBOL, Fortran, Pascal, C.
2.2 Tahapan Proses Penerjemahan Program
Program yang ditulis dengan menggunakan bahasa pemrograman tingkat tinggi terdiri
atas huruf, angka, dan simbol-simbol. Sedangkan, komputer dijalankan berdasarkan
bahasa tingkat rendah (low level language) yang disebut kode mesin, yang merupakan
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
7
serangkaian angka-angka. Sehingga, sebelum dapat dijalankan, kode sumber harus
melalui serangkaian tahapan proses transformasi, seperti tampak pada Gambar 2.2.
Gambar 2.2 Tahapan Proses Transformasi Kode Sumber
Sumber: Practical C Programming
Program berasal dari ide dan gagasan pemrogram. Melalui teks editor, ide
dan gagasan tersebut direalisasikan menjadi kode sumber (source code). Seperti
tampak pada Gambar 2.2, kode sumber akan diterjemahkan oleh compiler menjadi
kode rakitan (assembly code). Berikutnya, kode rakitan diterjemahkan menjadi berkas
kode objek (object code) oleh assembler. Kemudian, linker menggabungkan berkas
kode objek dengan rutin-rutin yang telah didefinisikan terlebih dahulu (predefined
routines) yang berada di dalam pustaka standar (standard library) dan menghasilkan
program yang dapat dijalankan (executable program) yang merupakan sekumpulan
instruksi dalam bahasa mesin.
Dewasa ini, kebanyakan sistem pemrograman (programming system) juga
menyediakan program pembungkus (wrapper), yaitu program yang digunakan untuk
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
8
memanggil compiler, assembler, dan linker secara runtun. Bahkan beberapa sistem
pemrograman
menyediakan
lingkungan
pengembangan
terpadu
(Integrated
Development Environment). Sebuah paket IDE dapat terdiri atas editor, compiler,
assembler, linker, debugger, dan sebagainya.
2.3 Rekayasa Perangkat Lunak
Rekayasa perangkat lunak merupakan kegiatan penspesifikasian, perancangan,
pengimplementasian, pemvalidasian, penyebaran, dan pemeliharaan sistem sebagai
satu kesatuan.
2.3.1 Proses Perangkat Lunak
Proses perangkat lunak merupakan proses yang sangat rumit dan bergantung pada
penilaian manusia. Karena dibutuhkan penilaian dan kreativitas, keberhasilan usaha
untuk mengotomasi proses perangkat lunak menjadi terbatas. Satu alasan mengapa
otomasi proses memiliki cakupan yang terbatas adalah adanya keragaman proses
perangkat lunak. Proses telah berkembang untuk mengeksploitasi kemampuan
manusia dan karakteristik spesifik sistem yang dikembangkan. Maka, bisa jadi
terdapat banyak proses yang digunakan untuk pengembangan perangkat lunak.
Walaupun terdapat banyak proses perangkat lunak, terdapat kegiatankegiatan mendasar yang umum bagi semua proses perangkat lunak adalah:
1. Penspesifikasian perangkat lunak. Mendefinisikan fungsionalitas perangkat lunak
dan batasan operasinya.
2. Perancangan dan implementasi perangkat lunak. Merancang dan membangun
perangkat lunak yang memenuhi persyaratan.
3. Pemvalidasian perangkat lunak. Menjamin bahwa perangkat lunak bekerja sesuai
dengan apa yang diinginkan.
4. Pengevolusian perangkat lunak. Perangkat lunak harus dapat dikembangkan untuk
menghadapi kebutuhan yang berubah.
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
9
Walaupun tidak terdapat proses perangkat lunak yang ideal, terdapat banyak
cakupan untuk memperbaiki proses perangkat lunak. Perbaikan proses perangkat
lunak dapat diimplementasikan dengan sejumlah cara. Hal ini bisa dilakukan melalui
standarisasi proses, sehingga keragaman proses perangkat lunak dapat diperkecil.
2.3.1.1 Spesifikasi Perangkat Lunak
Spesifikasi perangkat lunak ditujukan untuk menetapkan layanan apa yang dituntut
dari sistem dan batasan pada operasi dan pengembangan perangkat lunak IDE.
Disebut juga dengan rekayasa persyaratan. Rekayasa persyaratan merupakan tahap
yang sangat kritis dari proses perangkat lunak karena kesalahan pada tahap ini akan
menimbulkan kesalahan pada perancangan dan implementasi sistem.
Pada proses spesifikasi perangkat lunak akan dihasilkan dokumen
persyaratan yang merupakan spesifikasi sistem. Persyaratan direpresentasikan pada
dua tingkat perincian, yaitu persyaratan tingkat tinggi dan persyaratan tingkat rendah.
2.3.1.2 Perancangan dan Implementasi Perangkat Lunak
Perancangan perangkat lunak merupakan deskripsi struktur perangkat lunak yang akan
diimplementasikan. Kegiatan-kegiatan pada proses perancangan di antaranya adalah
perancangan arsitektural, spesifikasi abstrak, perancangan interface, perancangan
komponen,
perancangan
struktur
data,
perancangan
algoritma.
Rancangan
dikembangkan secara iteratif melalui versi demi versi yang berbeda. Proses
perancangan melibatkan penambahan formalitas dan perincian ke dalam rancangan
sementara, dan penelusuran balik untuk memperbaiki rancangan yang terdahulu.
Pada perancangan perangkat lunak dapat dilakukan pendekatan dengan
metode terstruktur. Pendekatan metode terstruktur merupakan serangkaian notasi dan
panduan perancangan perangkat lunak. Penggunaan metode terstruktur melibatkan
produksi model sistem grafis dan menghasilkan dokumentasi perancangan dalam
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
10
jumlah besar. Metode terstruktur mendukung beberapa model sistem, satu diantaranya
adalah model aliran data (data flow model). Pada model aliran data, sistem
dimodelkan dengan menggunakan transformasi data yang terjadi pada saat
pemrosesannya.
Tahap implementasi pengembangan perangkat lunak merupakan proses
transformasi spesifikasi perangkat lunak menjadi perangkat lunak yang dapat
dijalankan. Tahap ini mencakup perancangan dan pemrograman perangkat lunak.
Pemrograman merupakan kegiatan yang subjektif dan tidak terdapat proses umum
untuk diikuti. Pemrograman juga meliputi kegiatan pengujian kode program yang
dikembangkan. Ketika ditemukan kesalahan (error), maka pemrogram harus mencari
letak kesalahan dan memperbaiki kesalahan (debugging).
2.3.1.3 Validasi Perangkat Lunak
Validasi atau disebut juga dengan verifikasi dan validasi (V & V), ditujukan untuk
menunjukkan bahwa perangkat lunak sesuai dengan spesifikasinya, validasi
melibatkan proses pemeriksaan pada setiap tahap proses perangkat lunak dari definisi
persyaratan sampai pengembangan program.
Proses validasi meliputi tahapan:
1. Pengujian unit, yaitu menguji komponen individual untuk menjamin operasi yang
benar. Setiap komponen diuji secara independen, tanpa komponen sistem yang
lain.
2. Pengujian modul, yaitu menguji modul tanpa modul sistem yang lain. Modul
merupakan sekumpulan komponen yang berhubungan seperti kelas, tipe data,
prosedur, dan fungsi yang berhubungan.
3. Pengujian subsistem, yaitu melibatkan pengujian sekumpulan modul yang telah
dintegrasikan menjadi subsistem.
4. Pengujian sistem, yaitu menguji sistem yang terdiri atas subsistem-subsistem.
Proses ini berkenaan dengan penemuan kesalahan yang diakibatkan dari interaksi
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
11
antar subsistem. Pengujian sistem berhubungan dengan validasi sistem, yaitu
apakah sistem telah memenuhi persyaratan.
5. Pengujian penerimaan, yaitu menguji sistem dengan data riil.
2.3.1.4 Evolusi Perangkat Lunak
Fleksibilitas sistem perangkat lunak merupakan satu di antara alasan utama makin
banyaknya perangkat lunak yang digunakan pada sistem besar dan kompleks. Pada
perangkat lunak, perubahan dapat dibuat kapan saja pada saat pengembangan sistem
ataupun setelah pengembangan sistem.
Secara historis, terdapat pembatas antara proses pengembangan perangkat
lunak dan proses evolusi perangkat lunak (pemeliharaan perangkat lunak).
Pengembangan perangkat lunak dianggap merupakan kegiatan kreatif di mana sistem
perangkat lunak dikembangkan dari konsep awal menjadi sistem yang dapat berjalan.
Pemeliharaan perangkat lunak merupakan proses perubahan sistem tersebut setelah
digunakan.
2.3.2 Model Proses Perangkat Lunak: Model Proses Air Terjun
Model proses perangkat lunak merupakan representasi abstrak dari proses perangkat
lunak. Model proses hanya memberikan informasi parsial mengenai proses perangkat
lunak. Model proses perangkat lunak dapat digunakan untuk menjelaskan pendekatanpendekatan dalam pengembangan perangkat lunak. Satu diantara model proses yang
digunakan secara luas adalah model proses air terjun (waterfall).
Model proses air terjun diilustrasikan pada Gambar 2.3. Model proses air
terjun mengambil kegiatan proses dasar seperti spesifikasi, pengembangan, validasi,
dan evolusi. Dan merepresentasikannya sebagai fase-fase proses yang berbeda seperti
spesifikasi persyaratan, perancangan perangkat lunak, implementasi, pengujian, dan
pemeliharaan.
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
12
Definisi Persyaratan
Perancangan Sistem
dan Perangkat Lunak
Implementasi dan
Pengujian Unit
Integrasi dan Pengujian
Sistem
Operasi dan
Pemeliharaan
Gambar 2.3 Model Air Terjun
Seperti tampak pada Gambar 2.3, model proses air terjun dimulai dari fase
Definisi Persyaratan, pada fase ini akan dihasilkan dokumen spesifikasi persyaratan.
Rancangan perangkat keras dan perangkat lunak pada fase Perancangan Sistem dan
Perangkat Lunak disesuaikan dengan dokumen spesifikasi persyaratan. Fase ini akan
menghasilkan dokumen spesifikasi sistem dan perangkat lunak. Pada fase
Implementasi dan Pengujian Unit, dokumen spesifikasi sistem dan perangkat lunak
diimplementasikan ke dalam modul-modul yang terpisah, untuk kemudian diuji secara
mandiri. Berikutnya, pada fase Integrasi dan Pengujian Sistem, modul-modul yang
dihasilkan pada fase sebelumnya, diintegrasikan dan diuji sebagai suatu sistem
perangkat lunak yang utuh. Kemudian pada fase Operasi dan Pemeliharaan Sistem,
sistem dan perangkat lunak dioperasikan dan dipelihara, apabila ditemukan cacat (bug)
pada perangkat lunak atau terjadi perubahan kebutuhan sistem, maka model proses air
terjun dapat kembali ke fase-fase sebelumnya.
Keuntungan model proses air terjun dibandingkan dengan model proses
lainnya yaitu, manajemen model proses air terjun sederhana, pemisahan tahapan
perancangan sehingga dapat dihasilkan sistem yang lebih berbobot. Walaupun
demikian, model proses air terjun memiliki kelemahan yaitu, fase berikutnya tidak
boleh dimulai sebelum fase sebelumnya selesai.
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
13
2.4 Analisis Leksikal, Besaran Leksik, dan Code Highlighting
Analisis leksikal merupakan tahapan dalam teknik kompilasi untuk mengidentifikasi
semua besaran yang membangun suatu bahasa yang terdapat pada suatu masukan.
Rutin program yang melakukan tahap analisis leksikal disebut dengan scanner.
Scanner menerima masukan berupa untaian karakter, kemudian memilah masukan
menjadi besaran leksik (lexeme) sebelum ditransformasikan menjadi token. Scanner
bekerja berdasarkan mesin finite state automata yang ada pada ekspresi regular.
Tugas scanner diantaranya:
1. Membaca kode sumber dengan merunut karakter demi karakter.
2. Memisahkan lexeme.
3. Mengenali jenis besaran leksik dan mentransformasi lexeme menjadi token.
4. Mengirimkan token untuk digunakan tahapan analisis berikutnya.
5. Membuang karakter whitespace dan komentar dalam program.
6. Menangani kesalahan.
7. Menangani tabel simbol.
Besaran leksik merupakan besaran pembangun suatu bahasa, meliputi:
1. Identifier
Dapat berupa keyword atau name. Keyword adalah kata kunci yang telah
didefinisikan dan dicadangkan untuk digunakan secara ekslusif oleh suatu bahasa.
Sedangkan, name adalah besaran leksik yang didefinisikan oleh pemakai sesuai
dengan ekspresi regular yang diterima oleh bahasa tersebut.
2. Nilai konstanta
Merupakan konstanta yang terdapat pada suatu bahasa, sesuai ekspresi regular
bahasa tersebut. Dapat berupa konstanta bilangan bulat, bilangan pecahan, boolean,
karakter, untaian karakter, dan sebagainya.
3. Operator dan delimiter
Operator yang diterima bahasa tersebut, misalnya operator aritmatik, operator
relasional, dan sebagainya.
Delimiter merupakan pemisah besaran leksik dan mempunyai arti khusus
didefinisikan di dalam ekspresi regular bahasa tersebut.
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
14
Code highlighting merupakan suatu proses pada teks editor untuk
memunculkan (highlight) tiap lexeme sesuai dengan jenis besaran leksiknya. Tugas
yang dilakukan pada Code highlighting:
1. Membaca masukan dengan merunut karakter demi karakter.
2. Memisahkan lexeme.
3. Mengenali jenis besaran leksik, karakter whitespace, dan komentar.
4. Mengubah font style dari lexeme sesuai dengan jenisnya.
2.5 Algoritma Kriptografi Klasik: Caesar Cipher
Sebelum komputer ada, kriptografi dilakukan dengan menggunakan pensil dan kertas.
Algoritma kriptografi (cipher) yang digunakan saat itu, dinamakan juga algoritma
kriptografi klasik dan berbasis karakter, yaitu enkripsi dan dekripsi dilakukan pada
setiap karakter informasi. Semua algoritma klasik termasuk ke dalam sistem
kriptografi simetri dan digunakan jauh sebelum sistem kriptografi kunci publik
ditemukan.
Pada dasarnya, algoritma kriptografi klasik dapat dikelompokkan ke dalam
dua macam cipher:
1. Cipher substitusi (substitution cipher)
2. Cipher transposisi (transposition cipher)
Di dalam cipher substitusi, setiap unit plainteks disubstitusikan dengan satu
unit cipherteks. Satu “unit” bisa berarti satu huruf, pasangan huruf, atau kelompok
lebih dari dua huruf. Algoritma substitusi tertua yang diketahui adalah Caesar cipher
yang digunakan oleh kaisar Romawi, Julius Caesar, untuk menyandikan pesan yang ia
kirim kepada para gubernurnya.
Pada Caesar cipher, tiap huruf disubstitusi dengan huruf ke-k berikutnya
dari susunan alfabet yang sama. Dalam hal ini, kunci k adalah jumlah pergeseran
huruf. Pada Tabel 2.1 diperlihatkan susunan alfabet setelah digeser sejauh 3 huruf
(k=3).
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
15
Tabel 2.1 Tabel Substitusi dengan Pergeseran Sejauh 3 Huruf
Plainteks
Cipherteks
A B CFDGEH I J K L M N O P Q R S T U V W X Y Z
D E FIGJHK L M N O P Q R S T U V W X Y Z A B C
Berdasarkan Tabel 2.1, proses enkripsi dan dekripsi dapat dilakukan dengan
menggantikan tiap huruf plainteks dengan huruf ciperteks, dan sebaliknya.
Contoh:
Plainteks
PROGRAM HELLO
Cipherteks
SURJUDP KHOOR
2.6 Fortran
Fortran merupakan bahasa yang mendominasi pemrograman pada awal bahasa
pemrograman tingkat tinggi diperkenalkan. Fortran telah dipergunakan secara kontinu
selama lebih dari setengah abad dalam perhitungan intensif seperti prakiraan cuaca
numerik (numerical weather prediction), analisis elemen berhingga (finite element
analysis), fluida dinamis komputasional (computational fluid dynamics), fisika
komputasional (computational physics), dan kimia komputasional (computational
chemistry). Fortran merupakan satu diantara bahasa pemrograman yang terkenal, yang
digunakan untuk melakukan komputasi dengan unjuk kerja yang tinggi dan programprogram untuk mengukur dan meranking superkomputer tercepat di dunia ditulis
dengan bahasa Fortran.
2.6.1 Sejarah Fortran
Pada akhir tahun 1953, John W. Backus mengajukan proposal kepada atasannya untuk
mengembangkan sebuah alternatif yang lebih efisien dibandingkan dengan bahasa
rakitan untuk memrogram mainframe IBM 704. Spesifikasi kasar untuk IBM
Mathematical Formula Translating System diselesaikan pada pertengahan tahun 1954.
Manual untuk FORTRAN diterbitkan pada Oktober 1956, dan compiler FORTRAN
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
16
yang pertama mulai digunakan pada April 1957. Compiler ini merupakan compiler
untuk menjanjikan, hal ini dikarenakan pengguna hanya menggunakan bahasa
pemrograman tingkat tinggi jika terdapat compiler yang mampu membangkitkan kode
dengan unjuk kerja yang setara dengan kode bahasa rakitan yang ditulis secara manual.
Perkembangan berikutnya, FORTRAN diterima secara luas oleh para
ilmuwan untuk menulis program yang intensif numerik. Akibatnya pengembang
compiler semakin tergerak untuk menghasilkan compiler yang dapat menghasilkan
kode yang lebih cepat dan efisien. Penambahan tipe data complex ke dalam bahasa,
membuat FORTRAN secara khusus sesuai dengan pemanfaatan teknik.
Pada tahun 1960, popularitas FORTRAN semakin meluas. Sehingga,
perusahaan komputer saingan juga berusaha menyediakan compiler FORTRAN untuk
mesin mereka. Pada tahun 1963 terdapat lebih dari 40 compiler FORTRAN.
Dikarenakan alasan ini, FORTRAN dianggap sebagai bahasa pemrograman pertama
yang digunakan secara luas yang didukung banyak arsitektur komputer.
Perkembangan Fortran sejalan dengan awal evolusi teknologi compiler.
Bahkan, banyak diantara perkembangan teori dan rancangan compiler merupakan
akibat dari persaingan untuk menghasilkan kode program Fortran yang efisien.
Berikutnya, tiap versi Fortran dievolusikan untuk menambah ekstensi bahasa dengan
tetap mempertahankan kesesuaian dengan versi-versi sebelumnya. Versi suksesif
Fortran diantaranya, menambahkan dukungan terhadap pemrosesan data berbasis
karakter (FORTRAN 77), pemrograman larik, pemrograman berbasis modul dan
objek (Fortran 90/95), pemrograman berorientasi objek, dan pemrograman generik
(Fortran 2003).
2.6.2 Himpunan Karakter pada Fortran
Himpunan karakter pada Fortran terdiri dari terdiri atas 26 karakter huruf besar, 26
karakter huruf kecil (karakter alphabet), karakter angka 0 sampai 9, karakter khusus,
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
17
dan karakter alphabet tambahan. Tabel 2.2 dan Tabel 2.3 menampilkan himpunan
karakter Fortran secara lengkap.
Tabel 2.2 Himpunan Karakter Alphabet dan Karakter Angka
Huruf
Angka
A B CFDGEH I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h i j k l m n o p q r s t u v w x y z
0 1 253647 8 9
Tabel 2.3 Himpunan Karakter Khusus dan Karakter Alphabet Tambahan
Nama Karakter
Blank
Equal
Plus
Minus
Asterisk
Slash
Left parenthesis
Right parenthesis
Comma
Decimal point
Currency symbol
Apostrophe
Colon
Exclamation point
Quotation Mark
Underscore
Karakter
=
+
*
/
(
)
,
.
$
‘
:
!
“
_
2.6.3 Tipe Data pada Fortran
Secara umum, terdapat tiga jenis entitas yang memiliki tipe data, yaitu: konstanta,
variabel, dan fungsi. Tipe data yang dikenali Fortran, diantaranya:
1. INTEGER – bilangan bulat positif dan negatif dan nol.
2. REAL – bilangan pecahan positif dan negatif dan nol.
3. DOUBLE
PRECISION
– mirip dengan REAL, hanya saja DOUBLE
PRECISION
menggunakan memory dua kali lebih banyak dibandingkan REAL, dengan presisi
yang lebih baik.
4. COMPLEX – pasangan data REAL dan komponen imajiner.
MPLEX CO
5. DOUBLE
– pasangan data DOUBLE PRECISION dan komponen imajiner.
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
18
6. LOGICAL – data Boolean, merepresentasikan true dan false.
7. CHARACTER – untaian karakter.
8. HOLLERITH – tipe data historikal untuk definisi karakter.
2.6.4 Nama Simbol pada Fortran
Nama simbol merupakan deretan karakter yang mengacu pada lokasi memory dan
mempunyai arti khusus dalam program Fortran. Sebuah nama simbol dapat terdiri atas
karakter alphabet, numerik, dan karakter garis bawah (_). Karakter pertama nama
simbol harus merupakan karakter alphabet. Nama simbol pada Fortran dapat
mengandung sejumlah karakter, tetapi hanya 32 karakter pertama (standar FORTRAN
77 hanya mengizinkan 6 karakter) yang menentukan dan membedakan antara nama
simbol yang satu dan yang lainnya. Nama simbol yang digunakan secara eksternal
(nama program, nama subrutin, nama fungsi, dan nama common block) dibatasi
sampai 32 karakter penting.
Contoh nama simbol yang benar:
CASH
C3PO
R2D2
LONG_NAME
Contoh nama simbol yang salah:
X*4
(Mengandung karakter khusus)
3CASH
(Tidak diawali dengan karakter alphabet)
2.6.5 Pernyataan pada Fortran
Semua pernyataan (statement) pada Fortran dimulai dengan sebuah kata kunci
(keyword), kecuali pernyataan penugasan, pernyataan fungsi, dan pernyataan label.
Kata kunci merupakan sederetan karakter yang mempunyai arti khusus dan digunakan
untuk mengidentifikasi tipe pernyataan.
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
19
Tipe pernyataan pada Fortran:
1. Pernyataan label (statement labels)
Dengan pernyataan label, dimungkinkan untuk mengacu pada sebuah pernyataan
Fortran. Sebuah pernyataan label terdiri atas 1 sampai 5 digit, ditempatkan pada
kolom 1 sampai 5 pada baris inisial. Tiap pernyataan label pada program harus
unik.
2. Pernyataan yang dapat dieksekusi (executable statements)
Pernyataan executable menspesifikasikan suatu aksi yang dapat dikenali dan
merupakan bagian dari sekuens eksekusi dalam sebuah program. Pernyataan
executable terdiri atas pernyataan penugasan (assignment statements), pernyataan
kendali (control statements), pernyataan masukan/keluaran (I/O statements).
3. Pernyataan yang tidak dapat dieksekusi (non-executable statements)
Pernyataan yang non-executable merupakan pernyataan yang bukan merupakan
bagian dari sekuens eksekusi. Beberapa fungsi yang dilakukan oleh pernyataan
yang
non-executable,
diantaranya
mendefinisikan
pernyataan
fungsi,
menspesifikasikan entry points dari subprogram, memuat informasi penyuntingan
dan
pengaturan,
menspesifikasikan
unit-unit
program,
menspesifikasikan
penyertaan pernyataan tambahan dari sumber lain, menspesifikasikan karakteristik,
pengaturan penyimpanan, dan nilai awal dari data.
2.6.6 Struktur Baris pada Fortran
Pada Fortran dengan format fixed form, tiap baris program sumber mempunyai jenis
masing-masing. Jenis baris pada Fortran diantaranya, baris komentar, baris inisial, dan
baris sambungan.
Baris komentar adalah baris yang digunakan secara utuh untuk kegunaan
dokumentasi dan baris komentar tidak mempengaruhi eksekusi program. Seperti
tampak pada Gambar 2.4, baris komentar mempunyai karakteristik yaitu karakter pada
kolom ke-1 adalah ‘C’ atau ‘*’. Tiap baris pada program Fortran dibatasi 72 karakter
secara default, artinya karakter pada kolom ke 73 sampai akhir baris akan diabaikan.
Jika panjang baris (termasuk karakter dari kolom 1 sampai 6) melebihi 72 karakter,
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
20
maka dapat diorganisasikan menjadi baris sambungan. Baris sambungan ditandai
dengan adanya karakter selain spasi dan ‘0’ pada kolom ke-6. Baris sambungan
menandakan bahwa baris tersebut adalah sambungan dari baris sebelumnya.
Sedangkan, baris inisial adalah baris selain baris komentar dan baris sambungan. Tiap
baris inisial pada Fortran dapat mengandung pernyataan label (statement label) pada
kolom 1 sampai 5.
pernyataan terletak pada kolom 7-72
kolom 73 dan
seterusnya
diabaikan
C atau *
pada kolom 1
menandakan
pernyataan
komentar
label terletak
pada kolom Karakter selain 0 dan spasi pada kolom 6 menandakan sambungan
1-5
dari baris sebelumnya
Gambar 2.4 Struktur Baris pada Fortran
2.6.7 Struktur Program pada Fortran
Program Fortran dapat mengandung satu atau lebih unit program. Unit program terdiri
atas sekuens pernyataan dan baris komentar yang optional. Unit program
mendefinisikan lingkup (scope) dari nama simbol dan pernyataan label.
Program Fortran dapat berupa:
1. Program utama
Program utama merupakan unit program yang pertama kali menerima kendali
eksekusi. Program utama tidak dapat dipanggil dari subprogram atau dari dirinya
sendiri.
2. Subprogram
Subprogram merupakan bagian independen dari kode yang dirancang untuk
melakukan suatu tugas tertentu. Subprogram menerima kendali eksekusi ketika
direferensikan/dipanggil oleh sebuah pernyataan dari program utama atau
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
21
subprogram. Subprogram dapat berupa fungsi (function), subrutin (subroutine),
blok data.
2.7 Interaksi Pengguna dengan Fortran
Gambaran umum interaksi antara pengguna dengan Fortran tanpa adanya suatu
lingkungan pengembangan terpadu (integrated development environment) adalah:
1. Menjalankan aplikasi editor teks, misalnya Notepad.
2. Ide dan atau gagasan pengguna dituangkan menjadi kode sumber melalui aplikasi
editor teks tersebut, seperti diperlihatkan pada Gambar 2.5.
Gambar 2.5 Mengolah Kode Sumber Melalui Notepad
3. Menyimpan kode sumber tersebut ke dalam suatu berkas kode sumber dengan
ekstensi berkas kode sumber Fortran (*.for, *.f, *.f77. *.f90).
4. Menjalankan Command Prompt untuk memanggil wrapper, seperti diperlihatkan
pada Gambar 2.6, atau untuk memanggil compiler, assembler, dan linker.
Gambar 2.6 Memanggil Wrapper
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
22
5. Menjalankan executable hasil kompilasi, seperti diperlihatkan pada Gambar 2.7.
Gambar 2.7 Menjalankan Executable
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
BAB 3
ANALISIS DAN PERANCANGAN PERANGKAT LUNAK
3.1 Analisis Bahasa Fortran
Analisis bahasa Fortran mencakup kata tercadang, konstanta, dan opsi-opsi Fortran
yang akan disertakan ke dalam perangkat lunak IDE yang akan dibangun.
3.1.1 Kata Tercadang pada Fortran
Kata tercadang (reserved word) atau disebut juga dengan kata kunci (keyword),
merupakan kata yang mempunyai arti khusus dan digunakan secara eksklusif oleh
suatu bahasa. Fortran memiliki 82 kata tercadang, kata tercadang tersebut digunakan
secara khusus di dalam Fortran sebagai pernyataan atau bagian pernyataan yang
executable maupun yang non-executable. Pada Tabel 3.1, ditampilkan daftar kata
tercadang pada Fortran.
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
24
Tabel 3.1 Daftar Kata Tercadang
Kata Tercadang
.EQV.
.FALSE.
.AND.
.EQ.
.GE.
.GT..LE.
.LT.
.NE.
.NEQV.
.NOT.
.OR.
.TRUE. .XOR.
ACCEPT
ASSIGN
BACKSPACE
BLOCK
BYTE
AUTOMATIC
CALL R
CHARACTE
CLOSE
COMMON
CONTINUE
DATA
DECODE
COMPLEX
DIMENSION
DO
DEFINEDELETE
ELSEIF
ENCODE
DOUBLE ELSE
LE ENDFIENTRY
EQUIVALENCE
END
FILE
FIND
FORMAT
EXTERNAL
FUNCTION
GO
HOLLERITH
IF
INCLUDE
INQUIRE
INTEGER
IMPLICIT
LOGICAL
MAP
NAMELIST
INTRINSIC
OPEN R
PARAMETE
PAUSE
POINTER
PRINT
PROGRAM
READ
PRECISION
REAL
RECORD
RETURN
REWIND
STATIC
STOP
REWRITESAVE
STRUCTURE
TO
TYPE
SUBROUTINE
VIRTUAL
VOLATILE
UNION
UNLOCK
WHILE
WRITE
3.1.2 Konstanta pada Fortran
Konstanta merupakan nilai data yang tidak dapat diubah selama eksekusi program,
konstanta pada Fortran dapat berupa konstanta bilangan bulat, konstanta bilangan
pecahan, dan konstanta untai karakter.
Konstanta bilangan bulat pada Fortran, merupakan lexeme yang hanya
mengandung karakter angka 0 sampai 9, tidak mengandung bagian pecahan.
Konstanta bilangan bulat dapat dinyatakan dengan ekspresi reguler berikut.
‘0’|’1’|’2’|..|’9’}
{‘+’|’-‘|’’}{
+
Konstanta bilangan bulat pada Fortran juga dapat berupa untai karakter
dengan penanda basis diawal atau diakhir. Penanda basis pada Fortran ditunjukkan
pada Tabel 3.2.
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
25
Tabel 3.2 Penanda Basis
Karakter Penanda Basis
Basis
2 (biner)
8 (oktal)
16 (heksadesimal)
‘B’, ’b’
‘O’, ’o’
‘X’,
’, ’z’
’Z’, ’x
Konstanta bilangan bulat berupa untai karakter dengan karakter penanda
basis dapat dinyatakan dengan ekspresi reguler berikut.
{‘+’|’-‘|’’}{
{‘B’|’b’}{‘”’}{‘0’|’1’}+{‘”’}|
+
}{‘0’|’1’}
{‘B’|’b’}{‘’’
{‘’’}|
+
}
{‘”’}{‘B’|’b’
{‘”’}{‘0’|’1’ }|
{‘’’}{‘B’|’b’
{‘’’}{‘0’|’1’}+}|
{‘O’|’o’}{‘”’}{‘0’|’1’|..|’7’}+{‘”’}|
’o’}{‘’’}{‘0’|’1’|..|’7’}
{‘O’|
{‘0’|’1’|..|’7’}
{‘”’}
+
{‘’’}
{‘0’|’1’|..|’7’}
+
+
{‘’’}|
{‘”’}{‘O’|’o’}|
{‘’’}{‘O’|’o’}|
’Z’|’x’|’z’}{‘”’}{‘0’|..|’9’|’A’|..|’F’|’a’|..|’f’}
{‘X’|
+
{‘”’}
|
{‘X’|’Z’|’x’|
’z’}{‘’’}{‘0’|..|’9’|’A’|..|’F’|’a’|..|’f’}
+
{‘’’}
|
’9’|’A’|..|’F’|’a’|..|’f’}
{‘”’}{‘0’|..|
+
’|’z’}
{‘”’}{‘X’|’Z’|’x
|
{‘’’}{‘0’|..|’9’|’A’|..|’F’|’a’|..|’f’}+’|’z’}}
{‘’’}{‘X’|’Z’|’x
Contoh konstanta bilangan bulat yang valid:
+123
12345
‘12AB’x
B‘01010’
Konstanta pecahan merupakan konstanta yang mengandung titik desimal,
bagian pecahan, dan atau eksponen. Konstanta pecahan dapat dinyatakan dengan
ekpresi reguler berikut.
{‘+’|’-‘|’’}{
{‘0’|..|’9’}*{‘.’}{‘0’|..|’9’}+|
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
26
{‘.’}{‘0’|..|’9’}
{‘0’|..|’9’}*
+
’e’}{‘+’|’-‘|’’}
{’D’|’E’|’d’|
+
{‘0’|.. |’9’} |
{‘0’|..|’9’}+’9’}*|
{‘.’}{‘0’|..|
{‘0’|..|’9’}+’9’}*{’D’|’E’|’d’|’e’}{‘+’|’-‘|’’}
{‘.’}{‘0’|..|
{‘0’|.. |’9’}+}
Contoh konstanta bilangan pecahan yang valid:
123.45
-.123
123.E45
Konstanta untai karakter merupakan konstanta yang terdiri atas satu atau
lebih karakter, yang dapat direpresentasikan oleh prosesor. Tiap karakter dalam
konstanta untai karakter dinomori secara terurut dari 1. Konstanta untai karakter
diawali dengan karakter ‘”’ atau ‘’’, dan diakhiri dengan karakter yang sama dengan
karakter awal. Karakter yang mungkin dikandung pada konstanta untai karakter
adalah semua karakter ASCII.
5}
{‘”’}{#0..#25
+
{‘”’}|
5}+{‘’’}
{‘’’}{#0..#25
Contoh konstanta untai karakter yang valid:
lmnopq, r’stuvw.
Xyz!”
“abcdefghij
k
‘1234’’!@#$’
3.1.3 Fortran G77
G77 merupakan paket compiler Fortran 77 yang dikembangkan oleh GNU. Versi G77
yang digunakan adalah 2.95. Paket G77 terdiri atas wrapper (g77.exe), compiler
(f771.exe), assembler (as.exe), dan linker (ld.exe).
Wrapper dipanggil dengan menyertakan parameter yang terdiri atas opsi
wrapper, opsi compiler, opsi assembler, opsi linker, dan direktori kode sumber
program. Daftar beberapa opsi wrapper ditampilkan pada Tabel 3.3. Ketika wrapper
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
27
dipanggil dengan suatu parameter yang sesuai, maka wrapper akan memanggil
compiler terlebih dahulu untuk mengkompilasi kode sumber Fortran menjadi kode
sumber rakitan. Apabila compiler tidak mengembalikan pesan kesalahan, maka
wrapper akan memanggil assembler untuk menerjemahkan kode program rakitan
menjadi kode objek. Apabila assembler juga tidak mengembalikan pesan kesalahan,
maka berikutnya linker akan dipanggil. Linker akan menggabungkan kode objek hasil
penerjemahan assembler dengan kode objek yang tersimpan pada pustaka (library)
Fortran, untuk menghasilkan executable program apabila tidak terdapat kesalahan
pada proses penggabungan (linking).
Tabel 3.3 Daftar Opsi Wrapper
Parameter
--help
-dumpspecs
-dumpversion
-dumpmachine
-Wa,<options>
-Wp,<options>
-Wl,<options>
<arg>
-Xlinker
-save-temps
-v
-E
-S
-c
-o <file>
Fungsi
Menampilkan dokumentasi bantuan (help) untuk g77.
Menampilkan semua string spesifikasi built-in.
Menampilkan versi compiler.
Menampilkan prosesor tujuan dari compiler.
Melewatkan <options> kepada assembler.
Melewatkan <options> kepada preprocessor.
Melewatkan <options> kepada linker.
Melewatkan <arg> kepada linker.
Mempertahankan berkas assembler dan berkas objek.
Menampilkan program yang dipanggil oleh g77.
Hanya melakukan praproses.
Hanya melakukan kompilasi.
Hanya melakukan kompilasi dan perakitan.
Menghasilkan keluaran pada <file>.
Proses penerjemahan kode sumber program Fortran menjadi executable
program, juga dapat dilakukan secara manual tanpa menggunakan wrapper. Compiler
mula-mula dipanggil dengan menyertakan parameter berupa opsi compiler dan
direktori kode sumber program. Beberapa opsi compiler yang umum digunakan,
ditampilkan pada Tabel 3.4. Apabila pemanggilan compiler berhasil (tidak
mengembalikan pesan kesalahan), maka akan dihasilkan kode sumber rakitan.
Selanjutnya, assembler dengan menyertakan parameter berupa opsi assembler dan
direktori kode sumber rakitan. Beberapa opsi assembler yang umum digunakan,
ditampilkan Tabel 3.5. Apabila pemanggilan assembler berhasil, maka akan
dihasilkan kode objek dan proses dapat dilanjutkan dengan pemanggilan linker.
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
28
Parameter yang diberikan pada pemanggilan linker, terdiri atas opsi linker, direktori
kode objek, dan daftar pustaka yang digunakan. Beberapa opsi linker yang umum
digunakan, ditampilkan pada Tabel 3.6. Jika pemanggilan linker berhasil, maka akan
dihasilkan executable yang siap untuk dijalankan.
Tabel 3.4 Daftar Opsi Compiler
Parameter
-ffree-form
-ff90
-fdollar-ok
-fno-backslash
-fonetrip
-ffixed-line-len
gth-<n>
-fno-ugly
-fugly-args
-fugly-assign
-fugly-assumed
-fugly-comma
-fugly-complex
-fugly-init
-fugly-logint
-Os
-ffast-math
-fkeep-inline-fu
nctions
ns
-finline-functio
-ffunction-cse
-fgcse
r-loop
-frerun-cse-afte
-frerun-loop-opt
-msoft-float
-m80837
-finit-local-zer
o
-fsyntax-only
Fungsi
Mengizinkan format program bebas.
Menandakan program ditulis dengan dialek
Fortran 90.
Mengizinkan ‘$’ untuk digunakan sebagai nama
simbol.
Memperlakukan ‘\’ sebagai karakter biasa.
Menjalankan iteratif DO minimal sekali.
Mengatur panjang maksimum baris menjadi <n>.
Menolak semua struktur yang ‘buruk’.
Mengizinkan konstanta tidak bertipe dan
konstanta Hollerith dilewatkan sebagai argumen.
Mengizinkan penugasan biasa terhadap variabel
yang ditugaskan dengan perintah ASSIGN.
Mengasumsikan dummy array menjadi array (1).
Menganggap koma pada akhir baris pemanggilan
prosedur sebagai penanda argumen null.
Mengizinkan struktur kompleks yang buruk.
Mengizinkan struktur inisialisasi yang buruk.
Mengizinkan INTEGER dan LOGICAL untuk
dipertukarkan.
Mengoptimasi memory daripada kecepatan.
Meningkatkan kecepatan pemrosesan FP.
Mempertahankan kode fungsi walupun telah
tersedia fungsi baris.
Mengintegrasikan
fungsi
sederhana
pada
pemanggil.
Mengizinkan alamat fungsi ditempatkan pada
register.
Menjalankan Global Common Subexpression
Elimination.
Menjalankan CSE setelah optimisasi perulangan
(loop).
Menjalankan loop optimiser dua kali.
Menghindari penggunaan perangkat keras FP.
Menggunakan perangkat keras FP.
Menginisialisasi variabel dan array lokal dengan
nilai 0.
Memeriksa hanya sintaks.
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
29
Tabel 3.4 Daftar Opsi Compiler (Lanjutan)
Parameter
sage
-fcheck-memory-u
-fstack-check
-fverbose-asm
-fxyzzy
-fdebug-kludge
-fbounds-check
-fexceptions
-fasynchronous-e
xceptions
-fnew-exceptions
-w
-W
-Winline
-Wuninitialized
-Wunused
Fungsi
Memeriksa setiap pengaksesan memory.
Memeriksa stack.
Menghasilkan informasi tambahan.
Menampilkan informasi internal terkait yang
dengan debugging.
Menghasilkan informasi tambahan untuk COMMON
EQUIVALENC .
dan E
Memeriksa batasan subskrip dan substring.
Mengizinkan penanganan eksepsi (exception).
Mendukung eksepsi yang asinkron.
Menggunakan penanganan eksepsi model baru.
Mengabaikan peringatan (warning).
Memungkinkan peringatan tambahan.
Memperingati fungsi baris yang tidak valid.
Memperingati variabel yang tidak diinisialisasi.
Memperingati variabel yang tidak digunakan.
Tabel 3.5 Daftar Opsi Assembler
Parameter
-W
-Z
-o <file>
--statistics
--version
Fungsi
Mengabaikan peringatan (warning).
Menghasilkan kode objek walaupun terdapat kesalahan.
Mengatur nama kode objek keluaran.
Menampilkan ukuran statistik dari eksekusi.
Menampilkan versi assembler.
Tabel 3.6 Daftar Opsi Linker
Parameter
xec
--noinhibit-e
-l <libname>
-L <dir>
-o <file>
--version
--stats
--verbose
-code
--support-old
Fungsi
Menghasilkan keluaran walaupun ditemukan kesalahan.
<libname .
Mencari pustaka dengan nama >
Menambah <dir> ke dalam direktori pencarian pustaka.
Mengatur nama executable keluaran.
Menampilkan informasi versi linker.
Menampilkan statistik penggunaan memory.
Menghasilkan informasi lebih selama linking.
Mendukung kode lama.
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
30
3.2 Diagram Aliran Data (Data Flow Diagram) & Kamus Data
Diagram aliran data merupakan representasi grafis yang mengilustasikan aliran data
antar proses. Sedangkan kamus data menspesifikasikan rincian tiap data yang
mengalir tersebut.
3.2.1 Diagram Aliran Data Level 0
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
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
31
(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.2 Diagram 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.
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
32
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
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
33
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).
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
34
3.2.3 Diagram 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.
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
35
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
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
36
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)
masing-masing
dan
menyimpan
ke
berkas
F6
(FileKonfigurasiCompiler), F7 (FileKonfigurasiEnv), dan F8 (FileKonfigurasiEditor).
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
37
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.
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
38
dtOptCompiler
dtOptEnv
P5.1
dtOptCompiler
dtNamaFileTemp
dtOptEnv
P5.2
P5.3
dtNamaFileEXE
Memanggil
dtKodeObj
dtDebug
&
Memanggil
Loader
dtExecutable
Gambar 3.7 Proses Compiler Chain
3.2.4 Diagram 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 karakterkarakter terenkripsi (dtKodeSumberEnkrip).
Gambar 3.8 Proses Enkriptor
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
39
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 karakterkarakter 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
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
40
scanning proses P3.2.2 dan menghasilkan keluaran dtHighlight sesuai dengan jenis
besaran leksik tersebut.
Gambar 3.10 Proses Editor
3.2.5 Kamus Data
Tabel 3.7 mendaftarkan rincian data dan berkas yang digunakan pada diagram aliran
data yang telah dipaparkan sebelumnya.
Tabel 3.7 Kamus Data Diagram Aliran Data
Nama Data
dtKodeSumber
Tipe Data
TStrings
dtReg
record{firstname,
lastname, company,
noReg}
set of TOpsiComp
set of TOpsiEditor
set of TOpsiEnv
String
dtOpsiCompiler
dtOpsiEditor
dtOpsiEnv
dtNamaFile
Keterangan
Baris-baris kode sumber
masukan.
Informasi registrasi.
Himpunan opsi compiler.
Himpunan opsi editor.
Himpunan opsi environment.
Path lengkap berkas.
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
41
Tabel 3.7 Kamus Data Diagram Aliran Data (Lanjutan)
Nama Data
dtInfoDebug
Tipe Data
TStrings
dtKodeObj
dtKodeSumberOut
dtExecutable
Binary
TStrings
Binary
TStrings
firstname
lastname
company
noReg
TOpsiComp
array of String
String
String
String
String
enum{ffreeform, ff90,
fdollarok, fnobackslash,
fonetrip, ffixedlinelength,
fnougly, fuglyargs,
fuglyassign,
fuglyassumed,
fuglycomma,
fuglycomplex, fuglyinit,
fuglylogint, Os, ffastmath,
fkeepinlinefunctions,
finlinefunctions,
ffunctioncse, fgcse,
freruncseafterloop,
frerunloopopt, msoftfloat,
m80837}
record{tabsize, fontname,
fontsize, ResWrdFont,
IntConstFont,
FloatConstFont,
CharConstFont,
CommentFont}
enum{finitlocalzero,
fsyntaxonly,
fcheckmemoryusage,
fstackcheck, fverboseasm,
fxyzzy, fdebugkludge,
fboundscheck,
fexceptions,
fasynchronousexceptions,
fnewexceptions, w, WW,
Winline, Wuninitialized,
Wunused, W, Z,
noinhibitexec}
Integer
TOpsiEditor
TOpsiEnv
tabsize
Keterangan
Baris-baris informasi
debugging.
Kode biner mesin.
Baris kode sumber keluaran.
Kode biner yang dapat
dijalankan.
Baris-baris untai karakter.
Nama depan pengguna.
Nama keluarga pengguna.
Perusahaan pengguna.
Nomor registrasi pengguna.
Opsi compiler yang tersedia.
Pengaturan tampilan editor.
Opsi environment yang tersedia.
Ukuran tabulasi dalam hitungan
spasi.
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
42
Tabel 3.7 Kamus Data Diagram Aliran Data (Lanjutan)
Nama Data
fontname
fontsize
ResWrdFont
String
Integer
TFont
IntConstFont
TFont
FloatConstFont
TFont
CharConstFont
TFont
CommentFont
TFont
TFont
record{foreground, bold,
italic, underline}
Integer
Boolean
Boolean
Boolean
String
foreground
bold
italic
underline
dtKunci
Tipe Data
dtKodeSumberEnkrip TStrings
dtOptComp
array of String
dtOptEnv
array of String
dtNamaFileTemp
dtDebug
String
TStrings
dtNamaFileEXE
dtHighlight
F1
F2
F3
F4
F5
F6
F7
F8
String
TStrings
File
File
File
File
File
File
File
File
Keterangan
Nama font.
Ukuran font.
Pengaturan font untuk kata
tercadang.
Pengaturan font untuk konstanta
bilangan bulat.
Pengaturan font untuk konstanta
bilangan pecahan.
Pengaturan font untuk konstanta
untai karakter.
Pengaturan font untuk komentar.
Informasi pengaturan font.
Warna teks.
Status style cetak tebal.
Status style cetak miring.
Status style garis bawah.
Kunci enkripsi/dekripsi berkas
kode sumber.
Baris kode sumber terenkripsi.
Untai-untai karakter padanan
TOpsiCompiler.
Untai-untai karakter padanan
TOpsiEnv.
Path lengkap berkas sementara.
Informasi debugging yang
dikembalikan oleh compiler,
assembler, dan linker.
Path lengkap executable.
Baris kode ter-highlight
Berkas kode sumber keluaran.
Berkas kode objek.
Berkas executable.
Berkas registrasi.
Berkas kode sumber sementara.
Berkas konfigurasi compiler.
Berkas konfigurasi environment.
Berkas konfigurasi editor.
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
43
3.3 State Diagram
State diagram (diagram keadaan) merupakan suatu model matematis untuk
merepresentasikan suatu ekspresi reguler yang diterima oleh suatu bahasa. Dari suatu
masukan string, dapat diperiksa apakah string tersebut diterima oleh suatu ekspresi
reguler atau tidak. Suatu masukan diterima apabila dengan merunut tiap karakter
string dari awal sampai akhir, berakhir pada state akhir. Pada Gambar 3.11
diperlihatkan state diagram bilangan desimal. Contoh masukan string yang diterima
oleh state diagram bilangan desimal, diantaranya 123 dan +4567.
Gambar 3.11 State Diagram Bilangan Desimal
Gambar 3.12 memodelkan ekspresi reguler bilangan bulat biner ke dalam
state diagram. Contoh masukan yang diterima oleh state diagram bilangan biner,
diantaranya “101011”B. Dengan merunut karakter demi karakter dari masukan
tersebut, maka dapat dicapai state akhir, yaitu bin.
0, 1
0, 1
q6
q3
0, 1
‘
q1
+, -, Ø
‘’
‘
0, 1
q7
q4
‘’
q13
0, 1
q2
B, b
B, b
q10
q5
‘’
q8
0, 1
q11
‘’
q14
Ø
bin
Ø
0, 1
‘
q9
‘
0, 1
q12
Gambar 3.12 State Diagram Bilangan Biner
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
44
0..7
0..7
q6
q3
0..7
‘
q1
+, -, Ø
‘’
‘
0..7
q7
q4
‘’
q13
0..7
q2
O, o
O, o
q10
q5
‘’
q8
0..7
q11
‘’
q14
Ø
oct
Ø
0..7
‘
q9
‘
0..7
q12
Gambar 3.13 State Diagram Bilangan Oktal
Ekspresi reguler bilangan bulat oktal dimodelkan pada Gambar 3.13. Contoh
masukan yang tidak diterima oleh state diagram bilangan oktal tersebut adalah
“1234’O. Dengan merunut tiap karakter pada string masukan tersebut, state terakhir
(oct) tidak dapat dicapai. Karakter masukan hanya dapat dirunut sampai karakter
kelima (karakter ‘4’), dan state terakhir yang dapat dicapai adalah state q7.
Gambar 3.14 State Diagram Bilangan Heksadesimal
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
45
Gambar 3.14 mengilustrasikan state diagram untuk ekspresi reguler bilangan
bulat heksadesimal. Contoh masukan yang tidak diterima oleh state diagram tersebut
adalah ‘123abc’XZ. Dengan merunut tiap karakter pada string masukan, state akhir
dapat dicapai pada karakter kesembilan (karakter ‘X’). Tetapi, string masukan tersebut
tidak dapat diterima karena terdapat karakter yang tidak dapat dirunut lagi.
Gambar 3.15 State Diagram Bilangan Pecahan
Gambar 3.15 mengilustrasikan state diagram untuk ekspresi reguler bilangan
pecahan. Contoh string masukan yang dapat diterima state diagram tersebut adalah
+12.34e56. Urutan state yang dilalui: {q1, q2, q3, q3, q5, q5, q5, q6, q7, q8, q8, float}.
Karena, state terakhir yang dilalui adalah float dan tiap karakter dirunut sampai
karakter terakhir, maka string masukan tersebut diterima.
Gambar 3.16 State Diagram Untaian Karakter
Gambar 3.16 mengilustrasikan state diagram untuk ekspresi reguler untaian
karakter. Contoh masukan yang dapat diterima adalah “sedang belajar”.
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
46
3.4 Perancangan Antarmuka
Antarmuka untuk perangkat lunak IDE yang akan dibangun terdiri atas delapan buah
form. Gambar 3.17 mengilustrasikan rancangan antarmuka untuk jendela utama. Pada
rancangan antarmuka jendela utama terdapat menu bar (A), toolbar (B), tab page code
editor (C), dan status bar (D).
File
Edit
Search
Execute
Tools
Window
A
untittled
B
C
D
Status bar
Gambar 3.17 Jendela Utama Perangkat Lunak IDE
Pada Gambar 3.18, menu File terdiri atas submenu New, Open, Recent, Save,
Save As, Save All, Close, Close All, Exit. Submenu New digunakan untuk membuka
tab code editor yang baru. Submenu Open digunakan untuk membuka berkas kode
sumber yang telah ada sebelumnya. Submenu Recent digunakan untuk menampilkan
daftar nama berkas kode sumber yang diolah sebelumnya. Submenu Save digunakan
untuk memutakhirkan berkas kode sumber yang tersimpan. Submenu Save As
digunakan untuk menyimpan berkas kode sumber dengan nama lain. Submenu Save
All digunakan untuk menyimpan semua berkas kode sumber yang terbuka. Submenu
Close digunakan untuk menutup berkas kode sumber yang sedang aktif. Submenu
Close All digunakan untuk menutup semua berkas kode sumber yang terbuka.
Submenu Exit digunakan untuk menutup perangkat lunak IDE.
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
47
Gambar 3.18 Menu File
Gambar 3.19 memperlihatkan submenu dari menu Edit. Menu Edit terdiri
atas submenu Cut, Copy, Paste, dan Select All. Submenu Cut digunakan untuk
memindahkan teks terseleksi ke memory. Submenu Copy digunakan untuk
menggandakan teks terseleksi ke memory. Sedangkan submenu Paste digunakan
untuk memindahkan teks pada memory ke posisi kursor.
Gambar 3.19 Menu Edit
Gambar 3.20 memperlihatkan submenu dari menu Search. Menu Search
terdiri atas submenu Find, Replace, dan Search Again. Submenu Find digunakan
untuk memanggil jendela Find. Submenu Replace digunakan untuk memanggil
jendela Replace. Submenu Search Again digunakan untuk melanjutkan kembali
pencarian sebelumnya.
Gambar 3.20 Menu Search
Gambar 3.21 memperlihatkan submenu dari menu Execute. Menu Execute
terdiri atas submenu Compile, Run, dan Compile & Run. Submenu Compile akan
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
48
menjalankan compiler, assembler, dan linker. Submenu Run digunakan untuk
menjalankan executable hasil kompilasi. Submenu Compile & Run digunakan untuk
menjalankan compiler, assembler, linker, dan executable hasil kompilasi. Submenu
Compile dan Compile & Run akan memanggil jendela Compile Progress.
Gambar 3.21 Menu Execute
Gambar 3.22 memperlihatkan submenu dari menu Tools. Menu Tools terdiri
atas submenu Compiler Options, Environment Options, Editor Options, Configure
Toolbar, dan Register. Submenu Compiler Options digunakan untuk memanggil
jendela Compiler Options. Submenu Environment Options digunakan untuk
memanggil jendela Environment Options. Submenu Editor Options digunakan untuk
memanggil jendela Editor Options. Submenu Configure Toolbar digunakan untuk
menampilkan daftar toolbox yang ingin ditampilkan pada toolbar. Submenu Register
digunakan untuk memanggil jendela Register.
Gambar 3.22 Menu Tools
Gambar 3.23 memperlihatkan submenu dari menu Window. Menu Window
terdiri atas submenu Previous dan Next. Submenu Previous digunakan untuk
berpindah ke tab page code editor yang berada di sebelah kiri tab page code editor
aktif. Sedangkan, submenu Next digunakan untuk berpindah ke tab page code editor
yang berada di sebelah kanan.
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
49
Gambar 3.23 Menu Window
Pada Gambar 3.24 diperlihatkan rancangan jendela Find. Jendela Find
digunakan untuk merinci pencarian, yaitu teks yang hendak dicari (Text to find) dan
opsi-opsi pencarian. Ketika tombol Find ditekan, maka jendela Find akan ditutup dan
pencarian dimulai. Teks yang sesuai dengan rincian pencarian akan disorot
(Highlighted).
Gambar 3.24 Jendela Find
Pada Gambar 3.25 diperlihatkan rancangan jendela Replace. Rancangan
jendela Replace mirip dengan rancangan jendela Find, kecuali pada jendela Replace
ditambahkan isian teks pengganti (Replace with) untuk mengganti teks yang
ditemukan dan tombol Replace. Ketika tombol Replace ditekan, maka jendela Replace
akan ditutup dan pencarian dimulai. Teks yang sesuai dengan rincian pencarian akan
diganti dengan teks pengganti.
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
50
Text to find
Replace with
Case sensitive
From cursor
Whole word
Entire scope
Replace
Gambar 3.25 Jendela Replace
Pada gambar 3.26 diperlihatkan jendela Compiler Options. Jendela Compiler
Options mendaftarkan opsi-opsi compiler yang tersedia dan pilihan opsi compiler
pengguna yang tersimpan sebelumnya. Pengguna dapat memilih opsi compiler sesuai
dengan preferensinya, dengan cara memberi tanda centang pada checkbox yang
tersedia. Ketika tombol OK ditekan, maka pilihan opsi compiler pengguna akan
disimpan ke dalam berkas konfigurasi compiler. Ketika tombol Cancel ditekan, maka
jendela Compiler Options akan ditutup dan pilihan pengguna akan diabaikan. Ketika
tombol Default ditekan, maka pilihan default akan dimuat.
Gambar 3.26 Jendela Compiler Options
Pada gambar 3.27 diperlihatkan jendela Environment Options. Jendela
Environment Options mendaftarkan opsi-opsi environment yang tersedia dan pilihan
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
51
opsi environment pengguna yang tersimpan sebelumnya. Pengguna dapat memilih
opsi dengan cara memberi tanda centang. Ketika tombol OK ditekan, maka pilihan
opsi pengguna akan disimpan ke dalam berkas konfigurasi. Ketika tombol Cancel
ditekan, maka jendela Environment Options akan ditutup dan pilihan pengguna akan
diabaikan. Ketika tombol Default ditekan, maka pilihan default akan dimuat.
Gambar 3.27 Jendela Environment Options
Gambar 3.28 memperlihatkan rancangan jendela Editor Options. Jendela
Editor Options digunakan untuk mengatur tampilan teks pada editor sesuai dengan
opsi yang tersedia. Melalui jendela Editor Options, pengguna dapat menentukan
ukuran tab (Tab size), font, ukuran font, dan warna dan gaya dari tiap besaran leksik.
Ketika tombol OK ditekan, maka pilihan pengguna akan disimpan pada berkas
konfigurasi. Ketika tombol Cancel ditekan, maka pilihan pengguna akan diabaikan.
Ketika tombol Default ditekan, maka opsi default akan dimuat.
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
52
Gambar 3.28 Jendela Editor Options
Gambar 3.29 memperlihatkan rancangan jendela Register. Jendela Register
digunakan untuk registrasi pengguna. Dengan melakukan registrasi, maka pengguna
dapat menggunakan fasilitas enkripsi/dekripsi kode program. Registrasi pengguna
hanya merupakan formalitas, pengguna dapat memasukkan nomor registrasi
(Registration Number) sesuai dengan kehendaknya. Registrasi ditujukan untuk
mendapatkan nomor registrasi, untuk membangkitkan kunci enkripsi/dekripsi. Ketika
tombol OK ditekan, maka informasi registrasi pengguna akan disimpan.
Gambar 3.29 Jendela Register
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
53
Gambar 3.30 Jendela Compile Progress
Gambar 3.30 memperlihatkan rancangan jendela Compile Progress. Jendela
Compile Progress digunakan untuk menampilkan informasi kompilasi, yaitu compiler
yang digunakan (Compiler), tahapan kompilasi (Status), dan berkas yang dikompilasi
(File). Tombol Cancel digunakan untuk menghentikan kompilasi.
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
BAB 4
HASIL DAN PEMBAHASAN
4.1 Antarmuka cryptIDE
Pada Gambar 4.1 diperlihatkan jendela utama cryptIDE. Jendela utama terdiri atas
menu bar, toolbar, tab page code editor, dan status bar.
Gambar 4.1 Jendela Utama cryptIDE
Menu bar jendela utama terdiri atas tujuh menu, yaitu: File, Edit, Search,
Execute, Tools, Window, Help. Shortcut perintah-perintah dapat berupa kombinasi
kunci pada papan kunci (keyboard) dan atau berupa tombol (button), dimana setiap
tombol dikelompokkan ke dalam toolbox pada toolbar. Pada cryptIDE, berkas kode
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
55
sumber yang terbuka diorganisasikan ke dalam tab page. Status bar cryptIDE terdiri
atas 4 bagian, yaitu:
1. Status posisi baris dan kolom dari kursor.
2. Status penyimpanan berkas kode sumber.
3. Status penyisipan.
4. Status banyak baris berkas kode sumber.
Gambar 4.2 Menu File
Gambar 4.2 mengilustrasikan daftar submenu File. Menu File terdiri atas
submenu New, Open, Recent, Save, Save As, Save All, Close, Close All, dan Exit.
Submenu New digunakan untuk membuka berkas kode sumber yang baru pada tab
page code editor. Submenu Open digunakan untuk memanggil jendela Open. Gambar
4.3 menampilkan jendela Open. Melalui jendela Open, pengguna dapat menelusuri
direktori, kemudian memilih berkas kode sumber yang hendak dibuka. Berkas kode
sumber yang dibuka akan dimuat pada tab page code editor yang baru. Submenu
Recent digunakan untuk membuka kembali berkas kode sumber yang pernah dibuka
sebelumnya.
Submenu Save digunakan untuk memutakhirkan berkas kode sumber pada
media penyimpanan dengan berkas kode sumber aktif pada tab page. Jika berkas pada
tab page belum pernah disimpan ke berkas media penyimpanan, maka jendela Save As
akan dipanggil. Jendela Save As ditampilkan pada Gambar 4.4. Submenu Save As
digunakan untuk menyimpan berkas kode sumber aktif pada tab page ke berkas lain
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
56
pada media penyimpanan. Submenu Save All digunakan untuk menyimpan semua
berkas kode sumber pada tab page.
Gambar 4.3 Jendela Open
Gambar 4.4 Jendela Save As
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
57
Submenu Close digunakan untuk menutup berkas kode sumber aktif pada
tab page. Jika berkas yang akan ditutup belum disimpan, maka akan ditampilkan
jendela Confirm, seperti pada Gambar 4.5, untuk melakukan konfirmasi penutupan
berkas kode sumber pada tab page. Jika pengguna memilih ‘Yes’, maka berkas tab
page akan ditutup dan berkas pada media penyimpanan tidak akan dimutakhirkan.
Jika pengguna memilih ‘No’, maka penutupan berkas kode sumber tab page akan
dibatalkan. Submenu Close All digunakan untuk menutup semua berkas kode sumber
pada tab page. Jika terdapat berkas yang belum disimpan, maka akan muncul jendela
konfirmasi untuk tiap berkas yang belum disimpan.
Gambar 4.5 Jendela Confirm
Submenu Exit digunakan untuk menutup cryptIDE. Jika terdapat berkas pada
tab page yang belum disimpan, maka akan muncul jendela Warning, seperti tampak
pada Gambar 4.6, untuk memperingatkan pengguna. Jika pengguna memilih ‘Yes’,
maka cryptIDE akan ditutup dan perubahan berkas kode sumber yang belum disimpan
akan diabaikan. Jika pengguna memilih ‘No’, maka penutupan cryptIDE akan
dibatalkan.
Gambar 4.6 Jendela Warning (1)
Gambar 4.7 mengilustrasikan daftar submen Edit. Menu Edit terdiri atas
submenu Cut, Copy, Paste, dan Select All. Submenu Cut digunakan untuk
memindahkan teks terseleksi ke clipboard. Submenu Copy digunakan untuk
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
58
menggandakan teks terseleksi ke clipboard. Submenu Paste digunakan untuk
menyisipkan teks pada clipboard ke berkas kode sumber aktif tab page pada posisi
kursor. Submenu Select All digunakan untuk menyeleksi semua isi dari berkas kode
sumber aktif tab page.
Gambar 4.7 Menu Edit
Pada Gambar 4.8 diperlihatkan daftar submenu dari menu Search. Menu
Search terdiri atas submenu Find, Replace, dan Search Again. Submenu Find
digunakan untuk memanggil jendela Find Text.
Gambar 4.8 Menu Search
Gambar 4.9 Jendela Find Text
Gambar 4.9 mengilustrasikan jendela Find Text. Pada jendela Find Text,
pengguna dapat merinci teks yang hendak ditemukan pada berkas aktif tab page (Text
to Find) dan opsi pencarian. Opsi Case Sensitive menentukan teks yang dicari adalah
persis sama dengan Text to Find. Opsi Whole Words Only menentukan teks yang
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
59
dicari adalah teks utuh yang sama dengan Text to Find. Opsi From Cursor
menentukan posisi pencarian adalah dari posisi kursor sampai akhir berkas. Opsi
Entire Scope menentukan posisi pencarian adalah dari awal sampai akhir berkas.
Tombol ‘Find’ digunakan untuk memulai pencarian.
Submenu Replace digunakan untuk memanggil jendela Replace Text, seperti
terlihat pada Gambar 4.10. Pada jendela Replace Text, pengguna dapat merinci teks
yang hendak diganti pada berkas aktif tab page (Text to Find), teks pengganti
(Replace with), dan opsi pencarian. Opsi pencarian jendela Replace Text sama dengan
Opsi pencarian jendela Find Text. Tombol ‘Replace’ digunakan untuk memulai
pencarian teks (Text to Find) dan mengganti teks yang ditemukan dengan teks
pengganti (Replace with).
Gambar 4.10 Jendela Replace Text
Submenu Search Again digunakan untuk melanjutkan pencarian (Find atau
Replace) sebelumnya.
Gambar 4.11 Menu Execute
Gambar 4.11 memperlihatkan submenu dari menu Execute. Menu Execute
terdiri atas submenu Compile, Run, dan Compile Run. Submenu Compile digunakan
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
60
untuk memanggil jendela Compile Progress, seperti yang diperlihatkan pada Gambar
4.12. Ketika jendela Compile Progress dipanggil, maka jendela Compile Progress
akan memanggil compiler, assembler, dan linker, untuk menghasilkan executable.
Jika tombol ‘Cancel’ ditekan, maka proses kompilasi akan dihentikan. Submenu Run
digunakan untuk memanggil executable yang dihasilkan pada proses kompilasi.
Submenu Compile Run digunakan untuk memanggil jendela Compile Progress,
kemudian memanggil executable hasil kompilasi.
Gambar 4.12 Jendela Compile Progress
Jika direktori dari compiler, assembler, dan atau linker tidak dispesifikasikan
dengan benar, maka proses kompilasi akan dibatalkan dan jendela Warning, seperti
tampak pada Gambar 4.13, akan ditampilkan. Solusi terhadap masalah ini adalah
dengan menspesifikasikan direktori compiler, assembler, dan linker dengan benar.
Gambar 4.13 Jendela Warning (2)
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
61
Gambar 4.14 Menu Tools
Gambar 4.14 memperlihatkan submenu dari menu Tools. Menu Tools terdiri
atas submenu Compiler Options, Environment Options, Editor Options, Configure
Toolbars, dan Register. Submenu Compiler Options digunakan untuk memanggil
jendela Compiler Options. Pada jendela Compiler Options opsi-opsi compiler
diorganisasikan ke dalam tab page Dialect (tampak pada Gambar 4.15) dan tab page
Optimization (tampak pada Gambar 4.16). Jika tombol ‘OK’ ditekan, maka pilihan
opsi-opsi
tersebut
akan
disimpan
ke
dalam
berkas
konfigurasi
compiler
(CompOpt.cfg). Jika tombol ‘Cancel’ ditekan, maka pilihan opsi-opsi tersebut akan
diabaikan. Jika tombol ‘Default’ ditekan, maka pilihan opsi-opsi dari berkas
konfigurasi default compiler (CompOpt.dft) akan dimuat ke jendela Compiler Options.
Gambar 4.15 Jendela Compiler Options: Dialect
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
62
Gambar 4.16 Jendela Compiler Options: Optimization
Daftar Opsi compiler pada jendela Compiler Options ditampilkan pada Tabel
4.1.
Tabel 4.1 Daftar Opsi Compiler pada Jendela Compiler Options
Opsi Compiler
Program is written in Fortran-90-ish free form
Program is written in Fortran-90-ish dialect
Allow ‘$’ in symbol names
Backslashes ‘\’ in character/hollerith constants not
special
Take at least one trip through each iterative DO
loops
Set the maximum line length to
Reject all ‘ugly’ construct
Allow ‘ugly’ passing arguments
Allow ‘ugly’ assignments
Allow ‘ugly’ assumed array dimension
Allow ‘ugly’ comma
Allow ‘ugly’ complex expressions
Allow ‘ugly’ initialization
Allow ‘ugly’ LOGICAL and INTEGER as potential
stand-in
Optimize for space rather than speed
Improve FP speed by violating ANSI & IEEE rules
Ekivalensi
-ffree-form
-ff90
-fdollar-ok
-fno-backslash
-fonetrip
-ffixed-line-len
gth-<n>
-fno-ugly
-fugly-args
-fugly-assign
-fugly-assumed
-fugly-comma
-fugly-complex
-fugly-init
-fugly-logint
-Os
-ffast-math
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
63
Tabel 4.1 Daftar Opsi Compiler pada Jendela Compiler Options (Lanjutan)
Opsi Compiler
Generate code for functions even if they are fully
inlined
Integrater simple function into their callers
Allow function addresses to be held in registers
Perform the Global Common Subexpression
Elimination
Run CSE pass after loop optimizations
Run the loop optimizer twice
Do not use hardware FP
Use hardware FP
Ekivalensi
nctions
-fkeep-inline-fu
ns
-finline-functio
-ffunction-cse
-fgcse
r-loop
-frerun-cse-afte
-frerun-loop-opt
-msoft-float
-m80837
Submenu Environment Options digunakan untuk memanggil jendela
Environment Options. Jendela Environment Options mengorganisasikan opsi-opsi
yang tersedia ke dalam tab page Compiler (tampak pada Gambar 4.17), Assembler
(tampak pada Gambar 4.18), Linker (tampak pada Gambar 4.19), Warning (tampak
pada Gambar 4.20), dan Directories (tampak pada Gambar 4.21). Jika tombol ‘OK’
ditekan, maka pilihan opsi-opsi pada tab page Compiler dan Warning akan disimpan
ke dalam berkas konfigurasi compiler (CompOpt.cfg), opsi-opsi pada tab page
Assembler akan disimpan ke dalam berkas konfigurasi assembler (AssOpt.cfg), opsiopsi pada tab page Linker akan disimpan ke dalam berkas konfigurasi linker
(LinkOpt.cfg), dan opsi-opsi tab page Directories akan disimpan ke dalam berkas
konfigurasi direktori (DirOpt.cfg). Jika tombol ‘Cancel’ ditekan, maka pilihan opsiopsi tersebut akan diabaikan. Jika tombol ‘Default’ ditekan, maka pilihan opsi-opsi
dari berkas-berkas konfigurasi default (*.dft) akan dimuat ke jendela Environment
Options. Daftar Opsi environment pada jendela Environment Options ditampilkan
pada Tabel 4.2.
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
64
Gambar 4.17 Jendela Environment Options: Compiler
Gambar 4.18 Jendela Environment Options: Assembler
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
65
Gambar 4.19 Jendela Environment Options: Linker
Gambar 4.20 Jendela Environment Options: Warnings
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
66
Gambar 4.21 Jendela Environment Options: Directories
Tabel 4.2 Opsi Environment pada Jendela Environment Options
Opsi Environment
Initialize local variables and arrays to zero
Check for syntax errors, then stop
Generate code to check every memory access
Insert stack checking code into the program
Add extra commentary to assembler output
Print internal debugging-related info
Emit special debugging information for
COMMON and EQUIVALENCE
Generate code to check subscript and substring
bounds
Enable exception handling
Support asynchronous exceptions
Use the new model for exception handling
Suppress warnings
Generate object file even after errors
Create an output file even if errors occur
Suppress warnings
Enable extra warnings
Warn when an inlined function cannot be inlined
Warn about uninitialized automatic variables
Warn when a variable is unused
Ekivalensi
zero
-finit-local-fsyntax-only
y-usage
-fcheck-memor
-fstack-check
-fverbose-asm
-fxyzzy
e
-fdebug-kludg
-fbounds-chec
k
-fexceptions
s-exceptions
-fasynchronou
ons
-fnew-excepti
-W
-Z
xec
--noinhibit-e
-w
-W
-Winline
-Wuninitializ
ed
-Wunused
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
67
Submenu Editor Options digunakan untuk memanggil jendela Editor
Options. Opsi-opsi pada jendela Editor Options diorganisasikan ke dalam tab page
General (tampak pada Gambar 4.22) dan tab page Syntax (tampak pada Gambar 4.23).
Jika tombol ‘OK’ ditekan, maka pilihan opsi-opsi tersebut akan disimpan ke dalam
berkas konfigurasi editor (EdtOpt.cfg). Jika tombol ‘Cancel’ ditekan, maka pilihan
opsi-opsi tersebut akan diabaikan. Jika tombol ‘Default’ ditekan, maka pilihan opsiopsi dari berkas konfigurasi default editor (EdtOpt.dft) akan dimuat ke jendela Editor
Options.
Gambar 4.22 Jendela Editor Options: General
Gambar 4.23 Jendela Editor Options: Syntax
Submenu Register digunakan untuk memanggil jendela Register, seperti
diperlihatkan pada Gambar 4.24. Setelah pengguna melakukan registrasi, maka akan
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
68
muncul jendela Information, seperti tampak pada Gambar 4.25, dan informasi
registrasi pengguna akan disimpan ke dalam berkas konfigurasi registrasi (reg.cfg).
Gambar 4.24 Jendela Register
Gambar 4.25 Jendela Information (1)
Jika pengguna belum melakukan registrasi, maka pengguna tidak dapat
menggunakan fasilitas cryptIDE, yaitu membuka dan menyimpan berkas kode sumber
terenkripsi (Fortran Encrypted Source Code). Selain itu, pengguna akan mendapatkan
jendela Information, seperti tampak pada Gambar 4.26, ketika akan membuka dan
memyimpan berkas kode sumber terenkripsi (*.4esc).
Gambar 4.26 Jendela Information (2)
Gambar 4.27 memperlihatkan submenu dari menu Window. Menu Window
terdiri atas submenu Previous dan Next. Submenu Previous digunakan untuk
berpindah ke tab page sebelah kiri tab page berkas kode sumber aktif. Submenu Next
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
69
digunakan untuk berpindah ke tab page sebelah kanan tab page berkas kode sumber
aktif.
Gambar 4.27 Menu Window
Ketika toolbar cryptIDE di-klik kanan, maka akan muncul menu popup,
seperti diperlihatkan Gambar 4.28. Menu popup tersebut terdiri atas submenu Main,
Edit, Search, Execute, dan Window. Pada menu popup tersebut didaftarkan toolbox
yang ditampilkan. Pengguna dapat memilih untuk menampilkan atau tidak
menampilkan toolbox tertentu dengan cara memberi atau menghilangkan tanda
centang pada submenu tersebut.
Gambar 4.28 Menu Popup Toolbar
Ketika tab page code editor cryptIDE di-klik kanan, maka akan muncul
menu popup, seperti diperlihatkan Gambar 4.29. Menu popup tersebut terdiri atas
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
70
submenu Save, Save As, Save All, Close, Close All, Close All Except This, Cut, Copy,
Paste, dan Select All.
Gambar 4.29 Menu Popup Tab Code Editor
4.2 Kode Program cryptIDE
Code editor pada cryptIDE memanfaatkan komponen TCodeEditor. TCodeEditor
diturunkan dari kelas TRichEdit, dengan penambahan beberapa metode dan properti.
Beberapa diantaranya memegang peranan penting pada proses code highlighting.
deEditor.getlexeme(str:
string; var pos: TPoint;
function
TCo
checkonly: boolean): string;
Fungsi getlexeme merupakan metode pada kelas TCodeEditor yang
bertanggung jawab untuk mengembalikan satu buah lexeme berikutnya dari string
masukan str dimulai dari posisi pos. Selama proses getlexeme, posisi pos akan
‘digeser’ ke posisi berikutnya sampai dicapai akhir string str atau sampai ditemukan
akhir dari lexeme. Rincian fungsi getlexeme diperlihatkan pada Lampiran A. Proses
yang digunakan untuk perolehan lexeme pada code highlighting sedikit berbeda
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
71
dengan proses pada analisis leksikal. Pada proses perolehan lexeme pada code
highlighting, karakter whitespace, karakter khusus, dan komentar tidak dibuang,
melainkan dikembalikan sebagai lexeme.
odeEditor.highlight(var
pos: TPoint; str: string);
procedure
TC
Prosedur highlight
juga merupakan satu diantara metode kelas
TCodeEditor. Prosedur highlight melakukan code highlighting satu baris masukan,
dengan cara memanggil fungsi getlexeme dan melakukan analisis tiap lexeme
sampai tidak terdapat lexeme yang bisa dikembalikan oleh fungsi getlexeme. Rincian
prosedur highlight diperlihatkan pada Lampiran B. Cara kerja metode highlight
adalah mula-mula memeriksa apakah baris masukan str merupakan komentar. Jika
baris str merupakan komentar, maka baris tersebut akan di-highlight dengan font
style komentar. Jika bukan, maka proses dilanjutkan dengan memeriksa lexeme yang
dikembalikan dari pemanggilan fungsi me
getlexe , dan ditentukan jenis lexeme
tersebut, apakah merupakan karakter biasa, komentar, kata tercadang, konstanta
bilangan bulat desimal, konstanta bilangan pecahan, konstanta bilangan bulat biner,
konstanta bilangan bulat oktal, konstanta bilangan bulat heksadesimal, konstanta
untaian karakter, atau kata biasa.
erateKey(regNo:
Shortstring): Shortstring;
function
Gen
var
i: integer;
begin
result := '';
for i := Length(regNo) downto 1 do
result := result + regNo[i];
end;
Fungsi GenerateKey merupakan fungsi yang terdapat pada berkas
Pcrypt.dll. Fungsi GenerateKey digunakan untuk membangkitkan kunci dari data
nomor registrasi pengguna.
Algoritma kriptografi yang digunakan adalah algoritma kriptografi klasik
Caesar Cipher, dengan pergeseran karakter untuk tiap karakter masukan adalah
sebanyak urutan karakter kunci pada tabel ASCII.
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
72
ript(cipher,
function
dec key: Shortstring): Shortstring;
var
i: integer;
begin
result := '';
for i := 1 to length(cipher) do
begin
if ord(cipher[i]) < ord(key[(i mod length(key))+1]) then
result := result + chr(256-(ord(key[(i mod length(key))+1])ord(cipher[i])))
else
result := result + chr(ord(cipher[i])ord(key[((i-1) mod length(key))+1]));
end;
end;
Fungsi decript merupakan fungsi yang terdapat pada berkas Pcrypt.dll.
Fungsi decript digunakan untuk melakukan dekripsi tiap karakter masukan cipher
dengan kunci key.
ript(plain,
function
enc key: Shortstring): Shortstring;
var
i: integer;
begin
result := '';
for i := 1 to length(plain) do
result := result + chr((ord(plain[i])+
ord(key[((i-1) mod length(key))+1]))
mod 256);
end;
Fungsi encript merupakan fungsi yang terdapat pada berkas Pcrypt.dll.
Fungsi encript digunakan untuk melakukan enkripsi tiap karakter masukan plain
dengan kunci key.
Ketika pengguna memilih berkas kode sumber yang akan dibuka, maka
cryptIDE akan memeriksa ekstensi berkas kode sumber tersebut. Jika berkas kode
sumber tersebut berekstensi *.4esc, maka berkas tersebut merupakan berkas kode
sumber terenkripsi. Kemudian cryptIDE akan memeriksa status registrasi pengguna.
Jika pengguna telah melakukan registrasi, maka proses berikutnya adalah membaca
dan melakukan dekripsi tiap baris berkas kode sumber terenkripsi tersebut dengan
kunci yang dibangkitkan dari nomor registrasi, dan menampilkannya ke tab page code
editor sampai dicapai akhir dari berkas (end of file) tersebut. Cuplikan kode program
berikut merupakan cuplikan kode program untuk membaca, mendekripsi tiap baris
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
73
berkas kode sumber terenkripsi dan kemudian menampilkannya ke tab page code
editor.
...
AssignFile(f,
Ta
b.path);
reset(f);
while (not(eof(f))) do
begin
readln(f, temp);
if (reged) then
Tab.codeedtr.Lines.Add(decript(temp, GenKey(regNo)))
else
Tab.codeedtr.Lines.Add(temp);
end;
...
Ketika pengguna akan menyimpan suatu berkas kode sumber tab page
dengan suatu nama berkas, maka cryptIDE akan memeriksa ekstensi nama berkas
kode sumber tersebut untuk menentukan jenis berkas kode sumber tersebut. Jika nama
berkas kode sumber tersebut berekstensi *.4esc, maka berkas tersebut merupakan
berkas kode sumber terenkripsi. Kemudian cryptIDE akan memeriksa status registrasi
pengguna. Jika pengguna telah melakukan registrasi, maka proses berikutnya adalah
membaca dan melakukan enkripsi tiap baris berkas kode sumber tab page tersebut
dengan kunci yang dibangkitkan dari nomor registrasi, dan kemudian menuliskannya
ke berkas sampai dicapai akhir baris berkas tab page tersebut. Cuplikan kode program
berikut merupakan cuplikan kode program untuk membaca, mengenkripsi tiap baris
berkas kode sumber tab page dan kemudian menuliskannya ke dalam berkas kode
sumber.
...
veDialogSource.FileName);
AssignFile(f,
Sa
rewrite(f);
temp := GenKey(regNo);
for i := 0 to
(TCodeEditor(PgCtrlSource.Pages[ix].Components[0]).Lines.Count-1) do
writeln(f,
encript(TCodeEditor(PgCtrlSource.Pages[ix].Components[0]).Lines[i],
temp));
CloseFile(f);
...
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
74
4.3 Pembahasan cryptIDE
Pembahasan meliputi analisis memory, analisis storage, dan analisis efisiensi
pengembangan program dengan menggunakan cryptIDE dibandingkan dengan
pengembangan program tanpa menggunakan cryptIDE.
4.3.1 Analisis Memory
Memory mengacu pada memory primer sistem komputer. Analisis memory yang akan
dibahas meliputi alokasi memory sistem yang dibutuhkan untuk menjalankan
cryptIDE dibandingkan dengan tanpa menggunakan cryptIDE. Pengguna dapat
memilih untuk melakukan tugas pemrogramannya (programming task) dengan
memanfaatkan teks editor biasa ataupun dengan memanfaatkan cryptIDE.
Untuk mengukur memory yang dialokasikan untuk mengoperasikan
cryptIDE digunakan aplikasi Process Explorer (penelusur proses sistem komputer)
yang dikembangkan oleh Sysinternals. Gambar 4.30 memperlihatkan hasil
penelusuran proses cryptIDE.
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
75
Gambar 4.30 Rincian Proses cryptIDE yang Sedang Idle
Pada Gambar 4.30 tampak set kerja (Working Set) memory fisik (Physical
Memory) yang dialokasikan untuk proses cryptIDE pada saat idle (tidak terdapat
berkas tab page yang terbuka) adalah sebesar 4.684 KiloByte. Sedangkan pada
Gambar 4.31, diperlihatkan memory yang dialokasikan untuk proses cryptIDE dengan
satu berkas tab page yang terbuka adalah 5.128 KiloByte. Pada Tabel 4.3 diperlihatkan
alokasi memory proses cryptIDE untuk n buah berkas tab page yang terbuka.
Gambar 4.31 Rincian Proses cryptIDE dengan Satu Berkas Terbuka
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
76
Tabel 4.3 Alokasi Memory Proses cryptIDE untuk n Buah Berkas
Banyak
berkas
Working
Set (KB)
WS Private
(KB)
0
1
2
3
4
5
4.684
5.128
5.148
5.156
5.164
5.180
1.908
1.968
1.972
1.976
1.984
1.996
WS
Shareable
(KB)
2.776
3.160
3.176
3.180
3.180
3.184
WS Shared
(KB)
Peak Working
Set (KB)
2.688
2.768
2.784
2.788
2.788
2.792
4.696
5.192
5.212
5.216
5.228
5.244
Sebagai perbandingan, pada Gambar 4.32 diperlihatkan proses Notepad.
Notepad merupakan satu diantara aplikasi teks editor yang dapat digunakan pengguna
untuk mengolah kode sumber. Sebuah proses Notepad hanya dapat membuka satu
buah berkas pada suatu saat. Sehingga, untuk mengolah beberapa berkas sekaligus,
maka pengguna harus menjalankan beberapa buah proses Notepad sekaligus.
Akibatnya, akan terdapat beberapa buah proses Notepad pada memory, dan untuk
masing-masing proses akan dialokasikan sejumlah memory dengan ukuran yang
kurang lebih sama.
Gambar 4.32 Rincian Proses Notepad yang Sedang Idle
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
77
Pada
saat
pengolahan
kode
sumber,
masing-masing
proses
akan
menggunakan memory lebih besar dari pada saat idle. Pada Tabel 4.4 diperlihatkan
perbandingan memory yang digunakan oleh proses cryptIDE dan proses Notepad
untuk memuat (open) sebuah berkas kode sumber yang sama.
Tabel 4.4 Memory yang Digunakan untuk Memuat Sebuah Berkas
Nama
Proses
Working
Set (KB)
WS Private
(KB)
WS Shareable
(KB)
WS Shared
(KB)
criptIDE
notepad
7.480
6.304
2.636
1.476
4.844
4.828
4.164
4.388
Peak
Working Set
(KB)
8.704
7.732
Ketika bekerja dengan satu buah berkas, satu proses cryptIDE memanfaatkan
memory yang lebih besar dibandingkan dengan satu proses aplikasi teks editor (seperti
notepad). Tetapi ketika bekerja dengan beberapa buah berkas, pengguna hanya
memerlukan satu proses cryptIDE, maka alokasi memory proses cryptIDE tidak akan
meningkat signifikan. Sedangkan, ketika akan mengerjakan beberapa buah berkas
dengan aplikasi teks editor, pengguna memerlukan proses aplikasi teks editor
sebanyak berkas yang hendak dikerjakan, dimana alokasi memory tiap proses aplikasi
teks editor adalah terpisah, maka proses-proses aplikasi teks editor secara keseluruhan
akan lebih besar dibandingkan dengan proses cryptIDE.
4.3.2 Analisis Storage
Storage mengacu pada memory sekunder sistem komputer, yaitu media penyimpanan
data. Storage pada sistem komputer dapat berupa hard disk, optical disk, floppy disk,
dan media penyimpanan lainnya. Analisis storage yang akan dibahas meliputi
besarnya ruang pada media penyimpanan yang dibutuhkan oleh cryptIDE supaya
dapat dijalankan. Pada Gambar 4.33 diperlihatkan berkas dan folder cryptIDE.
cryptIDE menggabungkan aplikasi IDE dan aplikasi kompilasi Fortran G77.
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
78
Gambar 4.33 Berkas dan Folder cryptIDE
Pada Tabel 4.5 diperlihatkan daftar rincian ukuran tiap berkas dan folder
beserta fungsinya pada cryptIDE. cryptIDE terdiri atas paket Fortran G77 (folder bin,
doc, saved files, dan lib) dan aplikasi cryptIDE sebesar 562 KB (cryptIDE.exe,
icon.dll, Pcrypt.dll, dan folder config) ke dalam paket.
Tabel 4.5 Rincian Ukuran Berkas dan Folder cryptIDE
Nama
Berkas /
Folder
cryptIDE.exe
icon.dll
Pcrypt.dll
bin
config
doc
lib
saved files
Ukuran
(KB)
347
123
87
3389
5
1174
2257
~
Fungsi
Memulai cryptIDE.
Ekstensi aplikasi yang berisi icon cryptIDE.
Ekstensi aplikasi yang berisi fungsi GenerateKey,
encript, dan decript.
Folder yang berisi paket kompilator Fortran G77.
Folder yang berisi berkas konfigurasi cryptIDE.
Folder yang berisi dokumentasi Fortran G77.
Folder yang berisi berkas pustaka Fortran G77.
Folder yang digunakan untuk sebagai folder default
untuk menampung berkas kode sumber pengguna.
4.3.3 Analisis Efisiensi
Efisiensi mengacu pada suatu pencapaian dengan tepat guna, yaitu pemanfaatan
sumber daya dengan baik untuk mencapai suatu hasil. cryptIDE menggabungkan
modul-modul pengembangan program, sehingga pengguna dapat mengembangkan
program tanpa harus membuka dan memanggil secara manual beberapa buah aplikasi
mandiri yang terpisah.
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
79
Pada Gambar 4.34 diilustrasikan perbandingan antara pengembangan
program dengan menggunakan cryptIDE dengan pengembangan program tanpa
menggunakan cryptIDE. Pada pengembangan program dengan cryptIDE, pengguna
dapat melakukan editing, memanggil compiler, memanggil assembler, memanggil
linker, dan menjalankan executable melalui cryptIDE. Sedangkan, ketika pengguna
mengembangkan program tanpa cryptIDE, pengguna harus melakukan editing kode
sumber melalui aplikasi teks editor, untuk memanggil compiler, assembler, linker,
atau executable, maka pengguna harus menggunakan aplikasi command prompt untuk
melakukannya.
Gambar 4.34 Ilustrasi Perbandingan Lingkungan Kerja
Ketika sebuah aplikasi dijalankan, maka aplikasi tersebut akan menggunakan
sejumlah sumber daya sistem komputer. Apabila pemanfaatan aplikasi tersebut tidak
sesuai dengan pekerjaan, misalnya mengandung rutin yang tidak diperlukan, dan atau
tidak mengandung rutin yang diperlukan, maka sumber daya tersebut akan
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
80
dialokasikan dengan sia-sia. Kemudian, apabila pemanfaatan aplikasi tersebut sesuai
dengan pekerjaan tetapi tidak digunakan dengan baik, maka sumber daya yang
dialokasikan juga akan menjadi sia-sia. cryptIDE merupakan aplikasi untuk
mengembangkan
program,
cryptIDE
memiliki
rutin-rutin
khusus
untuk
pengembangan program, dibandingkan dengan aplikasi-aplikasi general purpose
seperti teks editor, command prompt, dan lain sebagainya.
cryptIDE merupakan aplikasi IDE untuk Fortran G77. Untuk menjalankan
cryptIDE, diperlukan sumber daya yang lebih besar dibandingkan dengan aplikasi teks
editor dan command prompt. Tetapi, cryptIDE memiliki rutin-rutin yang diperlukan
untuk pengembangan program dan sumber daya yang dialokasikan untuk cryptIDE
digunakan untuk proses-proses rutin tersebut.
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
BAB 5
IMPLEMENTASI DAN PENGUJIAN
5.1 Implementasi
Implementasi cryptIDE meliputi kebutuhan minimum sistem dan pengaturan (setting)
cryptIDE untuk dapat menjalankan cryptIDE dengan optimal.
5.1.1 Kebutuhan Sistem Minimum (Minimum System Requirement)
cryptIDE dapat dijalankan pada komputer dengan sistem operasi Windows 98 ke atas,
prosesor dengan kecepatan pemrosesan minimal 833 MHz, 32 MegaByte memory
primer, dan ruang pada media penyimpanan sekunder sebesar 8 MegaByte.
Berdasarkan uraian kebutuhan minimum cryptIDE tersebut, maka kebutuhan
minimum sistem komputer supaya cryptIDE dapat berjalan maksimal adalah:
1. Sistem Operasi Microsoft Windows 98 atau versi yang lebih baik,
2. Prosesor dengan kecepatan pemrosesan 1000 MHz,
3. 64 MegaByte memory primer (RAM), dan
4. 8 MegaByte ruang media penyimpanan sekunder.
5.1.2 Pengaturan cryptIDE
cryptIDE dapat dijalankan pada sistem komputer target tanpa perlu diinstalasi terlebih
dahulu, hal ini ditujukan supaya cryptIDE dapat digunakan pada sistem komputer
mana saja yang memenuhi kebutuhan minimum dan oleh siapa saja yang berminat
untuk menggunakannya. Supaya fitur enkripsi/dekripsi kode sumber cryptIDE dapat
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
82
dimanfaatkan, pengguna diharuskan melakukan registrasi terlebih dahulu melalui
menu Tools | Register. Registrasi ditujukan untuk memperoleh nomor registrasi
pengguna, yang kemudian akan digunakan untuk membangkitkan kunci untuk
melakukan enkripsi dan dekripsi kode sumber.
Pengaturan yang harus dilakukan sebelum cryptIDE dapat digunakan adalah
memperbaharui path aplikasi compiler, assembler, linker, dan folder default pengguna,
melalui menu Tools | Environment Options | Directories, seperti yang diperlihatkan
pada Gambar 5.1.
Gambar 5.1 Environment Options: Directories
5.2 Pengujian cryptIDE
Tahap pengujian yang akan dibahas adalah tahap pengujian penerimaan (pengujian
alpha) dengan metode blackbox. Pengujian penerimaan merupakan pengujian dimana
kesesuaian antara perangkat lunak yang dikembangkan dengan persyaratan sistem
akan dibandingkan. Metode pengujian blackbox merupakan metode pengujian
perangkat lunak tanpa memperhatikan perincian detil dari perangkat lunak tersebut.
Pengguna A melakukan registrasi cryptIDE melalui jendela Register dengan
data seperti diperlihatkan pada Gambar 5.2, yaitu First Name ‘J’, Last Name ‘U’,
Company ‘USU’, dan Registration Number ’123456789’.
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
83
Gambar 5.2 Jendela Register Pengguna A
Pada Gambar 5.3, tampak cryptIDE pengguna A dengan sebuah tab page
‘tes1.4esc’. Selama proses penyimpanan kode sumber tersebut, cryptIDE akan
melakukan enkripsi berkas tab page tersebut dengan kunci yang dibangkitkan dari
nomor registrasi pengguna A (‘123456789’), untuk menghasilkan berkas ‘tes1.4esc’
pada media penyimpanan. Gambar 5.4 memperlihatkan isi dari berkas ‘tes1.4esc’
yang terdapat pada media penyimpanan.
Gambar 5.3 Proses Pengolahan Kode Sumber
Gambar 5.4 Isi Berkas ‘tes1.4esc’ pada Media Penyimpanan
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
84
Pengguna A dapat membuka kembali berkas ‘tes1.4esc’ yang tersimpan pada
media penyimpanannya dengan menggunakan cryptIDE. Selama proses pembukaan
kembali berkas kode sumber tersebut, cryptIDE melakukan dekripsi terhadap barisbaris pada berkas tersebut dengan kunci yang dibangkitkan dari nomor registrasi
(‘123456789’), kemudian menampilkannya ke dalam code editor pada tab page
‘tes1.4esc’. Sehingga pengguna A memperoleh kembali baris-baris kode sumbernya.
Jika pengguna lain dengan nomor registrasi yang berbeda membuka berkas
‘tes1.4esc’ tersebut, maka pengguna tersebut akan memperoleh baris-baris kode
sumber yang salah. Pengguna B melakukan registrasi dengan data First Name ‘U’,
Last Name ‘J’, Company ‘USU’, dan Registration Number (‘123456’), seperti
diperlihatkan pada Gambar 5.5.
Gambar 5.5 Jendela Register Pengguna B
Ketika pengguna B membuka berkas ‘tes1.4esc’, maka cryptIDE-nya akan
mendekripsi tiap baris pada berkas tersebut dengan kunci yang dibangkitkan dengan
nomor registrasi (‘123456’). Pada Gambar 5.6 diperlihatkan tab page berkas
‘tes1.4esc’ yang diperoleh pengguna B.
Gambar 5.6 Berkas ‘tes1.4esc’ pada cryptIDE pengguna B
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
85
cryptIDE menyediakan fitur enkripsi dan dekripsi sebagai modul yang
terintegrasi ke dalamnya. Sehingga efisiensi dan efektivitas proses pengembangan
program dapat ditingkatkan. Dengan menggunakan enkripsi dan dekripsi terhadap
kode sumber, maka keamanan dan keotentikan kode sumber pengguna dapat lebih
terjamin.
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
BAB 6
KESIMPULAN DAN SARAN
6.1 Kesimpulan
Setelah
melakukan
studi
literatur,
analisis
dan
perancangan,
pengkodean,
implementasi, dan pengujian perangkat lunak cryptIDE, maka dapat disimpulkan:
1. Dengan cryptIDE, pengguna dapat memanggil compiler chain dengan opsi-opsi
yang tersedia sesuai dengan preferensinya tanpa perlu mengingat dan mengetik
command option masing-masing executable compiler chain; Hanya dengan
memberi tanda centang pada checkbox opsi pada jendela-jendela options.
2. Kedip (flicking) pada code editor terjadi dikarenakan proses seleksi, mengubah
font style, dan deseleksi lexeme oleh proses cryptIDE untuk tiap penekanan tombol
penting (tombol karakter yang dapat mengubah konten dari code editor).
3. cryptIDE menggunakan sumber daya memory yang relatif lebih besar
dibandingkan dengan Notepad. Ketika bekerja dengan sebuah berkas, maka
sumber daya memory yang dialokasikan untuk cryptIDE adalah lebih besar ± 20
persen dibandingkan dengan Notepad. Kelebihan alokasi memory ini digunakan
untuk memuatkan informasi format warna dan font style untuk tiap baris pada code
editor. Sedangkan ketika bekerja dengan beberapa berkas sekaligus, maka sumber
daya memory yang dialokasikan untuk cryptIDE akan lebih kecil dibandingkan
dengan total alokasi beberapa buah proses Notepad.
4. cryptIDE menempati ruang pada storage yang lebih besar ± 10 persen
dibandingkan dengan tanpa menggunakan cryptIDE. Kelebihan ruang storage
digunakan untuk menyimpan launcher, ekstensi-ekstensi aplikasi, dan berkasberkas konfigurasi perangkat lunak cryptIDE.
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
87
6.2 Saran
Analisis dan perancangan perangkat lunak cryptIDE dirasa masih jauh dari sempurna.
Beberapa saran untuk pengembangan dan perbaikan diantaranya:
1. Mengembangkan kelas untuk code editor dari kelas pendahulu (ancesstor)
TRichEdit atau bahkan dari kelas TObject (pendahulu dari semua kelas, kelas
yang paling dasar).
2. Menambahkan modul debugger ke dalam cryptIDE.
3. Menggunakan algoritma pembangkitan kunci dan kriptografi yang lebih baik.
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
88
DAFTAR PUSTAKA
Executing and Running Applications and Files from Delphi Code. 20 Juni 2009.
http://www.about.com/snf.htm?u=http://delphi.about.com/od/windowsshella
pi/a/executeprogram.htm%3Frd%3D1.
FORTRAN 77. 25 Maret 2009.
FORTRAN_77&redirect=no.
http://en.wikipedia.org/w/index.php?title=
Graves, D dan Hogue, C. 1994. Fortran 77 Language Reference Manual. California,
US: Silicon Graphics, Inc.
Munir, R. 2006. Kriptografi. Bandung: Penerbit Informatika.
Oualline, S. 2001.Practical C Programming. Third Edition. USA: O’Reilly Media.
Pranata, A. 2000. Pemrograman Borland Delphi 6. Edisi 4. Yogyakarta, Indonesia:
Penerbit Andi Yogyakarta.
Setiawan, Y.C. 2003. Trik & Tip Delphi. Yogyakarta, Indonesia: Penerbit Andi
Yogyakarta.
Sommerville, I. 2003. Software Engineering (Rekayasa Perangkat Lunak). Jilid 1.
Edisi 6. Terjemahan Dra. Yuhilza Hanum M.Eng. Jakarta, Indonesia:
Penerbit Erlangga.
Susilo, D. 2002. Komponen Visual: Perancangan dan Implementasinya pada Delphi 6.
Yogyakarta, Indonesia: J&J Learning.
Utdirartatmo, F. 2005. Teknik Kompilasi. Yogyakarta, Indonesia: Penerbit Graha Ilmu.
Wong, W. 2006. 20 Maret 2009. IDEs of Change. http://electronicdesign.com/
Articles/Index.cfm?ArticleID=12381&pg=1.
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
89
getle
LAMPIRAN A : Rincian Fungsi xeme
deEditor.getlexeme(str:
string; var pos: TPoint;
function
TCo
checkonly: boolean): string;
var
i: Integer;
foundNxtLxm: Boolean;
begin
result := '';
i := pos.X + 1;
foundNxtLxm := false;
while ((i <= length(str)) and not(foundNxtLxm)) do
begin
if (str[i] in [' ', '=', '+', '-', '*', '/', '(', ')', ',', '$',
':', '!', '_', #9, #10, #13, ';', '\', '?', '#',
'&', '%', '>', '<']) then
begin
if (result <> '') then
begin
foundNxtLxm := true;
end
else
begin
foundNxtLxm := true;
result := result + str[i];
if (not(checkonly)) then
pos.X := pos.X + 1;
i := i + 1;
end;
end
else if (str[i] = '''') then
begin
if (result = '') then
begin
repeat
result := result + str[i];
if (not(checkonly)) then
pos.X := pos.X + 1;
i := i + 1;
until ((i > length(str)) or (str[i] = ''''));
if (str[i] = '''') then
begin
result := result + str[i];
if (not(checkonly)) then
pos.X := pos.X + 1;
i := i + 1;
end;
end;
foundNxtLxm := true;
end
else if (str[i] = '"') then
begin
if (result = '') then
begin
repeat
result := result + str[i];
if (not(checkonly)) then
pos.X := pos.X + 1;
i := i + 1;
until ((i > length(str)) or (str[i] = '"'));
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
90
if (str[i] = '"') then
begin
result := result + str[i];
if (not(checkonly)) then
pos.X := pos.X + 1;
i := i + 1;
end;
end;
foundNxtLxm := true;
end
else if (str[i] = '.') then
begin
if (result = '') then
begin
repeat
result := result + str[i];
if (not(checkonly)) then
pos.X := pos.X + 1;
i := i + 1;
until ((i > length(str)) or (str[i] in [' ','=','+','-',
'*','/','(',')',
',','$',':','!',
'_','.',#9,#10,
#13,';','\','?',
'#','&','%','>',
'<']));
if (str[i] = '.') then
begin
result := result + str[i];
if (not(checkonly)) then
pos.X := pos.X + 1;
i := i + 1;
end;
end;
foundNxtLxm := true;
end
else
begin
result := result + str[i];
if (not(checkonly)) then
pos.X := pos.X + 1;
i := i + 1;
end;
end;
end;
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
91
highligh
LAMPIRAN B : Rincian Prosedur t
odeEditor.highlight(var
pos: TPoint; str: string);
procedure
TC
var
lxm, temp: string;
begin
repeat
if ((Length(Self.Lines[pos.Y]) > 0) and
(Self.Lines[pos.Y][1] in ['C', 'c', '*'])) then
begin
pos.X := 0;
Self.SelStart := getcurval(pos);
Self.SelLength := Length(Self.Lines[pos.Y]);
pos.X := Length(Self.Lines[pos.Y]);
changeatt(Comment);
end
else
begin
lxm := getlexeme(str, pos, false);
Self.SelStart := getcurval(pos) - Length(lxm);
Self.SelLength := Length(lxm);
if ((Length(lxm) = 1) and (lxm[1] in [' ','=','*','/','(',
')',',','$',':','_',
#9,#10,#13,';','\',
'?','#','&','%','>',
'<'])) then
begin
while (getlexeme(str, pos, true) = ' ') do
lxm := lxm + getlexeme(str, pos, false);
end
else if (lxm = '!') then
begin
Self.SelStart := getcurval(pos) - Length(lxm);
Self.SelLength := Length(Self.Lines[pos.Y]) - pos.X + 1;
pos.X := Length(Self.Lines[pos.Y]);
changeatt(Comment);
end
else if (isKeyWord(lxm)) then
changeatt(ResWrd)
else if (isIntConst(lxm)) then
begin
if (Self.Lines[pos.Y][pos.X + 1] = '.') then
begin
temp := getlexeme(str, pos, true);
if (fracIsValid(temp)) then
begin
if (UpCase(temp[Length(temp)]) in ['D', 'E']) then
begin
lxm := lxm + getlexeme(str, pos, false);
temp := getlexeme(str, pos, true);
if ((temp = '+') or (temp = '-')) then
begin
lxm := lxm + getlexeme(str, pos, false);
if (isIntConst(getlexeme(str,pos,true))) then
begin
lxm := lxm + getlexeme(str, pos, false);
Self.SelLength := Length(lxm);
changeatt(FloatConst);
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
92
end;
end
else
begin
Self.SelLength := Length(lxm);
changeatt(default);
end;
end
else
begin
lxm := lxm + getlexeme(str, pos, false);
Self.SelLength := Length(lxm);
changeatt(FloatConst);
end;
end
else
changeatt(IntConst);
end
else
changeatt(IntConst);
end
else if (isFloatConst(lxm)) then
begin
if (UpCase(lxm[Length(lxm)]) in ['D', 'E']) then
begin
temp := getlexeme(str, pos, true);
if (temp = '+') or (temp = '-') then
begin
lxm := lxm + getlexeme(str, pos, false);
if (isIntConst(getlexeme(str, pos, true))) then
begin
lxm := lxm + getlexeme(str, pos, false);
Self.SelLength := Length(lxm);
changeatt(FloatConst);
end;
end
else
changeatt(default);
end
else
changeatt(FloatConst);
end
else if (BaseLeading(lxm) <> 0) then
begin
case BaseLeading(lxm) of
1 : begin
temp := getlexeme(str, pos, true);
if (isCharConst(temp) and
(temp[1] = temp[Length(temp)]) and
isBinConst(temp)) then
begin
lxm := lxm + getlexeme(str, pos, false);
Self.SelLength := Length(lxm);
changeatt(IntConst);
end
else
changeatt(default);
end;
2 : begin
temp := getlexeme(str, pos, true);
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
93
if (isCharConst(temp) and
(temp[1] = temp[Length(temp)]) and
isOctConst(temp)) then
begin
lxm := lxm + getlexeme(str, pos, false);
Self.SelLength := Length(lxm);
changeatt(IntConst);
end
else
changeatt(default);
end;
3 : begin
temp := getlexeme(str, pos, true);
if (isCharConst(temp) and
(temp[1] = temp[Length(temp)]) and
isHexConst(temp)) then
begin
lxm := lxm + getlexeme(str, pos, false);
Self.SelLength := Length(lxm);
changeatt(IntConst);
end
else
changeatt(default);
end;
end;
end
else if (isCharConst(lxm)) then
begin
if (UpCase(Self.Lines[Pos.Y][Pos.X + 1]) in
['B', 'O', 'X', 'Z']) then
begin
temp := getlexeme(str, pos, true);
case BaseLeading(temp) of
1 : begin
if (isBinConst(lxm)) then
begin
lxm := lxm + getlexeme(str, pos, false);
Self.SelLength := Length(lxm);
changeatt(IntConst);
end
else
begin
Self.SelLength := Length(lxm);
changeatt(CharConst);
end;
end;
2 : begin
if (isOctConst(lxm)) then
begin
lxm := lxm + getlexeme(str, pos, false);
Self.SelLength := Length(lxm);
changeatt(IntConst);
end
else
begin
Self.SelLength := Length(lxm);
changeatt(CharConst);
end;
end;
3 : begin
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
94
if (isHexConst(lxm)) then
begin
lxm := lxm + getlexeme(str, pos, false);
Self.SelLength := Length(lxm);
changeatt(IntConst);
end
else
begin
Self.SelLength := Length(lxm);
changeatt(CharConst);
end;
end;
else
begin
Self.SelLength := Length(lxm);
changeatt(CharConst);
end;
end;
end
else
changeatt(CharConst);
end
else
changeatt(default);
Self.SelLength := 0;
changeatt(default);
end;
until lxm = '';
end;
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
95
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
96
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
97
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
98
Jefri Umar : Analisis Perancangan Perangkat Lunak Ide (Integrated Development Environment) Fortran G77, 2009.
Download