Sabtu, 18 Januari 2014

LA MATIF PERT 4 (Fungsi Invers)

import java.util.*;

public class FungsiInvers {
       int[] HimpunanA;
       int[] HimpunanB;
       int[] HimpunanRelasi;
       int[] HimpunanAsal;
       int jmlHimpunanA, jmlHimpunanB, jmlRelasi;
       boolean satu2 ;
 
  Scanner input = new Scanner(System.in);

       public static void main(String args[]){
             FungsiInvers aaa = new FungsiInvers();
             aaa.inputAnggota();
             aaa.cetakHimpunan();
             aaa.inputRelasi();
             aaa.cekFungsi();
             aaa.cetakRelasi();
       }
       public void inputAnggota(){
              System.out.print("Masukkan Jumlah Himpunan A = ");
              jmlHimpunanA =Integer.parseInt(input.next());

              HimpunanA=new int[jmlHimpunanA];
              for(int i = 0;i<= (jmlHimpunanA-1);i++){
                      System.out.print("Himpunan A yang ke "+ (i+1)+" : ");
                      HimpunanA[i]=Integer.parseInt(input.next());
              }

              System.out.print("Masukkan Jumlah Himpunan B = ");
              jmlHimpunanB = Integer.parseInt(input.next());
              HimpunanB = new int[jmlHimpunanB];
              for(int i = 0;i<= (jmlHimpunanB-1);i++){
                      System.out.print("Himpunan B yang ke "+ (i+1) +" : ");
                      HimpunanB[i]=Integer.parseInt(input.next());
              }

       }
       public void cetakHimpunan(){
              System.out.print("Anggota Himpunan A = { ");
              for (int i = 0;i<=(jmlHimpunanA-1);i++){
                  System.out.print(HimpunanA[i]+ " ");
              }
              System.out.println("} ");

              System.out.print("Anggota Himpunan B = { ");
              for (int i = 0;i<=(jmlHimpunanB-1);i++){
                  System.out.print(HimpunanB[i]+ " ");
              }
              System.out.println("} ");
       }
       public void inputRelasi(){
              int jmlRelasiMaks = jmlHimpunanA * jmlHimpunanB;
              System.out.println("Relasi Maksimal Adalah "+jmlRelasiMaks);
              System.out.print(" ");

              do{
                  System.out.print("Masukan Jumlah Relasi yang Terjadi : ");
                  jmlRelasi = Integer.parseInt(input.next());
              }while(jmlRelasi>jmlRelasiMaks);

              HimpunanRelasi = new int[jmlRelasi];
              HimpunanAsal = new int[jmlRelasi];
              System.out.println("Masukkan Relasi yang Terjadi :");
              for(int i=0; i<=(jmlRelasi-1);i++){

                 int[] temp=new int[jmlRelasi];
                 int[] temp2 = new int[jmlRelasi];
                 boolean SamaA = false;
                 boolean SamaB = false;

                 System.out.println("Relasi ke "+(i+1)+" : ");
                 do{
                    System.out.print("Masukkan Asal A : ");
                    temp[i]=Integer.parseInt(input.next());
                    System.out.print("Masukkan Tujuan B: ");
                    temp2[i]=Integer.parseInt(input.next());

                    for (int j= 0; j<=(jmlHimpunanA-1);j++){
                        if(temp[i]==HimpunanA[j]){
                           SamaA=true;
                        }
                    }

                    for (int k= 0; k<=jmlHimpunanB-1;k++){
                        if(temp2[i]==HimpunanB[k]){
                           SamaB=true;
                        }
                    }
                    if(SamaA==false || SamaB==false){
                        System.out.println("Anggota Himpunan Tidak terdapat dihimpunan A atau B");
                    }

                   if(SamaA==true && SamaB==true){
                        HimpunanRelasi[i]=temp2[i];
                        HimpunanAsal[i]=temp[i];
                    }

                 }while(SamaA==false || SamaB==false);
                 }
        }
        public void cekFungsi(){
               satu2 = false;
               int jumlahAnggota = 0;
               boolean adaSama = false;

               for(int i =0;i<=(jmlHimpunanA-1);i++){
                       for(int j=0;j<=(jmlRelasi-1);j++){

                            if(HimpunanA[i]==HimpunanAsal[j]){
                                jumlahAnggota++;
                            }
                       }
               }


               for(int i = 0;i<=(jmlRelasi-1);i++){
                       for(int j=i+1;j<=(jmlRelasi-1);j++){
                        if(HimpunanAsal[i]==HimpunanAsal[j]){
                           adaSama=true;
                           }
                       }
               }

               if(jumlahAnggota==jmlHimpunanA && adaSama == false){
                System.out.println("Relasi yang diInput adalah Fungsi");
                    jumlahAnggota = 0;
                    for(int i =0;i<=(jmlHimpunanB-1);i++){
                       for(int j=0;j<=(jmlRelasi-1);j++){

                            if(HimpunanB[i]==HimpunanRelasi[j]){
                                jumlahAnggota++;
                            }
                       }
                    }

                    for(int i = 0;i<=(jmlRelasi-1);i++){
                       for(int j=i+1;j<=(jmlRelasi-1);j++){
                        if(HimpunanRelasi[i]==HimpunanRelasi[j]){
                           adaSama=true;
                           }
                       }
                    }
                     if(jumlahAnggota==jmlHimpunanB && adaSama == false){
                            System.out.println("Fungsi Yang Diinput Adalah Fungsi satu-satu");
                            satu2= true;
                     }

               }else {
                System.out.println("Relasi yang di input Bukan Fungsi hanya relasi biasa"+ jumlahAnggota);
               }
        }

