Kamis, 26 April 2012

TUGAS PEMROGRAMMAN JARINGAN

DEMO D1-1
Program 1 : D1-1
Mengambil IP Komputer Lokal
Nama Program : getIP.java

Listing Program :
package tugaspakachsan;

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<ip.length; i++) {
            if (i > 0) {
                        System.out.print(".");
                  }
                  System.out.print(ip[i] & 0xff);
            }
            System.out.println();
      }
}


Pada Listing diatas ini, saya menjalankan kodingnya dengan menggunakan JAVA IDE Netbeans. Pada intinya program ini berfungsi untuk menampilkan IP local pada sebuah komputer.





Gambar dibawah ini adalah tamilan ketika saya menuliskan  listing program ke layar netbeans. Disini package projek saya beri nama tugaspakachsan dan nama class pada program ini adalah getIP.


Selanjtnya adalah gambar output dari program diatas :
Dan Inilah IP local pada computer saya sendiri.





DEMO D1-2
Program 2 : D1-2
Mencetak Nama Komputer Lokal
Nama Program : getName.java

Listing Program :
package tugaspakachsan;
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());
    }
}

Pada Listing diatas ini, saya menjalankan kodingnya dengan menggunakan JAVA IDE Netbeans. Pada intinya program ini berfungsi untuk mencetak nama komputer local yang sedang diaktifkan.
Gambar dibawah ini adalah tamilan ketika saya menuliskan  listing program ke layar netbeans. Disini saya membuat class baru yang bernama getName.java.



Selanjtnya adalah gambar output dari program diatas :
Dan Inilah nama komputer saya sendiri yang bernama BARRON-PC.



DEMO D1-3
Program 3 : D1-3
Nama Program : IPtoName.java
Mencetak Nama Komputer Lokal Dengan Memasukkan Alamat IP computer lokal

Listing Program :

package tugaspakachsan;

import java.net.*;
public class IPtoName {
    public static void main(String args[]) {

        if (args.length == 0) {
            System.out.println("Pemakaian: java IPtoName <IP address>");
            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());
    }

}

Pada Listing diatas ini, saya menuliskan listing program tersebut dengan menggunakan notepad. Setelah itu saya simpan notepad tersebut dengan format penyimpanan .java, Lalu saya beri nama file tersebut dengan nama IPtoName.java. Setelah file java ini disimpan dengan nama tersebut, langkah selanjutnya adalah mengcompile file .java tersebut dengan menggunakan command prompt yang ada pada computer local tersebut. Cara mengkompilenya adalah pertama kita lihat dulu letak file .java itu disimpan.

Gambar dibawah ini adalah ketika saya menyimpan file .java tersebut di drive d. Lalu, kita tulis perintah javac [nama_fileJava].java untuk mengkompile. Kita tunggu beberapa saat, kalau tidak ada yang error maka akan dilanjutkan dengan perintah untuk merunning program java yang telah kita buat listingnya didalam file IPtoName.java tersebut. Cara runningnya adalah java [nama_fileJava] [alamat_IP_Lokal] maka hasilnya akan keluar nama computer kita. Disini saya ambil contoh adalah IP saya dan yang keluat nama computer yang saya gunakan. Berikut adalah hasil running listing program diatas pada komputer saya :




DEMO D1-4
Program 4 : D1-4
Nama Program : NSLookup.java
Mencetak Alamat IP computer Lokal dengan memasukkan Nama Komputer Lokal

Listing Program :

import java.net.*;
public class NsLookup {
  public static void main(String args[]) {
    if (args.length == 0) {
      System.out.println("Pemakaian: java NsLookup <hostname>");
      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<ip.length; i++) {
      if (i > 0) System.out.print(".");
      System.out.print((ip[i]) & 0xff);
    }

    System.out.println();
  }
}

Pada Listing diatas ini, saya menuliskan listing program tersebut dengan menggunakan notepad. Setelah itu saya simpan notepad tersebut dengan format penyimpanan .java, Lalu saya beri nama file tersebut dengan nama NSLookup.java. Setelah file java ini disimpan dengan nama tersebut, langkah selanjutnya adalah mengcompile file .java tersebut dengan menggunakan command prompt yang ada pada computer local tersebut. Cara mengkompilenya adalah pertama kita lihat dulu letak fila .java itu disimpan.
Gambar dibawah ini adalah ketika saya menyimpan file .java tersebut di drive d. Lalu, kita tulis perintah javac [nama_fileJava].java untuk mengkompile. Kita tunggu beberapa saat, kalau tidak ada yang error maka akan dilanjutkan dengan perintah untuk merunning program java yang telah kita buat listingnya didalam file NSLookup.java tersebut. Cara runningnya adalah java [nama_fileJava] [alamat_IP_Lokal] maka hasilnya akan keluar alamat IP computer lokal kita. Disini saya ambil contoh adalah nama komputer saya dan yang keluar adalah alamat IP yang saya gunaan pada computer local ini. Jadi, inti dari listing ini adalah kebalikan dari file IPtoName.java. Berikut hasil yang saya dapat dari listing diatas :







DEMO D1-5
Program 5 : D1-5
Nama Program : simpleServer.java dan simpleClient.java
Melakukan proses client-server dengan menggunakan 2 cmd dalam 1 komputer

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

  }
}

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("Error io: " + e2);
        }
       
        //Menulis ke server
        try {
            System.out.println("Dari server: " + output);
            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);   
        }
    }
}

