Saturday, September 24, 2011

Data & Model Komputasi & Prinsip Bahasa Pemrograman

Tipe Data Pemrograman

Data adalah catatan atas kumpulan fakta. Data berasal dari bahasa Latin datum yang berarti "sesuatu yang diberikan". Dalam penggunaanya sehari-hari data memiliki arti suatu pernyataan yang diterima secara apa adanya. Pernyataan ini adalah hasil pengukuran atau pengamatan suatu variabel yang bentuknya dapat berupa angka, kata-kata, atau citra.

Data dalam pemrograman : bahan mentah yang akan diolah menjadi informasi sehingga dapat digunakan oleh user atau pemakai.

Objek data adalah pengelompokan satu atau lebih potongan data di dalam virtual komputer pada saat run-time. Objek data menggambarkan suatu container untuk nilai data, suatu tempat dimana nilai-nilai data disimpan dan dipanggil kembali. Objek data dikarakteristikan oleh suatu kumpulan attribute. Attribute menentukan jumlah dan tipe nilai objek data. Perbedaan antara objek data dan nilai data adalah objek data selalu dipresentasikan sebagai penyimpanan di memori komputer, sedangkan nilai data dipresentasikan sebagai pola dari bit.


Apa itu tipe data?
Tipe data adalah suatu kelas objek data dengan kumpulan operasi untuk membentuk dan memanipulasinya.

Syarat-syarat elemen dasar dalam suatu tipe data:
1. Attribute
    Membedakan objek-objek data dari tipenya.
2. Nilai
    Dimiliki oleh objek data dari tipe tersebut.
3. Operasi
    Mendefinisikan manipulasi-manipulasi yang dimungkinkan oleh objek data tipe tersebut.

Tipe data yang biasa digunakan adalah :

1. Tipe Data Dasar, merupakan tipe data primitif yang tidak terstruktur yang didefinisikan oleh bahasa pemrograman.
Tipe data dasar dapat dibagi menjadi lima bagian, yaitu :
a.  Tipe Data Numerik : setiap bahasa pemrograman dapat dipastikan ada tipe data numerik yaitu untuk menyimpan data berupa angka. Yang paling umum adalah integer dan real karena didukung secara langsung oleh hardware komputer.
·Real : merupakan bilangan desimal atau mantissa, biasa disebut juga Floating-point real.
·Integer : tidak mempunyai attribute yang lain selain dirinya sendiri, merupakan bilangan bulat positif dan negatif
·Subrange : merupakan sebuah subtype dari tipe data integer dan terdiri dari urutan nilai-nilai integer dalam range yang terbatas, contohnya adalah integer dalam range 1 sampai 10.
·Fixed-point real : bilangan ini direpresentasikan dengan urutan digit yang mempunyai panjang tetap dengan titik desimal diposisikan di tempat yang diberikan antara dua digit.

b.  Enumerasi : adalah suatu urutan list dari nilai-nilai yang berbeda, digunakan ketika suatu variabel hanya membutuhkan nilai-nilai tertentu dan terbatas.

c.  Boolean : tipe data untuk merepresentasikan True atau False (biasa digunakan dalam penyeleksian kondisi).

d.  Character : berupa sebuah karakter yang ditulis diantara tanda petik tunggal atau ganda ( ‘ atau “ ) tergantung dari bahasa pemrograman yang digunakan.

e.  String : urutan-urutan dari karakter yang terletak diantara tanda petik tunggal atau ganda ( ‘ atau “ ) tergantung dari bahasa pemrograman yang digunakan.

f.  Internationalization : disebut I18N, berkembang karena kurang mencukupinya pengunaan character ASCII yang 8-bit.

2. Tipe Data Penunjuk : contoh tipe data penunjuk adalah pointer.

3. Tipe Data yang didefinisikan oleh pemakai : tipe data ini biasa disebut Enumerasi.

4. Tipe Data Terstruktur : merupakan tipe data campuran dari berbagai tipe data dasar, contohnya : array (struktur data yang tersusun dari komponen-komponen bertipe sama dengan jumlah tetap dan terbatas sebagai suatu urutan linier yang sederhana), record (struktur data yang tersusun dari komponen-komponen berbeda tipe dengan jumlah tetap dan terbatas sebagai suatu urutan linier yang sederhana), string(objek data yang tersusun atas urutan character), list (struktur data mirip dengan vector dan tersusun atas urutan yang terurut dari suatu struktur data) dan file.
5. Tipe Data Abstrak : fasilitas dari bahasa pemrograman yang menanmpung aspirasi para programmer supaya dapat mempunyai tipe data yang didefinisikan sendiri.

Beberapa jenis tipe data dan deskripsinya(range variabel) :

Byte           angka dari 0 sampai 255
Integer       angka dari -32768 to 32767
Real           semua nilai pecahan dari 1E-38 to 1E+38
Boolean     nilai TRUE atau FALSE
Char          semua karakter dari tabel ASCII
String         semua huruf, spasi, frase

Model Komputasi

Ada tiga model dasar komputasional-- fungsional, logika, dan imperatif. Sebagai tambahan terhadap satuan nilai-nilai dan operasi yang berhubungan, masing-masing model komputasional mempunyai satu set operasi yang digunakan untuk menggambarkan komputasi.

