Pengenalan Fortran Muhamad Burhanudin
[email protected]
Abstrak Fortran merupakan salah satu bahasa pemrograman yang dibuat oleh John W. Backus yang diluncurkan pertama kali pada tahun 1957. Fortran yang merupakan singkatan dari formula translation dikembangkan pada tahun 1954 hingga 1956 oleh John Backus dan staff IBM. Fortran memiliki banyak versi, versi terbaru fortran yaitu FORTRAN 2003 . Fortran dibuat untuk memenuhi kebutuhan dalam hal numerik. Bahasa fortran ditujukan terutama sebagai aplikasi di bidang sains dan teknik.
Kata Kunci:Fortran
Pendahuluan Sebagai programer yang sudah ahli maupun pemula pasti mengenal bahasa pemprograman fortran. Disini saya akan memberi informasi lengkap mengenai fortran untuk membantu menyelesaikan masalah matematis. Pada tahun 1956, saat komputer masih digunakan terutama oleh para ilmuwan untuk menyelesaikan masalah matematis, bahasa Fortran pertama kali dikembangkan oleh IBM. Dari asal usul namanya, FORmula TRANslation, jelaslah kekuatan bahasa ini untuk digunakan dalam masalah matematis. Dalam kurun waktu 1 dekade saja, bahasa tersebut telah mempunyai standar Amerika National Standard Programming Language FORTRAN, ANSI X3.9-1966 yang biasa dikenal dengan sebutan FORTRAN 66, atau FORTRAN IV. Dengan demikian lama kelamaan banyak pihak yang mengembangkan sendiri-sendiri, yang pada gilirannya menyebabkan satu program fortran yang ditulis di satu sistem menjadi
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
besar kemungkinannya untuk tidak dapat digunakan di sistem lain. Hingga 3 dekade sejak pertama kali digunakannya, bahasa fortran hampir tidak mempunyai saingan, khususnya dalam penggunaannya pada mainframe dan super-komputer. Pada saat komputer mikro seperti PC mulai banyak digunakan, semakin banyak pula bahasa komputer yang dapat dijalankan pada PC, seperti bahasa BASIC, PASCAL, dan C, begitu pula FORTRAN.
Pembahasan Bahasa fortran hampir tidak mempunyai saingan, Pada saat komputer mikro seperti PC mulai banyak digunakan. Sekalipun demikian, pada saat tersebut popularitas penggunaan fortran di komputer mikro tidak sebesar popularitas penggunaannya di mainframe. Hal ini disebabkan antara lain karena kompailer yang ada pada saat tersebut masih mempunyai kemampuan yang sangat terbatas dibandingkan dengan yang ada di mainframe. Selain itu, kecepatan dan kemampuan memory komputer mikro pada saat tersebut masih sangat terbatas sehingga manfaat penggunaanya di komputer mikro dirasakan sangat rendah.
1. SEJARAH FORTRAN Fortran merupakan salah satu bahasa pemrograman tingkat tinggi (high level language) yang berorientasi kepada suatu masalah tertentu, khususnya masalah yang berkaitan dengan bidang matematika dan teknik. Fortran merupakan bahasa tingkat tinggi tertua dan yang pertama. Sebelum hadir fortran, bila seseorang akan memprogram komputer, maka ia harrus menggunakan bahasa mesin yang rumit. Pada tahun 1950, seorang ahli dari pabrik komputer IBM (International Bussiness Machine) bernama John Backus berhasil mengmbangkan suatu bahasa komputer yang mudah dipakai, bahkan oleh orang yang awam komputer sekalipun. Bahasa itu disebutnya FORTRAN (Formula Translation). Bahasa ini cukup mudah dipahami dan efektif untuk digunakan. Sehingga, bukan hal yang aneh apabila dengan
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
cepat, bahasa ini berkembang di masyarakat. Bahasa fortran ditujukan terutama sebagai aplikasi di bidang sains dan teknik. Namun saat ini, bahasa fortran harus bersaing dengan bahasa-bahasa pemrograman lain secara kompetitif. Menggunakan bahasa fortran tidak terlalu sulit, karena para ahli telah menyusun kamus dalam fortran untuk menterjemahkan bahasa fortran ke dalam bahasa mesin. Nama lain kamus ini adalah ”Compiler”. Tentang generasi- generasi bahasa FORTRAN sampai sejauh ini dikenal FORTRAN, FORTRAN II, FORTRAN III, dan FORTRAN IV. Keistimewaan ada pada FORTRAN IV karena ditunjang oleh kemajuan dalam hal perangkat keras yang berkembang pada masa itu. Bahasa fortran memang
cukup
ampuh menangani permasalah dan pemenuhan kebutuhan di bidang bisnis dan sains. Fortran untuk
pertama
kalinya
digunakan
pada
tahun
1954
oleh
Programmer Research Group IBM pada komputer IBM 704. Tidak membutuhkan waktu lama untuk pengembangan bahasa FORTRAN sampai pada edisi yang paling akhir yaitu FORTRAN 77 dan Waterloo FORTRAN. Kompailer FORTRAN untuk komputer mikro pertama kali dikembangkan oleh Microsoft pada tahun 1982. Tidak lama kemudian, beberapa perusahaan lain juga mengembangkan kompailer untuk komputer mikro, khususnya untuk sistem operasi PC-DOS/MS-DOS, seperti IBM (Profesional FORTRAN) dan Lahey Computer Systems (F77L). Untuk sistem operasi lainnya, juga tersedia kompailer FORTRAN, misalnya F77,(UNIX), DEC VX FORTRAN, dan IBM VS FORTRAN. Pada perkembangan berikutnya, ternyata Microsoft adalah perusahaan perangkat lunak yang terus mengembangkan kompailer FORTRAN untuk PC. Beberapa versi kompailernya yaitu versi 3.1, 3.3 hingga 4.0 sangat banyak digunakan di PC, berikut segala keterbatasannya. MS_FORTRAN versi berikutnya, yaitu versi 5.1, merupakan pengembangan yang cukup besar dibandingkan versi-versi sebelumnya. Versi ini sudah dilengkapi dengan text editor (pengolah kata), memiliki fungsi-fungsi grafis untuk memplot data sebagaimana layaknya dijumpai pada kompailer bahsa lainnya (BASIC, PASCAL, dan
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
lain-lain) dan dapat menghasilkan program bersistem operasi Windows. Versi ini bukan saja memenuhi standar ANSI FORTRAN, melainkan juga memberikan banyak pengembangan bahasa lainnya, misalnya adanya data berjenis RECORD, struktur DO WHILE, dan banyak fungsi bawaan seperti EOF(), IMAG, dsb. Seiring dengan perkembangannya PCdari 16-bit menjadi 32-bit, Microsoft juga mengembangkan kompailer fortran untuk PC berkecepatan 32-bit yang dikenal dengan sebutan MS FORTRAN PowerStation. Kompailer ini berjalan pada sistem operasi Windows / WindowsNT, dan menghasilkan executable file berkecepatan 32-bit yang berjalan di DOS dan WindowsNT. Selain memiliki keunggulan yang telah ada pada MS-FORTRAN versi 5.1, PowerStation memungkinkan pemrogram untuk menjalankan program fortran dengan memory besar tanpa perlu memecahkannya menjadi bagianbagian yang lebih kecil. Dengan kemampuan seperti ini, suatu program fortran yang semula hanya dapat dijalankan pada mainframe akan dapat dijalankan pada PC tanpa perubahan berarti. Pada perkembangannya, standar fortran yang ditetapkan adalah American National Standard Programming Language FORTRAN ANSI X3.198-1992 dan International Standard Organization, ISO/IEC 1539:1991, Information Technology Programming Language _ FORTRAn atau singkatnya FORTRAN 90. Standar ini menekankan penyempurnaan dari segi bahasa dengan memperkenalkan perkembangan yang ada dari standarisasi bahasa yang ada. Salah satu kompailer FORTRAN untuk PC yang telah memenuhi standar FORTRAN 90 adalah MS FORTRAN PowerStation
2. VERSI BAHASA FORTRAN 1. Fortran I Fo r t r a n v e r s i p e r t a m a ya n g d i r i l i s u n t u k I B M 7 0 4 m e m i l i k i p a l i n g t i d a k 3 2 pernyataan.
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
2. Fortran II Fortran II milik IBM muncul pada tahun 1958. Peningkatan yang dimiliki versi IIini daripada versi sebelumnya adalah mendukung pemrograman prosedural, yang mana memberikan kesempatan kepada pengguna untuk menuliskan perintah – perintah yang mengandung fungsi dan subroutine. Enam pernyataan baru dirilis pada versi terbaru ini.
3. Fortran III Walaupun IBM terus mengembangkan Fortran selama tahun 1958, namun Fortranversi III ini tidak sampai dirilis resmi. Sama seperti Fortran 704 (Fortran I) danFortran II, Fortran III pun memiliki kelemahan, yaitu ada beberapa feature yangharus mengikuti mesin induk nya. Sehingga kode – kode yang dituliskan tidak dapat dipindahkan begitu saja antara mesin satu dengan yang lainnya.
4. Fortran IV Sejak tahun 1961, IBM pun memulai pengembangan Versi terbaru, yaitu FortranI V Fo r t r a n
s e b a ga i versi
–
akibat
permintaan
konsumen.
K e k u r a n ga n
v e r s i sebelumnya, yaitu feature yang memiliki
ketergantungan terhadap mesin induk pun dihilangkan.
5. Fortran 66 Barangkali perkembangan Fortran yang paling signifikan adalah ketika Asosiasi
Standar
membentuk
Amerika
komite
( A N S I ) 1.M e m u t u s k a n
u n t u k mengembangkan Fortran Standar
Baku Amerika (American Standard Fortran). Pada bulan Maret tahun 1966, dua standar ini pun dikeluarkan. Pertama adalahFO R T R A N
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
s e d a n g ya n g k e d u a a d a l a h f o r t r a n D a s a r ( Basic FORTRAN). Fortran standar pertama akhirnya dikenal dengan Fortran 66.
6. Fortran 77 S e t e l a h d i r i l i s n ya
Fo r t r a n s t a n d a r ve r s i 6 6 , p a r a p a b r i k a n
p e m b u a t c o m p i l e r Fortran mengumumkan adanya beberapa kemampuan Fortran standar yang belumd i k e t a h u i s e b e l u m n ya . H a l i n i m e m b u a t A N S I p a d a t a h u n 1 9 6 9 b e k e r j a k e r a s memperbaiki Fortran standar yang dirilis pada tahun 1966 itu. Rancangan akhir revisi Fortran versi 66 sebenarnya telah diluncurkan pada tahun 1977, namun barudiakui sebagai standar baru Fortran pada bulan April tahun 1978. Standar baru Fo r t r a n
ya n g
dikenal
juga
d e n ga n
Fo r t r a n
77,
memiliki
b e b e r a p a t a m b a h a n k e m a m p u a n ya n g s a n ga t p e n t i n g s e b a ga i s a l a h s a t u p e m e c a h a n k e k u r a n g a n Fortran 66.
7. Fortran 90 Versi pengganti Fortran 77 yang paling lambat peluncurannya adalah Fortran versi90. Fortran versi 90 baru diluncurkan sebagai Standar ANSI pada tahun 1992. P e r u b a h a n telah
yang
menambahkan
mendasar
beberapa
pada
versi
keunggulan
ini yang
mencerminkan perubahan penting dalam bahasa pemrograman praktis yang mana telah berevolusi sejak standar tahun 1978.
8. Fortran 95 Fortran 95 hanyalah merupakan versi Fortran terbaru dengan mengalami sedikit perbaikan kecil dari Fortran versi sebelumnya. Walaupun demikian, tetap ada beberapa kemampuan tambahan jika dibandingkan Fortran 90.
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
9. FORTRAN
2003 –
ISO/IEC
1539-1:2004(E)
–
mengalami
beberapa
penambahan object-oriented support dan interoperabilitas dengan bahasa C (sebagai natifnya).
3. KELEBIHAN DAN KELEMAHAN FORTRAN. Fungsi fortran yaitu untuk memenuhi kebutuhan dalam hal numerik.
Kelebihan :
FORTRAN bisa menangani ekspresi matemática dan logika yang kompleks. Pernyataanya cukup pendek dan sederhana.
Program FORTRAN yang dikembangkan pada satu tipe komputer bisa dengan mudah dimodifikasi agar bisa bekerja pada tipe yang lain.
Kekurangan :
FORTRAN tidak menangani operasi input dan output pada peralatan penyimpanan seefisien bahasa lain yang levelnya lebih tinggi
Memiliki keterbatasan untuk mengekspresikan dan memproses data nonnumerik
Tidak bisa dibaca atau dipahami semudah bahasa level tinggi yang
Terdapat beberapa hal yang menjadikan bahasa pemrograman Fortran lebih unggul dibandingkan dengan bahasa pemrograman lain yaitu, 1. proses eksekusi / kompilasi program yang cukup cepat. 2. metode penulisan program sangat fleksibel, setiap bagian blok program dapat ditulis secara tidak berurutan. 3. mendukung teknik kompilasi secara menyeluruh (all compilation), maksudnya misalkan kita memiliki 5 buah file Fortran yang saling berhubungan maka semua file tersebut dapat langsung dikompilasi semua dalam satu perintah dengan bantuan makefile yang kita buat, bagian ini akan dijelaskan pada bab yang akan datang. 4. memilki kompilator (compiler) yang cukup banyak berkembang.
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
Masih banyak keunggulan yang dimiliki oleh bahasa pemrograman ini yang mungkin dapat dirasakan ketika kita membuat program.
4. TIPE DATA FORTRAN Tipe-tipe data yang terdapat dalam FORTRAN antara lain: a) Variable integer Variabel integer adalah variable yang digunakan untuk menyimpan nilai numerik bulat. Bila tidak didefinisikan, maka variabel integer harus ditunjukkan oleh nama variabelnya yang diawali dengan huruf I, J, K , L, M,atau N. Contoh : INTEGER ISI ISI = 275
b) Variable real preposisi ganda Adalah
variable
yang
dibunakan
untuk
menyimpan
nilai
numeric
pecahansebesar 8 byte. Nama variabelnya harus diawali dengan huruf selain I, J, K, L,M, dan N Contoh : REAL*8 NILAI NILAI = 275 Atau DOUBLE PRECISION NILAI NILAI = 75
c) Variable real preposisi tunggal Adalah variable yang digunakan untuk menyimpan nilai numerik pecahan sebesar 4 byte. Bila tidak didefinisikan, maka variabel integer harus ditunjukkan oleh nama variabelnya yang diawali dengan huruf I, J, K , L, M, atau N.
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
Contoh : REAL NILAI NILAI = 99
d) Variable karakter Adalah variable yang digunakan untuk menyimpan nilai karakter. Default dari variabel ini adalah 4 byte dan dapat didefinisikan menjadi 1 byte atau n byte (maksimum 127 byte). Nama dari variabel karakter bebas ini bebas diawali dengan huruf apapun.
e) Variable logika Adalah variable yang digunakan untuk menyimpan nilai logika. Default dari variabel ini adalah 4 byte dan dapat didefinisikan menjadi 2 byte Contoh: STATUS = .TRUE
5. STATMENT INPUT OUTPUT PADA FORTRAN A. READ Dipergunakan untuk membaca data dari suatu media input. BU: READ(I, L) var1, var2,… Dengan: I : Nomor alat input, yaitu nomor yang menyatakan suatu alat input, misal: keyboard, disk dll. L : label FORMAT Var1, var2 : Nama varabel yang datanay dibaca. Contoh : READ (*,11)A,B,I
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
FORMAT (2F10.2,I5) Keterangan: Harga-harga A, B , I dibaca memlalui alat input yang bertanda * (standar input) biasanya keyboard, dengan tata letaknya sesuai FORMAT yang berlabel 11 yaitu: A dengan FORMAT F10.2 B dengan FORNAT F10.2 I dengan FORMAT I5
B. WRITE Dipergunakan untuk menuliskan isi suatu variabel pada suatu media output. BU: WRITE(I,L) var1, var2 … Dengan: I : Nomor alat output, yaitu nomor yang menyatakan suatu alat output, misal monitor, printer,disk L : Label FORMAT Var1, var2 : Nama variabel yang datany dituliskan. Contoh: WRITE (*,10) A,B,C FORMAT(3F20.8) Keterangan: Harga-harga A,B,C dituliskan pada alat aoutput yang bertanda * ( standar output) biasnya monitor (console). Dengan tata letaknya sesuai FORMAT.
C. FORMAT Dipergunakan untuk menentukan tata letak suatu data masukan pada media input maupun data keluaran pada media output. Ada tiga jenis format untuk menyatakan data numeris yatiu: tipe I, tipe F dan tipe E.
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
Format Tipe I Tipe I dipakai untuk membaca atau menuliskan data INTEGER. BU :
nIw
Keterangan: n = Cacah format I w = Banyak kolom yang dipakai oleh data. Contoh: READ(*,100) IDATA, IHASIL FORMAT(I5,I5) Atau FORMAT(2I5)
Format Tipe F Tipe F dipakai untuk membaa atau menuliskan data-data REAL. BU:
nFw.d
Keterangan: n = cacah format F w = banyak kolom yang dipakai oleh data d = cacah digit di belakang titik desimal. Contoh: READ(*,100) X1, X2 FORMAT(F4.2,F4.2) Atau FORMAT(2F4.2) Format Tipe E Tipe E dipakai untuk membaca atau menuliskan data-data REAL dengan cara EXPONENT.
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
BU:
nEw.d
Keterangan: n = cacah format E w = banyak kolom yang dipakai oleh data d = cacah digit di belakang titik desimal. Contoh: READ(*,100) X1, X2 FORMAT(E4.2,E4.2) Atau FORMAT(2E4.2)
Format Tipe X Tipe X ini bukan untuk membaca atau menulis, melainkan hanya untuk memberitahu banyak ruang kosong (spasi) antar data-data yang dibaca atau ditulis. BU: nX
dengan n: jumlah ruang kosong.
Contoh: READ(*,100) PDAT,NILAI FORMAT(F5.1,3X,I5) Format Literal Untuk menuliskan data literal langsung dari program ke media output. BU: ‘ xxxxxxxxxx’ Contoh: WRITE(*,100) FORMAT(‘BELAJAR BAHASA FORTRAN’)
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
Penutup Demikian penjelasan singkat mengenai bahasa Fortran beserta sejarah dan kelebihan maupun kekurangan Fortran, mohon maaf bila ada kesalahan dalam penulisan. semoga bermanfaat.
Referensi http://hrefel.blogspot.com/2012/11/bahasa-pemrograman-fortran.html http://www.globalkomputer.com/Bahasan/Programming/Produk/FORTRAN.html
Biografi Nama : Muhamad Burhanudin Alamat : Jl.Ahmad Yani Kp.Ciawi-Pisangan Jaya kab.Tangerang Hobby : Bermain Game Online
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org