        public void cetakRelasi(){
               System.out.print("Daerah Domain = { ");
              for(int i=0;i<=jmlHimpunanA-1;i++){
                System.out.print(HimpunanA[i]+" ");
              }
              System.out.println("}");

              System.out.print("Daerah Kodomain { ");
              for(int i=0;i<=jmlHimpunanB-1;i++){
                System.out.print(HimpunanB[i]+ " ");
              }
              System.out.println("}");
              System.out.print("Daerah range adalah : { ");
              for(int i= 0;i<= jmlRelasi-1;i++){
                      boolean adaSama=false;
                      for (int j = i+1;j<=jmlRelasi-1;j++){
                          if(HimpunanRelasi[i]==HimpunanRelasi[j])
                           adaSama=true;
                      }
                   if(adaSama==false)System.out.print(HimpunanRelasi[i]+" ");
              }
              System.out.println("}");

              if(satu2){
                  System.out.println("Fungsi Inversnya Adalah : ");
                  System.out.print("Daerah Domain = { ");
                  for(int i=0;i<=jmlHimpunanA-1;i++){
                          System.out.print(HimpunanB[i]+" ");
                  }
                  System.out.println("}");
                  System.out.print("Daerah Kodomain { ");
                  for(int i=0;i<=jmlHimpunanB-1;i++){
                          System.out.print(HimpunanA[i]+ " ");
                  }
                  System.out.println("}");
                  System.out.print("Daerah range adalah : { ");
                  for(int i= 0;i<= jmlRelasi-1;i++){
                      boolean adaSama=false;
                      for (int j = i+1;j<=jmlRelasi-1;j++){
                          if(HimpunanAsal[i]==HimpunanAsal[j])
                           adaSama=true;
                      }
                   if(adaSama==false)System.out.print(HimpunanAsal[i]+" ");
                   }
                   System.out.println("}");
              }
        }

}

LA MATIF PERT 3 (FUNGSI)

import java.util.Scanner;

public class Fungsii {
       int[] HimpunanA;
       int[] HimpunanB;
       int[] HimpunanRelasi;
       int[] HimpunanAsal;
       int jmlHimpunanA, jmlHimpunanB, jmlRelasi;
  Scanner input=new Scanner(System.in);

