Struktur Data Linier. Input. Program untuk menyelesaikan masalah. Algoritma Penyelesaian. Proses. Masalah. Struktur Data. Output

dokumen-dokumen yang mirip
SENARAI BERANTAI (LINK LIST)

ALGORITMA PENGURUTAN & PENCARIAN

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

DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF

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

Pertemuan 2 ARRAY DIMENSI 1 & 2

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

SORTING. Brigida Arie Minartiningtyas, M.Kom

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

ARRAY DIMENSI 1 & 2. Array dapat didefinisikan sebagai suatu himpunan hingga elemen yang terurut dan homogen.

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

Pengenalan Array. Array Satu Dimensi

MODUL IV PENCARIAN DAN PENGURUTAN

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

Algoritma Shell Sort Ascending Dan Binary Sequential Search Menggunakan C

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

Pengurutan (Sorting) Algoritma Pemrograman

SORTING. Struktur Data S1 Sistem Informasi. Ld.Farida

Langkah Mudah Belajar Struktur Data Menggunakan C/C++

BAB 3 SEARCHING A. TUJUAN

PERTEMUAN VI POINTER 6.1 Tujuan Praktikum 6.2 Teori Penunjang Pointer

ANALISIS ALGORITMA. Disusun Oleh: Analisis Masalah dan Running Time. Adam Mukharil Bachtiar Teknik Informatika UNIKOM

Kompleksitas Algoritma

Modul Praktikum Algoritma dan Struktur Data

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

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

ARRAY PENGANTAR PROGRAM STUDI. Institut Teknologi Sumatera

Array Dimensi Satu. Pendahuluan. Slamet Kurniawan, S.Kom

Algoritma dan Struktur Data. Searching dan Sorting

Algoritma dan Struktur Data. Linked List

REVIEW ARRAY. Institut Teknologi Sumatera

Modul Praktikum Algoritma dan Struktur Data

AnalisisFramework. Mengukur ukuran atau jumlah input Mengukur waktu eksekusi Tingkat pertumbuhan Efiesiensi worst-case, best-case dan average-case

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

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

a. Array berdimensi satu o Setiap elemen array dapat diakses melalui indeks. o Indeks array (subscript) secara default dimulai dari 0.

BAB 8 SORTING DAN SEARCHING

Sebuah algoritma tidak saja harus benar, tetapi juga harus mangkus (efisien). Algoritma yang bagus adalah algoritma yang mangkus.

Kompleksitas Algoritma

ARRAY / LARIK. Oleh : Agus Priyanto, M.Kom SEKOLAH TINGGI TEKNOLOGI TELEMATIKA TELKOM. Smart, Trustworthy, And Teamwork

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

SOAL C++ Created by Yuli Astuti,S.Kom Copyright 2009

SORTING (PENGURUTAN DATA)

Kompleksitas Algoritma (1)

SATUAN ACARA PERKULIAHAN UNIVERSITAS GUNADARMA

SEARCHING. Pusat Pengembangan Pendidikan Universitas Gadjah Mada 1

Pencarian. 1. Memahami konsep pencarian 2. Mengenal beberapa algoritma pencarian 3. Menerapkan algoritma pencarian dalam program

Algoritma dan Struktur Data

Array (Larik) Modul 7

Algoritma Bubble Sort dan Quick Sort

