Langkah Mudah Belajar Struktur Data Menggunakan C/C++

dokumen-dokumen yang mirip
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.

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

Gambar 13.1 Ilustrasi proses algoritma sorting

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

Array ARRAY BERDIMENSI SATU. Representasi (Pemetaan) di memori. Lihat gambar dibawah ini, nilai data A (18) dismpan mulai dari alamat 1136 di memori.

Linked List 6.3 & 7.3 NESTED LOOP

Nama : Damas Fahmi Assena NIM : Prodi : Teknik Informatika R2

Pemrograman PHP7 untuk Pemula

Kontrak Perkuliahan & Introduction

Tipe Data dan Operator

Sanksi Pelanggaran Pasal 113 Undang-Undang Nomor 28 Tahun 2014 tentang Hak Cipta

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

SATUAN ACARA PENGAJARAN

Mendesain 3 Dimensi Secara Cepat dengan AutoCAD 2008

3. Setiap Orang yang dengan tanpa hak dan/atau tanpa izin Pencipta atau

Tabel Informasi. Hal di atas dapat dilakukan dengan menambah dan mengambil atribut identifier yang digunakan pada program, melalui tabel informasi.

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

STRUKTUR DATA Pertemuan 1 s.d 8

BAB 3 SEARCHING A. TUJUAN

Algoritma Pemrograman & Struktur Data

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

PENGERTIAN VARIABEL, KONSTANTA DAN TIPE DATA

BAB III Pengenalan Tipe Data dan Bahasa Pemrograman C/C++

STRUKTUR DATA TIPE DATA DNA-STRUKTURDATA 1

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP)

SEQUENTIAL SEARCH 11/11/2010. Sequential Search (Tanpa Variabel Logika) untuk kondisi data tidak terurut

Pert 1 Struktur Data (mengajarkomputer.wordpress.com)

SILABUS STRUKTUR DATA ( TIF-104 ) PROGRAM STUDI TEKNIK INFORMATIKA UNIVERSITAS PEMBANGUNAN JAYA TANGERANG SELATAN

3. Setiap Orang yang dengan tanpa hak dan/atau tanpa izin Pencipta atau

PERTEMUAN 7 REVIEW (QUIZ)

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

Modul Praktikum Algoritma dan Struktur Data

PENGENALAN BAHASA C DAN C++

RENCANA PROGRAM KEGIATAN PERKULIAHAN SEMESTER (RPKPS)

JENIS DATA SEDERHANA & INPUT/OUTPUT DATA

(3) BAHAN KAJIAN (materi ajar)

SATUAN ACARA PERKULIAHAN UNIVERSITAS GUNADARMA

AndaiKita Haldep_AndaiKita.indd 1 6/22/2017 9:22:58 AM

Universitas Komputer Indonesia

Silabus Struktur Data. Bandung 2013

Instalasi Code::Blocks, Tipe Data, Variabel, Konstanta, Operator, Input-Output dan Flowchart

SILABUS MATAKULIAH. Indikator Pokok Bahasan/Materi Aktivitas Pembelajaran

Program Teknologi Informasi dan Ilmu Komputer. Team Teaching ASD

Excel Rekening Tagihan

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

Materi 5: SEARCHING (PENCARIAN) Dosen:

Pengurutan (Sorting) Algoritma Pemrograman

PENGENALAN BAHASA C. A. Struktur Kode Program dalam Bahasa C Secara garis besar, suatu kode program dalam bahasa C memiliki struktur umum seperti ini:

DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF

Membuat Aplikasi Penjualan dengan Macro Excel

Materi 4: SORTING (PENGURUTAN) Dosen:

Struktur Program. Rinta Kridalukmana

STRUKTUR DATA MENGGUNAKAN C++ Windha Mega PD, S.Kom

Algoritme dan Pemrograman

LAPORAN PRAKTIKUM RESMI TIPE DATA, KONSTANTA DAN VARIABEL

