Tipe Data & Tipe Struktur Data

TIPE DATA


Tipe-Tipe Data pada Turbo  C++

 

1. Konstanta

Konstanta adalah suatu nilai yang sifatnya tetap, misalnya angka 2. Angka 2 adalah 2
bukan 3. Jadi 2 mempunyai nilai yang sudah tetap, maka 2 adalah konstanta. Begitu juga ‘a’, ‘a’
adalah ‘a’ bukan ‘b’ atau ‘c’ jadi ‘a’ juga mempunyai nilai atau arti yang tetap, maka ‘a’ adalah
konstanta juga. Contoh lainnya A = 2, A disini bukan lagi suatu konstanta, karena pada saat ini
A mewakili angka 2, pada saat lain A bisa saja mewakili nilai yang lain pula bisa 5 atau 100, jadi
dalam hal ini A bukan lagi konstanta, melainkan suatu variabel.
Secara garis besar, konstanta dibedakan menjadi 2 kelompok yaitu bilangan (numeric)
dan teks (string). Turbo C++ membagi konstanta bilangan (numeric) menjadi 3 kelompok, yaitu :
a. Bilangan Bulat (integer)
b. Bilangan Desimal Berpresisi Tunggal (Floating Point)
Bilangan ini dapat dinyatakan dalam dua bentuk tampilan, yaitu :
i. Bentuk Desimal
Contoh : 10.2323
ii. Bentuk Eksponen
Contoh : 10.2323e2 yang artinya 10.2323 x 102
c. Bilangan Desimal Berpresisi Ganda (Double Precision)

Pada prinsipnya bilangan ini sama serupa dengan Floating Point, hanya tingkat ketelitian
yang dimiliki lebih tinggi.
Konstanta teks dibedakan menjadi dua jenis, yaitu :
a. Data Karakter
Data ini hanya terdiri dari sebuah karakter saja dan ditandai dengan dua tanda kutip
tunggal (‘) sebagai pembatasnya. Karakter dapat berupa abjad, baik huruf kecil maupun
besar, angka ataupun karakter khusus lainnya, seperti ‘%’,’*’,’^’ dan lain-lain. Contoh
sebuah karakter : ‘A’, ‘b’, ‘9’, ‘*’
b. Data String
Data ini merupakan rangkaian dari beberapa karakter dan ditandai dengan tanda kutip
ganda (“) sebagai pembatasnya.
Contoh :
“SURYO”
“berenang”
“31 tahun”
“Jl. Arip Cinderela  No. 5050”
Dan lain-lain.

2. Nama Pengenal (Identifier)
Nama pengenal (identifier name) adalah nama berbagai elemen program, seperti: nama
variabel, nama konstanta, nama fungsi, nama tipe data dan lainnya. Nama-nama pengenal dapat
ditentukan sendiri, dengan ketentuan sebagai berikut:
1. Panjangnya dapat berupa 1 karakter atau lebih, tetapi hanya 32 karakter pertama yang
dikenal. Sebagai contoh, misalnya nama variabel:
Nilai_mahasiswa_yang_mengambil_matakuliah_AlProg1 (49 karakter)
Nilai_mahasiswa_yang_mengambil_matakuliah_BasisData(51 karakter)
Nama variabel pertama akan dianggap sama dengan nama variabel kedua karena ke-32
karakter pertama untuk kedua nama variabel di atas adalah sama, yaitu:
Nilai_mahasiswa_yang_mengambil_m
2. Karakter pertama harus berupa huruf atau karakter garis bawah (_).

Berikut ini adalah pengenal yang salah:

