Jumat, 15 April 2011

tugas 9S

tugas 9S
1. Komunikasi
Komunikasi merupakan Usaha mendorong orang lain menginterprestasikan pendapat seperti apa yang dikehendaki
oleh orang yang mempinyai pendapat tersebut.
2. Konflik
Konflik Adalah pertarungan menang dan kalah antara kelompok atau perorangan yang berbeda kepentingan satu sama lain
dalam organisasi, timbulnya konflik atau pertentangan ini diakibatkan komunikasi dan informasi dalam organisasi tidak
menemui sasarannya.
3. Komunikasi
merupakan suatu hubungan timbal balik (interaksi) antara seseorang dengan orang lain untuk mencapai kesamaan atau
kecocokan yang diharapkan
4. Konflik
Merupakan perbedaan yang tidak menemukan persamaan sampai akhir yang pada akhirnya menyebabkan salah satu atau
kedua pihak merasa sama sama benar, dan tidak mau kalah sehingga menyebabkan bentrokan diantaranya.
5. Efisiensi
Merupakan tindakan yang sebanding / tepat / pas yang dilakukan untuk mengerjakan sesuatu sehingga tidak membuang –'96
buang waktu, tenaga, pikiran, biaya, dll
6. Organisasi
Adalah perkumpulan manusia –'96 manusia yang bersama –'96 sama mempunyai bagian –'96 bagian tertentu seperti bagian
perencanaan yang matang, penyusunan , pengembangan, tindakan, pemeliharaan,dll untuk suatu tujuan yang mereka telah
tetapkan dalam jangka pendek maupun jangka panjang
7. Controlling
Merupakan kekuasaan untuk dapat mengendalikan tugas / pekerjaaan agar tugas atau pekerjaan tersebut tidak melenceng dari tujuan
yang telah di tetapkan.
8. Organisasi formal
Merupakan organisasi yang resmi dan di akui oleh pemerintah / banyak pihak dan mempunyai tujuan serta struktur organisasi yang jelas
yang jelas.
9. Demokratis
Adalah kebebasan berbicara, menyampaikan pendapat, dll kepada orang lain, atasan untuk membantu memberikan jalan keluar, atau hanya
sekededar memberikan saran yang terbaik untuk perusahaan / hal lain
10. Pimpinan
Adalah seseorang yang mempunyai bawahan dan dapat / bisa mengendalikan para bawahanya sesuai dengan tujuan yang diharapkan serta
dapat mempertanggung jawabakan semua tindakan bawahanya dan kesejahteraan bawahanya.
11. Skema organisasi
Mmerupakan sketsa / gambar untuk menjelaskan bagian –'96 bagian / sistem –'96 sistem / struktur –'96 struktur yang ada di dalam suatu orag
anisasi agar dapat di pahami lebih mudah.
12. Pengaruh
Merupakan suatu kegiatan / tindakan yang mengajak seseorang untuk melakukan apa yang kita mau tanpa orang tersebut mengetahui kita
sedang mempengaruhinya

tugas 8K



Kekuasaan Balas jasa
Kekuasaan Paksaan
Kekuasaan Sah
Kekuasaan Ahli
Kekuasaan Panutan


a. Kegiatan Intelijen
Menyangkut pencarian berbagai kondisi lingkungan yang diperlukan bagi keputusan.
b. Kegiatan Desain
Tahap ini menyangkut pembuatan pengembangan dan penganalisaan berbagai rangkaian kegiatan
yang mungkin dilakukan.
c. Kegiatan Pemilihan
Pemilihan serangkaian kegiatan tertentu dari alternative yang tersedia.

a. Identifikasi dan Diagnosa masalah
b. Pengumpulan dan Analisis data yang relevan
c. Pengembangan dan Evaluasi alternative alternative
d. Pemilihan Alternatif terbaik
e. Implementasi keputusan dan Evaluasi terhadap hasil-hasil
3. Menurut ELBING ada 5 langkah dalam proses pengambilan keputusan, Sebutkan!
4. Fisher mengemukakan ada 2 model pengambilan keputusan, sebutkan dan jelaskan!

a. Model Preskriptif
Pemberian resep perbaikan, model ini menerangkan bagaimana kelompok seharusnya mengambil keputusan
b. Model Deskriptif
Model ini menerangkan bagaimana kelompok mengambil keputusan tertentu
Model preskriptif berdasarkan pada proses yang ideal sedangkan model deskriptif berdasarkan pada realitas
observasi
5. Apa yang saudara ketahui tentang:

