Notasi Algoritma : Sorting (Ascending dan Descending)

Sorting


Sorting adalah suatu proses pengurutan data atau
menyusun himpunan tertentu dari suatu data dengan menggunakan aturan tertentu.

Hasil gambar untuk gambar sorting

Gambar: https://brilliant.org/wiki/sorting-algorithms/

Terdapat 2 macam urutan yang biasa digunakan dalam proses sorting yaitu

 

1)Asscending
yaitu pengurutan data dari yang terkecil ke terbesar atau jika menurut abjad dari A ke Z

2)Descending
yaitu pengurutan data dari yang terbesar ke terkecil atau jika menurut abjad dari Z ke A

 

Lalu Bagaimana cara membuat notasi Ascending maupun Descending ?

Berikut adalah Contoh Notasi Algoritmanya

 

1) Descending

///Judul

Maximum Sort Descending

///Kamus

A = Array [0…4] of integer
N <- integer
K <- integer
maks <- integer
J <- integer
temp <- integer

///Deskripsi

input N
K=0
while(k=(N-2))
{

maks=K
J=k+1
while(J<=(N-1))

{

if(A[J]>A[maks])

{

maks = J

}
J=J+1

}
K=K+1

}

temp = A[K]
A[K] = A[maks]
A[maks] = temp

2) Ascending

///Judul

Minimum Selection Sort Ascending

///Kamus

A = Array [0…4] of integer
N <- integer
K <- integer
min <- integer
J <- integer
temp <- integer

///Deskripsi

input N
K=0
while(k<=(N-2))
{

min=K
J=k+1
while(J<=(N-1))

{

if(A [J] < A[min])

{

min = J

}
J=J+1

}
K=K+1

}

temp = A[K]
A[K] = A[min]
A[min] = temp

Notasi Algoritma : Looping / Perulangan

Hasil gambar untuk gambar loopingGambar:  http://codingsinubie.com/2015/11/looping-fungsi-for-dalam-php/

Pengertian Looping
Looping adalah pengulangan sesuatu atau serangkaian “kerja” dari program.

Berikut adalah beberapa contoh Notasi Algoritma Looping :

1) 2,4,6,8,10

///Judul

Looping kelipatan 2 (bertambah)

///Kamus

x <- integer

///Deskripsi

x=0
repeat
output x
x <- x+2
until (x<=10)

2) 10,8,6,4,2

///Judul

Looping kelipatan 2 (berkurang)

///Kamus

x <- integer

///Deskripsi

x=10
repeat
output x
x <- x-2
until (x>=2)

3) 2,10,4,8,6,6,8,4,10,2

///Judul

Looping lompatan //setiap baris ganjil=ditambah(2,4,6,8,10), dan setiap baris genap=dikurang(10,8,6,4,2)

///Kamus

a<-integer
b<-integer

///Deskripsi

a=2
b=10
hasil <- integer
repeat
output a
output b
hasil <- a+2
hasil <- b-2
until (a<=10 & b>=2)

Notasi Algoritma : Menghitung selisih dan luas 2 segitiga serta menentukan jenis segitiganya

Pada kesempatan kali ini , kita akan mempelajari Notasi Algoritma untuk menghitung selisih dari 2 luas Segitiga dan menentukan Jenis Segitiga tersebut, serta menentukan ukuran (besar / kecil) segitiga tersebut.

Berikut adalah Notasi Algoritmanya :

///Judul

Menghitung selisih dan luas 2 segitiga serta menentukan jenis segitiga

///Kamus

A1=integer {alas segitiga pertama}
A2=integer {alas segitiga kedua}
T1=integer {tinggi segitiga pertama}
T2=integer {tinggi segitiga kedua}
L1=integer {Luas segitiga pertama}
L2=integer {Luas segitiga kedua}
S1=integer {Sisi segitiga satu}
S2=integer {Sisi segitiga dua}
Selisih=integer {Luas segitiga kedua-Luas segitiga pertama}

///Diskripsi

A1 <- Input
T1 <- Input
L1 <- ½ *A1*T1
Output L1

A2 <-Input
T2 <- Input
L2 <- ½ * A2*T2
Output L2

sisi1 <- input
sisi2 <- input
sisi3 <- input

Selisih <- L2-L1
Output Selisih

///ukuran segitiga

