ALGORITMA DAN STRUKTUR DATA

dokumen-dokumen yang mirip
By : Agus Priyanto, M.Kom ST3 Telkom Purwokerto Structure and Pointer

Pointer. ted = &andy;

ARRAY & POINTER. Listing 8.1. EXPENSES.C demonstrates the use of an array. AP3: Array & Pointer

ALUR PROGRAM. SELEKSI KONDISI Statement If a. Bentuk If tunggal sederhana Sintaks : if ( kondisi ) statement ;

KONSEP POINTER DAN LINKED LIST

TUGAS TEORI ALGO LANJUT

SINGLE LINKED LIST (NON CIRCULAR)

BAB IX LINKED LIST (SENARAI BERANTAI)

Pertemuan 3. Perubah Dinamis (Dinamic variable) Suatu perubah yang akan dialokasikan hanya pada saat diperlukan, yaitu setelah program dieksekusi.

LINKED LIST. TUJUAN UMUM Memahami konsep linked list TUJUAN KHUSUS

BAB IX LINKED LIST (SENARAI BERANTAI)

Algoritma dan Struktur Data. Ramos Somya, S.Kom., M.Cs.

KONSEP POINTER DAN LINKED LIST

Pointer di C++ Menurut Frieyadie Edisi Revisi Buku Pemrograman C++ dengan Borland C

Algoritma dan Struktur Data

Pointer, File Header & Makro

KONSEP POINTER DAN LINKED LIST

KONSEP POINTER DAN LINKED LIST

KONSEP POINTER DAN LINKED LIST

MAKALAH POINTER PADA BAHASA C

: Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Linked List. Single Linked List

Algoritma dan Struktur Data. Ramos Somya

MODUL. Pointer. Modul Praktikum C++ Dasar Pemrograman Komputer JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK

Algoritma dan Struktur Data. Pertemuan 5 Pointer

Masukan Judul... Infotype àsebuah tipe terdefinisi yang menyimpan informasi sebuah elemen list

Algoritma dan Struktur Data. Pertemuan 7 Linked List

Algoritma dan Struktur Data. Pertemuan 9 Circular Linked List

Kisi-Kisi Ujian Akhir Semester Algoritma dan Pemrograman Lanjut

Review : Sifat Implementasi Linear List dengan Array

Algoritma dan Struktur Data. Linked List

STRUKTUR DATA Pertemuan 1 s.d 8

PENGENALAN List merupakan sebuah pemikiran/konsep struktur data yang sangat dasar pada pemrograman agar lebih fleksibel. Setiap elemen akan ditambahka

Pemrograman Dasar C. Minggu 9

Lab. Teknik Informatika Struktur Data 1

BAB II LANDASAN TEORI. dengan hanya melihat kamus bahasa. Terdapat banyak makna dalam kata game.

Data structure :Metode LINK LIST. Kusnawi, S.Kom, M.Eng STMIK AMIKOM Yogyakarta

MODUL 6 SINGLE & DOUBLE LINKED LIST

Linked List 6.3 & 7.3 NESTED LOOP

Single Linked List (1)

Senarai berantai. linked list. Pertemuan keenam Struktur data st3telkom.ac.id. by : tenia wahyuningrum & Sisilia Thya Safitri

SINGLE LINKED LIST NON CIRCULAR (SENARAI BERANTAI TUNGGAL TIDAK BERPUTAR)

TIM ASISTEN PRAKTIKUM ALGORITMA DAN PEMROGRAMAN 2017

LAPORAN PRAKTIKUM IX. Oleh:

04. Single Linked List

List Linear (Linked List) Farah Zakiyah Rahmanti 2014

LIST. Dewi Sartika, M.Kom

ALGORITMA DAN STRUKTUR DATA POINTER DAN FUNCTION

Praktikum Algoritma dan Struktur Data

03 LINKED LIST. Slide 0 voice. Slide 1 voice. Slide 2 voice. Thompson Susabda Ngoen 1 P a g e

Algoritma Pemrograman & Struktur Data

Algoritma dan Struktur Data. Pertemuan 8 Doubly Linked List

STRUKTUR DATA (2) Single Linked List

Algoritma Pemrograman & Struktur Data

05. Double Linked List

ALGORITMA DAN PEMROGRAMAN 2. 3 SKS By : Sri Rezeki Candra Nursari

