Review Array Sri Nurhayati, MT.

Slides:



Advertisements
Presentasi serupa
Pencarian ( Searching)
Advertisements

BAB III – ARRAY STATIS II
Algoritma Sorting Alpro-2.
STRUKTUR DATA (3) sorting array
Sorting (Pengurutan).
ARRAY 1 DIMENSI #10 STIKOM Searching Pengantar Manfaat Inisialisasi
Pengurutan Data Nurdiansah PTIK 09 UNM.
PENGURUTAN (SORTING).
STRUKTUR DATA (3) sorting array
PENCARIAN (SEARCHING)
SORTING.
Algoritma & Struktur Data Sorting Evangs Mailoa.
Sorting Pertemuan ke 14..
Algoritma dan Struktur Data
Teknik Informatika - Universitas Muhammadiyah Malang (UMM)
Searching.
STRUKTUR DATA (4) Sorting dan Searching Array
STRUKTUR DATA Pointer dan Function
Sorting (Pengurutan).
Apakah Stack itu ?. Apakah Stack itu ? Pengertian STACK Secara sederhana diartikan dengan : sebagai tumpukan dari benda sekumpulan data yang seolah-olah.
STACK.
Metode Pengurutan (Sorting)
CS1023 Pemrograman Komputer Lecture 20 Array / Tabel [2]
Algoritma Pencarian (searching)
Stack.
KUG1C3 Dasar Pemrograman
KUG1A3 Algoritma& Pemrograman
Pencarian pada Array Tim PHKI Modul Dasar Pemrograman
PENGURUTAN (SORTING).
STRUKTUR DATA Chapt 07 : Sorting Oleh : Yuli Praptomo PHS, S.Kom.
Algoritma dan Struktur Data
Sorting Pengurutan data dalam struktur data sangat penting terutama untuk data yang beripe data numerik ataupun karakter. Pengurutan dapat dilakukan secara.
KUG1C3 Dasar Algoritma & Pemrograman
Stack Stack atau tumpukan adalah suatu stuktur data yang penting dalam pemrograman Bersifat LIFO (Last In First Out) Benda yang terakhir masuk ke dalam.
Struktur data Oleh: Tim Struktur Data IF ARRAY STATIS.
Searching.
PENGURUTAN (SORTING).
SORTING (Lanjut).
Pengurutan (Sorting).
STRUKTUR DATA (3) sorting array
STRUKTUR DATA Array Statis.
STRUKTUR DATA (3) sorting array
Metode pemecahan masalah
STRUKTUR DATA sorting array
Imam Gunawan, M. Kom STMIK-AMIK Jayanusa Padang
BINARY SEARCH Tim Algoritma Pemrograman Teknik Informatika
SEARCHING (PENCARIAN)
STRUKTUR DATA Array Statis.
Pengurutan Rekaman SUB Pengurutan Gelembung.
Shorting (Pengurutan)
IT234 Algoritma dan Struktur Data
ARRAY STATIS Sri Nurhayati, MT.
Sorting.
Sorting (Pengurutan).
STRUKTUR DATA (3) sorting array
SORTING ARRAY SESI 2.
STRUKTUR DATA Sri Nurhayati, MT.
Review Array Sri Nurhayati, MT.
ARRAY STATIS Sri Nurhayati, MT.
STUKTUR DATA “Sequential Search and Binary Search”
IT234 Algoritma dan Struktur Data
Sorting Dasar Pemrograman
STRUKTUR DATA (3) sorting array
IT234 Algoritma dan Struktur Data
STRUKTUR DATA (3) sorting array
IT234 Algoritma dan Struktur Data
MODEL SORTING Kelompok V Rahmawati ( )
SEARCHING Universitas Dian Nuswantoro Semarang 12/7/2018.
Sorting (Pengurutan).
SORTING.
Transcript presentasi:

Review Array Sri Nurhayati, MT

