Rabu, 23 Mei 2012

KONSEP OBJECT-ORIENTED PROGRAMMING


KONSEP OBJECT-ORIENTED PROGRAMMING

Class dan object
Kelas Merupakan kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu dimana didalamnya terdapat kumpulan atribut dan method,
contoh kelas : binatang, kendaraan, benda dsb.
Sedangkan objek merupakan bentuk representasi dari sebuah kelas, membungkus data dan fungsi bersama menjadi suatu unit atau entitas dalam sebuah program komputer.
            Dalam bahasa pemrograman java sebuah file berekstensi *.java harus memiliki sebuah class public dan dapat memiliki beberapa class non public. Contoh deklarasi sebuah kelas binatang :

public class binatang {}

Contoh objek :

public class binatang {
   public static void main(String[] args)
   {
       binatang ayam = new binatang();
       binatang kucing = new binatang();
       binatang anjing = new binatang();   
   }
}
 Instansiasi
Instansiasi adalah proses pembuatan objek dari kelas yang sudah ada. Contoh instansiasi dari class di atas :
binatang ayam = new binatang();
binatang kucing = new binatang();
binatang anjing = new binatang();
Deklarasi tersebut merupakan contoh dari deklarasi untuk melakukan instansiasi. Untuk membuat objek dari suatu class dalam Java digunakan keyword new.

Konstruktor

Konstruktor adalah bagian dari definisi suatu kelas yang berfungsi menciptakan instans dari kelas tersebut. Konstruktor ini bisa kita buat sendiri, atau bila kita tidak mendefinisikannya, maka kompiler Java akan membuatkan konstruktor default untuk kelas tersebut pada saat kompilasi. Yang perlu diperhatikan adalah bahwa suatu konstrukor tidak termasuk anggota suatu kelas seperti metode dan variabel dan bahwa konstruktor bisa dibuat lebih dari satu.
Bentuk konstruktor sendiri mirip dengan sebuah metode. Beda yang paling mencolok adalah warna sebuah konstruktor harus sama dengan warna kelas tersebut dan konstruktor tidak memiliki definisi return type seperti sebuah metode.
Berikut adalah contoh-contoh penciptaan suatu kelas dengan berbagai jenis konstruktor.
SuatuKelas kelasContoh = new SuatuKelas();
SuatuKelasLain kelasContoh2 = new SuatuKelasLain("judul");
BufferedReader reader =
    new BufferedReader(new InputStreamReader(System.in));
new SuatuKelas().sebuahMetode();
Pada contoh pertama, kita menciptakan sebuah instans dari kelas SuatuKelas dengan memanggil konstruktor tanpa parameter. Bila dalam pendefinisian kelas SuatuKelas sebenarnya tidak ada pendefinisian konstruktor, perintah seperti ini tetap dapat dipakai, karena kompiler Java akan menyisipkan secara otomatis kosntruktor default bila tidak ada definisi konstruktor dalam sebuah kelas. Konstruktor default sendiri sebenarnya tidak melakukan apa-apa dalam proses instansiasi objek, karena tidak berisi perintah apapun.
Pada contoh kedua, kita memanggil sebuah konstruktor yang mengandung argumen berupa sebuah parameter bertipe String. Konstruktor seperti ini menjadi sangat berguna bila dalam proses instansiasi sebuah objek kita ingin memasukkan suatu nilai untuk dapat digunakan oleh instans baru tersebut.
Pada contoh ketiga, kita memanggil konstruktor dengan argumen sebuah parameter bertipe InputStreamReader. Yang menarik dari contoh ini adalah kita memasukkan argumen berupa kelas baru yang anonim sehingga terjadi pemanggilan konstruktor lain di dalam argumen konstruktor semula. Dalam konstruktor yang terakhir kita juga memasukkan argumen berupa sebuah  objek InputStream yaitu System.in.
Contoh keempat adalah contoh yang lebih jelas mengenai kelas anonim. Pada contoh ini kita menciptakan sebuah instans dari kelas SuatuKelas namun tidak menyimpan referensi ke instans tersebut, sehingga kita hanya bisa menggunakannya sekali, yaitu langsung pada baris tersebut seperti terlihat pada contoh.
Ada hal yang menarik dan perlu diperhatikan mengenai konstruktor dalam kelas-kelas yang merupakan subkelas. Pada saat kita menginstans sebuah objek dari sebuah subkelas, kompiler tidak hanya memanggil konstruktor subkelas tersebut, melainkan memanggil kosntruktor superkelasnya terlebih dahulu, baru kemudian memanggil konstruktor subkelas tersebut. Penjelasan mengenai hal ini adalah bahwa sebuah subkelas adalah superkelas itu sendiri namun dengan tambahan karakterisasi yang lebih detil. Sehingga untuk menginstans sebuah subkelas, pertama-tama kita menginstansiasi sebuah superkelas, kemudian menerapkan karakterisasi dari subkelas kepada instans baru tersebut. 

Atribut
Atribut adalah sesuatu yang dimiliki oleh objek. Setiap objek yang dibuat dari kelas yang sama akan memiliki atribut yang sama. Pada implementasi program, sebuah atribut ditulis dalam bentuk data/ variable. Misalkan dari Kelas binatang_dideklarasikan atribut :
int jmlKaki;
String warna;
public String suara;
Maka untuk setiap objek ayam, kucing dan anjing, ketiganya akan memiliki atribut yang sama, tapi setiap atribut bisa di-assigndengan nilai yang berbeda. Contoh deklarasi atribut dengan menggunakan Java yaitu:
//assign nilai atribut untuk objek ayam
ayam.jmlKaki = 2;
ayam.warna=”Hitam”;
ayam.suara=”kukuruyuk”;
//assign nilai atribut untuk objek kucing
deni.jmlKaki = 4;
deni.warna=”Kuning”;
deni.suara=”meong”;
//assign nilai atribut untuk objek  anjing
ayi.jmlKaki = 4;
ayi.warna=”Putih”;
ayi.suara=”guk”;
Dari contoh deklarasi di atas, dapat kita lihat bahwa setiap objek akan memiliki atribut yang sama, yaitu jmlKaki, warna, dan suara. Tetapi, masing-masing atribut dari setiap objek bisa diberi nilai yang berbeda.

