Blog for Learning

| lesson material | material summary | questions and answers | definitions | types and examples | other information | materi pelajaran | ringkasan materi | pertanyaan dan jawaban | definisi | jenis-jenis dan contoh-contoh | informasi lainnya |

Advertisement

Powered by Blogger.

Visitors

Flag Counter

Pages

Struktur Penulisan Algoritma Dengan Pseudocode dan Contoh Programnya


Struktur Penulisan Algoritma Dengan Pseudocode dan Contoh Programnya



Assalamu’alaikum Wr Wb
Selamat malam.., kali ini saya akan posting tentang Struktur Penulisan Algoritma Dengan Pseudocode dan Contoh Programnya. Bagi yang sudah tahu pemrograman pasti tahu apa itu algoritma dan pseudo code. Karena sebelum mempelajari bahasa pemrograman apapun harus kita tahu dulu apa yang disebut dengan algoritma dan pseudo code.

Pendahuluan
Pertama kita akan membahas yang namanya algoritma. Apa sih algoritma itu? Algoritma  berisi  langkah-langkah  penyelesaian  suatu  permasalahan  yang  akan  diselesaikan dengan suatu bahasa pemrograman. Langkah-langkah tersebut dapat ditulis dalam notasi apapun, asalkan mudah dibaca dan dimengerti, karena memang tidak ada notasi baku dalam penulisan algoritma. Tiap orang dapat membuat aturan penulisan dan notasi algoritma sendiri. Agar notasi algoritma mudah ditranslasi ke dalam notasi bahasa pemrograman, maka sebaiknya notasi algoritma tersebut berkoresponden dengan notasi bahasa pemrograman secara umum.


Aturan Penulisan Algoritma
Penulisan algoritma juga ada aturannya. Hal ini agar algoritma kita lebih mudah dipahami oleh orang lain. Setiap Algoritma akan selalu terdiri dari tiga bagian yaitu :

·           Judul (Header)
·           Kamus ( Deklarasi )
·           Algoritma ( Deskripsi )

Secara umum setiap bahasa pemrograman memiliki tiga bagian diatas. Namun ada juga bahasa pemrograman tertentu yang terkadang tidak memerlukan header. Pada setiap bagian tersebut apabila akan dituliskan komentar mengenai setiap bagian tersebut dituliskan diantara tanda kurung kurawal contoh { Komentar }. Notasi algoritmis yang dituliskan diantara tanda ini tidak akan dieksekusi oleh program.

Judul / Header
{ Merupakan bagian yang berisi judul dari suatu permasalahan yang diselesaikan berikut komentar mengenai Algoritma seperti cara kerja algoritma, Kondisi awal dan kondisi akhir dari algoritma }

Kamus / Deklarasi
{ Pada bagian ini, didefinisikan nama konstanta, nama variable, nama prosedur dan nama fungsi yang akan dilibatkan dalam Algoritma}

Algoritma / Deskripsi
{ Pada bagian ini langkah-langkah penyelesaian masalah dituliskan. Semua teks yang dituliskan tidak diantara  tanda  kurung  kurawal  akan  dianggap  sebagai  notasi  algoritma  yang  akan  berpengaruh terhadap kebenaran Algoritma }

Contoh :

Judul (Header)
Judul adalah bagian teks algoritma yang digunakan sebagai tempat mendefinisikan nama dengan menentukan apakah teks tersebut adalah program, prosedur, fungsi. Setelah judul disarankan untuk menuliskan spesifikasi singkat dari teks algoritma tersebut. Nama algoritma sebaiknya singkat namun cukup menggambarkan apa yang akan dilakukan oleh algoritma tersebut.

Contoh :

Algoritma Luas_Kubus ← {Judul Algoritma}
{ Menghitung luas kubus untuk ukuran sisi yang dibaca dari piranti masukan lalu mencetak hasilnya kepiranti keluaran } ← { Spesifikasi Algoritma }

Catatan :
·         Untuk memisahkan antara kata dalam judul algoritma menggunakan tanda “_” bukanlah suatu keharusan. Anda dapat menuliskan LuasKubus atau Luas_Kubus. Tetapi sebaiknya anda  tidak  menggunakan  spasi      untuk  memisahkan  antara  kata  di  dalam  nama algoritma.
·         Judul algoritma bersifat opsional, artinya boleh dituliskan, boleh juga tidak dituliskan.


