Minggu, 22 Maret 2015

Resume film Pirates of Silicon Valley

Film ini menceritakan tentang kisah dari beberapa orang dibalik perusahaan Microsoft dan Apple, dimana antara lain adalah  Steve jobs dan Steve Wozniak yang merupakan orang penting dibalik berdirinya Apple Computer, dan orang-orang penting dibalik berdirinya Microsoft corporation yaitu Bill Gates, Paul, Ballmer dan kawan-kawan. Dimulai disebuah universitas di California yaitu Berkeley, dimana steve jobs dan steve wozniak menuntut ilmu, saat itu sekitar tahun 1971 terjadi demo besar-besaran yang menuntut “kebebasan berbicara” dan menentang keterlibatan Amerika Serikat dalam perang Vietnam. Saat itulah Steve dan Woz sedang melakukan eksperimen, mereka berdua dibantu Captain Crunch, seorang yang dinilai “ANEH” tapi juga pahlawan di Berkeley.
Mereka menciptakan sebuah kotak biru, mirip telepon jaman dulu, tapi bisa untuk menelpon tanpa bayar, karena kotak biru ini mempunyai teknologi yang sama dengan peralatan jarak jauh milik AT&T. Saat itupun muncul fikiran dalam benak Steve Jobs untuk mengembangkan dan menjual kotak biru itu, dan saat itulah dia mulai beranggapan bahwa Informasi adalah kunci kekuasaan di dunia ini, kemudian suatu hari mereka hampir ditangkap polisi karena bisnis kotak biru yang di lakukan tidak pada jalur yang legal.
Setelah kejadian itu maka merekapun memutuskan untuk membuat sebuah komputer, Steve jobs dan steve wozniak adalah manusia biasa yg mempyai fikiran revolusioner yang mampu membawa perubahan besar bagi dunia. Seperti halnya para pengusaha lain, mereka pun pernah mengalami kebangkrutan, akhirnya mereka menghentikan usaha komputernya dalam beberapa minggu, dan mencoba beralih pekerjaan namun apa yang terjadi, steve jobs tidak mampu bertahan lama dengan pekerjaan barunya itu.
Sementara itu, disisi lain, Bill Gates dan rekan-rekannya sedang menjalani hidup yang begitu santainya, namun juga tetap berusaha mengembangkan Microsoft yang saat itu belum banyak yang mengenal nama perusahaan kecil mereka itu.Lalu pada suatu saat, mereka melihat peluang untuk membuat bahasa pemrograman yang akan mereka jual ke perusahaan MITS yang memproduksi sebuah ALTAIR di Albuquerque, pada saat itu Paul lah yang pertama kali datang ke perusahaan MITS untuk menunjukkan bahasa pemrograman yang akan dijualnya kepada MITS, yaitu berupa bahasa FORTRAN yang gunanya untuk mengoperasikan ALTAIR.
Bill Gates adalah ahli dalam bidang bahasa pemprograman (saat itu bahasa Fortran). Ia dan sahabatnya Paul Allen berhasil membuat Traf-O-Data dan berhasil menjualnya ke perusahaan MITS dan saat itu juga mereka memperoleh hadiah dari perusaahaan tersebut berupa sebuahkomputer Altair karena perusahaan tersebut tak bisa mengoperasikan Altair, namun tidak sesederhana itu, Bill dan Paul merasa khawatir jika pihak MITS mengetahui bahwa Kantor mereka adalah sebuah motel yang bobrok dan hanya memiliki dua karyawan magang.
Akhirnya dengan kegeniusan Bill dan Paul mereka mampu mendapatkan uang, namun dari cara yang tidak terpuji, dan cukup beresiko, yaitu menyewakan kamar motelnya untuk tempat perbuatan maksiat. Steve Jobs lebih gila lagi, ia dan Steve Wosniak membuat prototype sebuah komputer yang sekarang kita kenal sebagai PC. pun memamerkan komputer mereka yang dilengkapi dengan monitor dalam sebuah grup pecinta komputer dan mendapatkan order pertama 50 unit. 
Mereka berdua beruntung juga, setelah berkali-kali jungkir balik mencari modal baik berupa pinjaman dari Bank serta menjual Mobilnya, akhirnya suatu hari datanglah Mike Markula, seorang Pegawai Intel Corporation, saat itu dia tengah mencari peluang bisnis dan menawarkan 250ribu dollar untuk proyek Apple, mereka mulai proyek Apple dengan lebih professional, hingga pada suatu hari di sebuah acara pameran komputer Apple benar-benar membuat para pengunjung tergila-gila dan kagum akan komputer Apple, dari situlah Apple bermula dan berkembang Cepat hingga mereka mampu mendirikan kantor dan menerbitkan Apple 2 ke pasar yang mampu bersaing dengan IBM. Sementara Jobs dan Apple-nya terus berkibar, Bill Gates masih berkutat dengan Microsoft belum bisa tumbuh seperti yang diharapkannya, melihat Apple yang telah sukses dan membuat IBM seperti kalah bersaing, Bill Gates pun berfikir bagaimana caranya agar IBM membutuhkannya, Akhirnya Bill Gates membuat kejutan besar dengan memutuskan untuk bekerja sama dengan IBM. Mereka segera menjalankan niat tersebut dengan mendatangi Kantor IBM, Bill Gates menawarkan seperangkat sistem operasi yang ia klaim mampu berintegrasi dengan komputer buatan IBM. Ia menamainya DOS (Disk Operating System).
Namun sebenarnya Bill tak pernah membuat satu sistem operasi apapun. Dengan pintarnya Bill Gates dengan bantuan Paul berhasil membeli sistem operasi dari Seatle dengan harga 50 ribu Dollar kemudian menyempurnakannya dan menjualnya ke IBM dengan harga yang mahal. Dari sinilah Microsoft mulai dikenal. Steve Jobs pun tak tinggal diam, untuk bisa terus menyalip IBM di pasar komputer ia butuh lebih dari sekadar inovasi biasa. Untuk tetap bisa menguasai pasar Apple menerbitkan Lisa, sebuah komputer yang ia beri nama seperti nama anak pertamanya. Lalu dengan geniusnya Jobs memanfaatkan proyek gagal dari perusahaan Xerox berupa teknologi mouse dan GUI (Graphic User Interface). Ia menggagas pembuatan komputer pribadi yang ia beri nama Macintosh.
Mengetahui komputer keluaran terbaru dari Apple yaitu Lisa, Bill Gates pun tak bisa diam. dengan mengajak Jobs bekerja sama dengan tujuan utama mempelajari teknologi Grafis dan S,Onya, sungguh beruntung Bill Gates dan niatnya hanya menginginkan Lisa, namun Macintosh pun didapatnya, Microsoft mendapatkan 3 prototype dari Apple. Akhirnya Microsoft yang saat itu belum seberapa besar dibandingkan Apple dapat sesuka hati mengutak-atik prototype Macintosh Apple yang baru akan diliris setahun kemudian, hal ini disebabkan karena pengakuan Bill Gates bahwa IBM selaku saingan Apple menginginkan produk dari Microsoft, sehingga Steve pun harus sedikit khawatir dengan IBM dan akhirnya menerima Microsoft tanpa memikirkan resiko yang akan timbul seperti pada kenyataannya.
Bill Gates secara diam-diam mengutak-atik sistem operasi dan teknologi Macintosh dan meluncurkan apa yang kita kenal sekarang sebagai Windows, padahal saat itu Macintosh belum diluncurkan, tapi karena kelihaiannya Bill Gates dapat mengelabui Apple, dari situlah Microsoft bekembang pesat dan jutru menjadi saingan berat bagi Apple. Dan Bill gates menjadi orang terkaya di dunia yg memiliki saham Apple Computer.
Sementara di pihak Apple sendiri justru terjadi persaingan antara Macintosh Developers dan Apple II Developers, namun Steve Jobs malah menganggap hal ini sebagai sesuatu yang hebat dan dia menganggap macintosh adalah yang terbaik. Akhirnya suatu hari Steve Jobs dipecat dari Apple yang pada saat itu John Sculley yang menjadi Presiden di Perusahaan Apple, steve dianggap membawa dampak buruk bagi kelanjutan Apple, namun sepeninggal Steve Apple justru dapat dibilang kurang Inovatif, maka pada tahun 1997 Steve Jobs secara resmi di panggil kembali ke Apple.