Method
Method adalah sesuatu yang dapat dilakukan oleh objek. Method dalam implementasi program ditulis dalam bentuk fungsi. Misalkan pada kelas binatang dideklarasikan method bersuara. Maka untuk setiap objek pada kelas binatang bisa bersuara. Contoh implementasinya adalah:
//deklarasi method bersuara
public class binatang {

int jmlKaki;
String warna;
public String suara;
    
     public void  bersuara()
       {
            System.out.println(suara);
        }  
}
   
//pemanggilan method oleh objek ayam
ayam.bersuara();
//pemanggilan method oleh objek kucing
kucing.bersuara();
//pemanggilan method oleh objek anjing
anjing.bersuara();
Dari contoh di atas dapat kita lihat bahwa untuk setiap objek pada kelas binatang bisa memanggil method yang dideklarasikan pada kelas binatang

Abstraction
Abstraction adalah kemampuan untuk membuat kelas abstrak pada OOP.

Enkapsulasi Java
Enkapsulasi adalah suatu cara untuk menyembunyikan informasi detail dari suatu class. Dua hal yang mendasar dalam enkapsulasi yakni :
-          Information hiding.
-          Interface to access data.
-           
Information hiding
Sebelumnya kita dapat mengakses anggota class baik berupa atribut maupun method secara langsung dengan menggunakan objek yang telah kita buat. Hal ini dikarenakan akses kontrol yang diberikan kepada atribut maupun method yang ada di dalam class tersebut adalah 'public'. Kita dapat menyembunyikan informasi dari suatu class sehingga anggota class tersebut tidak dapat diakses dari luar, caranya adalah hanya dengan memberikan akses kontrol 'private' ketika mendeklarasikan atribut atau method. Proses ini disebut dengan information hiding.

Interface to access data
Jika kita telah melakukan information hiding terhadap suatu atribut pada suatu class, lalu bagaimana cara melakukan perubahan terhadap atribut yang kita sembunyikan tersebut, caranya adalah dengan membuat suatu interface berupa method untuk menginisialisasi atau merubah nilai dari suatu atribut tersebut.


Contoh program sederhana Enkapsulasi pada Java :

class enkapsulasi {
    private int secret;
    public boolean setSecret (int secret) {
        if (secret < 1 || secret > 100) {
            return false;
    }
      
        this.secret = secret;
        return true;
    }
    public getSecret{} {
    return secret;
}
}

note : bahwa field ini tidak langsung diakses oleh program lain
menggunakan method getter dan setter.

          Inheritance
Inheritance merupakan konsep pewarisan pada OOP. Pada OOP kelas yang satu bisa dihubungkan dengan kelas lainnya. Dimana kelas yang satu bisa dibuat menjadi turunan dari kelas lainnya. Kelas yang satu disebut sebagai parent, dan kelas lainnya disebut sebagai child. Berarti dalam hal ini kelas parent menurunkan atribut dan methodnya ke kelas child.
Ada 3 tipe akses yang bisa diturunkan dari kelas parent ke kelas child, yaitu:
a. Public: data dan method bisa diakses oleh semua kelas, baik itu kelas parent, child, ataupun kelas lainnya.
b. Private: data dan method hanya bisa diakses oleh kelas itu sendiri.
c. Protected: data dan method bisa diakses oleh kelas parent dan kelas child
Misalkan dari kelas binatang yang sudah kita buat akan dibuat kelas turunannya, bernama kelas mamalia. Untuk membuat suatu kelas merupakan turunan dari class parent, implementasi pada java menggunakan keyword extends. Contoh:
class mamalia extends binatang{//inheritance
//atribut pada kelas mamalia
string tempat_hidup;
//method pada kelas mamalia
public void settempat_hidup(string tempat_hidup)
{}
public void gettempat_hidup()
{} //
}
Dari deklarasi di atas, kelas mamalia merupakan turunan dari kelas binatang. Perhatikan terdapat kata kunci extends pada deklarasi di atas. Maka, setiap objek yang diinstansiasi dari kelas mamalia akan memiliki atribut tempat_hidup (atribut asli), atribut jmlKaki, warna, dan suara (atribut turunan dari kelas binatang). Dengan catatan atribut dan method yang dideklarasikan pada kelas parent harus diberi tipe akses public atau protected agar dapat diturunkan ke kelas child. Bila digabungkan menjadi:
Class binatang{ //deklarasi class
//deklarasi property dengan tipe akses protected
protected int jmlKaki;
protected String warna;
protected String suara;
//deklarasi method bersuara
public void  bersuara()
       {
            System.out.println(suara);
        }  
class mamalia extends binatang{//inheritance
//atribut pada kelas mamalia
string tempat_hidup;
//method pada kelas mamalia
public void settempat_hidup(string tempat_hidup){}
public void gettempat_hidup(){} //
}
public static void main(String[] args) {
//instansiasi objek binatang
binatang ayam=new binatang;
//assign nilai atribut
ayam.jmlKaki = 2;
ayam.warna=”Hitam”;
ayam.suara=”kukuruyuk”;
//pemanggilan method
ayam.bersuara();
//instansiasi objek mamalia
mamalia paus = new mamalia;
//assign nilai atribut dari class mamalia
heni.tempat_hidup=laut;
//atribut dari class binatang
paus.warna = “biru”;
}

Polimorfisme
Polimorfisme secara bahasa dapat diartikan memiliki banyak bentuk. Konsep ini terdapat dalam bahasa pemrograman seperti konstruktor yang memiliki beberapa bentuk. Selain konstruktor, konsep ini juga berlaku bagi metode. Metode atau konstruktor dapat memiliki banyak bentuk dalam arti memiliki nama yang sama namun dengan argumen yang berbeda atau dengan return type yang berbeda. Contoh :
public void binatang(int jmlKaki){};
public void binatang(string jmlKaki){};
Kegunaan dari polimorfisme adalah agar kita dapat mendefinisikan beberapa konstruktor atau metode dengan karakteristik yang berbeda-beda agar nantinya dapat digunakan untuk kasus-kasus yang berbeda. Polimorfisme sebenarnya dapat dihilangkan dengan medefinisikan sebuah konstruktor atau metode yang dapat menangani semua kasus yang mungkin.

Kelas Abstrak
Kelas abstrak adalah kelas yang mengandung konsep abstrak sehingga tidak mungkin mempunyai instans. Misalnya suatu kelas abstrak Binatang yang mengandung konsep tentang salah satu makhluk hidup. Namun kita tidak dapat menciptakan sebuah instans dari kelas tersebut karena tidak masuk akal menciptakan instans dari suatu Binatang. Yang mungkin adalah menciptakan instans dari kelas Ayam, Kucing, atau kelas lain yang sudah mengimplementasikan konsep abstrak dari Binatang.
Kelas abstrak dapat mengandung metode abstrak, yaitu metode yang tidak memiliki implementasi. Dengan begitu, kelas abstrak dapat menentukan bagaimana konsep abstrak tersebut diimplementasikan oleh subkelas yang akan menggunakannya. Kelas abstrak tidak harus memiliki metode abstrak, namun setiap kelas yang memiliki metode abstrak haruslah menjadi kelas abstrak. Kelas abstrak hanya ada untuk mengekspresikan sifat umum yang dimiliki oleh kelas-kelas turunannya.

Interface
Interface merupakan suatu mekanisme yang disediakan oleh Java yang memungkinkan berbagai konstanta atau menentukan bentuk metode yang dapat digunakan oleh sejumlah kelas. Sekilas interface mirip dengan kelas abstrak, karena kelas abstrak juga menentukan bentuk metode untuk subkelas. Namun interface dapat dibedakan dengan kelas abstrak dalam hal seperti berikut :
-          Kelas abstrak dapat mengandung metode abstrak meupun metode tidak absrak, sedangkan hanya dapat mengandung metode abstrak.
-          Kelas abstrak dapat dapat mendeklarasiakan variable instant, sedangkan interface hanya dapat mendefinisikan konstanta.
-          Kelas abstrak digunakan oleh kelas lain melalui pewarisan ( via kata kunci extends ), sedangkan interface digunkan oleh kelas tidak melalui mekanisme itu.
Interface menyerupai kelas, perbedaannya adalah kata kunci interface menggantikan kedudukan kata kunci class. Bentuk pendeklarasiannya adalah sebagai berikut :
            Public class WarnaInterface{
                        // metode tapa implementasi
                        // definisi konstanta
            }
Pada pengertian lain interface adalah jenis khusus dari blok yang hanya berisi method signature( atau constant ). Interface mendefinisikan sebuah(signature) dari sebuah kumpulan method tanpa tubuh. Interface mendefinisikan sebuah cara standar dan umum dalam menetapkan sifat-sifat dari class-class. Mereka menyediakan class-class, tanpa memperhatikan lokasinya dalam hirarki class, untuk mengimplementasikan sifat-sifat yang umum. Dengan catatan bahwa interface-interface juga menunjukkan polimorfisme, dikarenakan program dapat memanggil method interface dan versi yang tepat dari method yang akan dieksekusi tergantung dari tipe object yang melewati pemanggil method interface

Jumat, 18 Mei 2012

FLOWCHART PENJUALAN TUNAI & KREDIT

KETERANGAN FLOWCHART PENJUALAN TUNAI

BAGIAN ORDER PENDUALAN

a)    Bagian order penjualan menerima order dari pembeli
b)    Mengisi faktur penjualan tunai
c)    Bagian order penjualan mengeluarkan 3 rangkap faktur penjualan tunai yangterdiri dari:

    1 lembar untuk bagian kassa lewat pembeli
    1 lembar untuk untuk bagian gudang
    1 lembar diarsip menurut nomer

