Anda di halaman 1dari 16

MODUL 3

PROGRAM TERSTRUKTUR
3. Struktur Pemrograman
Pada praktikum 1 dan 2, telah dipelajari tentang teknik penulisan program Scilab yang
berupa script maupun fungsi dengan bantuan editor Scilab (Scinotes). Penulisan
program dengan cara tersebut menjadi sangat efektif jika program yang ditulis sudah
mulai kompleks. Dengan menggunakan script serta fungsi, pemrogram dapat
menyelesaikan penulisan program lebih dahulu, baru kemudian mengeksekusi setiap
baris program tersebut dan menganalisisnya.
Tingkat kompleksitas suatu program dapat diukur dari strukturnya. Semakin banyak
kombinasi struktur pada program, maka semakin tinggi kompleksitasnya. Pada
umumnya, kompleksitas suatu program menggambarkan tingkat kompleksitas dari
kasus yang harus diselesaikan oleh program tersebut.
Secara garis besar, struktur program dikelompokkan menjadi tiga struktur utama yaitu
Struktur berurutan
Struktur percabangan
Struktur pengulangan
3.1. Struktur Berurutan
Tabel 3.1. Struktur Berurutan
Format Diagram Alir

Mulai
perintah ke 1
perintah ke 2
perintah ke 3
perintah ke ...n
Selesai


Struktur ini menunjukkan bahwa mesin komputer mengeksekusi baris-baris program
dilakukan secara berurutan. Hampir seluruh program pasti mengandung struktur ini
meskipun dengan bahasa pemrograman yang berbeda. Hal ini juga berlaku untuk
Scilab.
Pada umumnya, model struktur berurutan ditampilkan melalui diagram alir (flow chart)
seperti pada Tabel 3.1. Berhubung struktur ini telah digunakan pada praktikum 1 dan
2, maka contoh program dengan struktur berurutan tidak diberikan lagi pada
praktikum ini.
3.2. Struktur Pencabangan
Ketika membuat suatu program, dapat terjadi situasi di mana eksekusi program
menghadapi pencabangan. Itu artinya data yang diolah program dapat mengalami
kondisi yang berbeda, dan karenanya akan menempuh cabang program pengolahan
data yang berbeda pula. Karena itu, diperlukan sistem pemilihan cabang yang sesuai
dengan kondisi yang dihadapi oleh program. Untuk mengakomodasi keperluan
tersebut, Scilab menyediakan fasilitas untuk penyataan kondisi data, serta struktur
pencabangan if-else dan if-elseif-else.
3.2.1. Pernyataan Kondisi
Percabangan dalam alur eksekusi program terjadi karena data memenuhi kondisi
tertentu. Dalam Scilab, kondisi tersebut dinyatakan dengan menggunakan operator-
operator logika seperti yang ditulis pada Tabel 3.2.
Tabel 3.2. Jenis-Jenis Operator Logika
Operasi Arti Contoh Pemakaian
== sama dengan X == 0
~= tidak sama dengant X ~= m
< lebih kecil dari X < 0
> lebih besar dari X > t
<= lebih kecil atau sama dengan X <= 9.7
>= lebih besar atau sama dengan X >= 0
~ not / negasi / bukan ~X
& and / dan X & Y
| or / atau X | Y
Status logika data yang memenuhi kondisi yang disyaratkan adalah true (benar). Pada
Scilab, lambang status logika ini adalah T. Sebaliknya bila data tersebut tidak
memenuhi kondisi yang disyaratkan, maka status logikanya adalah false (salah), dan
lambangnya adalah F.
Untuk memahaminya gunakan jendela kerja Scilab untuk menjalankan operasi-operasi
logika pada Tabel 3.3.. Catat dan analisis hasilnya pada Tabel 3.3. Gunakan juga Tabel
Kebenaran pada Tabel 3.4 untuk membantu analisis tersebut.
Tabel 3.3. Operasi Logika
No Prosedur Hasil Analisis
1 -->a = -1;
-->b = 2;

2 -->a*b>0
3 -->b <= 2
4 -->(a > 1)
5 -->~(a > 1)
5 -->(a > 1) & (b<=2)
6 -->(a > 1) | (b<=2)