6angka (salah, karena diawali dengan angka)
@nggota (salah, karena diawali dengan karakter khusus @)
Sedangkan berikut ini adalah pengenal yang benar:
_6angka
angota1
3. Tidak boleh mengandung karakter-karakter khusus dan blank (spasi) kecuali garis bawah.
Berikut ini adalah pengenal yang salah:
Nilai-mahasiswa (salah, karena mengandung karakter -)
Dollar$ (salah, karena mengandung karakter $)
No telp (salah, karena ada spasi)
Sedangkan berikut ini adalah pengenal yang benar:
Nilai_mahasiswa
NoTelp
4. Huruf besar dan huruf kecil dianggap berbeda
_mahasiswa _ _Mahasiswa
X1 _ x1
5. Tidak boleh sama dengan keyword.
Keyword adalah identifier yang telah didefinisikan sebelumnya oleh Bahasa C. Keyword
pada bahasa C adalah reserved word artinya dicadangkan dan tidak boleh digunakan untuk keperluan lain. (kata-kata apa saja yang tidak dapat digunakan dapat dilihat pada
tabel 1 di atas).
Apabila digunakan pengenal variabel di dalam program Turbo C++, maka variabel
tersebut harus dideklarasikan terlebih dahulu. Pada waktu mendeklarasikan suatu variabel, maka
harus menentukan tipe dari datanya. Tipe dari data menunjukkan suatu nilai yang dapat
digunakan oleh variabel bersangkutan. Tipe data yang ada dalam Turbo C++ dapat berupa tipe
data standart, tipe data yang didefinisikan sendiri, tipe data terstruktur dan tipe pointer.
3. Jenis-Jenis Variabel
Seperti halnya konstanta, variabel juga terbagi menjadi du kelompok besar, yaitu variabel
numerik dan variabel teks.
Variabel numerik dibagi menjadi 3 bagian, yaitu :
1. Bilangan Bulat (Integer)
Bilangan ini mampu menampung bilangan bulat yang berkisar antara -32.768 hingga
+32.768
2. Bilangan Desimal Berpresisi Tunggal (Floating Point)
Dalam bentuk bilangan berpangkat Floating Point dapat digunakan untuk
menampung data dari 10-38 hingga 1038, sedangkan dalam bentuk desimal dapat
menampung hingga enam desimal (6 angka dibelakang koma).
3. Bilangan Desimal Berpresisi Ganda (Double Precision)Serupa dengan Floating Point, hanya saja kapasitas menampung datanya lebih besar.
Dalam bentuk bilangan berpangkat, Double Precision dapat mengolah angka-angka
dengan ketelitian yang berkisar antara 10-308 hingga 10+308. Sedangkan dalam bentuk
desimal mampu menampung hingga 15 digit.
Sedangkan variabel teks dibedakan atas :
1. Karakter (untuk karakter tunggal)
Selain dapat digunakan untuk menampung sebuah karakter, variabel ini dapat pula
dikonversikan dalam bentuk bilangan (ASCII code). Bilangan hasil konversi data ini
dinyatakan dengan bilangan bulat yang berkisar antara -128 sampai +127.
2. String (untuk rangkaian karakter)
String pada prinsipnya merupakan rangkaian karakter yang diakhiri dengan karakter
null (‘’).
4. Deklarasi Variabel
Sebelum variabel digunakan, variabel tersebut harus diperkenalkan lebih dahulu kepada
Turbo C++. Proses perkenalan inilah yang disebut Deklarasi Variabel. Deklarasi variabel ini
sifatnya mutlak, artinya tanpa adanya deklarasi, maka Turbo C++ tidak akan menerima variabel
tersebut.
Deklarasi variabel ini meliputi tipe variabel dan nama variabel, dengan perintah sebagai
berikut :
tipe_variabel nama_variabel;

Contoh :
int jml_barang;
Sedangkan daftar tipe variabel, dapat dilihat pada tabel berikut ini :
Tabel 2.1 Tipe-tipe Variabel

Adapun jangkauan nilai dari masing-masing tipe sebagai berikut :
Tabel 2.2 Range Nilai

Contoh :
Misalkan kita akan mendeklarasikan variabel jumlah sebagai integer, variabel nilai sebagai
floating point dan total_bayar sebagai double precision maka deklarasinya sebagai berikut :
int jumlah;
float nilai;
double total_bayar;
Variabel yang mempunyai tipe sama, bisa dituliskan dalam satu tipe dan pemisah antara
variabelnya dengan koma (,).
Contoh :
int jml_anak, umur;
float nilai_teori, nilai_praktek, nilai_rata;
double bonus, gaji_pokok, gaji_kotor, gaji_bersih;

Catatan Penting :
Nama Variabel tidak boleh dideklarasikan dua kali, atau dengan kata lain nama variabel tidak
boleh sama.