       public static void main(String args[]){
             Fungsi madhun = new Fungsi();
             madhun.inputAnggota();
             madhun.cetakHimpunan();
             madhun.inputRelasi();
             madhun.cekFungsi();
             madhun.cetakRelasi();
       }
       public void inputAnggota(){
              System.out.print("Masukkan Jumlah Himpunan A = ");
              jmlHimpunanA =input.nextInt();
             
              HimpunanA=new int[jmlHimpunanA];
              for(int i = 0;i<= (jmlHimpunanA-1);i++){
                      System.out.print("Himpunan A yang ke "+ (i+1)+" : ");
                      HimpunanA[i]=input.nextInt();
              }
             

              System.out.print("Masukkan Jumlah Himpunan B = ");
              jmlHimpunanB = input.nextInt();
              HimpunanB = new int[jmlHimpunanB];
              for(int i = 0;i<= (jmlHimpunanB-1);i++){
                      System.out.print("Himpunan B yang ke "+ (i+1) +" : ");
                      HimpunanB[i]=input.nextInt();
              }

       }
       public void cetakHimpunan(){
              System.out.print("Anggota Himpunan A = { ");
              for (int i = 0;i<=(jmlHimpunanA-1);i++){
                  System.out.print(HimpunanA[i]+ " ");
              }
              System.out.println("} ");
             
              System.out.print("Anggota Himpunan B = { ");
              for (int i = 0;i<=(jmlHimpunanB-1);i++){
                  System.out.print(HimpunanB[i]+ " ");
              }
              System.out.println("} ");
       }
       public void inputRelasi(){
              int jmlRelasiMaks = jmlHimpunanA * jmlHimpunanB;
              System.out.println("Relasi Maksimal Adalah "+jmlRelasiMaks);
              System.out.print(" ");

              do{
                  System.out.print("Masukan Jumlah Relasi yang Terjadi : ");
                  jmlRelasi = input.nextInt();
              }while(jmlRelasi>jmlRelasiMaks);
           
              HimpunanRelasi = new int[jmlRelasi];
              HimpunanAsal = new int[jmlRelasi];
              System.out.println("Masukkan Relasi yang Terjadi :");
              for(int i=0; i<=(jmlRelasi-1);i++){

                 int[] temp=new int[jmlRelasi];
                 int[] temp2 = new int[jmlRelasi];
                 boolean SamaA = false;
                 boolean SamaB = false;

                 System.out.println("Relasi ke "+(i+1)+" : ");
                 do{
                    System.out.print("Masukkan Asal A : ");
                    temp[i]=input.nextInt();
                    System.out.print("Masukkan Tujuan B: ");
                    temp2[i]=input.nextInt();

                    for (int j= 0; j<=(jmlHimpunanA-1);j++){
                        if(temp[i]==HimpunanA[j]){
                           SamaA=true;
                        }
                    }

                    for (int k= 0; k<=jmlHimpunanB-1;k++){
                        if(temp2[i]==HimpunanB[k]){
                           SamaB=true;
                        }
                    }
                    if(SamaA==false || SamaB==false){
                        System.out.println("Anggota Himpunan Tidak terdapat dihimpunan A atau B");
                    }

                   if(SamaA==true && SamaB==true){
                        HimpunanRelasi[i]=temp2[i];
                        HimpunanAsal[i]=temp[i];
                    }

                 }while(SamaA==false || SamaB==false);
                 }
        }
        public void cekFungsi(){
             
               int jumlahAnggota = 0;
               boolean adaSama = false;

               for(int i =0;i<=(jmlHimpunanA-1);i++){
                       for(int j=0;j<=(jmlRelasi-1);j++){

                            if(HimpunanA[i]==HimpunanAsal[j]){
                                jumlahAnggota++;
                            }
                       }
               }
             

               for(int i = 0;i<=(jmlRelasi-1);i++){
                       for(int j=i+1;j<=(jmlRelasi-1);j++){
                        if(HimpunanAsal[i]==HimpunanAsal[j]){
                           adaSama=true;
                           }
                       }
               }
             
               if(jumlahAnggota==jmlHimpunanA && adaSama == false){
                System.out.println("Relasi yang diInput adalah Fungsi");
               }else {
                System.out.println("Relasi yang di input Bukan Fungsi hanya relasi biasa");
               }
        }

