Tuesday 20 May 2014

TUGAS PBO KE - 4 | polymorphism

Kali ini ceritanya saya harus menjelaskan atau memberikan alasan dari hasil compilasi source code dibawah ini. sok atuh di compile (itu juga kalo mau repot ....hehe )

Source Code [C++]
#include <iostream>
#include <conio.h>
#include <string.h>
using namespace std;
class Manusia 
{
   protected:
             string nama;
             string alamat;
   public:
          Manusia(string nama, string alamat):nama(nama), alamat(alamat){}
    
    void judul ()
    {
         cout<<"\n Kelas Manusia!"<<endl ;
    }
   
     void tampil_data()  //menggunakan fungsi  vi rtu
    {
         cout<<"\n =========================";
         cout<<"\n\t MANUSIA"<<endl ;
         cout<<" =========================";
               cout<<"\n Nama     :  "<<nama<<endl ;
         cout<<" Alamat   :  "<<alamat<<endl ;
         cout<<" ========================="<<endl ;
     }
};

class Mahasiswa :  public Manusia
{
   private:
        string nim;
        string jurusan;
   public:
        Mahasiswa(string nim, string nama, string jurusan, string alamat):Manusia(nama,
        alamat),nim(nim),jurusan(jurusan){}
    
    void judul ()
    {
            cout<<"\n Kelas Mahasiswa!"<<endl ;
    }
   
    
};

class Pegawai  :  public Manusia
{
   private:
        string nip;
        string jabatan;
   public:
        Pegawai (string nip, string nama, string alamat, string jabatan):Manusia(nama,
        alamat),nip(nip),jabatan(jabatan){}
    
    void judul ()
    {
            cout<<"\n Kelas Pegawai !"<<endl ;
  }
  
};

int main()
{
Mahasiswa mhs1("201081016", "Patricia", "Teknik Informatika", "Jakarta");
Pegawai  peg1("4321.8765.1234", "Budi", "Surabaya","Di rektur");
Manusia *man;                           //definisi  pointer ke objek berkelas manusia

    man = &mhs1;                               //menunjuk ke objek berkelas mahasiswa
    man->judul ();
    man->tampil_data();
   
   man = &peg1;                                //menunjuk ke objek pegawai
    man->judul ();
    man->tampil_data();
    getch();
}

jika source code diatas dicompile maka akan menghasilkan tampilan seperti dibawah ini:
Gambar 1.0
coba perhatikan, kenapa hasilnya bisa seperti itu?
kenapa judulnya bisa muncul classManusia (ditandai dengan kotak warna kuning) sedangkan datanya dari class Mahasiswa dan Pegawai (ditandai dnegan kotak warna orange)?

oke, mari kita review source code diatas.
class manusia (Gambar 1.1)
class Manusia merupakan class indux dari program kita kali ini. class ini memiliki 2 properties yang bersifat protected dan mempunyai method atau fungsi yang bernama void judul() dan virtual void tampil_data().


class Mahasiswa (Gambar 1.2)
class mahasiswa merupakan class anak dari class Manusia. class ini mempunyai 2 properties yang bersifat private dan mempunyai 2 method atau fungsi yang nama void judul() dan void tampil_data().


class Pegawai (Gambar 1.3)
untuk penjelasan class Pegawai ini sama penjelasannya dengan class Mahasiswa.


fungsi main() (Gambar 1.4)
untuk fungsi main(), syntax -syntaxnya sama seperti biasanya, namun kali ini ada penggunaan pointer.
pointer ini kegunaanya untuk menjuk alamat dari variabel yang di tunjuk. seperti yang kita lihat di baris ke 86, di situ class manusia di deklarasikan dengan variable pointer (*man) dan kemudian dibaris ke 88 dan baris 92 disamakanlah alamat variable dari class Manusia tersebut dengan class Mahasiswa (mhs1) dan class Pegawai (peg1).