a. Brainstorming
Berusaha untuk menggali dan mendapatkan kreatifitas maksimum dari kelompok dengan memberikan kesempatan
para anggota untuk melontarkan ide-idenya.
b. Model Manusia Mobicentrik
Dikemukakan oleh Jennings, dimana perubahan merupakan nilai utama sehingga orang harus selalu bergerak bebas
mengambil keputusan
c. Model Sosial
Dikemukakan oleh Freud Veblen dimana menurutnya orang seringb tidak rasional dalam mengambil keputusan
diliputi perasaan emosi dan situsai dibawah sadar.
d. Synectics
Didasarkan pada asumsi bahwa proses kreatif dapat dijabarkan dan diajarkan, dimaksudkan untuk meningktakan
keluaran (output) kreatif individual dan kelompok

2. Menurut Herbert A. Simon, Proses pengambilan keputusan pada hakekatnya terdiri
atas 3 langkah utama, sebutkan dan jelaskan!

tugas 8K
1. French-Raven membagi 5 sumber basis kekuasaan, sebutkan:

Tipe Pemrograman

Tipe Pemrograman ada 7 macam, yaitu :

  1. Pemrograman Prosedural
Algoritma berisi urutan langkah-langkah penyelesaian masalah. Ini berarti algoritma adalah proses yang prosedural.

Definisi prosedural adalah :
a.       Tahap-tahap kegiatan untuk menyelesaikan suatu aktivitas
b.      Metode langkah demi langkah secara eksak dalam memecahkan suatu masalah.

Bahasa tingkat tinggi seperti Cobol, Basic, Pascal, Fortran dan C mendukung kegiatan pemrograman prosedural, karena itu mereka dinamakan juga bahasa prosedural.

  1. Pemrograman Terstruktur
Pemrograman terstruktur adalah bahasa pemrograman yang mendukung pembuatan program sebagai kumpulan prosedur. Prosedur-prosedur ini dapat saling memanggil dan dipanggil dari manapun dalam program dan dapat mengunakan parameter yang berbeda-beda untuk setiap pemanggilan. Bahasa pemrograman terstruktur adalah pemrograman yang mendukung abstraksi data, pengkodean terstruktur dan kontrol program terstruktur.
Contoh bahasa pemrograman terstruktur : Pascal, Cobol, RPG, ADA, C.

  1. Pemrograman Modular
Dalam pemrograman modular, program dipecah-pecah ke dalam modul-modul, dimana setiap modul menunjukkan fungsi dan tugas tunggal. Dengan membagi masalah ke dalam modul-modul, maka masalah akan menjadi sederhana sehingga program dapat lebih mudah disusun dan dipahami.
Pemrograman modular diterapkan dengan menggunakan sub-routine, yaitu sebuah kumpulan perintah yang melakukan tugas pemrosesan yang terbatas. Pemrograman ini banyak dimanfaatkan oleh Bahasa Pemrograman Berbasis Obyek.

  1. Pemrograman Fungsional
Disebut bahasa pemrograman fungsional karena memang pada program seluruh kodenya berupa fungsi-fungsi. Bahasa pemrograman fungsional merupakan salah satu bahasa pemrograman yang memperlakukan proses komputasi sebagai evaluasi fungsi-fungsi matematika.
Contoh : Lisp, Scheme, ML, Haskell.

  1. Pemrograman Berorientasi Obyek
Obyek : elemen yang memiliki fungsi, metode, karakteristik tertentu yang dapat dibedakan dalam dunia nyata.
Class : kumpulan obyek-obyek yang memiliki kesamaan karakteristik.
    • Merupakan bahasa pemrograman yang mampu memanfaatkan obyek-obyek yang tersedia atau membuat suatu obyek tertentu dengan menggunakan bahasa pemrograman.
    • Mampu merefleksikan kebutuhan-kebutuhan user sebagaimana layaknya yang ada di dunia nyata
    • Relatif lebih fleksibel dan mudah diadaptasikan terhadap perubahan suatu program
    • Memiliki feature yang memperkuat dan meningkatkan fleksibilitas suatu obyek dengan adanya class, instance, encapsulation, inheritance, reusability, dan polymorphism.
Contoh : C++, SmallTalks, Java.

  1. Pemrograman Visual
    • Penggunaan ekspresi visual (seperti grafik, gambar, atau ikon) dalam proses pemrograman
    • Mengacu pada aktivitas yang memungkinkan pengguna untuk membuat program dalam dua (atau lebih) dimensi
  2. Pemrograman Even-Driven