        public void cetakRelasi(){
         System.out.print("Daerah Domain = { ");
              for(int i=0;i<=jmlHimpunanA-1;i++){
                System.out.print(HimpunanA[i]+" ");
              }
              System.out.println("}");

              System.out.print("Daerah Kodomain { ");
              for(int i=0;i<=jmlHimpunanB-1;i++){
                System.out.print(HimpunanB[i]+ " ");
              }
              System.out.println("}");
              System.out.print("Daerah range adalah : { ");
              for(int i= 0;i<= jmlRelasi-1;i++){
                      boolean adaSama=false;
                      for (int j = i+1;j<=jmlRelasi-1;j++){
                          if(HimpunanRelasi[i]==HimpunanRelasi[j])
                           adaSama=true;
                      }
                   if(adaSama==false)System.out.print(HimpunanRelasi[i]+" ");
              }
              System.out.println("}");
        }

}

LA MATIF PERT 2 (Relasi)

import java.util.*;
public class Relasi{
       int[] himpunanA= new int[100];
       int[] himpunanB= new int[100];
       int[] himpunanHasil = new int[100];
       int jumlahAnggotaA;
       int jumlahAnggotaB;
       int jumlahRelasi;
 
  Scanner input = new Scanner(System.in);

       public static void main(String args[]){
           Relasi A = new Relasi();
           A.inputAnggota();
           A.inputRelasi();
           A.cetakRelasi();
       }
       public void inputAnggota(){
              System.out.print("Masukkan Jumlah Anggota Himpunan A : ");
              jumlahAnggotaA = Integer.parseInt(input.next());

              System.out.println("Anggota Himpunan A");
              for(int i=1;i<=jumlahAnggotaA;i++){
                      System.out.print("Anggota "+i+" : ");
                      himpunanA[i]=Integer.parseInt(input.next());
              }

              System.out.print("Masukkan Jumlah Anggota Himpunan B : ");
              jumlahAnggotaB = Integer.parseInt(input.next());

              System.out.println("Anggota Himpunan B");
               for(int i=1;i<=jumlahAnggotaB;i++){
                      System.out.print("Anggota "+i+" : ");
                      himpunanB[i]=Integer.parseInt(input.next());
              }
       }


       public void inputRelasi(){
              int jmlRelasiMaks = jumlahAnggotaA*jumlahAnggotaB;
              System.out.println("Banyak Relasi maksimal yang terjadi Adalah : "+ jmlRelasiMaks);

              do{
                 System.out.print("Masukkan Jumlah Relasi terjadi : ");
                 jumlahRelasi = Integer.parseInt(input.next());
              }while(jumlahRelasi>jmlRelasiMaks);

              System.out.println("Masukkan Relasi yang Terjadi :");
              for(int i=1; i<=jumlahRelasi;i++){
                 int temp[]=new int[100];
                 int temp2[] = new int[100];
                 boolean SamaA = false;
                 boolean SamaB = false;

                 System.out.println("Relasi ke "+i+" : ");
                 do{
                    System.out.print("Masukkan Asal A : ");
                    temp[i]=Integer.parseInt(input.next());
                    System.out.print("Masukkan Tujuan B: ");
                    temp2[i]=Integer.parseInt(input.next());

                    for (int j= 1; j<=jumlahAnggotaA;j++){
                        if(temp[i]==himpunanA[j]){
                           SamaA=true;
                        }
                    }

                    for (int k= 1; k<=jumlahAnggotaB;k++){
                        if(temp2[i]==himpunanB[k]){
                           SamaB=true;
                        }
                    }
                    if(SamaA==false || SamaB==false){
                        System.out.println("Anggota Himpunan Tidak terdapat dihimpunan A atau B");
                    }

                   if(SamaA==true && SamaB==true){
                        himpunanHasil[i]=temp2[i];
                    }

                 }while(SamaA==false || SamaB==false);
                 }
       }
       public void cetakRelasi(){
              System.out.print("Daerah Domain = { ");
              for(int i=1;i<=jumlahAnggotaA;i++){
                System.out.print(himpunanA[i]+" ");
              }
              System.out.println("}");

              System.out.print("Daerah Kodomain { ");
              for(int i=1;i<=jumlahAnggotaB;i++){
                System.out.print(himpunanB[i]+ " ");
              }
              System.out.println("}");
              System.out.print("Daerah range adalah : { ");
              for(int i= 1;i<= jumlahRelasi;i++){
                   System.out.print(himpunanHasil[i]+ " ");
              }
              System.out.println("}");
       }
}

