MUHAMMAD ALBIRRA ARSYI RIZQI - Laporan 10-Dikonversi [PDF]

  • Author / Uploaded
  • alby
  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

LAPORAN PRAKTIKUM “SORTING II” MODUL X – ALGORITMA PEMROGRAMAN



Nama



: Muhammad Albirra Arsyi Rizqi



NIM



20103054



Kelas



: SI-04-B



PROGRAM STUDI S1 SISTEM INFORMASI FAKULTAS INFORMATIKA INSTITUT TEKNOLOGI TELKOM PURWOKERTO PURWOKERTO 2020



DASAR TEORI A. Konsep Dasar Searching Pencarian (searching) merupakan proses yang fundamental dalam pengolahan data. Proses pencarian adalah menemukan nilai (data) tertentu di dalam sekumpulan data yang bertipe sama (baik bertipe dasar atau bertipe bentukan). Sebagai contoh, untuk mengubah (update) data tertentu, langkah pertama yang harus dilakukan adalah mencari keberadaan data tersebut didalam kumpulannya. Jika data yang dicari ditemukan, maka data tersebut dapat diubah nilainya dengan data yang baru. Aktivitas awal yang sama juga dilakukan pada proses penambahan (insert) data baru. Proses penambahan data dimulai dengan mencari apakah data yang akan ditambahkan sudah terdapat di dalam kumpulan. Jika sudah ada dan mengasumsi tidak boleh ada duplikasi data maka data tersebut tidak perlu ditambahkan, tetapi jika belum ada, maka tambahkan.



B. Selection Sort\ Suatu teknik pencarian data dalam array 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). 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).



pos_min=j; } if (pos_min != i) { temp = arr[i]; arr[i] = arr[pos_min]; arr[pos_min] = temp; }



C. Insertion Sort Algoritme pengurutan dengan cara menyisipkan data/elemen larik pada posisi yang tepat. Pencarian posisi yang sesuai dilakukan dengan menyisir larik. Selama penyisiran larik dilakukan pergeseran elemen larik. Algoritme pengurutan ini cocok untuk persoalan menyisipkan elemen baru kedalam sekumpulan elemen yang sudah terurut. Pengurutan dimulai dari data ke-2 sampai dengan data terakhir, jika ditemukan data yang lebih kecil, maka akan ditempatkan (diinsert) diposisi yang seharusnya. Pada penyisipan elemen, maka elemen-elemen lain akan bergeser ke belakang. Pengurutan dengan cara penyisipan : 



Anggap elemen ke–1 sampai dengan elemen ke j telah terurut.







Elemen ke i adalah elemen yang akan disisipkan antara elemen yang telah terurut (1 sampai j) pada posisi yang tepat, misalnya pada p.



Pencarian posisi yang tepat untuk i adalah sebagai berikut : 



Simpan l[i] pada suatu variabel temporer, temp.







Geser elemen j ke bekas tempat i kemudian geser elemen j – 1 ke i – 1, dan seterusnya sampai mencapai posisi yang tepat untuk i, yaitu p



Pseudocode dari Insertion Sort : for i = 1 to n-1 set j = i set t = a[j] repeat while j > 0 and a[j-1] > t



move a[j-1] to right end repeat set a[j] = t end for Kode Program : int arr[ ]; int i, j ,ruangTukar, panjangArray; for (i = 1; i < panjangArray; i++) { j = i; while (j > 0 && arr[j - 1] > arr[j]) { ruangTukar = arr[j]; arr[j] = arr[j - 1]; arr[j - 1] = ruangTukar; j--; } }



TUGAS GUIDED 1. LATIHAN 1 Buatlah fungsi/prosedur untuk mengurutkan secara Ascending dan Descending data bertipe desimal dengan menggunakan algoritma Selection sort. #include using namespace std; const int panjangArray = 4; char arr[panjangArray] = {'i', 'c', 'z', 'a'}; char temp; int pos_min,n; void sSortASC(char data[], int n) { for (int i=0; i < n-1; i++) { pos_min = i; for (int j=i+1; j < n; j++) {



if (arr[j] < arr[pos_min]) pos_min=j; } if (pos_min != i) { temp = arr[i]; arr[i] = arr[pos_min]; arr[pos_min] = temp; } } } void sSortDESC(char data[], int n) { for (int i=0; i < n-1; i++) { pos_min = i; for (int j=i+1; j < n; j++) { if



(arr[j]



arr[pos_min]) pos_min=j; } if (pos_min != i) { temp = arr[i]; arr[i] = arr[pos_min]; arr[pos_min] = temp; } } }



>



for(int i = 0; i < panjangArray; i++) { cout