Algoritma Shell Sort Ascending Dan Binary Sequential Search Menggunakan C

dokumen-dokumen yang mirip
// Created by Andri Andriyan // Linked List. #include <stdlib.h> #include <conio2.h> #include <stdio.h>

DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF

Searching [pencarian] Algoritma Pemrograman

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

Selamat Mengerjakan. 2. Keluaran dari baris 10 adalah? a. 1 b. 4 c. 2.5 d. 2 e Keluaran dari baris 11 adalah? a. 1 b. 4 c. 2.5 d. 2 e.

PENCARIAN BERUNTUN (SEQUENTIAL SEARCHING)

ALGORITMA DAN PEMROGRAMAN 2. 3 SKS By : Sri Rezeki Candra Nursari

BAB VI SEARCHING (PENCARIAN)

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-7 Pencarian (Searching) 2

Algoritma dan Pemrograman Searching/Pencarian

Adam Mukharil Bachtiar English Class Informatics Engineering Algorithms and Programming Searching

*** SELAMAT MENGERJAKAN

1. Inggriani Liem Catatan Kuliah Algoritma & Pemrograman, Jurusan Teknik Informatika ITB

SORTING. Brigida Arie Minartiningtyas, M.Kom

Praktikum 7. Pengurutan (Sorting) Insertion Sort, Selection Sort POKOK BAHASAN: TUJUAN BELAJAR: DASAR TEORI:

AnalisisFramework. Mengukur ukuran atau jumlah input Mengukur waktu eksekusi Tingkat pertumbuhan Efiesiensi worst-case, best-case dan average-case

Kompleksitas Algoritma

SEQUENTIAL SEARCH 11/11/2010. Sequential Search (Tanpa Variabel Logika) untuk kondisi data tidak terurut

Kompleksitas Algoritma (1)

Tipe Data dan Operator

Pencarian. 1. Memahami konsep pencarian 2. Mengenal beberapa algoritma pencarian 3. Menerapkan algoritma pencarian dalam program

SOAL C++ Created by Yuli Astuti,S.Kom Copyright 2009

Sebuah algoritma tidak saja harus benar, tetapi juga harus mangkus (efisien). Algoritma yang bagus adalah algoritma yang mangkus.

ANALISIS ALGORITMA. Disusun Oleh: Analisis Masalah dan Running Time. Adam Mukharil Bachtiar Teknik Informatika UNIKOM

1. Kompetensi Mengenal dan memahami notasi-notasi algoritma yang ada.

Algoritma dan Pemrograman 2 PENGURUTAN

Pengurutan (Sorting)

Sequential Search (Linear Search)

ALGORITMA PENGURUTAN & PENCARIAN

STRUKTUR DATA. Nama : Sulfikar Npm : STMIK Handayani Makassar

Kompleksitas Algoritma

Yaitu proses pengaturan sekumpulan objek menurut urutan atau susunan tertentu Acuan pengurutan dibedakan menjadi :

LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA Searching ( Pencarian ) Modul III

ALGORITMA & PEMROGRAMAN

Praktikum 8. Pengurutan (Sorting) Bubble Sort, Shell Sort

Pernyataan FOR Pernyataan WHILE Pernyataan REPEAT. Dewi Sartika,M.Kom

Analisis Algoritm. Fundamentals of the Anlysis of Algorithm Efficiency

Struct Lanjutan: Studi Kasus

Modul Praktikum Algoritma dan Struktur Data

MODUL IV PENCARIAN DAN PENGURUTAN

Pengantar dalam Bahasa Pemrograman Turbo Pascal Tonny Hidayat, S.Kom

Seharusnya. if (antrian.tail==max-1) return 0;

Pencarian (Searching)

ARRAY STATIS. Type namatype_array = array [1..maks_array] of tipedata. nama_var_array : namatype_array {indeks array dari 1 sampai maksimum array}

PENGGUNAAN ALGORITMA GREEDY DALAM PERMAINAN KARTU BLACK JACK

Algoritma dan Pemrograman

Algoritma Brute Force

A. TUJUAN PEMBELAJARAN

c. Hasil pencarian berupa nilai Boolean yang menyatakan status hasil pencarian. Versi 1 (Pembandingan elemen dilakukan sebagai kondisi pengulangan)

Algoritme dan Pemrograman

# FOUR LOOPING. JAWABAN 1. #include <stdio.h> #include <conio.h> #define pi void main(){

Pencarian pada Array. Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer UDINUS Semarang

