Minggu, 30 Juni 2013

Bioinformatika


Pada artikel kali ini kita akan mengenal tentang ‘Bioinformatika’. Apa sih itu bioinformatika? Memang sudah begitu banyak artikel yang membahas tentang istilah ini, akan tetapi tidak ada salahnya kalau saya mencoba mengulas kembali dari sisi yang sedikit berbeda. Istilah ini berasal dari bahasa Inggris yaitu bioinformatics, yang artinya ilmu yang mempelajari tentang penerapan teknik komputasional untuk mengelola dan menganalisis informasi biologis (kalau kata wikipedia ^^). Akan tetapi kalau saya boleh sederhanakan menggunakan kata-kata sendiri, bioinformatika adalah segala bentuk penggunaan komputer dalam menangani masalah-masalah biologi. Dalam prakteknya, definisi yang digunakan oleh kebanyakan orang adalah satu sinonim dari komputasi biologi molekul (penggunaan komputer dalam menandai karakterisasi dari komponen-komponen molekul dari makhluk hidup). Sedangkan menurut Fredj Tekaia dari Institut Pasteur [TEKAIA 2004], Bioinformatika (Klasik) adalah “metode matematika, statistik dan komputasi yang bertujuan untuk menyelesaikan masalah-masalah biologi dengan menggunakan sekuen DNA dan asam amino dan informasi-informasi yang terkait dengannya”.
Jadi, Bioinformatika ini merupakan ilmu terapan yang lahir dari perkembangan teknologi informasi dibidang molekular. Pembahasan dibidang bioinformatika ini tidak terlepas dari perkembangan biologi molekular modern, salah satunya peningkatan pemahaman manusia dalam bidang genomic yang terdapat dalam molekul DNA.
Kemampuan untuk memahami dan memanipulasi kode genetik DNA ini sangat didukung oleh teknologi informasi melalui perkembangan hardware dan soffware. Baik pihak pabrikan sofware dan harware maupun pihak ketiga dalam produksi perangkat lunak. Salah satu contohnya dapat dilihat pada upaya Celera Genomics, perusahaan bioteknologi Amerika Serikat yang melakukan pembacaan sekuen genom manusia yang secara maksimal memanfaatkan teknologi informasi sehingga bisa melakukan pekerjaannya dalam waktu yang singkat (hanya beberapa tahun).
SEJARAH
Bioinformatika pertamakali dikemukakan pada pertengahan 1980an untuk mengacu kepada penerapan ilmu komputer dalam bidang biologi. Meskipun demikian, penerapan bidang-bidang dalam bioinformatika seperti pembuatan pangkalan data dan pengembangan algoritma untuk analisis sekuens biologi telah dilakukan sejak tahun 1960an.
Kemajuan teknik biologi molekuler dalam mengungkap sekuens biologi protein (sejak awal 1950an) dan asam nukleat (sejak 1960an) mengawali perkembangan pangkalan data dan teknik analisis sekuens biologi. Pangkalan data sekuens protein mulai dikembangkan pada tahun 1960an di Amerika Serikat, sementara pangkalan data sekuens DNA dikembangkan pada akhir 1970an di Amerika Serikat dan Jerman pada Laboratorium Biologi Molekuler Eropa (European Molecular Biology Laboratory).
Penemuan teknik sekuensing DNA yang lebih cepat pada pertengahan 1970an menjadi landasan terjadinya ledakan jumlah sekuens DNA yang dapat diungkapkan pada 1980an dan 1990an. Hal ini menjadi salah satu pembuka jalan bagi proyek-proyek pengungkapan genom, yang meningkatkan kebutuhan akan pengelolaan dan analisis sekuens, dan pada akhirnya menyebabkan lahirnya bioinformatika.
Perkembangan jaringan internet juga mendukung berkembangnya bioinformatika. Pangkalan data bioinformatika yang terhubungkan melalui internet memudahkan ilmuwan dalam mengumpulkan hasil sekuensing ke dalam pangkalan data tersebut serta memperoleh sekuens biologi sebagai bahan analisis. Selain itu, penyebaran program-program aplikasi bioinformatika melalui internet memudahkan ilmuwan dalam mengakses program-program tersebut dan kemudian memudahkan pengembangannya.
CABANG-CABANG YANG TERKAIT DENGAN BIOINFORMATIKA
Dari pengertian Bioinformatika yang telah dijelaskan, kita dapat menemukan banyak terdapat banyak cabang-cabang disiplin ilmu yang terkait dengan Bioinformatika, terutama karena bioinformatika itu sendiri merupakan suatu bidang interdisipliner. Hal tersebut menimbulkan banyak pilihan bagi orang yang ingin mendalami Bioinformatika.
Biophysics
Adalah sebuah bidang interdisipliner yang mengalikasikan teknik-teknik dari ilmu Fisika untuk memahami struktur dan fungsi biologi (British Biophysical Society). Disiplin ilmu ini terkait dengan Bioinformatika karena penggunaan teknik-teknik dari ilmu Fisika untuk memahami struktur membutuhkan penggunaan TI.
Computational Biology
Computational biology merupakan bagian dari Bioinformatika (dalam arti yang paling luas) yang paling dekat dengan bidang Biologi umum klasik. Fokus dari computational biology adalah gerak evolusi, populasi, dan biologi teoritis daripada biomedis dalam molekul dan sel.
Medical Informatics
Menurut Aamir Zakaria [ZAKARIA2004] Pengertian dari medical informatics adalah “sebuah disiplin ilmu yang baru yang didefinisikan sebagai pembelajaran, penemuan, dan implementasi dari struktur dan algoritma untuk meningkatkan komunikasi, pengertian dan manajemen informasi medis.” Medical informatics lebih memperhatikan struktur dan algoritma untuk pengolahan data medis, dibandingkan dengan data itu sendiri. Disiplin ilmu ini, untuk alasan praktis, kemungkinan besar berkaitan dengan data-data yang didapatkan pada level biologi yang lebih “rumit”.
Cheminformatics
Cheminformatics adalah kombinasi dari sintesis kimia, penyaringan biologis, dan pendekatan data-mining yang digunakan untuk penemuan dan pengembangan obat (Cambridge Healthech Institute’s Sixth Annual Cheminformatics conference). Kemungkinan penggunaan TI untuk merencanakan secara cerdas dan dengan mengotomatiskan proses-proses yang terkait dengan sintesis kimiawi dari komponenkomponen pengobatan merupakan suatu prospek yang sangat menarik bagi ahli kimia dan ahli biokimia.
Genomics
Genomics adalah bidang ilmu yang ada sebelum selesainya sekuen genom, kecuali dalam bentuk yang paling kasar. Genomics adalah setiap usaha untukmenganalisa atau membandingkan seluruh komplemen genetik dari satu spesies atau lebih. Secara logis tentu saja mungkin untuk membandingkan genom-genom dengan membandingkan kurang lebih suatu himpunan bagian dari gen di dalam genom yang representatif.
Mathematical Biology
Mathematical biology juga menangani masalah-masalah biologi, namun metode yang digunakan untuk menangani masalah tersebut tidak perlu secara numerik dan tidak perlu diimplementasikan dalam software maupun hardware.
Menurut Alex Kasman [KASMAN2004] Secara umum mathematical biology melingkupi semua ketertarikan teoritis yang tidak perlu merupakan sesuatu yang beralgoritma, dan tidak perlu dalam bentuk molekul, dan tidak perlu berguna dalam menganalisis data yang terkumpul.
Proteomics
Istilah proteomics pertama kali digunakan untuk menggambarkan himpunan dari protein-protein yang tersusun (encoded) oleh genom. Michael J. Dunn [DUNN2004], mendefiniskan kata “proteome” sebagai: “The PROTEin complement of the genOME“. Dan mendefinisikan proteomics berkaitan dengan: “studi kuantitatif dan kualitatif dari ekspresi gen di level dari protein-protein fungsional itu sendiri”. Yaitu: “sebuah antarmuka antara biokimia protein dengan biologi molekul”.
Pharmacogenomics
Pharmacogenomics adalah aplikasi dari pendekatan genomik dan teknologi pada identifikasi dari target-target obat. Contohnya meliputi menjaring semua genom untuk penerima yang potensial dengan menggunakan cara Bioinformatika, atau dengan menyelidiki bentuk pola dari ekspresi gen di dalam baik patogen maupun induk selama terjadinya infeksi, atau maupun dengan memeriksa karakteristik pola-pola ekspresi yang ditemukan dalam tumor atau contoh dari pasien untuk kepentingan diagnosa (kemungkinan untuk mengejar target potensial terapi kanker).
Istilah pharmacogenomics digunakan lebih untuk urusan yang lebih “trivial” — tetapi dapat diargumentasikan lebih berguna– dari aplikasi pendekatan Bioinformatika pada pengkatalogan dan pemrosesan informasi yang berkaitan dengan ilmu Farmasi dan Genetika, untuk contohnya adalah pengumpulan informasi pasien dalam database.
Pharmacogenetics
Pharmacogenetics adalah bagian dari pharmacogenomics yang menggunakan metode genomik/Bioinformatika untuk mengidentifikasi hubungan-hubungan genomik, contohnya SNP (Single Nucleotide Polymorphisms), karakteristik dari profil respons pasien tertentu dan menggunakan informasi-informasi tersebut untuk memberitahu administrasi dan pengembangan terapi pengobatan.
Gambaran dari sebagian bidang-bidang yang terkait dengan Bioinformatika di atas memperlihatkan bahwa Bioinformatika mempunyai ruang lingkup yang sangat luas dan mempunyai peran yang sangat besar dalam bidangnya. Bahkan pada bidang pelayanan kesehatan Bioinformatika menimbulkan disiplin ilmu baru yang menyebabkan peningkatan pelayanan kesehatan.

