Procedure
Procedure terdiri dari 2 :
- Memakai parameter
- Tidak memakai parameter
Parameter : pendeklarasian dari variabel yang akan dipakai untuk inputan didalam procedure.
Manfaat pembuatan procedure :
Suatu program yang besar dan kompleks dapat dibagi kedalam beberapa prosedure sehingga setiap prosedure merupakan bagian yang mudah dikerjakan.
2.Simplifikasi
Dalam suatu program, sering diperlukan suatu tugas yang harus dikerjakan berulang-ulang dengan nilai-nilai variabel yang berbeda-beda. Agar tidak merepotkan maka tugas ini cukup ditulis sekali saja dalam bentuk prosedur yang kemudian dipanggil berulang-ulang sesuai kebutuhan.
Bentuk Umum Prosedur (Subprogram)
Prosedur nama_prosedur
{spesifikasi dari prosedur, keadaan awal sebelum prosedur dilaksanakan dan juga keadaaan akhir setelah prosedur dilaksanakan}
Deklarasi
{Deklarasi variabel-variabel prosedur}
Deskripsi
{Deskripsi dari tugas-tugas prosedur}
Sub-program dijalankan saat :
- Ketika bagian program berulang.
- Ketika adanya baris program dalam skala besar/kompleks.
PEMANGGILAN PROSEDUR
Prosedur tidak bisa dieksekusi langsung. Instruksi pada prosedur bisa dilaksanakan jika prosedur diakses. Prosedur diakses dengan memanggil namanya dari program pemanggil (program utama atau modul program lain).
NAMA_PROSEDUR
Ketika nama prosedur dipanggil, kendali program berpindah ke prosedur tersebut. Setelah semua instruksi prosedur selesai dilaksanakan, kendali program berpindah kembali ke program pemanggil. Dalam progra pemanggil, harus mendeklarasikanprototype prosedur (header) dalam bagian deklarasi supaya dikenali oleh program pemanggil dan mengetahui cara mengaksesnya.
Contoh : program menu
Function
Function pada hakekatnya serupa dengan prosedur dalam pelaksanaannya, tetapi harus mengembalikan suatu nilai ke program yang menggunakan fungsi. Prosedur hanya bisa mengembalikan nilai melalui parameter input-output (in-out).
Bentuk umum :
Fungsi nama_fungsi (parameter formal) à tipe_hasil
{spesifikasi fungsi}
Deklarasi
{variabel lokal}
Deskripsi
{langkah/proses yang dilakukan oleh fungsi}
……….
……….
{pengembalian nilai}
return hasil
Contoh : program menu
Array merupakan salah satu tipe data yang berguna sebagai sebuah tempat penyimpanan elemen data / nilai yang bertipe sama. Penggunaannya sama seperti variabel tetapi array bisa mengolah beberapa nilai bertipe sama.
Struktur data array dipakai untuk merepresentasikan sekumpulan informasi yang bertipe sama dan disimpan dengan urutan yang sesuai dengan definisi indeks secara kontinue dalam memori komputer. Oleh karena itu, indeks harus suatu tipe data yang mempunyai keterurutan seperti tipe interger atau karakter.
Deklarasi Array
Supaya sebuah array dapat diisi, arraynya harus dibuat dulu atau dipesan tempatnya (berapa banyak data yang akan dimasukkan ke dalam array) dengan cara dideklarasikan di bagian kamus. Jumlah elemen array tidak dapat diubah selama pelaksanaan program.
Bentuk umum deklarasi array :
nama_array : array [range_index] of tipe_elemen
contoh :
TabNilai : array [1..100] of real
Frekuensi : array [‘a’..’z’] of integer
NamaKota : array [1..20] of string
Tipe_elemen menunjukkan tipe data dari elemen tabel, semua isi elemen tabel bertipe sama. Range index bisa berupa integer atau character dan harus menaik. Setelah sebuah array dideklarasikan, akan disediakan tempat di memori sebanyak jumlah elemen yang dipesan. Memori adalah tempat untuk menyimpan data yang bersifat sementara sedangkan harddisk untuk menyimpan data yang bersifat permanen. Memori juga memiliki alamat yang dapat diakses jika dibutuhkan.
Operasi Terhadap Array
Operasi atau manipulasi terhadap array hanya dapat dilakukan terhadap satu elemennya yang ditunjukkan oleh indeks.
Untuk mengisi atau mengambil data/nilai dari array :
Nama_Array[alamat_index] ç nilai
write(Nama_Array[alamat_index])
nama_variabel ç Nama_Array[alamat_index]
PEMROSESAN ARRAY
Pemrosesan terhadap Array berarti memproses elemen mulai dari elemen pertama (elemen dengan indeks terkecil, berturut-turut pada elemen berikutnya, sampai elemen terakhir dicapai). Pemrosesan terhadap elemen array menggunakan bentuk pengulangan sebagai berikut :
for i ç index_awal to index_akhir do
Proses(Nama_Array[i])
endfor
- Pengisian elemen array dengan nilai yang dibaca dari piranti masukan
Algoritma Tabel1
Kamus
MyTab : array[1..50] of integer
n,I : integer
Agoritma
read(n)
for i ç 1 to n do
read(MyTab[i])
endfor
Algoritma Tabel
Kamus
MyTab : array[1..50] of integer
n,i : integer
Agoritma
read(n)
for i ç 1 to n do
read(MyTab[i])
endfor
for i ç 1 to n do
write (MyTab[i])
endfor
Array 2 dimensi
Contoh :
No | Nama | Nilai |
1 | Rahmat | 85 |
2 | Afif | 80 |
3 | Yossi | 85 |
Pengulangan / looping adalah pelaksanaan suatu instruksi berulang kali. Di dalam algoritma, pengulangan dapat dilakukan sejumlah kali, atau sampai kondisi berhenti pengulangan tercapai.Pengulangan berfungsi untk menghemat memory.pengulangan ada yang menurun (decreement) dan meningkat (increment).
FOR
Perulangan dengan pernyataa For digunakan untuk mengulang pernyataan atau satu blok pernyataan berulang kali sejumlah yang ditentukan.Atau bisa dikatakan jumlah banyaknya perulangan sudah kita ketahui.
contoh :
Algoritma Bil.Ganjil Kurang Dari 10
kamus
i : interger
Deskripsi
For i <- i to 10 do
if i mod 2 = 1 then
write i
else
continue
end if
end for
untuk nilai meningkat gunakan TO
untuk nilai menurun gunakan DOWN TO
Beda dengan For,While digunakan Jika banyaknya perulangan belum atau tidak diketahui.While hampir sama dengan statement if yang melakukan pemeriksaan ekspresi boolean sebelum sebuah atau serangkaian statement dilakukan dengan kata lain memeriksa dulu baru mengeksekusi.
Algoritma Bil.Ganjil Kurang Dari 10
kamus
i : interger
Deskripsi
while i <= 10 do
if i mod 2 = 1 then
write i
else
continue
end if
i<- i+1
end while
Pernyataan perulangan ini hampir sama dengan pernyataan pengulangan while, dan biasanya digunakan bila banyaknya pengulangan belum atau tidak diketahui.Perbedaan pernyataan repeat… until dan while terletak pada pengecekkan kondisi.
Jika pada pernyataan while kondisi di cek pada awal,sedangkan pada repeat…until, kondisi di cek pada akhir dengan kata lain memeriksa dulu baru mengeksekusi.
Algoritma Bil.Ganjil Kurang Dari 10
kamus
i : interger
Deskripsi
i<-1
repeat if i MOD 2 = 1 then
write i
continue
end if
i<-i+1
Definisi Percabangan
Percabangan adalah cara yang digunakan dalam program untuk mengambil keputusan ke satu kemungkinan True atau False dari beberapa kondisi.
Percabangan dalam Agoritma ada 3 : IF,IF ELSE, IF ELSE IF.
Percabangan If : Satu Kondisi, Bentuk Pernyataan Bernilai True.
If (Kondisi)
Statement ;
ex: If Makan > 2 piring THEN
keterangan
Percabangan If Else : 2 Kondisi,Bentuk Pernyataan Bernilai True and False.
If (Kondisi) Statement ; Else
Statement2 ;
ex: If minum > 2 gelas THEN
keterangan
Else
keterangan
Percabangan If Else If : Lebih dari 2 kondisi.
If (Kondisi) Statement ; Else If(Kondisi) Statement 2; Else
Statement3 ;
ex : If Tugas = 2
keterangan 2
keterangan
Else if Tugas < 2
keterangan
Defend On(Kondisi) Kondisi = 1 ; statement Kondisi = 2 ; statement
Otherwise statement
Contoh Penerapan Percabangan :
ALGORITMA PMB
Kamus : Nilai_UN_b.Inggris : Real Nilai_UN_matematika : Real JK: String T.badan:Interger Keterangan:String Deskripsi Read Nilai_UN_B.Inggris, Nilai_UN_matematika, JK,TB If JK : Laki-laki If T.Badan ≥ 160 AND Nilai_Un_b.Inggris ≥ 6,5 AND _Un_matematika ≥ 6,5 Ket “Lulus” Else Ket “Tidak Lulus” End If Else If T.Badan ≥ 155 AND Nilai_UN_B.Inggris ≥ 6,5 AND _UN_Matematika ≥ 6,5 Ket “Lulus” Else Ket “Tidak Lulus” End If
End If
Algoritma Gaji Bersih Gapok 1700000 Uang Makan 25000/Hari T.istri 500000 T.Anak 750000 Pajak 10% Algoritma Gaji_Bersih Kamus Gaji_Total,uangmakan,T.Anak,T.istri,Pajak,Gajibersih :String Nama,Status:String Kehadiran : Interger Jumlah_Anak:Interger Const_Gapok:1700000 Deskripsi Read Nama,Status,Kehadiran If Status “kawin” THEN T_Istri 50000 Else if Status = “Duda” or “Janda” THEN T_Istri 0 END IF READ jumlah_Anak If If Status = “Kawn” or Status =”Duda” or Status = “Janda” THEN If Jumlah_Anak<=3 THEN T_anak 750000*jumlahanak Else T_anak 750000*3 End If Else T_anak 0 END IF Uangmakan 25000*kehadiran Gatot Gapok+T_istri+T_Anak+uangmakan+pajak 0,1*gajitotal Gajibersih=gajitotal-pajak
Write gaji bersih
Algoritma Tabel Nilai Nilai Huruf KET 86-100 A LULUS 71-85 B LULUS 61-70 C LULUS 51-60 D TDK LULUS 0-50 E TDK LULUS Algoritma Nilai Kamus Nim :String Nama:String Mat_Kul:String NA:interger NH:Char Ket:String Deskripsi Read Nim,Nama,Matkul,Nilai If NA >=0 AND NA <=50 THEN NH “E” Else If NA >=51 AND NA <=60 THEN NH “D” Else If NA >=61 AND NA <=70 THEN NH “C” Else If NA >=71 AND NA <=85 THEN NH “B” Else If NA >=86 AND NA <=100 THEN NH “A” END IF If NA >=61 AND NA <=100 THEN KET “LULUS” Else If NA >=0 AND NA <=60 THEN KET “ TDK LULUS” END IF
Write nim,nama,matkul
Algoritma Menentukan Bilangan Prima
Deklarasi
Ulang,JumB,Sisa,Bilangan :Interger Hasil : String Deskripsi Read (Bil) For (ulang =1 to ulang ≤bil step 1) Sisa bil mod ulang If (sisa =0)THEN JUMB JUMB + 1 Else JUMB JUMB + 1 Next Ulang If (JUMB>2)THEN Hasil “bukan bil.prima” Else Hasil “bil.prima”
Write(hasil)
Flowchart-nya:
Algoritma(Menu) Kamus Luas_Pesergi_empat_sisi :real Luas_lingkaran_jari_jari:real Const phi :real=3,14 Vol_balok,p,l,t:real Pilih:interger Deskripsi Write (Menu) Write (1.persegiempat,lingkaran,balok,keluar) Write (Masukkan pilihan [1-4];) Read (Pilih) Defend on pilih Pilih =1; Write (masukkan sisi persegi panjang: ) READ(sisi) Write Luas_persegi empat adalah; ) Write( Luas_persegi) Pilih =2; Write (masukkanjari-jari: ) READ(r) Luas_lingkaran phi*(r*r) Write Luas_lingkaran adalah; ) Write( Luas_lingkaran) Pilih =3; Write (masukkan panjang balok: ) READ(p) Write (masukkan lebar balok: ) READ(l) Write (masukkan tinggi balok: ) READ(t) Vol_balok<-p*l* Write (volume_balok adalah; ) Write(volume_balok ) Pilih =4; Write (terima kasih ) END
OTHERWISE
Flowchart-nya:
Algoritma_gaji_karyawan
kamus nama_karyawan: string gaji_pokok : real tunjangan : real pajak : real
gaji_bersih : real
Deskripsi read (nama_karyawan) read (gaji_pokok)
tunjangan pajak gaji_bersih write(gaji_bersih)
FLOWCHART-nya:
Lanjutan yang kemarin :
Kenapa harus Algoritma : • Penulisan atau penulisan algoritma tidak tergantung pada bahasa pemograman manapun. • Notasi algoritma dapat diterjemahkan kedalam bahasa pemograman’
• Apapun bahasa pemogramanya outputnya sama karena algoritma sama.
Syarat algoritma yang baik : • Tingkat kepercayaan tinggi (realibility) • Pemprosesan yang efisien (cost rendah) • Sifatnya general • Bisa di kembangkan (expandable) • Portabilitas yang tinggi • Precise (betul,teliti dan tepat) • Efektif • Harus terminate
• Output yang dihasilkan tepat
Struktur Penulisan Algoritma : • Judul (Header) • Kamus (deklarasi)
• Algoritma (deskripsi)
Type data dalam Algoritma : Interger Real Char String Booleam Operator : Perbandingan (>,<,=,=,!=) Aritmatika (+,-,/,*,Div,Mod) Penegasan () Logika (AND,OR,NOT,XOR) Note: OR -> bisa 1,bisa semua XOR -> harus salah satu AND -> Semua NOT -> Mengambil 1 titik misal titik A/titik B Note,pelarangan penulisan nama: Diawali angka Ada spasi atau kosong ditengah Menggunakan kata kunci
Hanya angka
StrukturDasar Algoritma
Langkah-langkah penyelesaian masalah bisa berupa :
A.Sequencial(Berurutan) Sebuah runtunan terdiri dari satu atau lebih instruksi. Tiap instruksi dikerjakan berurutan sesuai aturan penulisannya. Urutan instruksi menentukan keadaan akhir algoritma, jika urutannya diubah maka hasil akhirnya mungkin akan berubah. Urutan instruksi menunjukkan cara berfikir penyusun algoritma dalam menyelesaikan masalah Runtunan Instruksi : Instruksi 1 Instruksi 2 Instruksi 3 Contoh : Algoritma Tukar isi Gelas Runtunan instruksi : 1. Tuangkan susu dari bejana A ke dalam bejana C 2. Tuangkan kopi dari bejana B ke dalam bejana A 3. Tuangkan susu dari bejana C ke dalam bejana B Hasil akhir : Bejana A berisi kopi dari bejana B, bejana B berisi susu dari bejana A
Jika runtunan instruksi diubah maka hasilnya berubah
B.Selection( Pemilihan) Adakalanya sebuah instruksi dikerjakan jika sebuah kondisi tertentu terpenuhi Struktur umum : If kondisi then Aksi atau If kondisi then Aksi 1 Else
Aksi 2
Contoh : If Amir memperoleh juara kelas then Ayah akan membelikannya hadiah If Jalan Dago macet then Ambil alternative Jalan Dipati Ukur If Kantong Kentang kosong then Buang Else Kembalikan kantong kentang ke lemari Endif c. Pengulangan (repetition) Komputer tidak pernah bosen dan lelah jika diminta untuk mengerjakan instruksi secara berulang-ulang. Contoh : • Menulis kalimat ”Saya harus lebih giat belajar” sebanyak 1000 kali Ulangi : – Tulis kalimat ” Saya harus lebih giat belajar” Sampai jumlah_kalimat = 1000 • Mengupas 100 buah kentang Selama kentang terkupas < 100 maka
– Kupas 1 kentang
pada postingan pertama saya kali ini akan membahas tentang Algoritma,yah persepsi saya pertama mendengar matakuliah ini saya langsung memikirkan tentang matematika dan segudang rumus mematikan ny “mungkin adiknya logaritnya saya pikir(namanya saja sudah agak mirip)”.Baikllah daripada semakin penasaran cekidot :
Menurut wikipedia, algoritma adalah prosedur langkah-demi-langkah untuk penghitungan. Algoritma digunakan untuk penghitungan, pemrosesan data, dan penalaran otomatis ada juga yang mengatakan algoritma adalah suatu urutan dari beberapa langkah yang logis guna menyelesaikan masalah.atau bisa kita bilang algoritma adalah ilmu tentang Logika,dengan artian orang yang bisa algoritma berarti pikiran nya kurang logis(katanya sih gitu).
contoh :
Algoritma memasak mie instan.
Rebus air hingga mendidih.
Masukkan mie instan ke dalam air mendidih tersebut.
Tunggu beberapa hingga mie terlihat matang.
Jika mie sudah dirasa matang, angkat dan tiriskan.
Campurkan bumbu-bumbu, dan aduk hingga rata.
Lalu siap dimakan.
Atau;
Algoritma Pendaftaran mahasiswa baru
Datang ke kampus tujuan
Isi formulir yang disediakan.
membayar uang pendaftaran.
pilih jurusan yang dituju.
Well,tanpa kita sadari setiap hari kita berhubungan langsung dengan Algoritma bukan.
Foto diatas menunjukan seseorang yang paling berjasa dalam mencetus algoritma sesuai namanya Al-Khwarizmy yang oleh barat di sebut algorithm,bisa dibilang beliau adalah bapaknya algoritma.well,cukup yak sejarah nya.
Dalam algoritma sendiri kita mengenal 3 jenis langkah dalam memecahkan masalah yaitu dengan pseudocode,flowchart,dan bahasa alami(nature language).
Pseudocode
Pseudo-code adalah kode atau tanda (yang sudah menyerupai bahasa pemograman ) atau merupakan penjelasan cara menyelesaikan suatu masalah.
contoh :
kamus :
int alas int tinggi
real Luas_segitiga
Deskripsi : Start Read (‘alas’) Read (‘tinggi’) Luas Segitiga<-0.5*alas*tinggi Write (‘Luas Segitiga’)
End
Flowchart:
Flowchart adalah adalah suatu bagan dengan simbol-simbol tertentu yang menggambarkan urutan proses secara mendetail dan hubungan antara suatu proses (instruksi) dengan proses lainnya dalam suatu program.
contoh:
Oke,saya rasa sekian dulu untuk pengenalan terhadap Algoritmanya.semoga pembaca mendapaat manfaat dari ulasan diatas.