5. Tipe Variabel yang Lain
Selain tipe variabel yang sudah dijelaskan di depan, Turbo C++ mempunyai tipe data
yang lain, yang merupakan pengembangan dari variabel sebelumnya. Tipe-tipe variabel tersebut
antara lain :

1. unsigned
Tipe variabel ini digunakan jika Anda hanya ingin bekerja dengan data yang bernilai
positif saja.
Contoh :
unsigned int jml_anak;
Artinya variabel jml_anak hanya menerima data dari 0 hingga 65.535 (tidak lagi dari
-32.768 hingga 32.767)
2. short
Variabel ini kadangkala disamakan dengan integer, kadang dibedakan, tergantung sistem
dan jenis komputer yang digunakan. Misalnya IBM system 370, variabel short dibuat
menjadi separuh kapasitas integer. Namun dalam Turbo C kedua variabel ini tidak
dibedakan.
3. long
Variabel ini digunakan untuk menaikkan kapasitas dari variabel yang bersangkutan.
Misal long integer memiliki jangkauan bilangan bulat dari -2.147.483.648 hingga
2.147.483.647 (bandingkan dengan integer biasa yang hanya memiliki jangkauan dari
-32.768 hingga 32.767). Contoh : kita akan mendeklarasikan harga rumah dengan long
integer maka perintahnya adalah long int harga_mobil;
4. Gabungan dari unsigned dan long

Kita dapat juga menggabungkan kedua jenis variabel tersebut untuk mendeklarasikan
suatu tipe variabel. Contoh : unsigned long integer yang kini memiliki jangkauan dari 0
hingga 4.294.967.295.

6. Inisialisasi Variabel
Inisialisasi adalah proses pemberian nilai awal suatu variabel. Pemberian nilai terhadap suatu
variabel ini dapat dinyatakan dengan menggunakan tanda sama dengan (=).
Contoh :
Variabel bilangan1 dan bilangan2 yang bertipe float akan diberi nilai 45.8 dan 50 kemudian
kedua bilangan tersebut akan dikalikan dan disimpan dalam variabel hasil yang bertipe float
juga. Berikut contoh program dalam Turbo C++.

Program 2.1 Perintah Inisialisasi

Latihan Program 2.1

TIPE STRUKTUR DATA

Data merupakan salah satu hal penting yang tidak dapat ditinggalkan dalam pemakaian komputer. Data adalah sekumpulan fakta yang dapat diperoleh dari berbagai sumber, seperti dari hasil pengukuran, pengamatan di labolatorium, hasil survey, angket dan lain sebagainya.
Dengan bermacam cara data disajikan dan diolah menjadi informasi. Informasi dapat disajikan dengan tulisan ataupun lisan, informasi sangat penting karena berfungsi sebagai dasar dalam pengambilan keputusan.
Struktur data adalah suatu koleksi atau kelompok data yang dapat dikarakterisasikan oleh organisasi serta operasi yang didefinisikan terhadapnya. Pengertian struktur data adalah elemen data (mulai dari byte) yang ditentukan tipe datanya, diorganisasi (dibentuk, disusun, atau dikelompokkan) dan akan diproses sesuai dengan tipe datanya. Pada definisinya, data dapat dikategorikan menjadi :
Tipe data sederhana atau data sederhana, yang terdiri dari :
– Data sederhana tunggal, misalnya integer, real, Boolean, serta character.
– Data sederhana majemuk, misalnya string.
Tipe data ini dapat diorganisasikan menjadi berbagai struktur data dengan berbagai cara tertentu.
Struktur data, meliputi :
– Struktur data sederhana, misalnya array dan record.
– Struktur data majemuk, terdiri atas :
– Linear, misalnya stack, queue, dan linear linked list.
– Nonlinear, misalnya pohon binary (binary tree), pohon cari biner (binary search tree), pohon cari m-way (m-way search tree), general tree, serta graph.
Kedua kategori diatas terutama diperuntukkan untuk data pada storage utama. Data yang diperuntukan untuk storage tambahan, memiliki struktur data yang dikenal dengan organisasi file. Tipe organisasi file diantaranya adalah sebagai berikut :
Sequential
– Record disimpan dalam file secara beruntun berdasarkan waktu tiba dari pekerjaan yang diwakilinya, sehingga membentuk first-in-first-out (FIFO), struktur data seperti ini disebut antrean atau queue.
-Record yang masuk pertama akan memiliki indeks atau alamat yang lebih kecil daripada record yang masuk kemudian.
Indexed Sequential
– Record disimpan secara berurutan.
– Record yang masuk terlebih dahulu disimpan pada tempat yang lebih kecil.
– Untuk melakukan pencarian pada organisasi ini perlu menggunakan pencarian terlebih dahulu.
– Dengan organisasi file ini lebih fleksibel karena ukuran file disesuaikan dengan banyaknya data yang ada pada setiap file.
Relative Multikey
Dua buah struktur data sederhana adalah array atau larik dan record. Array merupakan struktur data yang terurut dan homogen, terdiri dari data item yang membentuk satu kesatuan yang tipe datanya sama. Sedangkan record merupakan struktur data yang terdiri atas serangkaian data item dengan tipe data yang berbeda.
Pemakaian struktur data yang tepat di dalam proses pemrograman, akan mengasilkan algoritma yang lebih jelas dan tepat, sehingga menjadikan program secara keseluruhan lebih sederhana.
Suatu struktur data dicirikan dengan :
1 Jenis atau satuan data pembentuknya
2.Hubungan antara satuan tersebut.
Strukutur data terdiri dari satuan data sederhana yang cocok untuk program yang dipakainya. Hubungan antara satuan data tersebut membentuk salah satu cirri dari struktur yang bersangkutan. Jika sebuah struktur data sudah tersedia maka struktur data itu langsung dapat digunakan. Jika satuan data sederhana dapat membentuk sebuah struktur yang lebih efisien dalam penggunaan memori, maka struktur data tersebut dapat disatukan. Struktur tersebut tidak dapat langsung ditujukan kepada sebuah address, maka dari itu harus melalui proses pemrograman. Jika menggunakan penyajian secara sequential, maka komponen struktur data ditempatkan ke dalam relokasi memori secara berurutan.