Senin, 13 Mei 2013

ALGORITMA PARALLEL


Dalam beberapa kasus, algoritma sekuensial dengan mudah dapat diadaptasi ke dalam lingkungan paralel. Namun dalam kebanyakan kasus, problem komputasi harus dianalisa ulang dan menghasilkan algoritma paralel yang baru. Terdapat beberapa penelitian mengenai perancangan algoritma paralel untuk problem-problem praktis seperti pengurutan, pemrosesan geraf, solusi untuk persamaan lanjar, solusi untuk persamaan diferensial, dan untuk simulasi. Teknik pembangunan algoritma paralel dapat dibedakan sebagai berikut :

Paralelisme Data
Teknik paralelisme data merupakan teknik yang paling banyak digunakan dalam program paralel. Teknik ini lahir dari penelitian bahwa aplikasi utama komputasi paralel adalah dalam bidang sain dan engineer, yang umumnya melibatkan array multi-dimensi yang sangat besar. Dalam program sekuensial biasa, array ini dimanipulasi dengan mempergunakan perulangan bersarang untuk mendapatkan hasil. Kebanyakan program paralel dibentuk dengan mengatur ulang algoritma sekuensial agar perulangan bersarang tersebut dapat dilaksanakan secara paralel. Paralelisme data menunjukkan bahwa basis data dipergunakan sebagai dasar untuk membentuk aktifitas paralel, dimana bagian yang berbeda dari basis data akan diproses secara paralel. Dengan kata lain paralelisme dalam program ini dibentuk dari penerapan operasi-operasi yang sama ke bagian array data yang berbeda. Prinsip paralelisme data ini berlaku untuk pemrograman multiprosesor dan multikomputer.

