Anda di halaman 1dari 7

Nama : Sholeh Zhafry Zamzami

Prodi : S1 Pendidikan Teknik Informatika

Mata Kuliah : Algoritma dan Struktur Data

Buatlah pertanyaan tentang topik-topik berikut:

Urgensi mempelajari algoritma dan struktur data


Berbagai macam algoritma sorting
Berbagai macam algoritma searching
Array

Soal-Soal Sorting dan Jawabannya

1. Jelaskan secara ringkas pengertian mengenai Sorting

Sorting merupakan suatu proses untuk menyusun kembali humpunan obyek menggunakan
aturan tertentu. Sorting disebut juga sebagai suatu algoritma untuk meletakkan kumpulan elemen
data kedalam urutan tertentu berdasarkan satu atau beberapa kunci pada tiap-tiap elemen.

2. Jelaskan langkah kerja dari Merge sort.


Langkah-langkah kerja mengenai Merge Sort di uraikan dalam poin-poin berikut:

1. Divide, yaitu Memilah elemen elemen dari rangkaian data menjadi dua bagian.

2. Conquer, merupakan pembacaan setiap bagian dengan memanggil prosedur merge sort secara
rekursif
3. Kombinasi, yaitu kombinasikan dua bagian tersebut secara rekursif untuk mendapatkan
rangkaian data berurutan

Proses rekursif berhenti jika mencapai elemen dasar. Hal ini terjadi apabila bagian yang akan
diurutkan menyisakan tepat satu elemen. Sisa pengurutan satu elemen tersebut menandakan
bahwa bagian tersebut telah terurut sesuai rangkaian.

3. Jelaskan secara singkat mngenai Algoritma Buble Sorting

Bubble Sorting dilaksanakan dengan cara melakukan penukaran data dengan tepat disebelahnya
secara terus menerus sampai bisa dipastikan dalam satu iterasi tertentu tidak ada lagi perubahan.
Jika tidak ada perubahan berarti data sudah terurut.

4. Sebutan Algoritma urutan yang dipakai pada sorting:

Pada dasarnya ada dua macam urutan yang biasa digunakan dalam suatu proses sorting:

1. Urut naik (ascending)

Mengurutkan dari data yang mempunyai nilai paling kecil sampai paling besar

2. Urut turun (descending)

Mengurutkan dari data yang mempunyai nilai paling besar sampai paling kecil.

5. Jelaskan mengenai quick Sort

Dasar strateginya adalah memecah dan menguasai. Quicksort dimulai dengan menscan daftar
yang disortir untuk nilai median. Nilai ini, yang disebut tumpuan (pivot), kemudian dipindahkan
ke satu sisi pada daftar dan butir-butir yang nilainya lebih besar dari tumpuan di pindahkan ke
sisi lain.
6. Jelaskan Kelebihan dan Kekurangan masing-masing dari Algoritma Insertion Sort dan
Shell Sort
Insertion Sort :

Kelebihan

a) Sederhana dalam penerapannya.


b) Efektif dalam cakupan data yang kecil.
c) Jika list sudah terurut atau sebagian terurut maka Insertion Sort akan lebih cepat
dibandingkan dengan Quicksort.
d) Efektif dalam data yang sebagian sudah terurut.
e) Lebih efektif dibandingkan dengan Bubble Sort dan Selection Sort.
f) Loop dalam pada Inserion Sort sangat cepat, sehingga membuatnya salah satu algoritma
pengurutan tercepat pada jumlah elemen yang sedikit.
g) Stabil.

Kekurangan

a) Banyaknya operasi yang diperlukan dalam mencari posisi yang tepat untuk elemen larik.
b) Untuk larik yang jumlahnya besar ini tidak praktis.
c) Jika list terurut terbalik sehingga setiap eksekusi dari perintah harus memindai dan
mengganti seluruh bagian sebelum menyisipkan elemen berikutnya.
d) Membutuhkan waktu O(n2) pada data yang tidak terurut, sehingga tidak cocok dalam
pengurutan elemen dalam jumlah besar.

Shell sort :

Kelebihan :

a) Algoritma ini sangat rapat dan mudah untuk diimplementasikan.


b) Operasi pertukarannya hanya dilakukan sekali saja.
c) Waktu pengurutan dapat lebih ditekan.
d) Mudah menggabungkannya kembali.
e) Kompleksitas selection sort relatif lebih kecil.

Kekurangan :
a) Membutuhkan method tambahan.
b) Sulit untuk membagi masalah.

7. Sebutkan Jenis-jenis Searching Algoritm

A. Sequential search

Disebut juga sebagai metode pencarian urut adalah metode pencarian yang paling sederhana.
Adalah suatu teknik pencarian data dalam array (1 dimensi ) yang akan menelusuri semua
elemen-elemen array dari awal sampai akhir, dimana data-data tidak perlu diurutkan terlebih
dahulu. Kemungkinan terbaik (best case) adalah jika data yang dicari terletak di indeks array
terdepan (elemen array pertama) sehingga waktu yang dibutuhkan untuk pencarian data sangat
sebentar (minimal). Sedangkan kemungkinan terburuk (worst case) adalah jika data yang dicari
terletak di indeks array terakhir (elemen array terakhir) sehingga waktu yang dibutuhkan untuk
pencarian data sangat lama (maksimal).