Menggunakan konsep “jika sebuah aksi/perintah dilakukan terhadap sebuah obyek, apa yang akan terjadi/dilakukan oleh obyek tersebut selanjutnya”.
Sangat fleksibel dalam pembuatan koding program, karena sudah mengunakan konsep OOP dimana pemrograman dapat dimulai dari obyek yang diinginkan tanpa harus terurut. Biasanya meruapakan jenis bahasa pemrograman visual.
            Contoh : Visual Basic, Visual C++, Delphi.

Sumber : http://www.google.com/

Pemrograman Imperatif


Pemrograman Imperatif



Pemrograman Imperatif adalah paradigma pemrograman yang mempunyai karakteristik berupa status dan instruksi/perintah untuk mengubah status program. Status diwakili oleh variabel sedangkan instruksi diwakili oleh statement.

Ciri-ciri pemrograman imperatif yaitu :

  1. adanya instruksi/command/perintah/kalimat-kalimat perintah
contoh : GOTO 10
  1. adanya status yang berubah
contoh : dengan adanya perintah GOTO 10 maka status program akan loncat mengerjakan statement yang ada di line number 10

Variabel dan Penugasan

Variabel adalah identifier/pengenal yang berisi data yang dapat berubah-ubah nilainya di dalam program.

Penugasan(Assignment) adalah suatu aksi yang menyebabkan peletakan atau pemberian suatu nilai di suatu lokasi atau variabel.
Contoh : A = 3 (statement penugasan pada bahasa BASIC)
                                    A := 3 (statement penugasan pada bahasa PASCAL)

Statement/Perintah Tidak Terstruktur

Statement/perintah tidak terstruktur merupakan statement yang berisi perintah untuk mengerjakan statement tertentu yang diidentifikasi dengan suatu label, baik menggunakan statement GOTO bersyarat maupun tanpa syarat.
Contoh : program yang mengandung perintah tidak terstruktur (bahasa BASIC)

10 LET A = 5
20 LET B = A + 1
30 GOTO 50
40 LET B = A * 2
50 PRINT B
60 END

Pemrograman Terstruktur

Pemrograman Terstruktur merupakan suatu teknik yang memecah masalah besar menjadi lebih kecil dan lebih mudah dipahami sehingga masalah yang besar dapat diselesaikan dengan baik.
Contoh : Pascal, Cobol, Bahasa C



Struktur Kontrol

Struktur kontrol/struktur kendali merupakan struktur yang mengendalikan statement/instruksi apa saja yang harus dikerjakan.
Ada tiga struktur kontrol pada pemrograman imperatif, yaitu :
  1. Komposisi sekuensial
  2. Seleksi
  3. Iterasi

1.                  Komposisi Sekuensial
Digunakan bilamana lebih dari sebuah statement yang harus dikerjakan secara berurutan yang dipisahkan dengan menggunakan simbol/tanda khusus tertentu, misalnya titik koma (;) dalam Pascal.
Contoh : Readln(N); Write(N);

2.                  Seleksi
Statement penyeleksian kondisi menunjukkan bahwa suatu statement akan dikerjakan bila suatu kondisi adalah bernilai benar.

3.                  Iterasi
Statement Iterasi(perulangan) digunakan untuk memproses statement-statement tertentu berulang kali.
Contoh : statement iterasi : While-Do, Repeat-until, For-Do (bahasa Pascal)

Subprogram, Prosedur dan Fungsi

Subprogram merupakan blok statement yang dapat dipanggil dari lokasi yang berbeda di dalam program.

Prosedur dan Fungsi adalah suatu program terpisah dalam blok sendiri yang berfungsi sebagai subprogram(program bagian).

Yang membedakan antara Fungsi dan Prosedur yaitu :
Ø      Fungsi harus dideklarasikan dengan tipenya
Ø      Suatu fungsi jika dijalankan/dipanggil akan mengembalikan suatu nilai

Penanganan Eksepsi (Exception Handling)

Eksepsi adalah suatu konstruksi suatu bahasa khusus untuk menangani keadaan yang tidak terduga(biasanya adalah error); status keadaan error

