Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

STRUKTUR DATA Pengantar Endang Purnama Giri, S.Kom., M.Kom. (EPG)

Presentasi serupa


Presentasi berjudul: "STRUKTUR DATA Pengantar Endang Purnama Giri, S.Kom., M.Kom. (EPG)"— Transcript presentasi:

1 STRUKTUR DATA Pengantar Endang Purnama Giri, S.Kom., M.Kom. (EPG)
Annisa, S.Kom., M.Kom. (ANN) Hendra Rahmawan, S.Kom., MT (HRW) Departemen Ilmu Komputer Institut Pertanian Bogor

2 Who am I ? Staf Dept Ilkom, Ibu rumah tangga, 1 suami, 2 anak, umur 4 tahun dan 4 bulan Address: Bukit cimanggu city blok X2 no.6 Telpon: Moto: Selalu menjadi orang yang bermanfaat dan membawa kebahagiaan bagi orang lain

3 Kontrak Perkuliahan Klik Here

4 Peraturan Kuliah Kehadiran Paling lambat 15 menit setelah dosen masuk kelas/lab Berpakaian Rapih Handphone silahkan dinonaktifkan/di-silent

5 Kejujuran Akademis Kecurangan
Setiap kecurangan Akan diberikan imbalan nilai 0 pada mata kuliah ini Menyontek ataupun bekerja sama pada saat ujian Menyalin tugas hasil pekerjaan yang lain Titip tanda tangan kehadiran Sanksi akan diberikan untuk si pelaku maupun yang memberikan kesempatan

6 Motivation: Which Filing System?
OR This one? This one? WHY?

7 Motivation: cluster or queue?
This one? This one? WHY?

8 1 6 9 12 OR 12 9 6 1 WHY? Motivation: logistics case This one?

9 Mengapa Struktur Data Penting?
#include<stdio.h> int nilai1, nilai2, nilai3,…,nilai100; float rataan; void main() { scanf(“%d”,&nilai1); scanf(“%d”,&nilai2); scanf(“%d”,&nilai3); : scanf(“%d”,&nilai100); } #include <stdio.h> main() { int n, i, x[100]; scanf("%d", &n); for (i=0 ; i<n ; i++) scanf("%d", &x[i]); .... return 0; }

10 Mengapa Struktur Data Penting?
Mengapa data disimpan? Supaya bisa diakses diproses untuk masa yang akan datang Mengapa dalam penyimpanan membutuhkan struktur data? Supaya lebih mudah/efisien dalam pengaksesan/pemrosesas data tersebut Mengapa belajar teknik pembentukan struktur data, toh ada bahasa pemrograman yang sudah menyediakan struktur data tersebut? Ada tapi tidak semua

11 Mengapa Kuliah ini Penting?
Untuk dapat memilih struktur data yang tepat, harus mengetahui kelebihan dan kekurangan dari masing-masing struktur data. Untuk dapat memahami struktur data, caranya adalah dengan belajar membuatnya dan menerapkannya dalam berbagai kasus

12 STRUKTUR DATA Struktur adalah cara sesuatu disusun;susunan, bangunan;pengaturan susunan dengan pola tertentu……(KBBI) Struktur data adalah suatu cara menyusun atau memodelkan data sehingga memudahkan pemrogram dalam melakukan pengolahan sesuai dengan kebutuhan. Struktur Data dalam bahasa pemrograman diimplementasikan dalam tipe data

13 Tipe Data Dasar Tipe Data Dasar Pointer Skalar Integer, Riil, char, Boolean Terstruktur Set Array Record File Tipe data dasar adalah tipe data yang telah tersedia secara default dalam suatu bahasa pemrograman (mis: pascal)

14 Abstract Data Type (ADT)
Tipe data abstrak : Tipe data yang tidak tersedia secara default dan didefinisikan sendiri oleh pemrogram. Linked List, Queue, Stack, Tree, Graph.

15 Tipe data dasar pada C Untuk C Int Float Char String

16 Representasi struktur Data
Representasi struktur data yang sederhana dapat dibentuk dari: Record Array Pointer  linked list

17 Record / struct Tipe data bentukan, tipe data baru (kreasi) yang tersusun atas beberapa elemen yang memiliki tipe data dasar ataupun tipe data bentukan yang telah di buat sebelumnya. Pada C dikenal dengan struct

18 Record/struct Record / struct: tipe data terstruktur
elemen-elemen data didalamnya memiliki tipe data yang berbeda Masing-masing record merepresentasikan suatu obyek int nilai; float rataan; Struct nilai_akhir { int nilai; float rataan } ; nilai_akhir x;

19 Array Suatu struktur data yang memiliki tipe data sejenis namun dapat menampung lebih dari satu buah nilai Penyimpanan pada memory secara terurut Pengaksesannya dengan indeks (ilustrasi di papan tulis) Sifatnya statis (dari aspek kapasitas) Pengaksesan relatif cepat