LOGIKA ALGORITMA. Pertemuan 6. By: Augury

Penerapan Algoritma Pencocokan String Knuth-Morris-Pratt Sebagai Algoritma Pencocokan DNA

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-9 Pengurutan (Sorting) 2

UJIAN TENGAH SEMESTER GANJIL TAHUN STMIK AMIKOM YOGYAKARTA

Algoritma & Pemrograman 1. Muhamad Nursalman Pendilkom/Ilkom Universitas Pendidikan Indonesia

Struktur Data Linier. Input. Program untuk menyelesaikan masalah. Algoritma Penyelesaian. Proses. Masalah. Struktur Data. Output

Linked List. Bandung 2013

SORTING. Hartanto Tantriawan, S.Kom., M.Kom

Pertemuan XII ALGORITMA. Algoritma & Pemrograman Ken Kinanti P 1. {Pencarian Beruntun / Sequential Search}

Pengurutan (Sorting) Algoritma Pemrograman

STRATEGI DIVIDE AND CONQUER

Algoritma dan Pemrograman 2 PENCARIAN

Algoritma Brute Force (Bagian 1) Oleh: Rinaldi Munir

# TEN Sorting PENDAHULUAN

STRUKTUR DASAR ALGORITMA DAN PEMROGRAMAN STMIK AMIKOM YOGYAKARTA

AlgoritmaBrute Force. Desain dan Analisis Algoritma (CS3024)

Algoritma Pemrograman. Fery Updi,M.Kom

SATUAN ACARA PERKULIAHAN (SAP) Mata Kuliah : Struktur Data Kode : TIS3213 Semester : III Waktu : 2 x 3 x 50 Menit Pertemuan : 14 & 15

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-8 Pengurutan (Sorting) 1

CCH1A4 / Dasar Algoritma & Pemrogramanan

BAB 2 SORTING (PENGURUTAN)

Mesin Karakter dan Mesin Kata

Teknik Pengurutan Kartu Remi

Bubble Sort (Pengurutan Gelembung / Pemberatan)

LAPORAN AKHIR PRAKTIKUM STRUKTUR DATA

PENGUNAAN DUA VERSI ALGORITMA BACKTRACK DALAM MENCARI SOLUSI PERMAINAN SUDOKU

Yudha Dwi P. N. S.Kom. Pertemuan 3 Aturan Penulisan Teks Algoritma

Powered by icomit.wordpress.com

Algoritma. Menurut Kamus Besar Bahasa Indonesia Algoritma adalah urutan logis pengambilan putusan untuk pemecahan masalah.

STRUKTUR DATA MENGGUNAKAN C++ Windha Mega PD, S.Kom

Pendahuluan. Sebuah algoritma tidak saja harus benar, tetapi juga harus efisien. Algoritma yang bagus adalah algoritma yang efektif dan efisien.

BAB VI BAHASA C Pendahuluan

Algoritma Searching Tenia wahyuningrum, S.Kom. MT dan Sisilia Thya Safitri, MT

BAB IV MATERI UNIT KOMPETENSI MEMBUAT ALGORITMA PEMROGRAMAN DASAR

PERBANDINGAN KOMPLEKSITAS ALGORITMA PENCARIAN BINER DAN ALGORITMA PENCARIAN BERUNTUN

SENARAI BERANTAI (LINK LIST)

3. Struktur Perulangan dalam C++

Algoritma HitungGajiKaryawan Deklarasi NIK,Nama,Jabatan : String Gaji, Tunj, Pajak, Gaber : Real

BAB 10 POINTER 5.1 Tujuan 5.2 Pengertian Pointer Perubah dinamis pointer

BAB I. LARIK (ARRAY) Array (larik) ialah penampung sejumlah data sejenis (homogen) yang menggunakan satu identifier (pengenal).

LATIHAN UTS Tim Pengajar KU1071 Sem

IT234 - Algoritma dan Struktur Data. Ramos Somya

Konsep Sorting dalam Pemrograman Saniman dan Muhammad Fathoni

MODUL IV Analisis Kasus/Pemilihan

Algoritma dan Pemrograman Sorting (Pengurutan) IS1313. Oleh: Eddy Prasetyo N

Algoritma dan Struktur Data

PENGURUTAN (SORTING) 1. Overview

Algoritma dan Struktur Data

Transkripsi:

TUGAS STRUKTUR DATA Shell Sort Ascending Dan Binary Sequential Search Menggunakan C IF-5 Nama Anggota : - Rohendi 10107193 - Andri Andriyan 10107210 - Yuli Yanti A 10107218 - Jajang Kusmita 10107227 JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNIK DAN ILMU KOMPUTER UNIVERSITAS KOMPUTER INDONESIA 2009

