Struktur dan Cara Penyampaian Algoritma

2:35 PM 0

Secara umum struktur Algoritma terdiri dari 3 bagian, yaitu:
1. Nama/judul Algoritma
Nama Algoritma memberikan gambaran secara singkat apa tujuan dari Algoritma, misalkan nama resep masakan, petunjuk melakukan sesuatu, jadwal kegiatan, langkah-langkah penyelesaian sebuah masalah, dan sebagainya. Pemberian nama Algoritma disarankan singkat dan jelas, namun sudah mewakili maksud dari algoritma. Dalam Algoritma komputer biasanya nama algoritmaalk dituliskan tanpa menggunakan spasi, misalkan Algoritma VolumeBalok atau Algoritma Volume_Balok

2. Bagian Deklarasi
Bagian deklarasi merupakan tahap persiapan dari algoritma. Pada bagian ini dijelaskan kebutuhan agar algoritma dapat berjalan. Istilah lainnya di sinilah alat dan bahan didefinisikan. Dalam algoritma pemrograman, bagian deklarasi menjelaskan input (masukan) apa saja yang akan diproses oleh algoritma termasuk jenis data input (tipe data), juga output apa yang akan dihasilkan serta semua hal yang akan dipakai dalam algoritma. Yang didefiniskan dalam algoritma ini termasuk variabel, tipe data, konstanta, nama prosedur, tipe, dan fungsi.

3. Bagian Deskripsi
Pada bagian ini dijelaskan serangkaian langkah-langkah (instruksi) atau pernyataan (statement) untuk memproses alat dan bahan atau inputan untuk menghasilkan output sesuai yang diharapkan. Langkah-langkah dalam algoritma dituliskan dari atas ke bawah. Urutan penulisan menentukan urutan perintah
Berikut ini gambaran struktur sebuah Algoritma
Tanda { } digunakan untuk menuliskan komentar algoritma 


NAMA_ALGORITMA
{ Penjelasan mengenai algoritma, yang berisi uraian singkat mengenai apa yang dilakukan oleh algoritma }
DEKLARASI
{ Semua bahan dan alat yang dibutuhkan selama algoritma dijalankankan, atau dalam algoritma meliputi variabel yang dipakai, nama tipe, konstanta, nama prosedur dan nama fungsi didefinisikan di sini }
DESKRIPSI :
{ Semua langka, proses, atau statement algoritma dituliskan di sini, biasanya langkah-langkah diberikan penomoran untuk memudahkan penelusuran dan organisasi) }

Untuk lebih jelasnya, perhatikan contoh berikut.


RESEP PUDING MUTIARA
Bahan :
1 bungkus tepung hunkwe
250 gram gula pasir
1 gelas santan kental
3 gelas air
100 gram mutiara/ pacar cina, rebus, tiriskan
1 lembar daun pandan
½ sendok teh garam
Cara Pembuatan:
Campurkan tepung hunkwe, gula pasir dan santan, tambahkan air, garam dan daun pandan lalu masak sambil diaduk agar rata.
Masukkan mutiara ke dalam adonan tepung hunkwe, aduk hingga rata.
Tunggu hingga adonan mendiddih dan mengental, angkat dan tuang dalam cetakan, kemudian dinginkan
Jika puding sudah dingin dan padat, keluarkan dari cetakan dan sajikan.



Dalam algoritma resep masakan di atas dapat dilihat bahwa proses disusun dengan sistematis dalam bentuk urutan rangkaian kerja. Dalam kasus ini semua proses harus urut satu persatu dikerjakan dari nomor 1 hingga 4.



Penyajian Algoritma 

Secara garis besar, algoritma dapat disajikan dengan 3 cara, yaitu
1. Menggunakan bahasa natural (bahasa sehari-hari)
2. Menggunakan Pseudocode
3. Menggunakan Flowchart

Penggunaan bahasa natural dalam algoritma sering dijumpai pada algoritma di kehidupan sehari-hari. Bahasa yang digunakan tentunya bahasa yang dipahami oleh pengguna algoritma. Misalkan saja petunjuk perawatan sepeda motor, tentu saja akan disediakan dengan bahasa di mana motor tersebut dijual. Jika Motor tersebut dijual di Indonesia tentu saja akan disediakan petunjuk dalam bahasa Indonesia, jika dijual di bebera negara dengan bahasa yang berbeda-beda biasanya petunjuk akan disajikan dalam banyak bahasa (multi lingual). Karena algoritma yang baik tentu algoritma yang dapat dipahami dan dijalankan oleh penggunanya.

