0% menganggap dokumen ini bermanfaat (0 suara)
418 tayangan16 halaman

Modul 10 - Sorting and Searching Data Array

Modul ini membahas tentang pengurutan dan pencarian data dalam array. Terdapat dua teknik pengurutan yaitu bubble sort dan insertion sort serta dua teknik pencarian yaitu linear search dan binary search. Modul ini juga menjelaskan konsep, metode, dan notasi algoritma dari masing-masing teknik tersebut.

Diunggah oleh

cococte
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
418 tayangan16 halaman

Modul 10 - Sorting and Searching Data Array

Modul ini membahas tentang pengurutan dan pencarian data dalam array. Terdapat dua teknik pengurutan yaitu bubble sort dan insertion sort serta dua teknik pencarian yaitu linear search dan binary search. Modul ini juga menjelaskan konsep, metode, dan notasi algoritma dari masing-masing teknik tersebut.

Diunggah oleh

cococte
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 16

Modul 10 – Pengurutan dan Pencarian Data dalam Array

10. 1. CAPAIAN PEMBELAJARAN


1. Mahasiswa mampu menerapkan Teknik pengurutan (sorting) pada data array.
2. Mahasiswa mampu menerapkan Teknik pencarian (searching) pada data array.
10. 2. ALAT DAN BAHAN
1. Embarcadero DevC++ versi 6.3/Visual Studio Code versi 1.70/ Code::Blocks versi 20.03
2. Alamat untuk mengunduh Embarcadero DevC++ versi 6.3 :
https://www.embarcadero.com/free-tools/dev-cpp
3. Alamat untuk mengunduh Visual Studio Code versi 1.70
https://code.visualstudio.com/Download
4. Alamat untuk mengunduh Code::Blocks versi 20.03 :
https://www.codeblocks.org/downloads/binaries/
10. 3. DASAR TEORI
10. 3. 1. Pengurutan Data Array
1) Bubble Sort
Sorting adalah aktivitas mengurutkan suatu data dengan cara dipilah-pilah. Terdapat
dua tipe pengurutan yaitu ascending dan descending. Pengurutan ascending adalah
pengurutan dari data terbesar sampai terkecil, sedangkan pengurutan descending
adalah sebaliknya yaitu pengurutan dari data terkecil ke data terbesar. Bubble Sort
adalah salah satu metode/algoritma pengurutan dengan proses membandingkan
masing-masing data di dalam elemen array, kemudian melakukan penukaran bila
perlu. Proses bubble sort akan berhenti bila data sudah terurut secara benar.
2) Metode Bubble Sort
Sebagai contoh metode pengurutan dalam bubble sort maka perhatikan data array
berikut.

Gambar 10. 1. Data array acak

Modul 10 : Pengurutan dan Pencarian Data Array 1


Dosen : Imam Adi Nata, S.Kom., M.Kom.
Untuk mengurutkan data array pada Gambar 10. 1 dengan metode bubble sort
seara ascending maka membutuhkan empat fase untuk membandingkan data
secara berurutan dari indeks terkecil sampai dengan indeks terbesar. Pertukaran
terjadi jika nilai yang dibandingkan pada elemen (indeks) sebelumnya lebih besar
dari pada elemen setelahnya (indeks + 1).
Fase 1 menukar data indeks ke 0 dengan data indeks ke 1 karena nilai 4 lebih besar
dari nilai ke 3 seperti pada Gambar 10. 2.

Gambar 10. 2. Proses Pertukaran indeks ke 0 dan 1


Fase 1 berlajut membandingkan nilai pada indeks ke 1 dengan indeks ke 2, lalu
berlanjut ke indeks ke 2 dengan indeks ke 3 dan terakhir membadingkan data indeks
ke 3 dan indeks ke 4. Data pada indeks ke 3 dan indeks ke 4 terdapat pertukaran
data sehingga data akan menjadi seperti pada

Gambar 10. 3. Proses Pertukaran Indeks ke 3 dan 4


Proses akan berlanjut ke fase ke 2 sampai dengan fase dimana data dalam indeks
sudah berurutan secara benar.
3) Notasi Bubble Sort
Notasi bubble sort dalam bahasa c dapat dilihat dalam pseudocode dan flowchart
dibawah ini.
a. Ascending

Modul 10 : Pengurutan dan Pencarian Data Array 2