procedure create_abjad (output abjad : larik, input maks_abjad : integer ) I.S = user memasukkan nilai bertipe integer F.S = menampilkan abjad i : integer for i 1 to maks_abjad do abjad procedure isi_abjad ( I/O abjad : larik, output n : integer ) I.S = user mamaskukn jumlah karakter dan memasukan karakter F.S = menampilkan nilai abjad i : integer Input (n) for i 1 to n do input ( abjad (n)) procedure abjad_terkecil ( I/O abjad: larik, input n: integer, output min: integer) I.S = harga untuk variabel abjad sudah terdefinisi F.S = mencari abjad terkecil i : integer min abjad (1) for i 1 to n do if ( abjad (i) min ) then min abjad (i) endif procedure abjad_terbesar ( I/O abjad: larik, input n : integer, output max integer) I.S = harga untuk variabel abjad sudah terdefinisi F.S = mencari abjad terbesar i : integer

min abjad (1) for i 1 to n do if ( abjad (i) max ) then max abjad (i) endif procedure binary_search(input abjad : larik, n : integer, input x : char) I.S = elemen abjad sudah terdefinisi F.S = menghasilkan pencarian bagi dua k, ia, ib : integer ketemu : bolean ia 0 ib n-1 ketemu false while ( not ketemu ) and (ia ib) do k (ia + ib ) div 2 if ( x = abjad(k)) then ketemu true else if (x > abjad(k)) then ia k + 1 else ib k - 1 endif endif endwhile if ( ketemu = 1 ) then output( Data yang dicari :, x ) output ( ada pada indeks ke. k+1 ) else output ( data tidak ditemukan ) endif procedure shortshell(input abjad : larik, n : integer) I.S = elemen abjad sudah terdefinisi

F.S = menghasilkan pengurutan shell sort j,i,k,m,n,mid : integer j 0 for m n div 2 to 0 do m mod 2 for j m to n do j j+1 for i j-m to 0 do i i - m if (abjad(i+m) >= abjad(i)) then mid abjad(i) abjad(i) abjad(i+m) endif abjad(i+m) mid procedure tampil_abjad (input abjad : larik, n : integer, input max, min : char) I.S = harga untuk variable max dan min sudah terdefinisi F.S = menampilkan abjad terendah dan abjad tertinggi i, : integer output ( Array Before Sorting ) output ( ) for i 1 to n do output ( abjad (i)) shellsort(abjad,n); output ( Array After Before Sorting ) output ( ) for i 1 to n do output ( abjad (i)) output ( ) output (min, max) output ( )

procedure destroy_abjad(i/o abjad : larik, n : integer) I.S = elemen-elemen sudah terdefinisi F.S = menghasilkan penhancuran elemen i, : integer for i 1 to n do create_abjad(abjad,maks_abjad) exit 0 Utama Array_abjad I.S = user memasukan sejumlah abjad bertipe karakter F.S = memampilkan abjad dimasukan oleh user dan menampilkan abjad terendah dan abjad tertinggi Const Maks_abjad : 50 Type Larik : array [1..maks_abjad] of char abjad : larik n, i, tekan, : integer max, min, x : char procedure create-abjad (output abjad : larik, input maks_abjad : integer ) procedure isi_abjad ( I/O abjad : larik, output n : integer ) procedure abjad_terendah ( I/O abjad:larik, input n: integer, output min:integer) procedure abjad_tertinggi ( I/O abjad: larik, input n:integer, output max integer) procedure binary_search(input abjad : larik, n : integer, input x : char) procedure shortshell(input abjad : larik, n : integer) procedure tampil_abjad (input abjad : larik, n : integer, input max, min : char) procedure destroy_abjad(i/o abjad : larik, n : integer) repeat output(" Menu Pilihan") output (" ") output (" 1. Isi Data ") output (" 2. Cari Data ")