terus kenapa ko tampilannya bisa seperti itu?
alasanya bukan terletak pada fungsi main() atau penggunakan variable pointer.
tetapi ada pada class Manusia tepatnya di method atau fungsi tampil_data().
method tampil_data() yang terdapat di class manusia ini bertype void dan di berikan fungsi virtual.
Nah, fungsi virual inilah yang menyebabkan kenapa fungsi tampilannya bisa seperi gambar 1.0

terus fungsi virtual sendiri kegunaanya untuk apa?
pertanyaan yang super sekali .. hehe
menurut hasil analisa saya, fungsi virual itu seperti bayangan atau bisa disebut juga fungsi cadangan. jadi, jika ada method atau fungsi yang sama (kembar dalam hal pemberian nama) dalam suatu pewarisan (inheritance) class dan salah satu fungsi tersebut adalah fungsi virtual, maka fungsi yang dicetak adalah bukan fungsi virutal tersebut. tetapi jika dalam suatu pewarisan (inheritance) class tidak ada method atau fungsi yang kembar (namanya sama) tetapi fungsi tersebut adalah virual, maka fungsi virtual itu lah yang akan di cetak.

gimana? apakah masih bingung dengan dongeng diatas?
oke, kita oprek source code kita lagi.

misalnya dari source code kita sebelumnya, kita hapus kata virtual pada method tampil_data(), jadi seperti gambar 1.5

class Manusia | tampil_data() tanpa virtual. (Gambar 1.5)
maka tampilanya seperti berikut.
Gambar 1.6
bedakan dengan hasil di gambar 1.1 ?


biar afdol, kita oprek 1 kali lagi.
kali ini kita method judul() dan method tampil_data() akan di berikan fungsi virual, seperti gambar 1.7 dibawah ini:
Gambar 1.7
source code diatas akan menghasilkan tampilan seperti berikut.
Gambar 1.8

noh lihat, sekarang judul dan data yang ditampilkan sama, sama - sama dari mahasiswa dan sama - sama dari pegawai.


sudah paham kan? :)
tapi masih ada pertanyaan nih. gimana kalo di class anak tidak ada fungsi yang kembar dengan class indux?
jawab : ya seperti yang di jelaskan diatas, virtual itu kan fungsi bayangan atau cadangan, jadi jika tidak ada fungsi yang kembar antara class anak dan class indux, maka fungsi virtual itu sendiri yang akan dicetak.

contohnya gini. misalnya source code class indux (class Manusia) sama seperti Gambar 1.7.
tetapi di class anak (misalnya class mahasiswa) kita ubah fungsi void tampil_data() menjadi show_data(), jelasnya seperti berikut :
Gambar 1.9

maka akan tampil hasilnya seperti berikut.
Gambar 2.0
hasilnya berbeda lagi kan? untuk judul yang pertama dan data dibawahnya berbeda kelas.


Kesimpulan : 
jadi fungsi virutal itu kegunaanya untuk menjadikan fungsi tersebut sebagai cadangan method / fungsi yang terdapat pada pewarisan (inherintance) class.


semoga tugasnya sesuai dengan apa yang diharapkan bang AsLab :).
Terima Kasih.

Tuesday 11 March 2014

TUGAS PBO KE-2 | Membuat Kalkulator Sederhana

Ini Adalah Tugas Ke - 2 dari Mata Kuliah PBO.
Source Code ini membahasa tentang Bagaimana mebuat kalkulator sederhana dengan gaya OOP/PBO, namun method yang di pakai adalah method di luar Class. berikut source code yang saya buat. semoga sesuai dengan apa yang diharapkan.

Source Code : 
#include <iostream>
#include <conio.h>
#include <stdlib.h>
using namespace std;
class Kalkulator{
      public:
             float tambah();
             float kali();
             float kurangi();
             float bagi();
             void kasih_nilai(float,float,float);
             void kasih_nilai();  
      private:
             float nilai1,nilai2,nilai3;
      };
      
float Kalkulator::bagi(){
    return(nilai1/nilai2/nilai3);
    }
    
float Kalkulator::tambah(){
    return(nilai1+nilai2+nilai3);
    } 
        
float Kalkulator::kurangi(){
    return(nilai1-nilai2-nilai3);
    }
    
