BAB. I PENDAHULUAN. A. Definisi Algoritma dan Struktur Data

Ukuran: px
Mulai penontonan dengan halaman:

Download "BAB. I PENDAHULUAN. A. Definisi Algoritma dan Struktur Data"

Transkripsi

1 BAB. I PENDAHULUAN A. Definisi Algoritma dan Struktur Data Ditinjau dari asal usul katanya kata Algoritma sendiri mempunyai sejarah tertentu. Orang hanya menemukan kata Algorism yang berarti proses menghitung dengan angka arab. Anda dikatakan Algorist jika anda menghitung menggunakan Angka Arab. Para ahli bahasa berusaha menemukan asal kata ini namun hasilnya kurang memuaskan. Akhirnya para ahli sejarah matematika menemukan asal kata tersebut yang berasal dari nama seorang ahli matematika dari Uzbekistan Abu Abdullah Muhammad Ibnu Musa Al-Khuwarizmi ( ). Al Khuwarizmi dibaca orang barat menjadi Algorism. Perubahan kata dari Algorism menjadi Algorithm muncul karena kata Algorism sering dikelirukan dengan Arithmetic, sehingga akhiran sm berubah menjadi thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa. Maka lambat laun kata Algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna kata aslinya. Dalam Bahasa Indonesia, kata Algorithm diserap menjadi Algoritma. Kita bisa mendefinisikan algoritma sebagai berikut: Algoritma adalah logika, metode dan tahapan (urutan) sistematis yang digunakan untuk memecahkan suatu permasalahan. Dan kamus besar bahasa Indonesia (Balai Pustaka 1988) secara formal mendefinisikan algoritma sebagai berikut: Algoritma adalah urutan logis pengambilan putusan untuk pemecahan masalah. B. Hubungan Algoritma dan Struktur Data Struktur Data adalah cara pengaturan data agar bisa disimpan memory komputer secara efisien. Struktur data diperlukan dikarenakan kapasitas dari komputer memiliki keterbatasan baik untuk memory maupun untuk kecepatannya. Program adalah kumpulan instruksi komputer, sedangkan metode dan tahapan sistematis dalam program algoritma. Program ini ditulis dengan menggunakan bahasa pemrograman. Jadi bisa kita sebut bahwa program adalah suatu implementasi bahasa pemrograman. Beberapa pakar memberi formula bahwa: program = struktur data + algoritma. Bagaimanapun juga struktur data dan algoritma berhubungan sangat erat pada sebuah program. Algoritma yang baik tanpa pemilihan struktur data yang tepat akan membuat program menjadi kurang baik, semikian juga sebaliknya. Menilai Sebuah Algoritma ketika manusia berusaha memecahkan masalah, metode atau teknik yang digunakan untuk memecahkan masalah kemungkinan bisa lebih dari satu. Dan kita memilih mana yang terbaik diantara teknik-teknik itu. Hal ini sama juga dengan algoritma, yang memungkinkan suatu permasalahan dipecahkan dengan metode dan logika yang berlainan. Lalu bagaimana mengukur mana algoritma yang terbaik? Beberapa persyaratan untuk menjadi algoritma yang baik adalah: a. Tingkat kepercayaannya tinggi ( realibility). Hasil yang diperoleh dari proses harus berakurasi tinggi dan benar. b. Pemrosesan yang efisien ( low cost). Proses harus diselesaikan secepat mungkin dan jumlah kalkulasi yang sependek mungkin. c. Bersifat general. Bukan sesuatu yang hanya untuk menyelesaikan satu kasus saja, tapi juga untuk kasus lain yang lebih general. d. Bisa dikembangkan (expandable). Haruslah sesuatu yang dapat kita kembangkan lebih jauh berdasarkan perubahan requirement yang ada. e. Mudah dimengerti. Siapapun yang melihat, dia akan bisa memahami algoritma anda. Sulit dimengertinya suatu program akan membuat sulit pengelolaan. f. Portabilitas yang tinggi (portability). Bisa dengan mudah diimplementasikan di berbagai platform komputer. Thomson Mary, M.Kom - Dosen STKIP PGRI Sumatera Barat 1

2 Meskipun setiap komputer berbeda teknologinya, tetapi secara umum semua komputer dapat melakukan operasi - operasi dasar dalam pemrograman seperti operasi pembacaaan data, operasi perbandingan, operasi aritmatika, dan sebagainya. Perkembangan teknologi komputer tidak mengubah operasi-operasi dasar itu. Yang berubah hanyalah kecepatan, biaya, atau tingkat ketelitian. Pada sisilainnya setiap program dalam bahasa tingkat tinggi selalu diterjemahkan ke dalam bahasa mesin (1-0) sebelum akhirnya dikerjakan oleh CPU. Setiap instruksi dalam bahasa mesin menyajikan operasi dasar yang sesuai, dan menghasilkan efek yang sama pada setiap komputer. Algoritma yang baik disertai dengan struktur data yang tepat mampu untuk menjadikan program yang baik. Pemilihan algoritma dan struktur data yang tepat harus mempertimbangkan skala data, CPU, memori, serta perlu pengetahuan algoritma dan struktur apa saja yang ada dan mungkin dipakai. Thomson Mary, M.Kom - Dosen STKIP PGRI Sumatera Barat 2

3 BAB. II REPRESENTASI STRUKTUR DATA Dalam struktur data metode digunakan untuk menyusun data dengan efisien yang memperhatikan unsur seperti : type data, koleksi objek, operasi dan sebagainya. Koleksi adalah type data yang berupa rangkaian atau kumpulan data ataupun obyek yang berindeks. Struktur data standard memiliki elemen dengan berbagai type. Koleksi Objek Generik adalah type dari elemen yang ditentukan sewaktu sebuah objek dibuat. sebuah koleksi objek dilakukan dalam tiga tingkatan : a. Definisi fungsional b. Representasi lojik c. Representasi (implementasi) fisik A. Definisi Fungsional Definisi fungsional adalah pendefinisan nama struktur data dan operator-operator yang berlaku pada struktur data tersebut. Membahas tentang nama type dan semua operasi yang dilakukan terhadap type. Secara umum, operasi fungsional terdiri dari : 1. Pembuatan/penciptaan (konstruktor) 2. Penambahan (add, insert) 3. Penghapusan (delete) 4. Perubahan (update) 5. Penggabungan 6. Operasi-operasi lain Selain itu, ada operasi fungsional yang bersifat informasi, misalnya: 1. Selektor 2. Predikat-predikat khusus terhadap type 3. Membership (untuk koleksi objek) Pada tingkatan ini, definisi type sama dengan definisi yang pernah dipelajari pada Dasar pemrograman, dalam notasi Fungsional. B. Representasi Lojik Representasi lojik adalah spesifikasi type dari struktur, yang menyangkut nama type dan spesifikasi semua operator, namun dalam definisi type ini, alamat masih belum ditentukan secara pasti. Representasi lojik tidak tergantung pada memori komputer. Struktur ini memudahkan pemrogram untuk merancang data dan algoritma, serta tidak bergantung pada mesin apapun. Pada konsteks prosedural, pada definisi ini, didefinisikan dengan lebih jelas, operator fungsional menjadi fungsi atau prosedur, dengan spesifikasi parameter yang lebih jelas. Selain itu, dapat pula didefinisikan primitif lain yang secara khusus erat hubungannya dengan prosedural yaitu traversal atau search. C. Representasi (Implementasi) Fisik Representasi fisik adalah spesifikasi dari struktur data sesuai dengan implementasinya dalam memori komputer. Pada dasarnya, hanya ada dua macam implementasi fisik : kontigu atau berkait. Representasi fisik kontigu adalah sekumpulan data yang penempatannya dalam memori setiap elemen ditaruh secara berturutan posisi alamatnya dengan elemen lain. Karena itu untuk mencapai satuan elemen berikutnya, cukup melalui suksesor alamat yang sedang "current". Supaya suksesor tetap terdefinisi, maka tempat yang dialokasikan untuk struktur ini sudah ditetapkan sebelumnya, supaya data tidak "kemana-mana". Dikatakan bahwa struktur ini adalah struktur yang statis, karena alokasi memori dilakukan sekaligus untuk seluruh koleksi. Thomson Mary, M.Kom - Dosen STKIP PGRI Sumatera Barat 3

4 Representasi fisik berkait adalah sekumpulan data yang penempatannya pada memori komputer dapat terpencar-pencar, namun dapat ditelusuri berkat adanya informasi berupa alamat, yang menghubungkan elemen yang satu dengan yang lain. Karena alamat untuk mencapai elemen yang lain ada secara eksplisit, maka alamat yang bakal dipakai dapat saja dialokasikan pada waktunya atau sudah ditetapkan dari awal. Jika alokasi alamat baru diadakan pada waktu diperlukan dan juga dapat dikembalikan, maka memori yang dipakai bisa membesar dan mengecil sesuai dengan kebutuhan. Dikatakan bahwa struktur ini adalah struktur yang dinamis. Sebuah representasi lojik yang sama dapat diimplementasikan dalam satu atau beberapa struktur fisik. Jadi satu representasi lojik dapat mempunyai banyak kemungkinan implementasi fisik. Justru pemilihan struktur fisik yang tepat yang akan menentukan performansi (pemakaian memori dan kecepatan proses) dari program. Perancangan struktur data yang tepat merupakan bagian yang penting pada diktat ini, di samping pemilihan skema program yang sesuai terhadap struktur yang didefinisikan, sesuai dengan skema yang pernah dipelajari pada buku bagian I. Hal ini akan dipelajari melalui kasuskasus yang ditulis pada bagian akhir buku ini. Ilustrasi struktur data yang umum dipakai untuk setiap struktur tersebut adalah : Gambar 2.1. Beberapa Bentuk Penyusunan Data dalam Struktur Data Thomson Mary, M.Kom - Dosen STKIP PGRI Sumatera Barat 4

5 D. Abstract Data Type (ADT) ADT adalah definisi TYPE dan sekumpulan PRIMITIF (operasi dasar) terhadap TYPE tersebut. Selain itu, dalam sebuah ADT yang lengkap, disertakan pula definisi invarian dari TYPE dan aksioma yang berlaku. ADT merupakan definisi statik. Definisi type dari sebuah ADT dapat mengandung sebuah definisi ADT lain. Misalnya: 1. ADT Waktu yang terdiri dari ADT JAM dan ADT DATE 2. GARIS yang terdiri dari dua buah POINT 3. SEGI4 yang terdiri dari pasangan dua buah POINT (Top, Left) dan (Bottom,Right) Type diterjemahkan menjadi type terdefinisi dalam bahasa yang bersangkutan, misalnya menjadi record dalam bahasa Ada/Pascal atau struct dalam bahasa C. Primitif, dalam konteks prosedural, diterjemahkan menjadi fungsi atau prosedur. Primitif dikelompokkan menjadi : 1. Konstruktor/Kreator, pembentuk nilai type. Semua objek (variabel) ber type tersebut harus melalui konstruktor. Biasanya namanya diawali Make. 2. Selektor, untuk mengakses komponen type (biasanya namanya diawali dengan Get) 3. Prosedur pengubah nilai komponen (biasanya namanya diawali Get) 4. Validator komponen type, yang dipakai untuk mentest apakah dapat membentuk type sesuai dengan batasan 5. Destruktor/Dealokator, yaitu untuk menghancurkan nilai objek (sekal igus memori penyimpannya) 6. Baca/Tulis, untuk interface dengan input/output device 7. Operator relational, terhadap type tersebut untuk mendefinisikan lebih besar, lebih kecil, sama dengan, dsb 8. Aritmatika terhadap type tersebut, karena biasanya aritmatika dalam bahasa pemrograman hanya terdefinisi untuk bilangan numerik 9. Konversi dari type tersebut ke type dasar dan sebaliknya ADT biasanya diimplementasi menjadi dua buah modul, yaitu: 1. Definisi/Spesifikasi Type dan primitif. 2. Spesifikasi type sesuai dengan bahasa yang bersangkutan. 3. Spesifikasi dari primitif sesuai dengan kaidah dalam konteks prosedural, yaitu: 4. Fungsi : nama, domain, range dan prekondisi jika ada 5. Prosedur : Initial State, Final State dan Proses yang dilakukan 6. Body/realisasi dari primitif, berupa kode program dalam bahasa yang bersangkutan. Realisasi fungsi dan prosedur harus sedapat mungkin memanfaatkan selektor dan konstruktor. Supaya ADT dapat di-test secara tuntas, maka dalam kuliah ini setiap kali membuat sebuah ADT, harus disertai dengan sebuah program utama yang dibuat khusus untuk men-test ADT tersebut, yang minimal mengandung pemakaian (call) terhadap setiap fungsi dan prosedur dengan mencakup semua kasus parameter. Program utama yang khusus dibuat untuk test ini disebut sebagai driver. Urutan pemanggilan harus diatur sehingga fungsi/prosedur yang memakai fungsi/prosedur lain harus sudah ditest dan direalisasi terlebih dulu. Realisasi ADT dalam beberapa bahasa. Gambar 2.1. Realisasi ADT Dalam Beberapa Bahasa Thomson Mary, M.Kom - Dosen STKIP PGRI Sumatera Barat 5

