Wednesday, December 5, 2012

POLIMORFISME DAN INHERITANCE


POLIMORFISME

Suatu kemampuan dari sebuah object untuk membolehkan mengambil beberapa bentuk yang berbeda agar tidak terjadi duplikasi object kita kenal sebagai polymorphism.
Antara penurununan sifat (inheritance) maupun polymorphism merupakan konsep yang memungkinkan digunakannya suatu interface yang sama untuk memerintah objek agar melakukan aksi atau tindakan yang mungkin secara prinsip sama namun secara proses berbeda. Dalam konsep yang lebih umum sering kali polymorphism disebut dalam istilah tersebut.



-Polimorfisme sesuatu yang memiliki banyak bentuk.
-Dalam pemrograman, polimorfisme dapat diartikan sebagai modul yang
memiliki nama sama, namun memiliki behaviour (tingkah laku) yang berbeda
sehingga listing code implementasinya juga berbeda


Contoh:


class Hewan {
private String jenis;
private int kaki;
Hewan (){
}
Hewan (String jenis, int kaki){
this.jenis = jenis;
this.kaki = kaki;
}
public void bersuara() {
System.out.print("Suara "+jenis+" berkaki "+kaki);
}
}
class Anjing extends Hewan {
Anjing() {
super();
}
public void bersuara() { //overriding method
System.out.println("guk guk guk....");
}
}
class Kucing extends Hewan {
Kucing(String jenis, int kaki) {
super(jenis, kaki);
}
public void bersuara() { //overriding method
super.bersuara();
System.out.println( " miaowwww....");
}
}
class DemoPoli {
public static void main(String args[]) {
Anjing doggy = new Anjing();
Kucing tom = new Kucing("Kucing", 4);
doggy.bersuara();
tom.bersuara();
}}



Kemampuan dari referensi untuk mengubah sifat menurut object apa yang dijadikan acuan dinamakan polimorfisme. Polimorfisme menyediakan multiobject dari subclasses yang berbeda untuk diperlakukan sebagai object dari superclass tunggal, secara otomatis menunjuk method yang tepat untuk menggunakannya ke particular object berdasar subclass yang termasuk di dalamnya.

INHERITANCE


Inheritance adalah pewarisan. Pewarisan dalam pemrograman berorientasi objek, Inheritance memungkinkan suatu Class bisa mewariskan atribut dan Method kepada Class yang lainnya atau subClass, sehingga membentuk Class hirarki. Inheritance sangat mirip dengan hubungan orang tua dengan anak. Manakala suatu kelas menerima warisan dari semua anggota data dan fungsi menerima warisan, walaupun tidak semua di antara mereka dapat diakses oleh anggota fungsi dari kelas.
Di dalam Java untuk mendeklarasikan suatu class sebagai subclass dilakukan dengan cara menambahkan kata kunci extends setelah deklarasi nama class, kemudian diikuti dengan nama parent class-nya. Kata kunci extends tersebut memberitahu kompiler Java bahwa kita ingin melakukan perluasan class.
Semua class dalam Java, termasuk class yang membangun Java API, merupakan subclass dari superclass Object.
# Superclass adalah class induk atau class orang tua, class yang letaknya di atas class tertentu di dalam hierarki.
# Subclass adalah class anak. Semua property, methode, ataupun konstruktor yang dimiliki oleh superclass jika  diwariskan, maka subclass memiliki semua yang dimiliki oleh superclass.


Contoh:

public class Striker extends posisi {
    public static void main (String[]args){
        Striker a = new Striker();
        a.cetak1();
        a.cetak2();
    }
}
class posisi {
    public void cetak1(){
        System.out.println("Saya di posisi depan !");}
        protected void cetak2(){
        System.out.println("I am a Striker !");}  
        private void cetak3(){
            System.out.println("P="   +P);
        }
 int P = 8;
}



