#newnavbar ul li{ list-style-type: none; display:inline; margin:0px; padding:30px; border:0px solid; }

Selasa, 07 Mei 2013

Struktur Dan Tipe Data

Struktur Dan Type Data
Struktur Data

 Struktur Data yaitu:
  • Kelompok item data yang terorganisasi yang dianggap sebagai suatu unit
  • Disebut juga sebagai jenis data kompleks (complex data type) atau data aggregates
  • Beberapa struktur data :
* Array (larik)
* String
* Record
* List (daftar)
* Tree

Suatu struktur data adalah suatu koleksi atau kelompok data yang dapat dikarakterisasikan oleh organisasi serta operasi yang didefinisikan terhadapnya.
Pengertiannya :  struktur data adalah kumpulan elemen data (mulai dari byte) yang ditentukan tipe datanya, diorganisasi (dibentuk, disusun, atau dikelompokkan) dan akan diproses sesuai dengan tipe datanya. Struktur data sangat penting dalam sistem komputer. Terhadap setiap variabel di dalam program, secara eksplisit ataupun implisit, didefinisikan struktur data yang akan menentukan operasi yang berlaku terhadap variabel tersebut. Struktur data yang dibicarakan ini merupakan struktur data logika. Bukan penyajian secara fisik pada storage (memori komputer).

Struktur data, meliputi:

1. Struktur data sederhana, misalnya array dan record
2. Struktur data majemuk, terdiri  atas:
  • Linear
misalnya stack, queue, serta linear linked list.
  • Nonlinear
misalnya pohon binar (binary tree), pohon cari binar (binary search tree), pohon cari m-way (m-way search tree), general tree, serta graph.




Type Data 
  • Tipe data Integer / Ordinal
Tipe data ini adalah tipe data yang berupa bilangan bulat yang akan digunakan untuk operasi matematika. Ada beberapa tipe data yang termasuk integer, yaitu antara lain: 
  1. ShortInt : memiliki nilai range -128 sampai 127 (signed 8-bit)
  2. SmallInt : memiliki nilai range antara – 32768 sampai dengan 32767 (signed 16-bit)
  3. LongInt : memiliki nilai range -2147483648 sampai 2147483647 (signed 32-bit )
  4. Int64 : memiliki range -263+1 sampai 263-1 (signed 64-bit)
  5. Byte : memiliki nilai range 0 sampai 255 (unsigned 8-bit)
  6. Word : memiliki nilai range 0 sampai 65535 (unsigned 16-bit)
  7. LongWord : memiliki nilain range 0 sampai 4294967295(unsigned 32-bit )
Pada pemakaian integer type di implemetasi 16 bit maka: 
  1. Integer : memiliki range antara – 32768 sampai dengan 32767 (signed 16-bit)
  2. Cardinal : memiliki range 0 sampai 65535 (unsigned 16-bit)
Pada pemakaian integer type di implemetasi 32 bit maka: 
  1. Integer : memiliki range antara -2147483648 sampai 2147483647 (signed 32-bit)
  2. Cardinal : memiliki range 0 sampai 4294967295 (unsigned 32-bit)
Penulisan pada deklarasi variable:
[variable] : [type data integer];
  • Tipe data Boolean
Tipe data ini hanya terdiri dari nilai logika True dan False. Ada beberapa jenis dari tipe Boolean ini, yaitu: 
  1. Boolean : berukuran 1 byte (false 0, true 1)
  2. ByteBool : berukuran Byte (false 0, true 255 – 8 bit)
  3. Bool : berukuran Double (false 0, true -1)
  4. WordBool : berukuran Word (false 0, true 65535 – 16 bit)
  5. LongBool : berukuran Double (false 0, true -1)
Penulisan pada deklarasi variable:
[variable] : [type data boolean]; 
  • Tipe data Floating Point /Real
Tibe data ini meliputi bentuk bilangan desimal. Beberapa bentuk dari tipe data ini adalah: 
  1. Real : memiliki range 2.9 x 10-39 sampai 1.7 x 1038
  2. Single : memiliki range 1.5 x 10-45 sampai 3.4 x 1038
  3. Double : memiliki range 5.0 x 10-324 sampai 1.7 x 104392
  4. Extended : memiliki range 3.6 x 10-4951 sampai 1.1 x 104392
  5. Currency : memiliki range -922337203685477.5808 sampai 922337203685477.5808
  6. Comp : memiliki range -263+1 sampai 263-1
