Anda di halaman 1dari 7

Nama NIM Kelompok

: RR. Siti Sarah Wulan A.Y.U : 1104505044 : 10

PRAKTIKUM ALGORITMA DAN PEMROGRAMAN MODUL I DASAR PENGGUNAAN BAHASA PEMROGRAMAN

3.1 1. 2. 3. 4. 5. 6.

Tujuan Memahami dasar-dasar pemrograman C++. Memahami penggunaan tipe data array dalam pembuatan program. Mengenal dan bisa menggunakan fungsi pembangkit bilangan acak yang ada dalam Bahasa C++. Mengenal dan bisa memakai fungsi untuk mendapatkan waktu dalam Bahasa C++. Memahami tujuan dan mekanisme pengurutan data dan pencarian data. Mampu menganalis kerja masing-masing metode pengurutan dan pencarian, sehingga bisa memilih metode pengurutan dan/atau pencarian data yang terbaik untuk suatu contoh kasus tertentu. Tugas Pendahuluan Jelaskan tentang array dan deklarasi array dalam C++ serta tipe data yang mungkin digunakan dalam array. Berikan contoh deklarasi array dalam C++ lalu hitung keperluan memory-nya. Buatlah contoh cara membangkitkan bilangan random dalam C++. Jelaskan apa yang dimaksud dengan sorting dan searching. Jelaskan mekanisme metode pengurutan dan pencarian berikut serta berikan contoh pengurutan data yang dilakukan dengan metode tersebut. a. Insertion Sort b. Bubble Sort c. Quick Sort d. Sequential Search e. Binary Search Buatlah flowchart dan pseudocode (notasi algoritama) dari masing-masing metode di atas, lalu kerjakan trace terhadap flowchart yang anda buat. Jawaban Array : serangkaian elemen dari jenis yang sama ditempatkan di lokasi memori yang berdekatan yang dapat secara individual direferensikan dengan menambahkan indeks

3.2 1. 2. 3. 4.

5. 3.3 1.

Deklarasi array

untuk sebuah identifikasi unik. : Variable array dideklarasikan dengan mencantumkan tipe dan nama variable yang diikuti dengan banyaknya lokasi memori yang ingin dibuat.

Tipe data array y Tipe sederhana : integer, real, char, boolean, string. y Tipe bentukan : tipe terstruktur seperti record. Contoh sebuah array N yang memiliki 5 buah element nilai yang bertipe integer, maka array N tersebut dapat digambarkan pada tabel sebagai berikut : Elemen array Indeks array Nilai elemen array N[1] 0 10 N[2] 1 20 N[3] 2 30 N[4] 3 40

Contoh deklarasi array Untuk mendeklarasikan sebuah array dalam C++, kita harus menggunakan tanda [ ] (bracket). Adapun bentuk umum dari pendeklarasiannya adalah sebagai berikut: Tipe_data_nama_array [jumlah_elemen]; Sebagai contoh jika kita ingin mendeklarasikan sebuah array (misalnya dengan nama LARIK) yang memiliki 5 elemen dengan tipe data int, maka pendeklarasiannya adalah seperti yang tampak di bawah ini. #include <iostream> using namespace std; int main () { int LARIK [5]; for (int A=0; A<5; A++) { cout <<"LARIK["<<A<<"] = "; cin>>LARIK[A]; } return 0; } Ruang memori yang dibutuhkan untuk pendeklarasian array tersebut adalah 20 yte, yang berasal dari 5x4 byte (4 merupakan ukuran dari tipe data int).

2.

Terdapat dua fungsi yang dibutuhkan untuk membangkitkan bilangan acak srand() dan rand(). Dengan fungsi sederhana ini, kita bisa membuat bilangan random semu (pseudo random value). Fungsi yang kita masukkan akan mengolah nilai yang luar biasa besar menjadi angka lain yang lebih bersahabat. Meski output bilangan random kita akan berbeda tiap detiknya, bilangan random yang kita bangkitkan masih berupa bilangan random semu.

3.

Sorting merupakan proses pengurutan data yang sebelumnya disusun secara acak sehingga menjadi tersusun secara teratur menurut suatu aturan tertentu. Sort dalam hal ini diartikan mengurutkan data yang berada dalam suatu tempat penyimpanan, dengan urutan tertentu baik urut menaik (ascending) dari nilai terkecil sampai dengan nilai terbesar, atau urut menurun (descending) dari nilai terbesar sampai dengan nilai terkecil. Contoh : Data Acak :7 3 5 0 9 Terurut Ascending : 0 3 5 7 9 Terurut Descending : 9 7 5 3 0 Pencarian (searching) merupakan tindakan untuk mendapatkan suatu data dalam kumpulan data. Untuk keperluan mencari data, terdapat beragam algoritma pencarian (search algorithm). Yang dimaksud dengan algoritma pencarian adalah algoritma yang menerima sebuah argumen a dan mencoba untuk menemukan sebuah rekaman yang memiliki kunci a. Umumnya metode pencarian langsung akan lebih efisien digunakan untuk mencari data dalam sekelompok data dalam jumlah kecil. Dalam kondisi data yang hendak dicari berada dalam sekumpulan data yang tidak di urut, maka penerapan metode pencarian langsung akan lebih mudah. Namun dalam kasus cacah data akan lebih baik jika data diurutkan terlebih dahulu dan kemudian menggunakan metode pencarian biner.

