Selasa, 08 Oktober 2013

Rangkuman OOP C#


C# merupakan suatu bahasa program yang menggunakan konsep Object Oriented Programing (OOP). OOP merupakan pemrograman yang memposisikan semua bagian yang terlibat dalam program adalah objek. Program dapat dibentuk dan dijalankan melalui interaksi antara objek yang satu dengan objek yang lainnya.

1. Class, atribute, method


Class 
Class merupakan suatu blueprint atau cetakan untuk menciptakan suatu instant dari object. Class juga merupakan grup suatu object dengan kemiripan attributes/properties, behaviour dan relasi ke object lain Class juga merupakan penggambaran dari sebuah object atau benda,sifat objek, dan juga apa yang bisa dilakukan oleh objek tersebut. Class di C# dapat terdiri dari kumpulan variable (field), property dan method. Cara untuk menggunakan class adalah dengan membuat instan class-nya. Untuk menjalankan class maka harus ada satu method main pada class tersebut.

Atribut 
Merupakan nilai data yang terdapat pada suatu object yang berasal dari class. Atributes merepresentasikan karakteristik dari suatu object. Didalam penerapannya diprogram, atribut adalah Variabel atau Member.

Method 
Method adalah merupakan suatu operasi berupa fungsi-fungsi yang dapat dikerjakan oleh suatu object. Method didefinisikan pada class akan tetapi dipanggi lmelalui object. Method pada C# dapat memiliki banyak argumen dengan tipe data yang berbeda. Method juga dapat memiliki nama yang sama asal parameter / tipe datanya berbeda (Method Overloading). Operasi-operasi yang dilakukan oleh Methode, diantaranya, Suatu Method bisa menerima dan memanipulasi data atau field didalam diri Method tersebut. Suatu Method bisa mempengaruhi nilai suatu Object lain.

2. Object

Object adalah merupakan suatu bentuk dari class. Object merupakan bentuk nyatanya dari suatu Class, dimana Object  memiliki Attribute (Properties) dan memiliki Method (Behavior). Object membungkus data dan fungsi menjadi suatu unit dalam sebuah program komputer. Kalau kita mengikuti analogi di atas, maka object dari class Hewan adalah Burung, Kambing, Ayam, Kuda.. Mereka adalah contoh dari class Hewan. Semua dari mereka adalah Hewan yang mempunyai nama, kaki, Jenis makanan dst. Dan bisa berlari, bersuara, berkembang biak dll.

3. Cara membuat object

Untuk membuat object, kita menggunakan perintah new dengan sebuah nama class yang akan dibuat sebagai instance dari class tersebut. 
String str = new String(); 
Random r = new Random(); 
Pegawai p2 = new Pegawai(); 
Date hari = new Date(); 
hari adalah object reference dari class Date yang akan digunakan untuk mengakses class Date. Sedangkan operator new adalah operator yang akan menghasilkan hari sebagai reference ke instance dari class Date().

4. Konstruktor

Konstruktor adalah method yang namanya sama dengan nama class-nya. Konstruktor digunakan untuk inisialisasi variabel ketika membuat instan class / objek baru. Sebenarnya setiap kali membuat instant class / objek baru maka konstruktor dijalankan. Jika tidak mendefinisikan konstruktor secara eksplisit maka tetap dianggap membuat konstruktor kosong. Konstruktor juga dapat di-overload (dapat membuat konstruktor lebih dari satu asal parameternya jumlahnya beda atau tipe datanya beda). Variabel dalam class harus diinisialisasi.

5. Private, protected, public

Private 
Private adalah kode yang sesuai dengan namanya, akses ini bersifat private. dengan kata lain data maupun method hanya dapat diakses oleh kelas yang dimilikinya saja.

Protected 
Protected adalah kode akses yang membuat suatu data atau method yang didefinisikan dengan tingkatan akses yang dapat diakses oleh kelas yang memilikinya saja dan juga kelas-kelas yang masih memiliki keturunan atau Encapsulation data

Public 
Public adalah kode akses yang bersifat umum. Dengan kata lain, data maupun method dalam suatu kodingan tersebut dapat diakses oleh semua bagian di dalam program.

6. Karakteristik oop dan contohnya