Partisi Data
Merupakan teknik khusus dari Paralelisme Data, dimana data disebar ke dalam memori-memori lokal multikomputer. Sebuah proses paralel kemudian ditugaskan untuk mengoperasikan masingmasing bagian data. Proses tersebut harus terdapat dalam lokal memori yang sama dengan bagian data, karena itu proses dapat mengakses data tersebut secara lokal. Untuk memperoleh kinerja yang baik, setiap proses harus memperhatikan variabel-variabel dan data-data lokalnya masing-masing. Jika suatu proses membutuhkan akses data yang terdapat dalam remote memori, maka hal ini dapat dilakukan melalui jaringan message passing yang menghubungkan prosesor-prosesor. Karena komunikasi antar prosesor ini menyebabkan terjadinya waktu tunda, maka messsage passing ini sebaiknya dilakukan dalam frekuensi yang relatif kecil. Dapat disimpulkan bahwa tujuan dari partisi data adalah untuk mereduksi waktu tunda yang diakibatkan komunikasi messsage passing antar prosesor. Algoritma paralel mengatur agar setiap proses dapat melakukan komputasi dengan lokal data masing-masing.

Algoritma Relaksasi
Pada algoritma ini, setiap proses tidak membutuhkan sinkronisasi dan komunikasi antar proses. Meskipun prosesor mengakses data yang sama, setiap prosesor dapat melakukan komputasi sendiri tanpa tergantung pada data antara yang dihasilkan oleh proses lain. Contoh algoritma relaksasi adalah algoritma perkalian matrik, pengurutan dengan mengunakan metode ranksort dan lain sebagainya.