BAGIAN KASSA

a)    Bagian kassa menerima 1 lembar formulir penjualan tunai daribagian order  penjualan dan menerima uang dari pembeli
b)    Setelah itu bagian kassa mengoperasikan registrasi kas dan cap lunas
c)    Bagian kassa mengeluarkan pita registrasi kas ke beserta faktur penjualantunai lewat pembelian untuk diberikan ke bagian pengirimian barabg barang
d)    Selain itu bagian kassa mengisi buku setor bank dan menyetor kas ke bank
e)    Bagian kassamenerima 3 rangkap bukti setor bank

    1 lembar untuk bagian jurnal ,buku besar dan laporan
    1 lembar disewakan ke bank bersama uang
    1 lembar diarsip menurut tanggal3.

BAGIAN GUDANG

a)    Bagian gudang menerima 1 lembar faktur penjualan tunai dari bagian order  penjualan
b)    Kemudian bagian gudang menyiapakan dan menyerahkan barang
c)    Setelah itu faktur penjualan diserahkan ke bagian pengiriman barang4.

BAGIAN PENGIRIMAN BARANG

a)    Bagian pengiriman barang menerima pita register kas dan faktur penjualandari bagian kassa lewat pembelian
b)    Bagian pengiriman barang juga menerima faktur penjualan tunai beserta barang dari bagian kassa .kemudian membandingkan FPT 1 dengan FPT 2(Faktur Penjualan Tunai)
c)    Setelah itu barang diserahkan pada pembelian bersama faktur penjualn tunaisedangkan FPT 1 (Faktur Penjualan Tunai) beserta pita registrasi kasdiserahkan ke bagian jurnal ,buku besar dan laporan.

BAGIAN JURNAL ,BUKU BESAR ,LAPORAN

a)    Menerima faktur penjualan tunai dan pita registasi kas dari bagian peneriman barang yang
b)    Kemudiaan faktur penjualan tunai dijurnal ke jurnal penjualan.sedangkan pitaregristasi kas diserahkan ke bagian kartu persediaan dan kartu persediaan dankartu biaya
c)    Bagian ini juga menerima bukti setor bank dari bagian kassa yang kemudiandimasukkan ke jurnal penerimaan kas
d)    Setelah itu barang ini menunggu bagian kartu persediaan dan kartu biayauntuk menyelesaikan tugasnya.


BAGIAN KARTU PERSEDIAAN DAN KARTU BIAYA