float Kalkulator::kali(){
    return(nilai1*nilai2*nilai3);
    }
    
void Kalkulator::kasih_nilai(float n1,float n2,float n3){
     nilai1=n1;
     nilai2=n2;
     nilai3=n3;
     }
     
void Kalkulator::kasih_nilai(){
     nilai1=10;
     nilai2=5;
     nilai3=2;
     }

main(){
       Kalkulator k1,k2;
       float a,b,c;
       int pilihan;
       char ulang;
       do{
       system("cls");
       cout<<"Angka ke -1 : ";cin>>a;
       cout<<"Angka ke -2 : ";cin>>b;
       cout<<"Angka ke -3 : ";cin>>c;
       cout<<"\nMenu\n1.Tambah\n2.Kurang\n3.Bagi\n4.Kali\n";
       pilihan:
       cout<<"Masukan Pilihan : ";cin>>pilihan;
       k1.kasih_nilai(a,b,c);
       k2.kasih_nilai();
       switch(pilihan){
                       case 1 : cout<<"\nHasil Tambah = "<<k1.tambah();
                                cout<<"\n\nHasil Tambah = "<<k2.tambah(); 
                                break;
                       case 2 : cout<<"\nHasil Kurang = "<<k1.kurangi();
                                cout<<"\nHasil Kurang = "<<k2.kurangi();
                                break;
                       case 3 : cout<<"\nHasil Bagi = "<<k1.bagi();
                                cout<<"\nHasil Bagi = "<<k2.bagi(); 
                                break;
                       case 4: cout<<"\nHasil Kali = "<<k1.kali()<<endl; 
                               cout<<"\nHasil Kali = "<<k2.kali();
                               break;
                       default:
                               cout<<"\nPilihan Salah!!!\n";
                               goto pilihan;
                               break;
                       }
                       cout<<endl;
       cout<<"\nHitung Lagi [Y/N] : ";
       cin>>ulang;
       }while(ulang=='y' || ulang=='Y');
       return EXIT_SUCCESS;
       }
Screen Shot
Penjumlahan 3 variabel

Pengurangan 3 variabel

Pembagian 3 variabel

Perkalian 3 variabel

Jika Pilihan Yang dimasukan Salah!!

Monday 10 March 2014

TUGAS PBO KE-1 | Menghitung Luas dan Keliling Persegi Panjang dengan C++ OOP

The Campus of Programming

Bang-tutor - Source code di bawah ini adalah tugas dari mata kuliah Pemerograman Berorientasi Objek (PBO) yang pertama dari Aslab Ka Wahyudi Nugroho.

Source code :
#include <iostream>
#include <conio.h>
#include <stdlib.h>
using namespace std;

class persegi_panjang {
  private:
      int panjang,lebar;
  public:
  /*fungsi menghitung luas*/
  int luas(){
   int luas = panjang*lebar;
   return luas;
   }
  /*fungsi menghitung keliling*/
  int keliling(){
   int keliling = (2*panjang)+(2*lebar);
   return keliling;
  }

       void beri_nilai (int pas_panjang, int pas_lebar){
   panjang=pas_panjang; lebar=pas_lebar;
   }
   
       void beri_nilai_lagi() {
   panjang=7; lebar=10;
   }
  
};

main() {
 /*intance object*/
   persegi_panjang a,b,c;
   /*deklarasi variabel*/
 int nilai1,nilai2;
 /*warna font dan background*/
 system("color f0");
 /*header judul*/
 cout<<"\t\tMenghitung Luas dan Keliling Persegi Panjang\n";
 /*masukan nilai panjang*/
 cout<<"Panjang = ";
 cin>>nilai1;
 /*masukan nilai luas*/
 cout<<"Lebar   = ";
 cin>>nilai2;
 /*pengambilan data*/
 a.beri_nilai(nilai1,nilai2);
 b.beri_nilai(10,15);
 c.beri_nilai_lagi();
 /*tampilkan luas persegi panjang*/
 cout<<"\nLuas a = "<<a.luas();
 cout<<"\nLuas b = "<<b.luas();
 cout<<"\nLuas c = "<<c.luas();
 /*menampilkan keliling persegi panjang*/
 cout<<"\n\nKeliling a = "<<a.keliling();
 cout<<"\nKeliling b = "<<b.keliling();
 cout<<"\nKeliling c = "<<c.keliling();
 getch();
}