Pada Listing diatas ini, saya menuliskan listing program tersebut dengan menggunakan notepad. Setelah itu saya simpan notepad tersebut dengan format penyimpanan .java, Lalu saya beri nama file tersebut dengan nama simpleServer.java dan simpleClient.java. Setelah file java ini disimpan dengan nama tersebut, langkah selanjutnya adalah mengcompile file .java tersebut dengan menggunakan command prompt yang ada pada computer local tersebut. Cara mengkompilenya adalah pertama kita lihat dulu letak fila .java itu disimpan.
Kedua listing ini berfungsi untuk membuat sebuah jaringan client dan server. Dimana listing ini dijalankan dengan mengggunakan 2 buah command prompt yang 1 bertindak sebagai client dan 1 lagi bertindak sebagai server. Sekarang saya akan menjelaskan bagaimana cara menjalankan listing pertama yaitu simpleServer :

-Pertama, buka cmd computer kita
-Menuju lokasi file ini disimpan, disini saya taru di drive D dengan nama simpleServer.java
-kita compile dengan menggunakan perintah javac simpleServer.java
-lalu kita run program simpleServer.java ini dengan perintah java simpleServer lalu “enter”
-akan keluar hasilnya adalah “Aplikasi Server Hidup”

Selanjutnya saya akan membahas menjalankan simpleClient.java setelah menjalankan simpleServer.java :
-Pertama, buka cmd computer kita
-Menuju lokasi file ini disimpan, disini saya taru di drive D dengan nama simpleClient.java
-kita compile dengan menggunakan perintah javac simpleClient.java
-lalu kita run program simpleClient.java ini dengan perintah java simpleServer BARRON-PC lalu “enter”
-akan keluar hasilnya adalah “Masukkan kata kunci : ”
-kata kunci ini kita masukkan kata “salam” maka dari server akan membalas juga dengan kata “salam juga”
-Perlu diperhatikan juga ketika kita memasukan kata kuncinya dengan kata yang lain maka hasilnya akan keluar adalah “maaf, saya tidak mengerti” itu disebabkan pada listing program server hanya mengidentifikasikan kata kuncinya adalah kata “salam".




Gambar 1 cmd sebagai server



Gambar 2 cmd sebagai client



Gambar 3 ketiga client menyebutkan kata kunci yang berbeda dan server tidak mengerti








DEMO D1-7
Program 7 : D1-7
Nama Program : ObjectServer.java, Staff.java dan ObjectClient.java
Melakukan proses pengiriman data staff pegawai dari client menuju ke server


Tulis listing program ini pada lembar notepad dengan menyimpanya dengan format .java :


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


 }



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




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("BARRON SATRIO","Teknik Informatika",22);
   os.writeObject(pegawai);
   
   System.out.println("Client mengirim data pegawai:");
   pegawai.print();
  }
  catch(Exception e){
   e.printStackTrace();
  }
 }




pada latihan tugas pemrogramman jaringan ke tujuh ini akan membuat kelas Staff yang berisi informasi data pegawai. Data staff akan dikirimkan dari suatu aplikasi client ke aplikasi server lewat sebuah soket. Disini yang pertama dijalankan pada layar command prompt adalah ObjectServer.java , pada saat Object Server dijalankan maka dia akan menunggu ObjectClient.java mengirim sebuah data. Selanjutnya yang akan kita jalankan adalah ObjectClient.java. Pada saat aplikasi client dijalankan, maka secara otomatis akan mengirim sebuah data pegawai ke aplikasi server. Disini data pegawai yang saya buat adalah :
Nama : barron satrio
Divisi : Teknik Informatika
Umur : 22

Untuk lebih jeasnya dapat dilihat pada layar output dibawah ini :




                                                    Gambar 1 Output ObjectServer.java






                                                    Gambar 2 Output ObjectClient.java

Minggu, 01 April 2012

BIOINFORMATIKA

Bioinformatika (bahasa Inggrisbioinformatics) adalah (ilmu yang mempelajari) penerapan teknik komputasional untuk mengelola dan menganalisis informasi biologis. Bidang ini mencakup penerapan metode-metode matematikastatistika, 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.



Sejarah


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

[sunting]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.
BLAST (Basic Local Alignment Search Tool) merupakan perkakas bioinformatika yang berkaitan erat dengan penggunaan basis data sekuens biologis. Penelusuran BLAST (BLAST search) pada basis data sekuens memungkinkan ilmuwan untuk mencari sekuens asam nukleat maupun protein yang mirip dengan sekuens tertentu yang dimilikinya. Hal ini berguna misalnya untuk menemukangen sejenis pada beberapa organisme atau untuk memeriksa keabsahan hasil sekuensing maupun untuk memeriksa fungsi gen hasil sekuensing. Algoritma yang mendasari kerja BLAST adalah penyejajaran sekuens.
PDB (Protein Data Bank, Bank Data Protein) adalah basis data tunggal yang menyimpan model struktural tiga dimensi protein dan asam nukleat hasil penentuan eksperimental (dengan kristalografi sinar-Xspektroskopi NMR dan mikroskopi elektron). PDB menyimpan data struktur sebagai koordinat tiga dimensi yang menggambarkan posisi atom-atom dalam protein ataupun asam nukleat.

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 proteomicsberkaitan 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.