Paralelisme Sinkron
Aplikasi praktis dari komputasi paralel adalah untuk problem yang melibatkan array multi-dimensi yang sangat besar. Problem tersebut mempunyai peluang yang baik untuk paralelisme data karena elemen yang berbeda dalam array dapat diproses secara paralel. Teknik komputasi numerik pada array ini biasanya iteratif, dan setiap iterasi akan mempengaruhi iterasi berikutnya untuk menuju solusi akhir. Misalnya saja untuk solusi persamaan numerik pada sistem yang besar. Umumnya, setiap iterasi mempergunakan data yang dihasilkan oleh iterasi sebelumnya dan program akhirnya menuju suatu solusi dengan akurasi yang dibutuhkan. Algoritma iterasi ini mempunyai peluang paralelisme pada setiap iterasinya. Beberapa proses parallel dapat dibentuk untuk bekerja pada array bagian yang berbeda. Namun setelah setiap iterasi, prosesproses harus disinkronkan, karena hasil yang diproduksi oleh satu proses dipergunakan oleh prosesproses lain pada iterasi berikutnya. Teknik pemrograman paralel seperti ini disebut paralelisme sinkron. Contohnya adalah perhitungan numerik pada Metode Eliminasi Gauss. Pada paralelisme sinkron ini, struktur umum programnya biasanya terdiri dari perulangan FORALL yang akan membentuk sejumlah besar proses paralel untuk dioperasikan pada bagian array data yang berbeda. Setiap proses diulang dan disinkronkan pada akhir iterasi. Tujuan dari sinkronisasi ini adalah untuk meyakinkan bahwa seluruh proses telah menyelesaikan iterasi yang sedang berlangsung, sebelum terdapat suatu proses yang memulai iterasi berikutnya.

Komputasi Pipeline
Pada komputasi pipeline, data dialirkan melalui seluruh struktur proses, dimana masing-masing proses membentuk tahap-tahap tertentu dari keseluruhan komputasi . Algoritma ini dapat berjalan dengan baik pada multikomputer, karena adanya aliran data dan tidak banyak memerlukan akses ke data bersama. Contoh komputasi pipeline adalah teknik penyulihan mundur yang merupakan bagian dari metoda Eliminasi.
Dalam merancang suatu algoritma paralel kita harus mempertimbangkan pula hal-hal yang dapat mengurangi kinerja program paralel. Hal-hal tersebut adalah :
1.     Memory Contention
Eksekusi prosesor tertunda ketika prosesor menunggu hak ases ke sel memori yang sedang dipergunakan oleh prosesor lain. Problem ini muncul pada arsitektur multiprosesor dengan memori bersama.

2.     Excessive Sequential Code
Pada beberapa algoritma paralel, akan terdapat kode sekuensial murni dimana tipe tertentu dari operasi pusat dibentuk, seperti misalnya pada proses inisialisasi. Dalam beberapa algoritma, kode sekuensial ini dapat mengurangi keseluruhan speedup yang dapat dicapai. Process Creation Time Pembentukan proses paralel akan membutuhkan waktu eksekusi. Jika proses yang dibentuk relative berjalan dalam waktu yang relatif lebih singkat dibandingkan dengan waktu pembentukan proses itu sendiri, maka overhead pembuatan akan lebih besar dibandingkan dengan waktu eksekusi paralel algoritma. Communication Delay Overhead ini muncul hanya pada multikomputer. Hal ini disebabkan karena interaksi antar prosesor melalui jaringan komunikasi. Dalam beberapa kasus, komunikasi antar dua prosesor mungkin melibatkan beberapa prosesor antara dalam jaringan komunikasi. Jumlah waktu tunda komunikasi dapat menurunkan kinerja beberapa algoritma paralel.

Synchronization Delay
Ketika proses paralel disinkronkan, berarti bahwa suatu proses akan harus menunggu proses lainnya. Dalam beberapa program paralel, jumlah waktu tunda ini dapat menyebabkan bottleneck dan mengurangi speedup keseluruhan. Load Imbalance Dalam beberapa program paralel, tugas komputasi dibangun secara dinamis dan tidak dapat diperkirakan sebelumnya. Karena itu harus selalu ditugaskan ke prosesor-prosesor sejalan dengan pembangunan tugas tersebut. Hal ini dapat menyebabkan suatu prosesor tidak bekerja (idle), sementara prosesor lainnya tidak dapat mengerjakan task yang ditugaskannya.

