SELAMAT DATANG

INILAH KARYA ANAK BANGSA

SEARCH

Daftar Blog Saya

  • Tugas Pemrograman Jaringan - *Nama : Rigi Martusi* *Kelas : 4IA16* *NPM : 50408723* *Tugas D1-1* import java.net.*; public class getIP{ public static void main(String args[]) throws ...
    12 tahun yang lalu
08.01

Tugas Pemrograman Jaringan

Nama : Rigi Martusi
Kelas : 4IA16
NPM : 50408723


Tugas D1-1


import java.net.*;
public class getIP{
public static void main(String args[]) throws Exception {
InetAddress host = null;
host = InetAddress.getLocalHost();
byte ip[] = host.getAddress();
for (int i=0; i
if (i>0) {
System.out.print(".");
}
System.out.print (ip[i] & 0xff);
}
System.out.println();
}
}



Pada latihan pertama yaitu berupa program D1-1 yang berupa atau merupakan program java yang diberikan sebuah source code untuk mendapatkan IP address komputer (PC) yang anda gunakan .
ketikkan source code dibawah ini pada notepad, edit plus, atau source editor lainnya, dengan nama file getIP.java :
setelah coding tersebut diketik, buka command prompt, disini akan dikompilasi source code diatas
*pada command prompt*
ketik javac [namafile].java (untuk mengkompilasi program)
>> javac getIP.java
kemudian ketik java [namafile] (untuk me-running program tersebut)
>> java getIP


yang didapat adalah IP sebuah komputer (PC) yang anda gunakan .

-  lihat  dengan alamat IP 192.168.80.1 merupakan alamat IP ketika komputer (PC) terhubung (connect) dengan Internet .
-  lihat lingkaran 2 dengan alamat IP 192.168.1.3 merupakan alamat IP ketika komputer (PC) terputus/tidak terhubung (disconnect) dengan Internet

Tugas D1-2

Pada Demo D1-2, diberikan sebuah source code untuk mengetahui nama komputer (PC) yang anda gunakan.
ketikkan source code dibawah ini pada notepad, edit plus, atau source editor lainnya, dengan nama file getName.java :

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());
}
}

setelah coding tersebut diketik, buka command prompt, disini akan dikompilasi source code diatas
*pada command prompt*
ketik javac [namafile].java (untuk mengkompilasi program)
>> javac getName.java
kemudian ketik java [namafile] (untuk me-running program tersebut)
>> java getName

apa yang didapat dari source code yang sudah dikompilasi dan di running ????
yang didapat adalah Nama dari komputer (PC) yang sedang anda gunakan yaitu "ASUS-PC"

Tugas D1-3

Pada Demo D1-3, diberikan sebuah source code untuk mengetahui nama komputer (PC) yang anda gunakan dengan memasukan (input) IP address.
ketikkan source code dibawah ini pada notepad, edit plus, atau source editor lainnya, dengan nama file IPtoName.java : 

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 - malformed 
ip");
  System.exit(0);
}
  System. out.println(address.getHostName());
}
}

setelah coding tersebut diketik, buka command prompt, disini akan dikompilasi source code diatas

*pada command prompt*
ketik javac [namafile].java (untuk mengkompilasi program)
>> javac IPtoName.java
kemudian ketik java [namafile] (untuk me-running program tersebut)
>> java IPtoName



apa yang didapat dari source code yang sudah dikompilasi dan di running ????
yang didapat adalah Nama dari komputer (PC) yang anda gunakan, dimana sebelum mendapatkan nama PC, user diminta untuk memasukan alamat IP PC tersebut.
keterangan : (1) ketika anda memasukan/meng-input alamat IP PC anda dengan benar, maka akan muncul nama PC yang anda gunakan . (2) ketika anda memasukan/meng-input alamat PC dengan sembarang, maka belum tentu akan muncul nama PC dengan alamat IP yang anda masukan/input .


Tugas D1-4

Pada Demo D1-4, diberikan sebuah source code untuk mengetahui IP address dengan memasukan (input) nama komputer (PC) yang anda gunakan.
ketikan source code dibawah ini pada notepad, edit plus, atau source editor lainnya, dengan nama file NsLookup.java :  

import java.net.*;
public class NsLookup {
public static void main (String args[]) {
if (args.length == 0) {
System.out.println("Pemakaian: java NsLookup ");
System.exit(0);
}
String host = args[0]; 
InetAddress address = null;
try {
address = InetAddress.getByName(host);
} catch(UnknownHostException e) {
System.out.println("Unknown host");
System.exit(0);
}
byte [] ip = address.getAddress();
for (int i=0; i
if (i > 0) System.out.print(".");
System.out.print((ip[i]) & 0xff);
}
System.out.println();
}
}