Selama program berjalan, dapat terjadi sesuatu hal yang menyebabkan error. Misalnya, array diberi nilai indeks yang melebihi nilai indeks yang sudah dideklarasikan, atau suatu operasi aritmatika yang membagi suatu bilangan dengan nol. Hal ini dapat mengakibatkan program berhenti tidak seperti yang diinginkan dan biasanya menampilkan pesan kesalahan yang tidak jelas.

Bahasa pemrograman harus menyediakan fasilitas untuk mendefinsikan eksepsi, mengenali kemunculan eksepsi dan menentukan kode-kode apa yang harus dieksekusi ketika eksepsi muncul.

Penentuan atas kode-kode apa yang harus dieksekusi disebut Penanganan Eksepsi (Exception Handling).

Contoh Penggunaan Eksepsi dalam bahasa C++

#include<iostream>
using namespace std;
int main ()
{
try {
cout <<”Masukkan Angka:”;
int num;cin>>num;
if (num>10) throw std :: exception ();
cout<<”Angka Kurang dari atau sama dengan 10”<<
endl;
}catch (std::exception&S){
cout<”Angka lebih dari 10”<<endl;
}
return 0;
}


Sumber : http://www.google.com/

Abstraksi dan Generalisasi


Abstraksi dan Generalisasi


Abstraksi

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 pengidentifikasian 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
Komponen mengimplementasikan satu fungsi, misalnya fungsi matematika. Pada intinya interface merupakan fungsi itu sendiri.

·         Pengelompokkan Kasual
Komponen merupakan sekumpulan entitas yang berhubungan longgar (loosely related) yang mungkin berupa deklarasi data, fungsi, dsb. Interface terdiri dari nama semua entitas pada pengelompokan tersebut.

·         Abstraksi Data
Komponen merepresentasikan abstraksi data atau kelas perangkat lunak bahasa berorientasi obyek. Interface terdiri dari operasi untuk membuat, memodifikasi dan mengakses abstraksi data.

·         Abstraksi Cluster
Komponen merupakan sekumpulan kelas yang berhubungan yang bekerja sama. Kelas-kelas ini kadang-kadang dinamakan kerangka kerja. Interface merupakan komposisi semua interface dari obyek-obyek yang membangun kerangka kerja tersebut.

·         Abstraksi System
Komponen merupakan system yang sepenuhnya berdiri sendiri. Pemakaian ulang abstraksi tingkat system kadangkala disebut pemakaian ulang produk cost. Interface adalah apa yang disebut API (Aplication Programming Interface) yang didefinisikan untuk memungkinkan program mengakses command dan operasi.


Generalisasi

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

Binding

·         Attribute : nilai internal atau data terkait pada suatu obyek yang menunjukkan ciri-ciri atau sifat-sifat dari obyek serta penggambaran keadaan (state) obyek
Contoh :
      Nama obyek : mobil
      Attribute :
      Merek : Toyota
      Silinder : 2000 cc
      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 semantik bahasa pemrograman.

Bahasa pemrograman berbeda satu dengan yang lainnya karena :
  1. perbedaan jumlah entitas yang dapat ditangani
  2. jumlah attribute yang dapat ditempelkan ke entitas yang dapat ditangani
  3. waktu kemunculan binding (binding time)
  4. stabilitas binding (binding yang sudah terbentuk bersifat tetap atau dapat dimodifikasi)

Jenis Binding

Ada dua tipe / jenis binding bila dilihat dari kontrol yang digunakan untuk binding data, yaitu :
  1. Simple Binding
  2. Complex Binding

Jika dilihat dari sisi waktu pengikatan data (binding) dapat dibedakan lagi ke dalam dua jenis, yaitu :

  1. Early Binding
  2. Late Binding

Contoh Binding

  • Language definition time binding
Dalam banyak bahasa pemrograman (Fortran, ADA, C++), tipe “integer” di-binding-kan pada waktu pendeteksian bahasa untuk operasi matematika yang sudah umum, misalnya untuk operasi aljabar yang menghasilkan dan memanipulasi “integer”.

  • Language implementation time binding
Dalam banyak bahasa pemrograman (Fortran, ADA, C++) suatu kumpulan nilai di-binding ke tipe integer pada waktu implementasi bahasa. Pada saat pendefinisian bahasa, tipe integer harus didukung dan implementasi bahasa mem-binding-kan ke representasi memori, yang kemudian menentukan sekumpulan nilai yang akan diisikan ke dalam tipe tersebut.

  • Compile-time (Translation-time) binding
