Author: Galih Anggi Satriawan

Cara Install Virtual Box di Windows 7

Cara Install Virtual Box di Windows 7

Hai presser, jumpa lagi dengan postinganku. Untuk kali ini aku bakal sharing ke kalian tentang Category yang berbeda presser, yaitu Category Sistem Operasi. Lebih tepatnya lagi, untuk beberapa menit kedepan aku bakal sharing tentang bagaimana cara menginstall Virtual Box di Windows 7.

Virtual Box sendiri merupakan suatu software yang dapat memvisualisasikan atau mencoba berbagai Sistem Operasi di atas Sistem Operasi yang kita pakai presser. Jadi kalian tidak perlu menginstall ulang komputer kalian hanya untuk ingin mencoba kehandalan suatu Sistem Operasi (Ubuntu, Linux Mints, dsb). Ok presser let’s go.

Langkah-langkah Menginstall Virtual Box :

  • Download File

Untuk file/installer virtual box kita dapat langsung download di situs resminya presser yaitu https://www.virtualbox.org/wiki/Downloads .

  • Buka Installer

Setelah proses download selesai, langsung buka aja installernya presser.

Buka file

  • Pilih Lokasi Installasi

Pada tahap ini kalian bisa menentukan lokasi penyimpan dari installasi Virtual Box, jadi terserah kalian juga mau menyimpannya di Disk C atau D atau Disk yang lainnya

Pilih lokasi

  • Opsi Membuat Shortcut

Di tahap ini sebenernya sunnah sih, jadi kalian bisa centang semua pilihan atau tidak, karena fungsi nya hanya untuk membuat shortcut di suatu tempat

pilih create shortcut

  • Installasi

Ok, Tahap yang kita lalui udah hampir selesai presser, sekarang kalian tinggal klik ‘Yes’ lalu ‘Install’ setelah itu mohon ditunggu ya presser proses installasinya.

terakhir

  • Permission

Di dalam proses installasi, kalian bakal di mintai perijinan untuk install komponen-komponennya virtual box presser, jadi tinggal klik ‘Install’ aja presser.

trust

  • Installasi Selesai

Nah sekarang Virtual Box sudah ready untuk dipakai nih presser.

siap pakai

Oke presser mungkin untuk kali ini itu saja yang bisa saya sharing kan. Untuk pembahasan proses penginstallan Sistem Operasinya mohon tunggu postingan selanjutnya ya presser.

Advertisements
Pembahasan Problem “C – Burung Beo”

Pembahasan Problem “C – Burung Beo”

Hai presser, jumpa lagi dengan postinganku. Kali ini aku akan mengupas permasalahan “Burung Beo” yang ada di tahap Ekspresi dan Masukan Keluaran. Ok Let’s go.

Problem              :

Burung Beo

Deskripsi

Di samping memelihara bebek, Pak Dengklek pun memiliki seekor burung beo kesayangan. Burung beo ini selalu mengulangi secara persis apapun ucapan yang dilontarkan kepadanya.

Pak Dengklek iseng-iseng ingin memiliki sebuah program komputer yang menirukan sifat burung beo tersebut. Ia ingin memiliki program yang menerima sebuah kalimat, kemudian mencetak kembali kalimat tersebut secara persis.

Bantulah Pak Dengklek membuat program tersebut.

Format Masukan

Sebuah baris berisi sebuah kalimat.

Format Keluaran

Sebuah baris berisi sebuah kalimat yang sama persis dengan masukan.

Contoh Masukan

Ayo belajar pemrograman dengan giat

Contoh Keluaran

Ayo belajar pemrograman dengan giat

Gambaran           :

Dari problem di atas maka kita dapat menyimpulkan bahwa kita disuruh untuk membuat program yang dapat ,mencetak ulang apa yang telah diinputkan user.

Algoritma           :

  1. Inputkan kalimat (variable)
  2. Cetak kalimat (variable)

Code      :

  #include <iostream>
  using namespace std;
  int main(){
	char masuk[101];
	cin.getline(masuk,101);
	cout<<masuk<<endl;
	return 0;
  }

NB :Jangan lupa ya dioutput paling akhir harus ditambah dengan baris baru (Enter).
Ok presser sampai jumpa dipembahasan berikutnya ya.

Pembahasan Problem “B – A Tambah B”

Pembahasan Problem “B – A Tambah B”

Hai presser, jumpa lagi dengan postinganku. Kali ini aku akan mengupas permasalahan “A tambah B” yang ada di tahap Ekspresi dan Masukan Keluaran. Ok Let’s go.

Problem              :

A Tambah B

Deskripsi

Pak Dengklek memiliki A ekor bebek jantan dan B ekor bebek betina. Tentukan banyaknya total bebek yang dimiliki Pak Dengklek.