setelah coding tersebut diketik, buka command prompt, disini akan dikompilasi source code diatas
*pada command prompt*
ketik javac [namafile].java (untuk mengkompilasi program)
>> javac NsLookup.java
kemudian ketik java [namafile] (untuk me-running program tersebut)
>> java NsLookup


apa yang didapat dari source code yang sudah dikompilasi dan di running ????
yang didapat adalah alamat IP dari nama komputer (PC) yang sebelumnya anda input dengan benar yaitu alamat IPnya "192.168.80.1"

Tugas D1-5

membuat aplikasi client server TCP sederhana. Server akan membuat soket server dan menerima permintaan koneksi dari satu client saja. Setelah itu server akan menunggu data yang dikirim oleh client. Jika pesan yang dikirim oleh client adalah “salam” maka server akan membalas mengirim pesan “salam juga” . Selain dari itu, server akan mengirim pesan “Maaf, saya tidak mengerti”.

ketikkan source code dibawah ini pada notepad, edit plus, atau source editor lainnya, dengan nama file simpleServer.java : 

simpleClient.java

import java.io.*;
import java.net.*;

public class simpleClient {
  public final static int REMOTE_PORT = 5000;
  public static void main (String args[]) throws Exception {
  Socket cl = null;
  BufferedReader is = null;
  DataOutputStream os = null;
  BufferedReader stdin = new BufferedReader(new
InputStreamReader(System.in));
String userInput = null;
String output = null;

// Membuka koneksi ke server pada port REMOTE_PORT 
try {
  cl = new Socket(args[0], REMOTE_PORT);
  is = new BufferedReader(new 
InputStreamReader(cl.getInputStream ()));
  os = new DataOutputStream(cl.getOutputStream());
} catch(UnknownHostException e1) {
  System.out.println("Unknown Host: " + e1);
} catch (IOException e2) {
  System.out.println("Erorr io: " + e2);
}

// Menulis ke server
try {
  System.out.print("Masukkan kata kunci : ");
  userInput = stdin.readLine() ;
  os.writeBytes(userInput + "\n");
}  catch (IOException ex) {
System.out.println("Error writing to server... " + ex);
}

// Menerima tanggapan dari server
try {
  output = is.readLine() ;
  System.out.println("Dari server: " + output);
} catch (IOException e) {
  e.printStackTrace() ;
}

// close input stream, output stream dan koneksi
try {
  is.close();
  os.close();
  cl.close();
} catch (IOException x) {
  System.out.println("Error writing...." + x);
}
}
}

simpleServer.java

import java.io.*;
import java.net.*;

public class simpleServer {
  public final static int TESTPORT = 5000;
  public static void main(String args[]) {
ServerSocket checkServer = null;
String line;
BufferedReader is = null;
DataOutputStream os = null;
Socket clientSocket = null;
try {
 checkServer = new ServerSocket (TESTPORT);
 System.out.println("Aplikasi Server hidup... ");
} catch (IOException e) {
 System.out.println(e);
}

try {
 clientSocket = checkServer.accept();
 is = new BufferedReader (new InputStreamReader(clientSocket.getInputStream()));
 os = new DataOutputStream(clientSocket.getOutputStream());
} catch (Exception ei) {
ei. printStackTrace();
}
try {
 line = is.readLine();
 System.out.println ("Terima : " + line);
 if (line.compareTo("salam") == 0 ) {
os.writeBytes("salam juga");
 } else {
os.writeBytes("Maaf, saya tidak mengerti");
 }
} catch (IOException e) {
 System.out.println(e);
}
try {
 os.close();
 is.close();
 clientSocket.close();
} catch (IOException ic) {
 ic.printStackTrace();
}
  }
}

setelah coding tersebut diketik, buka command prompt, disini akan dikompilasi source code diatas

*pada command prompt*
ketik javac [namafile].java (untuk mengkompilasi program)
>> javac simpleServer.java
>> javac simpleClient.java
kemudian ketik java [namafile] (untuk me-running program tersebut)
>> java simpleServer
>> java simpleClient




apa yang didapat dari source code yang sudah dikompilasi dan di running ???? 
yang didapat adalah Jika pesan yang dikirim oleh client adalah “salam” maka server akan membalas mengirim pesan “salam juga” .

Tugas D1-7

Tutorial ini akan membuat kelas Staff yang berisi informasi data pegawai. Data staff akan
dikirimkan dari suatu aplikasi client ke aplikasi server lewat soket.