Kamus (Deklarasi)
Kamus adalah bagian teks algoritma sebagai tempat untuk mendefinisikan :
·         Nama type
·         Nama konstanta
·         Nama variabel
·         Nama fungsi
·         Nama prosedur

Semua  nama  tersebut  baru  dapat  dipakai  di  dalam  algoritma  jika  dan  hanya  jika  telah didefinisikan terlebih dahulu didalam bagian kamus. Penulisan sekumpulan nama dalam kamus sebaiknya dikelompokkan menurut jenis nama tersebut.

Nama variabel  belum terdefinisi nilainya ketika didefinisikan. Pendefinisian  nama konstanta sekaligus memberikan harga konstanta tersebut, pendefinisian nama fungsi dilakukan sekaligus dengan domain / range serta spesifikasinya. Pendefinisian nama prosedur sekaligus dengan pendefinisian parameter (jika ada) dan spesifikasi prosedur (kondisi awal “Initial State”, Kondisi akhir “ Final State” dan proses yang dilakukan).

Contoh :

Kamus
{Nama type, hanya untuk type yang bukan type dasar}
type jam : <hh,mm,ss :integer> {Type jam terdiri dari 3 masukan yaitu
“hh” sebagai jam. “mm” sebagai menit dan “ss” sebagai detik}
{Nama konstanta, harus menyebutkan type dan nilai }
constant phi : real = 3,14159
constant nama : string = “Alex”
constant benar : boolean = true
{Nama Informasi, menyebutkan type}
x,y  integer {suatu nilai yang bertype bilangan bulat}
NMax : real   {nilai maksimum yang bertype bilangan real}
Nama : string {suatu nilai yang merupakan kumpulan character}
P    point  {suatu nilai pada bidang kartesian}
Cari : Boolean {suatu nilai logika}



Algoritma (Deskripsi)
Algoritma / deskripsi adalah bagian inti dari suatu algoritma yang berisi instruksi atau pemanggilan aksi yang telah didefinisikan. Komponen teks algoritma dalam pemrograman procedural dapat berupa :
·         Instruksi dasar seperti input/output, assignment
·         Squence (runtutan)
·         Analisa kasus / percabangan
·         Perulangan

Setiap langkah algoritma dibaca dari “atas” ke “bawah”. Urutan deskripsi penulisan menentukan urutan langkah pelaksanaan perintah.

Contoh :

Algoritma ( Deskripsi )
input (intC,intD) {menerima masukan 2 bilangan intC dan intD}
if intC > intD then {operasi kondisional}
intMaks ←   intC {intMaks di  assignment oleh nilai intC}
Else
intMaks ←   intD {intMaks di  assignment oleh nilai intD}
output (intMaks) {hasil keluaran berupa bilangan intMaks}

Catatan :

Untuk kata-kata input, output, if then else, output akan dipelajari lebih mendalam dalam Jobsheet-jobsheet  selanjutnya.

Contoh lengkap algoritma dalam bentuk pseudocode :

Judul ( Header )
Algoritma maks_C_D { Judul algoritma }
{Menentukan nilai terbesar dari dua buah bilangan bulat, dimana nilai intC dan intD dimasukkan dari keyboard }

Kamus (Deklarasi)
Var intMaks, intC, intD : integer
{menentukan tipe variabel berupa bilangan bulat (integer)}

Algoritma ( Deskripsi )
input (intC,intD) {menerima masukan 2 bilangan intC dan intD}
if intC > intD then {operasi kondisional}
intMaks ←   intC {intMaks di assignment oleh nilai intC}
Else
intMaks ←   intD {intMaks di  assignment oleh nilai intD}
output (intMaks) {hasil keluaran berupa bilangan intMaks}

Contoh Soal
1.      Buatlah algoritma dengan bentuk penulisan pseudocode untuk proses menghitung luas lingkaran.

Algoritma Luas_Lingkaran
{ Menghitung luas lingkaran dengan menginputkan jari2 dan menampilkan hasilnya }
Kamus
jari2,luas : integer
phi = 3.14 : const float
Algoritma
input (jari2) {menginputkan nilai integer untuk variable jari2}
luas ← phi * jari2* jari2 {menghitung luas dengan mengkalikan phi dan jari2}
output (luas) {mencetak luas}

2.      Buatlah  algoritma  dengan  bentuk  penulisan  pseudocode  untuk  proses  menghitung keliling lingkaran.