Sorting adalah proses mengatur sekumpulan objek menurut aturan atau susunan tertentu. Urutan objek tersebut dapat menaik (ascending = dari data kecil

LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA Searching ( Pencarian ) Modul III

ANALISIS ALGORITMA BINARY SEARCH

BAB 10 POINTER 5.1 Tujuan 5.2 Pengertian Pointer Perubah dinamis pointer

7. SORTING DAN SEARCHING

Pertemuan 2 ARRAY DIMENSI 1 & 2

Algoritma dan Pemrograman Sorting (Pengurutan) IS1313. Oleh: Eddy Prasetyo N

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

Algoritma Searching Tenia wahyuningrum, S.Kom. MT dan Sisilia Thya Safitri, MT

Gambar 13.1 Ilustrasi proses algoritma sorting

Minggu III STRUKTUR PEMILIHAN (KONTROL PROGRAM)

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT

SORTING ARRAY FAKULTAS TEKNOLOGI INFORMASI UNISBANK SEMARANG : ANDY KRISTIANTO : Disusun Oleh :

Kisi-Kisi Ujian Tengah Semester Algoritma dan Pemrograman Lanjut

BAB I. LARIK (ARRAY) Array (larik) ialah penampung sejumlah data sejenis (homogen) yang menggunakan satu identifier (pengenal).

PERTEMUAN 11 TEHNIK SEARCHING

BAHASA PEMROGRAMAN 1 (PERTEMUAN 3)

Pencarian (Searching)

A B C D E F. Gambar 1. Senarai berantai dengan 6 simpul

Modul 8 SORTING (PENGURUTAN)

Pert 2 Struktur Data (mengajarkomputer.wordpress.com) ARRAY DIMENSI 1 & 2

Penerapan Divide and Conquer dalam Membandingkan Alur Proses 2 Source Code

Searching [pencarian] Algoritma Pemrograman

Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya

Pertemuan 7. REVIEW dan QUIS

STRUKTUR DATA. Nama : Sulfikar Npm : STMIK Handayani Makassar

SORTING. Hartanto Tantriawan, S.Kom., M.Kom

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-8 Pengurutan (Sorting) 1

E STRUKTUR DATA & E PRAKTIK STRUKTUR DATA. Array & Searching Array. Alfa Faridh Suni, S.T., M.T. PTIK

ALGORITMA SEARCHING. Oleh : Agus Priyanto, M.Kom SEKOLAH TINGGI TEKNOLOGI TELEMATIKA TELKOM. Smart, Trustworthy, And Teamwork

Algoritma Dan Struktur Data II

Struktur Data. PDE - Struktur Data 1

STRATEGI DIVIDE AND CONQUER

2. Sebuah prosedur langkah demi langkah yang pasti untuk menyelesaikan sebuah masalah disebut : a. Proses b. Program c. Algoritma d. Prosesor e.

Kompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort

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

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

SATUAN ACARA PERKULIAHAN UNIVERSITAS GUNADARMA

Sorting (Bubble Sort)

elemen Dasar Bahasa Pemrograman C

ALGORITMA DAN STRUKTUR DATA SEARCHING ARRAY

BAB V SORT. Proses penukaran tidak dapat langsung dilakukan dengan cara : nilai[1] = nilai[2]; nilai[2] = nilai[1];

BAB VI SEARCHING (PENCARIAN)

Pengertian Algoritma Pengurutan

LAPORAN PRAKTIKUM SEMENTARA PENGANTAR PEMROGAMAN BAHASA C++

PERTEMUAN 3 KONSEP TIPE DATA

BAB VII ALGORITMA DIVIDE AND CONQUER

Modul 15 Searching. 1.1 Kompetensi

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR

Konsep Sorting dalam Pemrograman Saniman dan Muhammad Fathoni

Transkripsi:

Tujuan Mahasiswa mampu memilih struktur/type data yang tepat pada setiap variabel yang digunakan dalam program guna meningkatkan efisiensi penggunaan memori (Space) sehingga berdampak pada peningkatan Speed (kecepatan eksekusi) sebuah program. Definisi Struktur dan Data Struktur dapat diartikan sebagai suatu susunan, bentuk, pola atau bangunan. Contoh rangkaian kata yang mengandng kata struktur adalah: struktur organisasi, struktur jaringan, struktur kimia, dsb Data berasal dari bahasa Yunani datum yang berarti fakta. Kata data sudah berarti majemuk/jamak sehingga tidak perlu mengulangnya untuk menyatakan banyak. Ada 2 Model Data a. Model data logika adalah model data yang ditinjau dari sudut pandang pemakai (manusia), yaitu segala sesuatu yang dapat diterima oleh indera manusia yang berasal dari rangsangan-rangsangan di sekitarnya, baik secara tersurat maupun tersirat. b. Model data fisik adalah model data yang ditinjau dari sudut pandang komputer yaitu segala sesuatu yang dapat dikodekan atau disimbolkan dengan kode-kode atau simbol-simbol yang telah disediakan di setiap komputer. (Ingat kembali data di komputer/ sistem bilangan dan konversi bilangan) Definisi Struktur Data Jika kata struktur dan data disatukan akan bermakna suatu susunan simbol-simbol yang diorganisasikan sesuai dengan definisi yang diberikan terhadapnya di komputer. Jadi mata kuliah ini mempelajari bagaimana data disusun di memori utama komputer agar penggunaan space di memori efisien, cepat dalam pencarian dan pengambilannya kembali (retrieving) dan dapat diolah sesuai tujuan kita. Sehingga mempelajari struktur data erat kaitannya dengan membuat suatu algoritma (rangkaian pemikiran logis untuk menyelesaiakan suatu masalah). Masalah Algoritma Penyelesaian Struktur Data Input Proses Output Program untuk menyelesaikan masalah Gambar 1 : Peranan algoritma dan struktur data dalam pembuatan program Halaman 1/8

Data Majemuk dan Data Elementer Nim Nama Alamat TTL Jkel 0431001 Agus Jl. Kartini 25 Malang Malang, 11/11/77 L 0431002 Dessy Jl. Ijen 25 Malang Surabaya, 12/01/80 P data elementer data majemuk Operasi-Operasi Dasar Pada Struktur Data a. Traversing : proses mengunjungi setiap elemen data pada suatu struktur data, tepat satu kali b. Searching : proses pencarian data dengan kriteria tertentu c. Inserting : proses menambah elemen data baru ke suatu struktur data d. Deleting : proses menghapus elemen data dari struktur e. Sorting : proses menyusun elemen-elemen data dalam urutan/aturan tertentu f. Update : proses mengganti nilai suatu elemen data dengan nilai baru g. Mergening : proses menggabung dua buah struktur data menjadi satu Klasifikasi Struktur Data Array Linier Link List Struktur data Sederhan Tree Non linier Graph Halaman 2/8

Struktur Data Linier Array (Larik) Array adalah tipe terstruktur yang mempunyai komponen/elemen dalam jumlah yang tetap (statis sesuai deklarasi) dan setiap elemennya mempunyai tipe data yang sama. Posisi setiap elemen dalam array dinyatakan dalam nomor indek atau subscript. Struktur ini banyak digunakan dalam operasi sorting, searching dan traversing data. Ciri-ciri array: a. Banyak elemennya tertentu/terhingga b. Tipe elemennya sama c. Membutuhkan lokasi memori yang Contigueus/menyatu sehingga letak elemen berdekatan satu sama lain (dengan tujuan agar mudah melacak/membaca kembali) Array Satu Dimensi a. Model Logika Cara penulisan di media kertas/papan sedemikian rupa sehingga dapat dengan mudah untuk menulis atau membaca kembali. Contoh : daftar belanja nilai b. Model Fisik 1. sawi 2. bawang 3. bayam 4. mie cien 5. kecap 1 60 2 70 3 100 4 50 5 40 Menyusun sedemikian rupa elemen-elemen data yang akan diinputkan dan kemudian disimpan dalam memori komputer. Untuk lebih memperjelas pemahaman tentang model fisik ini dapat diambil contoh sebagai berikut: int A, JM; char I; Tipe data sederhana main() For (I=0; I<100; I++) cin >> A; JM += A;. int A[100], JM; char I; Tipe data array main() For (I=0; I<100; I++) cin >> A[I]; JM += A[I]; Halaman 3/8

Tipe data sederhana PEMETAAN DATA DI MEMORI Tipe data array A 2 Byte A[0] I 1 Byte A[1] JM 2 Byte Free Total : 5 Byte 2 Byte * 100 = 200 Byte A[99] 1 Byte I 2 Byte JM Free Total : 203 Byte Free Pendeklarasian tipe data array 1 demensi type_elemen namaarray[jumlah_elemen]; contoh: int A[10]; float B[20]; dari deklarasi di atas, dapat dihitung kebutuhan memori suatu array atau yang lebih dikenal dengan istilah Panjang Dimensi (DIM(A)) sebagai berikut: DIM(A) = Banyak Elemen (A) * W (Word Length) dimana W adalah kebutuhan memori masing-masing elemennya. Sedangkan untuk mencari lokasi atau address suatu elemen array dapat digunakan rumus: LOC(A[i]) = Base(A) + i * W Keterangan: i Contoh kasus : : Nomor elemen yang dicari Base(A) : Alamat elemen pertama (biasanya diketahui) Diket deklarasi array sebagai berikut: int A[20]; Hitunglah: Latihan: a. DIM(A) b. Alamat A[3], Jika diketahui Base(A)=2500. Diketahui deklarasi array sebagai berikut: int A[20]; float B[100]; Hitunglah: a. DIM(A) dan DIM(B) b. Alamat A[10], Jika diketahui Base(A)=2150. c. Alamat B[55], Jika diketahui Base(B)=5400. Operasi-operasi Pada Array 1 Demensi Halaman 4/8

Traversing Proses mengunjungi setiap elemen data tepat satu kali Traversing(A, Jml) I = 0 While (I < Jml) /* Proses A[ I ] */ I = I +1 EndOf While EndOfTraversing Inserting Atau For (I=0; I < Jml; I++) /* Proses A[ I ] */ Operasi menambahkan elemen data baru ke struktur. Operasi ini hanya dapat dilakukan jika ada kelebihan alokasi memori/masih ada tempat yang kosong. Untuk melakukan operasi inserting, dimisalkan: Nama arraynya = A Kapasitas maximum dari array = Max Jumlah elemen yang sudah terisi = Jml, Posisi penyisipan/index = P, dan Elemen yang disisipkan = X, maka Algoritma insertingnya adalah: Inserting_array(A, Max, Jml, P, X) If Jml = Max Then write ( over flow ) Else I = Jml While ( I > P ) do A[I] = A[I -1] I = I -1 EndOfWhile A[P] = X /* atau */ A[I] = X Jml = Jml +1 EndIf EndOfInserting_array Catatan: Dalam algoritma ini diusahakan seluruh elemen data berdekatan satu sama lain agar mudah dalam membaca kembali. Index Data 0 9 1 8 2 7 3 6 4 5 5. 6. 7. 8. 9. Index Data 0 9 1 8 2 4 3 7 4 6 5 5 6. 7. 8. 9. 4 Halaman 5/8

Deleting Operasi menghapus elemen data dari struktur Array. Operasi ini hanya dapat dilakukan jika ada data dalam struktur tersebut (tidak kosong). Untuk melakukan operasi inserting, dimisalkan: Nama arraynya = A Jumlah elemen yang terisi = Jml, Posisi penghapusan/index = P, dan Algoritma Deleting adalah: Deleting_array(A, Jml, P) If Jml = 0 Then write ( under flow ) Else I = P; While ( I < Jml - 1 ) do A[I] = A[I +1] I = I +1 EndOfWhile Jml = Jml -1 EndIf EndOfDeleting_array Index Data 0 9 1 8 2 7 3 6 4 5 5 2 6 3 7 4 8 0 9 1 Index Data 0 9 1 8 2 7 3 6 4 2 5 3 6 4 7 0 8 1 9 1 Sorting Operasi menyusun elemen-elemen data dalam aturan atau urutan tertentu. Ada dua model sorting yaitu: 1. Data disusun dengan urutan dari kecil ke besar, yang dikenal dengan model ascending, dan 2. Data disusun dengan urutan dari besar ke kecil, yang dikenal dengan model descending. Sedangkan metode/cara yang dapat digunakan untuk mengurutkan data cukup banyak, diantaranya: Buble Sort Shell Sort Insertion Sort Quick Sort Radix sort dsb Metode-metode ini akan kita bahas dalam bab tersendiri. Halaman 6/8

Searching Operasi mencari elemen data dengan kriteria tertentu. Metode yang dapat digunakan dalam operasi ini ada dua yaitu: Searching Linier/sequential Search Binary Search A. Metode Sequential Search Metode Sequential Search adalah metode pencarian data dengan cara membandingkan nilai pencarian setiap elemen dalam struktur mulai index pertama hingga index terakhir selama pencarian belum ditemukan. Algoritma Sequential Search 0 1 2 3 4.. Max Sequential_Search(A, Cari, Max) I = 0; While (A[I]!= Cari) && (I <= Max) I = I + 1; If I > Max Write ( data tidak ditemukan) Else Write ( data ketemu di posisi I ) Endif EndOfSequential_Search Dalam pencarian data dengan metode ini dikenal dua kasus sebagai hasil pemcarian yaitu: Kasus terbaik (best case) : Data yang dicari ditemukan pada index pertama Kasus terburuk (worst case) : Data yang dicari ditemukan pada index terakhir atau tidak ditemukan hingga index+1. Sehingga rata-rata jumlah pembandingan data, dapat dihitung sebagai berikut: 1+ Max Pembandingan = 2 Halaman 7/8

B. Metode Binary Search Pencarian biner hanya dapat dilakukan pada DATA yang sudah terurut. Pencarian data dengan metode ini dilakukan dengan membandingkan nilai pencarian dengan nilai elemen tengah, pada contoh berikut dimisalkan CARI merupakan nilai pencarian, maka pembandingan selalu dilakukan terhadap nilai CARI dengan nilai elemen tengah, dimana nilai tengah didapat dengan cara sebagai berikut: AWAL := BB; AHIR := BA; TENGAH := (AWAL + AKHIR) DIV 2; BERULANG SELAMA ((Data[Tengah]!= CARI) DAN (AWAL <= AKHIR)) JIKA CARI > D[TENGAH] MAKA PENCARIAN KE RUAS/BAGIAN KANAN (AWAL := TENGAH+1) JIKA CARI < D[TENGAH] MAKA PENCARIAN KE RUAS/BAGIAN KIRI (AKHIR := TENGAH-1) TENGAH := (AWAL + AKHIR) DIV 2; AKHIR PERULANGAN AW T AH 0 1 2 3 4 5 6 Dari algoritma diatas jika dibuat programnya sebagai berikut: #include <iostream.h> #include <conio.h> void main() int data[8] = 1,2,3,4,5,6,7,8; int aw, tg, ah, cari; clrscr(); cout << "Nilai yang dicari : "; cin >> cari; aw = 0; ah = 7; tg = (aw + ah) / 2; while (cari!= data[tg] && aw <= ah) if (cari > data[tg]) aw = tg + 1; else ah = tg - 1; tg = (aw + ah) / 2; if (cari == data[tg]) cout << cari << " ditemukan di urutan ke " << tg; else cout << cari << " tidak ditemukan!"; getch(); Jumlah proses pembandingan data pada pencarian biner rata-rata adalah 2 log N, itupun jika nilai yang dicari berada di ujung urutan. Sebagai contoh lihat tabel berikut : Jumlah Data (N) 4 8 16 1024 2 Log N 2 3 4 10 Halaman 8/8