Selasa, 28 Desember 2010

Contoh Latihan CLASS dan ARRAY


 Contoh latihan CLASS DAN ARRAY

Sebuah perpustakaan ” SAKURA LIBRARY” yang terletak di JL. Kalibata Timur No.37 Telp (021) 7901074 mempunyai daftar buku yang akan di sewakan sbb :

Kode
Judul
Pengarang
AADC ||aadc
Ada Apa dengan Cinta
Mira Lesmana
AAC || aac
Ayat-Ayat Cinta
Kang Abik
EIL || eil
Eiffel I’m in Love
Nia Dinata
Tampil Pesan “Anda Salah kode!!”

ü  Buat Class dengan nama buku yang berisikan kode buku, judul, pengarang, jumlah dan denda
ü  Gunakan fungsi if dan strcmp umtuk menentukan judul dan pengarang
ü  Gunakan fungsi array dan perulangan FOR untuk membuat rancangan Input dan rancangan Output
ü  Untuk Denda :
Jika lama pinjam lebih dari 7 hari maka dendanya 10000
Selain itu tidak mendapatkan denda
ü  Total = total+ denda

Rancangan Input

                SAKURA LIBRARY
JL. Kalibata Timur No.37 Telp (021) 7901074
-----------------------------------------------------
Masukan Bulan                 :
Masukan Nama Peminjam  :
Masukan Jumlah Data      :
          Data Ke-1
          Kode Buku              :
          Judul                     :
          Pengarang              :
          Lama Pinjam           :
     Data  ke -2
   …………..
   …………. ( Sesuai jumlah data yang diinput)


Rancangan Output
SAKURA LIBRARY
JL. Kalibata Timur No.37 Telp (021) 7901074

Bulan                     :
Nama Peminjam      :
==============================================
No   Kode     Judul      Pengarang    Lama      Denda
       Buku     Buku                          Pinjam                  
==============================================
….   ……        …….         .……              …….      ….…….
….   …….        …..          .……              …….      ………..
==============================================
                                                                   Total Bayar = Rp. ……
Mau input data lagi [Y / T ] =

Jawaban :

#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#include<iomanip.h>
//pembuatan class buku
class
{
public:
          char kdbk[7],*judul,*pengarang;
          float jml,denda;

} buku[30];
main()
{
  char lagi,bln[20],np[20];
  float total=0;
  int i,j;
  awal:
  clrscr();
cout<<"             SAKURA LIBRARY "<<endl;
cout<<"JL. Kalibata Timur No.37 Telp (021)7901074"<<endl;
cout<<"---------------------------------------------"<<endl;
cout<<"Masukan bulan         :";cin>>bln;
cout<<"Masukan Nama Peminjam :";cin>>np;
cout<<"Jumlah data           :";cin>>j;
for(i=1;i<=j;i++)
{
 cout<<"data ke- "<<i<<endl;
cout<<"Masukan Kode Buku : ";cin>>buku[i].kdbk;
if (strcmp(buku[i].kdbk,"AADC")==0|| strcmp(buku[i].kdbk,"aadc")==0)
          {
   buku[i].judul="Ada Apa dengan Cinta";
   buku[i].pengarang="Mira Lesmana";
   }
else if (strcmp(buku[i].kdbk,"AAC")==0|| strcmp(buku[i].kdbk,"aac")==0)
          {
   buku[i].judul="Ayat-Ayat Cinta";
   buku[i].pengarang="Kang Abik";
   }
else if (strcmp(buku[i].kdbk,"EIL")==0|| strcmp(buku[i].kdbk,"eil")==0)
          {
   buku[i].judul="Effiel I'm in Love";
   buku[i].pengarang="Nia Dinata";
   }
else
 {

       cout<<"Anda Salah Memasukan Kode!!!"<<endl;
       cout<<"Mau Input data lagi[Y/T]:";cin>>lagi;
         if (lagi=='Y'||lagi=='y')
         goto awal;
         else
          goto akhir;

  }
cout<<"masukan lama pinjam :";cin>>buku[i].jml;
if (buku[i].jml >7)
          buku[i].denda=10000 ;
else
   buku[i].denda=0;
total=buku[i].denda+total;
}
clrscr();
cout<<"              SAKURA LIBRARY "<<endl;
cout<<"JL. Kalibata Timur No.37 Telp (021)7901074"<<endl;
cout<<"Bulan :"<<bln;
cout<<"                               Nama Peminjam ="<<np<<endl;
cout<<"============================================================================"<<endl;
cout<<"No. Kode Buku    Judul Buku            Pengarang      Lama       Denda      "<<endl;
cout<<"============================================================================"<<endl;
for (i=1;i<=j;i++)
{
  cout<<setiosflags(ios::left)<<setw(5)<<i;
  cout<<setiosflags(ios::left)<<setw(8)<<buku[i].kdbk;
  cout<<setiosflags(ios::left)<<setw(25)<<buku[i].judul;
  cout<<setiosflags(ios::left)<<setw(20)<<buku[i].pengarang;
  cout<<setiosflags(ios::left)<<setw(9)<<buku[i].jml;
  cout<<setiosflags(ios::left)<<setw(10)<<buku[i].denda<<endl;

}
cout<<"==========================================================================="<<endl;
printf("total bayar :%5.0f",total);
cout<<endl;
 cout<<"Mau input data lagi [Y/T] =";cin>>lagi;
 if (lagi=='Y'|| lagi=='y')
          goto awal;
 else
          goto akhir;
 akhir:
 clrscr();cout<<endl;cout<<"TERIMA KASIH ATAS KEDATANGANNYA";
getch();
}