Screen Shot :

Semoga tugas yang saya kerjakan di atas sesuai dengan apa yang diharapkan.
Sekian Terima kasih.

Saturday 15 June 2013

MENGENAL INPUT FORM DILENGKAPI DENGAN PLACEHOLDER

Asalamualaikum...
sobat tutor Bagaimana kabarnya?
lama juga saya tidak menyapa kalian dengan postingan-postingan yang bermaanfaati ini.
maklumlah, saya lagi sibuk dengan persiapan masuk perguruan tinggi.

kali ini saya akan berbagi tentang membuat input placeholder.
apa itu input placeholder? temen-temen semua pernahkan login atau daftar pada website?
misalkan twitter, nah di dalam form inputnya tersebut ada tulisan berwarna buram didalam.
yang ketika kita klik tulisan tersebut masih ada, tetapi sesudah kita tuliskan sesuatu didalam inputboxnya, maka secara otomatis text tersebut hilang.
seperti pada di bawah ini nih.


seperti itu kira-kira.



oke sekarang saya akan membagikan scriptnya.

<form action="demo_form.asp">
  <input type="text" name="user" placeholder="username"><br>
  <input type="password" name="pass" placeholder="password"><br>
  <input type="submit" value="Submit">
</form>

untuk melihat lengkapnya klik disini

Sunday 19 May 2013

CARA MEREMOVE / MENGHAPUS PASSWORD BITCLOCKER DI WINDOWS 7

Hallo sobat tutor.
Malam ini ketika saya membuka facebook, eh tiba - tiba di grups facebook ada yang nanya.
Bagaimana caranya meremove Password bitlocker di windows?
ini akibat dari acara roadshow kemaren di SMA 1 PANDEGLANG.
adik kelas saya menyampaikan materi ini, tetapi dia menyampaikan cara memasang passwordnya doang. sedangkan cara meremove passwordnya tidak di kasih tahu.
Untuk dari itu sebagai pertanggung jawabnanya saya mencari tahu di bang google (kakanya bang tutor)
langsung saja, ini cara meremove passowrd BitLocker di Windows 7

pertama masuk start menu > search > (ketikan “BitLocker”)



Selanjutnya akan muncul beberapa pilihan lalu pilih BitLocker Drive Encryption
setelah itu pilih drive yang anda lock, kemudian pilih "Turn Off BitLocker

 
Sama sewaktu anda membuat pass saat pertama kli, untuk me remove pun butuh waktu yg cukup lama juga.. tapi sabar.. tunggu aja..

jika sudah selesai akan ada tampilan berikut.





nah sekian info dari saya, semoga membantu....

Saturday 18 May 2013

MENU DROPDOWN CSS SEDERHANA

Dropdown menu berfungsi saat kita membutuhkan sub menu untuk menu utama. Pada posting kali ini saya akan mencoba membuat menu dropdown sederhana dengan menggunakan css (Cascading Style Sheet). Disini saya akan membuat dua buah file yaitu style.css yang berfungsi untuk mengatur tampilan dari code html dan yang kedua adalah dropdown.html yang akan tampil di dalam browser internet. Kedua file ini harus diletakkan dalam folder yang sama.

Baiklah, berikut ini adalah file style.css nya :
Buka notepad anda, tulis atau copy paste code di bawah, lalu save as style.css.


/* CSS Document */
#menu { position: relative; width: 100%; height: 40px; background: #6699cc; border: 1px solid #000000;
}
#menu ul{ margin: 0; padding: 0; list-style: none;
}
#menu ul li{ position: relative; float: left;
}
#menu ul li a{ display: block; text-decoration: none; color: #ffffff; padding: 10px; float: left; border-right: 1px solid #000000;
}
#menu ul li a:hover{ background-color: #000000; }
#menu ul li ul { display: none;}
#menu ul li:hover ul { display: block; position: absolute; top: 41px; left: 0px;
}
#menu ul li:hover ul li a{ display: block; background: #6699cc; color: #ffffff; width: 130px; border-left: 1px solid #000000;
}
#menu ul li:hover ul li a:hover { background: #000000; color: #ffffff;
 }