Inheritance 
Inherintence atau pewarisan adalah merupakan konsep dimana suatu object memiliki sejumlah perilaku yang dimiliki oleh object lain dalam suatu hirarki tertentu. Hal ini memungkinkan satu kelas (sub-class) harus didasarkan atas yang lain (kelas super) dan mewarisi semua fungsi secara otomatis. Kode tambahan kemudian dapat ditambahkan untuk membuat versi yang lebih khusus dari kelas. Dalam contoh kendaraan, sub-kelas untuk mobil atau motor dapat dibuat. Masing-masing masih akan memiliki semua perilaku kendaraan tetapi dapat menambahkan metode khusus dan properti.

Polymorphisme 
Polymorphism adalah konsep dimana beberapa object dapat memiliki metode yang sama dengan aksi yang berbeda. Hal ini mengakibatkan adanya kemampuan untuk sebuah objek untuk mengubah perilakunya sesuai dengan bagaimana itu digunakan. Dimana kelas obyek mewarisi dari kelas super atau mengimplementasikan satu atau lebih interface , dapat disebut dengan kelas atau interface nama-nama. Jadi jika kita memiliki metode yang mengharapkan sebuah objek dari tipe 'kendaraan' untuk diteruskan sebagai parameter, kita dapat melewati setiap kendaraan, mobil atau motor objek untuk metode yang meskipun tipe data mungkin secara teknis berbeda.

Encapsulation 
Encapsuation adalah penyatuan antara proses-proses yang terjadi dan sejumlah data yang dikelola kedalam suatu bentuk kelompok tertentu. Pengelompokan tersebut adalah dengan dibentuknya suatu object secara abstrak (abstraction). Akibatnya, obyek dapat bekerja sama dalam banyak hal dalam sistem. Dalam beberapa situasi, kelas dan objek dapat erat bersama-sama untuk menyediakan fungsionalitas yang lebih kompleks. Dalam contoh mobil, roda, panel, mesin, gearbox, dll dapat dianggap sebagai kelas individu. Untuk membuat mobil sekelasnya, perlu menghubungkan semua benda-benda bersama, mungkin dapat menambahkan fungsionalitas lebih lanjut. Kerja internal masing-masing kelas yang tidak penting karena enkapsulasi sebagai komunikasi antara obyek masih melalui lewat pesan ke antarmuka publik mereka.

Abstraction 
Pesawat yang telah dicontohkan masuk dalam kelas kendaraan, kelas kendaraan merupakan contoh abstraction.Abstraction adalah proses yang mewakili versi yang disederhanakan dari objek dunia nyata dalam kelas dan objek. Hal ini berarti dalam pengembangan perangkat lunak seorang programmer akan menggunakan atau menciptakan sejumlah object dimana object tersebut akan ada dan berperilaku pada sistem.

Aggregation 
Aggregation adalah kondisi ketika object berisi gabungan dari object-object yang berbeda dan bekerja bersama. Kemampuan untuk menggunakan aggregation dalam OOP adalah satu feature yang powerful yang memungkinkan model menjadi akurat.

7. Over loading

Overloading adalah suatu cara membuat lebih dari constructor pada suatu class. Supaya pengaksesan constructor tersebut lancar, maka sebagai pembedanya adalah tipe parameter dan atau jumlah parameternya. Overloading juga merupakan suatu kemampuan dalam bahasa berorientasi objek untuk menggunakan suatu nama method untuk beberapa method yang memiliki parameter masukan yang berbeda (tipe maupun jumlah parameter). Overloading memodifikasi secara horizontal method maupun konstruktor milik kelas super, maupun kelas yang sama. Tujuan dibuatnya overloading yaitu memudahkan penggunaan method dengan fungsi yang hampir sama.

Minggu, 19 Mei 2013

OPERASI FILE


File adalah sekumpulan data yang disimpan dalam media penyimpanan luar seperti harddisk.
Contoh program operasi file :

1.     Program membuat direktori file
                Untuk membuat sebuah direktori baru, gunakan method mkdirs( ) yang terdapat pada kelas file. Berikut ini, contoh program yang akan menunjukan hal tersebut :
import java.io.File;
class DemoMembuatDirektori
{       
  public static void main(String[] args)
 {
    File f = new File("d:/NewDir/NewSubDir");
    f.mkdirs();     
  }   
}




2.     Program membuat file baru
                Selain menggunakan kelas FileOutputStream maupun FileWriter, kita juga dapat mengunakan method createNewFile( ) dari kelas file untuk membuat sebuah file baru di dalam disk.
                Contoh :