ketikkan source code dibawah ini pada notepad, edit plus, atau source editor lainnya, dengan nama file Staff.java :  
import java.io.*;
public class Staff implements Serializable{
String nama;
String divisi;
int umur;
public Staff(String nama, String divisi, int umur)
{
this.nama=nama;
this.divisi=divisi;
this.umur= umur;
}
public void print()
{
System.out.println("Data Staff: ");
System.out.println("Nama : " + nama);
System.out.println("Divis: " + divisi);
System.out.println("Umur : "+ umur);
}
}

ObjectServer.java
import java.net.*;
import java.io.*;
public class ObjectServer {
private static int SRV_PORT=5000;
private static ObjectInputStream is=null;
public static void main(String argv[]) throws Exception{
//membuat soket server dan menunggu koneksi
ServerSocket soketServer= new ServerSocket(SRV_PORT);
Socket soketClient= soketServer.accept();
//membuat stream untuk baca obyek
is= new ObjectInputStream(soketClient.getInputStream());
//menunggu dan membaca obyek yang dikirimkan
Staff pegawai= (Staff) is.readObject();
System.out.println("Server menerima data Pegawai");
pegawai.print();
}
}

ObjectClient.java
import java.net.*;
import java.io.*;
public class ObjectClient{
private static int SRV_PORT = 5000;
private static ObjectOutputStream os=null;
public static void main(String argv[]) throws Exception{
try{
//membuat soket client
Socket soketClient= new Socket("127.0.0.1", SRV_PORT);
//membuat stream untuk pengiriman obyek
os= new
ObjectOutputStream(soketClient.getOutputStream());
//membuat obyek dan mengirimkannya lewat stream obyek
Staff pegawai= new Staff("Rigi Martusi","IT",22);
os.writeObject(pegawai);
System.out.println("Client mengirim data pegawai:");
pegawai.print();
}
catch(Exception e){
e.printStackTrace();
}
}
}

setelah coding tersebut diketik, buka command prompt, disini akan dikompilasi source code diatas

*pada command prompt*
ketik javac [namafile].java (untuk mengkompilasi program)
>> javac ObjectServer.java
>> javac ObjectClient.java
kemudian ketik java [namafile] (untuk me-running program tersebut)
>> java ObjectServer
>> java ObjectClient





apa yang didapat dari source code yang sudah dikompilasi dan di running ????
yang didapat adalah data pegawai yaitu nama: Rigi Martusi, Divisi: IT dan Umur: 22








16.58

Kerja Komputasi dengan Paralel Processing