e)    Menerima pita registrasi kas dan faktur penjualan tunai dari bagian jurnal,buku besar,laporan kemudian diarsip menurut nomer
f)    Setelah itu membuat rekapitulasi HPP secara periodik dan mengeluarkan buktimemorial
g)    Rekapitulasi HPP dan bukti memorial diserahkan ke bagian jurnal ,buku besar dan laporan yang kemudian dimsukan kedalam jurnal umum
h)    Tugas yang terakhir bagian jurnl ,buku besar .laporan mengarsip rekapitulasiHPP dan bukti memoriali)
i)    Selesai.

 
KETERANGAN FLOWCHART PENJUALAN KREDIT

BAGIAN ORDER PENJUALAN
a)    Menerima order pengiriman dari pembelian dan membuat surat order  pengiriman rangkap 9.

    1 lembar untuk bagian gudang
    4 lembar untuk bagian pengiriman
    1 lembar untuk pembeli
    1 lembar untuk bagian kredit
    1 lembar untuk arsip menurut abjat
    1 lembar untuk arsip menurut tanggal

b)    Bagian order penjualan menerima pengembalian 2 lembar surat order  pengiriman dari bagian pengiriman untuk dicatat tanggal pengirima pada order  pengiriman ,kemudian diserhkan ke bagian penagihan.2.

BAGIAN KREDIT

Menerima surat order pengiriman dari bagian order penjualan untuk diperiksa statuskreditnya dan memberikan otorisasi kredit.

BAGIAN GUDANG

a)    Menerima surat order pengiriman dari bagian order penjualan
b)    Kemudian bagian gudang menyiapkan dan menyerahkan barang
c)    Bagian gudang mengeluarkan kartu gudang
d)    Surtat order pengiriman diserahkan ke bagian penggiriman.4.

BAGIAN PENGIRIMAN

a)    Menerima surat order pengiriman beserta barang dari bagian gudang
b)    Selain itu juga menerima 4 rangkap surat order pengiriman barang dari bagianorder penjualan
c)    Kemudian bagian pengiriman menempel surat order pengiriman menempelsurat order pengiriman pada pembungkus barang dan menyerahkan barang pada perusahaan angkutan
d)    edangjan surat order pengiriman akan didiskusikan kepada :
    1 lembar untuk ditempel pada pembungkus barang sebagai slip pembungkus
    1 lembar diarsip menurut nomor
    2 lembar diserahkan pada perusahaan angkutan

BAGIAN PENAGIHAN

a)    Menerima surat order penggiriman dari bagian order penjualan .kemudian membuat faktir rangkap 5 yang kemudian didistribusikan kepada:
1 lembar dikirim ke pelanggan
    1 lembar diserahkan ke bagian kartu persediaan dan kartu biaya
    1 lembar diserahkan ke bagian jurnal buku besar dan laporan
    1 lembar faktur bersana 2 surat order pengiriman diserahkan ke bagian piutang.6.

BAGIAN PIUTANG

a)    Menerima faktur dan SOP dari bagian penaghan yang keudian menghasilkankatru piutang
b)    Setelah itu faktur ,SOP beserta surat muat diarsipmenurut nomor.7.

BAGIAN KARTU PERSEDIAAN DAN KARTU BIAYA

a)    Menerima faktur dari bagian penagihan kemudian diarsip menurut nomor 
b)    Bagian ini juga bertugas membuat rekapitulasi HPP secara periodik
c)    Kemudian rekap HPP beserta bukti memorial diderahkan ke bagian jurnal,buku besar dan laporan8.

BAGIAN JURNAL,BUKU BESAR DAN LAPORAN

a)    Menerima faktur dari bagiaan penagihan yang kemudian dimasukkan ke jurnal penjualan \
b)    Setelah dijurnal kemudian dirsip permanen menurut nomor
c)    Selain itu bagian jurnal ,buku besarbdan laporan juga menerima rekap HPPdan bukti memorial dari bagian kartu persediaan dan kartu biaya.kemudiandijurnal umum
d)    Setelah dijurnal diarsip permanen memurut nomor 9.

BAGIAN SEKRETARIAT

a)    Bagian sekretariat memulai tugasnya dengan menerima cek dan surat pemberitahuan dari debitur 
b)    Kemudian membuat daftar pemberitahuan
c)    Cek, surat pemberitahuan dan daftar surat pemberitahuan diserahkan ke bagiankassa
 

BAGIAN KASSA

a)    Bagian kassa meneriama cek,surat pemberitahuan dan Daftar SuratPemberitahuan dari bagian sekretariat kemudian meminta tanda tanganendorsemen atas cek dan membuat Bukti Kas Masuk.
b)    Bagian Kassa menggunakan cek untuk disetor ke Bank dan menerima BuktiSetor.
c)    Cek dan Bukti Setor diserahkan ke Bagian Jurnal, Buku Besar dan Laporan.
d)    Sedangkan Surat Pemberitahuan besrta Bukti Kas Masuk diserahkan keBagian Piutang.11.

BAGIAN JURNAL, BUKU BESAR DAN LAPORAN

a)    Menerima Bukti Setor dan Daftar Surat Pemberitahuan dari Bagian Kassa.
b)    Kemudian menjurnal ke Jurnal Penerimaan Kas.
c)    Setelah dijurnal maka diarsip menurut nomor.12.

BAGIAN PIUTANG

a)    Menerima Surat Pemberitahuan dan Bukti Kas Masuk dari Bagian Kassa.
b)    Bagian Piutang membuat Kartu Piutang.
c)    Kemudian Surat Pemberitahuan dan Bukti Kas Masuk diarsip permanenmenurut nomor.
d)    SELESAI

ARTIKEL BERWIRAUSAHA JAJANAN

Anda pasti bisa merasakan bahwa biaya hidup makin hari makin tinggi. Segala sesuatu menjadi serba mahal. Biaya pendidikan kian melambung. Harga barang kebutuhan pokok sehari-hari pun tak jauh berbeda. Biaya kesehatan, transportasi, dan berbagai jenis kebutuhan hidup dari waktu ke waktu selalu mengalami peningkatan. Ironisnya, lapangan pekerjaan tidak lagi bisa terlalu diharapkan. Karena makin lama terasa sempit. Jumlah kesempatan kerja dibandingkan dengan besarnya angka pencari kerja jelas sangat tidak berimbang. Wajar jika angka pengangguran makin bertambah. Bahkan jumlah sarjana yang menganggur pun terus mengalami kenaikan.

