Skip to content

Tipe data di Fortran 95 : Tipe Data Intrinsik dan Turunan

September 8, 2012

Bahasa pemprograman Fortran memiliki tipe data yang telah terdefinisi oleh bahasa Fortran sendiri, yang disebut sebagai intrinsic data types atau tipe data intrinsik yang terdiri dari lima tipe data. Namun, memungkinkan juga jika kita mendifinisikan tipe data lain berdasarkan kumpulan dari tipe data instrinsik, yang disebut sebagai derived data types. Bisa dibilang ada dua tipe dari tipe data ini.

1. Tipe Data Intrinsik. 

Dari kelima tipe data yang ada, tiga diantaranya merupakan tipe numerik yang digunakan sebagai kalkulasi — integer, real, dan complex. Sedangkan, dua diantaranya merupakan non-numerik yang biasanya digunakan untuk pemprosesan text — character dan logical.

Integer, merupakan tipe data bilangan bulat, yang nilainya bisa signed atau unsigned — teman-teman pasti sangat familiar dengan yang ini. Kalau komputer kita 32 bit, n=32, secara default, range nya adalah -2n-1 hingga +2n-1-1 atau -2147483648 hingga +2147483648. Contoh,

integer, parameter :: a = 2147483648 !atau yang dibawah
integer(kind=4), parameter :: a0 = 2147483648 !secara default, alokasi 4 byte
integer(4), parameter :: a1 = 2147483648 !bisa juga disingkat penulisannya seperti ini
integer(16), parameter :: a2 = 2147483648 !bisa juga mengalokasi 8,16,.. byte

Baca selanjutnya…

Template Laporan Tugas Akhir dengan LaTex

Juni 30, 2012

Sekedar berbagi, bagi teman-teman Teknik Fisika ITB yang berniat menulis laporan Tugas Akhir dengan LaTex, silakan gunakan template ini. Semoga bermanfaat.🙂

Ada update dari versi sebelumnya pada Versi 1.8 ini, yaitu:
ada penambahan berupa DAFTAR TABEL dan LAMPIRAN, serta koreksi untuk DAFTAR PUSTAKA (terimakasih untuk yang melaporkan :D)
##FILE YANG DIUBAH
a. preamble.tex (cukup banyak perubahan, ganti aja file nya )
b. identitas.tex (ada penambahan keywords tiga baris paling bawah aja, biar pas di klik kanan, ada info dari file pdf-nya)
c. daftarpustaka.tex (ganti file nya aja)
*opsional
d. abstrak.tex (opsional, keywordnya otomatis aja, hehe)
##FILE YANG DITAMBAHKAN
a. daftartabel.tex
b. lampiran.tex
*note: sebagai tambahan, di BAB 2 ada tambahan contoh membuat tabel.

Cara download: klik kanan, dan “save link as”, kemudian rename ekstensi dari “.pdf” jadi “.zip”, hehe.

Download versi terbaru: Versi 1.8

Download versi lama: Versi 1.7

Menghasilkan Nilai Acak dengan Seed : Fortran 90

April 21, 2012

Pada simulasi sains, sering kali dibutuhkan sederetan nilai random , atau acak untuk mensimulasikan kondisi sebenarnya sebagai input. Disini di bahas sedikit mengenai penulisan kode Fortran 90 untuk menghasilkan nilai acak. Fortan 90 sendiri telah memiliki rutin intrinsik untuk menghasilkan nilai acak yang terdistribusi secara seragam atau uniform antara rentang 0-1 yaitu RANDOM_NUMBER(). Permasalahannya, setiap kali kita memanggil nilai tersebut, selalu menghasilkan nilai-nilai acak yang sama. Bahkan jika kita berpindah ke mesin yang lain, tetap, dihasilkan deretan nilai-nilai acak yang sama, hmm, apakah bisa di sebut acak?.

Penghasil nilai acak yang merupakan fitur dari Fortran 90 ini, tidak memberikan spesifikasi dari algortima untuk menghasilkan nilai acak. Namun, kita bisa mengunakan seed sebagai start-up, sehingga nilai acak yang dihasilkan tidak akan sama lagi. Oleh karenanya, seed semestinya dibuat dinamik, sehingga setiap kali nilai acak yang dihasilkan tidak akan sama. Untuk lebih detail mengenai seed yang akan digunakan adalah RANDOM_SEED(), baiknya baca dokumentasi gnu ini.

Sebenarnya, Fortran sendiri telah menyediakan seed secara default, namun nilainya tetap. Disini kita akan memanfaatkan rutin instrinsik dari Fortran 90, yaitu DATE_AND_TIME() sebagai seed, dengan anggapan waktu berjalan selalu maju, sehingga ketika kita me-run lagi di lain kesempatan, hasilnya akan berbeda. Resolusi dari fitur DATE_AND_TIME() ini adalah satu milidetik. Untuk lebih detail mengenai rutin DATE_AND_TIME(), baiknya baca dokumentasi oracle ini.

Anyway, pembelajaran akan lebih baik jika kita mencobanya sendiri.🙂

Baca selanjutnya…

Kalkulasi Energi Atom Helium: Aplikasi Hartree-Fock (ditulis dengan Fortran 90)

November 16, 2011

Menyelesaikan persamaan Schrödinger atom Helium pada keadaan dasar (l=0) dengan metoda Hartree-Fock dengan basis yang digunakan adalah gaussian.

Persamaan Schrödinger atom Helium dengan pendekatan Born-Oppenheimer bebas dari spin dengan mengikuti aturan antisimetrik fermion:

