Rabu, 30 Desember 2009

ABSTRAKSI DAN GENERALISASI

ABSTRAKSI DAN GENERALISASI

Abstraksi adalah deskripsi dari suatu masalah pada level generalisasi tertentu, sehingga memungkinkan kita untuk berkonsentrasi pada aspek kunci dari masalah tersebut tanpa memperhatikan hal-hal detail. Abstraksi dapat membantu kita untuk fokus pada hal-hal penting dari suatu masalah
Abstraksi melibatkan pengindentifikasian kelas-kelas (classes) dari suatu object, sehingga memungkinkan kita menggroupkannya. Dengan cara tersebut kita bekerja dengan sedikit parameter/variabel dari kelas-kelas yang ditinjau.
Contoh :
• Monitoring : berbagai macam sistem monitoring
• Ban sepeda : sepeda balap, sepeda gunung
• Mobil : sedan, jeep, wagon, truk, dll

TINGKATAN ABSTRAKSI
• Abstraksi Fungsional
• Pengelompokan kasual
• Abstraksi data
• Abstraksi cluster
• Abstraksi sistem

GENERALISASI
Generalisasi adalah perluasan suatu aplikasi yang meliputi suatu daerah object yang lebih besar dengan jenis yang berbeda atau jenis yang sama.

BINDING
• Attribute : nilai internal atau data terkait pada suatu objek yang menunjukkan ciri-ciri atau sifat-sifat dari obyek serta penggambaran keadaan (state) obyek
Contoh :
Nama objek : mobil
Attribute :
Merek : toyota
Silinder : 2000cc
Warna : merah
Status : baru / jalan
Tahun : 2006

• Binding : Pengaturan nilai attribute
• Descriptor : informasi attribute yang diisikan dalam tempat penyimpanan untuk setiap entitas.
Binding merupakan pusat dari konsep definisi semantic bahasa pemrograman
Bahasa pemrograman berbeda satu dengan yang lainnya karena:
• Perbedaan jumlah entitas yang dapat ditangani
• Jumlah attribute yang dapat ditempelkan ke entitas yang dapat ditangani
• Waktu kemunculan binding (binding time)
• Stabilitas binding (binding yang sudah terbentuk bersifat tetap atau dapat dimodifikasi)

JENIS BINDING
Ada dua tipe / jenis binding bila dilihat dari control yang digunakan untuk binding data, yaitu :
1. Simple Binding
2. Complex Binding
Kalau dilihat dari sisi waktu pengikatan data (binding) bisa dibedakan lagi ke dalam dua jenis, yaitu :
1. Early Binding
2. Late Binding

Contoh Binding
• Language definition time binding
• Language implementation time binding
• Compile-time (translation-time) binding
• Execution-time (Run-time) binding

ENKAPSULASI
• Pengkapsulan berarti mengemas beberapa item bersama-sama menjadi satu unit yang tertutup dalam rangka menyembunyikan struktur internal suatu obyek dari lingkungan/dunia luar
• Pengkapsulasan sering dianggap sebagai “penyembunyian informasi”
• Setiap kelas hanya menampakkan interface yang diperlukan untuk berkomunikasi dengan dunia luar melalui message dan menyembunyikan (encapsulating)/implementasi aktual di dalam kelas.
• Kita hanya membutuhkan pemahaman tentang interface (methode), tidak perlu paham tentang internalnya (implementation).
• Pengapsulan merupakan kemamupan sebuah obyek kelas untuk membatasi akses client ke reprensentasi internal obyek (data dan fungsi)

PRINSIP GENERALISASI
Prisip generalisasi adalah suatu bentuk umum dari suatu kesatuan yang khusus.
Contoh : lamda p.B’
Dimana lamda menyatakan suatu abstrak yang menandakan generalisasi B jika p dipanggil oleh suatu parameter B’. Prinsip generalisasi tergantung pada prinsip analogi. Generalisasi dan abstrak sering digunakan bersama-sama. Abstrak digeneralisasi dengan parameterisasi untuk mendapatkan manfaat yang lebih besar. Di dalam parameterisasi satu atau lebih bagian dari suatu kesatuan dapat digantikan dengan suatu nama baru. Nama yang digunakan sebagai suatu parameter ketika abstrak yang telah diparameterkan dilibatkan dengan suatu binding parameter disebut argumentasi.