Minggu, 15 Maret 2015

Geblek Kulon Progo

Geblek adalah makanan tradisional yang dibuat dari bahan tepung tapioka dengan bumbu bawang yang digoreng gurih. Bentuknya bulat berwarna putih bersih dan diolah dengan cara digoreng. Makanan ini populer sebagai jajanan khas dari daerah Kabupaten KulonprogoKabupaten Purworejo, dan Kabupaten Wonosobo. Masing-masing daerah memiliki citarasa unik. Gebleg dapat dinikmati dengan dimakan langsung atau dengan campuran saus kacangGeblek itu sendiri masih di minati oleh banyak warga Kulon Progo itu sendiri, bukan cuma karena gurih tetapi makanan kecil ini juga relatif murah dan terjangkau. Berikut resep dan cara membuat geblek :
Bahan baku dari Geblek berasal dari tepung tapioka atau tepung kanji, bumbunya hanya bawang putih dan garam. Hanya saja tepung tapioka yang digunakan untuk membuat Geblek adalah tepung tapioka yang basah.
Untuk membuat geblek yang baik dan enak mula-mula tepung tapioka basah dikukus namun tidak sampai matang. Setelah itu tepung tapioka yang memadat itu dipilin ( diplintir/digilas sambil dibumbui garam ). Kemudian adonan yang sudah berbumbu garam ini dikukus lagi selama kurang lebih 10 menit. Adonan yang telah dipilin dan dibumbui garam serta dikukus ini lalu ditiriskan sebentar. Adonan tersebut kemudian dibumbui dengan bawang putih yang telah dilumatkan. Adonan setengah matang ini kemudian dibentuk bulat-bulat dan digandengkan masing-masing terdiri atas dua bulatan sehingga membentuk huruf 8. Adonan yang demikian ini sudah siap untuk digoreng dan disajikan.