Jumat, 12 April 2013

Jenis-jenis Komputasi Modern



Komputasi Bergerak atau Mobile Computing adalah sistem komputasi yang dapat dengan mudah dipindahkan secara fisik dan kemampuan komputasi yang dapat digunakan ketika mereka sedang dipindahkan.

Contoh mobile computing device :
  • Laptop
  • Personal Digital Assistant (PDA)
  • Ponsel, dll


Contoh tool yang digunakan :
  • Java ME
  • Symbian
  • Android
  • iOS
  • PalmOS, dll


Mengapa disebut komputasi bergerak? Karena
  1. Memiliki aplikasi yang sangat luas
  2. Memiliki kemampuan melakukan perpindahan posisi
  3. Memiliki kemampuan perpindahan peralatan
  4. Memiliki kemampuan perpindahan jaringan,dll


Dengan membedakan sistem komputasi mobile dari sistem komputasi lain, kita bisa mengidentifikasi perbedaan dalam kinerja bagaimana dirancang, digunakan dan diatur dalam pembuatan sistem tersebut. Ada beberapa hal yang sistem komputasi mobile dapat melakukan apa yang tidak dapat dilakukan oleh sistem komputasi yang statis.
Mobile computing device tidak selalu harus terhubung dengan jaringan telekomunikasi. Kalkulator, HP, laptop, netbook bisa dikategorikan sebagai perangkat mobile computing.

Grid Computing atau Komputasi Grid merupakan salah satu dari tipe Komputasi Paralel, adalah penggunaan sumber daya yang melibatkan banyak komputer terpisah secara geografis namun tersambung via jalur komunikasi (termasuk Internet) untuk memecahkan persoalan komputasi skala besar. Semakin cepat jalur komunikasi terbuka, maka peluang untuk menggabungkan kinerja komputasi dari sumber-sumber komputasi yang terpisah menjadi semakin meningkat. Dengan demikian, skala komputasi terdistribusi dapat ditingkatkan secara geografis lebih jauh lagi, melintasi batas-batas domain administrasi yang ada.

sebagai sistem terdistribusi dengan non-interaktif bebaban kerja yang melibatkan sejumlah besar file. Apa yang membedakan grid computing dari konvensional sistem komputasi kinerja tinggi seperti komputasi cluster adalah grid lebih cenderung longgar digabungkan, heterogen, dan geografis.

Cloud Computing (Komputasi Awan) adalah suatu konsep umum yang mencakup SaaS, Web 2.0, dengan menggabungkan pemanfaatan teknologi komputer dan disajikan dalam bentuk suatu layanan. Yang dimaksud dengan Saas dan Web 2.0 adalah sebuah software as a service atau perangkat lunak yang berbentuk layanan, digunakan untuk mengembangkan suatu aplikasi yang berbasis web (Internet). Misalnya Facebook, didalam social networking ini memiliki berbagai aplikasi seperti game, acara undangan, tautan dan sebagainya. Dengan SaaS dan Web 2.0, pencipta Facebook menggunakannya untuk aplikasi tersebut dengan syarat harus melalui internet atau system online.
Pada cloud computing, penyimpanan data hanya dilakukan pada server utama, sehingga pengguna hanya dapat mengaksesnya tanpa harus mengetahui infrastruktur pembuatan aplikasinya. Hanya perlu interface software saja untuk mengakses server. Interface ini pada umumnya merupakan web browser yang tersedia dengan banyak pilihan dan tidak berbayar.
                                                                                                                          
Tanpa kita sadari sebenarnya kita sudah sering menggunakan aplikasi dengan sistem berbasis cloud computing. Contoh lainnya seperti Hotmail, Yahoo!Mail atau Gmail. Untuk melihat email, kita bisa melakukannya di mana saja, yang penting ada internet dan browser. Software dan data kita tidak tersimpan di komputer yang kita pakai melainkan terletak di cloud server.

Kelebihan dan Kekurangan Sistem Cloud Computing