Prinsip Analogi
Prinsip analogi ada ketika suatu penyesuaian pada pola di antara 2 object yang berbeda. Dimana object dapat digantikan dengan object tunggal yang parameterized untuk melakukan rekonstruksi yang menyangkut object yang asli

Prinsip Parameterisasi
Prinsip Parameterisasi adalah suatu parameter yang secara umum mungkin berasal dari beberapa domain. Istilah parameter formal dan parameter nyata sering disebut dengan argumentasi

SUBSTITUSI
Kegunaan abstraksi dan generalisasi tergantung pada substitusi.
Prinsip korenpondensi
Prinsip korespondensi adalah suatu formalitas yang menyangkut aspek /pengarahan prinsip abstrak yang mengandung substitusi dan definisi saling terkait.
Struktur Block
1. Block merupakan suatu bagian dari scope-defining bahasa pemrograman. Artinya, Block merupakan suatu definisi wilayah bagian bahasa pemrograman.
2. Block merupakan urutan dari statemen yang executable yang diperlakukan sebagai suatu unit
Block disebut subprogram atau routine di kebanyakan bahasa pemrograman
Struktur Block dari suatu bahasa pemrograman

Aturan Cakupan
• Dynamic Scope
Suatu subprogram yang didefinisikan di satu tempat dalam suatu program dan dapat dipanggil dari lingkungan yang berbeda (lingkungan dimana subprogram tersebut tidak didefinisikan)
• Static Scope
Subprogram dipanggil dari lingkungan tempat subprogram tersebut didefinisikan

Abstraksi dan Generalisasi
•Abstraksi adalah penekanan pada gagasan, kualitas dan properti, bukan pada detail tertentu (penekanan pada detail)
•Generalisasi adalah perluasan dari aplikasi yang mengarah pada domain yang lebih besar dari obyek yang sama atau tipe yang berbeda

Binding
•Obyek yang terikat pada nama disebut bindables (terikat) pada bahasa
•Yang termasuk bindable adalah: data primitif, nilai kumpulan, referensi ke variabel, tipe-tipe, dan abstraksi yang executable

Jenis-jenis binding
•Collateral binding à melakukan binding secara terpisah satu sama lainnya dan kemudian menggabungkan binding-binding itu untuk menghasilkan sekumpulan lengkap binding
•Sequential binding à melakukan binding dalam urutan kemunculan mereka
•Recursive binding à adalah binding di mana nama-nama yang di dalamnya terikat dipergunakan (langsung atau tidak langsung) di bindingnya itu sendiri

Enkapsulasi
•Sebuah modul umumnya terdiri dari dua bagian: bagian ekspor dan bagian lokal
•Bagian ekspor dari sebuah modul terdiri dari deklarasi bahasa untuk simbol-simbol yang tersedia untuk digunakan dalam bagian modul dan modul lain yang mengimpornya dan deklarasi modul yang memberikan simbol dari modul lain yang tersedia untuk digunakan dalam bagian modul dan dalam modul lain yang mengimpornya


Prinsip Generalisasi
•Sebuah generik adalah sebuah entitas yang bisa dikhususkan (dijabarkan lebih jauh) terhadap invokasi
•Prinsip analogi: Ketika ada kecocokan pola antara dua obyek berbeda, obyek-obyek ini bisa digantikan oleh sebuah obyek yang diberikan parameter untuk memungkinkan rekonstruksi obyek-obyek aslinya
•Prinsip parameterisasi à sebuah parameter dari sebuah generik bisa terbentuk dari domain•

Substitusi
•Penggunaan abstraksi dan generalisasi bergantung pada substitusi. Ikatan keduanya terkandung pada prinsip berikut:
•Prinsip Korespondensi: Mekanisme binding parameter dan mekanisme definisi adalah setara