6 Dalam modul ADT tidak terkandung definisi variabel. Modul ADT biasanya dimanfaatkan oleh modul lain, yang akan mendeklarasikan variabel bertype ADT tersebut dalam modulnya. Jadi ADT bertindak sebagai Supplier (penyedia type dan primitif), sedangkan modul pengguna berperan sebagai Client (pengguna) dari ADT tersebut. Biasanya ada sebuah pengguna yang khusus yang disebut sebagai main program (program utama) yang memanfaatkan langsung type tersebut Contoh dari ADT diberikan dalam bahasa Algoritmik, yaitu : 1. ADT JAM. Contoh tersebut sekaligus memberikan gambaran mengapa bahasa Algoritmik masih dibutuhkan, karena bersifat umum dan tidak tergantung pada pernik-pernik dalam bahasa pemrograman, sehingga dapat dipakai sebagai bahasa dalam membuat spesifikasi umum. 2. ADT POINT. Merupakan standard dalam pemrograman, dan akan selalu dipakai sampai dengan pemrograman berorientasi Objek 3. ADT GARIS. Memberikan gambaran sebuah ADT yang memanfaatkan ADT yang pernah dibuat (yaitu ADT POINT), dan sebuah ADT yang mempunyai konstraint/invariant (persyaratan tertentu). 4. ADT SEGIEMPAT dengan posisi sejajar sumbu X dan Y, didefinisikan sebagai dua buah POINT (TopLeft dan BottomRight) E. Berbagai Bentuk Type Data Pada umumnya dalam setiap bahasa pemrograman berorientasi obyek terdapat tiga level type data, yaitu: (1) Type data primitif, (2) Type data abstrak (Obyek), (3) Type data Collection 1. Type Data Primitif Type data Primitif mulai dikenal pada bahasa pemrograman prosedural seperti: Pascal, C, atau Basic. Dimana type data ini memiliki ukuran memori yang tetap dan pasti, diantaranya: 1. Integer : byte (8 byte), short (16 b), int (32 b), long (64 b) 2. Floating point: float (32 byte), double(64 b), decimal(128 b), bigdecimal(256 b) 3. Booleans: boolean(1 bit) 4. Characters: char(1 byte) 5. String : (koleksi dari char) Contoh pengujian untuk type data primitif adalah sebagai berikut ini : Gambar 2.2. Penerapan Type Data Primitif Untuk Angka Thomson Mary, M.Kom - Dosen STKIP PGRI Sumatera Barat 6

7 Dari listing program dan pengujiannya didapatkan bahwasanya ukuran memori untuk integer int(32 byte), sehingga apabila ditambahkan melebihi kapasitasnya akan berhenti pada nilai yang merupakan yang mewakili nilai maksimal dari 32 byte. Contoh program lainnya untuk operasional karakter dan string pada type data primitif: Gambar 2.3. Penerapan Type Data Primitif Untuk Karakter / Huruf Dari listing program Gambar 2.3 ditunjukkan hasil bahwasanya tipe data char hanya bisa diberikan satu karakter, sedangkan String merupakan set kumpulan dari karakter yang berindeks. Operasional tipe data primitif terbatas pada jenis tipe datanya, sehingga diperlukan konversi atau Casting untuk merubahnya apabila dibutuhkan penggabungan operasional pada tipe data. Tabel 1. Berbagai Type Data Primitif 2. Type Data Objek Tipe data Obyek mulai digunakan pada pemrograman prosedural pascalv ataupun C dengan penggunaan tipe data abstrak dan pointer, yaitu record, struct untuk tipe data kelompok serta pointer untuk penciptaan tipe data dinamis. Pada perkembangannya bahasa pemrograman berorientasi obyek menggunakannya untuk tipe data Obyek dimulai pada bahasa pemrograman LISP dan kemudian disusul Java. Tipe data ini dapat merepresentasikan kelompok tipe data dengan beragam tipe primitif yang bisa diciptakan secara dinamis: Thomson Mary, M.Kom - Dosen STKIP PGRI Sumatera Barat 7

8 Gambar 2.4. Penerapan Type Data Objek dengan Pascal Sedangkan pada Java yang sepenuhnya berbasis obyek dengan menggunakan Class dimana obyek tidak hanya atribut variabel tetapi juga methode. Contoh penggunaan tipe data abstrak dalam bahasa pemrograman Java: Gambar 2.5. Penerapan Type Data Objek dengan Java Dari hasil listing Gambar 2.5 didapatkan bahwasanya tipe data abstrak dapat diberikan masukan baik berupa angka Integer ataupun String sehingga bersifat dinamis. Karena itu tipe data abstrak memiliki ukuran memori yang dinamis atau adaptif sesuai dengan masukan yang diberikan. 3. Type Data Collection Koleksi adalah tipe data yang berupa rangkaian atau kumpulan data ataupun obyek yang berindeks. Terdapat tiga tipe dasar koleksi di Java yaitu: 1. Array, koleksi statis dengan ukuran tetap dan hanya bisa mengelompokkan tipe data yang sama. 2. List, koleksi dinamis dengan ukuran adaptif dan bisa mengelompokkan tipe data yang sama ataupun berbeda 3. Map, koleksi dinamis dengan ukuran adaptif dan bisa mengelompokkan tipe data yang sama ataupun berbeda dengan menggunakan pasangan <key, value>. Thomson Mary, M.Kom - Dosen STKIP PGRI Sumatera Barat 8

9 Gambar 2.6. Penerapan Array Gambar 2.7. Penerapan Koleksi List dan Map Thomson Mary, M.Kom - Dosen STKIP PGRI Sumatera Barat 9

10 F. Standar Evaluasi Algoritma Pada dasarnya untuk menghasilkan algoritma yang baik dalam membuat program diukur berdasarkan kecepatan waktu disaat program tesebut dijalankan serta jauh dari masalah seperti bug program. Namun untuk menjalankan program yang sesuai dengan waktu tersebut diperlukan komputer yang canggih serta kualitas programmer dalam membuat program tersebut. Evaluasi algoritma merupakan cara untuk menentukan apakah program sudah sesuai dengan standar-standar algoritma dalam pembuatannya. Untuk itu evaluasi menggunakan complexity ( Big Oh Notation ). Complexity adalah waktu yang diperlukan untuk menjalankan sebuah algoritma pada sebuah komputer virtual, yang direpresentasikan secara kasar sebagai fungsi dari n (n adalah banyaknya input data) dimana Karakteristik dari complexity tidak dipengaruhi oleh hardware computer maupun kemampuan programming O : representasi worst-case complexity O (n 2 ) : Complexity algoritma berbanding lurus terhadap n 2 (n adalah banyaknya input data) Karakteristik dari worst case complexity Dua operasi yang berturutan dengan complexity masing-masing dalam fungsi f dan g, maka complexity total adalah yang terbesar antara f dan g Bila sebuah operasi dengan complexity O(f(n)) dijalankan pada O(g(n)) kali, maka complexity total operasi tersebut adalah f x g Big Oh notation merepresentasikan evaluasi algoritma terhadap input data sebanyak n dimana nilai yang berada dalam tanda kurung () adalah 1, log n, n, n 2, n pangkat bilangan bulat yang lain Notasi ini mengabaikan koefisien berupa konstanta seperti 2, 100, 0.1, atau berupa variabel a Contoh: O(2n) ditulis sebagai O(n), karena 2 diabaikan Contoh penggunaan notasi Big Oh Evaluasi : Thomson Mary, M.Kom - Dosen STKIP PGRI Sumatera Barat 10