import java.io.File;
import java.io.IOException;
class DemoMembuatFileBaru
                {   
 public static void main(String[] args) throws IOException
                 {
  File f = new File("d:/sample.txt");
  f.createNewFile();
 }
}


3.     Program rename file
                Apabila kita ingin merubah nama suatu file yang sebelumnya sudah ada di dalamdisk, maka kita harus mengunakan menthod renameto( ) yang terdapat dalam kelas file. Berikut ini contoh kode program yang akan menunjukan hal tersebut :
                
import java.io.File;
class DemoUbahNamaFile
                {   
  public static void main(String[] args)
                  {
   File f = new File("d:/sample.txt");
   f.renameTo(new File("d:/contoh.txt"));
  }
}




4.     Program delete file
            Untuk menghapus file, kita dapat mengunakan menthod delete( ) yang terdapat pada kelas file. Method ini mengembalikan nilai bertipe boolean (true) bila proses penghapusan danfalse apabila proses gagal. Berikut ini contoh penggunaan menthod tersebut di dalam program :
               
import java.io.File;
class DemoHapusFile
                {   
  public static void main(String[] args)
                  {
   File f = new File("d:/contoh.txt");
   f.delete();
  }
}






Membuat File Text
File text adalah suatu file yang pola penyimpanannya datanya dalam bentuk karakter. Sehingga kalau suatu variabel bertipe int (2 byte) dengan isi 10000, maka akan disimpan dalam bentuk karakter 10000 (5 karakter) sehingga file yang dibuat besarnya 5 byte.
Contoh program untuk membuat file text :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
#include <conio.h>
#include <String.h>
main()
{
    FILE *f;
    char st[81]=”";
    f=fopen(“strings.dat”,”w”);
    if (f!=NULL)
    {
       do{
           printf(“Masukan string : “);gets(st);
           fprintf(f,”%s\n”,st);
       }while (strlen(st)>0);
       fclose(f);
       printf(“File selesai di buat”);
    }
    else
    {
        printf(“File gagal dibuat”);
    }
    getch();
    return 0;
}
Keterangan program :
-          Baris 6 : Perintah FILE *f berarti deklarasi variabel f yang merupakan pointer ke suatu file .
-          Baris 8 : membuat link / menghubungkan variabel file f dengan file strings.dat dengan mode operasi adalah w (write).
-          Baris 9 : Jika file sukses di buat (variabel f menunjuk ke suatu file/tidak NULL) maka program akan mengerjakan perintah baris 11 – 16.
-          Baris 11 dan 14: Perulangan selama string yang dimasukan panjangnya lebih dari 0.
-          Baris 12 : Baca sebuah string, masukan ke variabel st
-          Baris 13 : Tulis string st ke file f, dan kemudian diberikan tanda pindah baris (\n).
-          Baris 15 : Menutup hubungan/link ke file f.
-          Baris 18 : Jika file tidak bisa dibuat, maka akan menampilkan pesan File gagal dibuat.
Jika data yang dimasukan ingin disimpan di bagian belakang file, maka mode yang digunakan adalah mode “a”






Membaca File Text
Mode yang dipakai dalam membaca data text adalah mode “r”. File yang dibaca bisa berekstensi apa saja.
Perhatikan perintah berikut :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
10
21
22
23
24
25
26

#include <stdio.h>
#include <conio.h>
#include <String.h>
main()
{
    FILE *f;
    char st[81]=”";
    f=fopen(“strings.dat”,”r”);
    if (f!=NULL)
    {
       clrscr();
       while (fscanf(f,”%s”,st)!=EOF) //(fgets(st,80,f)!=NULL)
       {
           printf(“%s”,st);
       }
       fclose(f);
       printf(“File sudah dibaca”);
    }
    else
    {
        printf(“File gagal dibaca”);
    }
    getch();
    return 0;
}
Keterangan program :
-          Baris 8 : Buka sebuah file (strings.dat) dalam mode “r” (read).
-          Baris 9 – 18 : jika variabel F tidak NULL (file sukses di buka), maka program akan mengeksekusi program baris 11 – 17.
-          Baris 12 : Perulangan selama fscanf belum mencapai EOF (end of file). Fscanf akan mengambil data dari file bertipe string (%s”) disimpan di st. Alternatif lain adalah menggunakan perintah fgets.
-          Baris 14 : Menuliskan data yang telah dibaca.