Struktur Blok
•Sebuah blok adalah sebuah konstruksi yang membatasi cakupan definisi yang terkandung di dalamnya
•Ada tiga dasar struktur blok: monolitik, flat dan nested
•Syntax blok:
let Definitions in Body end
Body where Definitions

Struktur Blok
•Syntax di atas menyatakan dua tipe blok, yang pertama membutuhkan definisi sebelum body dan yang kedua membutuhkan definisi sesudah body
•Monolitik à hanya terdiri dari satu blok saja
•Flat à body nya bisa saja mengandung blok-blok tambahan tetapi blok bagian dalam tidak mengandung blok
•Nested à jika blok-blok dimungkinkan untuk bersarang (nested) di dalam blok lain

Aturan Cakupan (Scope)
•Tindakan mempartisi sebuah program mengangkat masalah cakupan nama-nama
•Ada empat pilihan:
1.Semua nama tersedia secara global
2.Semua nama eksternal tersedia secara lokal
3.Hanya nama-nama yang diekspor secara eksplisit tersedia secara global
4.Hanya nama-nama eksternal yang diimpor secara eksplisit yang tersedia secara lokal

Aturan Cakupan (Scope)
•Aturan cakupan dinamis à menentukan cakupan masing-masing asosiasi dalam hal dinamisasi eksekusi program
•Aturan cakupan statis à disebut juga aturan cakupan leksikal

Prosedur dan Fungsi
•Sebuah program bisa saja terdiri dari sebuah program utama yang pada saat eksekusi memanggil subprogram yang pada gilirannya bisa saja memanggil subprogram lain, dan seterusnya.
•Setiap subprogram bisa memiliki data lokalnya sendiri yang bisa ditemukan dalam record aktivasi

Parameter dan Argumen
•Sebuah generik dikatakan strict dalam sebuah parameter jika dia membutuhkan nilai parameter dan non-strict dalam sebuah parameter jika dia tidak membutuhkan nilai dari parameter
•Evaluasi lazy à adalah sebuah skema evaluasi di mana argumennya dievaluasi hanya pada saat dibutuhkan

Mekanisme Pemasukkan Argumen
•Mekanisme penggandaan mengharuskan nilai-nilai dikopi ke sebuah generik ketika dia dimasukkan dan dikopi keluar dari generik ketika generik dihentikan. Bentuk pemasukkan parameter ini sering disebut passing by value.

Mekanisme Pemasukkan Argumen
•Mekanisme definisi seakan-akan abstrak itu dikelilingi oleh sebuah blok di mana di dalamnya ada sebuah definisi yang mengikat parameter ke argumen itu. Sebuah parameter dikatakan passed by reference jika argumennya adalah sebuah address

Cakupan dan Blok
•Sebuah variabel yang dideklarasikan dalam sebuah blok memiliki jangka waktu hidup (lifetime) dimulai dari sebuah record aktivasi diciptakan untuk blok itu hingga record aktivasi itu dihapus

tugas manajemen umum

tugas manajemen umum

1. Siapa yang sebenarnya membutuhkan manajemen dan mengapa manajemen harus ada ?

Manajemen dibutuhkan dan diperlukan untuk semua tipe kegiatan yang diorganisir dan dalam semua bantuk kegiatan organisasi, dimana ada orang bekerja sama di dalam mencapai suatu tujuan disitulah manajemen diperlukan dan dibutuhkan. Macam bentuk dari organisasi sebenarnya sama dalam menjalankan manajemennya (dalam hal ini fungsi manajemen), karena fungsi manajemen sifatnya adalah universial, sama baik untuk perusahaan kecil, besar maupun multinasional dan lain sebagainya.

2. Mengapa pada lower manajemen, manajerial skil lebih kecil di bandingkan dengan technological skil (Keahlian Teknik) !

Pimpinan tingkat bawah lebih banyak berhadapan dengan para pekerja opersional secara langsung, dimana tugas utamanya memberikan bimbingan langsung kepada petugas operasional, maka bagi pimpinan tingkat bawah harus mengetahui selik beluk kegiatan yang operatif.

