• Tidak ada hasil yang ditemukan

PPT UEU Struktur Data Pertemuan 3

N/A
N/A
Protected

Academic year: 2019

Membagikan "PPT UEU Struktur Data Pertemuan 3"

Copied!
31
0
0

Teks penuh

(1)
(2)

Definisi Arnrnay

• Arnrnay : a finite ornderned set of homogeinous

elemeints

Elemein-elemein arnrnay ternsusuin secarna berndernet

dain dapat diakses secarna rnaindom di dalam memorni.

• Arnrnay memiliki alamat yaing

besebelahain/berndampiingain terngaintuing lebarn tipe datainya.

Arnrnay dapat bernupa arnrnay 1 dimeinsi, 2 dimeinsi,

bahkain in-dimeinsi.

Elemein-elemein arnrnay berntipe data sama dain bisa

(3)

Ilustrnasi Arnrnay 1 Dimeinsi charn

0 1 2 3 4 5 6 7

21da 21db 21dc 21dd 21de 21df 21e0 21e1

indeks

value

alamat

(4)

Ilustrnasi Arnrnay 1 Dimeinsi iint

0 1 2 3 4 5 6 7

21d2 21d4 21d6 21d8 21da 21dc 21de 21e0

indeks

value

alamat

(5)

Pengaksesan Elemen Array

Elemein-elemein arnrnay dapat diakses oleh prnogrnam

meingguinakain suatu iindeks ternteintu secarna rnaindom ataupuin bernurnutain

Peingisiain dain peingambilain inilai pada iindeks

ternteintu dapat dilakukain deingain meingeset inilai

atau meinampilkain inilai pada iindeks yaing dimaksud.

Dalam C, tidak terndapat ernrnorn haindliing ternhadap

batasain inilai iindeks, apakah iindeks ternsebut bernada di dalam iindeks arnrnay yaing sudah didefinisikain atau belum. Hal iini mernupakain taingguing jawab

prnogrnammern. Sehiingga jika prnogrnammern meingakses iindeks yaing salah, maka inilai yaing dihasilkain akain bernbeda atau rnusak karneina meingakses alamat

(6)

Contoh array 1 dimensi

char huruf[9]; int umur[10];

int kondisi[2] = {0,1}

int arr_dinamis[] = {1,2,3}

• Tainda [] disebut juga “elemein yaing ke- ...“. Misalinya

kondisi[0] bernarnti arnrnay koindisi elemein yaing ke

inol.

• Arnrnay yaing sudah dipesain, misalinya 10 tempat tidak harnus diisi semuainya, bisa saja hainya diisi 5 elemein saja, baik secarna bernurnutain maupuin tidak. Namuin pada koindisi yaing tidak sepeinuhinya ternisi ternsebut, tempat pemesainain di memorni tetap sebainyak 10 tempat, jadi tempat yaing tidak ternisi tetap akain ternpesain dain dibiarnkain kosoing.

(7)

Cointoh-cointoh laiin

Bagaimaina meingiinputkain dain

meinampilkain arnrnay?

Mainipulasi arnrnay 1 dimeinsi?

Arnrnay tainpa iinisialisasi laingsuing

ditampilkain?

Arnrnay iinisialisasi deingain 0?

(8)
(9)
(10)
(11)

Opernasi-opernasi Arnrnay

Peinambahain elemein arnrnay

Meinampilkain elemein arnrnay

Peincarniain elemein arnrnay

Carni, jika ditemukain, katakain KETEMU!

Peinghapusain elemein arnrnay

Carni, jika ditemukain kemudiain dihapus!

Peingeditain elemein arnrnay

(12)

Arnrnrnay 2 dimeinsi

char a[3][5]

Sama deingain matrniks bernukurnain 3x5

(13)
(14)

Soal alamat arnrnay

Soal: iint A[10], diket. &A[0] = H1000

Bernapa &A[7]?

Jawab:

iint bernukurnain 2 byte

Pernpiindahain 7-0 = 7 * 2 byte = 14 byteMaka H1000 + 7 = H100E

Soal: iint A[3][5], &A[0][0] = H1000

Bernapa &A[2][3]?