PERTEMUAN VI POINTER 6.1 Tujuan Praktikum 6.2 Teori Penunjang Pointer

Pointer dan Array Dinamik. IF2121 / Algoritma dan Struktur Data Sem /2018

POINTER I. Oleh : Mike Yuliana PENS-ITS

Stack. Pointer ke node pertama dari stack. Bagian deklarasi di atas kita asumsikan disimpan menjadi sebuah header file dengan nama stack.

MAKALAH STRUKTUR DATA. DOSEN PEMBIMBING Nisa miftachurohmah, S.kom., M.Si PENYUSUN SITI JAMILATUL MU ADDIBAH ( )

Struktur Data II. Single Linked List - Non circular

E STRUKTUR DATA & E PRAKTIK STRUKTUR DATA. Pointer & Function. Alfa Faridh Suni, S.T., M.T. PTIK

Tugas Studi Kasus. Linked List SLLNC dengan Head & Tail

LIST BERKAIT(LINKED LIST)

DIKTAT MATA KULIAH PEMROGRAMAN I BAB XI POINTER

Double linked list. Gambar 1. Double linket list dengan empat simpul Deklarasi Double Linked List di dalam Pascal :

Algoritma dan Struktur Data. Pointer Pada Struct

Tipe data dasar merupakan tipe data yang disediakan oleh kompailer, sehingga dapat langsung dipakai Dalam algoritma dan pemrograman yang termasuk dala

Langkah Mudah Belajar Struktur Data Menggunakan C/C++

Modul Praktikum Algoritma dan Struktur Data BAB 6 LINKED LIST

//membuat sebuah tipe data baru yang terdiri dari. //field data bertipe integer //field next merupakan pointer dari list

Pada kondisi ini proses penghapusan tidak bisa dilakukan Kondisi linked list memiliki hanya 1 data{satu simpul} Akhir. Akhir

Struktur Data. Queue (Antrian)

POINTER DASAR PEMROGRAMAN

Pertemuan 7. REVIEW dan QUIS

ALGORITMA & PEMROGRAMAN

POINTER. Tim Alpro Teknik Informatika

12/29/2011 ILKOM IPB 1. Algoritme dan Pemrograman. Address and Pointers. Pointer

(3) BAHAN KAJIAN (materi ajar)

Array VS Linked List

SENARAI BERANTAI (LINK LIST)

STACK (TUMPUKAN) Tumpukan uang koin Tumpukan kotak Tumpukan Buku. Gambar 1. Macam-macam tumpukan

1 MODUL 8 POINTER MODUL 8 POINTER

PRAKTIKUM 11 POINTER 1

ALGORITMA DAN STRUKTUR DATA

Pengenalan Struktur Data. Farah Zakiyah Rahmanti 2014

DIG1G3 Implementasi Struktur Data

Modul Praktikum Algoritma dan Struktur Data

Lecture Notes On Algorithms and Data Structures. Oleh Thompson Susabda Ngoen

MODUL V POINTER DAN STRING

1. Traversing Untuk algoritma traversing sama seperti pada single Link List

STRUKTUR DATA single linked list non circular

Apakah Anda sering kesulitan untuk

ARRAY DINAMIS. Type. Pengenal = Simpul Simpul = Type. (Nama var) : ( Type data)

DOUBLE LINKED LIST. Danang Wahyu Utomo Danang Wahyu Utomo, M.Kom, M.CS

STRUKTUR DATA. Literatur

Pointer. Pointer adalah variabel yang menyimpan alamat dari variabel yang lainnya. Deklarasi pointer : datatype *ptr_name; Contoh:

Gambar 3.1. Circular Single Linked List. Deklarasi bisa dilihat kembali di Single Linked List atau Double Linked List.

Modul Praktikum Algoritma dan Struktur Data

Menghapus Pointer Statement yang digunakan untuk menghapus pointer adalah Dispose, yang mempunyai bentuk umum : Dispose(peubah) ;

Transkripsi:

Modul ke: 03 Fitrianingsih, Fakultas FASILKOM ALGORITMA DAN STRUKTUR DATA OLEH : Skom., MMSI Program Studi Sistem Informasi

Bagian Isi POINTER POINTER DAN ADDRESS POINTER DAN FUNCTION LINKED LIST