LA MATIF PERT 1 (Himpunan)



import java.util.*;
import java.io.*;

public class himpunanLA{
       Scanner input = new Scanner(System.in);
       int[] himpunanA= new int[100];
       int[] himpunanB= new int[100];
       int jumlahAnggotaA;
       int jumlahAnggotaB;

       public void dataAnggota() {

              System.out.print("Masukkan Jumlah Anggota Himpunan A : ");
              jumlahAnggotaA = input.nextInt();

              System.out.println("Anggota Himpunan A");
              for(int i=1;i<=jumlahAnggotaA;i++){
                      System.out.print("Anggota "+i+" : ");
                      himpunanA[i]=input.nextInt();
              }

              System.out.print("Masukkan Jumlah Anggota Himpunan B : ");
              jumlahAnggotaB = input.nextInt();

              System.out.println("Anggota Himpunan B");
               for(int i=1;i<=jumlahAnggotaB;i++){
                      System.out.print("Anggota "+i+" : ");
                      himpunanB[i]=input.nextInt();
              }
       }

       public void tampilAnggota(){
              System.out.print("Anggota Himpunan A = { ");
              for(int i=1;i<=jumlahAnggotaA;i++){

                System.out.print(himpunanA[i]+"   ");
              }
              System.out.println("}");

              System.out.print("Anggota Himpunan B = { ");
              for(int i=1;i<=jumlahAnggotaB;i++){
                System.out.print(himpunanB[i]+ "  ");
              }
              System.out.println("}");
       }






       public void himpunanGabungan(){
          System.out.print("Himpunan Gabungan A U B : { ");
          for(int i=1;i<=jumlahAnggotaA;i++){
                System.out.print(himpunanA[i]+" ");
              }
          for( int i=1;i<=jumlahAnggotaB;i++){
              boolean adaSama = false;
              for(int j=1;j<=jumlahAnggotaA;j++){
                     if(himpunanB[i]==himpunanA[j])
                            adaSama=true;
              }
              if(adaSama==false){
                 System.out.print(himpunanB[i]+" ");
              }
          }
          System.out.println("}");
       }

       public void himpunanIrisan(){
              System.out.print("Himpunan Irisan A n B : { ");

              for( int i=1;i<=jumlahAnggotaB;i++){
                   boolean adaSama = false;
                   for(int j=1;j<=jumlahAnggotaA;j++){
                     if(himpunanB[i]==himpunanA[j])
                            adaSama=true;
              }
              if(adaSama==true){
                 System.out.print(himpunanB[i]+" ");
              }
              }
              System.out.println(" }");
       }
       public void himpunanSelisih(){
              System.out.print("Himpunan Selisih A - B : { ");
              for( int i=1;i<=jumlahAnggotaA;i++){
                   boolean adaSama = false;
                   for(int j=1;j<=jumlahAnggotaB;j++){
                     if(himpunanA[i]==himpunanB[j])
                            adaSama=true;
              }
              if(adaSama==false){
                 System.out.print(himpunanA[i]+" ");
              }
              }
              System.out.println("}");



              System.out.print("Himpunan Selisih B - A : { ");
              for( int i=1;i<=jumlahAnggotaB;i++){
                   boolean adaSama = false;
                   for(int j=1;j<=jumlahAnggotaA;j++){
                     if(himpunanB[i]==himpunanA[j])
                            adaSama=true;
              }
              if(adaSama==false){
                 System.out.print(himpunanB[i]+" ");
              }

              }
              System.out.println("}");

       }