Format Masukan

Sebuah baris berisi dua buah bilangan bulat A dan B.

Format Keluaran

Sebuah baris berisi sebuah bilangan bulat yang merupakan banyaknya total bebek.

Contoh Masukan

3 100

Contoh Keluaran

103

Gambaran           :

Dari problem di atas maka kita dapat menyimpulkan bahwa kita disuruh untuk membuat program yang dapat menjumlahkan dua bilangan.

Algoritma           :

  1. Inputkan A dan B
  2. Cetak A+B

Code      :

   #include <iostream>
   using namespace std;
   int main(){
       int a,b,c;
       scanf("%d %d",&a,&b);
       c=a+b;
       printf("%d\n",c);
     return 0;
   }

NB :Jangan lupa ya dioutput paling akhir harus ditambah dengan baris baru (Enter).
Ok presser sampai jumpa dipembahasan berikutnya ya.

Pembahasan Problem “A – Halo, Dunia!”

Pembahasan Problem “A – Halo, Dunia!”

Hai presser, kali ini kita berada di topik Kupas Kode. Nah, postingan ini merupakan postingan perdanaku yang membahas tentang Kupas Kode TLX Training Gate dan pastinya kita ,masih di Tahap Perkenalan. Let’s go.

Problem              :

Halo, Dunia!

Deskripsi

Pak Dengklek senang sekali mengetahui bahwa Anda sedang mempelajari dasar-dasar pemrograman. Ia lalu memberitahu Anda bahwa langkah pertama yang biasanya dilakukan untuk mempelajari suatu bahasa pemrograman adalah dengan mencetak sebuah kalimat “Halo, dunia!” dengan bahasa tersebut.

Pak Dengklek meminta Anda melakukan hal tersebut. Buatlah program yang dimaksud.

Format Masukan

Tidak ada masukan untuk program Anda.

Format Keluaran

Sebuah baris berisi sebuah kalimat Halo, dunia!.

Contoh Keluaran

Halo, dunia!

Gambaran          :

Dari problem di atas maka kita dapat menyimpulkan bahwa kita disuruh untuk membuat program yang mencetak “Halo, dunia!” (tanpa “ ”).

Algoritma           :

  1. Cetak Halo, dunia!

Code      :

#include <iostream>
using namespace std;
int main(){
  cout<<"Halo, dunia!"<<endl;
  return 0;
}

NB :Jangan lupa ya dioutput paling akhir harus ditambah dengan baris baru (Enter).
Ok presser sampai jumpa dipembahasan berikutnya ya.

Knapsack Problem

Knapsack Problem

 Hai presser, jumpa lagi dengan postinganku. Nah, di postingan sebelumnya kita kan udah bahas secara singkat tentang dasar Dynamic Programming yaitu Tukar Koin (Coin Exchange) nih. Sekarang aku bakal sharing sedikit tentang contoh problem dalam Dynamic Programming. Lebih spesialnya adalah Knapsack Problem. Oke let’s go.

Problem :

 Di sebuah rumah terdapat N macam barang. Setiap barang memiliki berat dan harga masing-masing. Barang ke-i memiliki berat (Bi) dan memiliki harga (Hi). Pada suatu hari ada perampok yang datang di rumah tersebut dengan membawa karung yang mampu menampung barang sebanyak W kg. Berapakah keuntungan maksimal mungkin yang didapatkan ?

Review Permasalahan Rekursif :

 Misal kita memiliki karung berkapasitas 7 kg. Ketika memilih suatu barang yang berbobot 3 kg maka kapasitas tas kita akan tersisa 4 kg.Dengan ini kita mendapatkan subpersoalan yang sama yaitu dengan sisa kapasitas yang tersisa kita harus menemukan langkah-langkah pengambilan yang menguntungkan. Maka dari itu kitadapat menyelesaikan persoalan ini dengan rekursif.

Algoritma :

  1. Anggap saja kita memiliki fungsi g(x,y) yang dapat menghasilkan nilai maksimal dari barang yang telah diambil oleh perampok dimana X merupakan barang yang akan diambil/tidak dan Y merupakan sisa kapasitas karung yang dimiliki
  2. Jika barang tidak muat untuk diambil atau (Bx > Y ) maka tidak perlu dipilih atau g(x,y) = g(x-1,y)
  3. Jika barang masih muat untuk diambil maka bandingkan manakah yang lebih menguntungkan, ambil barang atau tidak –> g(x,y) = max ( g(x-1,y-berat[x])+harga[x], g(x-1,y))
  4. Base casenya ialah ketika barangnya habis atau x=0

Pseudocode:

   int g(int x,int y)
      if x==0 return 0;
      else if( y< berat[x] ) return g(x-1,y);
      else
         return max(g(x-1,y-berat[x])+harga[x],g(x-1,y));