Contoh Latihan Class


Class class_name                             Class
{ permission_label_1:       atau         {permission_label_1:
          Elemen;                                     Elemen;

Contoh  :
Buat class dengan nama siswa yang berisikan variable nim, nama, kelas,  abs, tgs, uts, uas dan rata.
Jawaban :
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#include<iomanip.h>
//pembuatan class dengan nama mhs
wa-->kl namanya diatas hrs pk deklarasi class di main
class
{
public:
          char nim[10],nm[20],kls[20];
          float abs,tgs,uts,uas,rata;
} mhs;
main()
{
char np[20];
//siswa mhs;//deklarasi class
clrscr();
cout<<" MAINICHI UNIVERSITY"<<endl;
cout<<"JL.Kemang Utara No.37 Telp (021) 7901074"<<endl;
cout<<"---------------------------------------------------"<<endl;
cout<<"Masukan Nama Petugas     :";cin>>np;
cout<<endl;
cout<<"Masukan NIM              :";cin>>mhs.nim;
cout<<"Masukan Nama Mahasiswa   :";cin>>mhs.nm;
cout<<"Masukan Kelas            :";cin>>mhs.kls;
cout<<"---------------------------------------"<<endl;
cout<<"\tMasukan NIlai Absen      :";cin>>mhs.abs;
cout<<"\tMasukan Nilai Tugas      :";cin>>mhs.tgs;
cout<<"\tMasukan Nilai UTS        :";cin>>mhs.uts;
cout<<"\tmasukan Nilai UAS        :";cin>>mhs.uas;
mhs.rata=(0.1*mhs.abs)+(0.2*mhs.tgs)+(0.3*mhs.uts)+(0.4*mhs.uas);
clrscr();
cout<<endl<<endl;
cout<<"    INPUT DATA NILAI  MAINICHI UNIVERSITY"<<endl;
cout<<"JL.Kemang Utara No.37 Telp (021) 7901074"<<endl;
cout<<"***********************************************"<<endl;
cout<<endl<<endl;
cout<<"Nama Petugas   :"<<np<<endl;
cout<<"----------------------------------"<<endl;
cout<<"NIM            :"<<mhs.nim<<endl;
cout<<"Nama Mahasiswa :"<<mhs.nm<<endl;
cout<<"Kelas          :"<<mhs.kls<<endl;
cout<<"----------------------------------"<<endl;
cout<<endl;
cout<<"\tNilai Absen    :"<<mhs.abs<<endl;
cout<<"\tNilai Tugas    :"<<mhs.tgs<<endl;
cout<<"\tNilai UTS      :"<<mhs.uts<<endl;
cout<<"\tNilai UAS      :"<<mhs.uas<<endl;
cout<<"\t---------------------------"<<endl;
cout<<"\tRata-Rata      :"<<mhs.rata<<endl;
cout<<"\t---------------------------"<<endl;
getch();
}

Elemen Dasar Class


Elemen Dasar Class

Di dalam sebuah kelas terdapat elemen – elemen yang berfungsi membangun sebuah kelas Pada dasarnya sebuah class yang utuh dibangun dari beberapa elemen, antara lain :

1)  Member Data (Data Member).
Member data atau bisa disebut sebagai karakteristik / properti dari sebuah obyek yang didefinisikan pada sebuah kelas. Member data ini berupa kumpulan tipe – tipe data dasar yang memiliki ruang lingkup pengaksesan tertentu.

Contoh :
class pPanjang{
int panjang, lebar; à ini yang disebut sebagai member data.}

2)  Fungsi Antarmuka.
Fungsi antarmuka berfungsi sebagai jembatan bagaimana obyek dari sebuah kelas mampu berhubungan dengan member data yang ada di dalamnya. Berikut adalah fungsi dari sebuah antarmuka berdasarkan konsep enkasulasi yang baik.
1.     Sebagai antarmuka dari properti / member data yang ada dalam sebuah kelas dengan obyeknya.
2.    Sebagai antarmuka apabila sebuah obyek ingin melakukan sesuatu kegiatan.

fungsi dari suatu objek adalah dengan cara umum sebagai berikut :                         
               [nama_obyek].[nama_fungsi(argumen)];

 Jika jumlah objek yang dibentuk banyak maka caranya dengan mengikuti bentuk umum sebagai berikut :
    [nama_obyek].[nama_fungsi1(argumen),nama_fungsi2(argumen),...];