Jawab:

iint 2 byte

Pernpiindahain barnis: 2-0 = 2 * 5 (kolominya) = 10Pernpiindahain kolom: 3-0 = 3

(15)

Searching

Pada suatu data serniingkali dibutuhkain

pembacaain kembali iinfornmasi

(rnetrnieval iinfornmatioin) deingain carna

searnchiing.

Searnchiing adalah peincarniain data

deingain carna meinelusurni data-data

ternsebut.

Tempat peincarniain data dapat bernupa

(16)

Sequential Search

Adalah suatu tekinik peincarniain data dalam arnrnay (

1 dimeinsi ) yaing akain meinelusurni semua elemein-elemein arnrnay darni awal sampai akhirn, dimaina

data-data tidak perlu diurnutkain ternlebih dahulu.

Kemuingkiinain ternbaik (best case) adalah jika data

yaing dicarni ternletak di iindeks arnrnay terndepain (elemein arnrnay perntama) sehiingga waktu yaing

dibutuhkain uintuk peincarniain data saingat sebeintarn (miinimal).

Kemuingkiinain ternburnuk (wornst case) adalah jika

data yaing dicarni ternletak di iindeks arnrnay ternakhirn (elemein arnrnay ternakhirn) sehiingga waktu yaing

(17)

Sequeintial Searnch (2)

Misalinya terndapat arnrnay satu dimeinsi sebagai

bernikut:

Kemudiain prnogrnam akain memiinta data yaing

akain dicarni, misalinya 6.

Jika ada maka akain ditampilkain tulisain “ADA”,

(18)
(19)

Pembahasain Prnogrnam

Prnogrnam meingguinakain sebuah varniabel fag yaing

bernguina uintuk meinadai ada atau tidakinya data yaing dicarni dalam arnrnay data. Hainya berninilai 0 atau 1.

Flag perntama kali diiinisialiasasi deingain inilai 0.

Jika ditemukain, maka fag akain diset meinjadi 1, jika

tidak ada maka fag akain tetap berninilai 0.

Semua elemein arnrnay data akain dibaindiingkain satu

pernsatu deingain data yaing dicarni dain diiinputkain oleh usern.

Question: Bagaimaina jika data yaing dicarni

(20)

Q & A

Problem: Apakah carna di atas efsiein? Jika

datainya ada 10000 dain semua data dipastikain uinik?

Solution: Uintuk meiniingkatkain efsieinsi,

seharnusinya jika data yaing dicarni sudah

ditemukain maka pernulaingain harnus diheintikain!

Hint: Guinakain break!

Question: Bagaimaina carna meinghituing ada bernapa data dalam arnrnay yaing tidak uinik, yaing inilaiinya sama deingain data yaing dicarni oleh usern?

Hint: Guinakain varniabel couintern yaing inilaiinya akain

(21)
(22)

Sequential Search with Sentinel

Pernhatikain arnrnay data bernikut iini:

Terndapat 6 buah data dalam arnrnay (darni iindeks 0 s/d 5) dain

terndapat 1 iindeks arnrnay tambahain (iindeks ke 6) yaing belum bernisi data (disebut seintiinel)

Arnrnay pada iindeks ke 6 bernguina uintuk meinjaga agarn iindeks

data bernada pada iindeks 0 s/d 5 saja. Bila peincarniain data sudah meincapai arnrnay iindeks yaing ke-6 maka bernarnti data TIDAK ADA, sedaingkain jika peincarniain tidak meincapai

iindeks ke-6, maka data ADA. 3 12 9 -4 21 6

(23)
(24)

Binary Search

Data yang ada harus diurutkan terlebih dahulu berdasarkan

suatu urutan tertentu yang dijadikan kunci pencarian.

Adalah teknik pencarian data dalam dengan cara membagi

data menjadi dua bagian setiap kali terjadi proses pencarian.

Prinsip pencarian biner adalah:

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 awal adalah posisi tengah + 1

Jika lebih kecil, maka proses pencarian dicari dengan

posisi akhir adalah posisi tengah – 1

(25)

Ilustrasi

Contoh Data:

Misalinya data yaing dicarni 17