       public static void main(String args[]){
              himpunanLA bilangan = new himpunanLA();
              bilangan.dataAnggota();
              bilangan.tampilAnggota();
              bilangan.himpunanGabungan();
              bilangan.himpunanIrisan();
              bilangan.himpunanSelisih();
       }

}

Minggu, 30 Juni 2013

Bioinformatika

Nurul Fajarini
54409402
4IA23


Bioinformatika??










Sistem biologi adalah sekelompok organ yang bekerja sama untuk melakukan tugas tertentu.Sistem komputer adalah elemen-elemen yang terkait untuk menjalankan suatu aktivitas dengan menggunakan komputer.  jadi 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 .

Sejarah
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 danJerman (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.

Contoh Bidang
Pada Bidang Bioinformatika mencakup penerapan metode-metode matematika, statistika, dan informatika untuk memecahkan masalah-masalah biologis, terutama dengan menggunakan sekuens DNA dan asam aminoserta informasi yang berkaitan dengannya. 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. Contoh bioinformatika dalam bidang meliputi basis data untuk mengelola informasi biologis, penyejajaran sekuens (sequence alignment), prediksi struktur untuk meramalkan bentuk struktur protein maupun struktur sekunder RNA, analisisfilogenetik, dan analisis ekspresi gen.

Penerapan utama pada bioinformatika
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 menemukan gensejenis 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 danasam nukleat hasil penentuan eksperimental (dengan kristalografi sinar-X, spektroskopi NMR dan mikroskopi elektron). PDB menyimpan data struktur sebagai koordinat tiga dimensi yang menggambarkan posisi atom-atom dalam

referensi :







Minggu, 02 Juni 2013

Parallel Processing


Nurul Fajarini
54409402
4IA23


Komputasi modern
Komputasi modern adalah perhitungan yang menggunakan komputer canggih dimana pada computer tersebut tersimpan sejumlah algoritma untuk menyelesaikan masalah perhitungan secara efektif dan efisien.

paralel processing
paralel processing adalah suatu program yang dijalankan secara simultan dengan menggunakan lebih dari satu CPU untuk menjalankannya, sehingga program dapat berjalan lebih cepat karena menggunakan lebih dari satu CPU.

Tujuanya adalah untuk mempercepat penyelesaian dalam suatu pekerjaan, karena dapat bisa dilakukan secara bersamaan dalam waktu yang sama.

Komputasi parallel
Komputasi parallel adalah teknik yang dilakukan untuk melakukan komputasi menggunakan beberapa computer secara bersamaan. Computer-komputer tersebut dihubungkan dengan jaringan sehingga dapat dihubungkan secara parallel dan dapat menyelesaikan suatu masalah.

Komputasi paralel membutuhkan:
  1. ·                    Algoritma
  2. ·         bahasa pemrograman
  3. ·         compiler 

Paralel prosessing komputasi
adalah proses komputasi di komputer dengan memakai suatu bahasa pemrograman yang dijalankan secara paralel pada saat bersamaan.

Perbedaan antara komputasi tunggal dengan parallel



Pada komputasi tunggal terdapat satu CPU, dan jika tugas atau instruksi terlalu banyak maka CPU akan mengerjakan atau memprosesnya secara satu persatu, sehingga membutuhkan waktu yang lama dan akan menimbulkan antrian.











Pada komputasi parallel terdapat lebih dari satu CPU, dan jika tugas atau instruksi terlalu banyak maka CPU akan mengerjakan atau memprosesnya dengan membagi tugas, sehinggadapat dikerjakan dengan cepat dan mempercepat waktu penyelesaian.

Hubungan komputasi modern dengan parallel processing
Sangat berkaitan hubungannya antara komputasi modern dengan parallel processing, karena dengan menggunakan system komputasi modern sangat cepat dan efisien dibandingkan secara manual, terutama dengan menggunakan teknik parallel processing akan semakin cepat dalam menyelesaikan suatu pekerjaan. Suatu komputasi modern disertai dengan parallel processing semakin diterapkan sehari-harinya, cara meningkatkan system ini adalah dengan mengupgrade prosessor dan meningkatkan perangkat keras agar kinerja computer semakin efisien dan cepat meyelesaikan tugas.

referensi:
http://www.scribd.com/doc/32982265/Parallel-Processing
http://qodel.blogspot.com/2011/04/parallel-processing.html
http://bagusonthespot.blogspot.com/2012/04/parallel-processing.html

Jumat, 19 April 2013

Komputasi Modern


Nurul Fajarini
54409402
4IA23

Definisi komputasi modern
Terdapat dua kata dalam Komputasi modern yaitu komputasi dan modern.Komputasi adalah  cara untuk menemukan pemecahan permasalahan dari data input dengan suatu algoritma. Komputasi merupakan subbagian dari matematika. Disebut modern karena menggunakan alat canggih saat menyelesaian masalah. Jadi Komputasi modern adalah perhitungan yang menggunakan komputer canggih dimana pada computer tersebut tersimpan sejumlah algoritma untuk menyelesaikan masalah perhitungan secara efektif dan efisien. Selain itu Komputasi modern digunakan untuk memecahkan masalah antara lain untuk menghitung akurasi (bit, floating point), kecepatan (dalam satuanHz), problem volume besar (paralel), modeling (NN dan GA) dan kompleksitas (menggunakan Teori Big O).

Sejarah Komputasi Modern
George stibitz secara internasional diakui sebagai ayah dari komputer digital modern.
sementara bekerja di laboratorium bel di November 1937, stibitz menciptakan dan membangun sebuah relay berbasis kalkulator ia dijuluki sebagai "model k" (untuk "meja dapur", di mana dia telah berkumpul itu), yang adalah orang pertama yang menggunakan sirkuit biner untuk melakukan operasi aritmatika. Kemudian model menambahkan kecanggihan yang lebih besar termasuk aritmatika
dan kemampuan pemrograman kompleks.

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 . Beliau juga merupakan salah satu ilmuwan yang terkait dalam pembuatan bom atom di Los Alamos pada Perang Dunia II lalu. Kegeniusannya dalam matematika telah terlihat semenjak kecil dengan mampu melakukan pembagian bilangan delapan digit (angka) di dalam kepalanya.

Von Neumann dilahirkan di Budapest, ibu kota Hungaria, pada 28 Desember 1903 dengan nama Neumann Janos. Dia adalah anak pertama dari pasangan Neumann Miksa dan Kann Margit. Di sana, nama keluarga diletakkan di depan nama asli. Sehingga dalam bahasa Inggris, nama orang tuanya menjadi Max Neumann dan Margaret Kann. Max Neumann memperoleh gelar dan namanya berubah menjadi Von Neumann. Max Neumann adalah seorang Yahudi Hungaria yang bergelar doktor dalam ilmu hukum. Dia juga seorang pengacara untuk sebuah bank. Pada tahun 1903, Budapest terkenal sebagai tempat lahirnya para manusia genius dari bidang sains, penulis, seniman dan musisi.

Pada tahun 1921, Von Neumann disekolahkan ayahnya ke Universitas Berlin untuk menjadi insinyur teknik kimia. Berselang dua tahun kemudian ia melanjutkan pendidikan ke Zurich. Sebenarnya Von Neumann kurang tertarik dengan bidang kimia atau bidang engineering, namun ayahnya mendorong dia untuk mempelajari kimia. Pada waktu itu teknik kimia sedang populer dan menjanjikan karier yang cerah bagi para insinyurnya. Oleh karena itu, ayahnya mengharuskan Von Neumann mengikuti pendidikan kimia tanpa gelar selama dua tahun di Berlin, lalu melanjutkan di Eidgennossische Technische Hochschule (ETH) Zurich pada bidang yang sama. Ujian masuk ETH terkenal sulit, bahkan Albert Einstein pernah gagal dalam ujian masuk di tahun 1895 dan berhasil lulus pada ujian tahun berikutnya.

Keinginan Von Neumann untuk mempelajari matematika dilakukannya pada musim panas setelah studinya di Berlin dan sebelum masuk ETH Zurich. Dia menjadi mahasiswa program doktor pada Universitas Budapest. Tesis doktornya bertemakan aksiomasisai teori himpunan (set theory) yang dikembangkan George Cantor. Pada masa itu, set theory merupakan salah satu topik 'menantang' di dunia matematika.

Di tahun 1926 pada umur 22 tahun, Von Neuman lulus dengan dua gelar yaitu gelar S1 pada bidang teknik kimia dari ETH dan gelar doktor (Ph.D) pada bidang matematika dari Universitas Budapest.

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.

Manfaat Komputasi Modern
Dengan adanya komputasi modern, terdapat banyak manfaatnya, yaitu
-      Perhitungan-perhitungan kompleks yang bisa mencapai ribuan data dapat dengan mudah dikerjakan manuisa dengan bantuan komputer. Hal ini tentunya dapat mengurangi waktu, biaya dan lain sebagainya.
-      Lahirnya komputer dapat membantu pekerjaan manusia, dalam berbagai bidang. Misalnya pada bidang kedokteran, pertanian, astronomi, teknologi, ekonomi dan lainnya. Bahkan komputer sekarang telah ada dalam hampir semua bidang di dunia ini.

Macam-macam Komputasi Modern

1. Mobile computing

Mobile computing atau komputasi bergerak memiliki beberapa penjelasan, salah satunya komputasi bergerak merupakan kemajuan teknologi komputer sehingga dapat berkomunikasi menggunakan jaringan tanpa menggunakan kabel dan mudah dibawa atau berpindah tempat, tetapi berbeda dengan komputasi nirkabel.

Dan berdasarkan penjelasan tersebut, untuk kemajuan teknologi ke arah yang lebih dinamis membutuhkan perubahan dari sisi manusia maupun alat. Dan dapat dilihat contoh dari perangkat komputasi bergerak seperti GPS, juga tipe dari komputasi bergerak seperti smart phone, dan lain sebagainya.

2. Grid computing

Komputasi grid menggunakan komputer yang terpisah oleh geografis, didistibusikan dan terhubung oleh jaringan untuk menyelasaikan masalah komputasi skala besar.
Ada beberapa daftar yang dapat dugunakan untuk mengenali sistem komputasi grid, adalah :
-      Sistem untuk koordinat sumber daya komputasi tidak dibawah kendali pusat.
-      Sistem menggunakan standard dan protocol yang terbuka.
-      Sistem mencoba mencapai kualitas pelayanan yang canggih, yang lebih baik diatas kualitas komponen individu pelayanan komputasi grid.

3. Cloud computing

Komputasi cloud merupakan gaya komputasi yang terukur dinamis dan sumber daya virtual yang sering menyediakan layanan melalui internet.

Komputasi cloud menggambarkan pelengkap baru, konsumsi dan layanan IT berbasis model dalam internet, dan biasanya melibatkan ketentuan dari keterukuran dinamis dan sumber daya virtual yang sering menyediakan layanan melalui internet.


Referensi :