Kelebihan
Kemudahan Akses
Untuk mengerjakan tugas, kita tidak harus berada dalam satu komputer yang sama. Kita bisa membuatnya dengan aplikasi lain. Namun kita harus terhubung dengan internet dan mengerjakannya secara online.

Efisiensi Biaya
Dengan memaksimalkan penggunaan utilisasi  sisa yang tidak terpakai, kita dapat menciptakan beberapa virtual server lain. Dengan proses ini kita bisa mendapatkan kapasitas fisik komputer yang berlipat karena mengurangi infrastruktur komputer sehingga biaya sewa pelanggan menjadi lebih rendah.Selain itu dengan adanya komputasi awan, kita juga tidak dibebankan dengan besarnya biaya untuk membayar lisensi atas software-software yang kita install dan kita gunakan, karena semua software sudah bisa digunakan melalui komputasi awan. Efisiensi biaya juga timbul  dari biaya operasional, seperti SDM maintenance,  biaya listrik, biaya overhead, dan lain-lain. Pelanggan hanya membayar sesuai pemakaian (on demand).

Fleksibilitas dalam Menambah Kapasitas
Dengan cloud kita tidak perlu melakukan proses pengadaan komputer yang memakan banyak waktu. Cukup dengan melakukan penyimpanan data pada suatu media penyimpanan dan mengkoneksikannya dengan internet. Maka kita dapat mengakses dan menggunakannya kembali.

Kemudahan untuk Monitoring & Server Management
Proses monitoring dan manajemen server akan jauh lebih mudah karena semua terkoneksi dengan web portal pelanggan. Kita hanya tinggal melihat dashboard saja untuk mengetahui status global server-server kita. Untuk membuat, meng-upgrade dan me-manage server serta  menginstalasi software sangat mudah, karena sudah disediakan automation-tools untuk melakukan hal tersebut.

Orang IT akan lebih banyak memikirkan pengembangan
Fungsi TI bagi perusahaan adalah mendukung pengembangan bisnis perusahaan. Banyak perusahaan sukses akibat penerapan TI yang tepat dan memberikan keunggulan kompetitif. Dengan adanya cloud service, maka sebagian kegiatan operasi dan server maintenance  sudah dialihkan, sehingga terdapat waktu lebih bagi departemen TI untuk melakukan kegiatan lain.

Akses secara remote
Cloud computing membuat bisnis Anda tidak terbatas pada satu lokasi saja. Anda dapat mengakses dari mana saja di seluruh dunia dan kapan saja. Yang Anda perlukan hanya koneksi Internet, user ID dan password.

Kekurangan
Faktor yang paling penting dalam penggunaan sistem komputasi awan adalah koneksi internet. Jika tidak ada koneksi internet maka kita dapat menggunakan sistem komputasi awan. Di Indonesia, masih ada beberapa wilayah yang belum terjangkau oleh akses internet, sehingga membuat koneksi internet kurang memadai dan sering kali tidak stabil karena pengaruh cuaca maupun lingkungan pada wilayah tersebut.
Kerahasiaan dan keamanan adalah salah satu hal yang paling diragukan pada komputasi awan. Dengan menggunakan sistem komputasi awan berarti kita mempercayakan sepenuhnya atas keamanan dan kerahasiaan data-data kepada perusahaan penyedia server komputasi awan. Saat mengalami gangguan, kita tidak dapat menuntut pihak server karena kesalahan data-data tersebut.
Selain itu kualitas server komputasi awan adalah salah satu pertimbangan terpenting sebelum kita memutuskan untuk menyediakan jasa penyedia server komputasi awan. Ketika server down atau permorma kurang bagus, kita malah akan dirugikan karena kualitas server yang buruk.

sumber

Kamis, 11 April 2013

V-CLASS PEMROGRAMAN JARINGAN

Program di bawah ini untuk mengetahui nama komputer lokal.

import java.net.*;
public class getName{
public static void main(String args[]) throws Exception{
InetAddress host = null ;
host = InetAddress.getLocalHost();
System.out.println("Nama komputer Anda :" + host.getHostName());
}
}



Program ini bertujuan untuk mendapatkan nama komputer dari Alamat IP.

import java.net.*;
public class IPtoName{
public static void main(String args[]){
if (args.length == 0){
System.out.println("Pemakaian : java IPtoName ");
System.exit(0);
}
String host = args[0] ;
InetAddress address = null ;
try{
address = InetAddress.getByName(host);
}catch(UnknownHostException e){
System.out.println("invalid IP");
System.exit(0);
}
System.out.println(address.getHostName());
}
}