Untuk currency, tipe data ini memiliki kepresisian tinggi yaitu 4 angka dibelakang koma (pembulatan bilangan real menjadi bilangan desimal dengan 4 angka dibelakang koma). Biasanya digunakan untuk satuan uang. Dan untuk comp, tipe data ini akan menyimpan nilai integer (bulat) dari nilai decimal yang masuk (melakukan pembulatan).
Penulisan pada deklarasi variable:
[variable] : [type data floating point]; 
  • Tipe Data Enumerated
Tipe data ini adalah berupa nilai urutan dari data yang telah dibuat.
Penulisan pada deklarasi variable:
[variable] : ( [data0],[data1],[data2] );
Masing-masing data akan diberikan nilai integer secara urut. Urutan dimulai dengan nilai urut 0.
Jika ingin melihat nilai integer dari setiap data maka dengan perintah:
ord( [data1] )
  • Tipe data Sub Range
Tipe data ini memungkinkan kita membuat range sendiri. Dengan perintah:
[variable] : [constant start]..[constant end];
contoh:
a : 5..10;
Jika kita mendeklarasikan 5 adalah a maka proses compile akan terus berjalan jika kita mendeklarasikan 15 adalah a maka proses compile tidak akan berjalan atau berhenti, sehingga terdapat error pada proses compile sehingga tidak dapat di run.
  • Tipe data String dan Character
Tipe data String adalah tipe data yang merupakan rangkaian dari huruf, angka atau symbol yang tidak mengandung harga (nilai).

Beberapa tipe data string adalah sebagai berikut:

  1. ShortString : Dapat menampung 255 karakter (ANSIChar) 
  2. AnsiString : Dapat menampung ~231 karakter (ANSIChar)
  3. WideString : Dapat menampung ~230 karakter (WideChar) 
  4. String : Dapat menampung 255 karakter (ANSIChar)
Tipe data Character adalah tipe data yang berkaitan dengan karakter ( huruf, angka, symbol). 

Ada beberapa tipe data dari Character yaitu:
  1. ANSIChar : Satu karakter ANSI 
  2. WideChar : Satu karakter Unicode 
  3. Char : Sama dengan ANSIChar

Versi 2
Tipe Data dan Struktur data
Struktur & Organisasi data

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

Versi 3
Tipe Data dan Struktur data
Struktur & Organisasi data

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

Tipe data array
Array pada Struktur Data
Selasa, 2011-07-12, 20:33:08

Oleh : Frieyadie

Array atau Larik merupakan Struktur Data Sederhana yang dapat didefinisikan sebagai pemesanan alokasi memory sementara pada komputer. Array dapat didefinisikan sebagai suatu himpunan hingga elemen yang terurut dan homogen.
  • Terurut : Dapat diartikan bahwa elemen tersebut dapat diidentifikasi sebagai elemen pertama, elemen kedua dan seterusnya sampai elemen ke-n.
  • Homogen : Adalah bahwa setiap elemen dari sebuah Array tertentu haruslah mempunyai type data yang sama.
Sebuah Array dapat mempunyai elemen yang seluruhnya berupa integer atau character atau String bahkan dapat pula terjadi suatu Array mempunyai elemen berupa Array. Karakteristik Array :
  • Mempunyai batasan dari pemesanan alokasi memory. (Bersifat Statis).
  • Mempunyai Type Data Sama (Bersifat Homogen)
  • Dapat Diakses Secara Acak.
Terdapat 3 hal yang harus diketahui dalam mendeklarasikan array:
  • Type data array
  • Nama variabel array
  • Subskrip / index array
Jenis Array yang akan dipelajari adalah :
  • Array Dimensi Satu (One Dimensional Array)
  • Array Dimensi Dua (Two Dimensional Array)
  • Array Dimensi Tiga (Thee Dimensional Array)
Array Dimensi Satu

Array dimensi sastu dapat disebut juga dengan istilah vektor yang menggambarkan data dalam suatu urutan. Array berdimensi satu berisi kumpulan dari nilai-nilai data bertipe sama dalam urutan tertentu yang menggunakan sebuah nama yang sama. Nilai-nilai data pada suatu array disebut dengan elemen array. Letak urutan dari suatu array ditunjukkan oleh suatu index (subscript).


 Struktur data record