Penyajian algoritma dalam bahasa natural, menggunakan kalimat deskriptif, yaitu menjelaskan secara detail suatu algoritma dengan bahasa atau kata-kata yang mudah dipahami. Penyajian algoritma ini cocok untuk algoritma yang singkat namun sulit untuk algoritma yang besar. Selain itu algoritma ini akan sulit dikonversi ke bahasa Pemrograman.



 Contoh 1
Berikut ini adalah algoritma untuk menentukan Volume sebuah Balok dengan bahasa sehari-hari
Algoritma VolumeBalok
Input berupa panjang, lebar, dan tinggi Balok dalam dalam cm
Output berupa Volume Balok
Langkah-langkah:
1) Baca panjang
2) Baca lebar
3) Baca tinggi
4) Hitung volume balok adalah hasil panjang x lebar x tinggi
5) Tuliskan Volume Balok

Contoh 2
Berikut ini algoritma mencari nilai terbesar dari 3 buah bilangan
Algoritma MencariNilaiMax
Input: 3 buah bilangan
Output : bilangan terbesar di antara 3 bilangan
Langkah-langkah:
1) Baca bilangan pertama
2) Baca bilangan kedua
3) Baca bilangan ketiga
4) Bandingkan bilangan pertama dengan bilangan kedua, pilih bilangan terbesar, dan
simpan bilangan terbesar itu dengan nama Nmax
5) Bandingkan Nmax dengan bilangan ketiga, jika Nmax kurang dari bilangan 3 maka
ganti nilai Nmax dengan bilangan ketiga, jika tidak maka nilai Nmax tetap
6) Tuliskan Nmax sebagai keluaran

Contoh 3
Algoritma HitungRerata
Input: n data berupa bilangan
Output : nilai rata-rata
Langkah-langkah:
1) Baca data ke-1, data ke-2, hingga data ke-n
2) Jumlahkan data ke-1, data kedua hingga data ke-n, simpan dengan nama JUM
3) Bagi JUM dengan banyak data, atau n. Simpan dengan nama RERATA
4) Tuliskan RERATA sebagai keluaran
Contoh 1 -3 menunjukkan bagaimna menyajikan algoritma dengan bahasa natural, yaitu menggunakan kalimat deskriptif. Ciri-cirinya adalah bahwa dalam penyajian ini operasi-operasi maupun langkah-langkah dijelaskan dengan kata-kata dengan sedikit menggunakan simbol-simbol. Namun cara ini terkadang kurang dapat dipahami dengan baik oleh pengguna, dibandingkan dengan menuliskan operasi dan langkah-langkah dengan simbol. Pada prakteknya banyak pembuat algoritma tidak secara penuh menggunakan kata-kata untuk menjelaskan algoritma tapi mencampurnya dengan simbol-simbol. Lihat contoh 2 pada Kegiatan Belajar (KB) mengenai akar persamaan kuadrat. Pada contoh tersebut kata-kata dikombinasi dengan penggunaan simbol-simbol atau rumus.


Penyajian Algoritma yang Baik

Menurut Donald Ervin Knuth, tang dikenal dengan Bapak "Analisis Algoritma", algoritma yang baik dan benar harus memiliki kriteria-kriteria berikut ini:· Input· Output· Finite· Definite· Efisien

1. Input
Algoritma memiliki nol input atau lebih dari pengguna. Setiap algoritma pasti memiliki input. Yang dimaksud dengan nol input dari pengguna adalah bahwa algoritma tidak mendapatkan masukan dari pengguna, tapi semua data inputan yang digunakan algoritma tidak dari pengguna secara langsung, namun semua data yang akan diproses sudah dideklarasikan oleh algoritma terlebih dahulu. Sebagai contoh sebuah algoritma menghitung 100 bilangan genap yang pertama tidak memerluakan input dari pengguna karena sudah diketahui bahwa banyaknya bilangan genap adalah 100. Berbeda jika algoritm tersebut digunakan untuk menghitung n bilangan genap pertama, dengan nilai n dari pengguna. Berarti ada masukan dari pengguna yaitu n.

2. Output
Algoritma minimal harus memiliki 1 output. Tujuan dari algoritma adalah memberikan penyelesaian dari suatu permasalahan dengan langkah-langkah tertentu. Penyelesaian itulah output dari algoritma yang dimaksud. Output dapat berupa apa saja, teks, file, video, suara, dan lain-lain atau suatu nilai yang disimpan untuk digunakan algoritma lain atau disimpan di basis data.

