Algoritma Kriptografi Klasik: Caesar Cipher Interaksi Pengguna dengan Fortran

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. Tabel 2.1 Tabel Substitusi dengan Pergeseran Sejauh 3 Huruf Plainteks 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 Cipherteks D E F G H I J K 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 program- program 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. 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 9095, 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. 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 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 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 Angka 0 1 2 3 4 5 6 7 8 9 Tabel 2.3 Himpunan Karakter Khusus dan Karakter Alphabet Tambahan Nama Karakter Karakter Blank Equal = Plus + Minus - Asterisk Slash Left parenthesis Right parenthesis Comma , Decimal point . Currency symbol Apostrophe ‘ Colon : Exclamation point Quotation Mark “ Underscore _

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. 5. DOUBLE CO MPLEX – pasangan data DOUBLE PRECISION dan komponen imajiner. Jefri Umar : Analisis Perancangan Perangkat Lunak Ide Integrated Development Environment Fortran G77, 2009. 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: X4 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. 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 masukankeluaran IO 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. 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. 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 direferensikandipanggil oleh sebuah pernyataan dari program utama atau C atau pada kolom 1 menandakan komentar pernyataan label terletak pada kolom 1-5 pernyataan terletak pada kolom 7-72 kolom 73 dan seterusnya diabaikan Karakter selain 0 dan spasi pada kolom 6 menandakan sambungan dari baris sebelumnya Jefri Umar : Analisis Perancangan Perangkat Lunak Ide Integrated Development Environment Fortran G77, 2009. 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. 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.