3. Mengapa dalam sebuah organisasi di perlukan suatu rencana atau planning !

Organisasi perlu menyusun suatu rencana karena masa depan penuh dengan hal-hal yang tidak pasti. Maka untuk pedoman bagi suatu organisasi untuk bertindak agar mencapai tujuan y6ang telah ditetapkan perlu disusun suatu rencana, ya karena itu tadi bahwa masa depan penuh dengan hal ketidakpastian. Jadi orang atau organisasi perlu menyusun rencana guna menghadapi unsure ketidakpastian.

4. Tentukan berapa jumlah bawahan yang harus diawasi bila pimpinan memiliki 3 orang bawahan !

Jumlah bawahan yang harus diawasi oleh pimpinan sebanyak :
Rumus R = n (2n-1+(n-1))
R = 3 (2 3-1 = (3-1))
= 3 (22 + 2 )
= 3 (4+2)
= 18
Jumlah hubungan yang akan timbul sebanyak 18, sehingga dapat dibayangkan betapa rumit hubungan antara atasan dengan bawahan.

5. Apa yang dimaksud dengan promosi !

Promosi yaitu kenaikan jabatan dan tanggung jawab yang lebih besar pada seorang pegawai yang disertai kenaikan balas jasa. Tujuan nya untuk mengisi jabatan yang kosong dan memotivasi pegawai agar mampu meningkatkan prestasinya.

6. Apa yang dimaksud dengan demosi !

Demosi adalah penurunan jabatan karena seseorang tersebut tidak mampu dan cakap dalam memikul tugas dan tanggung jawab yang di bebankan kepadanya tanpa mengurangi balas jasa yang pernah diterima nya.

7. Sebutkan sebab utama konflik yang sering timbul dalam organisasi !

- konflik didalam individu
- Konflik antar individu dalam organisasi yang sama
- Konflik antara individu dean kelompok
- Konflik antar kelompok dalam organisasi yang sama
- Konflik antar organisasi

8. Sebutkan dan jelaskan gaya kepemimpinan yang anda ketahui !
Beserta ciri – cirinya !

Gaya kepemimpinan adalah pola tingkah laku yang dirancang untuk mengintegrasikan tujuaqn organisasi dan tujuan indivu untuk mencapai tujuan bersama.
Ciri-ciri gaya kepemimpinan :
1. Tipe otokratis
2. Tipe militerisme
3. Tipe paternalistis
4. Tipe karismatik
5. tipe demokratis

Kamis, 19 November 2009

Sekilas Java

Java adalah sebuah bahasa pemrograman komputer berbasiskan kepada Object Oriented Programming. Java diciptakan setelah C++ dan didesain sedemikian sehingga ukurannya kecil, sederhana, dan portable (dapat dipindah-pindahkan di antara bermacam platform dan sistem operasi). Program yang dihasilkan dengan bahasa Java dapat berupa applet (aplikasi kecil yang jalan di atas web browser) maupun berupa aplikasi mandiri yang dijalankan dengan program Java Interpreter. Contoh program yang ditulis dengan bahasa Java adalah HotJava yang berupa sebuah web browser.
1. Platform independence

Salah satu keunggulan Java adalah sifatnya yang 'platform independence', artinya Java - baik source program maupun hasil kompilasinya - sama sekali tidak bergantung kepada sistem operasi dan platform yang digunakan. Source code sebuah aplikasi dengan bahasa Java yang ditulis di atas sistem Windows NT misalnya, dengan gampang dapat dipindahkan ke sistem operasi UNIX tanpa harus mengedit satu baris kode-pun. Ini tentunya merupakan satu nilai tambah tersendiri. Bandingkan dengan bahasa C/C++ misalnya, jika kita bekerja pada UNIX FreeBSD dan ingin memindahkannya pada HP UNIX, kita terkadang harus juga mengedit source code-nya sehingga sesuai dengan HP UNIX, walaupun keduanya masih berada dalam keluarga UNIX.