3. Finite (Terbatas)
Algoritma yang baik haruslah mempunyai langkah-langkah terbatas, yang berakhir pada suatu titik di mana algoritma itu akan berhenti dan menghasilkan suatu output. Algoritma tidak boleh berjalan terus –menerus tanpa titik henti, hingga menyebabkan hang atau not responding jika diterapkan pada komputer. Ketika sebuah algoritma berjalan terus menerus (infinite), maka ini mengindikasikan ada kesalahan yang dibuat oleh programmer dalam mengembangkan algoritma.

4. Define (Pasti)
Makna dari langkah logis pada definisi algoritma terdahulu tercermin dari langkah-langkah yang pasti, tidak ambigu atau bermakna ganda. Suatu program harus mempunyai arah dan tujuan yang jelas ,kapan mulai dan kapan berakhir. Dalam menyusun langkah-langkah dalam algoritma perlu dihindari kata-kata seperti secukupnya, beberapa, sesuatu, sebentar, lama, atau kata lain yang tidak terukur dengan pasti. Pemberian nomor pada algoritma dapat membantu pengguna mengikuti setiap langkah dengan pasti hingga mencapai akhir dari algoritma, yaitu solusi dari permasalahan.

5. Efisien
Program menghasilkan output yang benar, itu wajib. Tapi bagaimna jika output yang benar itu dilakukan dengan waktu yang lama padahal ada algoritma lain yang lebih cepat? Hal ini menunjukkan bahwa setiap algoritma, khususnya jika sudah diterapkan pada pemrograman, mempunyai waktu eksekusi (running time). Algoritma disebut efisien jika untuk mendapatkan suatu solusi tidak memerlukan memori yang banyak, proses yang berbelit-belit dan tidak perlu. Jika algoritma terlalu banyak melakukan hal-hal yang tidak perlu akan menyebabkan waktu lebih lama

9 Plugin Sublime Text yang Wajib Diinstal Programmer

9:47 PM 0
Sublime Text merupakan teks editor yang canggih untuk kode, markup, dan prosa. Sublime Text memiliki antarmuka yang polos, dengan fitur yang luar biasa, dan memiliki kinerja yang luar biasa. Fitur dan kinerja yang luar biasa tersebut terletak pada plugin yang bisa kita install dengan mudah. Plugin Sublime tersedia sangat banyak sekali dan sebagian besar dari antaranya gratis. Berikut ulasan 9 plugin sublime yang wajib diinstal programer untuk menambah kinerja sublime.

1. Package Control

