algoritma sorting dan searching

Program data_mahasiswa

Kamus

                type mahasiswa : <

                           nim             : string

                           nama          : string

                           alamat       : string

                           ip                 : string

                          >

                mhs : mahasiswa

                data : array [1 .. 3] of mahasiswa

                constant jml_mhs : integer = 3

 

Procedure input_data

Kamus lokal

                i : integer

Algoritma

                i traversal [1 .. jml_mhs]

                                input (dat .nim)                            

                                input (dat .nama)

                                input (dat .alamat)                      

                                input (dat .ip)

                menu

 

Procedure selection_sort

Kamus lokal

                temp : mahasiswa

                i, j, min : integer

Algoritma

                i traversal [1 .. jml_mhs-1]

                                min ←i

                                j traversal [i+1 .. jml_mhs]

                                                if (dat .nim < dat .nim) then

                                                                dat .nim ← dat

                                temp ← dat

                                dat  dat

                                dat  ← temp

 

Procedure insertion_sort

Kamus lokal

                i, j : integer

                temp : mahasiswa          

Algoritma

                i traversal [2 .. jml_mhs]

                                temp ← dat

                                j ← i

                                while (j > 1) and (temp.nim < dat .nim) do

temp ← dat

                                                dat  dat

                                                j ← j-1

dat ← temp                              

 

 

Procedure bubble_sort

Kamus lokal

                i, j : integer

                temp : mahasiswa

Algoritma

i traversal [jml_mhs .. 2]

                j traversal [2 .. i]

                                if dat .nim < dat .nim then

                                                temp ← dat

                                                dat  dat

                                                dat  ← temp

 

Procedure sequential_search

Kamus lokal

idx : integer

i : integer

Algoritma

idx traversal [1 .. jml_mhs]

if dat .ip > dat .ip then

idx ← i

                output (‘NIM: ’)

                input (dat .nim)

                output (‘Nama: ‘)

                input (dat .nama)

                output (‘Alamat: ‘)

                input (dat .alamat)

                output (‘IP: ‘)

                input (dat .ip)

menu

 

Procedure binsearch

Kamus lokal

x : integer

 ix : integer

atas,bawah,tengah,idx : integer

Algoritma

Atas ← 1

Bawah ← jml_mhs

                Tengah ← (Atas+Bawah) div 2

                while ((Atas < Bawah) and (data[Tengah].nim ≠ x)) do

                                if data[Tengah].nim < x then

 Atas←Tengah+1

else

 Bawah←Tengah-1

Tengah←(Atas+Bawah) div 2

                if (data[Tengah].nim =x) then

                                ix ← Tengah

                else

                                ix ← 0

                output (dat .nim)

                input (dat .nama)

                input (dat .alamat)

                input (dat .ip)

menu

 

Procedure tampil

Kamus lokal

i : integer

Algoritma

i traversal [1 .. jml_mhs]

                output  (dat .nim)

                output  (dat .nama)

                output  (dat .alamat)

                output  (dat .ip)

 

Procedure menu

Kamus lokal

pil : integer

Algoritma

                output (‘MENU DATA MAHASISWA’)

output (‘[1] MASUKKAN DATA’)

output (‘[2] PROGRAM PENGURUTAN DATA’)

output (‘[3] PROGRAM PENCARIAN MAHASISWA IPK TERTINGGI’)

output (‘[4] PENCARIAN MAHASISWA’)

output (‘[5] EXIT’)

output (‘Pilihan anda = ‘)

input (pil);

                depend on pil

                                1 : inputdata

                                2 : bubblesort

                                     insertionsort

                                     selectionsort

                                     menu

                                3 : seqsearch

                                     menu

                4 : binsearch

       menu

                                5 : exit

menu

 

Notes : Counting sort tidak dapat dilakukan karena NIM yang digunakan sangat besar, dan NIM itu juga merupakan inputan user.

Procedure counting_sort

Kamus lokal

                TabCount : array [ValMin .. ValMax]

                i : integer

                k: integer

Algoritma

i traversal [ValMin .. ValMax]

                TabCoun  ← 0

i traversal [i .. N]

                TabCountTabInt[i] ← TabCountTabInt[i] + 1

K ← 0

i traversal [ValMin .. ValMax]

                if TabCounti  ≠ 0 then

                                repeat TabCounti times

                                                K ← K+1

                                                TK ← 1

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s