Lalu file dropdown.html nya adalah :

Buka notepad kembali, copy paste code di bawah, lalu save as dropdown.html.


<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Dropdown menu</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="menu">
<ul>
<li><a href="">Home</a></li>
<li><a href="">Kejuruan</a>
<ul>
<li><a href="">Akuntansi</a></li>
<li><a href="">Adper</a></li>
<li><a href="">Perhotelan</a></li>
<li><a href="">Pemasaran</a></li>
<li><a href="">TKJ</a></li>
<li><a href="">RPL</a></li>
</ul></li>
<li><a href="">Contact</a>
<ul>
<li><a href="">Tsoleh@gmail.com</a></li>
<li><a href="//taufikerst.net/">taufikerst</a></li>
</ul></li>
<li><a href="">Post Feed</a>
<ul>
<li><a href="">Via Web</a></li>
<li><a href="">Via Phone</a></li>
<li><a href="">Via Rss</a></li>
</ul></li></ul>
</body>
</html>
Simpan kedua file dalam folder yang sama. Setelah selesai coba ditest dengan membuka file dropdown.html dengan browser kesayangan anda. Bila berhasil maka akan terlihat seperti gambar di bawah ini :


*untuk download source code-nya klik icon download di bawah*



MENGUBAH FORMAT CD-R JADI CD-RW (BISA JADI FLASHDISK)


Salam hangat sobat tutor. soalnya lagi dingin banget nih malem minggu ini. maklum lah jomblo :D
beruntung malem ini dapet beberapa tutor yang begitu menarik dan menuntut saya untuk dishare ke sobat semua.
tutorial ini di dapat dari forum sebelah.
langsung saja check this out.


STEP 01 
[Image: 001jsg.jpg]
Quote:Pastikan juragan memasukkan CR-R kosong. Saat muncul pop up windows di atas, pilih Burn Files to Disc. Klik Next
STEP 02
[Image: 001jsg.jpg]
Quote:Berikutnya, beri nama pada Disc yg akan diformat. Dan pilih option Like a USB Flash Drive. Klik Next
STEP 03
[Image: 003cq.jpg]
By ejihager at 2012-02-27
Quote:Saya kasih nama, Percobaan
STEP 04 
[Image: 004qwl.jpg]
Quote:Windows akan otomatis memformat CD R kosong menjadi CD RW. harap tunggu gan, ga lama kok
STEP 05
[Image: 005gch.jpg]
Quote:Proses format selesai. Bisa dilihat, Drive E: Sudah berganti nama menjadi Percobaan. Perhatikan tulisan Drag Files to This Folder to Add Them to the Disk
STEP 06 
[Image: 006jv.jpg]
Quote:Menempel (paste) file dari drive F: ke Drive E: Percobaan
STEP 07 
[Image: 007cgxn.jpg]
Quote:30 Seconds Remaining. Dalam kasus ini ane menyalin file image
STEP 08 
[Image: 008eec.jpg]
Quote:DONE
STEP 09 
[Image: 009xae.jpg]
Quote:Ane akan coba menghapus beberapa file pada CD R tadi
STEP 10 
[Image: 010dgl.jpg]
Quote:DONE
STEP 11 
[Image: 011sdh.jpg]
Quote:Next, ane akan mencoba menambahkan beberapa file baru ke dalam CD R tadi, dalam kasus ini ane menambahkan file audio
STEP 12 
[Image: 012xc.jpg]
Quote:DONE. File audio tadi pun bisa dijalankan secara normal di Media Player

Cuma satu kurangnya.
SIZE yang terpakai tidak bisa dikembalikan / dikosongkan lagi meskipun file sudah terhapus

My Website