Dosen : Imam Adi Nata, S.Kom., M.Kom.
Algoritma Bubble Sort
{Mengurutkan data dalam array bertipe data integer dari
nilai terkecil ke terbesar.}
Deklarasi :
data[5] : lnteger = {8,5,2,9,4} {tipe data bilangan bulat}
X,Y : integer {tipe data bilangan bulat}
temp: integer = 0 {tipe data bilangan bulat}
Algoritma :
1. FOR (X = 0 ; X < 5 ; X++)
2. FOR (Y = 0 ; Y < 5-X-1 ; Y++)
3. IF (data[Y] > data[Y+1])
4. temp = data[Y]
5. data[Y] = data[Y+1]
6. data[Y+1] = temp
7. ENDIF
8. ENDFOR
9. ENDFOR

Gambar 10. 4. Flowchart Bubble Sort Ascending

Modul 10 : Pengurutan dan Pencarian Data Array 3


Dosen : Imam Adi Nata, S.Kom., M.Kom.
b. Descending

Algoritma Bubble Sort


{Mengurutkan data dalam array bertipe data integer dari nilai terkecil ke terbesar.}
Deklarasi :
data[5] : lnteger = {8,5,2,9,4} {tipe data bilangan bulat}
X,Y : integer {tipe data bilangan bulat}
temp: integer = 0 {tipe data bilangan bulat}
Algoritma :
1. FOR (X = 0 ; X < 5 ; X++)
2. FOR (Y = 0 ; Y < 5-X-1 ; Y++)
3. IF (data[Y] < data[Y+1])
4. temp = data[Y]
5. data[Y] = data[Y+1]
6. data[Y+1] = temp
7. ENDIF
8. ENDFOR
9. ENDFOR

Gambar 10. 5. Flowchart Bubble Sort Descending


4) Kelebihan dan Kekurangan
a. Kelebihan
Bubble sort mempunyai kelebihan metode ini sangat sederhanan sehingga
mudah dipahami algoritmanya.

Modul 10 : Pengurutan dan Pencarian Data Array 4


Dosen : Imam Adi Nata, S.Kom., M.Kom.
b. Kekurangan
Pada metode bubble sort jumlah perulangan menjadi kunci dalam pengurutan
sehingga jika data yang diurutkan sangat banyak program akan menjadi tidak
efisien.
10. 3. 2. Pencarian Data Array
1) Linear Search
a. Konsep
Searching adalah aktivitas mencari suatu data dalam elemen array. Linear
search adalah salah satu metode/algoritma pencarian dengan memeriksa satu
persatu elemen array hingga data ditemukan atau ketika semua elemen telah
diperiksa. Linear juga disebut sekuensial karena prosesnya dilakukan dengan
memeriksa setiap elemen array dari elemen awal sampai terakhir atau sampai
data ditemukan.
b. Metode
Metode Linear Search array 1 dimensi dengan memulai dari elemen array
dengan indeks paling awal lalu membandingkan kata kunci dengan setiap
elemen array, Jika key sama dengan salah satu elemen array, maka pencarian
berakhir, dan jika key telah dibandingkan dengan seluruh elemen array namun
tidak ada yang sama, maka pencarian berhenti.

Gambar 10. 6. Proses Pencarian Linier Search

Modul 10 : Pengurutan dan Pencarian Data Array 5


Dosen : Imam Adi Nata, S.Kom., M.Kom.
c. Notasi
Notasi Linear Search dalam bahasa c dapat dilihat dalam pseudocode dan
flowchart dibawah ini.

Algoritma Pencarian Linear


{ Mencari data dalam array bertipe data integer. Algoritma menerima
masukan kata kunci, mencari kata kunci dalam array, lalu cetak indeks kata
kunci yang ditemukan}
Deklarasi :
Data[5] : lnteger = {8,5,2,9,4} {tipe data bilangan bulat}
key : integer {tipe data bilangan bulat}
i: integer {tipe data bilangan bulat}
Algoritma :
1. INPUT (key)
2. FOR (i = 0 ; i < 5 ; i++)
3. IF (data[i] == key)
4. OUTPUT (“Nilai” + key + “di indeks” + i)
5. ENDIF
6. ENDFOR

Gambar 10. 7. Flowchart Linier Search

Modul 10 : Pengurutan dan Pencarian Data Array 6