Konsep inheritance ini mengadopsi dunia riil dimana suatu entitas/obyek dapat mempunyai entitas/obyek turunan. Dengan konsep inheritance, sebuah class dapat mempunyai class turunan.
Yang pertama adalah class Induk { itu digunakan untuk mennjukan kelas yang akan dipakai pada program tersebut.lalu private String var1; dan public int var2; digunakan untuk memberikan suatu ruan public dalam kelas di dalam suatu variabel. Selanjutnya class Anak extends Induk yang digunakan untuk membedakan suatu program yang terdapat di inheritance. Dan pada program inheritance dapat ditemukan suatu keuntungan jika memakai program tersebut.
Keuntungan Pewarisan :
  • Bersifat reusable
Tidak harus menyalin semua data dan method dari suatu kelas jika akan menggunakannya lagi
  • Kemudahan dalam me-manage kelas yang memiliki data dan method yang sama.
Untuk memodifikasi suatu data atau method untuk semua subkelas / kelas anak, maka tidak perlu melakukan perubahan di masing-masing kelas anak melainkan hanya pada kelas induk saja.


Shell Programming

Pemrograman Shell

Shell adalah program khusus yang bisa digunakan untuk berinteraksi dengan kernel. Kernel yang dimaksud adalah kernel sistem operasi yang sedang aktif. Shell merupakan salah satu dari sekian banyak bahasa pemrograman. Shell memiliki sebuah keunikan tersendiri, Karena berjalan disebuah platform Linux atau Unix, dan memiliki konsep perintah tingkat tinggi. Shell juga dikenal dengan bahasa “command line processing” ini karena sintak yang digunakan di dalam pemrograman shell merupakan perintah-perintah dasar dari Linux atau Unix. Selain itu juga sintak Shell dapat langsung dieksekusi langsung pada terminal
console Linux atau Unix. Di dalam system operasi Linux atau Unix tipe-tipe shell sangat beragam.


Untuk melihat jenis Shell apa saja yang ada dalam sebuah system operasi Linux dapat dialkukan dengan menuliskan perintah berikut.

$ls /etc/shells <enter>


Shell apa yang sedang aktif saat ini, dapat digunakan perintah berikut.

$ echo $shell <enter>

Variabel pada SHELL

a. VARIABEL LOKAL
Yang dimaksud dengan variabel lokal adalah variabel yang nilainya langsung diisikan. Di dalam memberikan nama sebuah varibel, yang harus diperhatikan adalah nama variabel berupa karakter alphanumeric atau bisa juga diawali dengan karakater garisbawah(_), setelah itu baru bisa diikuti dengan jenis karakter yang lain. Dalam pemrograman Shell untuk mendefinisikan sebuah variabel tidak perlu diberikan bentuk atau jenis variabel tersebut, tidak seperti di pemrograman C atau Pascal dimana variabel yang akan dibuat perlu didefinisikan terlebih dahulu tipenya, Dan di dalam lingkup Shell tipe variabel hanya ada satu jenis yaitu tipe string.



Contoh dalam penulisan variabel dan pemberian nilai dalam potongan program Shell sebagai berikut :
 
   nama=patricia
   nim=201181016
   status="belum menikah"
   echo $nama
   echo $nim
   echo $status


   Keterangan:
   Tanda ‘$’ memiliki makna sebagai pengarah bahwa kata tersbut adalah sebuah variabel yang memiliki nilai.
   Kalau isi mengandung spasi, harus di dalam tanda petik " ".
   Setelah tanda sama dengan ("=") , jangan menggunakan spasi.

  Contoh:
  nama=patricia (penulisan yang benar)
  nama= patricia (penulisan yang salah)
  status=belum menikah (penulisan salah karena mengandung spasi)
  status="belum menikah" (penulisan yang benar)

b. VARIABEL ENVIRONMENT
Environment variabel adalah variabel yang merupakan bawaan dari Shell itu sendiri, biasanya variabel ini berisi nilai-nilai yang merupakan konfigurasi standar dalam lingkungan program Shell. Aturan penulisan dari environment variable adalah semua nama variabel menggunakan huruf kapital. lingkup dari variabel environment adalah bersifat GLOBAL. Artinya variabel environment
berlaku untuk semua Shell yang ada.


Contoh variabel environment adalah sebagai berikut :

LOGNAME=shell14 (variabel yang berisi nama login)
SHELL=/bin/bash (variabel yang berisi nama shell yang aktif)
HOME=/home/shell14 (variabel yang berisi nama direktori user)
USER=shell14 (variabel yang berisi nama user)



Untuk mengetahui variabel apa saja yang ada dalam kelompok environment variable dapat digunakan perintah berikut:

$ env ‘enter’

Untuk merubah nilai dari variabel environment dapat dilakukan dengan menggunakan perintah sebagai berikut :

$ export LOGNAME=mrbee ‘enter’

kemudian hasilnya dapat dilihat dengan menggunakan perintah :

$ env | grep “LOGNAME”

Variabel environment juga bisa dihapus atau dihilangkan dari lingkungan daftar variabel environment dengan menggunakan perintah berikut :

$ unset LOGNAME

Ruang Lingkup Variabel Dalam Shell
Yang dimaksud dengan ruang lingkup adalah sejauh mana sebuah variabel yang didefinisikan berlaku bagi program shell dibuat. Dipemrograman lain seperti C ada variabel lokal yang hanya berlaku di dalam sebuah file skrip C, ada juga variabel global yang bisa berlaku bagi skrip C yang lain walaupun berada dalam file lainnya. Di program Shell lingkup dari sebuah variabel yang didefinisikan berlaku lokal. Lokal yang dimaksud adalah dalam suatu Shell saja. Jika dalam sebuah Shell dibuat lagi sub-Shell maka variabel tersebut sudah tidak berlaku nilainya. Sedangkan variabel environment memiliki lingkup GLOBAL, yang dimaksud dengan global adalah semua variabel berlaku dan bernilai sama disemua file skrip Shell yang dibuat. Contoh variabel LOGNAME yang memiliki nilai nama login user, akan mempunya nilai yang sama walaupun diakses dari file skrip lainnya.


STRUKTUR KONTROL


a. IF - ELSE

if instruksi 1 
then 
instruksi 1.1
instruksi 1.2
elif instruksi 2
then
instruksi 2.1
instruksi 2.2
else
instruksi 3.1
instruksi 3.2
fi

b. CASE

case variabel in
match1)
instruksi 1.1
instruksi 1.2
.......................
;;
match2)
instruksi 2.1
instruksi 2.2
.......................
;;
*)
instruksi 3.1
instruksi 3.2
........................
;;
esac