Pascal mempunyai fasilitas definisi predefine dari tipe “integer”, tetapi mengizinkan programmer untuk mendefinisikan ulang tipe ini. Dengan demikian, tipe “integer” di-binding-kan sebagai gambaran pada waktu impementasi bahasa, tetapi binding ini dapat dimodifikasi pada saat translation time.

  • Execution-time (Run-time) binding
Pada banyak bahasa pemrograman, variabel di-binding-kan ke suatu nilai pada saat execution time, dan binding dapat dimodifikasi berulang-ulang selama eksekusi.

Enkapsulasi

  • Pengkapsulan berarti mengemas beberapa item bersama-sama menjadi satu unit yang tertutup dalam rangka menyembunyikan struktur internal suatu obyek dari lingkungan/dunia luar
  • Pengkapsulan 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 (method), tidak perlu paham tentang internalnya(implementation)
  • Pengkapsulan merupakan kemampuan sebuah obyek kelas untuk membatasi akses client ke representasi internal obyek (data dan fungsi)

Prinsip Generalisasi

Prinsip generalisasi adalah suatu bentuk umum dari suatu kesatuan yang khusus.
Contoh :
                        Lamda p.B’
            Dimana lambda 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 bersam-sama. Abstrak digeneralisasi dengan parameterisasi untuk mendapatkan manfaat yang lebih besar. Di dalam parameterisasi atau lebih bagian dari satu kesatuan dapat digantikan dengan suatu nama baru.

Nama yang digunakan sebagai suatu paramenter ketika abstrak yang telah diparamenterkan dilibatkan dengan suatu binding parameter disebt argumentasi.
Prinsip Analogi

Prinsip analogi ada ketika suatu penyelesaian pada pola diantara 2 obyek yang berbeda. Dimana obyek dapat digantikan dengan obyek tunggal yang parameterized untuk melakukan rekonstruksi yang menyangkut obyek 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 Korespondensi

Prinsip korespondensi adalah suatu formalitas yang menyangkut aspek/pengarahan prinsip abstrak yang mengandung substitusi dan definisi yang saling terkait.

Struktur Block

  • Block merupakan suatu bagian dari scope-defining bahasa pemrograman. Artinya, Block merupakan suatu definisi wilayah bagian bahasa pemrograman
  • Block merupakan urutan dari statement yang executable yang diperlakukan sebagai suatu unit

Block disebut subprogram atau routine dikebanyakan bahasa pemrograman.

Struktur Block dari suatu bahasa pemrograman :

Program main;
--deklarasi lokal Main;
Procedure Subpro1;
---deklarasi lokal Subpro1;
             Procedure Subpro3;
             ---deklarasi lokal Subpro3;
Procedure Subpro4;
---deklarasi lokal Subpro4;
Begin
--Statement untuk Subprog1;
End Subprog1;
Procedure Subprog2;
--Deklarasi lokal Subprog2;
Begin
--statemen untuk Subpro2;
End Subprog2;
Begin
--statemen untuk main;
End main


Aturan Cakupan :

  1. 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)
  1. Static Scope
Subprogram dipanggil dari lingkungan tempat subprogram tersebut didefinisikan

Lingkungan

Lingkungan lokal suatu subprogram Q terdiri atas bermacam-macam identifier yang dideklarasikan di bagian atas dari subprogram Q.

Nama, variabel, nama parameter formal, dan nama subprogram diperhatikan disini. Nama subprogram disini merupakan nama subprogram yang didefinisikan secara lokal di dalam subprogram Q (nested subprogram).



Sumber : http://www.google.com/

Value, Domain dan Type

Value, Domain dan Type



Value

Suatu nilai (value) adalah hal apapun yang mungkin dapat dievaluasi, disimpan dalam suatu struktur data, dikirimkan sebagai suatu argumentasi atau dikembalikan lagi sebagai hasil.

Suatu perhitungan adalah suatu urutan operasi yang diberlakukan untuk suatu nilai untuk menghasilkan suatu nilai. Dengan demikian nilai-nilai dan operasi adalah dasar perhitungan.

Dalam matematika, kumpulan dari argumen-argumen dan hasil-hasil dari fungsi dikenal dengan domain dan co-domain. Domain akan ditandai sebagai kumpulan dari nilai-nilai yang dikirimkan sebagai argumen-argumen atau dikembalikan sebagai hasil.

Nilai-nilai kebenaran, karakter, integer, real, file, pointers, record, set, prosedur dan abstrak fungsi, lingkungan, perintah dan definisi tidak lain bagian dari bahasa pemrograman.