output (" 3. Tampil Data ") output (" 0. Keluar ") output (" ") output (" Masukkan pilihan anda : ") input (menu) case(tekan) '1' : isi_abjad(abjad, n) '2' : binarysearch(abjad,n,x) '3' : abjad_terkecil(abjad, max, n) abjad_terbesar(abjad, min, n) tampil(abjad, max, min, n) '0' : destroy_abjad(abjad, n) until (tekan 0) Source Code #include <stdio.h> #include <stdlib.h> #include <conio2.h> const int maks_abjad=50; typedef char larik [maks_abjad]; void create_abjad(larik abjad, int maks_abjad); void isi_abjad(larik abjad, int *n); void abjad_terkecil(larik abjad, char *min, int n); void abjad_terbesar(larik abjad, char *max, int n); void binarysearch(larik abjad, int n, char x); void shellsort(larik abjad,int n); void tampil(larik abjad, char min, char max, int n); void destroy_abjad(larik abjad,int n); void create_abjad(larik abjad, int maks_abjad) int i; for (i=0; i<maks_abjad; i++) abjad[i]=' '; void isi_abjad(larik abjad, int *n) int i; printf("\n Masukkan banyak abjad : ");scanf("%i", n); for (i=0; i<*n; i++)

printf ("\n Abjad ke-%i : ",i+1);abjad[i]=getche(); void abjad_terkecil(larik abjad, char *min, int n) int i; *min=abjad[0]; for (i=1; i<n; i++) if ( abjad[i] <= *min) *min=abjad[i]; void abjad_terbesar(larik abjad, char *max, int n) int i; *max=abjad[0]; for (i=1; i<n; i++) if ( abjad[i] >= *max) *max=abjad[i]; void binarysearch(larik abjad, int n, char x) int ia,ib,k; int ketemu; ia = 0; ib = n-1; ketemu = 0; printf("\n Data cari : "); x = getche(); while (!ketemu && ia <= ib) k=(ia+ib)/2; if (x == abjad[k]) ketemu=1; else if (x > abjad[k])

ia = k + 1; else ib = k - 1; if (ketemu==1) printf(" \n\n Data Ditemukan \n "); printf(" ada pada indeks ke %i \n", k+1); else printf(" \n\n data tidak ditemukan"); void shellsort(larik abjad,int n) int j,i,k,m,mid; for(m = n/2;m>0;m/=2) for(j = m;j< n;j++) for(i=j-m;i>=0;i-=m) if(abjad[i+m]>=abjad[i]) break; else mid = abjad[i]; abjad[i] = abjad[i+m]; abjad[i+m] = mid; void tampil(larik abjad, char min, char max, int n) int i; printf("\n Array Befor Sorting \n"); printf(" \n\n");

for (i=0; i<n; i++) printf(" Abjad ke %i : %c \n", i+1, abjad[i]); shellsort(abjad,n); printf("\n Array After Sorting \n"); printf(" \n\n"); for(i=0;i<n ;i++) printf(" Abjad ke %i : %c \n", i+1, abjad[i]); printf(" \n\n"); printf(" Abjad Terkecil : %c \n", min); printf(" Abjad Terbesar : %c \n", max); printf(" \n\n"); void destroy_abjad(larik abjad,int n) create_abjad(abjad,maks_abjad); void menu(void) main() gotoxy(2,2);printf(" Menu Pilihan"); gotoxy(2,3);printf(" "); gotoxy(2,5);printf(" 1. Isi Data "); gotoxy(2,6);printf(" 2. Cari Data "); gotoxy(2,7);printf(" 3. Tampil Data "); gotoxy(2,8);printf(" 0. Keluar \n"); gotoxy(2,9);printf(" "); gotoxy(2,11);printf(" Masukkan pilihan anda : "); larik abjad; char max,min,x; int i, n,tekan; do menu(); tekan=getch();

switch(tekan) case '1' : isi_abjad(abjad, &n); getch(); break; case '2' : binarysearch(abjad,n,x); getch(); break; case '3' : abjad_terkecil(abjad, &max, n); abjad_terbesar(abjad, &min, n); tampil(abjad, max, min, n); getch(); break; case '4' : destroy_abjad(abjad, n); while(tekan!='0'); Tampilan Tampilan Depan

Tampilan Isi Data Tampilan Data Cari Tampilan Data, Mencari Abjad Tertiggi, Terendah Dan Pengurutan

KONTRIBUSI MASING - MASING ANGGOTA - Rohendi (10107193) : Mengedit dan membuat tampilan program. - Andri Andriyan (10107210) : Membuat program, ide program, dan membuat tampilan program. - Yuli Yanti A (10107218) : Mengedit algoritma, mengumpulkan referensi, mencetak. - Jajang Kusmita (10107227) : Membuat algoritma mengumpulkan referensi. ngeprint, penyedia komputer.

This document was created with Win2PDF available at http://www.daneprairie.com. The unregistered version of Win2PDF is for evaluation or non-commercial use only.