Pengenalan Struktur Data Teknik Informatika S1
Tipe Data Elementer dan Struktur Data Data dapat dikelompokkan menjadi [1]: Tipe Data Elementer Tunggal Karakter, Integer (Bil Bulat), Real (Pecahan), Boolean Tipe Data Elementer Majemuk String (Kumpulan Karakter) Struktur Data Sederhana Array: sekumpulan data yg memiliki tipe data yg sama Record: sekumpulan data yg memiliki tipe data yg beda Struktur Data Majemuk - Linier: stack, queue, linier linked list - Non Linier: tree, binary tree
Macam-macam Tipe Data [2] Tipe data dasar Bilangan Boolean Bilangan Bulat Bilangan Riil Karakter Tipe Data String Tipe data Enumerasi Tipe data Bentukan
Review Array Array atau Larik adalah Type Data yang memungkin sebuah Variabel MAMPU Menampung BANYAK DATA Artinya : BANYAK DATA tapi DAPAT ditampung dalam SATU VARIABEL Setiap Data akan disimpan menurut NOMER INDEX/URUTAN nya
Review Array (Lanjut) Larik/Array digunakan untuk menangani data yang banyak dan bertipe sama
Tipe Data Bentukan Type Data Bentukan adalah TYPE DATA Yang DIBENTUK oleh Programmer itu sendiri ANDA…KITA… SEMUA… dapat membuat Type Data DILUAR Type data Standar (char, int, float) Contoh: type point yang terdiri dari X dan Y
Tipe Data Bentukan (Lanjut) Kapan harus membuat type? Jika data yang diolah dapat diabstraksikan menjadi suatu data yang merupakan kesatuan. Misalnya: Point, Jam, Date, Orang, Pegawai, SIM, Kartu, Window, Figure, dll Pembuatan Type dimaksudkan: Untuk mempermudah berfikir dalam abstraksi lebih tinggi Dengan memberi nama Type, pengolahan jadi lebih jelas Biasanya nama tipe mewakili nama ‘benda’ dengan ciri tertentu
Tipe Data Bentukan (Lanjut) Membentuk type berarti menentukan struktur data! Type adalah himpunan nilai dan sekumpulan operator yang terdefinisi Untuk membuat tipe data baru, kita bisa menggunakan Struct (Structure)
Structure / Struct Structure adalah kumpulan dari variable yang berkaitan yang sering digunakan untuk mendefinisikan object – orang, tempat, atau record dalam database atau file Ingat kembali Hierarki Data : Character (Huruf, angka dan Spesial character) Variabel/Field yang menampung Character Record, Kumpulan Variabel File, yang menampuing Record Database, yang menampung File
Structure / Struct - Lanjut Perhatikan Contoh berikut : Terdapat Data Teman yang terdiri dari Nama Teman Sex Umur Indah P 25 Maka ada 3 Buah Variabel yaitu : Nama Teman, SEX dan Umur
Structure / Struct - Lanjut Sehingga Dituliskan (misal dalam Pemrograman C) char nama_teman[30]; char sex; int umur
Structure / Struct - Lanjut Jika DiKumpulkan menjadi { char nama_teman[30]; char sex; int umur };
Structure / Struct - Lanjut Karena PERKUMPULAN, maka HARUS Bertype Data RECORD (dalam bahasa C disebut STRUCT) disertai nama RECORD-nya struct teman { char nama_teman[30]; char sex; int umur };
Structure / Struct - Lanjut Sehingga dalam menentukan KAMUS… kita dapat membuat sebuah variabel kuliah dengan Type data teman (misalkan dalam bahasa C) main() { struct teman kuliah; } Artinya Variabel kuliah bertype data teman
Structure / Struct - Lanjut Mengakses elemen/member Struct Dalam proses manipulasi data dari Struct yang dibuat, maka diperlukan cara untuk mengakses elemen/member Struct tsb, Prosedurnya adalah nama variable diikuti oleh operator dot ( . ) dan nama member Kuliah.nama_teman :: mengakses elemen nama_teman dari variabel Kuliah Kuliah.sex :: mengakses elemen sex dari variabel Kuliah Kuliah.umur :: mengakses elemen umur dari variabel Kuliah
Inisialisasi Nilai Elemen Struct struct hitung{ int x; int y; }; struct hitung Jumlah; Jumlah.x=10; Jumlah.y=20;
Operasi Pada Member Struct struct hitung { int x,y,jml; }; int main(){ struct hitung jumlah; jumlah.x=10; jumlah.y=20; jumlah.jml=jumlah.x + jumlah.y; printf(“hasil %d + %d = %d”, jumlah.x,jumlah.y,jumlah.jml); }
Array of Structure Jika Datanya seperti ini : Terdapat Data Teman yang terdiri dari Nama Teman SEX Umur Indah P 25 Bagus L 24 Haris L 23 Budiman L 22 dst…. Bagaimana membentuk struktur datanya?
Array of Structure - Lanjut Variabel KULIAH dapat ditambahkan Array Dapat Menampung Banyak DATA main() { struct teman kuliah[100]; } Artinya Variabel kuliah bertype data teman dengan ARRAY
Penggunaan Typedef Pada Struct Dalam deklarasi variable dari sebuah structure, harus menyertakan keyword struct. Typedef merupakan alternative dalam deklarasi variable tanpa harus menulis struct. Perintah typedef berguna untuk membuat alias dari suatu tipe data struct hitung{ int x,y; }; typedef struct hitung operasi; operasi Jumlah; operasi Kali; struct hitung{ int x,y; }; struct hitung Jumlah; struct hitung Kali;
Penggunaan Typedef Pada Struct (2) Letakkan typedef pada awal definisi structure Pada akhir definisi structure, letakkan nama alias untuk melengkapi pendefinisian menggunakan typedef Deklarasi variable menggunakan typedef, memungkinkan deklarasi sama seperti deklarasi menggunakan type data int, char, double typedef struct hitung operasi Definisi structure Nama alias typedef type data operasi
Penggunaan Typedef Pada Struct (3)
Typedef Pada Tipe Data Elementer Perintah typedef berguna untuk membuat alias dari suatu tipe data. Tidak hanya pada tipe data bentukan Struct, namun juga tipe data elementer. Typedef int Time; Time hours, minutes, seconds; Time merupakan alias dari tipe dasar int (integer). Hours, minutes, seconds bertipe Time
Typedef Pada Tipe Data String Sama halnya juga pada contoh berikut : typedef char * String; String namaMhs, alamatMhs; Dalam C, pointer ke character merupakan satu-satunya cara mendeklarasi tipe data string. Pada contoh di atas, dengan menggunakan typedef, sebuah tipe data baru dengan nama String dideklarasikan
Typedef Pada Data Array int x[100]
Pointer Variabel yang dapat menyimpan alamat disebut dengan ‘pointer’, dan alamat yang disimpan dalam pointer biasanya adalah variabel lain
Pointers of Structures Sama seperti materi pointer, penggunaan pointer pada structure digunakan untuk mengakses alamat yang ada pada structure Pointer pdata menyimpan alamat dari jumlah Hitung jumlah={10,20,30}; pdata = &jumlah;
Pointers of Structures - Lanjut typedef struct pekerja{ int id; char nama[20]; }emp; main(){ emp data; emp *pdata; //create a pointer of structure type pdata=&data; //assign address to pointer of structure type strcpy(pdata->nama, “Adi”); pdata->id = 1; printf(“%d %s”, pdata->id,pdata->nama) } Operator -> digunakan untuk mengakses member dalam structure
Abstract Data Type (ADT) Type dan sekumpulan primitif (operasi dasar) terhadap type tersebut Definisi type dari ADT dapat mengandung definisi ADT lain. Contoh : ADT Waktu ; ADT Jam, ADT Date ADT Garis ; 2 Point ADT Segi4 ; 2 Point (Top/Left) , (Bottom/Right)
ADT POINT {*Definisi Abstract Data Type POINT*} type point: <x: integer, {absis} y: integer {ordinat}> {*Konstruktor POINT*} Function MakePoint (x:integer, y:integer) point {membentuk sebuah point dari x dan y dengan x sebagai absis dan y sebagai ordinat} {*Selektor POINT*} Function GetAbsis (P: point) integer {mengirimkan komponen absis dari P} Function GetOrdinat (P: point) integer {mengirimkan komponen ordinat dari P} {*Predikat*} Function IsOrigin ?(P: point) boolean {mengirimkan nilai benar jika P adalah titik origin yaitu titik <0,0>}
Terima Kasih