Komputasi sebetulnya bisa diartikan sebagai cara untuk menemukan pemecahan masalah dari data input dengan menggunakan suatu algoritma. Komputasi merupakan suatu sub-bidang dari ilmu komputer dan matematika. Selama ribuan tahun, perhitungan dan komputasi umumnya dilakukan dengan menggunakan pena dan kertas, atau kapur dan batu tulis, atau dikerjakan secara mental, kadang-kadang dengan bantuan suatu tabel. Namun sekarang, kebanyakan komputasi telah dilakukan dengan menggunakan komputer. Sedangkan untuk parallel processing atau pemrosesan paralel adalah penggunaan lebih dari satu CPU untuk menjalankan sebuah program secara simultan. Idealnya, parallel processing membuat program berjalan lebih cepat karena semakin banyak CPU yang digunakan.
Jadi dari beberapa penjabaran di atas dapat disimpulkan bahwa paralel prosessing komputasi adalah proses atau pekerjaan komputasi di komputer dengan memakai suatu bahasa pemrograman yang dijalankan secara paralel pada saat bersamaan. Secara umum komputasi paralel diperlukan untuk meningkatkan kecepatan komputasi bila dibandingkan dengan pemakaian komputasi pada komputer tunggal. Penggunaan komputasi parallel prosessing merupakan pilihan yang cukup handal untuk saat ini untuk pengolahan data yang besar dan banyak. Parallel komputasi melakukan perhitungan komputasi dengan menggunakan 2 atau lebih CPU/Processor dalam suatu komputer yang sama atau komputer yang berbeda dimana dalam hal ini setiap instruksi dibagi kedalam beberapa instruksi kemudian dikirim ke processor yang terlibat komputasi dan dilakukan secara bersamaan. Untuk proses pembagian proses komputasi tersebut dilakukan oleh suatu software yang betugas untuk mengatur komputasi dalam hal makalah ini akan digunakan Message Parsing Interface (MPI). Ini umumnya diperlukan saat kapasitas yang diperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar (diindustri keuanganbioinformatika, dll) ataupun karena tuntutan proses komputasi yang banyak. Kasus kedua umum ditemui di kalkulasi numerik untuk menyelesaikan persamaan matematis di bidang fisika (fisika komputasi), kimia (kimia komputasi) dll.
Parallel processing berbeda dengan multitasking, yaitu satu CPU mengeksekusi beberapa program sekaligus. Parallel processing disebut juga parallel computing. Pada sistem komputasi parallel terdiri dari beberapa unit prosesor dan beberapa unit memori. Ada dua teknik yang berbeda untuk mengakses data di unit memori, yaitu shared memory address dan message passing. Berdasarkan cara mengorganisasikan memori ini komputer paralel dibedakan menjadi shared memory parallel machine dan distributed memory parallel machine.
Prosesor dan memori ini didalam mesin paralel dapat dihubungkan (interkoneksi) secara statis maupun dinamis. Interkoneksi statis umumnya digunakan oleh distributed memory system (sistem memori terdistribusi). Sambungan langsung peer to peer digunakan untuk menghubungkan semua prosesor. Interkoneksi dinamis umumnya menggunakan switch untuk menghubungkan antar prosesor dan memori.
Komunikasi data pada sistem paralel memori terdistribusi, memerlukan alat bantu komunikasi. Alat bantu yang sering digunakan oleh sistem seperti PC Jaringan pada saat ini adalah standar MPI (Message Passing Interface) atau standar PVM (Parallel Virtual Machine)yang keduanya bekerja diatas TCP/IP communication layer. Kedua standar ini memerlukan fungsi remote access agar dapat menjalankan program pada masing-masing unit prosesor.
Salah satu protocol yang dipergunakan pada komputasi parallel adalah Network File System (NFS), NFS adalah protokol yang dapat membagi sumber daya melalui jaringan. NFS dibuat untuk dapat independent dari jenis mesin, jenis sistem operasi, dan jenis protokol transport yang digunakan. Hal ini dilakukan dengan menggunakan RPC.
NFS memperbolehkan user yang telah diijinkan untuk mengakses file-file yang berada di remote host seperti mengakses file yang berada di lokal. Protokol yang digunakan protokol mount menentukan host remote dan jenis file sistem yang akan diakses dan menempatkan di suatu direktori, protokol NFS melakukan I/O pada remote file system.
Kinerja Parallel komputasi digunakan untuk melakukan perhitungan komputasi dengan menggunakan 2 atau lebih CPU/Processor dalam suatu komputer yang sama atau komputer yang berbeda dimana dalam hal ini setiap instruksi dibagi kedalam beberapa instruksi kemudian dikirim ke processor yang terlibat komputasi dan dilakukan secara bersamaan. Untuk proses pembagian proses komputasi tersebut dilakukan oleh suatu software yang betugas untuk mengatur komputasi. Terdapat dua jenis kinerja parallel processing yaitu Multi-core dan PC Clustering. Multi-core adalah memperbanyak inti prmrosesan sehingga diharapkan knerja komputasi meningkat dikarenakan pemrosesan secara parallel. Awalnya Multi Core diawali oleh system Multi Prosessor. System ini membutuhkan sumberdaya untu masing-masing prosesnya, sedangkan untuk interkoneksinya dibutuhkan sebuah bus berkecepatan tinggi. Untuk membuat system multi prosessor dibutuhkan biaya serta algoritma tersendiri untuk mengendalikan dan memproses input, untuk mereduksi harga dibuatlah system multi Core yang dapat mengetengahkan masalah biaya dan kecepatan komputasi.
PC-Clustering adalah pengelompokan beberapa buah PC menjadi satu kesatuan dan mampu memproses dengan interkoneksi jaringan baik itu local maupun internet. Secara umum PC clustering dibagi menjadi tiga kategori yaitu :
1. High-availability cluster
2. Load-balancing cluster, kategori satu dan dua digunakan untuk server-server yang membutuhkan komputasi tinggi serta ketersediaan system. Tujuan dari PC Clustering jenis ini adalah menjaga service agar tetap sedia sepanjang waktu, seperti Web Searching Google.
3. Grid-Computing, Grid-computing lebih mendekati system parallel computing yang sebenarnya, karena menggunakan system penugasan. Contoh Grid Computing terbesar adalah FOLDING@HOME untuk kalkulasi untaian DNA untuk mencari obat dari penyakit kronis seperti Alzheimer dan Kanker.
Kinerja komputasi dengan menggunakan paralel processing itu menggunakan dan memanfaatkan beberapa komputer atau CPU untuk menemukan suatu pemecahan masalah dari masalah yang ada. Sehingga dapat diselesaikan dengan cepat daripada menggunakan satu komputer saja. Komputasi dengan paralel processing akan menggabungkan beberapa CPU, dan membagi-bagi tugas untuk masing-masing CPU tersebut. Jadi, satu masalah terbagi-bagi penyelesaiannya. Tetapi ini untuk masalah yang besar saja, komputasi yang masalah kecil, lebih murah menggunakan satu CPU saja.
Selanjutnya perbedaan antara komputasi tunggal dan komputasi parallel dapat dilihat ada gambar berikut ini:
* Komputasi tunggal