Dosen : Imam Adi Nata, S.Kom., M.Kom.
d. Kelebihan dan Kekurangan
• Kelebihan
Kelebihan dari linier search adalah metode pencarian yang paling
sederhana dan dapat diterapkan pada array yang tidak terurut. Metode
ini dapat efisien jika data yang dicari berada pada indeks pertama.
• Kekurangan
Kekutangan dari metode linier search adalah metode ini menjadi tidak
efisien jika data yang dicari berada pada elmen akhir pada sebuah array
serta kecepatan pencarian ditentukan oleh besarnya data array.
2) Binary Search
a. Konsep
Binary search adalah salah satu metode/algoritma pencarian dengan mencari
suatu data dari pada array/list yang terurut. Binary search Membagi data array
tersebut menjadi dua bagian yang sama lalu membandingkan dengan data yang
akan kita cari dengan berfokus pada data tengah suatu array. Metode pencarian
ini disebut pencarian biner karena membagi data array sama besar, dimana
hanya sisi data array yang mendekati data yang dicari yang akan diperiksa dan
mengabaikan sisi yang lainnya.
b. Metode
Metode binary search yang pertama adalah menentukan batas bawah (low)
nilai tengah (mid) dan batas atas (high) Lalu bandingkan nilai key dengan nilai
mid elemen array, jika nilai key sama dengan nilai pada indeks mid, maka
pencarian selesai. Jika nilai key tidak sama dengan nilai pada indeks mid maka
jika nilai key lebih besar dari indeks mid maka low = mid + 1 dan jika nilai key
lebih kecil dari indeks mid maka high = mid – 1.

Modul 10 : Pengurutan dan Pencarian Data Array 7


Dosen : Imam Adi Nata, S.Kom., M.Kom.
Gambar 10. 8. Metode Binary Search

c. Notasi
Notasi binary search dalam bahasa c dapat dilihat dalam pseudocode dan
flowchart dibawah ini.

Algoritma Binary Search


{ Mencari suatu data dalam array pada array yang sudah terurut. Membandingkan key
dengan nilai tengah array sampai ditemukan datanya, kemudian menampilkan datanya}
Deklarasi :
data[n] : integer {tipe data bilangan bulat, n adalah panjang array}
low : integer = 0 {tipe data bilangan bulat}
high : integer = n-1 {tipe data bilangan bulat}
mid : float = 0 {tipe data bilangan pecahan}
key : integer {tipe data bilangan bulat}
Algoritma :
1. INPUT (data[…], key)
2. WHILE (low <= high)
3. mid ← low + ((high - low)/2)
4. IF (key == data[mid] )
5. OUTPUT (“key ditemukan pada indeks ke-” mid)
6. BREAK
7. ELSEIF (key > data[mid])
8. low ← mid + 1
9. ELSE
10. high ← mid – 1
11. ENDIF
12. ENDWHILE
13. IF (low > high )
14. OUTPUT (“key tidak ditemukan)
15. ENDIF

Modul 10 : Pengurutan dan Pencarian Data Array 8


Dosen : Imam Adi Nata, S.Kom., M.Kom.
Gambar 10. 9. Flowchart Binary Search
d. Kelebihan dan Kekurangan
• Kelebihan
Kelebihan dari binary search adalah metode ini lebih cepat daripada
linear search dan akan lebih efisien jika digunakan dalam data dengan
elemen yang besar. Metode ini juga akan lebih efisien jika data yang
dicari berada pada indeks tengah.
• Kekurangan
Kekurangan dari binary serach adalah metode ini tidak akan efisien jika
data berada di bagian awal atau akhir indeks. Metode ini juga memiliki
kelemahan hanya dapat digunakan pada data yang sudah terurut.

Modul 10 : Pengurutan dan Pencarian Data Array 9


Dosen : Imam Adi Nata, S.Kom., M.Kom.
10. 4. PRAKTIKUM
10.4.1. Persiapan Praktikum
Langkah-langkah yang harus dipersiapkan sebelum mulai praktikum modul 8, yaitu:
1. Siapakan folder bernama "Praktikum Pemrograman" (jika belum ada).
2. Siapkan folder bernama "Modul 10" di dalam folder "Praktikum
Pemrograman".
10.4.2. Bubble Sort
Praktikum ini menerapkan bubble sort dengan jumlah elemen data 5 seperti pada
gambar berikut:

5 3 6 4 9
Setelah dilakukan pengurutan maka data akan menjadi seperti gambar berikut :

3 4 5 6 9
Langkah-langkah untuk membuat kode program diatas adalah sebagai berikut :
1. Buka aplikasi Dev C++ dan buatlah file bahasa C baru dengan memilih menu “file
→New→Source File”.
2. Simpan dengan nama “Modul10_Bubble_sort.c” di dalam folder “Modul 10”.
3. Buatlah kode program seperti di bawah ini:

Modul 10 : Pengurutan dan Pencarian Data Array 10


Dosen : Imam Adi Nata, S.Kom., M.Kom.
Penjelasa Kode program :
• Baris ke 4 sampai dengan 6 deklarasi variable.
• Baris ke 8 sampai dengan 12 menampilkan data yang belum urut.
• Baris ke 14 sampai dengan 25 proses mengurutkan data.
• Baris ke 27 sampai dengan 31 menampilkan data yang sudah urut.
4. Hasil dari eksekusi kode program sebagai berikut :