Dalam kondisi seperti ini Anda dituntut untuk jeli dalam melihat peluang serta potensi apa yang bisa menghasilkan nilai ekonomi. Artinya, Anda tidak bisa hanya mengandalkan pada pekerjaan yang sedang Anda geluti sekarang. Kecuali gaji Anda sudah berlebih, mungkin Anda bisa bernafas lega dan tidak perlu pusing mencari penghasilan tambahan. Tapi bagi Anda yang gajinya pas-pasan, atau bahkan kurang dari cukup, maka berwirausaha untuk mencari alternatif penghasilan tambahan pasti sangatlah diperlukan. Setidaknya, inilah langkah awal yang sangat diperlukan seseorang agar bisa bertahan hidup di tengah krisis.

Untuk memulai wirausaha bukanlah perkara yang mudah. Pastilah Anda akan berpikir ulang, kira-kira wirausaha apa yang bisa dilakukan. Lalu butuh modal berapa banyak dan teknis pelaksanaannya seperti apa Jika Anda memiliki modal yang terbatas, sering kali berasumsi bahwa wirausaha tidaklah mungkin bisa Anda jalankan. Paradigma bahwa wirausaha selalu mebutuhkan modal besar seharusnya sudah saatnya untuk dihapuskan dari benak Anda.

Wirausaha dengan modal kecil sejatinya bisa Anda lakukan. Pertama Anda memang harus survei dulu, kira-kira jenis usaha apa yang berpeluang bisa dijalankan di daerah Anda. Sebab besarnya modal sebenarnya tergantung pada jenis usaha yang Anda jalankan. Ada beberapa ide yang patut Anda pikirkan mulai sekarang. Mulai dari usaha servis elektronik, jualan pulsa elektrik, les privat, laundry rumahan, rental komputer, katering, jualan kue, dan seterusnya. Kepekaan Anda dalam hal ini memang sangat dibutuhkan agar benar-benar jeli melihat peluang usaha apa yang cocok dijalankan di daerah Anda.

Beberapa tips yang layak untuk dipertimbangkan bagi Anda yang berminat menjalankan wirausaha dengan modal kecil, antara lain sebagai berikut:

1. Disiplin dalam menabung setiap keuntungan kecil yang didapatkan agar bisa digunakan untuk mengembangkan modal

2. Membuat proposal usaha yang sedang Anda jalankan dengan sedetil dan semenarik mungkin untuk ditawarkan kepada pihak lain yang mau berinvestasi. Anda tidak bisa selalu berharap mendapatkan pinjaman modal dari bank sehingga Anda perlu meluaskan kemitraan dengan pihak selain bank

3. Anda harus memiliki kemauan dan kerja keras serta ditunjang oleh kreatifitas. Inilah sebenarnya yang menjadi modal utama Anda untuk memulai berwirausaha

MENGAPA INGIN MEMBUAT USAHA INI?

Dalam hal ini saya memperhitungkan segala hal, saya cukup jeli melihat pasar saat ini, adapun andalan jajanan saya ini harganya sangat terjangkau dan ukurannya pun pas. Terbuat dari bahan yang alami tanpa bahan pengawet awalnya saya kurang begitu percaya diri akan usaha saya tapi setelah saya lakukan hasilnya cukup memuaskan, saya membuat cake pandan yang sangat sederhana dan pizza mie. Saya jual dengan harga 1000 sampai 2000 yang berukuran besar.


ANALISIS TUGAS

1. PENGERTIAN ANALISIS TUGAS

Ditinjau dari pembentuk katanya Analisis tugas berasal dar kata Analisis yang berarti proses pencarian jalan keluar (pemecahan masalah) yang berangkat dari dugaan akan kebenarannya, sedangkan Tugas berarti pekerjaan atau perintah atau melakukan sesuatu fungsi.  Analisis tugas adalah proses menganalisis bagaimana manusia melaksanakan tugas, apa saja yang mereka lakukan, peralatan yang mereka gunakan, dan hal-hal apa saja yang mereka perlu ketahui. Jadi, dapat disimpulkan Analisis tugas adalah proses pencarian jalan keluar terhadap sebuah pekerjaan.

Memeriksa tugas-tugas user untuk mengetahui dengan baik apa yang dibutuhkan user dari interface dan bagaimana mereka akan menggunakannya. Dalam hal ini kita memerlukan analisa dan sketsa (gambaran) bagaimana manusia melaksanakan tugas atau pekerjaannya. Kemudian apa saja yang dilakukan dan alat atau benda apa yang digunakan pada waktu melaksanakan tugas atau pekerjaan tersebut serta hal–hal apa saja yang perlu diketahui.

Analsis tugas bukan hanya pada sistem komputer saja dan interasiknya, dengan mempelajari proses yang berhubungan dan objek pada lingkungan dimana manusia akan menggunakannya dan membutuhkanya itu dapat dikatakan kita sedang menganalisis tugas.

2. SUMBER INFORMASI ANALISIS

Analisis tugas memungkinkan kita membuat suatu struktur data mengenai tugas, dan hasilnya akan baik jika didukung oleh sumber data yang baik pula. Proses analisis data tidak semata-mata mengumpulkan,menganalisis, mengorganisasikan data dan mempresentasikan hasil, namun kadangkala kita harus kembali melihat sumber data tersebut dengan pertanyaan dan padangan baru. Pada prakteknya, keterbatasan waktu dan biaya menyebabkan seorang analis berusaha mengumpulkan data yang relevan secepat dan seekonomis mungkin. Bahkan jika dimungkinkan, seorang analis harus dapat memaksimumkan penggunaan sumber informasi murah yang sudah ada sebelum melakukan pengumpulan data yang memakan biaya. Berikut ini adalah beberapa sumber informasi yang dapat diper gunakan untuk membuat analisis tugas :
1.Dokumentasi