Gimana presser? ternyata nggak terlalu sulit kan. Oke mungkin kali ini cuma itu yang bisa ku sharingkan. Semoga Bermanfaat dan Sampai Jumpa!!!

Problem Tukar Koin (Coin Exchange with Dynamic Programming Part 1)

Problem Tukar Koin (Coin Exchange with Dynamic Programming Part 1)

  Hai Presser, jumpa lagi dengan postinganku. Pada bahasan kali ini aku bakal sharing sedikit tentang salah satu dasar Dynamic Programming nih presser (meskipun masih newbie sih) . Oke kita mulai ya!!

  Dynamic Programming merupakan suatu strategi algoritma yang mungkin lebih identik dengan rekursi dan memoization (pencatatan). Selain itu, Dynamic Programming juga memiliki dua cara pendekatan, yaitu Top Down dan Bottom Up. Sebenarnya Problem Tukar Koin ini juga dapat diselesaikan dengan cara Brute Force namun pada part 1 ini aku bakal kasih sedikit solusi dengan menggunakan Rekursi tanpa memoization.

Problem :
  Si Elang memiliki coin 1, 3, 5 ia ingin pergi ke alphamaret untuk membeli sebuah daging. Harga daging tersebut adalah 12 rupiah. Berapakah banyaknya coin minimum yang harus dibawa oleh Elang?

Algoritma
-> Ketika kita pilih salah satu koin (Cx) maka kebutuhan kita menjadi N-Cx dan pada saat itu juga kita catat banyak coinnya.
-> Anggap kita mempunyai sebuah fungsi yang mencari nilai minimum dari pemilihan kita
-> Setiap pemilihan kita tambahkan banyaknya koin “f(N-Cx)+1” dan bandingkan manakah yang lebih kecil.

Pseudocode

 int exchange(int n)
   if(n==0) return 0;
   else
     int best=100000;
     for i= 1 to banyakCoin 
       if(C[i]<=n)
        best= min(best,exchange(n-C[i])+1);
    return best

Oke presser, mungkin untuk kali ini cuma itu yang dapat aku sharingkan. Terima kasih dan Sampai jumpa ya!!!!

Persegi terpotong oleh lingkaran OpenGL (Square Cut Off By Circle OpenGL)

Persegi terpotong oleh lingkaran OpenGL (Square Cut Off By Circle OpenGL)

Hay presser, di post kali ini aku bakal ceritain nih bagaimana cara membuat suatu persegi dimana persegi tersebut terpotong sebagian oleh lingkaran . Oke langsung aja….

public static void kubusTerpotong(GL gl,double sudutAwal,double sudutAkhir, double length,double radius,double height){
        //height disini adalah ketebalan
        double XsudutAwal,YsudutAwal,XsudutAkhir,YsudutAkhir;
        double DerajaSudutAwal=sudutAwal*phi/180,DerajaSudutAkhir=sudutAkhir*phi/180;
        XsudutAwal=Math.cos(DerajaSudutAwal)*radius;
        YsudutAwal=Math.sin(DerajaSudutAwal)*radius+radius;

        XsudutAkhir=Math.cos(DerajaSudutAkhir)*radius;
        YsudutAkhir=Math.sin(DerajaSudutAkhir)*radius+radius;
        //penutup atas bawah
        gl.glPushMatrix();
           gl.glTranslated(0,Math.abs(YsudutAwal-YsudutAkhir),0);//translated ke atas
           gl.glRotated(90,1,0,0);
            gl.glColor3d(1,0,1);
            gl.glTranslated(XsudutAwal,0,0);
            persegi(gl, length-XsudutAwal, height);//persegi atas
            gl.glTranslated(-XsudutAwal,0,0);

            gl.glColor3d(1,0.3,0);
            gl.glTranslated(0,0,Math.abs(YsudutAwal-YsudutAkhir));
            gl.glTranslated(XsudutAkhir,0,0);
            persegi(gl, length-XsudutAkhir, height);//persegi atas
            gl.glTranslated(-XsudutAkhir,0,0);
        gl.glTranslated(0,0,length);
        gl.glPopMatrix();

    // penutup belakang
        gl.glPushMatrix();
            gl.glColor3d(0,0.3,1);

            gl.glTranslated(length,0,0);
            gl.glRotated(-90,0,1,0);
            persegi(gl,height,Math.abs(YsudutAwal-YsudutAkhir));
        gl.glPopMatrix();

        gl.glColor3d(0,0.3,0);
        persegiPotong(gl, sudutAwal, sudutAkhir, length, radius);
        gl.glTranslated(0,0,height);
        persegiPotong(gl, sudutAwal, sudutAkhir, length, radius);
    }