PERTEMUAN VI POINTER 6.1 Tujuan Praktikum 6.2 Teori Penunjang Pointer

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN

RENCANA PEMBELAJARAN

PRAKTIKUM 9 ARRAY. ARRAY BERDIMENSI SATU Suatu array berdimensi satu dideklarasikan dalam bentuk umum berupa :

MATA KULIAH : LOGIKA DAN ALGORITMA KONSEP DASAR ALGORITMA

RENCANA PEMBELAJARAN SEMESTER

Materi 8 : STACK (TUMPUKAN) Dosen:

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

PERTEMUAN 3 KONSEP TIPE DATA

Lab. Teknik Informatika Struktur Data 1

Chapter 3.2 : Tipe, Nama dan Nilai

RENCANA PEMBELAJARAN SEMESTER

1. Kompetensi Mengenal dan memahami notasi-notasi algoritma yang ada.

REVIEW ARRAY. Institut Teknologi Sumatera

VARIABEL & TIPE DATA PEMROGRAMAN C++

BAHASA PEMROGRAMAN 1 (PERTEMUAN 3)

KOMUNIKASI CERDAS. Panduan Berkomunikasi di Dunia Kerja (NEW EDITION)

Pertemuan 7. REVIEW dan QUIS

Serba Otomatis Membuat Laporan Tugas Akhir dan Skripsi di Word 2013

Tipe Data dan Variabel

Yaitu proses pengaturan sekumpulan objek menurut urutan atau susunan tertentu Acuan pengurutan dibedakan menjadi :

ARRAY STATIS. Type namatype_array = array [1..maks_array] of tipedata. nama_var_array : namatype_array {indeks array dari 1 sampai maksimum array}

Brigida Arie Minartiningtyas, M.Kom

Praktikum 7. Pengurutan (Sorting) Insertion Sort, Selection Sort POKOK BAHASAN: TUJUAN BELAJAR: DASAR TEORI:

KKKF33110 STRUKTUR DATA

Pengenalan C++ Oleh : Dewi Sartika

Modul 8 SORTING (PENGURUTAN)

Review : Sifat Implementasi Linear List dengan Array

SEARCHING & SORTING. Pendahuluan

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

Algoritma dan Struktur Data

STRUKTUR DATA. Deskripsi Mata Kuliah

Chapter 1 KONSEP DASAR C

TIPE, NAMA, DAN NILAI

JURNAL TEKNOLOGI INFORMASI & PENDIDIKAN ISSN : VOL. 6 NO. 1 Maret 2013

MODUL STRUKTUR DATA. Erna Kumalasari Nurnawati

ALGORITMA DAN STRUKTUR DATA

SINGLE LINKED LIST (NON CIRCULAR)

Turbo C adalah tool yang dipakai untuk membuat code program dalam bahasa C ataupun C++. Berikut adalah jendela utama Turbo C

Struktur Data. PDE - Struktur Data 1

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-7 Pencarian (Searching) 2

Dasar Komputer dan Pemrograman. Konsep Tipe Data dan Operator Nama dan Nilai Data

BAB 4 PENGENALAN BAHASA C