Sumber data yang mudah didapat adalah dokumentasi yang telah ada di organisasi seperti buku manual, buku instruksi, materi training dan lain sebagainya. Dokumen-dokumen ini umumnya berfokus pada item tertentu dalam suatu peralatan atau software komputer. Dokumen manual peralatan tertentu misalnya, mungkin hanya memberikan informasi mengenai fungsi dari peralatan tersebut tidak bagaimana peralatan tersebut digunakan dalam pengerjaan suatu tugas. Selain itu juga mungkin terdapat dokumen peraturan perusahaan dan deskripsi tugas yang memberikan informasi mengenai tugas tertentu dalam konteks yang lebih luas. Namun perlu diperhatikan, dokumentasi jenis ini hanya memberitahukan bagaimana seharusnya suatu pekerjaan dilakukan bukan bagaimana sebenarnya seseorang melakukan pekerjaan tersebut.

2.Observasi

Observasi langsung baik secara formal maupun informal perlu dilakukan jika seorang analis ingin mengetahui kondisi dari pengerjaan tugas. Hasil observasi dan dokumentasi yang ada dapat digunakan untuk analisis sebelum memutuskan untuk melakukan pengumpulan data dengan tehnik lain yang memakan biaya. Observasi dapat dilakukan di lapangan atau dalam sebuah laboratorium. Jika observasi dilakukan di lapangan analis dapat mengetahui kondisi yang sebenarnya dari proses pengerjaan tugas. Sebaliknya, pada observasi yang dilakukan di labor atorium, analis dapat dapat lebih mengendalikan lingkungan dan umumnya tersedia fasilitas yang lebih baik. Observasi juga dapat dilakukan secara aktif dengan memberikan pertanyaan atau secara pasif dengan hanya memperhatikan obyek ketika sedang bekerja.

3.Wawancara

Bertanya pada seorang yang ahli pada bidang tugas yang akan dianalisis seringnya merupakan cara langsung yang cepat untuk mendapatkan informasi mengenai suatu tugas. Ahli tersebut bisa saja si manager, supervisor, atau staf yang memang mengerjakan tugas tersebut. Wawancara kepada ahli sebaiknya dilakukan setelah observasi. Hasil observasi dapat direfleksikan dengan wawancara untuk mengetahui perilaku atau kondisi yang diinginkan dan tidak diinginkan.

4 Analisis Awal

Setelah data diperoleh dari beberapa sumber seperti buku manual, observasi maupun wawancara, maka detail analisis dengan berbagai metode yang ada dapat mulai dilakukan. Untuk tahap awal, dapat dilakukan dengan mendaftar obyek dan aksi dasar. Cara mudah yang dapat ditempuh adalah dengan menelusuri dokumen-dokumen yang ada dan mencari kata benda yang akan menjadi obyek, serta kata kerja yang akan menjadi aksi.  Namun hal ini tidaklah selamanya cukup. Tidak mudah mengenali posisi obyek dan aksi tersebut dalam dokumen terutama untuk obyek atau aksi yang dijelaskan secara implisit.

5. Pengurutan dan Klasifikasi

Ada beberapa tehnik untuk membuat klasifikasi dan pengurutan entri berdasarkan beberapa atribut. Beberapa analis melakukan pengurutan dan klasifikasi sendiri, namun ada juga yang dibantu oleh ahli berdasarkan bidang analisis.
UIMS sebagai arsitektur konseptual :
Isu utama adalah bagaimana memisahkan antara semantic aplikasi dan interface yang tersedia bagi user. Banyak argument yang baik untuk mendukung pemisahan ini, yaitu :
~Portability : agar aplikasi yang sama dapat digunakan di system yang berbeda maka membuat aplikasinya sebaiknya terpisah dari interface device-dependent-nya.

~Reusability : pemisahan meningkatkan komponen untuk dapat digunakan kembali agar dapat mengurangi biaya.

~Multiple interfaces : untuk meningkatkan fleksibilitas aplikasi yang interaktif, beberapa interface yang berbeda dibuat untuk mengakses fungsionalitas yang sama.

~Customization : interface user dapat dikustom oleh desainer dan user untuk meningkatkan keefektifan tanpa mengubah aplikasi

3. PENDEKATAN ANALISIS TUGAS


DEKOMPOSISI TUGAS

 memilah tugas ke sub-tugas beserta urutan pelaksanaannya Teknik analisa tugas umumnya membuat dekomposisi tugas untuk mengekspresikan aksi yang harus dilakukan, seperti pada contoh di atas. Salah satu pendekatan yang sering digunakan adalah hierarchical task analysis (HTA). Output HTA adalah hirarki tugas dan sub-task dan juga plans (rencana) yang menggambarkan urutan dan kondisi (syarat) suatu sub-tugas dilaksanakan.

0. In order to clean the house

1. get the vacuum cleaner out ,,,,ambil vacuum cleaner

2. fix the appropriate attachment,,,,atur hingga layak digunakan

3. clean the rooms ,,,,bersihkan ruangan

3.1. clean the hall ,,,,teras

3.2. clean the living rooms,,,,,,ruang keluarga/tamu

3.3. clean the bedrooms,,,,tempat tidur

4. empty the dust bag,,,,kosongkan tempat debunya

5. put the vacuum cleaner and tools away,,,,,taruh pada tempatnya kembali

Plan 3 dapat dibuat lebih spesifik lagi:

Plan 3: do

3.1 every day

3.2 once a week



TEKNIK BERBASIS PENGETAHUAN

melihat apa yang harus diketahui oleh user tentang objek dan aksi yang terlibat dalam tugas dan bagaimana pengetahuan itu diorganisasikan.

Dimulai dengan mendaftar semua objek dan aksi yang terlibat dalam tugas dan kemudian membangun taksonominya, mirip seperti apa yang dilakukan pada bidang biologi: hewan termasuk dalam invertebrata dan vertebrata, hewan vertebrata adalah ikan, burung, reptil, amphibi, atau mamalia, dan seterusnya Tujuannya untuk memahami knowledge yang dibutuhkan untuk melaksanakan tugas

Pembuatan taksonomi dapat dilihat pada contoh berikut :

Motor controls

Steering steering wheel, indicators

            Engine/speed

            Direct ignition, accelerator, foot brake

            Gearing clutch, gear stick

            Lights

            External headlights, hazard lights

            Internal courtesy light

            Wash/wipe

            Wipers front wipers, rear wipers

            Washers front washers, rear washers

            Heating temperature control, air direction, fan, rear screen heater

            Parking hand brake, door lock

            Percobaan pertama membuat taxonomy kontrol mobil



 C Analisa berbasis relasi-entitas
   