11 BAB. III METODE STRUKTUR DATA ARRAY Dalam Struktur Data diperlukan meotde-metode untuk menyusun data sesuai dengan keadaan yang terbaik bagi program dalam mengeksekusinya dengan cara paling cepat dan efektif dalam pemanfaatan memori komputer. Berikut ini, ada beberapa metode yang digunakan dalam Struktur Data yaitu : 1. Metode Pengurutan Data Array A. Bubble sort B. Stack (Push & POP) LIFO (Last In First Out) C. Queue (Enqueue & Dequeue) FIFO (First In First Out) D. Implementasi Linier List (sisipan) E. Implementasi Stack (Reverse Polish Notation/RPN)/Posfix Notation F. Implementasi Queue (Linier and Circular) 2. Metode Struktur Data Linked List A. Simple Linked List B. Double Linked List C. Circular Linked D. Multi List Structure 3. Metode Struktur Data Tree A. Tree Structure B. Binary Tree (Red Black Tree, AVL Tree C. Tree Transfersal D. Implementasi Tree 4. Metode Pencarian Data (Searching) A. Linier Search B. Binary Search C. Binary Search Tree A. Bubble sort Bubble sort digunakan untuk mengurutkan data dari yang terbesar hingga terkecil melalui proses iterasi atau tahap-tahap. Jika terdapat banyaknya data (n) maka data diurutkan dengan cara iterasi seperti berikut ini : n Data ke n 1. Step ke-1 : Periksalah nilai dua elemen mulai urutan ke-n sampai urutan ke-1, jika nilai kiri < dari nilai kanan maka tukarkan kedua data tersebut. 2. Step ke-2 : Periksalah nilai dua elemen mulai urutan ke-n sampai urutan ke-2, jika nilai kiri < dari nilai kanan maka tukarkan kedua data tersebut. 3. Step ke-n-1 : Periksalah nilai dua elemen mulai urutan ke-n sampai urutan ke-n-1, jika nilai kiri < dari nilai kanan maka tukarkan kedua data tersebut. Maka penyelesaiannya sebagai berikut ini : Iterasi ke-1 : Iterasi ke-2 : Iterasi ke-3 : Iterasi ke-4 : Dari iterasi di atas terdapat tiga iterasi yang bisa dilakukan. Dengan nilai 10 (terbesar) berada pada tempat paling kiri dan nilai 4 (terkecil) berada pada tempat paling kanan Thomson Mary, M.Kom - Dosen STKIP PGRI Sumatera Barat 11

12 Gambar 2.8. Penerapan Bubble Sort Dalam Bahasa Pemrograman C Evaluasi : Urutkanlah deret angka berikut ini dengan bubble sort dan tentukan berapa banyak step / iterasi yang diperlukannya serta tuliskan langkah disetiap stepnya : Thomson Mary, M.Kom - Dosen STKIP PGRI Sumatera Barat 12

13 B. Stack (Push and POP) Definisi Stack adalah struktur data dalam bentuk tumpukan dimana penambahan dan penghapusan elemen dilakukan pada elemen list yang terletak di paling atas. Untuk penambahan dilakukan dengan menumpuk elemen pada atasnya sedangkan untuk menghapus dilakukan pada elemen yang paling diatas terlebih dahulu, teknik ini dinamakan : LIFO (Last In First Out) Pada operasi PUSH : Menambahkan elemen pada sebuah Stack caranya seperti gambar berikut ini : Gambar 3.1. Oprasi Stack : Menambah Elemen (PUSH) Thomson Mary, M.Kom - Dosen STKIP PGRI Sumatera Barat 13

14 Untuk operasi POP : Menghapus elemen pada sebuah Stack caranya seperti gambar berikut ini : Gambar 3.2. Oprasi Stack : Menghapus Elemen (POP) Stack Overflow : Menambahkan data pada sebuah Stack yang telah penuh Stack Underflow : Menghapus data pada sebuah Stack yang sudahb kosong Thomson Mary, M.Kom - Dosen STKIP PGRI Sumatera Barat 14

15 C. Queue (Enqueue and Dequeue) Definisi Queue adalah struktur data dalam bentuk antrian dimana penambahan dan penghapusan elemen dilakukan pada elemen list yang terletak di paling ujung pertama data. Untuk penambahan dilakukan dibelakang elemen pertama masuk sedangkan untuk menghapus dilakukan pada elemen yang paling pertama masuk terlebih dahulu, teknik ini dinamakan : FIFO (First In First Out) Pada operasi Enqueue : Menambahkan elemen pada sebuah queue caranya seperti gambar berikut ini : Gambar 3.3. Operasi Queue : Menambahkan Elemen (ENQUEUE) Untuk operasi berikut ini : DEQUEUE : Menghapus elemen pada sebuah queue caranya seperti gambar Thomson Mary, M.Kom - Dosen STKIP PGRI Sumatera Barat 15

16 Gambar 3.4. Operasi Queue : Menghapus Elemen (DEQUEUE) Evaluasi : 1. Gambarkan kondisi stack setelah dilakukan operasi berikut ini : push (10); push (2); pop (); push (20); pop (20); push (5); push (30); push (35); push (40); pop (35); push (5); push (7); pop (30); 3. enqueue (12); enqueue (15); enqueue (20); push (17); push (24); enqueue (56); dequeue (20); pop (17); D. Implementasi Linier List Linier List adalah sekumpulan elemen bertype sama yang mempunyai keterurutan tertentu yang setiap elemennya terdiri dari 2 bagian. Sebuah linier list dikenali : 1. Elemen pertamanya, biasanya melalui alamat, elemen pertama disebut : First 2. Alamat elemen berikutnya ( suksesor ), jika kita mengetahui alamat sebuah elemen, yang dapat diakses melalui field NEXT 3. Setiap elemen mempunyai alamat, yaitu tempat elemen disimpan dapat diacu. Untuk mengacu sebuah elemen, alamat harus terdefenisi. Dengan alamat tersebut Informasi yang tersimpan pada elemen list dapat diakses. 4. Pada sebuah Linear List, penyisipan dan penghapusan elemen dapat dijalankan di sembarang posisi 5. Penambahan dan penghapusan elemen pada stack/queue dilakukan di posisi terdepan atau posisi terbelakang saja Thomson Mary, M.Kom - Dosen STKIP PGRI Sumatera Barat 16

17 Gambar 3.5. Posisi Menambahkan dan Menghapus pada Stack dan Queue Untuk dapat menambahkan data dengan linier list maka diperlukan penyisipan data seperti berikut ini : Gambar 3.6. Penyisipan Data Baru dengan Linier List E. Implementasi Stack (Reverse Polish Notation) / Postfix Notation Penambahan dan penghapusan pada Stack dilakukan pada elemen paling atasnya (Top). Terdapat 4 operasi utama dalam implementasi stack : 1. Init : Inisialisasi Stack (mengosongkan stack) 2. Push : Menambahkan data pada stack 3. Pop : Menghapus data dari stack 4. Empty : Memeriksa apakah stack sudah kosong atau belum Thomson Mary, M.Kom - Dosen STKIP PGRI Sumatera Barat 17

18 Gambar 3.7. Penambahan dan Penghapusan Elemen Menggunakan Stack Reverse Polish Notation (RPN) adalah operasi dengan merubah posisi operator berada dibelakang dari datanya. Nama lain : postfix notation Implementasi RPN memakai stack 1. Jika angka, tambahkan pada stack 2. Jika operator, turunkan ( POP) dua buah data dari stack, lakukan perhitungan, dan tambahkan (PUSH) hasilnya pada stack 3. Cara penulisannya diperlihatkan seperti gambar berikut ini Gambar 3.8. Cara Penulisan RPN Berikut contoh penggunaan RPN dalam mengolah data : Thomson Mary, M.Kom - Dosen STKIP PGRI Sumatera Barat 18

19 Gambar 3.9. Penerapan RPN dengan Stack Evaluasi : Thomson Mary, M.Kom - Dosen STKIP PGRI Sumatera Barat 19

20 F. Implementasi Queue / Linier and Circular Untuk implementasi Queue, harus merubah posisi dua buah pointer, yaitu pointer yang menunjuk FRONT dan pointer yang menunjuk ke REAR. Ada dua cara untuk implementasi queue yaitu dengan linier dan circular. 1. Cara linier Tempatkan data pada sebuah array, dan setlah pointer agar menunjuk ke posisi FRONT dan REAR a. Saat data ditambahkan ke queue, naikkan posisi pointer REAR Gambar Tampilan Front dan Rear Pada Implementasi Queue Ditambahkan b. Saat data dihapus dari queue, naikkan posisi pointer FRONT Gambar Tampilan Front dan Rear Pada Implementasi Queue Dihapus Pada saat FRONT=REAR maka queue telah dikosongka. Ada 2 permasalahan yang terdapat dengan cara linier ini adalah : Thomson Mary, M.Kom - Dosen STKIP PGRI Sumatera Barat 20

21 1. Front dari rear selalu bertambah secara motononik, sehingga memerlukan array dengan ukuran tak terhingga 2. Pointer selalu bergerak ke kanan sehingga tak pernah untuk kembali 2. Cara Circular (Ring Buffer) Array dibuat seperti cincin, dimana elemen terakhir disambungkan dengan elemen pertama. Untuk menambahkan data ke queue nilai rear dinaikkan satu. Sedangkan untuk menghapus data dari queue nilai front dinaikkan satu. Queue dinyatakan kosong pada saat front==rear a. Saat data ditambahkan ke queue pada Ring, naikkan posisi REAR satu data Gambar Menambahkan Data dengan Ring Buffer a. Saat data dihapuskan ke queue pada Ring, naikkan posisi FRONT satu data Thomson Mary, M.Kom - Dosen STKIP PGRI Sumatera Barat 21

22 Gambar Mengurangkan Data dengan Ring Buffer Pada saat rear = front maka queue dinyatakan kosong atau terisi penuh Gambar RING = FRONT Untuk FRONT = REAR agar data tidak pernah full sehingga data tidak akan saling tindih maka diperlukan FLAG untuk membatasinya. Gambar RING = FRONT dengan FLAG Evaluasi : 1. Mengapa cara penyusunan elemen pada Queue Sering disebut tersusun FIFO? 2. Penghapusan elemen pada Queue selalu dilakukan pada elemen yang paling depan, bagaimana jika terpaksa harus menghapus elemen yang paling belakang? Thomson Mary, M.Kom - Dosen STKIP PGRI Sumatera Barat 22

23 BAB IV METODE STRUKTUR DATA LINKED LIST Selain dengan menggunakan array, queue juga dapat dibuat dengan menggunakan linked list. Alasan penggunaan linked list adalah sebagai berikut ini : 1. Mudah untuk menambahkan dan menghapus elemen (pada array tidak mungkin menambahkan elemen, karena banyaknya elemen sudah ditentukan dari awal) 2. Panjang list bisa diubah dengan bebas (panjang array fixed) 3. Mudah untuk menyambungkan beberapa list, maupun memutuskannya (array tidak bisa) 4. Memungkinkan user mendesain struktur data yang kompleks A. Array vs Linked List Elemen (disebut dengan CELL, atau SEL dalam bahasa Indonesia) yang mungkin terletak terpisah-pisah di memory, disambungkan dengan pointer. Tiap sel berisi dua informasi : nilai dan pointer ke sel berikutnya. Berikut ini perbandingan antara array dengan linked list : B. Null Pointer Gambar 4.1. Perbandingan Antara Array dengan Linked List 1. Nilai yang dimiliki sebuah pointer adalah address pada memory dimana data tersimpan Thomson Mary, M.Kom - Dosen STKIP PGRI Sumatera Barat 23

24 2. Pointer yang tidak menunjuk ke address manapun disebut dengan NULL pointer. Maksudnya, satu kondisi khusus dimana pointer itu belum diset dengan sebuah address tertentu 3. Pada stdio.h biasanya didefinisikan dengan nilai 0 4. Saat fungsi fopen,malloc dieksekusi, jika terdapat error, maka nilai yang dikembalikan adalah NULL 5. Null disimbolkan dengan kotak bergaris seperti ini : C. Akses Sekuensial Akses Sekuensial berisi sel-sel dimana sel tersebut terdiri atas (value + pointer ke sel berikutnya). Akses hanya bisa dilakukan searah saja, dari ujung depan ke arah belakang. Akses berlawanan arah tidak dapat dilakukan. Cara menampilkan isi seluruh list : Gambar 4.2. Akses Sekuensial Linked List Cara menampilkan isi sel tertentu adalah sebagai beikut ini : 1. Pada array (misalnya nama array: a), isi sel tertentu dapat ditampilkan dengan cara a[nomer urut sel keberapa]. Misalnya a[5] akan menampilkan isi sel ke-6. Hal ini karena satu sel dengan sel yang lain terletak pada posisi yang berurutan di memory. 2. Pada linked list, kita tidak tahu secara langsung, sel itu terletak dimana dalam memory. Akses harus dilakukan satu persatu, urut mulai dari sel terdepan 3. Contohnya seperti gambar berikut ini : Thomson Mary, M.Kom - Dosen STKIP PGRI Sumatera Barat 24

25 Gambar 4.3. Cara Menampilkan Isi Sel Tertentu Pada Linked List D. Operasi Pada Linked List Untuk menambahkan data pada linked list sebagai berikut ini : 1. Menambahkan sel baru yang terletak setelah sebuah sel tertentu 2. Menambahkan sel baru pada posisi terdepan sebuah linked list Untuk menghapus data pada linked list sebagai berikut ini : 1. Menghapus sebuah sel yang terletak setelah sebuah sel tertentu 2. Menghapus sel pada posisi terdepan sebuah linked list 3. Syarat-syarat pada perbatasan Untuk menambahkan sel baru sebagai berikut ini : 1. Membuat sel yang akan ditambahkan (memakai malloc) 2. Mengeset value pada sel itu 3. Mengeset pointer next yang menunjukkan koneksi antara satu sel dengan yang lain 1. Penambahan Sel Baru Catatan penting : pada linked list penambahan sel baru hanya dapat dilakukan pada posisi sesudah sel tertentu, tetapi tidak dapat ditambahkan pada posisi sebelum sel tersebut. Gambar 4.4. Contoh Penambahan Sel Baru Pada Linked List 2. Penambahan Sel Baru Setelah Sel yang Ditunjuk Pointer X 1. Sediakan pointer p yang menunjuk ke sebuah sel struct CELL *p; 2. Buatlah sebuah sel baru dengan malloc() (alokasi memory) yang dimulai dengan address yang ditunjukkan oleh pointer p 3. Set-lah value pada sel p 4. Modifikasi pointer p->next = x->next; x->next = p; Thomson Mary, M.Kom - Dosen STKIP PGRI Sumatera Barat 25

26 Gambar 4.5. Contoh Penambahan Sel Baru yang Ditunjuk Pointer X 3. Penambahan Sel Baru Pada Posisi Terdepan Sebuah Linked List (Cara 1) Cara menambahkan sel baru pada posisi terdepan sebuah linked list berbeda dengan cara menambahkan sel ke tengah list tersebut. Penambahan tersebut memakai pointer header yang menunjukkan posisi terdepan sebuah linked-list. 1. Sediakan pointer p yang menunjuk ke sebuah sel struct CELL *p; 2. Buatlah sebuah sel baru dengan malloc() (alokasi memory) yang dimulai dengan address yang ditunjukkan oleh pointer p 3. Set-lah value pada sel p 4. Substitusikan address pada header ke bagian next pada p p->next = header; 5. Updatelah nilai header dengan address p header = p; Gambar 4.6. Contoh Penambahan Sel Baru Pada Posisi Terdepan Sebuah Linked List 4. Penambahan Sel Baru Pada Posisi Terdepan Sebuah Linked List (Cara 2) Memakai cara yang sama dengan list (1) dengan menambahkan elemen pada tengah-tengah sebuah list. Thomson Mary, M.Kom - Dosen STKIP PGRI Sumatera Barat 26

27 1. Header tidak didefinisikan sebagai sebuah pointer, melainkan sebuah sel struct CELL header; 2. Tempatkan next pada header agar menunjuk ke posisi terdepan pada list,dan header dianggap sebagai sel ke-0 3. Masukkan elemen p pada posisi sesudah elemen ke-0 4. Selanjutnya sama dengan proses penambahan sel baru pada penjelasan sebelumnya (modifikasi next) Gambar 4.7. Contoh Penambahan Sel Baru Pada Posisi Terdepan Sebuah Linked List (Cara 2) 5. Menghapus Sebuah Sel Pada Linked List Catatan penting Pada linked list, kita bisa menghapus sebuah sel yang terletak pada posisi sesesudah sel tertentu. Tetapi kita tidak Sesudah sel tertentu tetapi kita tidak dapat menghapus sebuah sel yang ditunjuk oleh pointer itu sendiri. Adapun cara untuk menghapus sel tersebut adalah : 1. Periksa pointer NULL 2. Mengubah pointer next (skip 1 sel) 3. Mengeluarkan isi sel yang dihapus (optional) 4. Bebaskan memory yang dialokasikan memakai fungsi free() Gambar 4.7. Menghapus Sel Pada Linked List 6. Menghapus Sebuah Sel Sesudah Sel X 1. siapkan pointer yang akan menunjuk ke sel yang akan dihapus struct CELL *p; 2. Periksalah apakah sel yang dihapus itu NULL atau tidak if(x->next == NULL) fatal_error( sel tidak dapat dihapus karena tidak ada sel lagi sesudahnya ); Thomson Mary, M.Kom - Dosen STKIP PGRI Sumatera Barat 27

28 3. Set-lah agar pointer p menunjuk ke sel yang ingin dihapus p = x->next; 4. Sesuaikan next dari sel sel x (skip p) x->next = p->next; 5. Print-lah isi sel yang ditunjuk oleh pointer p 6. Bebaskan memory yang ditunjuk oleh pointer p free(p); Gambar 4.8. Menghapus Sel Sesudah Sel X 7. Menghapus Sel Pada Posisi Terdepan Sebuah Linked List (Cara 1) 1. Siapkan pointer p struct CELL *header, *p; 2. Periksa apakah header NULL atau tidak if(header == NULL) fatal_error( List kosong, sehingga penghapusan sel tidak dapat dilakukan ); 3. Set-lah address elemen terdepan ke p p = header; 4. Update-lah pointer header header = p->next; 5. Tampilkan isi sel yang ditunjuk oleh p (optional) 6. Bebaskan memory yang ditunjuk oleh pointer p Gambar 4.9. Menghapus Sel Pada Posisi Terdepan Sebuah Linked List 8. Menghapus Sel Pada Posisi Terdepan Sebuah Linked List (Cara 2) 1. Header dideklarasikan sebagai sebuah sel. p dideklarasikan sebagai pointer yang menunjuk ke sel yang ingin dihapus struct CELL header, *p; 2. Substitusikan address header ke pointer x x=&header Thomson Mary, M.Kom - Dosen STKIP PGRI Sumatera Barat 28

29 3. Selanjutnya pergunakan cara yang sama dengan cara menghapus sel yang berada di tengahtengah sebuah list. Yaitu menghapus sel yang terletak sesudah sel yang ditunjuk oleh pointer x. Gambar Menghapus Sel Pada Posisi Terdepan Sebuah Linked List (Cara 2) KESIMPULAN : a. Linked list terdiri dari komponen-komponen berikut : value dan pointer ke sel berikutnya b. Data yang tersimpan (value) pada linked -list diakses dengan cara sekuensial. Untuk melihat value dari suatu sel yang berada di tengah list, kita harus mengikuti alur list, mulai dari sel pertama dan seterusnya sampai bertemu dengan sel yang value-nya ingin ditampilkan c. Penambahan sel, penghapusan sel dapat dilakukan dengan cara mengubah pointer d. Ada dua cara operasi penambahan dan penghapusan sel yang terdepan. Yang lebih mudah adalah dengan memakai header bukan sebagai pointer, melainkan sebagai sel ke-0 e. Syarat syarat berlaku untuk linked list yaitu : i. Bagaimana menghandle sel terdepan dan terbelakang ii. Proses saat list kosong iii. Program linkedlist.c (Angka diurutkan, nilainya semakin tinggi) iv. Sel yang jadi pusat operasi (pointer p) v. Pointer yang menunjuk ke address sel sebelumnya (pointer q) Gambar Linked List dan Syarat syarat Berlakunya Thomson Mary, M.Kom - Dosen STKIP PGRI Sumatera Barat 29

30 EVALUASI : Thomson Mary, M.Kom - Dosen STKIP PGRI Sumatera Barat 30

31 BAB V METODE STRUKTUR DATA TREE A. Definisi Tree Struktur data yang menunjukkan hubungan bertingkat (memiliki hierarkhi) seperti direktori folder pada eksplorer windows. Sebuah pohon adalah himpunan terbatas tidak kosong, dengan elemen yang dibedakan sebagai berikut : 1. Sebuah elemen yang dibedakan dari yang lain yang disebut sebagai AKAR (root) dari pohon 2. Elemen yang lain (jika masih ada) dibagi -bagi menjadi beberapa sub himpunan yang disjoint dan masing-masing sub himpunan tersebut adalah pohon yang disebut sebagai sub pohon dari pohon tersebut. Beberapa Istilah dari tree sebagaimana berikut : 1. Hutan : Hutan adalah sequence (list) dari pohon 2. Simpul (Node) : Simpul adalah elemen dari pohon yang memungkinkan akses pada sub pohon dimana simpul tersebut berfungsi sebagai Akar 3. Cabang : Cabang adalah hubungan antara Akar dengan sub pohon 4. Ayah : Akar dari sebuah pohon adalah Ayah dari sub pohon 5. Anak : Anak dari sebuah pohon adalah Sub pohon 6. Saudara : Saudara adalah simpul-simpul yang mempunyai Ayah yang sama 7. Daun : Daun adalah simpul terminal dari pohon. Semua simpul selain Daun adalah simpul bukan terminal 8. Jalan (Path) : Jalan adalah suatu urutan tertentu dari Cabang 9. Derajat : Derajat sebuah pohon adalah banyaknya anak dari dari pohon tersebut. Jika sebuah simpul berderajat N disebut pohon N-aire i. Disebut pohon 1-aire/uner ii. Disebut pohon 2-aire/biner 10.Tingkat (Level) : Level pohon adalah panjangnya jalan dari Akar sampai dengan simpul yang bersangkutan. Panjang dari jalan adalah banyaknya simpul yang dikandung pada jalan tersebut. Akar mempunyai tingkat sama dengan 1. Dua buah simpul disebut sebagai Sepupu jika mempunyai tingkat yang sama dalam sebuah pohon. 11.Kedalaman (Tinggi) : Kedalaman (Tinggi) dari pohon adalah nilai maksimum dari tingkat simpul yang ada pada pohon tersebut. Kedalaman adalah panjang maksimum jalan dari Akar menuju ke sebuah daun 12.Lebar : Lebar sebuah Pohon adalah maksimum banyaknya simpul yang ada pada suatu Tingkat (Level) Gambar Nama dan Penggunaan Komponen Pada Tree Thomson Mary, M.Kom - Dosen STKIP PGRI Sumatera Barat 31

32 B. Hubungan Antar Komponen Tree Gambar Hubungan Antar Komponen Sebuah tree didefinisikan sebagai struktur y ang dibentuk secara recursive oleh kedua rule berikut: 1. Sebuah node adalah sebuah tree. Node satu-satunya pada tree ini berfungsi sebagai root maupun leaf. 2. Dari k buah tree T1 ~ T k, dan masing-masing memiliki root n1 ~ nk jika node n1 ~ nk, akan diperoleh sebuah tree baru T yang memiliki root n, dalam kondisi ini, tree T1~Tk menjadi sub tree dari tree T. Root dari sub tree n1~nk adalah anak dari node n. Gambar Definisi Tree Thomson Mary, M.Kom - Dosen STKIP PGRI Sumatera Barat 32

33 Ordered Tree 1. Antar sibling terdapat urutan usia Node yang paling kiri berusia paling tua (sulung), sedangkan node yang paling kanan berusia paling muda (bungsu) 2. Posisi node diatur atas urutan tertentu Unordered tree Antar sibling tidak terdapat urutan tertentu Unordered Tree 1. Antar sibling tidak terdapat urutan tertentu C. Binary Tree dan Implementasinya Definisi Binary Tree : 1. Sebuah tree yang kosong juga merupakan sebuah binary tree 2. Binary tree harus memenuhi salah satu syarat berikut a. Tidak memiliki anak b. Memiliki subtree di sebelah kiri (left subtree) c. Memiliki subtree di sebelah kanan (right subtree) d. Memiliki baik left subtree maupun right subtree Thomson Mary, M.Kom - Dosen STKIP PGRI Sumatera Barat 33

34 Gambar Penulisan Binary Tree Gambar Implementasi Binary Tree EVALUASI : Gambar Contoh Data Implementasi Binary Tree Thomson Mary, M.Kom - Dosen STKIP PGRI Sumatera Barat 34

35 BAB VI METODE STRUKTUR DATA SEARCHING A. Linier Search Linier Search memiliki cara kerja seperti berikut ini : Thomson Mary, M.Kom - Dosen STKIP PGRI Sumatera Barat 35

36 Dapat dijelaskan bahwa untuk searching dengan linier search akan dicari terlebih dahulu dimana key dari data tersebut, disini key berperan sebagai identitas / ID yang menentukan dimana letak data tersebut. Ketika akan mencari data dengan nilai 22 maka yang dicari sebenarnya adalah ID dari 22 tersebut yaitu pada tabel ke-6 atau i=6. Complexity Seacrh adalah dengan tabel rumus seperti berikut B. Binary Search Karakteristik dari Binary Search Tree adalah : 1. Complete binary Search tree : Binary tree yang untuk semua leaf memiliki jarak (panjang/tinggi) sama terhadap root 2. Banyaknya node pada complete binary tree adalah 2 n 1 3. Complete binary tree dalam arti yang lebih luas, adalah jika selisih jarak terpanjang (root ke leaf) dan jarak terpendek kurang dari atau sama dengan 1 (contoh gambar a) 4. Panjang dari root ke leaf, dengan banyak node n adalah log 2 n Computational complexity proses searching pada complete binary search tree O (log n) 6. Kondisi terburuk: gambar (b) dengan proses searching O(n) Thomson Mary, M.Kom - Dosen STKIP PGRI Sumatera Barat 36

37 Gambar 6.1. Karakteristik Binary Tree Cara Kerja Binary Search : Thomson Mary, M.Kom - Dosen STKIP PGRI Sumatera Barat 37

38 Thomson Mary, M.Kom - Dosen STKIP PGRI Sumatera Barat 38

39 Thomson Mary, M.Kom - Dosen STKIP PGRI Sumatera Barat 39

40 Thomson Mary, M.Kom - Dosen STKIP PGRI Sumatera Barat 40

41 1. Fungsi Malloc () Malloc merupakan fungsi standart untuk mengalokasinkan memori Prototipe dari fungsi malloc adalah : void malloc (int jml_byte); Banyaknya byte yang akan dipesan dinyatakan sebagai parameter fungsi. Untuk return value dari fungsi ini adalah sebuah pointer yang tak bertipe ( pointer to void) yang menunjuk ke buffer(tempat penyimpanan sementara) yang dialokasikan. Pointer harus dikonversi pada tipe data yang sesuai ( dengan menggunakan type cast) agar bisa mengakses data yang disimpan dalam buffer. Kegunaan dari malloc adalah mengembalikan pointer kesejumlah n byte ruang memori yang belum di inisialisasi. Apabila tidak terpenuhi akan mengembalikan ke nilai NULL. Contoh dari malloc() : int *x; x = (int*) malloc (3 * sizeof(int)); if(x==null) { printf( Error di malloc\n ); exit(0); } else { printf( Lakukan operasi memori dinamis ); } Sintak tersebut artinya kita mengalokasikan ruang memori sebanyak 12 byte (berasal dari 3 x 4 ) untuk menyimpan tipe data int dan mencatat ruang tersebut kedalam pointer x ( *x). Nilai 4 berasal dari ukuran tipe data int yang dituliskan dengan sizeof(int). Ukuran dari type data int adalah 4 byte. Jadi apabila kita ingin mengalokasikan ruang memori untuk tipe data double berukuran 8 byte, kita dapat menuliskan : double *x; P = (double*) malloc (8) ; 2. Fungsi calloc() Prototipe dari fungsi calloc() : void *calloc (size_t n, size_t size); Fungsi calloc() akan mengembalikan pointer ke sebuah array yang terdiri dari n elemen data dengan size (ukuran) yang telah ditentukan sebelumnya. Apabila tidak terpenuhi akan mengembalikan ke nilai NULL. Berbeda dengan fungsi malloc() yang tidak melakukan inisialisasi, pada fungsi calloc() ini ruang yang dialokasikan akan diisialisasi dengan 0. Contoh sintak: int *Q ; P= (int*) calloc (50, sizeof(int)); Jadi sintak tersebut mengalokasikan 200 byte ruang memori (yang berasal dari 50 x 4). Jadi terdapat 50 elemen array yang masing-masing elemen memiliki ukuran 4 byte. 3. Fungsi realloc() Kegunaan dari fungsi dari ralloc adalah mengalokasikan ulang memori yang telah digunakan dalam fungsi malloc () dan calloc (). Thomson Mary, M.Kom - Dosen STKIP PGRI Sumatera Barat 41

42 sintak : void *realloc(void *p, size_t size); Fungsi realloc hanya digunakan jika alokasi memori yang diigunakan pada fungsi malloc () dan fungsi calloc () kurang beras. Fungsi dari realloc () adalah mengembalikan pointer keruang baru yang ditambahkan, atau mengembalikan nilai NULL apabila permintaan ruang tersebut tidak terpenuhi. Contoh : int *x; x = (int *) calloc (10, sizeof (int)) ; /* memesan ruang baru 40 byte*/ realloc((int*) x, 80 ); /* memesan ruang sebanyak 40 byte lagi */ 4. Fungsi free () Fungsi dari free adalah untuk membebaskan memori yang telah dipakai dalam fungsi malloc(), calloc(). sintak : void *free (void *memblock) fungsi ini untuk menghindari adanya pemborosan memori atau terjadi kebocoran memori ( memori leak ) maka harus melakukan dealokasi terhadap ruang-ruang memori yang sebelumnya dialokasikan. contoh : int *x ; x=(int *) malloc (sizeof(int)); free(x); Jika kita menggunakan bahsa C++ fungsi standar yang dipakai untuk new contoh: nilai=new int; mengalokasikan memori adalah hasil pengalokasikan diatas ialah suatu alamat yang menunjukkan byte pertama dari memori yang dialokasikan diheap.jika alokasi gagal bisa dikarenakan tidak mencukupinya memori pada heap sehingga akan mengembailkan nilai NULL. Jika kita ingin mendealokasikan memori fungsi standar yang dipakai dalam bahasa C++ yaitu delete sama dengan free dalam bahasa C contoh : delete [ ] pmhs; Thomson Mary, M.Kom - Dosen STKIP PGRI Sumatera Barat 42

Algoritma dan Struktur Data

Algoritma dan Struktur Data Algoritma dan Struktur Data Program Program: sederetan perintah-perintah yang harus dikerjakan oleh komputer untuk menyelesaikan masalah. 3 level bahasa pemrograman: 1. Bahasa tingkat rendah 2. Bahasa

Lebih terperinci

DIKTAT KULIAH ALGORITMA dan STRUKTUR DATA II. : Mahasiswa mampu menjelaskan konsep algoritma dan struktur data

DIKTAT KULIAH ALGORITMA dan STRUKTUR DATA II. : Mahasiswa mampu menjelaskan konsep algoritma dan struktur data Pertemuan 1 Waktu Tujuan Pembelajaran Substansi Materi : 135 menit : Mahasiswa mampu menjelaskan konsep algoritma dan struktur data : Tabulasi Kegiatan Perkuliahan No Tahap Kegiatan Kegiatan Pengajar 1

Lebih terperinci

STRUKTUR DATA. Pengajar. Jaidan Jauhari, M.T. Alamat

STRUKTUR DATA. Pengajar. Jaidan Jauhari, M.T. Alamat STRUKTUR DATA Pengajar Jaidan Jauhari, M.T. Alamat Email jaidan_j@ilkom.unsri.ac.id jaidan_j@yahoo.com Disarikan Dari Berbagai Sumber, Terutama Dari Diktat Struktur Data Informatika ITB Karangan Dr. Inggriani

Lebih terperinci

1. Tipe Data Sederhana Hanya dimungkinkan untuk menyimpan sebuah nilai data dalam sebuah variabel Ada 5 macam : int, float, double, char, boolen

1. Tipe Data Sederhana Hanya dimungkinkan untuk menyimpan sebuah nilai data dalam sebuah variabel Ada 5 macam : int, float, double, char, boolen Pokok Bahasan Pengantar Struktur Data Pengertian Struktur Data Struktur data adalah cara menyimpan atau merepresentasikan data di dalam komputer agar bisa dipakai secara efisien Sedangkan data adalah representasi

Lebih terperinci

Algoritma Dan Struktur Data II

Algoritma Dan Struktur Data II Algoritma Dan Struktur Data II Array dan Matriks Apa itu Struktur Data? PROGRAM ALGORITMA STRUKTUR DATA Algoritma.. deskripsi langkah-langkah penyelesaian masalah yang tersusun secara logis 1. ditulis

Lebih terperinci

2. Mahasiswa dapat membuat dan menggunakan array dan linked list dalam suatu kasus.

2. Mahasiswa dapat membuat dan menggunakan array dan linked list dalam suatu kasus. 1 ARRAY & LINKED LIST MODUL 1 Standar kompetensi: 1. Mahasiswa mengetahui perbedaan array dan linked list. 2. Mahasiswa dapat membuat dan menggunakan array dan linked list dalam suatu kasus. 3. Mahasiswa

Lebih terperinci

*Sekumpulan elemen yang diatur secara terurut. *Linear List tidak sama dengan Connected-List

*Sekumpulan elemen yang diatur secara terurut. *Linear List tidak sama dengan Connected-List 1. Array 1. Linear List 2. Stack 3. Queue 1. Apa? 2. Bagaimana cara implementasinya? 2. List 1. Connected List 2. Circular List 3. Doubly-linked List 4. Multi list structure 3. Tree Structure Sekumpulan

Lebih terperinci

Algoritma dan Struktur Data. Linked List

Algoritma dan Struktur Data. Linked List Algoritma dan Struktur Data Linked List Syntax: struct nama_struct { tipe_data_1 nama_var_1; tipe_data_2 nama_var_2; tipe_data_3 nama_var_3; }; 2 KONSEP ALOKASI MEMORY DINAMIS 1. Deklarasikan pointer yang

Lebih terperinci

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

Masukan Judul... Infotype àsebuah tipe terdefinisi yang menyimpan informasi sebuah elemen list Universitas Muhammadiyah Sukabumi Artikel Struktur Data Oleh : fahmi fauzi Masukan Judul... 1. STACK DAN QUEUE DENGAN LINKED LIST Pengertian Linked list : sekumpulan elemen bertipe sama, yang mempunyai

Lebih terperinci

Pendahuluan Struktur Data STRUKTUR DATA. JULIO ADISANTOSO Departemen Ilmu Komputer IPB. Pertemuan 1 : 20 Juni 2016

Pendahuluan Struktur Data STRUKTUR DATA. JULIO ADISANTOSO Departemen Ilmu Komputer IPB. Pertemuan 1 : 20 Juni 2016 Pendahuluan JULIO ADISANTOSO Departemen Ilmu Komputer IPB Pertemuan 1 : 20 Juni 2016 Pendahuluan Ilustrasi Kontrak Perkuliahan Permasalahan Suatu sistem pengolahan data kependudukan di Indonesia meliputi

Lebih terperinci

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

MAKALAH STRUKTUR DATA. DOSEN PEMBIMBING Nisa miftachurohmah, S.kom., M.Si PENYUSUN SITI JAMILATUL MU ADDIBAH ( ) MAKALAH STRUKTUR DATA DOSEN PEMBIMBING Nisa miftachurohmah, S.kom., M.Si PENYUSUN SITI JAMILATUL MU ADDIBAH (14.1.03.03.0024) FAKULTAS TEKNIK PROGRAM STUDI SISTEM INFORMASI UNIVERSITAS NUSANTARA PGRI KEDIRI

Lebih terperinci

Integer (Bilangan Bulat) Yang dimaksud bilangan bulat adalah, -1, -2, -3, 0, 1, 2, 3, 4 dan lain lain yang bukan merupakan bilangan pecahan.

Integer (Bilangan Bulat) Yang dimaksud bilangan bulat adalah, -1, -2, -3, 0, 1, 2, 3, 4 dan lain lain yang bukan merupakan bilangan pecahan. Struktur Data Struktur Data Setiap data memiliki tipe data, apakah merupakan angka bulat, angka pecahan, atau berupa karakter, dan sebagainya. Jadi, tipe data adalah pengelompokan data berdasarkan isi

Lebih terperinci

POINTER STACK DAN QUEUE. Institut Teknologi Sumatera

POINTER STACK DAN QUEUE. Institut Teknologi Sumatera POINTER STACK DAN QUEUE ALGORITMA DAN STRUKTUR DATA Institut Teknologi Sumatera PRE TEST Apakah yang disebut dengan array? Bagaimana cara deklarasi dan pengacuan dari sebuah array? Apa kekurangan array?

Lebih terperinci

A. TUJUAN PEMBELAJARAN

A. TUJUAN PEMBELAJARAN Praktikum 4 Alokasi Memori A. TUJUAN PEMBELAJARAN Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu: 1. Memahami perbedaan penggunaan tipe data array dengan pointer menggunakan alokasi

Lebih terperinci

Pendahuluan Struktur Data. Nisa ul Hafidhoh

Pendahuluan Struktur Data. Nisa ul Hafidhoh Pendahuluan Struktur Data Nisa ul Hafidhoh nisa@dsn.dinus.ac.id 08156114760 Tujuan Mahasiswa dapat melakukan pemrograman dalam skala menengah dengan memanfaatkan struktur data internal yang kompleks dan

Lebih terperinci

ALGORITMA DAN STRUKTUR DATA ARRAY STACK DAN QUEUE

ALGORITMA DAN STRUKTUR DATA ARRAY STACK DAN QUEUE ALGORITMA DAN STRUKTUR DATA ARRAY STACK DAN QUEUE STACK = TUMPUKAN SUATU SUSUNAN KOLEKSI DATA DIMANA DATA DAPAT DITAMBAHKAN DAN DIHAPUS SELALU DILAKUKAN PADA BAGIAN AKHIR DATA, YANG DISEBUT DENGAN TOP

Lebih terperinci

04. Single Linked List

04. Single Linked List 04. Single Linked List ARNA FARIZA YULIANA SETIOWATI Capaian Pembelajaran 1. Mahasiswa mengerti konsep alokasi memori secara dinamis menggunakan pointer. 2. Mahasiswa mengerti konsep single linked list

Lebih terperinci

Abstract Data Type (ADT)

Abstract Data Type (ADT) IKG2A3/ Pemrograman Terstruktur 2 ZK Abdurahman Baizal KK Algoritma dan Komputasi Abstract Data Type (ADT) 1 8/25/2015 Pendahuluan Pada bab ini kita akan membahas tentang Abstract Data Type (ADT) Mendefinisikan

Lebih terperinci

Struktur Data. Tumpukan : Definisi & Operasi. Pertemuan 4 PROBLEM ALGORITHM DATA IMPLEMENTATION. Pert. 4b Struktur Data - FMIPA USD

Struktur Data. Tumpukan : Definisi & Operasi. Pertemuan 4 PROBLEM ALGORITHM DATA IMPLEMENTATION. Pert. 4b Struktur Data - FMIPA USD Pertemuan 4 : Definisi & Operasi Disusun oleh : PH. Prima Rosa, S.Si., M.Sc. Sri Hartati Wijono, S.Si. 2003/2004 Pert. 4b Struktur Data - FMIPA USD - 2003 Hal. 1 Struktur Data PROBLEM ALGORITHM DATA IMPLEMENTATION

Lebih terperinci

Pengenalan Struktur Data. Farah Zakiyah Rahmanti 2014

Pengenalan Struktur Data. Farah Zakiyah Rahmanti 2014 Pengenalan Struktur Data Farah Zakiyah Rahmanti 2014 Definisi Skema organisasi, seperti struktur dan array, yang diterapkan pada data sehingga data dapat diinterprestasikan dan sehingga operasoperasi spesifik

Lebih terperinci

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya.

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya. Pertemuan 1 STRUKTUR DATA Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya. Pemakaian Struktur Data yang

Lebih terperinci

STRUKTUR DATA Pertemuan 1 s.d 8

STRUKTUR DATA Pertemuan 1 s.d 8 STRUKTUR DATA Pertemuan 1 s.d 8 Sasaran: Meningkatkan: pemahaman pengetahuan tentang teori dasar struktur data dan penanganan data serta pembuatan algoritma dan penggunaan strukturd dalam pemrograman Materi

Lebih terperinci

Algoritma Dan Struktur Data II

Algoritma Dan Struktur Data II Algoritma Dan Struktur Data II List, Stack Putuputraastawa@gmail.com putuastawa.wordpress.com Beberapa Jenis Struktur Data 1. Array 1. Linear List 2. Stack 3. Queue 1. Apa? 2. Bagaimana cara implementasinya?

Lebih terperinci

Pemrograman Algoritma Dan Struktur Data

Pemrograman Algoritma Dan Struktur Data MODUL PERKULIAHAN Modul ke: 14Fakultas Agus FASILKOM Pemrograman Algoritma Dan Struktur Data ADT BINARY TREE Hamdi.S.Kom,MMSI Program Studi Teknik Informatika ISTILAH-ISTILAH DASAR Pohon atau Tree adalah

Lebih terperinci

TIF 4201 Algoritma Dan Struktur Data

TIF 4201 Algoritma Dan Struktur Data TIF 4201 Algoritma Dan Struktur Data Abstract Data Type Teknik Informatika Universitas Brawijaya Semester Gasal 2010/2011 1 TIPE DATA Terdapat beberapa macam tipe data. Misalnya int, double, string, dll.

Lebih terperinci

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya.

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya. Pertemuan 1 STRUKTUR DATA Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya. Pemakaian Struktur Data yang

Lebih terperinci

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya.

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya. Pertemuan 1 STRUKTUR DATA Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya. Pemakaian Struktur Data yang

Lebih terperinci

POINTER. Tim Alpro Teknik Informatika

POINTER. Tim Alpro Teknik Informatika POINTER Tim Alpro Teknik Informatika Pointer Pointer merupakan salah satu keunggulan dari bahasa C. Komputer mengalokasikan sebuah area pada memori ketika sebuah variabel dideklarasikan. Area tersebut

Lebih terperinci

BAB II STACK Atau TUMPUKAN

BAB II STACK Atau TUMPUKAN BAB II STACK Atau TUMPUKAN List Linear (Daftar Linear). List linier adalah sekumpulan elemen bertipe sama, yang mempunyai keterurutan tertentu, yang setiap elemennya disebut simpul (node). Simpul terdiri

Lebih terperinci

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

Algoritma dan Struktur Data. Ramos Somya, S.Kom., M.Cs. Algoritma dan Struktur Data Ramos Somya, S.Kom., M.Cs. Penggunaan record dalam jumlah yang banyak alokasi memory konvensional tidak bisa diandalkan. Misal kita akan bekerja dengan file yang menyimpan sangat

Lebih terperinci

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR 1 PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR Siti Mukaromah, S.Kom TEKNIK PENYAJIAN ALGORITMA Teknik Tulisan Structure English Pseudocode Teknik Gambar Structure Chart HIPO Flowchart 2 PSEUDOCODE Kode

Lebih terperinci

Catatan Kuliah PAM 282 STRUKTUR DATA

Catatan Kuliah PAM 282 STRUKTUR DATA Narwen, M.Si / Jurusan Matematika FMIPA Unand 1 PAM 282 Oleh Narwen, M.Si Jurusan Matematika FMIPA Unand Narwen, M.Si / Jurusan Matematika FMIPA Unand 2 BAB I PENDAHULUAN PENGERTIAN. Struktur data adalah

Lebih terperinci

PRAKTIKUM ALGORITMA DAN STRUKTUR DATA MODUL KE-2 STACK DAN QUEUE

PRAKTIKUM ALGORITMA DAN STRUKTUR DATA MODUL KE-2 STACK DAN QUEUE PRAKTIKUM ALGORITMA DAN STRUKTUR DATA MODUL KE-2 STACK DAN QUEUE LABORATORIUM PEMROGRAMAN PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS MUHAMMADIYAH MALANG 2015 I. TUJUAN II. Mahasiswa mampu

Lebih terperinci

ALGORITMA DAN STRUKTUR DATA POINTER DAN FUNCTION

ALGORITMA DAN STRUKTUR DATA POINTER DAN FUNCTION ALGORITMA DAN STRUKTUR DATA POINTER DAN FUNCTION POINTER POINTER ADALAH SUATU VARIABEL PENUNJUK, BERISI NILAI YANG MENUNJUK ALAMAT SUATU LOKASI MEMORI TERTENTU. JADI POINTER TIDAK BERISI NILAI DATA, MELAINKAN

Lebih terperinci

Jurnal Mahajana Informasi, Vol.1 No 2, 2016 e-issn: SIMULASI PENGURUTAN DATA DENGAN ALGORITMA HEAP SORT

Jurnal Mahajana Informasi, Vol.1 No 2, 2016 e-issn: SIMULASI PENGURUTAN DATA DENGAN ALGORITMA HEAP SORT SIMULASI PENGURUTAN DATA DENGAN ALGORITMA HEAP SORT Harold Situmorang Program Studi Sistem Informasi Universitas Sari Mutiara Indonesia Haroldsitumorang@gmail.com ABSTRAK Struktur data dari algoritma Heap

Lebih terperinci

Pendahuluan. program

Pendahuluan. program Matakuliah : Struktur Data Versi : 1.0.0 Materi : Pengantar Ke Algoritma Penyaji : Zulkarnaen NS 1 Pendahuluan Komputer adalah alat bantu untuk menyelesaikan masalah, tetapi masalah yang ingin diselesaikan

Lebih terperinci

Tumpukan(Stack)!! " # $ %&' $ %& ( ) ( * +, / ( (

Tumpukan(Stack)!!  # $ %&' $ %& ( ) ( * +, / ( ( BAB III Tumpukan(Stack) Tujuan: 1. Memahami terminologi yang terkait dengan struktur data stack 2. Memahami operasi-operasi yang ada dalam stack 3. Dapat mengidentifikasi permasalahan-permasalahan pemrograman

Lebih terperinci

PERTEMUAN VI POINTER 6.1 Tujuan Praktikum 6.2 Teori Penunjang Pointer

PERTEMUAN VI POINTER 6.1 Tujuan Praktikum 6.2 Teori Penunjang Pointer PERTEMUAN VI POINTER 6.1 Tujuan Praktikum Praktikan mengenal type data Pointer, mengerti tentang konsep dasar dari pointer, dapat mendeklarasikan pointer di Pascal serta dapat menggunakannya di dalam sebuah

Lebih terperinci

Algoritma dan Struktur Data. Ramos Somya

Algoritma dan Struktur Data. Ramos Somya Algoritma dan Struktur Data Ramos Somya Penggunaan record dalam jumlah yang banyak alokasi memory konvensional tidak bisa diandalkan. Misal kita akan bekerja dengan file yang menyimpan sangat banyak record,

Lebih terperinci

Materi Pelajaran : Algoritma Pemrograman. Siswa memahami tentang dasar dasar Algoritma Pemrograman

Materi Pelajaran : Algoritma Pemrograman. Siswa memahami tentang dasar dasar Algoritma Pemrograman Materi Pelajaran : Algoritma Pemrograman 1. Tujuan : Siswa memahami tentang dasar dasar Algoritma Pemrograman 2. Teori Singkat A. Algoritma Sejarah Algoritma Ditinjau dari asal usul katanya, kata Algoritma

Lebih terperinci

Review : Sifat Implementasi Linear List dengan Array

Review : Sifat Implementasi Linear List dengan Array Pertemuan 10 Linked List Disusun oleh : PH. Prima Rosa, S.Si., M.Sc. Sri Hartati Wijono, S.Si. 2003/2004 Pert. 10 Struktur Data - FMIPA USD - 2003 Hal. 1 Review : Sifat Implementasi Linear List dengan

Lebih terperinci

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP)

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP) Mata Kuliah : Algoritma II Bobot Mata Kuliah : 3 Sks GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP) Deskripsi Mata Kuliah : Struktur Stack (satu dan dua sisi), Queue (Linear Queu, Circular Queue, Double Ended

Lebih terperinci

Silabus Struktur Data. Bandung 2013

Silabus Struktur Data. Bandung 2013 Silabus Struktur Data Bandung 2013 Silabus u Menjelaskan Varian dan Invarian u Membuat Alur Logika pemrograman u Menerapkan Pengelolaan Array u Memelihara Pekerjaan secara prakds u Menerapkan konsep data

Lebih terperinci

Pengenalan Algoritma & Struktur Data. Pertemuan ke-1

Pengenalan Algoritma & Struktur Data. Pertemuan ke-1 Pengenalan Algoritma & Struktur Data Pertemuan ke-1 Apa itu Struktur Data? PROGRAM ALGO RITMA STRUKTUR DATA Algoritma.. deskripsi langkah-langkah penyelesaian masalah yang tersusun secara logis 1. Ditulis

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI 6 BAB 2 LANDASAN TEORI 2.1 Pengertian Algoritma Menurut (Suarga, 2012 : 1) algoritma: 1. Teknik penyusunan langkah-langkah penyelesaian masalah dalam bentuk kalimat dengan jumlah kata terbatas tetapi tersusun

Lebih terperinci

SATUAN ACARA PERKULIAHAN (SAP) Mata Kuliah : Struktur Data Kode : TIS3213 Semester : III Waktu : 2 x 3 x 50 Menit Pertemuan : 4 & 5

SATUAN ACARA PERKULIAHAN (SAP) Mata Kuliah : Struktur Data Kode : TIS3213 Semester : III Waktu : 2 x 3 x 50 Menit Pertemuan : 4 & 5 A. Kompetensi 1. Utama SATUAN ACARA PERKULIAHAN (SAP) Mata Kuliah : Struktur Data Kode : TIS3213 Semester : III Waktu : 2 x 3 x 50 Menit Pertemuan : 4 & 5 Mahasiswa dapat memahami tentang konsep pemrograman

Lebih terperinci

ALGORITMA DAN STRUKTUR DATA

ALGORITMA DAN STRUKTUR DATA 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

Lebih terperinci

Pohon Biner (Bagian 1)

Pohon Biner (Bagian 1) Pohon Biner (Bagian 1) Tim Pengajar IF2110R Semester I 2016/2017 1 Tujuan Mahasiswa memahami definisi pohon dan pohon biner Berdasarkan pemahaman tersebut, mampu membuat fungsi sederhana yang memanipulasi

Lebih terperinci

Lab. Teknik Informatika Struktur Data 1

Lab. Teknik Informatika Struktur Data 1 2. POINTER dan SINGLE LINK LIST TUJUAN PRAKTIKUM 1. Praktikan mengetahui tipe struktur data baru yaitu tipe data Pointer. 2. Praktikan menggunakan pointer didalam pembuatan program dan dapat menerapkannya

Lebih terperinci

Struktur Data & Algoritma

Struktur Data & Algoritma Struktur Data & Algoritma ADT Tree Suryana Setiawan, Ruli Manurung & Ade Azurat ( Denny (acknowledgments: Fasilkom UI SUR HMM AA Fasilkom UI - IKI20100/IKI80110P 2009/2010 Ganjil Pekan 08 1 Tujuan Memahami

Lebih terperinci

ANALISIS DAN PERANCANGAN PERANGKAT LUNAK

ANALISIS DAN PERANCANGAN PERANGKAT LUNAK BAB IV ANALISIS DAN PERANCANGAN PERANGKAT LUNAK Bab ini membahas analisis perancangan perangkat lunak (diberi nama c2p) dari segi struktur data dan analisis aliran data. Hal-hal yang dibahas diantaranya

Lebih terperinci

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

E STRUKTUR DATA & E PRAKTIK STRUKTUR DATA. Pointer & Function. Alfa Faridh Suni, S.T., M.T. PTIK E3024015 - STRUKTUR DATA & E3024016 PRAKTIK STRUKTUR DATA Pointer & Function Alfa Faridh Suni, S.T., M.T. PTIK - 2014 Pointer Pointer adalah suatu variabel penunjuk, berisi nilai yang menunjuk alamat suatu

Lebih terperinci

Modul Praktikum Algoritma dan Struktur Data

Modul Praktikum Algoritma dan Struktur Data Tujuan : BAB 1 Struct, Array, dan Pointer 1. Mahasiswa memahami apakah yang dimaksud dengan struktur data. 2. Mahasiswa memahami apakah yang dimaksud dengan algoritma. 3. Mengingat kembali array, struktur,

Lebih terperinci

Langkah Mudah Belajar Struktur Data Menggunakan C/C++

Langkah Mudah Belajar Struktur Data Menggunakan C/C++ Langkah Mudah Belajar Struktur Data Menggunakan C/C++ Sanksi Pelanggaran Pasal 113 Undang-Undang Nomor 28 Tahun 2014 tentang Hak Cipta 1. Setiap Orang yang dengan tanpa hak melakukan pelanggaran hak ekonomi

Lebih terperinci

Struktur Data Array. Rijal Fadilah S.Si

Struktur Data Array. Rijal Fadilah S.Si Struktur Data Array Rijal Fadilah S.Si Array Berdimensi Satu Array Satu dimensi tidak lain adalah kumpulan elemen-elemen identik yang tersusun dalam satu baris. Elemen-elemen tersebut memiliki tipe data

Lebih terperinci

Type Data terdiri dari : - Data Tunggal : Integer, Real, Boolean dan Karakter. - Data Majemuk : String

Type Data terdiri dari : - Data Tunggal : Integer, Real, Boolean dan Karakter. - Data Majemuk : String Struktur dapat diartikan sebagai suatu susunan, bentuk, pola atau bangunan. Data dapat diartikan sebagai suatu fakta, segala sesuatu yang dapat dikodekan atau disimbolkan dengan kode-kode atau lambang-lambang

Lebih terperinci

Penerapan BFS dan DFS dalam Garbage Collection

Penerapan BFS dan DFS dalam Garbage Collection Penerapan BFS dan DFS dalam Garbage Collection Nugroho Satriyanto 13514038 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung Bandung, Indonesia 13514038@std.stei.itb.ac.id

Lebih terperinci

Dasar Pemrograman Java

Dasar Pemrograman Java Dasar Pemrograman Java Tessy Badriyah, SKom. MT. http://lecturer.eepis-its.edu/~tessy Tujuan Pembelajaran Penggunaan Komentar dalam program Memahami perbedaan identifier yang valid dan yang tidak valid

Lebih terperinci

Single Linked List (1)

Single Linked List (1) Praktikum 5 Single Linked List (1) A. TUJUAN PEMBELAJARAN Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu: 1. Memahami konsep membangun single linked list 2. Memahami konsep operasi

Lebih terperinci

STRUKTUR POHON (TREE) Pohon atau Tree adalah salah satu bentuk Graph terhubung yang tidak mengandung sirkuit.

STRUKTUR POHON (TREE) Pohon atau Tree adalah salah satu bentuk Graph terhubung yang tidak mengandung sirkuit. Pertemuan 9 STRUKTUR POHON (TREE) ISTILAH-ISTILAH DASAR Pohon atau Tree adalah salah satu bentuk Graph terhubung yang tidak mengandung sirkuit. Karena merupakan Graph terhubung, maka pada Pohon (Tree)

Lebih terperinci

MATRIKS. Dapat disimpan secara linier dan kontigu dengan dua alternatif sebagai berikut : a. Per baris

MATRIKS. Dapat disimpan secara linier dan kontigu dengan dua alternatif sebagai berikut : a. Per baris MATRIKS Matriks adalah sekumpulan informasi yang setiap individu elemennya terdefinisi berdasarkan dua buah indeks (yang biasanya dikonotasikan dengan baris dan kolom). Setiap elemen matriks dapat diakses

Lebih terperinci

POINTER. Tim Alpro Teknik Informatika

POINTER. Tim Alpro Teknik Informatika POINTER Tim Alpro Teknik Informatika Pointer Pointer merupakan salah satu keunggulan dari bahasa C. Komputer mengalokasikan sebuah area pada memori ketika sebuah variabel dideklarasikan. Area tersebut

Lebih terperinci

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS STRUKTUR DATA By : Sri Rezeki Candra Nursari 2 SKS Penilaian : Gasal TA 2013/2014 UAS = 35% UTS = 30% ABSEN = 5% TUGAS = 30% Jumlah = 100% Tugas kirim ke : dosen.it2011@gmail.com Batas Tugas 9 hari setelah

Lebih terperinci

Algoritma Dan Struktur Data II. Queue

Algoritma Dan Struktur Data II. Queue Algoritma Dan Struktur Data II Queue Apakah Queue itu? Putuu Putra Astawa Apakah Queue itu? Penambahan data dilakukan pada sebuah ujung sebuah list, sedangkan penghapusan data dilakukan pada ujung yang

Lebih terperinci

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

STACK (TUMPUKAN) Tumpukan uang koin Tumpukan kotak Tumpukan Buku. Gambar 1. Macam-macam tumpukan STACK (TUMPUKAN) adalah suatu urutan elemen yang elemennya dapat diambil dan ditambah hanya pada posisi akhir (top) saja. Contoh dalam kehidupan sehari-hari adalah tumpukan piring di sebuah restoran yang

Lebih terperinci

Stack. Gambar 1.1 Stack

Stack. Gambar 1.1 Stack Stack Stack adalah struktur data yang memiliki sifat last in first out. Struktur dari stack yang dapat kita lihat sehari-hari adalah : tumpukan (lihat gambar 1.1) Gambar 1.1 Stack Terdapat 2 (dua) operasi

Lebih terperinci

05. Double Linked List

05. Double Linked List 0. Double Linked List ARNA FARIZA YULIANA SETIOWATI Capaian Pembelajaran 1. Mahasiswa mengerti konsep double linked list dan operasi pada single linked list. 2. Mahasiswa dapat mengimplementasikan double

Lebih terperinci

Program pendek dan simple = mudah dihandle. Program besar, banyak dan kompleks = tidak

Program pendek dan simple = mudah dihandle. Program besar, banyak dan kompleks = tidak Modular Programming Program pendek dan simple = mudah dihandle. Program besar, banyak dan kompleks = tidak mudah dihandle. dl Kesulitan: sulit mencari dan mengingat variabel-variabel aiabel yang sudah

Lebih terperinci

STRUKTUR DATA Pertemuan 1 s.d 8

STRUKTUR DATA Pertemuan 1 s.d 8 STRUKTUR DATA Pertemuan 1 s.d 8 Sasaran: Meningkatkan: pemahaman pengetahuan tentang teori dasar struktur data dan penanganan data serta pembuatan algoritma dan penggunaan strukturd dalam pemrograman Materi

Lebih terperinci

Algoritma dan Struktur Data STACK

Algoritma dan Struktur Data STACK Algoritma dan Struktur Data STACK Teknik Informatika Universitas Muhammadiyah Malang 2016 Tujuan Instruksional Mahasiswa mampu : Memahami tentang konsep stack Mengetahui mekanisme pengoperasian sebuah

Lebih terperinci

STRUKTUR POHON (TREE) Pohon atau Tree adalah salah satu bentuk Graph terhubung yang tidak mengandung sirkuit.

STRUKTUR POHON (TREE) Pohon atau Tree adalah salah satu bentuk Graph terhubung yang tidak mengandung sirkuit. Pertemuan 9 STRUKTUR POHON (TREE) ISTILAH-ISTILAH DASAR Pohon atau Tree adalah salah satu bentuk Graph terhubung yang tidak mengandung sirkuit. Karena merupakan Graph terhubung, maka pada Pohon (Tree)

Lebih terperinci

Penerapan Pohon Dalam Heap Sort

Penerapan Pohon Dalam Heap Sort enerapan ohon Dalam Sort Firdi Mulia Jurusan Teknik Informatika ITB, Bandung, email: if17045@students.if.itb.ac.id Abstract Makalah ini membahas tentang penerapan pohon heap dalam metode pengurutan data

Lebih terperinci

Heap Tree dan Kegunaannya dalam Heap Sort

Heap Tree dan Kegunaannya dalam Heap Sort Heap Tree dan Kegunaannya dalam Heap Sort Efendy Chalikdjen 1, Hermanto Ong 2, Satria Putra Sajuthi 3 Laboratorium Ilmu dan Rekayasa Komputasi Departemen Teknik Informatika, Institut Teknologi Bandung

Lebih terperinci

Algoritma Pemrograman [BS204]

Algoritma Pemrograman [BS204] Algoritma Pemrograman [BS204] [1.3] Bag, Queue, Stack Robert Sedgewick, Kevin Wayne, Algorithms 4 th Ed., Chapter 1, Addison-Wesley Professional, 2011 1 Tujuan Perkuliahan Menekankan gagasan cara kita

Lebih terperinci

Algoritma dan Struktur data

Algoritma dan Struktur data Pertemuan 2, Algoritma dan Struktur data Tenia wahyuningrum & Sisilia Thya Safitri VISI ST3 TELKOM Menjadi Perguruan Tinggi yang Unggul di Bidang Teknologi Telematika dan membentuk insan yang berkarakter

Lebih terperinci

Fungsi. Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer UDINUS Semarang

Fungsi. Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer UDINUS Semarang Fungsi Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer UDINUS Semarang Review: Fungsi dalam Matematika Fungsi f(x) dengan satu parameter x dalam matematika yang didefinisikan sebagai: f(x) = x

Lebih terperinci

MODUL PRAKTIKUM STRUKTUR DATA

MODUL PRAKTIKUM STRUKTUR DATA MODUL PRAKTIKUM STRUKTUR DATA TREE (POHON) Oleh : SUPRAPTO, S.Kom PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS PGRI RONGGOLAWE (UNIROW) TUBAN 2012/2013 MODUL V TREE (POHON) 5.1. TREE (POHON)

Lebih terperinci

IX. Implementasi ADT : Stacks & Queues. Operasi dasar Contoh kegunaan Implementasi Array-based dan linked list-based

IX. Implementasi ADT : Stacks & Queues. Operasi dasar Contoh kegunaan Implementasi Array-based dan linked list-based IX. Implementasi ADT : Stacks & Queues STRUKTUR DATA 1 Outline ADT Stacks Operasi dasar Contoh kegunaan Implementasi Array-based dan linked list-based ADT Queues Operasi dasar Contoh kegunaan Implementasi

Lebih terperinci

KKKF33110 STRUKTUR DATA

KKKF33110 STRUKTUR DATA RENCANA PEMBELAJARAN SEMESTER (RPS) KKKF33110 STRUKTUR DATA PROGRAM STUDI S1 TEKNIK INFORMATIKA FAKULTAS ILMU KOMPUTER (FILKOM) UNIVERSITAS PUTRA INDONESIA YPTK PADANG LEMBAR PENGESAHAN Rencana Pembelajaran

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB 2 LANDASAN TEORI 2.1 Rangkaian Logika Rangkaian logika terbentuk dari hubungan beberapa gerbang (gate) logika. Rangkaian logika bekerja secara digital. Output dari suatu rangkaian logika ditentukan

Lebih terperinci

MAKALAH ALGORITMA, PSEUDOCODE DAN FLOWCHART TENTANG YUFI EKO FIRMANSYAH 1 D3 IT B OLEH

MAKALAH ALGORITMA, PSEUDOCODE DAN FLOWCHART TENTANG YUFI EKO FIRMANSYAH 1 D3 IT B OLEH MAKALAH TENTANG ALGORITMA, PSEUDOCODE DAN FLOWCHART OLEH YUFI EKO FIRMANSYAH 1 D3 IT B BAB I PENDAHULUAN Pada saat kita membuat sebuah program sering kali kita menghadapi permasalahan yang memerlukan pengrutan

Lebih terperinci

Pertemuan 9 STRUKTUR POHON & KUNJUNGAN POHON BINER

Pertemuan 9 STRUKTUR POHON & KUNJUNGAN POHON BINER Pertemuan 9 STRUKTUR POHON & KUNJUNGAN POHON BINER DEFINISI POHON (TREE) Pohon (Tree) termasuk struktur non linear yang didefinisikan sebagai data yang terorganisir dari suatu item informasi cabang yang

Lebih terperinci

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

STACK (TUMPUKAN) Tumpukan uang koin Tumpukan kotak Tumpukan Buku. Gambar 1. Macam-macam tumpukan STACK (TUMPUKAN) Stack adalah suatu urutan elemen yang elemennya dapat diambil dan ditambah hanya pada posisi akhir (top) saja. Contoh dalam kehidupan sehari-hari adalah tumpukan piring di sebuah restoran

Lebih terperinci

Pertemuan 7. REVIEW dan QUIS

Pertemuan 7. REVIEW dan QUIS Pertemuan 7 REVIEW dan QUIS 1. Type data dibawah ini, yang tidak termasuk dalam tipe data sederhana tunggal, adalah : a. Boolean d. Integer b. String e. float c. Char 2. ==, =,!=, termasuk dalam operator

Lebih terperinci

Struktur dan Organisasi Data 2 STRUKTUR DATA

Struktur dan Organisasi Data 2 STRUKTUR DATA STRUKTUR DATA PENDAHULUAN Struktur data adalah suatu koleksi atau kelompok data yang dapat dikarakterisasikan oleh organisasi serta operasi yang didefinisikan terhadapnya. Algorithma : barisan langkah-langkah

Lebih terperinci

Linked List 6.3 & 7.3 NESTED LOOP

Linked List 6.3 & 7.3 NESTED LOOP Linked List 6.3 & 7.3 NESTED LOOP 1 Linked List ( List yang di-link satu dengan lainnya ) 2 apa itu List? 3 Contoh sebuah LIST int A[5]; 0 1 2 3 4 Array satu dimensi Disebut juga : Vector Kadang-kadang

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI 5 BAB II LANDASAN TEORI 2.1. Tipe Data Abstrak (TDA) Tipe data sebuah variabel adalah kumpulan nilai yang dapat dimuat oleh variabel ini. Misalnya sebuah tipe boolean hanya bernilai TRUE atau FALSE, tidak

Lebih terperinci

Struktur Program. Rinta Kridalukmana

Struktur Program. Rinta Kridalukmana Struktur Program Rinta Kridalukmana Struktur Program Struktur program merupakan suatu bentuk susunan dari suatu program yang dibuat. Secara umum, struktur program dibagi 3 bagian : Judul (header) Kamus

Lebih terperinci

STRUKTUR DATA. Literatur

STRUKTUR DATA. Literatur STRUKTUR DATA By : Sri Rezeki Candra Nursari 2 SKS Literatur Sjukani Moh, (2007), Struktur Data (Algoritma & Struktur Data 2) dengan C, C++, Mitra Wacana Media Utami Ema dkk, (2007), Struktur Data (Konsep

Lebih terperinci

LIST. Dewi Sartika, M.Kom

LIST. Dewi Sartika, M.Kom LIST PENDAHULUAN Linked List adalah sejumlah objek yang dihubungkan (linked) satu dengan yang lainnya membentuk suatu list. Objek adalah gabungan dari beberapa data (variable) yang dijadikan satu kelompok

Lebih terperinci

Serial Cepat Mahir IlmuKomputer.Com

Serial Cepat Mahir IlmuKomputer.Com Cepat Mahir Algoritma dalam Bahasa C romi@romisatriawahono http://romisatriawahono.net Copyright 2003 IlmuKomputer.Com Serial Cepat Mahir IlmuKomputer.Com Bab 1 Pendahuluan 1.1. Apa Itu Algoritma Kata

Lebih terperinci

Algoritma dan Struktur Data. Tree

Algoritma dan Struktur Data. Tree Algoritma dan Struktur Data Tree Outline 1. Apakah Tree Structure itu? 2. Binary Tree & implementasinya 3. Tree Traversal 4. Implementasi tree (selain binary tree) Apakah Tree Structure itu? Struktur data

Lebih terperinci

Pengenalan Struktur Data dan Algoritma

Pengenalan Struktur Data dan Algoritma BAB I Pengenalan Struktur Data dan Algoritma Tujuan : 1. Mahasiswa memahami apakah yang dimaksud dengan struktur data 2. Mahasiswa memahami apakah yang dimaksud dengan algoritma 3. Mengingat kembali array,

Lebih terperinci

Tree (Struktur Data) Nisa ul Hafidhoh, MT

Tree (Struktur Data) Nisa ul Hafidhoh, MT Tree (Struktur Data) Nisa ul Hafidhoh, MT Struktur Data Linier 1 5 8 9 2 ARRAY 0 1 2 3 n Head Tail QUEUE O U T 1 2 3 4 STACK 4 3 2 1 I N 10 8 14 LINKED LIST Struktur Tree Struktur Tree adalah struktur

Lebih terperinci

Dasar Pemrograman. Nisa ul Hafidhoh

Dasar Pemrograman. Nisa ul Hafidhoh Dasar Pemrograman Nisa ul Hafidhoh nisa@dsn.dinus.ac.id 08156114760 Rencana Kuliah W Pokok Bahasan 1 Pendahuluan 2 Notasi Algoritmik, Tipe Data 3 Perintah Dasar 4 Aksi Sekuensial 5 Analisa Kasus 6 Analisa

Lebih terperinci

Buku Ajar Struktur Data

Buku Ajar Struktur Data B a g i a n 5 Tujuan Instruksional Khusus Pokok Bahasan Mahasiswa mampu menjelaskan struktur data nonlinier Tree. Mahasiswa mampu memahami operasi pada struktur data Tree Struktur data Tree secara umum.

Lebih terperinci

BAB II STACK (TUMPUKAN)

BAB II STACK (TUMPUKAN) BAB II STACK (TUMPUKAN) Stack merupakan metode dalam menyimpan atau mengambil data ke dan dari memori. Stack dapat dibratkan sebuah tumpukan barang dalam sebuah tempat yang hanya memiliki satu pintu diatsnya

Lebih terperinci

Kode MK/ Pemrograman Terstruktur 2. ZK Abdurahman Baizal. KK Algoritma dan Komputasi. Stack (Tumpukan)

Kode MK/ Pemrograman Terstruktur 2. ZK Abdurahman Baizal. KK Algoritma dan Komputasi. Stack (Tumpukan) Kode MK/ Pemrograman Terstruktur 2 ZK Abdurahman Baizal KK Algoritma dan Komputasi Stack (Tumpukan) 1 8/25/2015 Pendahuluan Pada bab ini kita akan membahas tentang stack (tumpukan) Struktur data stack

Lebih terperinci

Algoritma Pemrograman & Struktur Data

Algoritma Pemrograman & Struktur Data MODUL PERKULIAHAN Algoritma Pemrograman & Struktur Data Linked List Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh Fakultas Ilmu Informatika Komputer 03 87042 Abstract Penjelasan mengenai linked

Lebih terperinci

ALGORITMA DAN STRUKTUR DATA

ALGORITMA DAN STRUKTUR DATA Modul ke: 10 Fitrianingsih Fakultas FASILKOM ALGORITMA DAN STRUKTUR DATA JENIS-JENIS TREE SKom., MMSI Program Studi Sistem Informasi JENIS-JENIS TREE Pohon (Tree) adalah graf terhubung yang tidak mengandung

Lebih terperinci