Dan yang lebih hebat lagi, bukan hanya source code-nya saja yang bisa dipindah-pindahkan antar sistem komputer, bahkan hasil kompilasinya pun bisa dijalankan di berbagai sistem komputer. Hal ini dimungkinkan dengan adanya bytecode. Setiap program yang ditulis dengan bahasa Java, hasil kompilasinya berupa bytecode, yaitu sekumpulan instruksi yang kelihatannya seperti kode mesin (machine code) tapi tidak spesifik untuk satu jenis prosesor tertentu.

Umumnya jika kita menulis program -misalnya dalam bahasa C++- pada satu sistem komputer -misalnya PC-, kompiler akan menterjemahkan source code kedalam bahasa mesin yang spesifik untuk prosesor yang ada di PC. Jika hendak dijalankan di sistem lain, Macintosh misalnya, maka source code harus dikompilasi lagi pada mesin Macintosh yang bersangkutan, dan terkadang harus melakukan pengeditan source code terlebih dahulu. Menjalankan hasil kompilasi dari platform Windows pada platform UNIX tidak akan pernah berhasil. Berikut ini ilustrasiny

Hal yang berbeda terjadi pada lingkungan Java. Lingkungan Java terdiri dari dua bagian yaitu Java compiler dan Java interpreter. Java compiler menterjemahkan source code kedalam bytecode. Hasil kompilasi, yaitu program Java (berekstensi class), akan bisa dijalankan dengan bantuan Java interpreter. Java interpreter dapat dijalankan langsung (dari command prompt) maupun dari program applet viewer atau web browser (untuk applet). Kenapa harus bersusah payah menambahkan satu layer bytecode interpreter? Jawabnya adalah untuk memungkinkan program Java bisa dijalankan pada bermacam-macam sistem komputer asalkan pada sistem komputer itu terdapat Java interpreter.

Kelemahan dari penggunaan bytecode adalah kecepatan operasi yang lebih lambat daripada program-program biasa. Hal ini karena program-program yang ditulis pada bahasa pemrograman yang hardware-specific dapat langsung berjalan di atas hardware dimana ia dikompilasi.. Program bytecode harus diterjemahkan terlebih dahulu oleh interpreter baru dijalankan di atas hardware.

Karena keunggulan-keunggulan di atas, program Java sangat baik digunakan untuk aplikasi internet maupun intranet, mengingat komunitasi internet dan intranet biasanya menggunakan sistem operasi dan platform yang sangat berbeda-beda dalam mendapatkan dan memberikan informasi.
2. Memulai Java

Untuk bisa memulai menggunakan Java, minimal kita harus terlebih dahulu menginstall Java Development Kit yang dapat di-download dengan gratis dari http://java.sun.com. Dapat juga digunakan program developent tools Java lainnya yang memiliki fasilitas yang lebih lengkap seperti Symantec Café, Borland J Builder, Microsoft Visual J++, dan lainnya.

Seperti telah diterangkan di atas, hasil kompilasi Java dapat berupa aplikasi maupun applet. Aplikasi merupakan hasil kompilasi program Java yang dapat langsung dijalankan dari command prompt dengan bantuan program java interpreter, sedangkan applet harus dijalankan di atas browser atau appletviewer. Perbedaan applet dan aplikasi Java terletak pada penurunannya dari class Applet. Perhatikan contoh di bawah ini:

Aplikasi Java