pendekatan berbasis objek, dimana penekanannya pada identifikasi aktor dan objek,relasi dan aksi yang dilakukan.Analisa tugas dikhususkan untuk mengenali kepentingan user. Beberapa aspek analisa tugas sangat mirip dengan model kognitif berorientasi-  goal. Analisa tugas cenderung lebih melihat pada apa yang harus dilakukan oleh user   sedangkan pada model kognitif lebih melihat pada proses kognitif internal seseorang dalam melakukan pekerjaannya (internalmental state), maka granularitasnya biasanya lebih kecil dibandingkan analisa tugas. Diadopsi dari desain database. Dalam database,entitas yang dipilih untuk analisa adalah yang diharapkan untuk direpresentasikan pada system komputer. Dalam analisa tugas, jangkauan entitas tidak terbatas pada komputer entitas termasuk objek fisik, aksi yang dilakukan dan manusia yang melaksanakannya. Objek juga dapat berbentuk komposit dimana membentuk mengandung lebih dari satu objek. Seperti pada pendekatan pengetahuan pusat analisa masalah objek dan aksi,tetapi penekanannya pada hubungan antaranya, ketimbang ‘kemiripan ‘nya. Contoh: Market gardening firm Untuk entitas objek: Object Pump3 simple – irrigation pump Attributes: Status: on/off/faulty Capacity: 100 litres/minute Penekanannya bukan untuk menghasilkan representasi mesin, melainkan untuk  menjelaskan partisipasinya dalam tugas manusia dan komputer.


4. PENGGUNAAN ANALISIS SISTEM

    Menangkap kebutuhan dan desain system
    Mengangkat fokus dari sistem untuk dapat digunakan
    Menyarankan kandidat untuk otomatisasi
    Menyingkap model konseptual pengguna
    Desain antarmuka detil
    Taksonomi menyarankan layout menu
    Daftar objek/aksi menyarankan antarmuka objek
    Frekuensi tugas memandu pilihan default
    Urutan tugas yang ada memandu desain dialog

Catatan

    Analisis tugas tidak pernah bisa komplit
    Desain berbasis tugas kaku
    sistem yang tidak fleksibe


Selasa, 08 Mei 2012

konsep object oriented programming



POLYMORPHISM

Polymorphism merupakan kemampuan obyek untuk menjadi berbagai bentuk. Yang paling umu terjadi adalah ketika referensi class parent digunakan untuk class anak.Penting untuk mengetahui bahwa kemungkinan satu-satunya cara untuk mengakses obyek melalui referensi variabel. Referensi variabel hanya dapat dideklarasikan ke dalam satu tipe data. Setelah dideklarasikan,tipe referensi variabel tidak dapat diubah.
Referensi variabel dapat di turunkan ke obyek yang lain, asal tidak dideklarasikan dengan keyword ‘final’. Tipe dari referensi variabel dapat menentukan method yang dapat mengaksesnya. Referensi variabel dapat merujuk kepada objek yang dinyatakan atau subtype dari tipe yang dideklarasikan. Referensi variabel dapat dinyatakan ke dalam kelas atau interface.
Contoh :
public interface Vegetarian{}
public class Binatang{}
public class Rusa extends Binatang implements Vegetarian{}
Sekarang class Rusa merupakan polymorphism karena merupakan turunan dari banyak object. Kesimpulan dari class Rusa diatas sebagai berikut:
• Rusa ADALAH Binatang
• Rusa ADALAH Vegetarian
• Rusa ADALAH Rusa
• Rusa ADALAH Object
Ketika kita ingin mereferensikan obyek variabel Rusa, maka langkah berikut adalah benar :
Rusa r = new Rusa();
Binatang b = r;
Vegetarian v = r;
Object o = r;
Semua referensi variabel r,b,v,o merujuk ke obyek Rusa yang sama.

INTERFACE

Obyek berkomunikasi dengan dunia luar menggunakan method. Method berfungsi sebagai antarmuka/interface dengan dunia luar, seperti contoh : tombol remote televisi, remote berfungsi sebagai interface antara orang dengan alat elektronik televisi. Jika TV dalam keadaan mati kita menekan tombol ON maka TV akan menyala, begitu juga sebaliknya. Jika kita menekan tambol volume (+), maka volume TV akan bertambah keras, begitu juga sebaliknya. Dengan kata lain, Interface merupakan sekelompok method kosong dari sebuah class. Method dari class Televisi akan tampak seperti berikut :
/* Nama file : TV.java */
public interface TV {
    // variabel class Televisi
    public static final int on = 1;
    public static final int off = 0;

    // method class Televisi
    public abstract void HidupkanTV();

    public abstract void MatikanTV();

    public abstract void KeraskanVol();

    public abstract void KecilkanVol();

    public abstract void GantiChannel(int NoChannel);

    public abstract void CetakStatus();

}
Untuk menggunakan interface TV diatas gunakan keyword implements pada pembuatan class.
/* Nama file : TVku.java */
public class TVku implements TV{
     // variabel class
     int status = 0;
     int volume = 0;
     int channel = 0;

     // method class Televisi
     void HidupkanTV(){
        if ( status == off){
            status = on;
        }
    }
    void MatikanTV(){
        if ( status == on){
            status = off;
        }
    }
    void KeraskanVol(){
        volume = ++volume;
    }
    void KecilkanVol(){
        volume = --volume;
    }
    void GantiChannel(int NoChannel){
        channel = NoChannel;
    }
    void CetakStatus(){
        System.out.println("Status Televisi : "+status);
        System.out.println("Volume Televisi : "+volume);
        System.out.println("Channel Televisi : "+channel);
        System.out.println("----------------------");
    }
}

ENCAPSULATION