a. Model Fungsional : terdiri dari satu set nilai-nilai, fungsi-fungsi dan operasi aplikasi fungsi dan komposisi fungsi. Fungsi dapat mengambil fungsi lain sebagai argumentasi dan mengembalikan fungsi sebagai hasil (higher-order function). Suatu program adalah koleksi definisi fungsi-fungsi dan suatu komputasi adalah aplikasi fungsi.

b. Model Logika : terdiri dari satu set nilai-nilai, definisi hubungan dan kesimpulan logis. Program terdiri dari definisi hubungan dan suatu komputasi adalah suatu bukti(suatu urutan kesimpulan).

c. Model Imperatif : terdiri dari satu set nilai-nilai yang mencakup suatu keadaan dan operasi tugas untuk memodifikasi pernyataan. Pernyataan adalah set pasangan nilai-nama dari konstanta dan variabel. Program terdiri dari urutan tugas dan suatu komputasi terdiri dari urutan pernyataan.

Pembagian Model komputasi ada 3 yaitu :

1. Mesin Mealy

Dalam teori komputasi sebagai konsep dasar sebuah komputer, mesin Mealy adalah otomasi fasa berhingga (finite state automaton atau finite state tranducer) yang menghasilkan keluaran berdasarkan fasa saat itu dan bagian masukan/input. Dalam hal ini, diagram fasa (state diagram) dari mesin Mealy memiliki sinyal masukan dan sinyal keluaran untuk tiap transisi. Prinsip ini berbeda dengan mesin Moore yang hanya menghasilkan keluaran/output pada tiap fasa.

Nama Mealy diambil dari “G. H. Mealy” seorang perintis mesin-fasa (state-machine) yang menulis karangan “A Method for Synthesizing Sequential Circuits” pada tahun 1955.

  


2. Mesin Moore

Dalam teori komputasi sebagai prinsip dasar komputer, mesin Moore adalah otomasi fasa berhingga (finite state automaton) di mana keluarannya ditentukan hanya oleh fasa saat itu (dan tidak terpengaruh oleh bagian masukan/input). Diagram fasa (state diagram) dari mesin Moore memiliki sinyal keluaran untuk masing-masing fasa. Hal ini berbeda dengan mesin Mealy yang mempunyai keluaran untuk tiap transisi.

Nama Moore diambil dari “Edward F. Moore” seorang ilmuwan komputer dan perintis mesin-fasa (state-machine) yang menulis karangan “Gedanken-experiments on Sequential
Machines”. 
3. Petri Net

Petri net adalah salah satu model untuk merepresentasikan sistem terdistribusi diskret. Sebagai sebuah model, Petri net merupakan grafik 2 arah yang terdiri dari place, transition, dan tanda panah yang menghubungkan keduanya. Di samping itu, untuk merepresentasikan keadaan sistem, token diletakkan pada place tertentu. Ketika sebuah transition terpantik, token akan bertransisi sesuai tanda panah.

Petri net pertama kali diajukkan oleh Carl Adam Petri pada tahun 1962.

Prinsip Desain Bahasa pemrograman

Suatu bahasa program harus dirancang untuk memudahkan agar dapat dibaca dan ditulis untuk para user dan pelaksanaan yang efisien pada perangkat keras yang tersedia.

Keadaan dapat dibaca dan ditulis dimudahkan oleh prinsip-prinsip sebagai berikut:
  
Prinsip Keteraturan
Satu set object disebut reguler berkenaan dengan kondisi beberapa jika, dan hanya jika, kondisi dapat digunakan untuk masing-masing unsur set.

Prinsip Kesederhanaan
Bahasa harus didasarkan atas yang paling sedikit (sederhana).
Prinsip Orthogonal
Fungsi mandiri harus dikendalikan oleh mekanisme mandiri.
 
Prinsip Sifat Ekstensibilitas(dapat diperpanjang)
Object baru dari tiap kelas sintaktis mungkin dibangun (digambarkan) dari dasar dan digambarkan membangun dengan suatu cara sistematis. 

Prinsip Kelengkapan Komputasional
Model komputasional untuk tujuan umum suatu bahasa pemrograman harus universal.

Prinsip Memprogram
harus ditulis dalam suatu bahasa yang mencerminkan daerah masalah.
 
Prinsip Implementasi
Implementasi harus efisien dalam penggunaan waktu dan ruangnya.
Prinsip keteraturan dan ekstensibilitas memerlukan konsep dasar bahasa harus diterapkan secara konsisten dan yang bersifat universal.
Sementara empat prinsip dasar perancangan bahasa pemrograman adalah:

   1. Sintaks, menjelaskan bagaimana struktur program yang benar.
   2. Tipe sistem dan semantik, menunjukkan tipe nilai yang dapat dimanipulasi oleh program dan arti(semantik) dari program, mencakup juga aturan penamaan entitas (variabel,fungsi,class,parameter,dll).
   3. Manajemen memori, menunjuk kepada sekumpulan teknik yang membantu kita untuk memahami pemetaan letak dari nilai, struktur data, dan struktur program di dalam memori.
   4. Exception handling, mengenai penanganan exception (hal-hal yang tak terduga yang terjadi ketika kita menjalankan sebuah program seperti kesalahan input yang tak terduga) .
Tujuan umum bahasa pemrograman untuk berpegang pada prinsip desain bahasa pemrograman:


No comments:

Post a Comment