class JavaPertama {

public static void main (String args[]) {

System.out.println("Halo, ini ¿

Aplikasi java saya yang pertama!");

}

}


Aplikasi Java

import java.awt.Graphics;

public class JavaAppletPertama extends ¿ java.applet.Applet {

public void paint(Graphics g) {

g.drawString ("Ini applet java ¿

ku yang pertama!",5, 25);

}

}

Pada aplikasi Java, kita membuat sebuah class baru yang bukan merupakan turunan dari class apapun. Apa yang akan dikerjakan oleh aplikasi tersebut terletak di dalam prosedur main. Dalam contoh di atas, aplikasi akan mencetak tulisan “Halo, ini Aplikasi java saya yang pertama!” pada layar monitor (diwakili oleh objek System.out). Setelah dikompilasi kita akan mendapatkan bytecode yang berada dalam bentuk file dengan ekstensi class. Hal yang perlu diperhatikan adalah bahwa:

1. nama file source code harus sama dengan nama class yang didefinisikan di atas (dalam hal ini JavaPertama.java)

2. penamaan dan penulisan syntaks dalam Java adalah case sensitive

3. nama file bytecode hasil kompilasi sama dengan nama class yang didefinisikan (dalam hal ini JavaPertama.class)

Sedangkan pada applet terdapat baris class JavaAppletPertama extends java.applet.Applet yang menentukan bahwa class yang baru kita buat (JavaAppletPertama) merupakan turunan dari class Applet yang berada pada paket java.applet. Salah satu yang menarik dari Java adalah telah tersedianya sedemikian banyak class yang siap pakai dan tinggal diturunkan (baca: digunakan) untuk membuat applet maupun aplikasi baru. Kumpulan class-class ini disimpan dalam suatu paket yang diakses dengan memanggil nama paket yang bersangutan. Paket-paket ini telah meliputi paket bahasa Java dasar (java.lang), paket abstraksi window dan objek-objeknya (java.awt), sampai dengan paket networking TCP/IP (java.net).

Setelah diturunkan dari class Applet, class yang baru akan secara otomatis memiliki sifat (attribute) dan kelakuan (behaviour) yang sama dengan class Applet. Namun class Applet ini baru hanya merupakan template untuk pembuatan applet-applet baru. Kita harus melakukan modifikasi (istilahnya overriding) terhadap prosedur dan fungsi yang tersedia dari class Applet. Salah satu prosedur yang akan kita override pada contoh ini adalah prosedur paint() yang menentukan bagaimana dan apa yang akan ditampilkan pada applet saat pertama kali muncul.

Pada applet di atas kita juga menggunakan class Graphics yang gunanya untuk manipulasi tampilan Graphics pada applet kita. Untuk itu kita harus secara eksplisit memanggil class tersebut dengan nama tempat paketnya, yaitu: import java.awt.Graphics.

Lalu pada prosedur paint(), kita lakukan penggambaran sesuatu pada applet dengan menggunakan function drawString() yang terletak pada objek g yang bertype Graphics. Function ini mengambil parameter string apa yang akan digambarkan, posisi x, dan posisi y (dalam pixel) pada applet.

Setelah dikompilasi, kita akan memperoleh sebuah file class yang bernama JavaAppletPertama.class. Untuk melihat hasil applet tersebut, kita harus membuat sebuah halaman HTML yang memanggil applet tersebut. Gunakan tag HTML sebagai berikut:

Java applet ku mengatakan:

HEIGHT=25>

Sekarang jalankan web browser dan buka file HTML ini (misalnya applet.html) dan lihat hasilnya. Cara lain untuk melihat applet ini adalah dengan menggunakan program appletviewer yang merupakan program bawaan Java Development Kit.
3. Informasi lebih lanjut

Salah satu keuggulan Java adalah kemampuannya dijalankan pada web browser ini. Dalam hal ini web browser berfungsi sebagai Java Interpreter yang berfungsi menterjemahkan bytecode dan menampilkan hasilnya pada browser. Ini berarti kita akan mendapatkan tampilan halaman web yang animatif, dinamis, maupun interaktif, tergantung dari program Java yang dibuat. Tanpa Java, kita hanya akan mendapat tampilan dokumen HTML yang statis, tidak menarik dan tidak interaktif. Banyak contoh applet yang tersedia di internet yang telah siap digunakan untuk memperindah dan membuat halaman web anda lebih interaktif. Sebagian ada yang gratis dan ada pula yang harus anda beli. Silahkan kunjungi search engine dengan keyword java, class, atau java class. Site lain yang layak anda kunjungi adalah http://www.developer.com dan http://java.sun.com

Untuk mempelajari Java lebih detail, sekarang terdapat banyak literatur baik yang ada di internet maupun di buku. Salah satunya adalah “Java dan JavaScript” oleh Onno W. Purbo & Akhmad Daniel S, PT Elex Media Komputindo 1998.

kadandia.blogspot.com