Transkripsi:

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 sebagaimana dimaksud dalam Pasal 9 ayat (1) huruf i untuk Penggunaan Secara Komersial dipidana dengan pidana penjara paling lama 1 (satu) tahun dan/atau pidana denda paling banyak Rp100.000.000 (seratus juta rupiah). 2. Setiap Orang yang dengan tanpa hak dan/atau tanpa izin Pencipta atau pemegang Hak Cipta melakukan pelanggaran hak ekonomi Pencipta sebagaimana dimaksud dalam Pasal 9 ayat (1) huruf c, huruf d, huruf f, dan/atau huruf h untuk Penggunaan Secara Komersial dipidana dengan pidana penjara paling lama 3 (tiga) tahun dan/atau pidana denda paling banyak Rp500.000.000,00 (lima ratus juta rupiah). 3. Setiap Orang yang dengan tanpa hak dan/atau tanpa izin Pencipta atau pemegang Hak Cipta melakukan pelanggaran hak ekonomi Pencipta sebagaimana dimaksud dalam Pasal 9 ayat (1) huruf a, huruf b, huruf e, dan/atau huruf g untuk Penggunaan Secara Komersial dipidana dengan pidana penjara paling lama 4 (empat) tahun dan/atau pidana denda paling banyak Rp1.000.000.000,00 (satu miliar rupiah). 4. Setiap Orang yang memenuhi unsur sebagaimana dimaksud pada ayat (3) yang dilakukan dalam bentuk pembajakan, dipidana dengan pidana penjara paling lama 10 (sepuluh) tahun dan/atau pidana denda paling banyak Rp4.000.000.000,00 (empat miliar rupiah).

Langkah Mudah Belajar Struktur Data Menggunakan C/C++ Prof. Dr. Ema Utami, S.Si., M.Kom. Windha Mega Pradnya Dhuhita, S.Kom, M.Kom. PENERBIT PT ELEX MEDIA KOMPUTINDO

Langkah Mudah Belajar Struktur Data Menggunakan C/C++ Prof. Dr. Ema Utami, S.Si., M.Kom. Windha Mega Pradnya Dhuhita, S.Kom, M.Kom. 2017, PT Elex Media Komputindo, Jakarta Hak cipta dilindungi undang-undang Diterbitkan pertama kali oleh Penerbit PT Elex Media Komputindo Kelompok Gramedia, Anggota IKAPI, Jakarta 2017 anindita@elexmedia.id ID: 717051490 ISBN: 978-602-04-4540-3 Dilarang keras menerjemahkan, memfotokopi, atau memperbanyak sebagian atau seluruh isi buku ini tanpa izin tertulis dari penerbit. Dicetak oleh Percetakan PT Gramedia, Jakarta Isi di luar tanggung jawab percetakan

Daftar Isi Kata Pengantar... v Daftar Isi... ix Bab 1 Pendahuluan... 1 1.1 Implementasi Struktur Data... 2 1.2 Tipe Data Elementer dan Struktur Data... 2 Bab 2 Array dan String... 7 2.1 Array Satu Dimensi... 9 2.1.1 Deklarasi Array Satu Dimensi... 9 2.1.2 Pemberian Nilai Array Satu Dimensi... 9 2.1.3 Menampilkan Isi Array Satu Dimensi... 11 2.2 Array Dua Dimensi... 13 2.2.1 Deklarasi Array Dua Dimensi... 13 2.2.2 Pemberian Nilai Array Dua Dimensi... 14 2.2.3 Menampilkan Isi Array Dua Dimensi... 15 2.3 String... 17 2.4 Contoh Penerapan Array dan String... 20 Bab 3 Struktur... 47 3.1 Definisi Struktur... 48 3.2 Pengaksesan Elemen Struktur... 50 3.3 Pengaksesan Elemen Nested Struct... 52 3.4 Struct of Array... 55 ix

3.5 Contoh Penerapan Struktur... 57 Bab 4 Subprogram dan Rekursi... 73 4.1 Subprogram... 74 4.2 Rekursi... 79 4.3 Contoh Penerapan Subprogram dan Rekursi... 87 Bab 5 Sorting... 97 5.1 Metode Selection Sort... 98 5.1.1 Pengurutan Naik (Ascending)... 98 5.1.2 Pengurutan Turun (Descending)... 102 5.2 Metode Bubble Sort... 106 5.2.1 Pengurutan Naik (Ascending)... 106 5.2.2 Pengurutan Turun (Descending)... 112 5.3 Metode Insertion Sort... 113 5.3.1 Pengurutan Naik (Ascending)... 113 5.3.2 Pengurutan Turun (Descending)... 116 5.4 Metode Merge Sort... 118 5.4.1 Pengurutan Naik (Ascending)... 118 5.4.2 Pengurutan Turun (Descending)... 126 5.5 Contoh Penerapan Sorting... 133 Bab 6 Searching... 137 6.1 Metode Sequential Search... 138 6.1.1 Pencarian pada Array Belum Terurut... 138 6.1.2 Pencarian pada Array Terurut... 141 6.2 Metode Binary Search... 145 6.3 Pencarian pada Struct of Array... 148 6.4 Contoh Penerapan Searching... 150 Bab 7 Stack... 153 7.1 Single Stack... 154 x