Jalankan dengan argumen IP komputer lokal dan komputer lain.
$ javac IPtoName.java
$ java IPtoName
$ java IPtoName
$ java IPtoName



Program di bawah ini, masukkan misal www.detik.com maka akan ditampilkan Alamat IP dari www.detik.com. Masukkan host name : java.sun.com, berapakah Alamat IPnya?

import java.net.*;
import java.io.*;
public class IPFinder{
public static void main(String args[]) throws IOException{
String host;
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter host name : ");
host = input.readLine();
try{
InetAddress address = InetAddress.getByName(host);
System.out.println("IP Address : " + address);
}catch(UnknownHostException e){
System.out.println("Could not find " + host);
}
}
}



Rabu, 03 April 2013

Pengantar Komputasi Modern (Akurasi)


Komputasi dapat diartikan sebagai cara untuk menemukan pemecahan permasalahan dari data input dengan suatu algoritma. Komputasi merupakan subbagian dari matematika.
Secara umum iIlmu komputasi adalah bidang ilmu yang mempunyai perhatian pada penyusunan model matematika dan teknik penyelesaian numerik serta penggunaan komputer untuk menganalisis dan memecahkan masalah-masalah ilmu (sains). Dalam penggunaan praktis, biasanya berupa penerapan simulasi komputer atau berbagai bentuk komputasi lainnya untuk menyelesaikan masalah-masalah dalam berbagai bidang keilmuan, tetapi dalam perkembangannya digunakan juga untuk menemukan prinsip-prinsip baru yang mendasar dalam ilmu.
Dalam ilmu alam, pendekatan ilmu komputasi dapat memberikan berbagai pemahaman baru, melalui penerapan model-model matematika dalam program komputer berdasarkan landasan teori yang telah berkembang, untuk menyelesaikan masalah-masalah nyata dalam ilmu tersebut.
Komputasi modern adalah sebuah konsep sistem yang menerima intruksi-intruksi dan menyimpannya dalam sebuah memory, memory disini bisa juga dari memory komputer. Oleh karena itu kebanyakan dari kita melakukan komputasi menggunakan komputer maka bisa dibilang komputer merupakan sebuah komputasi modern.
Salah satu tokoh yang sangat mempengaruhi perkembangan komputasi modern adalah John von Neumann (1903-1957), Beliau adalah ilmuan yang meletakkan dasar-dasar komputer modern. Von Neumann telah menjadi ilmuwan besar abad 21. Von Neumann memberikan berbagai sumbangsih dalam bidang matematika, teori kuantum, game theory, fisika nuklir, dan ilmu komputer yang di salurkan melalui karya-karyanya .
Von Neumann sangat tertarik pada hidrodinamika dan kesulitan penyelesaian persamaan diferensial parsial nonlinier yang digunakan, Von Neumann kemudian beralih dalam bidang komputasi. Von Neumann menjadi seorang konsultan pada pengembangan komputer ENIAC, dia merancang konsep arsitektur komputer yang masih dipakai sampai sekarang. Arsitektur Von Nuemann adalah seperangkat komputer dengan program yang tersimpan (program dan data disimpan pada memori) dengan pengendali pusat, I/O, dan memori.
Dalam kerjanya komputasi modern menghitung dan mencari solusi dari masalah yang ada, dan perhitungan yang dilakukan itu meliputi:

  1. Akurasi (big, Floating point)

  2. Kecepatan (dalam satuan Hz)

  3. Problem Volume Besar (Down Sizzing atau pararel)

  4. Modeling (NN & GA)

  5. Kompleksitas (Menggunakan Teori big O)


Akurasi (big, Floating point)
Akurasi tentu merupakan masalah yang paling penting dalam memecahkan masalah. Karena itu pada komputasi modern dilakukan perhitungan bagaimana bisa menghasilkan suatu jawaban yang akurat dari sebuah masalah. Tentu kita pernah mendengar tipe data floating point yang biasa digunakan untuk menyimpan data numerik dalam bentuk pecahan. Tipe data tersebut memiliki range penyimpanan numerik yang besar, sehingga dapat digunakan oleh komputer untuk melakukan komputasi yang akurat.