Membuat File Biner
File biner adalah suatu file yang pola penyimpanannya adalah dengan menuliskan data secara biner. Sebagai contoh, jika data yang disimpan ke file tersebut bertipe int (2 byte) dengan isi variabel 10000, maka akan disimpan sebesar 2 byte dengan isi : 2710h. Tipe jenis ini sangat cocok untuk penyimpanan data dalam bentuk struct. Pembacaan file biner dilakukan perblok.
Contoh program :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
#include <conio.h>
main()
{
    FILE *f;
    int i;
    f=fopen(“dataint.abc”,”wb”);
    if(f!=NULL)
    {
      do{
           printf(“Masukan angka : “);scanf(“%d”,&i);
           if(i!=0)
                fwrite(&i,sizeof(int),1,f);
      }while (i!=0);
      fclose(f);
      printf(“File telah selesai dibuat”);
    }
    else
    {
       printf(“Data tidak bisa dibuat”);
    }
    getch();
    return 0;
}
Keterangan program :
-          Baris 7 : Buka file dalam mode “wb” (write binary).
-          Baris 8 – 17 : Jika file bisa dibuat, maka akan melakukan perintah-perintah di baris 10 – 16.
-          Baris 10 – 14 : Perulangan selama data yang dibaca dari keyboard tidak nol.
-          Baris 11 : Baca suatu integer
-          Baris 12-13 : Jika data tidak nol maka disimpan dalam file f sebanyak 1 data sebesar 2 byte (sizeof(int)) yang ada di alamat &i.
-          Baris 15 : Menutup file f.












Membaca File Biner
Untuk membaca file biner, mode operasi filenya adalah “rb” (read binary). Pembacaan data untuk tipe biner dilakukan perblok, sehingga kita harus tahu besar data yang akan dibaca.
Perhatikan program di bawah ini :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <conio.h>
main()
{
    FILE *f;
    int i;
    f=fopen(“dataint.abc”,”rb”);
    if(f!=NULL)
    {
      while(fread(&i,sizeof(int),1,f)==1)
           printf(“angka : %i\n”,i);
      fclose(f);
      printf(“File telah selesai dibaca”);
    }
    else
    {
       printf(“Data tidak bisa dibaca”);
    }
    getch();
    return 0;
}


Keterangan program :
-          Baris 7 : Buka file dataint.abc dalam mode rb (read binary).
-          Baris 8 – 13 : Jika file bisa dibuka, maka akan mengeksekusi perintah baris 10 – 13
-          Baris 10 : Lakukan pembacaan data fread, simpan data ke alamat I (&i),  sebesar 2 byte (sizeof(int)), sebanyak 1 buah integer, dari file f. Pembacaan ini diulang selama fread == 1. fread menghasilkan nilai banyak data yang dibaca.
-          Baris 11 : Menuliskan data hasil pembacaan (i) ke layar
-          Baris 12 : Menutup file f.












Membaca File Biner Secara Acak
Ada kalanya kita ingin mengambil data dari posisi tengah file. Untuk itu, ada suatu fungsi fseek, yang gunanya untuk memindahkan kursor file ke posisi tertentu.
Posisi awal pencarian ada 3 jenis yaitu SEEK_SET (dari awal file), SEEK_CUR (dari posisi sekarang), SEEK_END (dari akhir file).
Contoh perintah :
-          fseek(f,10,SEEK_SET), pindahkan pointer file ke posisi (byte) ke-10 dari awal file.
-          fseek(f,5,SEEK_CUR), pindahkan pointer file 5 byte dari posisi pointer sekarang.
-          fseek(f,1,SEEK_END), pindahkan pointer posisi paling akhir (1 byte sebelum EOF).
Jadi kalau kita mempunyai file biner yang digunakan untuk menyimpan data int, maka kalau kita ingin mengambil data ke-5 perintah fseeknya adalah fseek(f,5*sizeof(int),SEEK_SET).
Contoh dibawah ini akan menampilkan data dari posisi 3 dan seterusnya.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <conio.h>
main()
{
    FILE *f;
    int i;
    f=fopen(“dataint.abc”,”rb”);
    if(f!=NULL)
    {
      fseek(f,3*sizeof(int),SEEK_SET);
      while(fread(&i,sizeof(int),1,f)==1)
           printf(“angka : %i\n”,i);
      fclose(f);
      printf(“File telah selesai dibaca”);
    }
    else
    {
       printf(“Data tidak bisa dibaca”);
    }
    getch();
    return 0;
}