Senin, 09 Juni 2014

Buatlah program Minimum Spaning Tree (MST) dengan Algoritma Prim menggunakan penyelesaian dengan algoritma Greedy

#include<iostream>
#include<conio.h>

using namespace std;
struct node
{

int fr,to,cost;
}p[6];
int c = 0,temp1 = 0,temp = 0;
void prims(int *a,int b[][7],int i,int j)
{
    a[i] = 1;
    while (c < 6)
    {
        int min = 999;
        for (int i = 0; i < 7; i++)
        {
            if (a[i] == 1)
            {
                for (int j = 0; j < 7; )
                {
                    if (b[i][j] >= min || b[i][j] == 0)
                    {
                        j++;
                    }
                    else if (b[i][j] < min)
                    {
                        min = b[i][j];
                        temp = i;
                        temp1 = j;
                    }
                }
            }
        }
        a[temp1] = 1;
        p[c].fr = temp;
        p[c].to = temp1;
        p[c].cost = min;
        c++;      
        b[temp][temp1] = b[temp1][temp]=1000;
    }
    for (int k = 0; k < 6; k++)
    {
        cout<<"awal:"<<p[k].fr<<endl;
        cout<<"berat:"<<p[k].to<<endl;
        cout<<"tujuan"<<p[k].cost<<endl;
    }
}

int main(int argc, char *argv[])
{

    int a[7];
    for (int i = 0; i < 7; i++)
    {
        a[i] = 0;
    }
    int b[7][7];
    for (int i = 0; i < 7; i++)
    {
        cout<<"Masukkan Nilai "<<(i+1)<<"Baris"<<endl;
        for (int j = 0; j < 7; j++)
        {
            cin>>b[i][j];
        }
    }
    prims(a,b,0,0);

    system("PAUSE");
    return EXIT_SUCCESS;

}

Buatlah program menentukan nilai min max menggunakan metode Devide and Conquer ?

1.       #include <stdio.h>
#include <conio.h>

int a[100];
int max, min;
void maxmin(int i, int j) {
     int max1, min1, mid;
     if(i==j) {
          max=min=a[i];   }
     else if(i==j-1) {
           if(a[i]>a[j]) {
                max=a[i];
                min=a[j];  }
           else {
                max=a[j];
                min=a[i];  }
     }

     else {
           mid=(i+j)/2;
           maxmin(i, mid);
           max1=max;
           min1=min;
           maxmin(mid+1, j);
           if(max<max1)
                max=max1;
           if(min>min1)
                min=min1;  }
}
int main() {
     int i, num;
  
     printf("\n\t\t\t   Maximum & Minimum \n\n");
     printf("\nMasukkan banyak angka: ");
     scanf("%d",&num);
     printf("\nMasukkan angkanya: \n");
     for(i=0;i<num;i++) {
           scanf("%d",&a[i]); }
     max=a[0];
     min=a[0];
     maxmin(0,num-1);
     printf("\nMaximum angka: %d\n", max);
     printf("Minimum angka: %d\n", min);
     getch();

}