Array Array adalah struktur data statik yang menyimpan sekumpulan elemen yang bertipe sama. Setiap elemen diakses langsung melalui indeksnya. Indeks array harus tipe data yang menyatakan keterurutan misalnya integer atau karakter. Banyaknya elemen array harus sudah diketahui sebelum program dieksekusi.

Deklarasi Array Dalam Pascal : Var Dalam C: int Data[10] Data:array[1..10] of integer;   Elemen 12 24 7 10 20 9 15 5 13 8 No Indeks 1 2 3 4 6 Dalam C: int Data[10]   Elemen 12 24 7 10 20 9 15 5 13 8 No Indeks 1 2 3 4 6

Operasi Array Akses Data Array Memberikan nama variabel array tersebut serta indexnya. Contoh dalam bahasa C: Data[0]=5; Data[1]=7;

Contoh lain akses array di C int data[5]={1,4,5,6,7}; int *p,i; //p adalah pointer ke data int, i adalah sebuah int p=data; i=data[2]; *p=50; // identik dengan data[0]=50 *(p+1)=15; // identik dengan data[1]=15 *(p+2)=*p+data[1]; // identik dengan data[2]=data[2]+data[1]; p++; // alamat p ditambah 1 (p berisi alamat int berikutnya) printf(“Isi P adalah : “,*p);// akan muncul data[1] yaitu 50 p=p+2; // alamat p ditambah 2(p berisi alamat 2 int berikutnya printf(“Isi P sekarang : “,*p);// akan muncul data[3] yaitu 6

Menampilkan data array Untuk menampilakan data yang ada dalam array sebanyak banyaknya data, maka diperlukan perulangan dari data pertama sampai data terakhir. Contoh : int i; int data[5]={1,5,8,9,8}; int banyakdata=5; for(i=0;i<banyakdata;i++) { printf("data[%d]: %i\n",i,data[i]); }

Menggunakan pointer int i,*p; int data[5]={1,5,8,9,8}; int banyakdata=5; p=data; for(i=0;i<banyakdata;i++) { printf("data[%d]: %i\n",i,*(p+i)); }

printf("3 buah Isi A adalah : "); view_array(a,3); printf("\n"); Menggunakan Fungsi void view_array(int data[],int banyakdata) { int i; for(i=0;i<banyakdata;i++) printf("%4d ",data[i]); } void view_array(int *data,int banyakdata) printf("%4d ",*(data+i));   Pemanggilan Fungsi : int a[5]={2,5,6,7,8}; int banyakdata=5; printf("3 buah Isi A adalah : "); view_array(a,3); printf("\n"); printf("Seluruh Isi A adalah : "); view_array(a,banyakdata);

Penambahan data ke array Penambahan data ke array adalah proses menambahkan sebuah elemen ke dalam sebuah array. data[0] data[1] data[2] data[3] data[4] banyakdata 3 5 6 - baru 7 data[0] data[1] data[2] data[3] data[4] banyakdata 3 5 6 7 - 4

void tambah_array(int data[], int *banyakdata, int baru) { if (*banyakdata < maks) data[*banyakdata]=baru; *banyakdata+=1; } else printf("Array Penuh. Penambahan gagal\n"); Pemanggilan Fungsi : int a[5]; int bd=0; tambah_array(a,&bd,3); tambah_array(a,&bd,5); view_array(a,bd);// Menampilkan data array A sebanyak bd

Penyisipan data ke array Penyisipan data ke array adalah proses menyisipkan data di array di lokasi tertentu. Masalah yang timbul ketika ada suatu proses penyisipan nilai, yaitu adanya pergeseran nilai pada data berikutnya. data[0] data[1] data[2] data[3] data[4] banyakdata 3 5 6 -