c. WHILE

while kondisi
do
instruksi 1
instruksi 2
done

ARRAY


Pada versi BASH 2.x terdapat fungsi untuk mendefinisikan array satu dimensi. Array memungkinkan seorang programmer mengkoleksi daftar beberapa nilai dalam sebuah variabel. Untuk mengektraksi kembali nilai-nilai tersebut dapat
dilakukan dengan menyebutkan nama varibel yang diikuti oleh nomer indek array tersebut. Pendefinisian sebuah array juga bisa dilakukan on the fly (tanpa mendefinisikan terlebih dahulu). Dan tidak ada batasan maksimum dari sebuah array yang dibuat dalam lingkungan BASH Shell. Pada saat sebuah nilai diberikan ke dalam sebuah array yang telah didefinisikan, indek array secara otomatis akan dimulai dari 0, dan bertambah naik 1 sampai semua kumpulan nilai-nilai dimasukkan.


Contoh deklarasi array :

$ declare –a nomor=(45 50 23)
$ nama=(andi hafid intan)
$ kota=(surabaya medan jakarta)
x[0]=7
x[4]=400

contoh lain :

$ declare –a nama
$ nama=(luky ani arman)
$ echo ${nama[1]}
ani
$ echo ${nama[2]}
arman
$ echo “berikut ini nama teman-temanku ${nama[*]}”
berikut ini nama teman-temanku luky ani arman
$ echo “jumlah total indek array adalah ${#nama[*]}”
jumlah total indek adalah 3
$ unset nama

Keterangan :
1. Mendeklrasikan variabel array “nama”
2. Memasukkan nilai ke dalam array “nama”
3. Menampilkan isi dari array indek ke 1
4. Menampilkan isi dari array indek ke 2
5. Menampilkan semua isi array “nama”
6. Menampilkan jumlah indek total dari array “nama”
7. Menghapus array “nama”

MANAJEMEN INPUT OUTPUT


Perintah “Read” merupakan perintah yang termasuk dalam kelompok buil-in command shell. Perintah ini berfungsi untuk membaca masukan dari user melalui perantara keyboard. Jika tidak ada opsi maka perintah ini akan membaca masukan yang diberikan oleh user tanpa memilah-milah terlebih dahulu. Batas pembacaan masukan adalah ketika mulai baris baru yang ditandai dengan penekanan tombol ‘enter’ oleh user. Berikut ini adalah format penggunaan perintah read beserta opsi yang dapat
digunakan dalam penulisan skrip BASH Shell.


Tabel 3.1 Format perintah Read
FORMAT
DESKRIPSI
read jawaban
Membaca satu baris masukan dari standard input dan disubstitusikan ke variabel jawaban

read awal akhir
Membaca satu baris input dan dipisahkan berdasarkan spasi, masukan pertama disubtitusikan ke variabel awal, dan masukan kedua disubtitusikan ke variabel akhir
read
Membaca satu baris masukan dan disubtitusikan ke variabel built-in yang bernama REPLY.
read –a nama_array
Membaca daftar kata dari masukan dan mensubtitusikan ke dalam variabel array nama_array.
read –e
Digunakan di shell intereraktif
read –p prompt
Menampilkan prompt, menunggun masukan, dan mensubtitusikan masukan ke dalam variabel REPLY
read –r line
Memperbolehkan adanya karakter backslash pada masukan yang diberikan.



Contoh penggunaan perintah read :

#!/bin/bash
#nama skrip : coba
echo –e “apakah kamu senang : ”
read hasil
echo “anda menjawab $hasil”
echo “siapa nama lengkap kamu ?”
read n_awal n_tengah n_akhir
echo “nama lengkap kamu adalah $n_awal $n_tengah $n_akhir”
echo “nama awal kamu adalah $n_awal”
output program adalah :
$./coba
apakah kamu senang : ya
anda menjawab ya
siapa nama lengkap kamu ? rudi hadi suwarno
nama lengkap kamu adalah rudi hadi suwarno
nama awal kamu adalah rudi

FUNGSI

Fungsi adalah program yang dapat dipanggil oleh program lainnya dengan menggunakan notasi NamaFungsi().
Fungsi memberikan exit status ($?) yang dinyatakan dengan return nr, atau nilai 0 sebagai default.
Membuat fungsi diawali dengan nama fungsi, parameter, kemudian blok program yang dinyatakan dalam {...}.

Contoh

F1 ( ) {
.........
........
return 1
}

Variabel dapat didefinisikan dalam fungsi sebagai variabel lokal atau global . Hal yang perlu diperhatikan , nama variable yang digunakan dalam sebuah fungsi, jangan sampai bentrok dengan nama variabel yang sama di luar fungsi sehingga tidak terjadi perubahan isi variabel.