Algoritma Kll Lingkaran
{ Menghitung keliling lingkaran dengan menginputkan diameter dan menampilkan hasilnya }
Kamus
diameter,keliling : float
phi = 3.14 : const float
Algoritma
input (diameter) {menginputkan nilai untuk variable diameter}
keliling ← phi * diameter {menghitung keliling dengan mengkalikan phi dan diameter}
output (keliling) {mencetak keliling}

3.      Buatlah algoritma dengan bentuk penulisan pseudocode untuk proses menghitung luas segitiga.

Algoritma Luas_Segitiga
{ Menghitung luas segitiga dengan meninputkan alas dan tinggi, kemudian mengkalikan bilangan tersebut, dan menampilkan hasil. }
Kamus
alas, tinggi, luas : integer
Algoritma
input (alas, tinggi) {menginputkan nilai untuk variable alas dan tinggi}
luas ← alas * tinggi * 0.5{menghitung luas dengan mengkalikan alas dan tinggi dan 0.5}
output (luas) {mencetak luas}

4.      Diketahui suatu permasalahan sebagai berikut :
Analisis masalah :
Luas = √ S * (S – sisiA) * (S - sisiB ) * (S – sisiC )
dengan S = 0.5 * (sisiA+sisiB+sisiC)

Tugas anda :
Tuliskan algoritma tersebut dalam bentuk flowcharts dan pseudocode.
Flowchart :
Pseudocode :
Algoritma L_Segitiga
{ Menghitung luas segitiga dengan menginputkan sisi-sisinya}
Kamus
L, a, b, c : integer
Algoritma
Input (a,b,c) {menginput nilai a,b,c}
S ← 0.5 x (a+b+c)
luas ← sqrt(S x(S-a)x(S-b)x(S-c))
output (L)

5.      Cobalah anda implementasikan permasalahan nomor 3, 4, 5, dan 6 ke dalam bentuk program dengan menggunakan bahasa pemrograman C.



Inplementasi nomor 3 :
Menghitung luas lingkaran

#include <stdio.h>
void main()
{
            float L,phi,jari2;
            phi = 3.14;
            printf("Masukan nilai jari2: ");
            scanf("%f\n",&jari2);
            L= phi * (jari2 * jari2);
            printf("Dengan jari-jari %f, maka luas lingkaran : %f", jari2,L);
}

Hasil eksekusi :


Implementasi nomor 4 :
Menghitung keliling lingkaran
#include <stdio.h>
void main()
{
            float Kll,d,phi;
            phi = 3.14;
            printf("Masukan nilai diameter : ");
            scanf("%f",&d);
            Kll= phi * d;
            printf("Dengan diameter %f, maka keliling lingkaran : %f",d,Kll);
}

Hasil Eksekusi :



Implementasi nomor 5 :
Menghitung luas segitiga
#include <stdio.h>
void main()
{
            int L,a,t;
            printf("Masukan nilai alas : ");
            scanf("%d",&a);
            printf("\nMasukan nilai tinggi : ");
            scanf("%d",&t);
            L = a * t/2;
            printf("\nAlas : %d\nTinggi : %d\nLuas : %d",a,t,L);
}
Hasil eksekusi :


Implementasi nomor 6 :
Menghitung luas segitiga dengan s
#include <stdio.h>
#include <math.h>
void main()
{
            int a, b, c, S, L;
            printf("Masukan nilai Sisi A : ");
            scanf("%d", &a);
            printf("\nMasukan nilai Sisi B : ");
            scanf("%d", &b);
printf("\nMasukan nilai Sisi C : ");
            scanf("%d", &c);
            S = 0.5 * (a + b + c);
            L= sqrt(S * (S-a) * (S-b) * (S-c));
            printf("\n Luas segitiga : %d", L);
}
Hasil eksekusi :


PERTANYAAN / SOAL
1.        Apakah kelebihan dan kekurangan dalam penuliskan algoritma dari suatu permasalahan dengan menggunakan flowcharts dan pseudocode.
Flowchart
Kelebihan :
Mudah dibaca, karena menggunakan visualisasi.
Kekurangan :
Membutuhkan banyak tempat
Harus menghafalkan arti dari lambang – lambang flowchart
Pseudocode
Kelebihan :
Tidak butuh banyak tempat.
Hampir sama dengan bahasa pemrogramman, jadi lebih mudah untuk konversinya
Kekurangan :
Sulit dipahami untuk orang yang baru mengenal bahasa pemrogramman.

2.       Buatlah algoritma dengan bentuk penulisan pseudocode untuk proses yang menerima sebuah bilangan, men-decrement bilangan tersebut, dan menampilkan hasil operasi!