Dua kategori domain, yaitu :

  1. Primitive Domain
Sifatnya atomic
  1. Compound Domain
Kumpulan dari nilai-nilai yang dibangun dari domain-domain pembangun satu atau domain pembangun yang lain.

Suatu domain adalah satu kumpulan elemen-elemen dan digabungkan dengan sekumpulan operasi.

Domain

Elemen-elemen Teori Domain

Ada beberapa compound domain yang digunakan dalam computer sign, yaitu: array, tupple, record, union, set, list, tree, file, relation, definition dan mapping.

Compound domain dibangun oleh suatu domain pembangun. Suatu domain pembangun adalah :

  1. Product domain
  2. Sum domain
  3. Function domain
  4. Power domain
  5. Recursive domain


Product Domain

Domain-domain yang dibangun oleh pembangun product domain disebut tuples dalam ML, record dalam Cobol, Pascal dan ADA, struktur dalam C dan C++. Bentuk product domain adalah dasar dari database relational dan pemrograman logic.

Pada kasus biner, product domain pembangun, x, membangun domain A x B dari domain A dan B.

Jika a adalah elemen dari A dan b adalah suatu elemen dari B maka (a,b) adalah suatu elemen dari A x B.
                        A X B = {(a,b)| a in A, b in B}

Product Domain : D0 x … x Dn
Assembly operation: (a0,…,an) in D0 x…x Dn where ai in Di and
D0 x…x Dn = {(a0,…an) | ai in Di}
Disassembly operation: (a0,…,an) | i = ai for 0 <= i <= n

Domain produk disebut “Cartesian” atau “Cross” produk. Dalam Pascal disebut record, sedangkan dalam C disebut suatu struktur.

Sum Domain

Domain-domain yang dibangun oleh pembangun sum domain disebut varian record dalam Pascal dan ADA, Unions dalam Algol-68, Constructor dalam ML.

Dalam kasus biner, sum domain pembangun,+, membangun domain A + B dari domain A dan B.

Jika a adalah elemen dari A dan b adalah elemen dari B maka (A,a) dan (B,b) adalah unsur-unsur A + B

                        A + B = {(A,a) | a in A} union {(B,b) | b in B}

Dimana A dan B disebut tags dan digunakan untuk membedakan pendukung elemen A dan pendukung elemen B.

Sum domain disebut juga disjoint union atau co-product domain. Didalam Pascal disebut record varian dan dalam C disebut suatu struktur.

Sum domain : D0 +…+ Dn
Assembly operations: (Di, di) in D0 +…+ Dn and D0 +…+ Dn = unioni = 0 n {(Di,d) | d in Di}
Disassembly operations: Di(Di,di) = di

Function Domain

Domain-domain yang dibangun oleh pembangun function domain disebut fungsi di dalam Haskell, prosedur di dalam Modula-3 dan proses dalam SR.

Pembangun function domain membentuk domain A à B dari domain A dan B. domain A à B terdiri dari semua fungsi A ke B. A disebut domain dan B disebut co-domain.

(lamda x.e) adalah suatu elemen di A à B dimana e adalah suatu ungkapan yang berisi kejadian dari suatu identifier x, dimana a adalah nilai A merubah kejadian x di dalam e, nilai e[a:x] menghasilkan B.

Function Domain : A à B
Assembly operation: (lamda x.E) in A à B where for all a in A, E[x:a] is a unique value in B
Disassembly operation: (g a) in B, for g in A à b and a in A

Power Domain

Teori set yang menyediakan suatu notasi untuk uraian perhitungan. setL adalah suatu bahasa pemrograman yang didasarkan pada kumpulan (set) dan digunakan untuk menyediakan compiler ADA. Pascal menyediakan operasi set union dan intersection.

Kumpulan dari semua subset dari set adalah power set digambarkan sebagai berikut:

                        PS = { s | s is a subset of S}
Subtypes dan subranges adalah contoh dari pembangun power set.

Beberapa bahasa menyediakan mekanisme untuk dekomposisi suatu jenis ke dalam subtypes. Enumerasi adalah elemen dari subtype yang lainnya adalah subranges.

Power domain membangun suatu domain dari elemen-elemen set. Untuk domain A, pembangun power domain P() menciptakan domain P(A), suatu kumpulan yang anggotanya adalah subset dari A.

Power Domain : PD
Assembly operations: ø in PD, {a} in PD for a in D, and Si union Sj in PD for Si, Sj in PD