4.

Metode pengurutan dan pencarian data a. Insertion Sort Insertion sort adalah sebuah algoritma pengurutan yang membandingkan dua elemen data pertama, mengurutkannya, kemudian mengecek elemen data berikutnya satu persatu dan membandingkannya dengan elemen data yang telah diurutkan. Ide dasar dari Insertion Sort ini adalah mencari tempat yang tepat untuk setiap elemen array, dengan cara sequential search. Proses ini kemudian menyisipkan sebuah elemen array yang diproses ketempatnya yang seharusnya. Proses dilakukan sebanyak N-1 tahapan (dalam sorting disebut sebagai pass), dengan indeks dimulai dari 0. Proses pengurutan dengan menggunakan Insertion Sort dilakukan dengan cara membandingkan data ke-i (dimana i dimulai dari data ke-2 samapai dengan data terakhir) dengan data berikutnya. Jika ditemukan data yang lebih kecil

maka data tersebut disisipkan ke depan sesuai dengan posisi yang seharusnya. Contoh : 9 0 5 1 3 2 7 3

Pertukaran 1 : elemen y = N[0] = 9 dianggap sudah terurut 9 0 5 1 3 2 7 3 yang

Pertukaran 2 : berdasarkan susunan N pada pertukaran 1, cari posisi tepat untuk y = N[1] = 5 di dalam N[0-1] 5 0 9 1 3 2 7 3

Pertukaran 3 : berdasarkan susunan N pada pertukaran 2, cari posisi yang tepat untuk y = N[2] = 3 di dalam N[0-2] 3 0 5 1 9 2 7 3

Pertukaran 4 : berdasarkan susunan N pada pertukaran 3, cari posisi yang tepat untuk y = N [3] = 7 didalam N[0-3]. 3 0 5 1 7 2 9 3

b. Bubble sort Bubble sort adalah proses pengurutan sederhana yang bekerja dengan cara membandingkan sebuah bilangan dengan seluruh bilangan yang terletak sesudah bilangan tersebut. Penukaran dilakukan kalau suatu kriteria dipenuhi. Nama bubble sort sendiri berasal dari sifat gelembung, dimana nilai yang paling rendah berada diposisi paling atas, melalui proses pertukaran. Sebagai contoh, terdapat kumpulan sebagai berikut. Awal 25 57 48 37 Pengurutan tahap pertama 25 25 57 57 48 37 tidak terjadi penukaran

48

57 37 57

terjadi penukaran terjadi penukaran

Pengurutan tahap kedua 25 25 48 48 37 48 48 Hasil: 25 37 48 57 57 37 57 tidak terjadi penukaran terjadi penukaran tidak terjadi penukaran

c. Quick Sort Quick sort adalah metode pengurutan yang menjadikan sebuah tabel data yang akan diurutkan menjadi dua buah sub bagian yang ditelusuri dari kiri dan dari kanan. Misalkan ada sebuah array yang berisi angka-angka sebagai berikut: 34 67 23 28 98 15 89 67 28 18

Jika data diatas akan diurutkan dengan urutan naik (ascending) mengguanakan metode quick sort maka prosesnya adalah sebagai berikut:

34

67

23

28

98

15

89

67

28

18

Langkah 1

18 15

23

28

98

67

89

67

28

34

Langkah 2

Langkah 3 15 18 23 28 98 67 89 67 28 34

98

67

89

67

28

34

Langkah 4

34

28

89

67

67

98

Langkah 5

28 Hasil: 15 18 23 28 28

34

67

67

89

98

Langkah 6

34

67

67

89

98

d. Sequential search Pencarian beruntun atau sequential search dapat dilakukan pada data yang belum terurut maupun yang sudah terurut. Pencarian beruntun dilakukan dengan melakukan penelusuran data satu persatu kemudian dicocokkan dengan data yang dicari, jika tidak sama maka penelusuran dilanjutkan, jika sama penelusuran dihentikan, berarti data telah ditemukan. Contoh : 5 9 12 3 10

Data yang dicari adalah 9 Bandingkan setiap elemen dengan data yang dicari, 8 ditemukan berada pada N[2], maka pencarian selesai dan data dapat ditemukan. e. Binary search Binary search hanya dapat dilakukan pada data yang sudah terurut, data tersebut dibagi menjadi dua sub yang mempunyai jumlah elemen yang sama. Prinsipnya adalah data yang diberikan dibagi menjadi 2 sama rata, lalu dilakukan pencarian data masing-masing bagian. Contoh : 5 0 8 1 12 2 15 3 35 4 44 5 50 6 75 7 88 8

Data yang dicari adalah 50 Posisi akhir adalah 8, posisi tengah adalah 4, ditemukan 50 pada N[6], pencarianpun berakhir dan data ditemukan. Contoh format tugas pendahuluan