Tabel 3.4. Tabel Kebenaran
X Y ~X X&Y XY
True True False True True
True False False False True
False True True False True
False False True False Talse
3.2.2. Percabangan1: 'If-Else'
Percabangan ini digunakan untuk mengeksekusi suatu perintah apabila suatu kondisi
dipenuhi. Jika kondisi tersebut tidak dipenuhi, perintah lainlah yang dieksekusi. Format
penulisan umum pada Scilab serta diagram alir struktur ini ditunjukkan pada Tabel 3.5.
Tabel 3.5. Struktur Pencabangan If - Else
Format Diagram Alir

Mulai
perintah1
if kondisi then
perintah2
else
perintah3
end
Selesai

*kondisi = ekspresi logika yang nilainya benar atau salah.
Untuk memahami penggunaan struktur ini dalam Scilab, buatlah fungsi menggunakan
Scinotes seperti pada Contoh 3.1.
Contoh 3.1. Percabangan1: If-Else

// Contoh 3.1 Praktikum Pemrograman Terstruktur
// TF - 2202 Teknik Komputasi
// Oleh : ......
// NIM : ........
function fungsiPenilai(nilai)
if nilai > 60 then
printf(Anda lulus dengan nilai %.2f,nilai);
else
printf(Anda tidak lulus);
end
endfunction
Selanjutnya, jalankan perintah Execute agar fungsi tersebut agar bisa dikenali pada
jendela kerja Scilab. Kemudian, jalankan fungsi tersebut pada jendela kerja sesuai
Tabel 3.6 serta catat hasilnya.
Tabel 3.6. Hasil Fungsi Contoh 3.1
No Prosedur Hasil
1 -->fungsiPenilai(70)
2 -->fungsiPenilai(40)
Tulislah analisis jalannya fungsi ini pada Tabel 3.7. Untuk membantu analisis,
perhatikan diagram alir program tersebut pada Gambar 3.1.

Gambar 3.1. Diagram Alir Program Contoh 3.1


Tabel 3.7. Analisis Fungsi Contoh 3.1

3.2.3. Percabangan3: If-Elseif-Else
Sejauh ini percabangan yang dicoba hanya terdiri dari dua percabangan. Sekarang
saatnya untuk mempelajari kasus yang lebih kompleks, yaitu kasus percabangan yang
lebih dari dua. Format yang digunakan dan bentuk diagram alirnya ditunjukkan pada
Tabel 3.8.
Tabel 3.8. Struktur Pencabangan If Elseif - Else
Format

Mulai program
perintah1
if kondisi1 then
perintah2
elseif kondisi2 then


perintah3
elseif kondisi3 then
perintah4
else
perintah5
end






Diagram Alir

Untuk memahaminya, tulislah progam Contoh 3.2 pada Scinotes.
Contoh 3.2. Percabangan3: If-Elseif-Else

// Contoh 3.3
// Praktikum Pemrograman Terstruktur
// TF - 2202 Teknik Komputasi
// Oleh : ......
// NIM : ........
function kelas=klasifikasiAngka(x)
clc;
if x<=-4 then
kelas = 1;


elseif x>-4 & x<=0 then
kelas = 2;
elseif x>0 & x<=4 then
kelas = 3;
else
kelas = 4; end
printf(Kelas angka: %d \n,kelas);
endfunction

Selanjutnya jalankan perintah Execute agar fungsi tersebut agar bisa dikenali dan pada
jendela kerja Scilab. Kemudian, jalankan fungsi tersebut pada jendela kerja sesuai
Tabel 3.9 Catat hasilnya, kemudian buatlah diagram alir program dan analisislah
jalannya program tersebut pada Tabel 3.10.

Tabel 3.9. Hasil Program Contoh 3.2
No Prosedur Hasil
1 --> klasifikasiAngka (-10)
2 --> klasifikasiAngka (-1)
3 --> klasifikasiAngka (2)
4 --> klasifikasiAngka (5)
Tabel 3.10. Diagram Alir dan Analisis Program Contoh 3.2

3.3. Struktur Pengulangan
Setelah memahami struktur percabangan, sekarang saatnya mempelajari struktur
pengulangan. Dalam membuat program, sering kali diinginkan eksekusi suatu baris
program diulang beberapa kali. Namun, sangat tidak praktis jika untuk keperluan itu
dibuat program yang berisi barisan perintah yang berulang-ulang. Perhatikan program
pada Contoh 3.3
Contoh 3.3. Program dengan Perintah yang Berulang-Ulang