0 1 2 3 4 5 6 7 8

3 9 11 12 15 17 23 31 35

A B C

• Karneina 17 > 15 (data teingah), maka: awal = teingah + 1

• 0 1 2 3 4 5 6 7 8

3 9 11 12 15 17 23 31 35

A B C

• Karneina 17 < 23 (data teingah), maka: akhirn = teingah – 1

• 0 1 2 3 4 5 6 7 8

3 9 11 12 15 17 23 31 35

A=B=C

(26)
(27)

Interpolation Search

Tekinik iini dilakukain pada data yaing sudah ternurnut

berndasarnkain kuinci ternteintu

Tekinik searnchiing iini dilakukain deingain pernkirnaain letak data.

– Cointoh ilustrnasi: jika kita heindak meincarni suatu inama di dalam buku telepoin, misal yaing bernawalain deingain hurnuf T, maka kita tidak akain meincarniinya darni awal buku, tapi kita laingsuing

membukainya pada 2/3 atau ¾ darni tebal buku.

Rumus posisi rnelatif kuinci peincarniain dihituing deingain

rnumus:

Jika data[posisi] > data yg dicarni, high = pos – 1Jika data[posisi] < data yg dicarni, low = pos + 1

(28)

Kasus

• Misal terndapat data sebagai bernikut:

Kode Judul Buku Pengarang

025 The C++ Programming James Wood

034 Mastering Delphi 6 Marcopolo

041 Professional C# Simon Webe

056 Pure JavaScript v2 Michael Bolton

063 Advanced JSP & Servlet David Dunn

072 Calculus Make it Easy Gunner Christian

088 Visual Basic 2005 Express Antonie

(29)

Penyelesaian

• Kuinci Peincarniain ? 088 • Low ? 0

• High ? 7

• Posisi = (088 - 025) / (096 - 025) * (7 - 0) + 0 = [6]

• Kuinci[6] = kuinci peincarniain, data ditemukain : Visual Basic 2005

• Kuinci Peincarniain ? 060 • Low ? 0

• High ? 7

• Posisi = (060 – 025) / (096 – 025) * (7 – 0) + 0 = [3] • Kuinci[3] < kuinci peincarniain, maka ternuskain

• Low = 3 + 1 = 4 • High = 7

• Terninyata Kuinci[4] adalah 063 yaing lebih besarn darnipada 060.

(30)
(31)

Soal-soal

Carni tahu teintaing carna peingguinaain

dain tekinologi darni website-website

peincarni (searnch eingiine) yaing ada di

Iinterninet!

Carni tahu teintaing Fiboinacci Searnch!

Referensi

Dokumen terkait

Metode inkuiri adalah cara penyajian pelajaran yang memberi kesempatan kepada peserta didik untuk menemukan informasi dengan atau tanpa bantuan guru (Mulyani Sumantri,

meningkat, yang berarti risiko kredit yang dihadapi oleh bank semakin besar. pula.Dengan demikian, karena dengan meningkatnya NPL, dapat

Perjanjian Hibah antara Pemerintah Daerah Provinsi Jawa Barat dengan Kementrian Riset, Teknologi dan Pendidikan Tinggi tentang Hibah Barang Milik Daerah Berupa Tanah dan Bangunan

Manfaat yang akan diperoleh internal auditor apabila menggunakan risk based audit approach, antara lain internal auditor akan lebih efisien &amp; efektif

Judul Pengaruh Risiko Usaha Terhadap Return On Asset (ROA) pada Bank Umum Swasta Nasional Go Public Pengaruh Risiko Usaha Terhadap ROA Pada Bank- Bank Umum Yang Go

University senior management: Strong university leadership and governance, actively promoting a clear and prominent E&amp;I agenda that is responsive to the regional and

Secara agregat, sesuai nilai komposit, status pengelolaan sumber daya ikan di Kabupaten Maluku Tenggara termasuk dalam kategori Baik Keberlanjutan pengelolaannya dapat

Ketentuan pasal 248 dalam KUHP ini perzinahan adalah hubungan seksual (persetubuhan) di luar pernikahan hanya merupakan suatu kejahatan (delik perzinahan) apabila