Algoritma penyisipan data array adalah : Jika array belum penuh, lanjutkan ke proses b, dan jika telah penuh, proses berakhir dan proses dibatalkan. Jika posisi penyisipan berada dalam range array, maka kerjakan proses c sedangkan jika posisi penyisipan di luar range array, maka proses penyisipan dibatalkan. Lakukan pergeseran dari posisi banyakdata menurun sampai posisi penyisipan, dengan ketentuan data[i+1]=data[i], dimana i mempunyai nilai dari posisi banyakdata sampai posisi penyisipan data (menurun). Isikan nilai baru ke data[posisi sisip]. (data[posisi]=baru). Variabel banyakdata ditambah 1.

Penghapusan data dari array Penghapusan data dari array berarti menghilangkan suatu elemen data dalam array pada posisi tertentu. Proses penghapusan ini mengakibatkan adanya pergeseran data. data[0] data[1] data[2] data[3] data[4] banyakdata 3 5 6 8 - 4

Algoritma penghapusan data array adalah : Jika array tidak kosong (banyakdata>0), maka lanjutkan ke proses b. Jika array kosong proses penghapusan dibatalkan. Jika posisi penghapusan berada dalam range array, maka kerjakan proses c sedangkan jika posisi penghapusan berada di luar range array, maka proses penghapusan dibatalkan. Lakukan perulangan untuk i dari posisi hapus sampai data terakhir-1, kemudian lakukan pemindahan data agar data pada posisi ke-i diisi dengan berikutnya (posisi i+1). Sederhananya proses pemindahan dapat dilakukan dengan ketentuan data[i]=data[i+1]; Setelah proses pergeseran data, variabel banyakdata dikurangi 1, karena telah ada 1 data yang dihapus.

Pencarian Data a. Algoritma Sequential Sentinel Terdapat proses pengisian sentinel (data terakhir diisi dengan data yang dicari) Menelusuri data yang ada di array dan membandingkannya dengan data yang dicari sampai data yang dicari ditemukan. Kekurangan dari algoritma ini adalah kita harus menyediakan 1 tempat untuk sentinel. Untuk Sentinel 5 8 7 6 9