Pada program di atas, ditulis perintah 'printf (Hello World\n)' sebanyak tiga kali.
Pengulangan sebanyak ini belum jadi masalah dalam sebuah rangkaian program.
Namun kondisi ini akan berbeda jika harus menampilkan 'Hello World' sebanyak 10
kali, 100, atau 1000 kali. Tentu saja akan merepotkan jika kita harus mengulang baris
tersebut sebanyak yang diminta.
Oleh karena itu, Scilab menyediakan metode pengulangan (looping). Untuk melakukan
pengulangan, Scilab menyediakan dua cara yaitu, for-end dan while-end.
3.3.1. Pengulangan1: For End
Apabila diinginkan pengulangan terhadap beberapa perintah dan jumlah pengulangan
tersebut bernilai tetap, maka metode yang paling tepat adalah dengan menggunakan
for-end. Format pemakaian dan bentuk diagram alirnya ditunjukkan pada Tabel 3.11.
Diagram alir dan format pada Tabel 3.11 menunjukkan bahwa 'perintah2' dan
'perintah3' dieksekusi berulang sampai nilai indeks melewati batas nilai 'akhir'. Pada
setiap perulangan, maka nilai 'indeks' akan bertambah sebesar nilai 'delta'. Untuk
memahaminya, tulislah progam Contoh 3.4 pada Scinotes.
Selanjutnya Execute dan jalankan fungsi tersebut pada jendela kerja. Catat hasilnya,
kemudian buatlah diagram alir program dan analisislah jalannya program tersebut
pada Tabel 3.12.




//File: tulisHelloWorld.sce
clc; clear;
printf(Hello World \n);
printf(Hello World \n);
printf(Hello World \n);
Tabel 3.11. Struktur Pengulangan For - End
Format Diagram Alir

Mulai program
Inisialisasi awal, delta, akhir
For indeks = awal:delta:akhir
perintah2
perintah3
end

Contoh 3.4. Struktur Perulangan

// Contoh 3.4
// File : belajarFor.sce
// Praktikum Pemrograman Terstruktur
// TF - 2202 Teknik Komputasi
// Oleh : ......
// NIM : ........
clc;


for i=1:1:5
printf(\n);
printf(Nilai i: %d,i)
end
printf(\n);
for j=10:-1:-2
printf(\n);
printf(Nilai j: %d,j)
end



Tabel 3.12. Diagram Alir dan Analisis Program Contoh 3.4

Selanjutnya, tulislah fungsi Contoh 3.4 pada Scinotes. Fungsi ini menghitung nilai
faktorial suatu angka.
Contoh 3.5. Fungsi Perhitungan Faktorial

// Contoh 3.5
// File : fungsiFaktorial.sci
// Praktikum Pemrograman Terstruktur
// TF - 2202 Teknik Komputasi
// Oleh : ......
// NIM : ........
function hasil=faktorial(x)
x = round(x);
//fungsi untuk pembulatan angka
if x==0 then //kontrol 'jika x=0'
hasil = 1;


elseif x<0 then //kontrol 'jika x<0'
error('Input Angka Tidak bisa negatif');
else
hasil=1;
for indeks=1:1:x
hasil = hasil * indeks;
end
end
endfunction

Selanjutnya Execute dan jalankan fungsi tersebut pada jendela kerja. Catat hasilnya,
kemudian buatlah diagram alir program dan analisislah jalannya program tersebut
pada Tabel 3.13. Berapa struktur yang dapat diidentifikasi pada fungsi ini?
Tabel 3.13. Diagram Alir dan Analisis Program Contoh 3.5

Setelah mempelajari struktur for-end, timbul pertanyaan apa perbedaan penggunaan
struktur tersebut dengan memanggil variabel yang berupa matriks / vektor secara
langsung? Untuk mendapatkan jawabannya, jalankan prosedur pada Tabel 3.14,
kemudian tulis hasil dan analisis perbandingannya.
Tabel 3.14. Perbandingan Struktur For End dengan Teknik Vektorisasi 1
No Prosedur Hasil Analisis
1 t=0:0.02:5;
for i =1:1:length(t)
y(i)=cos(t(i))
end

BANDINGKAN DENGAN
2 t=[0:0.02:5];
y=cos(t)

