Ulas TKJ - setelah sebelumnya saya membahas tentang dasar algoritma pada kesempatan kali ini akan saya coba ulas mengenai struktur algoritma
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.
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.
baca juga : Tutorial Sharing Internet dari Laptop ke Perangkat Lain
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
Demikian ulasan tentang struktur algoritma dan Penyajian Algoritma yang bisa saya sampaikan kali ini, mudah-mudahan bermanfaat bagi kita semuanya. "Berkah Berbagi"
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.
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.
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.
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 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.
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
baca juga : Tutorial Sharing Internet dari Laptop ke Perangkat Lain
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
Demikian ulasan tentang struktur algoritma dan Penyajian Algoritma yang bisa saya sampaikan kali ini, mudah-mudahan bermanfaat bagi kita semuanya. "Berkah Berbagi"