Sebuah record rekaman disusun oleh beberapa field. Tiap field berisi data dari tipe dasar / bentukan tertentu. Record mempunyai kelebihan untuk menyimpan suatu sekumpulan elemen data yang berbeda-beda tipenya (di banding array). Contoh , sebuah record dengan empat buah field.

Field 1 Field 2 Field 3 Field 4
Cara pendeklarasian dari record adalah sbb:
• Mendefinisikan tipe dari record (jumlah field, jenis tipe data yang dipakai),
• Mendefinisikan variabel untuk dilakukan operasi.
SYNTAX
type
nama_record = record
identifier_1 : tipe_data_1;
:
:
identifier_n : tipe_data_n;
end;
var variabel : nama_record;
Contoh.
type
Data_mahasiswa = record
Nama : string;
Usia : integer;
Kota : String;
Kodepos : integer;
end;
Var
x: Data_mahasiswa;

1. Pengaksesan Elemen Record
Nama variable disertai nama field.
x.Nama
x.Usia
x.Kota
x.Kodepos

Contoh.
program RECORD_INTRO;
type tanggal = record
bulan, hari, tahun : integer;
end;
var waktu : tanggal;
begin
waktu.hari :=25;
waktu.bulan:=09;
waktu.tahun:= 1983;
writeln('hari ini adalah ',waktu.hari,':',waktu.bulan,':', waktu.tahun)
end.

2. Pengunaan With … do
Pernyataan with untuk lebih menyederhanakan pengaksesan field-field pada record. Pemrograman dapat mengakses field cukup dengan menyebutkan nama field-nya saja. Misalkan pernyataan :
x.Nama
x.Usia
x.Kota
x.Kodepos
menjadi
with x do
Begin
Nama
Usia
Kota
Kodepos
end

Contoh.
program RECORD_INTRO;
type tanggal = record
bulan, hari, tahun : integer;
end;
var waktu : tanggal;
begin {program utama}
with waktu do {mulai with}
begin
hari :=25;
bulan:=09;
tahun:=1983;
writeln('hari ini adalah ',hari,':',bulan,':', tahun)
end {akhir with}
end.

3. Array dari Record
Suatu array dapat juga berisi record contoh suatu deklarasi record tanggal.
type tanggal = record
bulan, hari, tahun : integer;
end;
var waktu : tanggal;
kemudian kita membentuk suatu array dari record ini, namakan birthdays.
var birthdays : array[1..10] of tanggal;
pernyataan ini akan membentuk suatu array dengan 10 elemen. Dimana tiap elemen adalah sebuah record tanggal, yaitu, terdiri atas bulan, hari, tahun dengan tipe data Integer.
Digambarkan seperti berikut:

Contoh Pemberian nilai awal dari masing-masing elemen birthdays:
Birthdays[1].hari :=25;
Birthdays[1].bulan:=09;
Birthdays[1].tahun:=1983;

4. Record di dalam Record
Record bisa berisi record lain sebagai field. Seperti contoh record tanggal dan jam dikombinasikan menjadi sebuah record saat ini,
type tanggal = record
bulan, hari, tahun : integer;
end;
type waktu =record
jam, menit, detik : integer;
end;
type waktu_ini =record
tanggal_ini : tanggal;
waktu_ini : waktu
end;
Kemudian kita perlu membuat variabel kerja
var saat_ini : waktu_ini;
pemberian nilai akan terjadi seperti di bawah ini:
saat_ini.tanggal.bulan:= 11;
saat_ini.tanggal.hari:= 2;
saat_ini.tanggal.tahun:= 1985;
saat_ini.waktu.jam:= 3;
saat_ini.waktu.menit:= 3;
saat_ini.waktu.detik:= 33;
Struktur data stack
Pengertian Stack pada Struktur Data adalah sebagai tumpukan dari benda, sekumpulan data yang seolah-olah diletakkan di atas data yang lain, koleksi dari objek-objek homogen, atau Suatu urutan elemen yang elemennya dapat diambil dan ditambah hanya pada posisi akhir (top) saja. Stack pada Struktur Data dapat diilustrasikan dengan dua buah kotak yang ditumpuk, kotak yang satu akan ditumpuk diatas kotak yang lainnya. Jika kemudian stack 2 kotak tadi, ditambah kotak ketiga, keempat, kelima, dan seterusnya, maka akan diperoleh sebuah stack kotak yang terdiri dari N kotak. 
Description: Stack pada Struktur Data