ALGORITMA DAN STRUKTUR DATA POINTER PERTEMUAN 3

POINTER Pointer adalah variabel yang nilainya merupakan address dari variabel lain.

POINTER DAN ADDRESS Pointer akan sering digunakan didalam C. Pada umumnya program akan menjadi kompak dan lebih efisien dengan bantuan pointer. Jika kita mendefinisikan suatu variabel menjadi pointer, maka variabel tersebut mengandung address tempat variabel tersebut akan dialokasikan, tetapi bukan nilai address itu sendiri. Karena pointer mengandung suatu objek, kita dapat mengakses obyek tersebut dengan perantaraan sebuah pointer.

POINTER DAN ADDRESS Contoh : X adalah sebuah variabel dengan tipe integer dan PX adalah sebuah pointer variabel dengan tipe integer. Kita akan mendapatkan address suatu objek dengan menggunakan tanda & sebagai address operator. Perintah : PX = X; Menunjukkan bahwa variabel PX mendapat nilai dari address X, atau dapat kita katakan sekarang bahwa : PX menunjuk ke X Address operator & hanya dapat digunakan untuk variabel dan elemen-elemen vektor. Bentuk seperti berikut ini tidak diperbolehkan. &(X+1) dan &3 Dengan menggunakan tanda & sebagai pointer operator, maka fungsi dari operan adalah sebagai address dari objek sasaran. Address inilah yang digunakan untuk memanipulasi objek sasaran.

POINTER DAN ADDRESS Contoh: Y adalah variabel dengan tipe integer, maka perintah Y = *PX; Artinya, nilai Y menunjuk ke PX. Perintah : PX = *X; Y = *PX; Artinya, nilai X diberikan pada Y, dengan kata lain perintah diatas sama juga dengan Y = X; hal ini dapat kita gambarkan seperti dibawah ini: int *PX; int *Y; PX = &Y; int *PX; int *Z; Z = *PX;

Variabel merupakan suatu nilai yang disimpan dalam memory yang dapat diakses dengan identifier. Variabel ini sesunggunhnya disimpan pada suatu alamat didalam memory. Dimana setiap alamat memory akan berbeda dengan yang lainnya (unik). Operator Alamat (Address operator (&)) Pada saat pendeklarasian variable, user tidak diharuskan menentukan lokasi sesungguhnya pada memory, hal ini akan dilakukan secara otomatis oleh kompilerdan operating sysem pada saat run-time. Jika ingin mengetahui dimana suatu variable akan disimpan, dapat dilakukan dengan memberikan tanda ampersand (&) didepan variable, yang berarti "address of".

Contoh : ted = &andy; Akan memberikan variable ted alamat dari variable andy, karena variable andy diberi awalan karakter ampersand (&), maka yang menjadi pokok disini adalah alamat dalam memory, bukan isi variable. Misalkan andy diletakkan pada alamat 1776 kemudian dituliskan instruksi sbb : andy = 25; fred = andy; ted = &andy; Maka hasilnya :

Operator Reference (*) Dengan menggunakan pointer, kita dapat mengakses nilai yang tersimpan secara langsung dengan memberikan awalan operator asterisk (*) pada identifier pointer, yang berarti "value pointed by". Contoh : beth = *ted; (dapat dikatakan:"beth sama dengan nilai yang ditunjuk oleh ted") beth = 25, karena ted dialamat 1776, dan nilai yang berada pada alamat 1776 adalah 25.

POINTER DAN ADDRESS #include <stdio.h> Int Main() { int a; int *b; a = 3; b= &a; /* b mencetak nilai dari address a*/ if (*b == a) /*cek nilai *b = a = 3 */ printf( OK\n ); /*jika b = &a, maka *b = a, jadi *b = a = 3 dan jika = 3, maka *b = a */ }

POINTER DAN VARIABEL FUNCTION Function di C selalu menghasilkan nilai suatu argumen, yang pada dasarnya tidak mengubah nilai variabel yang dipanggil. Apa yang dilakukan jika kita ingin mengubah nilai dari suatu argumen?

ANALISA Contoh : sebuah fungsi swap() yang dapat menukar dua argumen satu dengan lainnya. swap(px,py); int *px,*py; { int temp; temp = *px; *px = *py; *py = temp; }