If (Luas >0 and Luas <50) then
{
Output “Kecil”
}

Else if (Luas >= 50) then
{
Output “Besar”
}

///jenis segitiga

If (sisi1=sisi2=sisi3) then
{
Output “segitiga sama sisi”
}

Else if (sisi1=sisi2!=sisi3) then
{
Output “segitiga sama kaki”
}

Else if (sudut tegak lurus) then
{
Output “segitiga siku siku”
}

Else (sisi1 != sisi 2 != sisi3) then
{
Output “segitiga sembarang”
}

Notasi Algoritma : Tipe Bentukan Array of SIM

Sebelumnya, kita sudah mengenal dan mempelajari Notasi Algoritma : Type Bentukan SIM . Selanjutnya , kita akan membuat Notasi Algoritma SIM dengan Menggunakan Array

Berikut adalah Notasi Algoritmanya :

 

///Judul

Membuat Type Bentukan SIM

///Kamus

Type name

<

awal <- string
tengah <- string
akhir <- string

>

Type date

<

tanggal <- integer
bulan <- integer
tahun <- integer

>

Type TTL //Tempat Tanggal Lahir

<

tempat <- string
tanggals <- date

>

Type address

<

jalan <-string
kota <- string
rt <- integer
rw <- integer
kel <- string
kec <- string

>

Type SIM

<

namalengkap <-name
alamat <- adres
dateofbirth <- TTL
jenissim <- string
tinggi <- integer
pekerjaan <- string
nosim <- integer
tanggalberlaku <- date

>

dataSIM = array [1….50] of sim

x : integer
y : integer

//deskripsi

x<-0

while (x < 50) do
{

input dataSIM[x}.namalengkap.awal
input dataSIM[x].namalengkap.tengah
input dataSIM[x].namalengkap.akhir

input dataSIM[x].alamat.jalan
input dataSIM[x].alamat.kota
input dataSIM[x].alamat.rt
input dataSIM[x].alamat.rw
input dataSIM[x].alamat.kel
input dataSIM[x].alamat.kec

input dataSIM[x].dateofbirth.tempat
input dataSIM[x].dateofbirth.tanggals.tanggal
input dataSIM[x].dateofbirth.tanggals.bulan
input dataSIM[x].dateofbirth.tanggals.tahun

input dataSIM[x].tinggi

input dataSIM[x].pekerjaan

input dataSIM[x].nosim

input dataSIM[x].tanggalberlaku.tanggal
input dataSIM[x].tanggalberlaku.bulan
input dataSIM[x].tanggalberlaku.tahun

x<-x+1

}

output
x<-0
while(x<50)do
{

outputdataSIM[x]
x<-x+1

}

Notasi Algoritma : Type Bentukan SIM

Tipe Data Bentukan merupakan tipe data yang dibuat sendiri sesuai kebutuhan dalam program yang akan kita buat. Tipe Bentukan juga merupakan sekumpulan element bertype dasar ataupun tipe yang sudah teridentifikasi

Contoh Umum

type struct :   < 

elemen1 : type1

elemen2 : type2

>

Untuk lebih jelasnya lagi , anda dapat melihat contoh Notasi Algoritma : Tipe Bentukan SIM berikut :

Hasil gambar untuk contoh sim

///Judul

Membuat Type Bentukan SIM

///Kamus

Type name

<

awal <- string
tengah <- string
akhir <- string

>

Type date

<

tanggal <- integer
bulan <- integer
tahun <- integer

>

Type TTL //Tempat Tanggal Lahir

<

tempat <- string
tanggals <- date

>

Type address

<

jalan <-string
kota <- string
rt <- integer
rw <- integer
kel <- string
kec <- string

>

Type SIM

<

namalengkap <-name
alamat <- adres
dateofbirth <- TTL
jenissim <- string
tinggi <- integer
pekerjaan <- string
nosim <- integer
tanggalberlaku <- date

>

Notasi Algoritma : Menghitung luas kamar, Keramik yang dibutuhkan dan Sisa keramik

Seseorang ingin membuat program untuk mengukur banyaknya keramik yang dibutuhkan dalam suatu kamar. Untuk mempermudah ia membuat program, ia membuat notasi algoritma terlebih dahulu yang juga mencangkup luas kamar serta sisa keramik(jika ada sisa). Berikut adalah Notasi Algoritma untuk menghitung luas kamar, keramik yang dibutuhkan dan sisa keramik

 

