Data
Type
Data type menjelaskan kumpulan objek data dan sebuah set operasi yang
telah ditetapkan pada objek tersebut.
Descriptor adalah kumpulan atribut
dari
sebuah variabel.
Salah satu permaslahanan desain untuk semua tipe data
adalah operasi apa yang didefinisikan dan bagaimana mereka ditentukan?.
Primitive
Data Type
Primitive
data type adalah tipe data yang berbentuk primitive, dan pasti ada dalam setiap
bahasa pemrograman.
Contoh
dari primitive data type :
-
Integer
-
Floating Point
-
Complex
-
Decimal
-
Boolean
-
Character
Character
String Type
Character
String Type adalah satu
tipe
di mana nilai-nilai
terdiri dari urutan
karakter. Karakter string yang konstan digunakan untuk label output, dan input
dan output dari semua jenis data yang sering dilakukan dalam hal string.
karakter. Karakter string yang konstan digunakan untuk label output, dan input
dan output dari semua jenis data yang sering dilakukan dalam hal string.
Adapun Premasalahan pada character
string type :
o
Apakah tipe
primitif atau hanya jenis khusus
array?
o
Haruskah panjang string statis
atau dinamis?
Tipe
– tipe operasi :
o
Assignment and copying
o
Comparison (=, >, etc.)
o
Catenation
o
Substring reference
o
Pattern matching
User
Defined Ordinal Type
User
defined ordinal type Adalah kisaran nilai yang mungkin dapat dengan mudah terkait dengan himpunan bilangan bulat positif.
3
tipe data user defined primitive :
o
Integer
o
Char
o
Boolean
Enumeration
type
Enumeration
type adalah semua nilai yang mungkin,
dimana dinamai konstan, dan memberikan, atau, disebutkan dalam definisi. Fungsinya untuk memudahkan
dalam tipe data grup.
Contoh
:
enum days {Mon, Tue, Wed, Thu, Fri, Sat, Sun};
Subrange Type
Subrange
type adalaah Sebuah subsequence berdekatan
memerintahkan tipe ordinal
Implementation
of User-Defined Ordinal Types
Enumeration
type diimplementasikan
sebagai Integer
Subrange
types diimplementasikan seperti type
parent dengan
kode dimasukkan (oleh kompiler) untuk membatasi tugas
untuk subrange variabel
Array Type
array adalah agregat homogen
elemen data di mana
seorang individu elemen diidentifikasi
oleh posisinya dalam agregat,
relatif terhadap elemen pertama.
Subscript
Binding and Array Categories
-
Static
= rentang subscript yang statis terikat
dan alokasi penyimpanan statis (dilakukan sebelum run time).
dan alokasi penyimpanan statis (dilakukan sebelum run time).
-
Fixed
stack-dynamic = rentang subscript
yang statis
terikat, namun alokasi dilakukan pada saat deklarasi elaborasi selama
eksekusi.
terikat, namun alokasi dilakukan pada saat deklarasi elaborasi selama
eksekusi.
-
Stack-dynamic = rentang subscript dan
alokasi penyimpanan dinamis terikat pada waktu elaborasi.
alokasi penyimpanan dinamis terikat pada waktu elaborasi.
-
Fixed
heap-dynamic = rentang subscript dan storage binding keduanya tetap, setelah penyimpanan dialokasikan.
-
Heap-dynamic = pengikatan rentang subscript dan
alokasi penyimpanan dinamis dan dapat berubah beberapa kali selama
seumur hidup array.
alokasi penyimpanan dinamis dan dapat berubah beberapa kali selama
seumur hidup array.
Heterogeneous Arrays
Heterogeneous array adalah satu di mana unsur-unsur tidak
perlu dari jenis yang sama.
Rectangular array
adalah array multidimensional di mana semua baris memiliki
jumlah yang sama elemen dan semua kolom memiliki jumlah yang sama dari
elemen. Array Rectangular bermodelkan meja persegi panjang.
jagged array adalah di mana panjang dari baris tidak perlu menjadi
sama. Sebagai contoh, sebuah matriks jagged dapat terdiri dari tiga baris, satu dengan 5 elemen, satu dengan 7 elemen, dan satu dengan 12 elemen.
jumlah yang sama elemen dan semua kolom memiliki jumlah yang sama dari
elemen. Array Rectangular bermodelkan meja persegi panjang.
jagged array adalah di mana panjang dari baris tidak perlu menjadi
sama. Sebagai contoh, sebuah matriks jagged dapat terdiri dari tiga baris, satu dengan 5 elemen, satu dengan 7 elemen, dan satu dengan 12 elemen.
Associative Arrays
Associative Arrays adalah koleksi tak berurut elemen
data yang
diindeks oleh jumlah yang sama nilai-nilai yang disebut kunci.
diindeks oleh jumlah yang sama nilai-nilai yang disebut kunci.
Record Types
record adalah jumlah elemen
data di mana unsur-unsur individu
diidentifikasi oleh nama dan diakses melalui offset dari awal
struktur. Record adalah agregat mungkin heterogen elemen data di mana unsur-unsur individu diidentifikasi dengan nama
diidentifikasi oleh nama dan diakses melalui offset dari awal
struktur. Record adalah agregat mungkin heterogen elemen data di mana unsur-unsur individu diidentifikasi dengan nama
Tuple
Types
Tuple
adalah adalah tipe
data yang
mirip dengan catatan, kecuali
bahwa unsur-unsur yang tidak bernama .
Digunakan dalam Python, ML, dan F # untuk memungkinkan fungsi untuk kembali beberapa nilai
Digunakan dalam Python, ML, dan F # untuk memungkinkan fungsi untuk kembali beberapa nilai
List
Type
Lists
pertama
kali didukung
dalam bahasa pemrograman fungsional LISP.
Mereka selalu menjadi
bagian dari bahasa-bahasa fungsional, tetapi dalam beberapa tahun terakhir mereka telah menemukan cara mereka ke dalam beberapa bahasa
imperatif.
Lists
dalam Skema dan LISP dipisahkan oleh tanda kurung dan
unsur tidak dipisahkan oleh tanda baca apapun. Sebagai contoh,
(A B C D)
Nested lists memiliki bentuk yang sama, sehingga kita bisa memiliki
(A (B C) D)
unsur tidak dipisahkan oleh tanda baca apapun. Sebagai contoh,
(A B C D)
Nested lists memiliki bentuk yang sama, sehingga kita bisa memiliki
(A (B C) D)
Union
Type
Union
adalah jenis variabel
yang dapat menyimpan nilai jenis yang berbeda pada waktu yang berbeda selama eksekusi program. Sebagai contoh kebutuhan
untuk jenis serikat, mempertimbangkan tabel konstanta
untuk compiler, yang
digunakan untuk menyimpan konstanta
ditemukan dalam program yang dikompilasi.
Pointer
and Reference Types
Sebuah variabel tipe pointer memiliki
berbagai nilai-nilai yang terdiri
dari alamat memori dan nilai khusus, nil.
Memliki kemampuan untuk indirect addressing . memberikan cara untuk me manage
dynamic memory. Pointer dapat digunakan sebagai akses lokasi di area
penyimpanan dinamis(Heap)
Pointer
Operations
Terdiri
dari 2 operasi :
Assignment
= digunakan
untuk menetapkan
nilai variabel pointer untuk
beberapa alamat berguna
Deferencing
= menghasilkan nilai yang disimpan di lokasi yang diwakili oleh nilai pointer ini
Problem
Pada Pointer
Dangling pointers = Sebuah pointer menunjuk ke variabel
tumpukan-dinamis yang telah deallocated
Lost
heap-dynamic variable = Sebuah variabel heap-dinamis dialokasikan
yang tidak lagi dapat diakses oleh
program pengguna
Dangling
Pointer Problem
Tombstone = extra heap cell yang merupakan pointer ke heap
dynamic variable
-
pointer poin variabel yang
sebenarnya hanya pada tombstone
-
Ketika variabel
heap-dynamic de-dialokasikan, tombstone yang tersisa di
set ke nil
-
Mahal dalam
ruang dan waktu
Locks-and-keys = nilai pointer
direpresentasikan sebagai pasangan
-
Heap dynamic variable direpresentasikan sebagai variabel ditambah
sel untuk nilai kunci
bilangan bulat
-
Ketika heap dynamic variabel yang dialokasikan, nilai lock dibuat dan ditempatkan dalam lock
cell dan key cell pointer
Reference
Counter
maintain counter di setiap cell yang menyimpan jumlah pointer
yang saat
ini menunjuk pada cell
kekurangan
: ruang yang
dibutuhkan, waktu
eksekusi yang dibutuhkan, komplikasi
untuk sel terhubung sirkuler
keuntungan
:intrinsik tambahan, sehingga
penundaan yang signifikan dalam
pelaksanaan aplikasi dihindari
Type
Checking
Type
checking adalah kegiatan memastikan bahwa operan
dari operator adalah
dari jenis yang
compatible .
Compatible
type adalah salah
satu yang legal bagi operator, atau diperbolehkan di bawah
aturan bahasa yang akan dikonversi secara implisit, dengan kode compiler
yang dihasilkan, untuk tipe
legal. Konversi otomatis ini disebut coercion.
Type
error adalah aplikasi operator untuk operan dari tipe yang tidak layak
Strong
Typing
Strong
Typing adalah jika
jenis kesalahan
selalu terdeteksi. Ini mensyaratkan bahwa semua
jenis operan dapat
ditentukan, baik pada waktu
kompilasi atau run time. Pentingnya String typing terletak pada kemampuannya untuk mendeteksi semua penyalahgunaan variabel yang menghasilkan jenis kesalahan. Strong typing juga memungkinkan
deteksi, pada waktu berjalan, kegunaan dari jenis
yang salah
nilai dalam variabel yang dapat menyimpan nilai lebih dari satu jenis.
nilai dalam variabel yang dapat menyimpan nilai lebih dari satu jenis.
No comments:
Post a Comment