Package control merupakan fitur package manajer. Plugin ini harus diinstal terlebih dahulu setelah SublimeText diinstal. Dengan menggunakan package control, kita dapat menginstal, meng-upgrade, menghapus dan melihat paket atau plugin pada SublimeText kita dengan sangat mudah. Untuk menginstal package control, dapat dilakukan dengan langkah berikut ini:
Langkah pertama, buka jendela console dengan menekan ctrl+` atau View - Show Console. Setelah terbuka, paste kode ini sesuai versi SublimeText
SublimeText 2

import urllib2,os,hashlib; h = '2deb499853c4371624f5a07e27c334aa' + 'bf8c4e67d14fb0525ba4f89698a6d7e1'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); os.makedirs( ipp ) if not os.path.exists(ipp) else None; urllib2.install_opener( urllib2.build_opener( urllib2.ProxyHandler()) ); by = urllib2.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); open( os.path.join( ipp, pf), 'wb' ).write(by) if dh == h else None; print('Error validating download (got %s instead of %s), please try manual install' % (dh, h) if dh != h else 'Please restart Sublime Text to finish installation')

SublimeText 3

import urllib.request,os,hashlib; h = '2deb499853c4371624f5a07e27c334aa' + 'bf8c4e67d14fb0525ba4f89698a6d7e1'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)

kode tersebut menciptakan folder pada SublimeText, kemudian akan men-download paket control SublimeText ke dalamnya.
Jika ketika console tidak berfungsi, langkah kedua yang dapat kita lakukan adalah melakukan instalasi package control, dengan cara: 1. Klik Preferences dan pilih Browse Packages 2. Buat folder dengan nama Installed Packages 3. Download Package Control.sublime-package dan simpan pada direktori Installed Packages yang telah dibuat sebelumnyaCara menggunakannya: ctrl + shift + p (pada windows/linux) atau cmd + shift + p (pada OS X)

2. Alignment

Alignment merupakan keselarasan pada teks atau tulisan. Pada SublimeText juga terdapat alignment, dapat dilakukan dengan cara manual. Tetapi, dengan menggunakan plugin Alignment ini, kita dapat mengatur keselarasan tulisan/teks yang kita buat secara cepat menggunakan quick key.
Fitur-fitur yang disediakan, seperti:
  • menyelaraskan semua baris yang terpilih dengan menyisipkan spasi atau tab sesuai baris pertama yang dipilih
  • menyelaraskan semua baris yang terpilih dengan tingkat level indent yang sama
  • menyelaraskan semua baris yang terpilih yang terdapat simbol '=' dengan menyisipkan spasi
Untuk menginstal alignment pada SublimeText 2 maupun SublimeText 3, dapat dilakukan dengan langkah-langkah berikut ini:
Langkah pertama, pastikan Package Control telah terinstal. Lalu lakukan Install Package melalui Command Pallete, dapat ditemukan dengan cara Tools - Command Pallete atau Preferences - Package Control (ctrl +shift + p), dan ketikan Install Package, lalu enter. Langkah kedua, tunggu hingga install package selesai. Jika telah selesai, command pallete akan tampil kembali dan ketikkan Alignment, lalu enter. Langkah ketiga, pastikan pada Preferences - Package Setting - Aligment - [ Setting User ] dan [ Key Bindings User ] terdapat syntax seperti berikut:
Kita dapat copy syntax dari Preferences - Package Setting - Aligment - [ Setting Default ] dan [ Key Bindings Default ]. Cara menggunakannya: ctrl + alt + a (pada windows/linux) atau cmd + alt + a (pada OS X)

3. All AutoComplete

Sejatinya, sublime menyediakan layanan auto complete berdasarkan kata yang pernah diketikkan dalam file yang sama. Tetapi, sublime kini menyediakan tools dengan nama All AutoComplete yang merupakan plugin tambahan yang berguna untuk melengkapi teks secara otomatis dengan menampilkan berbagai kemungkinan sesuai kata yang kita ketik. Dengan all auto complete, kita dapat dengan cepat dan mudah untuk main coding.
Cara instalnya, dengan langkah-langkah berikut:
Langkah pertama, pastikan Package Control telah terinstal. Lalu lakukan Install Package melalui Command Pallete, dapat ditemukan dengan cara Tools - Command Pallete atau Preferences - Package Control (ctrl +shift + p), dan ketikan Install Package, lalu enter. Langkah kedua, tunggu hingga install package selesai. Jika telah selesai, command pallete akan tampil kembali dan ketikkan All AutoComplete, lalu enter.

4. DocBlockr

DocBlockr merupakan plugin pembuat comments/komentar yang berguna untuk dokumentasi. Hanya saja, docblockr dibuat dengan sangat memudahkan dalam penggunaannya. Dengan hanya mengetikkan '/**' dan enter, sublime yang telah terinstall docblockr akan secara otomatis membuatkan dokumentasi atau penjelasan dengan parsing fungsi, parameter, variabel, dan beberapa dokumentasi lain yang memungkinkan untuk dibuat.
Cara instal DocBlockr, dengan langkah-langkah berikut:
Langkah pertama, pastikan Package Control telah terinstal. Lalu lakukan Install Package melalui Command Pallete, dapat ditemukan dengan cara Tools - Command Pallete atau Preferences - Package Control (ctrl +shift + p), dan ketikan Install Package, lalu enter. Langkah kedua, tunggu hingga install package selesai. Jika telah selesai, command pallete akan tampil kembali dan ketikkan DocBlockr, lalu enter. Langkah ketigacopy Setting Default pada docblockr dan paste ke Setting User pada docblockr.

5. SideBarEnhancements

SideBarEnhancements merupakan plugin tambahan yang menyediakan operasi pada side bar file dan folder pada SublimeText.  Operasi tambahan lain pada SideBarEnhancements ialah:
  • Menyediakan operasi penghapusan file ke Recycle, open with, dan clipboard.
  • Layanan untuk menutup, membuka, memindahkan, dan mengembalikan buffers yang dipengaruhi oleh perubahan nama atau perpindahan command.c. Preferensi untuk mengkontrol jika buffer harus ditutup bila dipengaruhi oleh proses penghapusan.
  • Memberikan layanan membuat file/folder baru, membuka atau menjalankan, mencari, meng-cutcopy-paste, mengubah nama, menindahkan, menghapus, dan refresh.
  • Kecanggihan lainnya, ialah: menyalin sebagai URI, URL, konten sebagai UTF8, konten sebagai data Base64 URI, salin sebagai image (img/script/style), dan duplicate.
  • Memungkinkan untuk menampilkan tanggal perubahan file, dan ukuran file.

6. Terminal

Terminal merupakan tempat eksekusi beberapa program, salah satunya program bahasa c. Plugin terminal digunakan untuk membuka otomatis terminal berdasarkan folder tempat menyimpan file. Hanya dengan ctrl+shift+t, kita dapat langsung membuka terminal dan direktorinya.Cara instal plugin terminal pada sublime, dengan langkah-langkah berikut:
Langkah pertama, pastikan Package Control telah terinstal. Lalu lakukan Install Package melalui Command Pallete, dapat ditemukan dengan cara Tools - Command Pallete atau Preferences - Package Control (ctrl +shift + p), dan ketikan Install Package, lalu enter. Langkah kedua, tunggu hingga install package selesai. Jika telah selesai, command pallete akan tampil kembali dan ketikkan terminal, lalu enter. Langkah ketigacopy [Setting Default ] dan [ Key Bindings Default ] dan paste ke [ Setting User ] dan [ Key Bindings User ] pada Preferences - Packages Setting - Terminal.

7. CanIUse

Plugin CanIUse merupakan layanan tambahan pada sublime text yang berfungsi untuk memeriksa format syntax CSS dan HTML yang dapat digunakan pada browser kita. Hal ini, mempermudah web programmer untuk membuat desain menggunakan CSS. Menggunakannya pun sangatlah mudah, kita dapat melakukannya dengan cara menyorot syntax CSS atau elemen HTML , lalu klik kanan dan pilih Can I Use, maka akan langsung membuka halaman CanIUse.com.
Cara instal plugin CanIUse, dengan langkah-langkah berikut:
Langkah pertama, pastikan Package Control telah terinstal. Lalu lakukan Install Package melalui Command Pallete, dapat ditemukan dengan cara Tools - Command Pallete atau Preferences - Package Control (ctrl +shift + p), dan ketikan Install Package, lalu enter. Langkah kedua, tunggu hingga install package selesai. Jika telah selesai, command pallete akan tampil kembali dan ketikkan CanIUse, lalu enter.

8. CSSComb

CSSComb merupakan plugin tambhan pada SublimeText dengan fungsi untuk mengurutkan syntax CSS berdasarkan sifatnya. CSSComb menjadikan kodingan yang kita buat menjadi rapi, terurut dengan benar, dan konsisten. Hal ini juga membantu menggabungkan kode yang dikerjaan oleh banyak pekerja / tim pengembang yang mengerjakan masing-masing.
Cara menggunakan dapat dengan cara: blok/ sorot syntax dan klik crtl + shift + c (Tools - Run CSSComb) atau dengan klik kanan pilih Run CSSComb.

Cara instal plugin CSSComb, dengan langkah-langkah berikut:
Langkah pertama, pastikan Package Control telah terinstal. Lalu lakukan Install Package melalui Command Pallete, dapat ditemukan dengan cara Tools - Command Pallete atau Preferences - Package Control (ctrl +shift + p), dan ketikan Install Package, lalu enter. Langkah kedua, tunggu hingga install package selesai. Jika telah selesai, command pallete akan tampil kembali dan ketikkan CSSComb, lalu enter. Langkah ketigacopy [Setting Default ] dan [ Key Bindings Default ] dan paste ke [ Setting User ] dan [ Key Bindings User ] pada Preferences - Packages Setting - CSSComb.

9. Trimmer

Trimmer merupakan plugin tambahan SublimeText yang berguna untuk membantu menghapus spasi yang tidak berguna dan dapat menyebabkan kesalahan pada kode JavaScript. Cara menggunakannya pun sangat musah, hanya dnegan blok / sorot dan klik ctrl + shift + s. Fitur-fitur lain yang dapat kita gunakan setelah install trimmer adalah:
Memotong spasi diawal dan/atau diakhir setiap baris, menghapus baris kosong / garis spasi, menghapus karakter spasi, mengganti beberapa simbol yang tidak sesuai, seperti:
  • Smart single quotes: ’‘ menjadi ''
  • Smart double quotes: “” menjadi ""
  • Ellipsis: … menjadi ...
  • Em dash: — menjadi ---
  • En dash: – menjadi --
  • Middle dot: • menjadi *
Cara instal plugin Trimmer, dengan langkah-langkah berikut:
Langkah pertama, pastikan Package Control telah terinstal. Lalu lakukan Install Package melalui Command Pallete, dapat ditemukan dengan cara Tools - Command Pallete atau Preferences - Package Control (ctrl +shift + p), dan ketikan Install Package, lalu enter. Langkah kedua, tunggu hingga install package selesai. Jika telah selesai, command pallete akan tampil kembali dan ketikkan trimmer, lalu enter. Langkah ketigacopy [Setting Default ] dan [ Key Bindings Default ] dan paste ke [ Setting User ] dan [ Key Bindings User ] pada Preferences - Packages Setting - Trimmer.
(ap/sublime.wbond.net/hongkiat.com)