PROGRAM FRACTIONAL KNAPSACK

#include <cstdlib>
#include <iostream>

using namespace std;
void SloveFranctionKnapsack(float p[], float w[], int n, float x[], float W, float &TotalUntung){
     int i;
     float kapasitas;
     bool MasihMuatUtuh;
    
     for(i=1; i<=n; i++){
              x[i]=0;
              }
    
     kapasitas = W;
     TotalUntung = 0;
     i = 0;
     MasihMuatUtuh = true;
     while (i <= n && MasihMuatUtuh){
           if (w[i] <= kapasitas){
              x[i] = 1;
              TotalUntung = TotalUntung + p[i];
              kapasitas = kapasitas - w[i];
              i=i+1;
              }
           else{
           MasihMuatUtuh = false;
           }  
     }
    
     if (i<n){
        x[i] = kapasitas / w[i];
        TotalUntung=TotalUntung + x[i]*p[i];
      }
     }
int main(int argc, char *argv[])
{
float p[] = {60,16,15,10};
float w[] = {10, 8, 3, 5};
float W = 16;
int n = 4;
float x[] = {};
float TotalUntung;

SloveFranctionKnapsack(p, w, n, x, W, TotalUntung);
cout<<"Total Untung = "<<TotalUntung<<endl;

   
    system("PAUSE");
    return EXIT_SUCCESS;

}

Kamis, 05 Juni 2014

Program Algoritma Dijkstra


#include <cstdlib>
#include <iostream>
#define max 20
#define infinity 9999

using namespace std;
class dijkstra{
      private:
              int n,graph[max][max],colour[max],start,distance[max],predecessor[max];
              enum {green,yellow,red};
      public:
             void read_graph();
             void initialize();
             int select_min_distance_lable();
             void update(int);
             void output();
             void function();

      };
void dijkstra::read_graph(){
     cout<<"masukkan jumlah node = ";
     cin>>n;
     cout<<"masukkan nilai matrik untuk graf ::\n";
     int i,j;
     for(i=1;i<=n;i++){
                       for(j=1;j<=n;j++){
                                         cout<<"["<<i<<"],["<<j<<"]=";
                                         cin>>graph[i][j];}}
     for(i=1;i<=n;i++){
                       colour[i]=green;}
     cout<<"masukkan vertex mulai :: ";
     cin>>start;
     }
void dijkstra::initialize(){
     for(int i=1;i<=n;i++){
             if(i==start){
                          distance[i]=0;}
             else{distance[i]=infinity;}
     }
     for(int j=1;j<=n;j++){
             if(graph[start][j]!=0){
                                    predecessor[j]=start;}
             else{predecessor[j]=0;}
     }
}
int dijkstra::select_min_distance_lable(){
    int min=infinity;
    int p=0;
    for(int i=1;i<=n;i++){
            if(colour[i]==green){
                                 if(min>=distance[i]){
                                                   min=distance[i];
                                                   p=i;
                                                   }
                                 }
            }
    return p;
    }
void dijkstra::update(int p){
     cout<<"\nupdate jarak = \n";
     for(int i=1;i<=n;i++){
             if(colour[i]==green){
                                  if(graph[p][i]!=0){
                                                     if(distance[i]>graph[p][i]+distance[p]){
                                                                                             distance[i]=graph[p][i]+distance[p];
                                                                                             predecessor[i]=p;
                                                                                             }
                                                     }
                                  }
             cout<<distance[i]<<'\t';
             }
     }
void dijkstra::output()
{
 cout<<"****** The final paths and the distacnes are ******\n\n";

 for(int i=1;i<=n;i++)
 {
  if(predecessor[i]==0 && i!=start)
  {
   cout<<"path does not exists between "<<i<<" and the start vertex "
    <<start<<endl;
   exit(1);
  }
  cout<<"path for node "<<i<<" is ::\n";
  int j=i;
  int array[max];
  int l=0;
  while(predecessor[j]!=0)
  {
   array[++l]=predecessor[j];
   j=predecessor[j];
  }
  for(int k=l;k>=1;k--)
   cout<<array[k]<<"->";

  cout<<i<<endl;
  cout<<"distance is "<<distance[i]<<endl<<endl<<endl;
 }
}

