Sabtu, 28 Desember 2013

Tipe Data Primitif


Sebuah tipe dasar adalah tipe data yang disediakan oleh bahasa pemrograman sebagai sebuah blok bangunan dasar. Kebanyakan bahasa memungkinkan lebih rumit jenis komposit yang akan secara rekursif dibangun mulai dari tipe dasar. jenis built-in adalah tipe data yang bahasa pemrograman menyediakan dukungan built-in.

Dalam kebanyakan bahasa pemrograman, semua tipe data dasar yang built-in. Selain itu, banyak bahasa juga menyediakan satu set tipe data komposit. Pendapat bervariasi apakah built-in tipe yang tidak mendasar harus dipertimbangkan "primitif".


Tergantung pada bahasa dan pelaksanaannya, tipe data primitif mungkin atau mungkin tidak memiliki korespondensi satu-ke-satu dengan benda-benda di memori komputer. Namun, salah satu biasanya mengharapkan operasi pada tipe data primitif dasar untuk menjadi bahasa tercepat konstruksi ada. Selain Integer, misalnya, dapat dilakukan sebagai instruksi mesin tunggal, dan beberapa prosesor menawarkan petunjuk khusus untuk memproses rangkaian karakter dengan sebuah instruksi. Secara khusus, C standar menyebutkan bahwa "objek int 'polos' memiliki ukuran alami disarankan oleh arsitektur lingkungan eksekusi". Ini berarti bahwa int kemungkinan menjadi 32 bit panjang pada arsitektur 32-bit. Tipe primitif dasar hampir selalu jenis nilai .

Kebanyakan bahasa tidak mengizinkan perilaku atau kemampuan primitif (baik built-in atau dasar) jenis data yang akan dimodifikasi oleh program. Pengecualian termasuk Smalltalk , yang memungkinkan semua jenis data yang akan diperpanjang dalam sebuah program, menambah operasi yang dapat dilakukan pada mereka atau bahkan mendefinisikan operasi built-in.

Sekilas
Kisaran sebenarnya tipe data primitif yang tersedia tergantung pada bahasa pemrograman tertentu yang sedang digunakan. Misalnya, di C , string adalah komposit tapi built-in tipe data, sedangkan pada dialek modern BASIC dan JavaScript , mereka berasimilasi ke tipe data primitif yang bersifat dasar dan built-in.
Tipe primitif dasar klasik mungkin termasuk:
- Character ( character , char );
- Integer ( integer , int , short , long , byte ) dengan berbagai presisi ;
- Angka floating-point ( float , double , real , double precision );
- Nomor fixed-point ( fixed ) dengan berbagai presisi dan programmer yang dipilih skala .
- Boolean , nilai-nilai logis benar dan salah.
- Referensi (juga disebut pointer atau pegangan), nilai kecil mengacu ke alamat obyek lain dalam memori, mungkin jauh lebih besar.

Jenis yang lebih canggih yang dapat built-in meliputi:
- Tupel di ML , Python
- Daftar link di Lisp
- Bilangan kompleks di Fortran , C (C99) , Lisp , Python , Perl 6 , D
- Bilangan rasional di Lisp , Perl 6
- Tabel hash dalam berbagai samaran, di Lisp , Perl , Python , Lua , D
- Fungsi kelas pertama , penutupan , kelanjutan dalam bahasa yang mendukung pemrograman fungsional seperti Lisp , ML , Perl 6 , D dan C # 3.0

Nomor fixed-point
A fixed-point nomor mewakili terbatas presisi bilangan rasional yang mungkin memiliki bagian pecahan. Angka-angka ini disimpan secara internal dalam bentuk skala-integer, biasanya dalam biner tapi kadang-kadang dalam desimal . Karena nomor fixed-point memiliki presisi yang terbatas, hanya subset dari nyata atau rasional angka yang persis representable, nomor lain dapat diwakili hanya sekitar. Nomor fixed-point juga cenderung memiliki rentang yang lebih terbatas daripada nilai-nilai floating point , sehingga programmer harus berhati-hati untuk menghindari tumpah dalam perhitungan menengah serta hasil akhir.

Karakter dan string
Sebuah karakter jenis (biasanya disebut "char") mungkin berisi satu huruf , angka , tanda baca , simbol , kode format , kode kontrol , atau beberapa kode lain khusus (misalnya, sebuah tanda perintah byte ). Beberapa bahasa memiliki dua atau lebih jenis karakter, misalnya tipe single-byte untuk ASCII karakter dan tipe multi-byte untuk Unicode karakter. Istilah "tipe karakter" biasanya digunakan bahkan untuk jenis yang nilainya lebih tepat mewakili unit kode , misalnya UTF-16 kode unit seperti di Jawa dan JavaScript .

Karakter dapat dikombinasikan ke dalam string . Data string dapat mencakup angka dan simbol numerik lain tetapi akan diperlakukan sebagai teks.

Dalam kebanyakan bahasa, string adalah setara dengan sebuah array karakter atau unit kode, tetapi Java memperlakukan mereka sebagai jenis yang berbeda ( java.lang.String dan char[] ). Bahasa lain (seperti Python , dan banyak dialek BASIC ) tidak memiliki tipe karakter yang terpisah, string dengan panjang satu biasanya digunakan untuk mewakili (unit kode tunggal) karakter.

Literal untuk karakter dan string biasanya dikelilingi oleh tanda kutip : kadang-kadang, tanda kutip tunggal (') digunakan untuk karakter dan tanda kutip ganda (") digunakan untuk string.
Contoh karakter literal dalam sintaks C adalah: 'A', '4 ', '$', '\ T' ( karakter tab )
Contoh string literal dalam sintaks C adalah: "A", "Hello World"

Numeric tipe data rentang
Setiap tipe data numerik memiliki nilai maksimum dan minimum yang dikenal sebagai kisaran . Mencoba untuk menyimpan nomor di luar jangkauan dapat menyebabkan kesalahan kompilator / runtime, atau perhitungan yang salah (karena pemotongan ) tergantung pada bahasa yang digunakan.

Kisaran variabel didasarkan pada jumlah byte yang digunakan untuk menyimpan nilai, dan tipe data integer biasanya mampu menyimpan  nilai-nilai (di mana  adalah jumlah bit yang berkontribusi terhadap nilai). Untuk tipe data lain (misalnya floating point nilai) kisaran lebih rumit dan akan bervariasi tergantung pada metode yang digunakan untuk menyimpannya. Ada juga beberapa jenis yang tidak menggunakan seluruh byte, misalnya boolean yang memerlukan satu bit , dan merupakan biner nilai (walaupun dalam prakteknya byte sering digunakan, dengan sisa 7 bit yang berlebihan). Beberapa bahasa pemrograman (seperti Ada dan Pascal ) juga memungkinkan arah yang berlawanan, yaitu, programmer mendefinisikan jangkauan dan presisi yang diperlukan untuk memecahkan masalah tertentu dan compiler memilih integer yang paling tepat atau floating type titik secara otomatis.

Tidak ada komentar:

Posting Komentar