16.55

Bio Informatika




     Bioinformatika adalah ilmu yang mempelajari penerapan teknik komputasional untuk mengelola dan menganalisis informasi biologis. Bidang ini mencakup penerapan metode-metode matematika, statistika, dan informatika untuk memecahkan masalah-masalah biologis, terutama dengan menggunakan sekuens DNA dan asam amino serta informasi yang berkaitan dengannya. Contoh topik utama bidang ini meliputi basis data untuk mengelola informasi biologis, penyejajaran sekuens (sequence alignment), prediksi struktur untuk meramalkan bentuk struktur protein maupun struktur sekunder RNA, analisis filogenetik, dan analisis ekspresi gen.
Bioinformatika merupakan ilmu terapan yang lahir dari perkembangan teknologi informasi dibidang molekular. Pembahasan dibidang bioinformatik 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).
Perkembangan teknologi DNA rekombinan memainkan peranan penting dalam lahirnya bioinformatika. Teknologi DNA rekombinan memunculkan suatu pengetahuan baru dalam rekayasa genetika organisme yang dikenala bioteknologi. Perkembangan bioteknologi dari bioteknologi tradisional ke bioteknologi modren salah satunya ditandainya dengan kemampuan manusia dalam melakukan analisis DNA organisme, sekuensing DNA dan manipulasi DNA.
Sekuensing DNA satu organisme, misalnya suatu virus memiliki kurang lebih 5.000 nukleotida atau molekul DNA atau sekitar 11 gen, yang telah berhasil dibaca secara menyeluruh pada tahun 1977. Kemudia Sekuen seluruh DNA manusia terdiri dari 3 milyar nukleotida yang menyusun 100.000 gen dapat dipetakan dalam waktu 3 tahun, walaupun semua ini belum terlalu lengkap. Saat ini terdapat milyaran data nukleotida yang tersimpan dalam database DNA, GenBank di AS yang didirikan tahun 1982.
        Bioinformatika ialah ilmu yang mempelajari penerapan teknik komputasi untuk mengelola dan menganalisis informasi hayati. Bidang ini mencakup penerapan metode-metodematematikastatistika, dan informatika untuk memecahkan masalah-masalah biologi, terutama yang terkait dengan penggunaan sekuens DNA dan asam amino. Contoh topik utama bidang ini meliputi pangkalan data untuk mengelola informasi hayati, penyejajaran sekuens (sequence alignment), prediksi struktur untuk meramalkan struktur protein atau pun struktur sekunder RNA, analisis filogenetik, dan analisis ekspresi gen.
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 pengembanganalgoritma untuk analisis sekuens biologi telah dilakukan sejak tahun 1960an.
Kemajuan teknik biologi molekuler dalam mengungkap sekuens biologi protein (sejak awal1950an) 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 MolekulerEropa (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 dan1990an. 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.
       Pangkalan Data sekuens biologi dapat berupa pangkalan data primer untuk menyimpan sekuens primer asam nukleat dan protein, pangkalan data sekunder untuk menyimpan motif sekuens protein, dan pangkalan data struktur untuk menyimpan data struktur protein dan asam nukleat. Pangkalan data utama untuk sekuens asam nukleat saat ini adalah GenBank(Amerika Serikat), EMBL (the European Molecular Biology Laboratory, Eropa), dan DDBJ(DNA Data Bank of Japan, Jepang). Ketiga pangkalan data tersebut bekerja sama dan bertukar data secara harian untuk menjaga keluasan cakupan masing-masing pangkalan data. Sumber utama data sekuens asam nukleat adalah submisi (pengumpulan) langsung dari peneliti individual, proyek sekuensing genom, dan pendaftaran paten. Selain berisi sekuens asam nukleat, entri dalam pangkalan data sekuens asam nukleat pada umumnya mengandung informasi tentang jenis asam nukleat (DNA atau RNA), nama organisme sumber asam nukleat tersebut, dan segala sesuatu yang berkaitan dengan sekuens asam nukleat tersebut.
       Selain asam nukleat, beberapa contoh pangkalan data penting yang menyimpan sekuens primer protein adalah PIR (Protein Information Resource, Amerika Serikat), Swiss-Prot(Eropa), dan TrEMBL (Eropa). Ketiga pangkalan data tersebut telah digabungkan dalamUniProt, yang didanai terutama oleh Amerika Serikat. Entri dalam UniProt mengandung informasi tentang sekuens protein, nama organisme sumber protein, pustaka yang berkaitan, dan komentar yang pada umumnya berisi penjelasan mengenai fungsi protein tersebut.
          Perangkat bioinformatika yang berkaitan erat dengan penggunaan pangkalan data sekuens Biologi ialah BLAST (Basic Local Alignment Search Tool). Penelusuran BLAST (BLAST search) pada pangkalan data sekuens memungkinkan ilmuwan untuk mencari sekuens baik asam nukleat maupun protein yang mirip dengan sekuens tertentu yang dimilikinya. Hal ini berguna misalnya untuk menemukan gen sejenis pada beberapa organisme atau untuk memeriksa keabsahan hasil sekuensing atau untuk memeriksa fungsi gen hasil sekuensing.Algoritma yang mendasari kerja BLAST adalah penyejajaran sekuens.
        PDB (Protein Data Bank, Bank Data Protein) ialah pangkalan data tunggal yang menyimpan model struktur tiga dimensi protein dan asam nukleat hasil penentuan eksperimental (dengankristalografi sinar-Xspektroskopi NMR, dan mikroskopi elektron). PDB menyimpan data struktur sebagai koordinat tiga dimensi yang menggambarkan posisi atom-atom dalam protein atau pun asam nukleat.


Bagaimana sih sejarah bio informatika itu… ???
Istilah bioinformatics mulai dikemukakan pada pertengahan era 1980-an untuk mengacu pada penerapan komputer dalam biologi. Namun demikian, penerapan bidang-bidang dalam bioinformatika (seperti pembuatan basis data dan pengembangan algoritma untuk analisis sekuens biologis sudah dilakukan sejak tahun 1960-an.
Kemajuan teknik biologi molekular dalam mengungkap sekuens biologis dari protein (sejak awal 1950-an) dan asam nukleat (sejak 1960-an) mengawali perkembangan basis data dan teknik analisis sekuens biologis. Basis data sekuens protein mulai dikembangkan pada tahun 1960-an di Amerika Serikat, sementara basis data sekuens DNA dikembangkan pada akhir 1970-an di Amerika Serikat dan Jerman (pada European Molecular Biology Laboratory, Laboratorium Biologi Molekular Eropa). Penemuan teknik sekuensing DNA yang lebih cepat pada pertengahan 1970-an menjadi landasan terjadinya ledakan jumlah sekuens DNA yang berhasil diungkapkan pada 1980-an dan 1990-an, menjadi salah satu pembuka jalan bagi proyek-proyek pengungkapan genom, meningkatkan kebutuhan akan pengelolaan dan analisis sekuens, dan pada akhirnya menyebabkan lahirnya bioinformatika.
Perkembangan Internet juga mendukung berkembangnya bioinformatika. Basis data bioinformatika yang terhubung melalui Internet memudahkan ilmuwan mengumpulkan hasil sekuensing ke dalam basis data tersebut maupun memperoleh sekuens biologis sebagai bahan analisis. Selain itu, penyebaran program-program aplikasi bioinformatika melalui Internet memudahkan ilmuwan mengakses program-program tersebut dan kemudian memudahkan pengembangannya.


Penerapan utama bioinformatika
1. Basis data sekuens biologis
Sesuai dengan jenis informasi biologis yang disimpannya, basis data sekuens biologis dapat berupa basis data primer untuk menyimpan sekuens primer asam nukleat maupun protein, basis data sekunder untuk menyimpan motif sekuens protein, dan basis data struktur untuk menyimpan data struktur protein maupun asam nukleat.
Basis data utama untuk sekuens asam nukleat saat ini adalah GenBank (Amerika Serikat), EMBL (Eropa), dan DDBJ(Inggris) (DNA Data Bank of Japan, Jepang). Ketiga basis data tersebut bekerja sama dan bertukar data secara harian untuk menjaga keluasan cakupan masing-masing basis data. Sumber utama data sekuens asam nukleat adalah submisi langsung dari periset individual, proyek sekuensing genom, dan pendaftaran paten. Selain berisi sekuens asam nukleat, entri dalam basis data sekuens asam nukleat umumnya mengandung informasi tentang jenis asam nukleat (DNA atau RNA), nama organisme sumber asam nukleat tersebut, dan pustaka yang berkaitan dengan sekuens asam nukleat tersebut.
Sementara itu, contoh beberapa basis data penting yang menyimpan sekuens primer protein adalah PIR (Protein Information Resource, Amerika Serikat), Swiss-Prot (Eropa), dan TrEMBL (Eropa). Ketiga basis data tersebut telah digabungkan dalam UniProt (yang didanai terutama oleh Amerika Serikat). Entri dalam UniProt mengandung informasi tentang sekuens protein, nama organisme sumber protein, pustaka yang berkaitan, dan komentar yang umumnya berisi penjelasan mengenai fungsi protein tersebut.
2. Penyejajaran sekuens
Penyejajaran sekuens (sequence alignment) adalah proses penyusunan/pengaturan dua atau lebih sekuens sehingga persamaan sekuens-sekuens tersebut tampak nyata. Hasil dari proses tersebut juga disebut sebagai sequence alignment atau alignment saja. Baris sekuens dalam suatu alignment diberi sisipan (umumnya dengan tanda “–”) sedemikian rupa sehingga kolom-kolomnya memuat karakter yang identik atau sama di antara sekuens-sekuens tersebut. Berikut adalah contoh alignment DNA dari dua sekuens pendek DNA yang berbeda, “ccatcaac” dan “caatgggcaac” (tanda “|” menunjukkan kecocokan atau match di antara kedua sekuens).
Sequence alignment merupakan metode dasar dalam analisis sekuens. Metode ini digunakan untuk mempelajari evolusi sekuens-sekuens dari leluhur yang sama (common ancestor). Ketidakcocokan (mismatch) dalam alignment diasosiasikan dengan proses mutasi, sedangkan kesenjangan (gap, tanda “–”) diasosiasikan dengan proses insersi atau delesi. Sequence alignment memberikan hipotesis atas proses evolusi yang terjadi dalam sekuens-sekuens tersebut. Misalnya, kedua sekuens dalam contoh alignment di atas bisa jadi berevolusi dari sekuens yang sama “ccatgggcaac”. Dalam kaitannya dengan hal ini, alignment juga dapat menunjukkan posisi-posisi yang dipertahankan (conserved) selama evolusi dalam sekuens-sekuens protein, yang menunjukkan bahwa posisi-posisi tersebut bisa jadi penting bagi struktur atau fungsi protein tersebut.
Selain itu, sequence alignment juga digunakan untuk mencari sekuens yang mirip atau sama dalam basis data sekuens. BLAST adalah salah satu metode alignment yang sering digunakan dalam penelusuran basis data sekuens. BLAST menggunakan algoritma heuristik dalam penyusunan alignment.
Beberapa metode alignment lain yang merupakan pendahulu BLAST adalah metode “Needleman-Wunsch” dan “Smith-Waterman”. Metode Needleman-Wunsch digunakan untuk menyusun alignment global di antara dua atau lebih sekuens, yaitu alignment atas keseluruhan panjang sekuens tersebut. Metode Smith-Waterman menghasilkan alignment lokal, yaitu alignment atas bagian-bagian dalam sekuens. Kedua metode tersebut menerapkan pemrograman dinamik (dynamic programming) dan hanya efektif untuk alignment dua sekuens (pairwise alignment)
3. Prediksi struktur protein
Secara kimia/fisika, bentuk struktur protein diungkap dengan kristalografi sinar-X ataupun spektroskopi NMR, namun kedua metode tersebut sangat memakan waktu dan relatif mahal. Sementara itu, metode sekuensing protein relatif lebih mudah mengungkapkan sekuens asam amino protein. Prediksi struktur protein berusaha meramalkan struktur tiga dimensi protein berdasarkan sekuens asam aminonya (dengan kata lain, meramalkan struktur tersier dan struktur sekunder berdasarkan struktur primer protein). Secara umum, metode prediksi struktur protein yang ada saat ini dapat dikategorikan ke dalam dua kelompok, yaitu metode pemodelan protein komparatif dan metode pemodelan de novo.
Pemodelan protein komparatif (comparative protein modelling) meramalkan struktur suatu protein berdasarkan struktur protein lain yang sudah diketahui. Salah satu penerapan metode ini adalah pemodelan homologi (homology modelling), yaitu prediksi struktur tersier protein berdasarkan kesamaan struktur primer protein. Pemodelan homologi didasarkan pada teori bahwa dua protein yang homolog memiliki struktur yang sangat mirip satu sama lain. Pada metode ini, struktur suatu protein (disebut protein target) ditentukan berdasarkan struktur protein lain (protein templat) yang sudah diketahui dan memiliki kemiripan sekuens dengan protein target tersebut. Selain itu, penerapan lain pemodelan komparatif adalah protein threading yang didasarkan pada kemiripan struktur tanpa kemiripan sekuens primer. Latar belakang protein threading adalah bahwa struktur protein lebih dikonservasi daripada sekuens protein selama evolusi; daerah-daerah yang penting bagi fungsi protein dipertahankan strukturnya. Pada pendekatan ini, struktur yang paling kompatibel untuk suatu sekuens asam amino dipilih dari semua jenis struktur tiga dimensi protein yang ada. Metode-metode yang tergolong dalam protein threading berusaha menentukan tingkat kompatibilitas tersebut.
Dalam pendekatan de novo atau ab initio, struktur protein ditentukan dari sekuens primernya tanpa membandingkan dengan struktur protein lain. Terdapat banyak kemungkinan dalam pendekatan ini, misalnya dengan menirukan proses pelipatan (folding) protein dari sekuens primernya menjadi struktur tersiernya (misalnya dengan simulasi dinamika molekular), atau dengan optimisasi global fungsi energi protein. Prosedur-prosedur ini cenderung membutuhkan proses komputasi yang intens, sehingga saat ini hanya digunakan dalam menentukan struktur protein-protein kecil. Beberapa usaha telah dilakukan untuk mengatasi kekurangan sumber daya komputasi tersebut, misalnya dengan superkomputer (misalnya superkomputer Blue Gene dari IBM) atau komputasi terdistribusi maupun komputasi grid.
4. Analisis ekspresi gen
Ekspresi gen dapat ditentukan dengan mengukur kadar mRNA dengan berbagai macam teknik (misalnya dengan microarray ataupun Serial Analysis of Gene Expression ["Analisis Serial Ekspresi Gen", SAGE]). Teknik-teknik tersebut umumnya diterapkan pada analisis ekspresi gen skala besar yang mengukur ekspresi banyak gen (bahkan genom) dan menghasilkan data skala besar. Metode-metode penggalian data (data mining) diterapkan pada data tersebut untuk memperoleh pola-pola informatif. Sebagai contoh, metode-metode komparasi digunakan untuk membandingkan ekspresi di antara gen-gen, sementara metode-metode klastering (clustering) digunakan untuk mempartisi data tersebut berdasarkan kesamaan ekspresi gen.


Bioinformatika di Indonesia
Saat ini mata ajaran bioinformatika maupun mata ajaran dengan muatan bioinformatika sudah diajarkan di beberapa perguruan tinggi di Indonesia. Sekolah Ilmu dan Teknologi Hayati ITB menawarkan mata kuliah “Pengantar Bioinformatika” untuk program Sarjana dan mata kuliah “Bioinformatika” untuk program Pascasarjana. Fakultas Teknobiologi Universitas Atma Jaya, Jakarta menawarkan mata kuliah “Pengantar Bioinformatika”. Mata kuliah “Bioinformatika” diajarkan pada Program Pascasarjana Kimia Fakultas MIPA Universitas Indonesia (UI), Jakarta. Mata kuliah “Proteomik dan Bioinformatika” termasuk dalam kurikulum program S3 bioteknologi Universitas Gadjah Mada (UGM), Yogyakarta. Materi bioinformatika termasuk di dalam silabus beberapa mata kuliah untuk program sarjana maupun pascasarjana biokimia,biologi, dan bioteknologi pada Institut Pertanian Bogor (IPB). Selain itu, riset-riset yang mengarah pada bioinformatika juga telah dilaksanakan oleh mahasiswa program S1 Ilmu Komputer maupun program pascasarjana biologi serta bioteknologi IPB.
Riset bioinformatika protein dilaksanakan sebagai bagian dari aktivitas riset rekayasa protein pada Laboratorium Rekayasa Protein, Pusat Penelitian Bioteknologi Lembaga Ilmu Pengetahuan Indonesia (LIPI), Cibinong, Bogor. Lembaga Biologi Molekul Eijkman, Jakarta, secara khusus memiliki laboratorium bioinformatika sebagai fasilitas penunjang kegiatan risetnya. Selain itu, basis data sekuens DNA mikroorganisme asli Indonesia sedang dikembangkan di UI.
Sumber :
http://bioinformatika-q.blogspot.com/
http://id.wikipedia.org/wiki/Bioinformatika