///Judul

menghitung luas kamar, keramik yang dibutuhkan dan sisa keramik

///Kamus

PanjangKmr <– integer
LebarKmr <– integer
KrmdlmDus <– integer
JumlahDus <– integer

Luaskmr
SisiKrm <– real
LuasKrm <– real
SisaKrm <– real
ButuhKrm <– real

///Deskripsi

PanjangKmr <– Input
LebarKmr <– Input
SisiKmr <– Input
KrmdlmDus <– 12

output “Step 1″
output “Menghitung luas kamar”
LuasKmr = PanjangKmr * LebarKmr
output “Luas kamar”

output”Step2″
output “Menghitung keramik yang dibutuhkan dengan membagi luas kamar dengan luas keramik”
Luas Krm <– SisiKrm * SisiKrm
output “Luas keramiknya yaitu” LuasKrm
ButuhKrm <– LuasKmr / LuasKrm
output “Keramik yang dibutuhkan”

output”Step3″
output “Menghitung berapa dus yang akan dibeli dengan membagi keramik yang dibutuhkan dengan jumlah keramik dalam datu dus”
JumlahDus <– ButuhKrm / KrmdlmDus
output “Jumlah Kardus yang dibutuhkan”

output”Menghitung Sisa Keramik”
SisaKrm <– JumlahDus * KrmdlmDus – ButuhKrm

if (SisaKrm = 0) then
{
output “Maka semua keramik dalam dus digunakan semua / tidak tersisa”
}
else
{
output “Sisa keramik”
}

 

Notasi Algoritma : Menghitung Durasi Waktu

Untuk memudahkan membuat program mengenai perhitungan durasi waktu, kita dapat membuat/menuliskan notasi algoritmanya terlebih dahulu. Dibawah ini adalah Notasi Algoritma : Menghitung Durasi Waktu

 

///Judul

Menghitung Durasi Waktu

///Kamus

h_awal,m_awal,s_awal -> integer
h_akhir,m_akhir,s_akhir -> integer
hasil_durasi (a->integer, b->integer, c->integer, x->integer, y->integer,       z->integer) -> integer

///Deskripsi

main()
{

input()
hasil_durasi (h_awal,m_awal,s_awal,h_akhir,m_akhir,s_akhir)

}

input()
{

input h_awal
input m_awal
input s_awal

input h_akhir
input m_akhir
input s_akhir

}

hasil_durasi (a->integer,b->integer,c->integer,x->integer,y->integer,            z->integer) -> integer
{

///Kamus Lokal
Durasi -> integer

Durasi = (h_akhir*3600 + m_akhir*60 + s_akhir)-
(h_awal*3600 + m_awal*60 + s_awal)

return durasi

}

Notasi Algoritma : Menghitung Volume Tabung

Untuk memudahkan membuat program perhitungan volume tabung , kita dapat membuat/menuliskan notasi algoritmanya terlebih dahulu. Dibawah ini adalah Notasi Algoritma : Menghitung Volume Tabung

 

///Judul

Menghitung Volume Tabung

///Kamus

phi -> real
jari -> integer
tinggi -> integer
proses(d->integer, e->integer, f->real)->real

///Deskripsi

main()
{

mengisi()
proses(jari,tinggi,phi)

}

mengisi()
{

input jari
input tinggi
input phi

}

proses (d -> integer, e -> integer,  f -> real) -> real
{

///Kamus Lokal
Volume -> real

Volume = f*d*d*e
return volume

}

Notasi Algoritma : Menghitung Luas Tabung

Untuk memudahkan membuat program perhitungan luas tabung,kita dapat membuat/menuliskan notasi algoritmanya terlebih dahulu. Dibawah ini adalah Notasi Algoritma : Menghitung Luas Tabung

 

///Judul

Menghitung Luas Tabung

///Kamus

phi -> real
jari -> integer
tinggi -> integer
hasil (a -> integer,b -> integer)

///Deskripsi

main()
{

input()
proses(jari,tinggi,phi)

}

input()
{

input jari
input tinggi

}

proses (a -> integer,b -> integer,c -> real) -> real
{

///Kamus Lokal
Luas -> real

Luas = (2*c*a*a)+(2*c*a*b)

return Luas

}