\left[-\frac{1}{2}\bigtriangledown_{r1}^2 - \frac{1}{2}\bigtriangledown_{r2}^2 - \frac{Z}{r_1} - \frac{Z}{r_2} + \frac{1}{r_{12}} \right]\phi(r_1)\phi(r_2)=E\phi(r_1)\phi(r_2)

Untuk mendekati energi keadaan dasar dan fungsi gelombang dari atom Helium (l=0), digunakan persamaan gelombang trivial yang merupakan kombinasi linear dari basis set fungsi Gaussian:

\phi(r)=\sum_{p=1}^{N}C_{p}\chi_{p}

\chi_{p}=\exp{(-\alpha_{p}r^2)}

Nilai α merupakan konstanta variasional yang diperoleh dari tabel. Pada atom Helium nilai dari
α=[0.297104,      1.236745,     5.74982,        38.216677]

Setelah disubtitusikan, diperoleh persamaan :

\sum_{pq}\left(h_{pq}+\sum_{rs}C_rC_sQ_{pqrs}\right)=E\sum_{pq}S_{pq}C_{q}

dengan elemen-elemen matriks:

Baca selanjutnya…

Install Program atau Paket Menggunakan Tools di Slackware

Desember 24, 2009

Mengnstall program atau aplikasi tambahan di slackware bisa menggunakan beberapa tools. Tools yang saya paparkan di sini :

  1. Menggunakan slackpkg (bawaan slakcware)
  2. Menggunakan slapt-get
  3. Menggunakakan pkgtool
  4. Menggunakan script dari slackbuild

1. Menggunakan fasilitas slackpkg

Fasilitas ini merupakan bawaan dari slackware langsung. Manualnya telah tersedia, dan merupakan tool untuk mengatur paket-paket Slackware. Dan jangan lupa untuk mengupdate terlebihdahulu untuk meload list database program.
Untuk mengupdate kemudian menginstall sebuah paket cukup ketikkan :

#slackpkg update
#slackpkg install nama_paket

untuk pilihan-pilihan option slackpkg ini dapat di lihat langsung:

$slackpkg -h

Karena cara ini diarahkan pada suatu mirror, site atau storage tertentu, konfigurasi alamatnya dapat di atur di “/etc/slackpkg/mirrors” , misalnya saya tambahkan ke path mirror slackware Indonesia, dengan asumsi saya menggunakan slackware13 64 bit, maka tambahkan di /etc/slackpkg/mirrors :

http://slackware.linux.or.id/pub/slackware/slackware64-13.0/

2. Menggunakan slapt-get

Merupakan tools untuk sistem manajemen yang lebih mirip dengan Debian, yaitu apt-get.
Untuk menggunakannya harus mengisntall dulu tools slapt-get tersebut. Paketnya dapat di peroleh dengan mendownload salah satunya di link ini.

Setelah downlaod paketnya, install dengan menggunakan installpkg, misalnya nama file yang saya downlaod adalah slapt-get-0.9.12d-i386-1.tgz maka untuk menginstall menjadi :

#installpkg slapt-get-0.9.12d-i386-1.tgz

Setelah slapt-get terinstall, saatnya konfigurasi sourcenya😀,

Baca selanjutnya…

Install dan Konfigurasi Dasar DNS Server di Ubuntu

Desember 2, 2009

Intro
DNS (Domain Name System) merupakan suatu hireraki dari database yang terdistribusikan. Database tersebut berisi pemetaan dari nama suatu host ke alamat IP dan sebaliknya.

Struktur database DNS menyerupai struktur tree (pohon) dan terbagi-bagi ke dalam kelompok dan hirarki tersebut disebut sebagai Domain Name Space. Pada puncaknya disebut root node, pada setiap node dalam tree tersebut mempunyai keterangan berupa label misalnya .org , .com, .edu, .net, dsb yang relative terhadap puncaknya (parent). Kemudian di kenal sebuah istilah Domain Name Space.
Domain name space dapat digambarkan :

Jadi, Query berjalan dari yang paling atas.

DNS Server sendiri dapat ni install menjadi tiga tipe :

  • Primary Name Server
  • Secondary Name Server
  • Caching Name Server

Perbedaan ketiganya berdasarkan fungsinya, dan diatur dalam “named.conf”

Daemon yang digunakan untuk DNS Server adalah Bind9 (Berkeley Internet Name Domain)

Install Service

Install dari paket repository :

# apt-get install -y bind9


Konfigurasi named.conf Sebagai Primary Name Server

Edit file /etc/bind/named.conf

# mcedit /etc/bind/named.conf

sintak yang diawali dengan titik koma (;), karakter seterusnya selama dalam baris yang sama merupakan komentar dan tidak termasuk ke sintak atau argumen. Misalnya saja, domain yang akan saya buat adalah “pinkers.id”, dan alamat network yang digunakan “167.205.88.0” , DNS terinstall di IP “167.205.88.99” dengan nama host “ns.pinkers.id”.
Buat konfigurasi seperti ini : Baca selanjutnya…

Install dan Konfigurasi Dasar DHCP Server di Ubuntu

November 27, 2009

DHCP server merupakan server yang menyediakan layanan pemberian alamat IP pada client secara otomatis.
Daemon yang digunakan adalah dhcp3-server.
Untuk installasi dan konfigurasinya :

Install dhcp3-server

Asumsi, sources.list telah tertuju pada alamat yang benar, jadi install dari paket repository😀

# apt-get install -y dhcp3-server

kemudian, konfigurasi file dhcpd.conf

authorative ;
ddns-update-style none ;
option nbgrub-menu code = text ;
default-lease-time 600 ;
max-lease-time 3600 ;

Baca selanjutnya…