7.2 Operasi-Operasi Single Stack... 154 7.3 Contoh Penerapan Single Stack... 161 7.4 Double Stack... 183 7.5 Operasi-Operasi Double Stack... 184 7.6 Contoh Penerapan Double Stack... 187 Bab 8 Queue... 209 8.1 Implementasi Queue dengan Linear Array... 210 8.2 Operasi-Operasi Queue dengan Linear Array... 211 8.3 Contoh Penerapan Queue dengan Linear Array.. 214 8.4 Implementasi Queue dengan Circular Array... 230 8.5 Operasi-Operasi Queue dengan Circular Array... 232 8.6 Contoh Penerapan Queue dengan Circular Array... 234 Bab 9 Pointer dan Linked List... 253 9.1 Variabel Pointer... 253 9.2 Operasi-Operasi Pointer... 255 9.3 Alokasi Dinamis pada Pointer... 255 9.4 Contoh Penerapan Pointer... 256 9.5 Linked List... 258 9.6 Operasi-Operasi Linked List... 259 9.7 Contoh Penerapan Linked List... 270 Bab 10 Evaluasi... 277 10.1 Contoh Implementasi Struktur Data... 277 10.2 Latihan Soal... 293 Daftar Pustaka... 295 Tentang Penulis... 297 xi

Pendahuluan Kompetensi Dasar (Tujuan Pembelajaran Umum): Memahami pengertian dan konsep dasar Struktur Data. Indikator: 1. Mampu mendeskripsikan pengertian Struktur Data. 2. Mampu menggunakan struktur data yang tepat dalam pemrograman. Struktur data merupakan ilmu yang harus dikuasai oleh seseorang yang terjun dalam dunia informatika, seperti mempelajari bahasa pemrograman, membuat sistem operasi, atau membuat media penyimpanan data. Mempelajari struktur data seperti mengatur almari pakaian. Kita harus menata dan mengelompokkannya sedemikian rupa agar almari terlihat rapi, mudah dalam pencarian pakaian, serta dapat memuat banyak pakaian. Berdasarkan analogi di atas, struktur data adalah cara pengorganisasian data dalam komputer agar penyimpanan data dan penggunaan memori komputer lebih efisien, mudah dalam pengaksesan data, dan memudahkan dalam pembacaan algoritma pemrograman. Pengorganisasian yang dimaksud meliputi bentuk data disimpan, disusun, dan dikelompokkan. 1