Algoritma decrement
{Menginputkan nilai awal dan men decrement dengan mengurangi satu – satu daru angka tersebut sampai nol.}
Kamus
a : integer {suatu nilai yang berupa bilangan bulat (integer) }
b = 0 : const integer
Algoritma
input (a){memberikan nilai untuk variable a.}
Do {mulai melakukan proses pengulangan}
Output (a){mencetakkan a}
a-- {mengurangi nilai a}
while a <= b {Berhenti sampai nilai a = b}



3.      Buatlah algoritma dengan bentuk penulisan pseudocode untuk proses yang menerima dua buah bilangan, menjumlahkan kedua bilangan tersebut, lalu hasil penjumlahannya dikuadratkan, dan hasil peng-kuadratan ditampilkan!

Algoritma jumlah_dua_bil
{Menginputkan dua bilangan, kemudian menjumlahkan, dan mengkuadratkan hasil dari penjumlahan tersebut.}
Kamus
c, d : integer
Algoritma
input (c,d)
hasil ← c + d
hasil ← sqr(hasil)
output (hasil)

4.      Buatlah algoritma dengan bentuk penulisan pseudocode untuk proses yang menerima tiga buah bilangan dan menampilkan hasil perkalian dari ketiga bilangan tersebut!

Algoritma perkalian_tiga_bil
{Menginputkan tiga bilangan, kemudian mengkalikan tiga bilangan tersebut, menampilkan hasilnya.}
Kamus
x, y, z : integer
Algoritma
input (x, y, z)
hasil ← x*y*z
output (hasil)

5.      Gambarlah sebuah flowchart yang menerima lima buah bilangan dan menampilkan rata- rata dari kelima bilangan tersebut!


6.      Cobalah anda implementasikan permasalahan nomor 2, 3, 4, dan 5 ke dalam bentuk program dengan menggunakan bahasa pemrograman C.
Implementasi nomor 2 :
Mendrecement sebuah bilangan
#include <stdio.h>
Main ()
#include <stdio.h>
main ()
{
            int a;
            const int b=0;
            printf ("masukkan sebuah bilangan=");
            scanf ("%d",&a);
            do
            {
                        printf ("%d\n",a);
                        a--;
            }
            while (a>=b);  
}


Implementasi nomor 3 :
Menjumlahkan dan mengkuadratkan dua bilangan
#include <stdio.h>
main ()
{
            int a,b,hasil;
            printf ("masukkan bilangan pertama=");
            scanf ("%d",&a);
            printf ("masukkan bilangan kedua=");
            scanf ("%d",&b);
            hasil=a+b;
            hasil=hasil*hasil;
printf ("\kuadrat dari penjumlahan kedua bilangan tersebut adalah=%d",hasil);
}


Implementasi nomor 4 :
Perkalian 3 bilangan
#include <stdio.h>
main()
{
            int a,b,c,hasil;
            printf("Masukkan nilai A : ");
            scanf("%d", &a);
            printf("\n");
            printf("Masukkan nilai B : ");
            scanf("%d", &b);
            printf("\n");
            printf("Masukkan nilai C : ");
            scanf("%d", &c);
            printf("\n");
            hasil = a*b*c;
            printf("hasil dari a x b x c = %d",hasil);
}


Implementasi nomor 5 :
Rata-rata 5 bilangan
#include <stdio.h>
main()
{
            int a,b,c,d,e;
            float hasil;
            printf("Masukkan nilai A : ");
            scanf("%d", &a);
            printf("\nMasukkan nilai B : ");
            scanf("%d", &b);
            printf("\nMasukkan nilai C : ");
            scanf("%d", &c);
            printf("\nMasukkan nilai D : ");
            scanf("%d", &d);
            printf("\nMasukkan nilai E : ");
            scanf("%d", &e);
            hasil = (a+b+c+d+e) / 5;
            printf("hasil rata-rata dari kelima bilangan tersebut adalah %f",hasil);
}



Sumber Referensi :
https://dochot.net/document/penulisan-algoritma-dengan-pseudocode 



Sekian postingan saya kali ini mengenai Struktur Penulisan Algoritma Dengan Pseudocode dan Contoh Programnya. Terima kasih dan Semoga bermanfaat.

Wassalamu’alaikum Wr Wb

0 Komentar untuk "Struktur Penulisan Algoritma Dengan Pseudocode dan Contoh Programnya"

Silahkan berkomentar sesuai artikel

 
Template By Kunci Dunia
Back To Top