Stack bersifat LIFO (Last In First Out) artinya Benda yang terakhir masuk ke dalam stack akan menjadi yang pertama keluar dari stack 

Operasi-operasi yang biasanya tredapat pada Stack yaitu:
1. Push : digunakan untuk menambah item pada stack pada tumpukan paling atas
2. Pop : digunakan untuk mengambil item pada stack pada tumpukan paling atas
3. Clear : digunakan untuk mengosongkan stack
4. IsEmpty : fungsi yang digunakan untuk mengecek apakah stack sudah kosong
5. IsFull : fungsi yang digunakan untuk mengecek apakah stack sudah penuh

Cara mendefenisikan Stack dengan Array of Struct yaitu:
1. Definisikan Stack dengan menggunakan struct
2. Definisikan konstanta MAX_STACK untuk menyimpan maksimum isi stack
3. Buatlah variabel array data sebagai implementasi stack
4. Deklarasikan operasi-operasi/function di atas dan buat implemetasinya.
contoh :
//Deklarasi MAX_STACK
                #define MAX_STACK 10   
            
//Deklarasi STACK dengan struct dan array data
                typedef struct STACK{
                                int top;
                                char data[10][10];                                                           
                }; 

//Deklarasi/buat variabel dari struct
                STACK tumpuk;

Inisialisasi Stack
Pada mulanya isi top dengan -1, karena array dalam C dimulai dari 0, yang berarti stack adalah kosong.
Top adalah suatu variabel penanda dalam STACK yang menunjukkan elemen teratas Stack sekarang.  Top Of Stack akan selalu bergerak hingga mencapai MAX of STACK sehingga menyebabkan stack penuh.
Description: Stack pada Struktur Data

Ilustrasi Stack pada saat inisialisasi


IsFull berfungsi untuk memeriksa apakah stack sudah penuh atau tidak. Dengan cara, memeriksa top of stack, jika sudah sama dengan MAX_STACK-1 maka full, jika belum (masih lebih kecil dari MAX_STACK-1)  maka belum full.

Description: Stack Struktur Data

Ilustrasi Stack pada kondisi Full

IsEmpty berfungsi untuk memeriksa apakah stack masih kosong atau tidak. Dengan cara memeriksa top of stack, jika masih -1 maka berarti stack masih kosong.
Description: Stack Struktur Data
Push berfungsi untuk memasukkan elemen ke stack, selalu menjadi elemen teratas stack (yang ditunjuk oleh TOS).
Tambah satu (increment)  nilai top of stack lebih dahulu setiap kali ada penambahan elemen stack.
Asalkan stack masih belum penuh, isikan data baru ke stack berdasarkan indeks top of stack setelah diincrement sebelumnya.
Description: Stack Struktur Data

Pop berfungsi untuk mengambil elemen teratas (data yang ditunjuk oleh TOS) dari stack.
Ambil dahulu nilai elemen teratas stack dengan mengakses top of stack, tampilkan nilai yang akan dipop, baru dilakukan decrement nilai top of stack sehingga jumlah elemen stack berkurang.
Description: Stack Struktur data
 
Printberfungsi untuk menampilkan semua elemen-elemen stack dengan cara looping semua nilai array secara terbalik, karena kita harus mengakses dari indeks array tertinggi terlebih dahulu baru ke indeks yang kecil.
Description: Stack Struktur Data
 
Description: Stack pada Struktur Data
 
Operasi Push

void Push (NOD **T, char item)
                {
                                NOD *n;
                                n=NodBaru (item);
                                n->next=*T;
                                *T=n;
                }

Operasi Pop
char Pop (NOD **T)
                {
                                NOD *n; char item;
                                if (!StackKosong(*T)) {
                                                P=*T;
                                                *T=(*T)->next;
                                                item=P->data;
                                                free(P);
                                }
                                return item;
                }
 
create berfungsi untuk membuat sebuah stack baru yang masih kosong.

spesifikasi:
tujuan : mendefinisikan stack yang kosong
input : stack
syarat awal : tidak ada
output stack : - (kosong)
syarat akhir : stack dalam keadaan kosong



Tidak ada komentar :

Posting Komentar