3.3.2. Pengulangan2: While End
Setelah belajar struktur pengulangan menggunakan for-end, sekarang saatnya
mempelajari struktur pengulangan dengan memanfaatkan metode lainnya, yaitu
while-end. Struktur ini digunakan untuk mengeksekusi blok pernyataan selama suatu
kondisi yang kita tetapkan terus dipenuhi. Jika kondisi tersebut tidak dipenuhi maka
blok pernyataan tidak akan dieksekusi lagi. Format dan diagram alir struktur while-
end ditunjukkan pada Tabel 3.15.
Selanjutnya, tulislah fungsi Contoh 3.6 pada Scinotes. Fungsi ini juga menghitung nilai
faktorial suatu angka, namun menggunakan struktur while-end. Pada saat menulis
fungsi ini, perhatikan perbedaannya dengan fungsi pada Contoh 3.5 yang
menggunakan struktur for end.
Tabel 3.15. Struktur Pengulangan While - End
Format Diagram Alir

Mulai program
Inisialisasi kondisisekarang,
kondisibreak
While kondisisekarang ~=
kondisiakhir
perintah1
update kondisisekarang
end

Contoh 3.6. Fungsi Perhitungan Faktorial dengan Struktur While-End
// Contoh 3.6 fungsiFaktorial2.Sci
// Praktikum Pemrograman Terstruktur
// TF - 2202 Teknik Komputasi
// Oleh : ......
// NIM : ........
clc; clear
function faktor=fungsiFaktorial2(n)
if n==0 then
faktor=1;
elseif n < 0 then
error('Input Angka tidak boleh negatif');

else
i = 1;
faktor = 1;
while(i <= n)
faktor = faktor * i;
i = i+1;
end
end
endfunction
Selanjutnya Execute dan jalankan fungsi tersebut pada jendela kerja. Catat hasilnya,
kemudian buatlah diagram alir program dan analisislah jalannya program tersebut
pada Tabel 3.16. Berapa struktur yang dapat diidentifikasi pada fungsi ini?
Tabel 3.16. Diagram Alir dan Analisis Program Contoh 3.5

3.3.3. Pengulangan3: While Break End
Selama proses pengulangan berlangsung, adakalanya terjadi suatu kondisi khusus
dimana mengharuskan ekesekusi yang masih berlangsung tersebut harus berhenti dan
keluar dari looping saat itu. Hal tersebut dapat dilakukan dengan menyisipkan suatu
percabangan dan pernyataan break di dalam salah satu cabang.
Jika pernyataan break ditemui dalam perulangan, maka proses perulangan akan
berhenti. Pernyataan break dapat digunakan pada semua struktur perulangan
maupun fungsi dalam Scilab. Namun, gunakanlah break untuk hal sangat khusus saja.
Pada keadaan normal, maksimalkan penggunaan struktur pencabangan. Format
penulisan dan diagram alirnya ditunjukkan pada Tabel 3.17.
Tabel 3.17. Struktur Pengulangan While Break - End
Format Diagram Alir

Mulai program
Inisialisasi kondisi sekarang,
kondisiakhir, kondisibreak
While kondisi sekarang ~=
kondisi akhir
perintah1
if kondisibreak then break
end
update kondisi sekarang
end
Mulai
Perintah 1
Selesai
Kondisisekarang ~=
kondisiakhir?
Perintah 2
Inisialisasi
kondisisekarang, kondisiakhir
Update kondisisekarang
ya
ya
Kondisi break ?
ya

Seperti biasa, tulislah fungsi pada Tabel 3.18 pada Scinotes, dan jalankan pada jendela
kerja. Bandingkan hasil kedua fungsi ini dan analisis hasilnya.
Tabel 3.18. Fungsi dengan Struktur While-Break-End
// Contoh 3.6
// File : belajarBreak1.sce
// Praktikum Pemrograman Terstruktur
// TF - 2202 Teknik Komputasi
// Oleh : ......
// NIM : ........
clc;
clear;
x = 25;
while (1)
disp(x);
x = x-5;
if x<0 then
break
end
end
// Contoh 3.7
// File : belajarBreak2.sce
// Praktikum Pemrograman Terstruktur
// TF - 2202 Teknik Komputasi
// Oleh : ......
// NIM : ........
clc;
clear;
x = 25;
while (1)
disp(x);
if x<0 then
break
end
x = x-5;
end
Tabel 3.19. Diagram Alir dan Analisis Program Contoh 3.6 dan 3.7

Anda mungkin juga menyukai