LINKED LIST Linked list adalah urutan kesatuan record dan hubungan antara satu record dengan record lainnya yang ditentukan oleh suatu pointer, yang dapat digambarkan seperti : Pada gambar diatas dapat kita lihat bahwa setiap record mempunyai satu pointer yang menunjuk ke record yang berikutnya, dengan pengecualian untuk record yang terakhir yang menunjuk ke record yang tidak ada. Record yang tidak ada tersebut kita definisikan dengan nilai Null ( NIL ) yang artinya juga sebagai akhir suatu list.

LINKED LIST Prinsip pada suatu list dapat kita bandingkan seperti suatu rantai yang matanya dihubungan satu sama lain. Mata rantai tersebut dapat kita sosialisasikan dengan record atau node. Jadi, untuk selanjutnya dalam konteks linked list kita menggunakan terminologi NODE untuk pengertian sebuah record.

LINKED LIST Ciri khas suatu node dalam linked list adalah harus selalu terdapat field paling sendikit dua bagian, yaitu: Data Pointer Secara umum linked list dibedakan atas 2 macam, yaitu : Single linked list dan Double linked list

SINGLE LINKED LIST Single linked listmempunyai satu pointer untuk setiap node yang menunjuk ke node berikutnya. Node untuk Single linked list dapat kita gambarkan seperti :

SINGLE LINKED LIST Tulis dalam struktur record yang rekursif untuk mendefiniskan single lingked list dengan C seperti : struct list { char nama[20] /*data*/ struct list *next / * pointer*/ }; Yang dimaksud dengan rekursiv adalah variabel yang dipergunakan adalah variablenya sendiri. Pada contoh record list, kita menentukan record selanjutnya dengan mendeklarasi sebuah pointer variabel *next yang menunjuk ke record itu sendiri. Record struct list contoh diatas mempunyai 2 variable, yaitu : char nama [20] dan struct list *next

didefinisikan sebelumnya, seperti : SINGLE LINKED LIST char nama [20] adalah deklarasi sebuah variable untuk menentukan bahwa data yang akan diolah adalah datatype character dan mempunyai panjang 20 character. Struct list * next adalah deklarasi sebuah variable yang berbentuk record ( struct ) yang fungsinya sebagai pointer yang menunjuk ke record berikutnya. Khusus dalam hal ini record yang ditunjuk oleh pointer *next adalah recordnya sendiri. Tidak tertutup kemungkinan untuk mendeklarasi suatu node yang mempunyai sebuah struktur record yang telah

SINGLE LINKED LIST struct id { char nama [20] char jalan [20] char Kota [20] int Kodepost }; struct list { struct id mahasiswa struct list *list };

KETERANGAN Keterangan : Variable nama, jalan dan kota di struct id di deklarasikan dengan array dari type character, yang panjang characternya dapat disimpan dalam memory sudah ditentukan secara explisit, yaitu maksimal sepanjang 20 character. Jika character yang ditulis melebihi panjang maksimum, maka sisanya akan diabaikan. Berbeda dengan variable kodepost yang di deklarasikan dengan type integer. Disini ditentukan panjang maksimum secara explisit, seperti yang kita lakukan pada variable nama, jalan, dan kota. Karena sistem type integer sudah mempunyai batas nilainya, kita tidak perlu menentukan panjang maksimumnya lagi.

OPERASI DASAR SINGLE LINKED LIST 1. Create / penciptaan struktur data list: untuk menciptakan linked list yang baru dan kosong. 2. Traversal / penelusuran list: untuk melakukan penelusuran terhadap list yang ada. Dimulai dari head sampai dengan next = null. 3. Insert / penyisipan elemen kedalam list: untuk menambahkan satu elemen data kedalam list. Penyisipan ini dapat dilakukan didepan list, dibelakang list atau sesuai dengan keinginan. 4. Delete / penghapusan elemen dari list 5. Fungsi empty / pengecekan apakah list kosong atau tidak 6. Fungsi full / pengecekan apakah list penuh atau tidak 7. Update / mengganti elemen yang ada di list 8. Find_first / mencari elemen pertama 9. Find_next / mencari elemen sesudah elemen yang telah ditentukan 10 Find_X / Mencari Elemen X Dalam List

Terima Kasih Fitrianingsih, SKom., MMSI