B. Pencarian Beruntun dengan Sentinel

Jika pencarian bertujuan untuk menambahkan elemen baru setelah elemen terakhir larik,
maka terdapat sebuah varian dari metode pencarian beruntun yang efektif. Nilai x yang akan
dicari sengaja ditambahkan terlebih dahulu. Data yang ditambahkan setelah elemen terakhir larik
ini disebut sentinel.

C. Binary Search.

Proses pencarian binary search hanya dapat dilakukan pada kumpulan data yang sudah
diurutkan terlebih dahulu. Jika terdapat N buah data yang akan diolah, data yang dicari akan
dibandingkan dengan data ke-N jika data ke-N lebih besar dari data yang dicari maka akan
dilakukan pembagian data menjadi dua bagian. Kemudian ujung data pada setiap bagian
dibandingkan lagi dengan nilai yang akan dicari.

D. Interpolation Search
Proses pencarian data ini hampir sama dengan proses pencarian binary search, pencarian ini
juga dilakukan pada kumpulan data yang sudah urut. Akan tetapi jika pada binary search kita
membagi data menjadi 2 bagian tiap prosesnya,

8. Simpulkan kelebihan dan kekurangan dari masing-masing Search Algoritm

Sequential search lebih efektif jika digunakan pada sekumpulan data yang sedikit, sedangkan
binary search efektif jika digunakan pada sekumpulan data yang berjumlah banyak.
Sequential search dapat digunakan pada sekumpulan data yang urut ataupun tidak urut,
sedangkan binary search harus pada data yang sudah urut. Sedangkan proses pencarian
interpolation search hampir mirip dengan proses pencarian kata dikamus, yaitu kita mencari data
yang dimaksud dengan cara memperkirakan letak data.

9. Pengertian Array & Contoh Program Array

Array adalah sekumpulan variabel yang memiliki tipe data yang sama dan dinyatakan dengan
nama yang sama. Array merupakan konsep yang penting dalam pemrograman, karna array
memungkinkan untuk menyimpan data maupun referensi objek dalam jumlah banyak dan
terindeks. Array menggunakan indeks integer untuk menentukan urutan elemen-elemennya,
dimana elemen pertamanya dimulai dari indeks 0 elemen kedua memiliki indeks 1, dan
seterusnya.

Contoh :

Angka untuk menyimpan sederetan bilangan


Buku untuk menyimpan sekumpulan data buku
Mahasiswa untuk menyimpan beberapa data mahasiswa

10. Sebutkan dan jelaskan macam-macam array!

Array Satu Dimensi


Array satu dimensi adalah suatu array yang terdiri dari 1 subskrip array, yaitu jumlah data
maksimum.

Bentuk umum :

Tipe_data nama_array[jumlah_maks_data];

Contoh :

int Nilai[5]; nilai [1] nilai [2] nilai [3] nilai [4] nilai [5]

70 80 82 60 75

Catatan :

String juga sebenarnya merupakan array yang bertipe karakter. Jumlah elemen array menyatakan
jumlah string.

Array Dua Dimensi

Array dua dimensi adalah suatu array yang terdiri dari 2 subskrip, yaitu jumlah elemen baris dan
jumlah elemen kolom.

Bentuknya dapat berupa matriks atau tabel.

Deklarasi array :

Tipe_array nama_array[baris][kolom];

Cara mengakses array :

Untuk mengakses array, misalnya kita ingin mengisi elemen array baris 2 kolom 3 dengan 10
maka perintahnya adalah sbb :

X[1][2] = 10;
Untuk mengisi dan menampilkan isi elemen array ada dua cara yaitu :

Row Major Order (secara baris per baris)

Column Major Order (secara kolom per kolom)

Array Multidimensi

Array multidimensi adalah suatu array yang mempunyai subskrip lebih dari dua. Bentuk
pendeklarasian array sama saja dengan array dimensi satu maupun array dimensi dua.

Bentuk umumnya yaitu :

tipe_array nama_array[ukuran1][ukuran2][ukuranN];

Contoh :

float X[2][4][3];

X[0][0][0] X[0][0][1] X[0][0][2] X[1][0][0] X[1][0][1] X[1][0][2]

X[0][1][0] X[0][1][1] X[0][1][2] X[1][1][0] X[1][1][1] X[1][1][2]

X[0][2][0] X[0][2][1] X[0][2][2] X[1][2][0] X[1][2][1] X[1][2][2]

X[0][3][0] X[0][3][1] X[0][3][2] X[1][3][0] X[1][3][1] X[1][3][2]

Anda mungkin juga menyukai