METODE HASHING

Metode hashing ini digunakan untuk :
Mengatasi kerugian korespondensi satu-satu.
Untuk mengurangi banyaknya ruang alamat yang digunakan untuk pemetaan dari key yang memiliki cakupan yang luas ke nilai alamat yang memiliki cakupan yang dipersempit.
Output fungsi HASH adalah home address dari record yang keynya diproses.

Macam – macam fungsi metode Hash :

Fungsi : f(key) = address
Fungsi modulo : Home address dicari dengan cara mencari sisa hasil bagi nilai key dengan suatu nilai tertentu.

Fungsi: f(key) = key mod n
Dengan n adalah Banyaknya ruang alamat yang tersedia atau bilangan prima terdekat yang berada di atas nilai banyak data, setelah itu banyaknya ruang alamat disesuaikan dengan n.

Fungsi Pemotongan : Home address dicari dengan memotong nilai key ke jumlah digit tertentu yang lebih pendek. Contoh: NIM yang tadinya 8 digit, dipotong hanya menjadi 2 digit!

Fungsi Pelipatan : Dilakukan pelipatan terhadap record key dengan bagian yang sama panjang, lalu setiap bagian dijumlahkan NIM 8 digit dibagi dua digit, hingga menjadi 4 buah.Misal: 22002521, dibagi 22 00 25 21 kemudian dijumlahkan: 68.

Fungsi Pengkuadratan : Home address dicari dengan mengkuadratkan setiap digit pembentuk key, lalu semua hasilnya dijumlahkan Contoh: 22002211, semua digit dikuadratkan dan dijumlah.

Fungsi Penambahan Kode ASCII Jika key bukan kode numerik, home address dicari dengan menjumlahkan kode ASCII setiap huruf pembentuk key ADE = 65 + 68 + 69 = 192
COLLISION RESOLUTION
Karena collision dapat dipastikan akan dapat terjadi, maka output dari suatu fungsi hash tidak selalu unik, hanya berupa kemungkinan suatu alamat yang sudah ditempati, jika home address sudah ditempati oleh record lain, maka harus dicarikan address lain.

Proses pencarian address ini disebut dengan collision resolution
METODE COLLISION RESOLUTION
1.Open Addressing.
2.Chaining.
3.Coalesced Hashing.
4.Chained Progressive Overflow.
5.Bucket.

Sumber :

Leave a comment

Filed under Programming

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s