Recursively Defined Domain

Recursively defined domain adalah domain yang didefinisikan dari bentuk
                        D : … D …
Definisi disebut Recursively sebab nama domain “recurs” pada sisi kanan dari definisi. Recursively defined domain tergantung pada abstrak karena nama domain adalah suatu bagian penting dari definisi domain.

Lebih dari satu set boleh mencukupi suatu recursively defined. Bagaimanapun, mungkin saja ditunjukkan bahwa suatu recursively defined selalu mempunyai solusi terkecil. Solusi terkecil adalah suatu subset solusi yang lain.

Limit Construction
D0 = null
Di+1 = e[D:Di] for i = 0,…
D = limi à infty Di


Type System

Prosentase besar kesalahan di dalam program adalah dalam kaitan dengan operasi ke object jenis yang bertentangan. Type system telah dikembangkan untuk membantu programmer dalam pendeteksian kesalahan.

Suatu type system adalah satu set aturan untuk mendefinisikan jenis dan menghubungkan suatu type dengan ekspresi dalam bahasa. Suatu type system menolak suatu ekspresi jika tidak menghubungkan suatu type dengan ekspresi. Type checking boleh berjalan pada waktu kompilasi atau waktu berjalan atau kedua-duanya.

Jika kesalahan diharapkan untuk dideteksi pada waktu kompilasi maka suatu static type checking system diperlukan. Satu pendekatan ke static type checking memerlukan programmer untuk menetapkan type masing-masing obyek di dalam program.

Ini mengizinkan compiler untuk melaksanakan type checking sebelum pelaksanaan program dan ini adalah pendekatan yang diambil oleh bahasa seperti Pascal, ADA, C++ dan Java.

Jika pendeteksian kesalahan diharapkan untuk ditunda sampai waktu pelaksanaan, maka dinamic type checking diperlukan.

Di dalam dinamic type checking, masing-masing nilai data berlabel dengan type informasi sehingga lingkungan waktu berjalan dapat memeriksa kecocokan type dan mungkin melaksanakan konversi type jika diperlukan. Bahasa program Lisp, Scheme dan Small-Talk adalah contoh dari bahasa dynamic type.

Type Checking

Suatu bahasa disebut :

·         Untyped jika tidak ada type abstrak yang berlaku
·         Strong type jika menyelenggarakan type abstrak (operasi mungkin diterapkan hanya untuk type object yang sesuai)
·         Type static jika type ekspresi masing-masing dapat ditentukan dari teks program
·         Type dynamic jika penentuan type beberapa ekspresi tergantung pada perilaku waktu berjalan program.
  
Keuntungan dari bahasa Untyped adalah fleksibilitas mereka. Programmer mempunyai kendali penuh atas bagaimana suatu nilai data digunakan tetapi harus mengasumsikan tanggung jawab penuh untuk mendeteksi aplikasi operasi ke type object yang tidak cocok/bertentangan.

Strong type membantu untuk memastikan portabilitas dan keamanan kode dan sering memerlukan programmer dengan tegas menggambarkan type masing-masing object di dalam suatu program. Ini penting juga dalam kumpulan untuk pemilihan operasi yang sesuai dan untuk optimisasi.

Static Type secara luas dikenal sebagai kebutuhan untuk produksi software yang dapat dipercaya dan aman. Type static dipilih ketika efisiensi di dalam waktu pelaksanaan adalah penting dan kompilator pendukung digunakan untuk mendukung rancang bangun software berjalan.

Dynamic type checking menyiratkan bahwa type dicek pada waktu pelaksanaan dan bahwa tiap-tiap nilai berlabel untuk mengidentifikasi typenya dalam rangka membuat type checking mungkin. Hukuman untuk dynamic type checking adalah biaya waktu dan ruang tambahan.

Type Equivalence (Kesamaan Jenis)

Dua type tak dikenal (satuan object) adalah sama jika mereka berisi elemen-elemen yang sama. Yang sama tidak bisa dikatakan type nama mereka yang dulu, maka tidak diperlukan untuk memisah type union. Kapan type dinamai, ada dua pendekatan utama untuk menentukan apakah dua type sama.

Name Equivalence (kesamaan nama)

Di dalam name equivalence dua type adalah sama jika mereka mempunyai nama yang sama. Type diberi nama berbeda diperlakukan berbeda dan tidak bisa secara kebetulan dicampur hanya karena struktur mereka secara kebetulan adalah sama. Name equivalence perlu definisi type untuk global.