20 Array 8 9 5 2 3 7 Angka[1] Angka[2] Angka[3] Angka[4] Angka[5] Angka[6] baca 1000 angka dan lakukan operasi yang sama terhadap masing-masing angka (?) Array : tipe data terstruktur terdiri dari beberapa elemen data setiap elemen data memiliki tipe data yang sama Pengaksesan elemen array menggunakan nama array dan index  namaarray [index]

21 How to represent a Table ?
X [1] Nama: Tini IPK : 2.68 Status : Lulus X [2] Nama: Tina IPK : 3.65 Status : Lulus X [3] Nama: Tino IPK : 4.00 Status : Lulus X [4] Nama: Toni IPK : 3.21 Status : Lulus X [5] Nama: Tito IPK : 2.89 Status : Lulus Array of record !!

22 Pointer Tipe data yang berisi alamat memory sebagai nilainya
Berisi alamat memory dari variabel yang mempunyai nilai tertentu

23 Pointer Pada variabel statis, lokasi memory ditempati oleh data/nilai sesungguhnya, Pada variabel dinamis, lokasi memory ditempati oleh alamat memori yang menyimpan data sesungguhnya. Variabel dinamis dikenal dengan nama pointer (yang berarti menunjuk ke sesuatu) Lokasi yang ditunjuk biasa dibebut node 100 A 1000 1000 A a. A adalah variabel statis b. A adalah variabel dinamis

24 Linked List Definisi Linked list atau senarai berantai
struktur berupa rangkaian elemen saling berkait, setiap elemen dihubungkan ke elemen lain melalui pointer.

25 Linked List Himpunan kosong, satu ataupun lebih dari elemen (node) yang saling terhubung membentuk suatu deretan (list) Setiap elemen dialokasikan pada alamat memory yang belum tentu terurut Penelusuran dari node ke node Sifatnya dinamis dari aspek kapasitas Relatif lebih rumit dibandingkan array

26 Review Operasi Variabel Pointer Array dan operasinya Array of Record
Array dan Pointer Linked List

27 Review Pointer1 Deklarasi int *ip ``address-of'' operator &
int i = 5; ip = &i; ``contents-of'' operator * printf("%d\n", *ip); ``set whatever ip points to to 7.'' *ip = 7;

28 Review Pointer2 int j = 3; ip = &j; int *ip2; ip2 = ip;

29 Review Pointer3 ip = &i; ip2 = ip; *ip2 = *ip; different?
ip = 5; or *ip = 5; ? Which one is correct? printf("%d\n", ip); or printf("%d\n", *ip); ? Which one is correct?

30 Variabel Statis Banyaknya data terbatas sesuai dengan saat pendeklarasian int Tabel[1..100] Hanya mampu menampung 100 data maksimal Jika kurang, maka untuk menambahkannya dengan mengubah deklarasinya Trouble !!!! Bagaimana bila banyak datanya tidak bisa dipastikan, apakah harus terus menerus merubah deklarasinya ??????

31 Implementasi Pointer sebagai variabel dinamis
Untuk mengalokasikan tempat (menciptakan) yang ditunjuk pertama kali, menggunakan perintah malloc/calloc. x=(int*)calloc(1,sizeof(int)); K=(int*)calloc(1,sizeof(int)); X K 1001 1002 1001 1002 X K

32 Implementasi Pointer X K free (X); free (K);
Untuk menghapus alokasi tempat yang ditunjuk pointer menggunakan perintah free. free (X); free (K); X K

33 Record dan Array Kumpulan data dengan record dan array. mhs[1] mhs[2]
3 4 5 ganjar deny indri mira dwi 1001 1002 1003 1004 1005 struct datamhs { int no_urut ; char nama[20] ; }; struct datamhs mhs[5]; Statis, data tidak dapat ditambahkan secara langsung, alokasi memori juga statis

34 Record dan Pointer Record dan pointer struct simpul{
int no_urut ; char nama[20]; struct simpul *next; }; struct simpul awal, akhir, baru; no_urut nama awal akhir baru null Implementasi kumpulan data dinamis menggunakan struktur diatas terdapat pada linked list

35 Linked List Komponen-komponen Linked List
1. Simpul, terdiri dari dua bagian, data dan pointer data Pointer penunjuk untuk awal, akhir, pencarian dan elemen baru dari linked list Nil atau null, untuk menyatakan bahwa pointer tidak menunjuk kemanapun 4. Elemen akhir linked list adalah simpul yang pointernya bernilai nil

36 Linked List Bentuk Linked List Akhir Awal
Operasi-operasi pada Linked List 1. Penambahan Simpul : awal, tengah, akhir 2. Penghapusan Simpul : awal, tengah, akhir 3. Pencarian Simpul 4. Pembacaan Simpul


Download ppt "STRUKTUR DATA Pengantar Endang Purnama Giri, S.Kom., M.Kom. (EPG)"

Presentasi serupa


Iklan oleh Google