void dijkstra::function()
{
 cout<<"\n**********************************************************************\n";
 cout<<"*This program is to implement dijkstra’s algorithm using colour codes* \n";
 cout<<"**********************************************************************\n\n";
 read_graph();
 initialize();  //repeate until all nodes become red
 int flag=0;
 int i;

 cout<<"\n\n******** The working of the algorithm is **********\n\n";

 for(i=1;i<=n;i++)
  if(colour[i]!=red)
   flag=1;

 cout<<"The initial distances are ::\n";
 for(i=1;i<=n;i++)
  cout<<distance[i]<<'\t';
 cout<<endl;

 while(flag)
 {
  int p=select_min_distance_lable();
  cout<<"\nThe min distance lable that is coloured yellow is "<<p;
  colour[p]=yellow;

  update(p);
  cout<<"\nnode ="<<p<<" is coloured red "<<endl;
  colour[p]=red;

  flag=0;
  for(i=1;i<=n;i++)
   if(colour[i]!=red)
    flag=1;

  cout<<endl<<endl<<endl;
 }
 output();
}

int main(int argc, char *argv[])
{
    dijkstra d;
 d.function();
    system("PAUSE");
    return EXIT_SUCCESS;
}


HASIL PRINT OUT



referensi : http://dennyshare.blogspot.com/2012/05/program-algoritma-dijkstra.html

Algoritma Dijkstra

Algoritma Dijkstra, (dinamai menurut penemunya, seorang ilmuwan komputer, Edsger Dijkstra), adalah sebuah algoritma rakus (greedy algorithm) yang dipakai dalam memecahkan permasalahan jarak terpendek (shortest path problem) untuk sebuah graf berarah (directed graph) dengan bobot-bobot sisi (edge weights) yang bernilai tak-negatif.

Misalnya, bila vertices dari sebuah graf melambangkan kota-kota dan bobot sisi (edge weights) melambangkan jarak antara kota-kota tersebut, maka algoritma Dijkstra dapat digunakan untuk menemukan jarak terpendek antara dua kota.

Input algoritma ini adalah sebuah graf berarah yang berbobot (weighted directed graph) G dan sebuah sumber vertex s dalam G dan V adalah himpunan semua vertices dalam graph G.

Setiap sisi dari graf ini adalah pasangan vertices (u,v) yang melambangkan hubungan dari vertex u ke vertex v. Himpunan semua tepi disebut E.

Bobot (weights) dari semua sisi dihitung dengan fungsi
w: E → [0, ∞)
 
jadi w(u,v) adalah jarak tak-negatif dari vertex u ke vertex v.

Ongkos (cost) dari sebuah sisi dapat dianggap sebagai jarak antara dua vertex, yaitu jumlah jarak semua sisi dalam jalur tersebut. Untuk sepasang vertex s dan t dalam V, algoritma ini menghitung jarak terpendek dari s ke t.

Pseudocode

 1  function Dijkstra(Graph, source):
 2      for each vertex v in Graph:                                // Initializations
 3          dist[v] := infinity ;                                  // Unknown distance function from 
 4                                                                 // source to v
 5          previous[v] := undefined ;                             // Previous node in optimal path
 6      end for                                                    // from source
 7      
 8      dist[source] := 0 ;                                        // Distance from source to source
 9      Q := the set of all nodes in Graph ;                       // All nodes in the graph are
10                                                                 // unoptimized - thus are in Q
11      while Q is not empty:                                      // The main loop
12          u := vertex in Q with smallest distance in dist[] ;    // Start node in first case
13          remove u from Q ;
14          if dist[u] = infinity:
15              break ;                                            // all remaining vertices are
16          end if                                                 // inaccessible from source
17          
18          for each neighbor v of u:                              // where v has not yet been 
19                                                                 // removed from Q.
20              alt := dist[u] + dist_between(u, v) ;
21              if alt < dist[v]:                                  // Relax (u,v,a)
22                  dist[v] := alt ;
23                  previous[v] := u ;
24                  decrease-key v in Q;                           // Reorder v in the Queue
25              end if
26          end for
27      end while
28  return dist;

Referensi