3)      Main Program (Program Utama)
Program utama adalah lokasi awal dimana program dan class-class tersebut akan dijalankan. Bentuk program utama tersebut  pada contoh program diatas adalah pada baris 19 hingga 25 sebagai berikut :
void main()                                                                 
{
Aku Bimo;                       
Bimo.masukan();
Bimo.tampilkan();
getch();
}          
Program utama dimulai dengan kata main(), artinya main program. Di dalamnya terdapat proses-proses pembentukan objek dan pemanfaatan objek. Program utama dapat diberi tipe void atau tidak sama sekali. Khusus program utama diatas diberi tipe void. Apa gunanya tipe  void tersebut. Jika sebuah fungsi atau program utama tidak memberikan nilai balik fungsi maka diberi tipe void. Jika fungsi tersebut memberikan nilai balik maka tidak boleh diberi tipe void. Bahkan di akhir fungsi harus ada nilai balik dalam bentuk sintak return.

4)  Konstruktor
Konstruktor adalah fungsi khusus dari sebuah kelas yang selalu dijalankan ketika obyek dari kelas tersebut dicipptakan. Penjelasan detil mengenai konstruktor akan dijelaskan dibawah ini.

5)  Destruktor
Destruktor adalah fungsi khusus dari sebuah khusus yang selalu dijalankan ketika obyek dari sebuah kelas berakhir. Fungsi destruktor ini tidak selalu ada pada setiap bahasa pemrograman berorientasi obyek.


Konsep Dasar Class


Konsep Dasar Class

Salah satu keistimewaan pemrograman berorientasi obyek adalah pengkapsulan. Pengkapsulan adalah mengkombinasikan suatu struktur dengan fungsi yang memanipulasinya untuk membentuk tipe data baru yaitu kelas(class). Kelas akan menutup rapat baik data maupun kode. Akses item di dalam kelas dikendalikan. Pengendalian ini tidak hanya berupa data tetapi juga kode. Saat kelas akan digunakan, kelas harus sudah dideklarasikan. Yang penting, pemakai kelas mengetahui deskripsi kelas, tetapi bukan implementasinya. Bagi pemakai, detail internal kelas tidak penting. Konsep ini disebut penyembunyian informasi (information hiding). 

Untuk menggunakan kelas, kita perlu mengetahui sesuatu tentangnya. Kita perlu mengetahui fungsi apa yang bisa digunakan dan data apa saja yang dapat diakses. Fungsi yang dapat digunakan dan data yang dapat diakses disebut antarmuka pemakai (user interface). Antarmuka pemakai menceritakan bagaimana kelas berperilaku, bukan bagaimana kelas dibuat. Kita tidak perlu mengetahui implementasi kelas. Sekali kelas dibuat, kita bisa memakainya berulang-ulang. Bagi pandangan pemakai, kelas adalah kotak hitam dengan perilaku tertentu.

 Kendali Akses terhadap Kelas
Tugas kelas adalah untuk menyembunyikan informasi yang tidak diperlukan oleh pemakai. Ada tiga macam pemakai kelas:
·   Kelas itu sendiri
·   Pemakai umum / darimana saja
·   Kelas turunan

Setiap macam pemakai mempunyai hak aksesnya masing-masing. Hak akses
ini ditandai dengan kenampakan anggota kelas. Kelas pada pemrograman berorientasi obyek pada umumnya menawarkan tiga bentuk ruang lingkup jangkauan (baik member data / antarmuka) yaitu :

·   Private
Anggota kelas private mempunyai kendali akses yang paling ketat. Dalam bagian private, hanya fungsi anggota dari kelas itu yang dapat mengakses anggota private atau kelas yang dideklarasikan sebagai teman (friend).

·   Public
Dalam bagian public, anggotanya dapat diakses oleh fungsi anggota kelas itu sendiri, instance kelas, fungsi anggota kelas turunan. Suatu kelas agar bisa diakses dari luar kelas, misalnya dalam fungsi main(), perlu empunyai hak akses publik. Hak akses ini yang biasanya digunakan sebagai perantara antara kelas dengan dunia luar.

·   Protected
Suatu kelas dapat dibuat berdasarkan kelas lain. Kelas baru ini mewarisi sifat-sifat dari kelas dasarnya. Dengan cara ini bisa dibentuk kelas turunan dari beberapa tingkat kelas dasar. Bila pada kelas dasar mempunyai anggota dengan hak akses terproteksi, maka anggota kelas ini akan dapat juga diakses oleh kelas turunannya. Anggota kelas terproteksi dibentuk dengan didahului kata kunci protected. Pada bagian protected, hanya
fungsi anggota dari kelas dan kelas-kelas turunannya yang dapat mengakses anggota.

Pendeklarasian Kelas
Setiap bahasa pemrograman memiliki teknik – teknik yang berbeda dalam melakukan pendeklarasian kelas. Beberapa hal umum yang harus diperhatikan adalah nama class, daftar member data beserta tipenya dan daftar fungsi antarmuka beserta tipenya.

Contoh Kerangka Class
Class Buku
{
Private:
Char judul[35];
Char pengarang[50];
Char penerbit[50];
…………
Public:
Void inisialisasi(…)
{
…………
}

Penjelasan :
Void info()
{
…………
}
…………
};