1.1 Implementasi Struktur Data Pengorganisasian data memerlukan algoritma yang tepat agar tujuan efisiensi memory tercapai. Untuk itu, dalam buku ini akan diulas macammacam struktur data dan algoritma-nya. Beberapa implementasi struktur data dalam pemrograman di antaranya adalah pada basis data, pengolahan kata, berkas-berkas, dan semua yang berhubungan dengan pengelolaan data, seperti pencarian data, pengurutan data, manajemen penyimpanan data, dan pengelompokan data. 1.2 Tipe Data Elementer dan Struktur Data Apabila berbicara mengenai pengolahan data, maka kita juga perlu memahami tentang tipe data dan bagaimana data tersebut ditampilkan. Data dapat dikelompokkan menjadi: 1. Tipe data elementer tunggal, contohnya: a. Karakter: berupa huruf, simbol, angka yang ditulis dalam tanda petik tunggal). Contoh: 'A', '3', '&'. b. Integer: berupa bilangan bulat dan dapat dikenakan operasi matematis. c. Real: berupa bilangan pecahan desimal. d. Boolean: tipe data yang hanya mempunyai dua nilai, yaitu TRUE (benar) dan FALSE (salah). 2. Tipe data elementer majemuk, contohnya string yang merupakan kumpulan dari karakter yang pemberian nilainya menggunakan tanda petik (" "). 3. Struktur data sederhana, di antaranya: a. Array, yaitu sekumpulan data yang memiliki tipe data yang sama. b. Record, yaitu sekumpulan data yang terdiri atas beberapa field yang mempunyai tipe data yang bermacam-macam. 2

4. Struktur data majemuk, di antaranya: a. Linear, contohnya: stack, queue, linear linked list. b. Nonlinear, contohnya: tree, binary tree. Untuk memudahkan dalam pemahaman, berikut perbedaan antara tipe data sederhana dan struktur data yang disajikan dalam tabel 1.1 di bawah ini: Tabel 1.1 Perbandingan Tipe Data Elementer dan Struktur Data Parameter Pembanding Jumlah data Tipe Data Elementer Hanya mempunyai satu nilai tiap satu variabelnya Struktur Data Terdiri atas beberapa nilai dalam satu variabel Jenis data Tipe dasar Tipe terstruktur Perhatikan contoh program sederhana berikut ini: include <stdio.h> main() { int i,data; for (i=1;i<6;i++) { printf ( Data ke-%i =,i); scanf ( %i,&data); } for (i=1;i<6;i++) { printf ( Data ke-%i = %i,i,data); } Misalkan, data-data yang diinputkan melalui keyboard adalah 10, 11, 12, 13, 14. Maka, program di atas akan menampilkan output: 14 14 14 3

14 14 Mengapa 10, 11, 12, 13 tidak tercetak? Karena variabel data hanya dapat menampung satu buah nilai dan nilai yang disimpan oleh variabel data adalah nilai yang terakhir kali dimasukkan (contoh di sini adalah 14). Nilai terakhir inilah yang dicetak ke peranti keluaran pada setiap kali perulangan. Berikut ilustrasi dari program sederhana di atas: 1. Dideklarasikan variabel dengan nama data dengan tipe integer data 2. Hasil kompilasi program di bawah ini: Ketika i = 1 data ke-1 = 10 10 data for (i=1;i<6;i++) { printf ( Data ke-%i =,i); scanf ( %i,&data); } Ketika i = 2 data ke-2 = 11 11 data Ketika i = 3 data ke-3 = 12 12 data Ketika i = 3 data ke-4 = 13 13 data Ketika i = 4 data ke-5 = 14 14 data 4

Ketika i = 6, perulangan berhenti, nilai terakhir variabel data = 14 3. Hasil kompilasi perulangan berikut: for (i=1;i<6;i++) { printf ( Data ke-%i = %i,i,data); } ketika i = 1 data ke-1 = 14 ketika i = 2 data ke-2 = 14 ketika i = 3 data ke-3 = 14 ketika i = 4 data ke-4 = 14 ketika i = 5 data ke-5 = 14 ketika i = 6 perulangan berhenti Jadi, variabel dengan tipe data elementer hanya dapat digunakan untuk menyimpan satu nilai. Untuk menyimpan lebih dari satu nilai data sekaligus dalam sebuah variabel, digunakan tipe data terstruktur. Contoh tipe data terstruktur atau STRUKTUR DATA adalah array, struct, stack, queue, dan lain-lain. Adapun contoh-contoh program dalam buku ini menggunakan bahasa C/C++. Terdapat pilihan perintah untuk input dan output-nya, seperti cin-cout atau printf-scanf, serta gets. 5