int cari_sekuensial_sentinel(int data[],int banyakdata, int dicari) { int i=0; data[banyakdata]=dicari; //pengisian sentinel while(data[i]!=dicari) //selama belum ditemukan i++; } if(i<banyakdata) return i+1; else return 0; Pemanggilan Fungsi : int a[6]={10,22,34,42,55,0};//0 untuk sentinel int bd=5; int posisi; clrscr(); view_array(a,bd);printf("\n"); posisi=cari_sekuensial_sentinel(a,bd,34); if(posisi!=0) printf("Data ditemukan di posisis : %d\n",posisi); else printf("Data tidak ditemukan\n");

Tanpa Sentinel Pencarian ini dilakukan dengan cara menelurusi data yang ada dalam array dan membandingkannya dengan data yang dicari. Pencarian berhenti ketika data ditemukan atau penelurusan telah mencapai data terakhir. Algoritma : Inisialisasi variabel ditemukan dengan false Lakukan perulangan i dari 1 (data pertama) selama data ke-i tidak sama dengan data yang dicari (data belum ditemukan) dan selama nilai i masih lebih kecil dari banyak data. Lakukan langkah c. Jika data ke-i sama dengan data yang dicari, maka isi variable ditemukan dengan nilai true yang menandakan data telah ditemukan, tetapi jika tidak sama maka variabel i ditambah 1 untuk memeriksa data selanjutnya. Setelah perulangan b s/d c selesai, maka jika variabel ditemukan mempunyai nilai true, berarti data yang dicari ada di posisi ke-i. Jika variabel ditemukan mempunyai nilai false, berarti data yang dicari tidak ditemukan.

b. Binary Search Teknik pencarian dalam data yang sudah terurut. Beban komputasi yang lebih ringan dibandingkan dengan pencarian sekuensial. Algoritma pencarian secara binary : Data diambil dari posisi 1 sampai posisi akhir N Kemudian cari posisi data tengah dengan rumus (posisi awal + posisi akhir) / 2 Kemudian data yang dicari dibandingkan dengan data yang di tengah, apakah sama atau lebih kecil, atau lebih besar? Jika lebih besar, maka proses pencarian dicari dengan posisi awaladalah posisi tengah + 1 Jika lebih kecil, maka proses pencarian dicari dengan posisi akhir adalah posisi tengah – 1 Jika data sama, berarti ketemu

Pengurutan Data Pengurutan data dalam struktur data sangat penting terutama untuk data yang beripe data numerik ataupun karakter. Pengurutan dapat dilakukan secara ascending (urut naik) dan descending (urut turun) Pengurutan (Sorting) adalah proses pengurutan data yang sebelumnya disusun secara acak sehingga tersusun secara teratur menurut aturan tertentu.

Bubble Sort Membandingkan sebuah elemen array ke-i dengan elemen array berikutnya (elemen ke-i+1). Jika isi elemen array ke-i lebih besar dari elemen array ke-i+1, maka tukarkan isinya. Kapan berhentinya? Bubble sort berhenti jika seluruh array telah diperiksa dan tidak ada pertukaran lagi yang bisa dilakukan, serta tercapai perurutan yang telah diinginkan. Algoritma pengurutan yang paling sederhana, tetapi paling lambat untuk array yang memiliki elemen yang banyak.

Contoh : akan diurutkan 10 nilai Array: 5 3 7 9 2 6 4 1 Awal: 5 3 7 9 2 6 4 1 L. 1 L. 2 L. 3 L. 4 L. 5 L. 6 L. 7 L. 8 L. 9 Catatan : data yang diarsir adalah data yang telah terurut.

Algoritma pengurutan data dengan algoritma bubble sort adalah : Lakukan perulangan untuk i dimulai dari 1 sampai N-1, lakukan proses b. Lakukan perulangan j dimulai dari 1 sampai N-1, lakukan perbandingan antara data ke-j dengan data ke-(j+1). Jika data ke-j lebih besar dari data ke-(j+1), maka tukarkan datanya.

Selection Sort Algoritma selection sort bekerja dengan cara menyimpan data terkecil dari data ke posisi kiri. Data paling kiri yang telah terurut tidak perlu dibandingkan lagi. Selama proses, pembandingan dan pengubahan hanya dilakukan pada indeks pembanding saja, pertukaran data secara fisik terjadi pada akhir proses. Algoritma ini lebih baik dari pengurutan dengan algoritma bubble sort, karena dengan algoritma ini, proses pertukaran elemen hanya terjadi sebanyak N-1 kali

Kondisi awal : Langkah 1 : Menjadi : 5 3 7 9 2 6 4 1 Langkah 1 : Cari index bilangan terkecil dari data ke-1 sampai data terakhir terakhir untuk disimpan di posisi ke-1. Dari data di atas didapatkan bahwa data terkecil berada di index ke-10. Tukarkan isi data ke-1 dengan indek ke 10. 5 3 7 9 2 6 4 1 Menjadi : 1 3 7 9 2 6 4 5

Dan seterusnya, sehingga terurut Langkah 1 : Cari index bilangan terkecil dari data ke-2 sampai data terakhir untuk disimpan di posisi-2. Dari data sebelumnya didapatkan bahwa data terkecil berada di index ke-5. Tukarkan isi data ke-2 dengan data index ke-5. 11 3 7 9 2 6 4 5 Menjadi : 11 2 7 9 3 6 4 5 Dan seterusnya, sehingga terurut

Algoritma di atas adalah : lakukan perulangan i untuk mewakili langkah dari 1 sampai N-1,dimana N adalah banyak data. Lakukan proses b. Lakukan pencarian index terkecil dalam range data ke-i sampai data ke-N, dan simpan index posisinya dalam variabel idxterkecil. Lanjutkan ke proses c. Jika data ke-i lebih besar dari data ke-indexterkecil, maka tukarkan data ke-i dengan data ke-indexterkecil.