Logika dan Algoritma Job 2
Transcript of Logika dan Algoritma Job 2
LAPORAN PRAKTIKUM
PSEUDOCODE
Oleh:
Dwi Wuri Mud’mainah (3.34.13.1.06)
IK-1B
PROGRAM STUDI TEKNIK INFORMATIKA
JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI SEMARANG
2013
I. TUJUAN
1. Mengetahui dan menjelaskan struktur algoritma dengan
pseudocode.
2. Membuat algoritma berupa pseudocode, yang melibatkan
permasalahan-permasalahan sederhana.
II. ALAT DAN BAHAN
PC minimal P-3 400 Mhz
Min Win98, Microsoft Word
III. DASAR TEORI
1. Pendahuluan
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
Dwi Wuri Mud’mainah Page |
Setiap Algoritma akan selalu terdiri dari tiga
bagian yaitu :
Judul (Header)
Kamus ( Deklarasi )
Algoritma ( Deskripsi )
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
Dwi Wuri Mud’mainah Page |
{ 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 }
Dwi Wuri Mud’mainah Page |
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
Dwi Wuri Mud’mainah Page |
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{Nama konstanta, harus menyebutkan type dan
nilai }constant phi : real = 3,14159constant nama : string = “Alex”constant benar : boolean = true{Nama Informasi, menyebutkan type}x,y : integer {suatu nilai yang bertype bilanganNMax : real {nilai maksimum yang bertype bilanganNama : string {suatu nilai yang merupakan kumpulanP : point {suatu nilai pada bidang kartesian}Cari : Boolean {suatu nilai logika}
Algoritma (Deskripsi)
Dwi Wuri Mud’mainah Page |
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 nilaiElseintMaks ← intD {intMaks di assignment oleh nilaioutput (intMaks) {hasil keluaran berupa bilangan
Catatan :
Untuk kata-kata input, output, if then else, output akan
dipelajari lebih mendalam dalam
Dwi Wuri Mud’mainah Page |
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 dariKamus (Deklarasi)Var intMaks, intC, intD : integer
{menentukan tipe variabel berupa bilangan bulatAlgoritma ( Deskripsi )
input (intC,intD) {menerima masukan 2 bilangan intCif intC > intD then {operasi kondisional}intMaks ← intC {intMaks di assignment oleh nilaiElseintMaks ← intD {intMaks di assignment oleh nilaioutput (intMaks) {hasil keluaran berupa bilangan
IV. LANGKAH KERJA
1. Hidupkan komputer anda !
2. Jalankan Microsoft Word, dengan cara menekan tombol
StartProgramMS Office
2007Microsoft Word. Selanjutnya tuliskan algoritma dari
permasalahan berikut ini :
3. Buatlah algoritma dengan bentuk penulisan pseudocode
untuk proses menghitung luas lingkaran pada bagian
lembar Microsoft Word, kemudian simpan hasil kerja
anda ke dalam hardisk atau disket data dengan nama
Dwi Wuri Mud’mainah Page |
file : Pseudocode
Algoritma Luas_Lingkaran
{ Menghitung luas lingkaran dengan menginputkan jari_jari dan
menampilkan hasilnya }
Kamus
Var jari_jari,luas : integer
Var phi = 3.14 : const float
Algoritma
input (jari_jari) {menginputkan nilai integer untuk variable
jari_jari}
luas phi * jari_jari * jari_jari {menghitung luas dengan←
mengkalikan phi dan jari_jari}
output (luas) {mencetak luas}
4. Buatlah algoritma dengan bentuk penulisan
pseudocode untuk proses menghitung keliling lingkaran
pada bagian lembar berikutnya dari program Microsoft
Word, kemudian simpan hasil kerja anda ke dalam hardisk
atau disket data anda dengan nama file yang sama
seperti langkah ketiga.
Algoritma Keliling_Lingkaran
{ Menghitung keliling lingkaran dengan menginputkan diameter
dan menampilkan hasilnya }
Kamus
Dwi Wuri Mud’mainah Page |
Var diameter,keliling : float
Var 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}
5. Buatlah algoritma dengan bentuk penulisan pseudocode
untuk proses menghitung luas segitiga pada bagian
lembar berikutnya dari program Microsoft Word, kemudian
simpan hasil kerja anda ke dalam hardisk atau disket
data anda dengan nama file yang sama seperti langkah
ketiga.
Algoritma Luas_Segitiga
{ Menghitung luas segitiga dengan meninputkan alas dan tinggi,
kemudian mengkalikan bilangan tersebut, dan menampilkan
hasil. }
Kamus
Var alas, tinggi, luas : integer
Algoritma
input (alas, tinggi) {menginputkan nilai untuk variable alas dan
tinggi}
luas alas * tinggi / 2 {menghitung luas dengan mengkalikan←
alas dan tinggi kemudian dibagi 2}
Dwi Wuri Mud’mainah Page | 10
output (luas) {mencetak luas}
6. 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 Luas_Segitiga
{ Menghitung luas segitiga dengan menginputkan sisi-sisinya}
Kamus
Dwi Wuri Mud’mainah Page | 11
sisiA
sisiC
sisiB
luas, 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 (luas)
7. Cobalah anda implementasikan permasalahan nomor 3, 4,
5, dan 6 ke dalam bentuk program dengan menggunakan
bahasa pemrograman Pascal.
Nomor 3#include <stdio.h>main(){
float luas,phi,jari_jari;phi = 3.14;printf("Masukan nilai jari-jari : ");scanf("%f",&jari_jari);luas = phi * (jari_jari * jari_jari);printf("\n");printf("Dengan jari-jari %f, maka luas lingkaran :
%f",jari_jari,luas);}
Nomor 4#include <stdio.h>main(){
float k,d,phi;
phi = 3.14;printf("Masukan nilai diameter : ");scanf("%f",&d);printf("\n");k = phi * d;printf("Dengan diameter %f, maka keliling lingkaran :
Dwi Wuri Mud’mainah Page | 12
%f",d,k);}
Nomor 5#include <stdio.h>main(){
int l,a,t;
printf("Masukan nilai alas : ");scanf("%d",&a);printf("\n");printf("Masukan nilai tinggi : ");scanf("%d",&t);printf("\n");l = a * t/2;printf("Alas : %d\nTinggi : %d\nLuas : %d",a,t,l);
}
Nomor 6#include <stdio.h>#include <math.h>main(){
int a, b, c, S, luas;printf("Masukan nilai Sisi A : ");scanf("%d", &a);printf("\n");printf("Masukan nilai Sisi B : ");scanf("%d", &b);
printf("\n");printf("Masukan nilai Sisi C : ");scanf("%d", &c);S = 0.5 * (a + b + c);luas = sqrt(S * (S-a) * (S-b) * (S-c));printf("\n Luas segitiga : %d", luas);
}
V. PERTANYAAN / SOAL
1. Apakah kelebihan dan kekurangan dalam penuliskan
Dwi Wuri Mud’mainah Page | 13
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
Dwi Wuri Mud’mainah Page | 14
{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 penjumlah_dua_bilangan
{Menginputkan dua bilangan, kemudian menjumlahkan,
dan mengkuadratkan hasil dari penjumlahan
tersebut.}
Kamus
Dwi Wuri Mud’mainah Page | 15
a, b : integer
Algoritma
input (a,b)
hasil ← a + b
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_bilangan
{Menginputkan tiga bilangan, kemudian mengkalikan
tiga bilangan tersebut, menampilkan hasilnya.}
Kamus
a, b, c : integer
Algoritma
input (a,b,c)
hasil ← a * b * c
output (hasil)
5. Gambarlah sebuah flowchart yang menerima lima buah
bilangan dan menampilkan rata- rata dari kelima
Dwi Wuri Mud’mainah Page | 16
bilangan tersebut!
6. Cobalah anda implementasikan permasalahan nomor 2, 3,
4, dan 5 ke dalam bentuk program dengan menggunakan
bahasa pemrograman Pascal/C.
Implementasi I – Decreament
Source code :
Tampilan program :
Dwi Wuri Mud’mainah Page | 17
Implementasi II – Menjumlahkan dan mengkuadratkan dua
bilangan
Source code :
Tampilan program :
Implementasi III – Perkalian tiga bilangan
Source code :
Dwi Wuri Mud’mainah Page | 18
Tampilan program :
Implementasi IV – Rata – rata lima bilangan
Source code :
Dwi Wuri Mud’mainah Page | 19
Tampilan program :
7. Berikanlah kesimpulan dari praktik yang anda lakukan
di jobsheet ketiga ini
Dwi Wuri Mud’mainah Page | 20
Dengan membuat algoritma menggunakan pseudocode,
semakin mudah untuk diterjemahkan ke bahasa
pemrogramman, karena pseudocode lebih seperti kode
pemrograman yang asli. Sehingga mudah dikonversi.