Structural Equivalence (kesamaan struktural)

Di dalam structural equivalence, nama type diabaikan dan elemen-elemen type dibandingkan untuk persamaan. Adalah mungkin bahwa dua type logic yang berbeda boleh menjadi kebetulan yang sama dan dapat dicampur.

Definisi type tidak diperlukan untuk menjadi global. Structural equivalence adalah penting di dalam distribusi pemrograman, dimana program terpisah harus mengkomunikasikan type data.

Definisi N.1:

Dua type T, T’ adalah name equivalence iff T dan T’ adalah nama yang sama.

Dua type T, T’ adalah structural equivalence iff T dan T’ memiliki satuan nilai yang sama.

Tiga aturan berikut yang digunakan untuk menentukan jika dua type adalah structural equivalence :

  1. suatu nama type sama secara struktur dengan dirinya sendiri
  2. dua type yang sama secara struktur jika mereka dibentuk dengan menerapkan type pembangun yang sama (secara berulang) ke type structural equivalence.
  3. Setelah suatu deklarasi type, type n = T, nama type n secara structural setara dengan T.



Type Inference (jenis kesimpulan)

Type inference adalah masalah yang umum dalam menjelmakan untyped atau sintaksis type parsial ke dalam terminologi yang baik.

Deklarasi tetap Pascal adalah suatu contoh type inference, typa nama adalah kesimpulan dari type yang tetap. Dalam Pascal untuk pengulangan type index pengulangan dapat ditarik kesimpulan dari type recursively defined dan dengan begitu indeks pengulangan harus suatu variabel lokal dari pengulangan.

Bahasa pemrograman Miranda dan Haskell adalah type static dan menyediakan strong type inference system sehingga seorang programmer tidak perlu mendeklarasikan type apapun. Bahasa juga mengizinkan para programmer untuk menyediakan spesifikasi type eksplisit.

Suatu type checking harus mampu :

  1. menentukan jika suatu program adalah type yang baik dan
  2. jika program adalah type yang baik, tentukan type ekspresi manapun di dalam program

Type Declaration (jenis deklarasi)

Bahkan bahasa yang menyediakan suatu type inference system mengizinkan para programmer untuk membuat deklarasi type eksplisit. Sekalipun compiler dapat dengan tepat menyimpulkan type, pembaca manusia mungkin harus meneliti beberapa halaman kode untuk menentukan type suatu fungsi.

Kesalahan kecil oleh programmer dapat menyebabkan compiler mengeluarkan pemberitahuan kesalahan atau untuk menyimpulkan suatu type yang berbeda dibanding yang diharapkan. Karena pertimbangan ini adalah praktek pemrograman yang baik dengan tegas menyatakan type atas semua kecuali kasus yang paling nyata.

Polymorphism

Suatu type system adalah monomorphic jika masing-masing konstanta, variabel, parameter, dan hasil fungsi mempunyai suatu type unik. Type checking suatu system monomorphic adalah type secara langsung. Tetapi system type monomorphic semata-mata tidak memuaskan untuk penulisan software yang bisa dipakai kembali.

System yang sepenuhnya monomorphic jarang. Kebanyakan bahasa pemrograman berisi beberapa operator atau prosedur yang mengizinkan argumentasi lebih dari satu type.

Definisi N.2 :

Monomorphism : tiap-tiap konstanta, variabel, parameter, fungsi dan operator mempunyai suatu type unik.

Pemuatan lebih mengacu pada penggunaan dari sintaksis pengenal tunggal untuk mengacu pada beberapa operasi berbeda yang dibedakan oleh type dan jumlah argumentasi pada operasi.

Polymorphism : suatu operator, fungsi atau prosedur yang mempunyai suatu keluarga type yang terkait dan berorientasi secara seragam atas argumentasinya dengan mengabaikan type.

Suatu operasi polymorphic adalah yang dapat berlaku untuk type yang berbeda tetapi berhubungan dengan argumentasi.

Suatu type system adalah polymorphic jika abstrak beroperasi secara seragam pada argumentasi suatu keluarga type terkait.

Polymorphism type ini kadang-kadang disebut parametric polymorphism.

Type Completeness (jenis kelengkapan)

Prinsip type ini, tidak ada operasi yang dapat berlaku semaunya, terbatas yang berhubungan dengan nilai type.
Sumber : http://www.google.com/