Modul 10 : Pengurutan dan Pencarian Data Array 11


Dosen : Imam Adi Nata, S.Kom., M.Kom.
10.4.3. Linier Search
Praktikum ini menerapkan pencarian linier pada data array dengan elemen data 5
seperti pada gambar berikut :

5 3 6 4 9
Dengan kunci pencarian adalah 4.
Langkah-langkah untuk membuat kode program diatas adalah sebagai berikut :
1. Buka aplikasi Dev C++ dan buatlah file bahasa C baru dengan memilih menu “file
→New→Source File”.
2. Simpan dengan nama “Modul10_linier_search.c” di dalam folder “Modul 10”.
3. Buatlah kode program seperti di bawah ini:

Penjelasa Kode program :


• Baris ke 4 sampai dengan ke 6 deklarasi variable.
• Baris ke 8 sampai dengan 14 proses pencarian data.
4. Hasil dari eksekusi kode program sebagai berikut :

Modul 10 : Pengurutan dan Pencarian Data Array 12


Dosen : Imam Adi Nata, S.Kom., M.Kom.
10.4.4. Binary Search
Praktikum ini menerapkan pencarian binary pada data array dengan elemen data 5
seperti pada gambar berikut :

5 3 6 4 9
Dengan kunci pencarian adalah 4.
Langkah-langkah untuk membuat kode program diatas adalah sebagai berikut :
1. Buka aplikasi Dev C++ dan buatlah file bahasa C baru dengan memilih menu “file
→New→Source File”.
2. Simpan dengan nama “Modul10_binary_search.c” di dalam folder “Modul 10”.
3. Buatlah kode program seperti di bawah ini:

Modul 10 : Pengurutan dan Pencarian Data Array 13


Dosen : Imam Adi Nata, S.Kom., M.Kom.
4. Hasil dari eksekusi kode program sebagai berikut :

Modul 10 : Pengurutan dan Pencarian Data Array 14


Dosen : Imam Adi Nata, S.Kom., M.Kom.
10. 5. TUGAS MODUL 8
10.5.1. Soal
Buatlah aplikasi untuk memasukkan data array lalu urutkan data tersebut lalu carilah
data sesuai dengan input dari user dengan metode binary search.
• Jumlah elemen array ditentukan oleh user
• Nilai elemen data array ditentukan oleh user
• Program secara otomatis mengurutkan data
• Nilai yang akan dicari juga diinputkan oleh user
• Program mencari data dengan metode binary search
• Setelah selesai program akan menampilkan data yang sudah diurutkan dan
letak indeks dari data yang dicari berdasarkan kunci, lalu beri konfirmasi
apakah mau mengulang menghitung. Jika user memasukan ‘y’ maka program
akan mengulangi dari awal.
Hasil dari eksekusi program adalah sebagai berikut :

Petunjuk Pengerjaan
a) Kode Program
• Buatlah kode program sesuai soal

Modul 10 : Pengurutan dan Pencarian Data Array 15


Dosen : Imam Adi Nata, S.Kom., M.Kom.
• Simpan file soal nomor satu dengan nama
"TugasModul10_Pengurutan_dan_Pencarian_NPM.c". Untuk NPM diisi
sesuai milik anda.
b) Laporan
• Buatlah laporan akhir berdasarkan kode program yang anda buat.
• Laporan dibuat sesuai format dan ditulis tangan.
• Cantumkan tanda tangan anda di setiap halaman dokumen laporan.
• Jika di dalam laporan ada gambar atau screenshot yang ingin ditampilkan,
bisa ditempel pakai lem atau di print.
• Laporan discan atau difoto dan disimpan dalam bentuk pdf
• Penamaan file pdf : " TugasModul10_ Pengurutan_dan_Pencarian
_NPM.pdf".
c) Pengumpulan
• File yang dikumpulkan yaitu:
◦ Kode bahasa C :
▪ TugasModul10_ Pengurutan_dan_Pencarian _NPM.c
◦ Laporan : TugasModul10_Pengurutan_dan_Pencarian _NPM.pdf.
◦ File di atas disatukan di dalam folder dan dikompres dalam
bentuk .rar/zip
◦ File diunggah ke Elita dengan nama "
TugasModul10_Pengurutan_dan_Pencarian _NPM.rar
◦ Batas Pengumpulan: Sebelum UAS.

Modul 10 : Pengurutan dan Pencarian Data Array 16


Dosen : Imam Adi Nata, S.Kom., M.Kom.

Anda mungkin juga menyukai