Encapsulation merupakan teknik yang membuat variabel/field class menjadi bersifat privat dan menyediakan akses ke variabel/field melalui public method. Jika field di deklarasikan sebagai private, maka field ini tidak bisa diakses oleh siapapun diluar class, dengan demikian field disembunyikan di dalam class. Dengan kata lain encapsulation juga berfungsi untuk menyembunyikan data. Encapsulation juga merupakan tembok penghalang yang mencegah kode atau data diakses oleh data lain di luar class. Akses ke kode dan data di kontrol melalui interface. Manfaat utama teknik encapsulation adalah kita mampu memodifikasi kode tanpa merusak kode yang telah digunakan pada class lain. Encapsulasi merupakan implementasi penyembunyian informasi (information hiding). Tujuannya menyembunyikan informasi data (field) objek sehingga tidak terlihat dari luar. Dengan demikian informasi tersebut tidak dapat diakses sembarangan. Enkapsulasi adalah pembungkus, pembungkus disini dimaksudkan untuk menjaga suatu proses program agar tidak dapat diakses secara sembarangan atau di intervensi oleh program lain. Konsep enkapsulasi sangat penting dilakukan untuk menjaga kebutuhan program agar dapat diakses sewaktu-waktu, sekaligus menjaga program tersebut. EX:/* Nama file : Encapsulasi.java */
public class Encapsulasi {

   private String nama;
   private int umur;

   public int getUmur(){
      return umur;
   }
   public String getNama(){
      return nama;
   }
   public void setUmur( int newUmur){
      umur = newUmur;
   }
   public void setNama(String newNama){
      nama = newNama;
   }
}
INHERITANCE
Berbagai macam bentuk televisi yang ada pasti mempunyai beberapa ciri yang sama satu sama lain, contoh TV tabung, TV LCD, TV layar datar, semua tipe televisi ini pasti mempunyai tombol ON/OFF, tombol Volume, tombol Channel. Terkadang pada beberapa tipe tedapat beberapa fitur baru yang ditambahkan untuk melengkapi fungsi Televisi tersebut, seperti contoh : Video/DVD player port, USB port, Camera port, Speaker port, dll.
Dalam pemrograman berorientasi obyek diperbolehkan menurunkan variabel dan method yang biasa digunakan dalam class induk/parent. Dalam contoh dibawah Televisi menjadi superclass dari obyek TV tabung, TV LCD, TV layar datar dan setiap obyek yang diturunkan dari superclass dapat mempunyai subclass-subclass lain dibawahnya sebagai class turunan/anak.
Photobucket
Untuk membuat subclass dari class Televisi gunakan keyword extends diikuti oleh nama class induk/parent.
Class nama_subclass extends nama_superclass Contoh : TVLcd.java
/* Nama file : TVLcd.java */
public class TVLcd extends Televisi{
    // field baru dan method baru untuk mendefinisikan class TV LCD
    // letakkan disini
}
Contoh diatas akan menurunkan semua field dan method yang ada pada superclass Televisi ke subclass TVLcd yang baru
Object
Object merupakan kunci untuk memahami konsep pemrograman berorientasi obyek. Di dalam dunia nyata banyak sekali kita temui sebuah object, seperti contoh : mobil, sepeda, radio, televisi, anjing, kucing, dll. Obyek dalam dunia nyata selalu mempunyai dua karakteristik yaitu status dan perilaku, contoh : Televisi mempunyai status ( on, off, volume, channel tv ) dan perilaku ( matikan, hidupkan, keraskan volume, kecilkan volume, cari channel tv, ganti channel tv ).
Obyek dalam dunia pemrograman juga mempunyai dua karakteristik yaitu variabel/field sebagai status dan method sebagai perilaku dari sebuah object. Obyek menyimpan statusnya pada variabel dan mendefinisikan perilakunya melalui sebuah method. Method akan mengakses nilai dari field obyek dan sebagai mekanisme utama komunikasi antar obyek, sehingga dunia luar tidak perlu mengetahui bagaimana obyek dapat saling berkomunikasi melalui sebuah method.
Photobucket
Sebagai contoh obyek televisi mempunyai status ( on, off, volume, channel tv ) dan perilaku ( matikan, hidupkan, keraskan volume, kecilkan volume, ganti channel tv ) sehingga Obyek lain seperti contoh obyek orang yang ingin berkomunikasi dengan obyek televisi hanya perlu memanggil m ethod yang ada pada obyek televisi, contoh: jika ingin menghidupkan televisi  panggil method ‘hidupkan’, jika ingin mengeraskan volume  panggil method ‘keraskan volume’, jika ingin mengganti channel tv  panggil method ‘ganti channel tv’.
Class
Dalam dunia nyata sering kita menemukan obyek televisi yang beragam mulai dari warna, bentuk, pembuat, dll. Tentu saja semua televisi dibuat dengan menggunakan cetakan/blueprint yang sama oleh karena itu semua televisi mempunyai komponen yang sama. Dalam dunia program, televisi yang berbeda-beda tersebut merupakan turunan/anak dari class obyek ‘televisi’.
Berikut pendefinisian obyek Televisi ke dalam class di Java
/* Nama file : Televisi.java */
public class Televisi {

    // variabel class Televisi
    int on = 1;
    int off = 0;
    int volume = 0;
    int channel = 0;
    int status = 0;

    // method class Televisi
    void HidupkanTV(){
        if ( status == off){
            status = on;
        }
    }
    void MatikanTV(){
        if ( status == on){
            status = off;
        }
    }
    void KeraskanVol(){
        volume = ++volume;
    }
    void KecilkanVol(){
        volume = --volume;
    }
    void GantiChannel(int NoChannel){
        channel = NoChannel;
    }
    void CetakStatus(){
        System.out.println("Status Televisi : "+status);
        System.out.println("Volume Televisi : "+volume);
        System.out.println("Channel Televisi : "+channel);
        System.out.println("----------------------");
    }
}
Berikut pembuatan obyek ‘Tvku’ berdasarkan class ‘Televisi’ dan pengaksesan methodnya.
/* Nama file : TelevisiBeraksi.java */
public class TelevisiBeraksi {
    public static void main(String[] args){

        // ciptakan obyek Tvku dari class Televisi
        Televisi Tvku = new Televisi();

        // panggil method yang ada pada obyek Tvku
        Tvku.CetakStatus();
        Tvku.HidupkanTV();
        Tvku.KeraskanVol();
        Tvku.KeraskanVol();
        Tvku.CetakStatus();
        Tvku.GantiChannel(3);
        Tvku.GantiChannel(10);
        Tvku.MatikanTV();
        Tvku.CetakStatus();
    }
}
Dan jika dijalankan maka output dari program diatas sbb: Photobucket