• Tidak ada hasil yang ditemukan

Pemrograman Struktural SI

N/A
N/A
Protected

Academic year: 2017

Membagikan "Pemrograman Struktural SI"

Copied!
12
0
0

Teks penuh

(1)

BAHAN AJAR

PEMROGRAMAN STRUKTURAL

KODE MATA KULIAH : SEMESTER : 2

SKS : 3 SKS

DOSEN PENGAMPU : Eko Riswanto, S.T., M.Cs

PROGRAM STUDI SISTEM INFORMASI

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN ILMU KOMPUTER EL RAHMA

(2)

BAB 1

KONSEP PEMROGRAMAN TERSTRUKTUR

Pemrograman Terstruktur merupakan suatu tindakan untuk membuat program yang berisi

instruksi-instruksi dalam bahasa komputer yang disusun secara logis dan sistematis supaya mudah dimengerti,

mudah dites, dan mudah dimodifikasi.

Pemrograman terstruktur adalah bahasa pemrograman yang mendukung pembuatan program sebagai

kumpulan prosedur. Prosedur-prosedur ini dapat saling memanggil dan dipanggil dari manapun dalam

program dan dapat mengunakan parameter yang berbeda-beda untuk setiap pemanggilan. Bahasa

pemrograman terstruktur adalah pemrograman yang mendukung abstraksi data, pengkodean

terstruktur dan kontrol program terstruktur. Sedangkan Prosedur adalah bagian dari program untuk

melakukan operasi-operasi yang sudah ditentukan dengan menggunakan parameter tertentu.

Sejarah Metodologi Pemrograman

Pemrograman terstruktur pertama kali diungkapkan oleh Prof Edsger Djikstra dari Universitas

Eindhoven sekitar tahun 1965. Dalam papernya, Djikstra mengusulkan peniadaan perintah GOTO

pada pemrograman terstruktur. Berbeda dengan pendapat HD Millis yang mengungkapkan bahwa

pemrograman terstruktur tidak tergantung pada ada tidaknya GOTO tetapi lebih pada struktur program

itu sendiri. Dari pernyataan keduanya, memberikan gambaran tidak adanya definisi yang jelas untuk

pemrograman terstruktur. Tetapi dapat digaris bawahi bahwa pemrograman terstruktur merupakan

suatu proses untuk mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah dalam

bentuk program.

Alasan Pemrograman Terstruktur ialah

1. Krisis metode pengembangan

2. Kemampuan tenaga programmer tertinggal

3. Sulitnya modifikasi program jika ada kesalahan atau perubahan

4. Sulitnya modifikasi kode program karena tidak terstruktur dengan baik

Manfaat Pemrograman Terstruktur

(3)

2. Dapat menghindari konflik internal team

3. Membagi kerja team berdasarkan modul-modul program yang sudah dirancang

4. kemajuan pengerjaan sistem dapat dimonitor dan dikaji

Ciri – ciri Program Terstruktur (Good Program)

1. Run correctly (program handal)

2. Run efficiently (program menjadi sederhana / tidak rumit)

3. Be easy to read and understand (mudah dibaca dan ditelusuri)

4. Be easy to debug (program mudah ditelusuri kesalahannya)

5. Be easy to modify (program mudah dimodifikasi)

Tujuan dari pemrograman terstruktur adalah

1. Meningkatkan kehandalan suatu progam,

2. Program mudah dibaca dan ditelusuri,

3. Menyederhanakan kerumitan program,

4. Pemeliharaan program, dan

5. Peningkatkan produktivitas pemrograman.

Pemrograman terstruktur bercirikan:

1. mengandung teknik pemecahan yang tepat dan benar,

2. memiliki algoritma pemecahan masalah yang sederhana, standar dan efektif,

3. memiliki struktur logika yang benar dan mudah dipahami,

4. terdiri dari 3 struktur dasar yaitu urutan, seleksi dan perulangan,

5. menghindari penggunaan GOTO,

6. biaya pengujian rendah, Source Program penterjemah Machine Languages Komputer dan

Pemrograman

7. memiliki dokumentasi yang baik,

(4)

BAB 2

ARRAY DALAM PASCAL

Array (larik) adalah sebuah variable yang dapat menyimpan lebih dari satu nilai sejenis (memiliki

tipe data yang sama). Hal ini tentu berbeda dengan variable biasa yang hanya mampu menampung satu buah nilai. Setiap nilai yang disimpan di dalam array di sebut dengan elemen array, sedangkan nilai urut yang digunakan untuk mengakses elemennya disebut dengan indeks array.

Deklarasi Array

Sama seperti variable lain, array juga dideklarasikan di dalam bagian deklarasi variable. Bila akan didefinisikan sebagai tipe bentukan, maka array juga akan dideklarasikan dibagian definisi tipe (dibawah kata kunci tipe). Dalam bahasa pascal, pendeklaraasian array dilakukan dengan menggunakan kata kunci array dan tipe data yang akan disimpan di dalamnya, selain itu juga harus disertai dengan batas-batas indeksnya yang diapit oleh tanda bracket([]). Berikut ini bentuk umum pendeklarasiannya.

NamaArray : array [IndeksArray..IndeksAkhir] of tipe_data;

Sebagai contoh, apabila kita ingin mendeklarasikan array dengan nama A yang berisi 10 buah elemen bertipe integer, maka kita harus mendeklarasikannya dengan cara berikut.

Var

A : array [1..10] of integer;

Pada kode tersebut, indeks awal dimulai dari satu. Perlu diperhatikan bahwa bahasa pascal berbeda dengan bahasa C yang indeks array-nya selalu dimulai dari nol. Pada bahasa pascal, indeks array dapat dimulai dari bilangan berapapun. Selain itu, indeks array juga dapat bertipe karakter maupun tipe enumerasi. Berikut ini contoh-contoh kode yang dapat digunakan untuk mendeklarasikan 10 buah elemen array bertipe integer sebagai pengganti kode diatas.

Var

A1: array[0..9] of integer; A2: array[5..15] of integer;

A3: array[‘a’..’j’] of integer; A4: array[‘A’..’J’] of integer;

Mengakses Elemen Array

Cara untuk memanipulasi array, langkah pertama yang harus dilakukan adalah mengisikan nilai ke dalam elemen-elemen array bersangkutan. Adapun bentuk umum untuk pengisian eleman array adalah sebagai berikut.

NamaArray[indeks]:= nilai;

Untuk lebih memahaminya, coba anda perhatikan terlebih dahulu contoh kode di bawah ini.

Var

(5)

A[1]:= 1; {mengisi elemen pertama dengan nilai 1} A[2]:= 2; {mengisi elemen kedua dengan nilai 2} A[3]:= 3; {mengisi elemen ketiga dengan nilai 3}

……

A[100]:= 100; {mengisi elemen keseratus dengan nilai 100} End.

Kode tersebut akan melakukan pengisian 100 elemen array dengan nilai 1 sampai 100 sehingga kode tersebut akan lebih sederhana apabila dituliskan dengan menggunakan struktur pengulangan seperti yang terlihat pada kode berikut.

Program InputArrayDgFor; uses wincrt;

Var

A: array[1..100] of integer; i,jml: integer;

Begin

write('Jumlah data : ');readln(jml); for i:=1 to jml do

readln(A[i]);

{Menampilkan hasil input} for i:=1 to jml do

write(A[i],' '); End.

Mengapa Harus Menggunakan Array

Mungkin anda yang merupakan pemula akan bertanya mengapa kita perlu untuk mendeklarasikan array? untuk menjawab pertanyaan tersebut, coba Anda perhatikan dulu contoh kasus berikut. Apabila kita akan membuat program untuk menyimpan sekumpulan data, misalnya data-data hasil penelitian yang berupa bilangan, dimana jumlah dari data tersebut puluhan, ratusan, atau bahkan ribuan, apakah anda akan menggunakan variable sebanyak data yang ada? Jawabanya tentu tidak, karena hal tersebut merupakan hal yang sangat tidak efisien. Sebagai contoh, asumsikan bahwa banyak data tersebut adalah sepuluh, maka apabila kita menggunakan variabel biasa tentu kita akan menuliskannya melalui contoh kode berikut.

Var

N1, n2, n3, n4, n5, n6, n7, n8, n9, n10: real; Begin

Writeln(‘masukkan data ke-1 : ‘); readln(n1);

Writeln(‘masukkan data ke-2 : ‘); readln(n2) ;

Writeln(‘masukkan data ke-3 : ‘); readln(n3) ;

Writeln(‘masukkan data ke-4 : ‘); readln(n4) ;

Writeln(‘masukkan data ke-5 : ‘); readln(n5) ;

Writeln(‘masukkan data ke-6 : ‘); readln(n6);

Writeln(‘masukkan data ke-7 : ‘); readln(n7);

(6)

Writeln(‘masukkan data ke-9 : ‘); readln(n9);

Writeln(‘masukkan data ke-10 : ‘); readln(n10); End.

Hal ini tentu akan merepotkan diri kita. Apabila dilihat, program di atas memang masih pendek karena datanya hanya sepuluh, bagaimana bila ratusan atau bahkan ribuan?

Untuk mengatasi masalah ini, seharusnya kita menggunakan array untuk menyimpan data-data tersebut sehingga program akan jauh lebih sederhana dan mudah dalam pengerjaannya. Berikut iini perbaikan program diataas apabila kita menampung data-datanya kedalam sebuah array..

Const max= 10;

N: array[1..max] of real; I: integer;

Begin

For i:=1 to max do

Writeln(‘masukkan data ke-‘, I,’ : ‘); readln(n[i]); End.

Apabila ternyata data berjumlah 100 atau 1000, maka anda hanya perlu mengganti nilai dari konstanta max di atas dengan nilai yang sesuai. Alasan seperti inilah yang menyebabkan kita perlu menggunakan array.

contoh program mencari rata-rata dengan array:

Program rata2; writeln('***program untuk mencari rata-rata ***'); writeln('**************************************'); writeln;

(7)

writeln('Rata-rata = ',rata:9:2); writeln('---');

readln; end.

Contoh program mencari maksimum dan minimum dengan array :

Program MakMinRandom;

writeln('***program untuk mencari Maksimum, Minimum dengan Bilangan Random ***');

writeln('************************************************************ *********');

writeln;

write('Masukkan jumlah data yang di masukkan: '); readln(n); writeln;

Contoh program mengurutkan bilangan dalam array dengan metode buble sort.

Program Pengurutan; uses wincrt;

(8)

var

nilai : array[1..max] of integer; n, i, j, tamp : integer;

begin

writeln('*********************WELCOME***********************'); writeln('***program mengurutkan dengan metode buble sort ***'); writeln('***************************************************'); writeln;

write('Masukkan jumlah data yang di masukkan: '); readln(n); writeln;

for i:=1 to n do begin

nilai[i]:=random(100); end;

writeln('Data sebelum diurutkan'); for i:=1 to n do

write(nilai[i],' '); writeln;

{***proses pengurutan***} for i:=1 to n-1 do

for j:=i+1 to n do

if nilai[i]>nilai[j] then begin

tamp := nilai[i]; nilai[i]:=nilai[j]; nilai[j]:=tamp end;

writeln('Data sebelum diurutkan'); for i:=1 to n do

write(nilai[i],' '); readln;

(9)

Array Dimensi Dua

Array dimensi dua adalah array yang memilih dua nomor indeks yang biasa disebut indek baris dan indeks kolom.

Deklarasi Array

NamaArray : array [IndekBrs..IndeksBrs, IndeksKlm..IndeksKlm] of tipe_data;

Sebagai contoh, apabila kita ingin mendeklarasikan array dengan nama A yang berisi 10 buah elemen baris dan 10 elemen kolom bertipe integer, maka kita harus mendeklarasikannya dengan cara berikut.

Var

A : array [1..10,1..10] of integer;

Mengakses Elemen Array

Cara untuk memanipulasi array, langkah pertama yang harus dilakukan adalah menyebutkan nama array diikuti oleh nomor baris dan nomor kolomnya. Adapun bentuk umum untuk pengisian eleman array dimensi dua adalah sebagai berikut.

NamaArray[IndeksBrs,IndeksKlm]:= nilai;

Contoh Program :

Program IsiMatrik; uses wincrt;

Var

matrik : array[1..10,1..10] of integer; Begin

matrik[1,1]:=10; matrik[1,2]:=70; matrik[4,5]:=50; writeln(matrik[1,1]); writeln(matrik[1,2]); writeln(matrik[4,5]); readln;

End.

Memasukkan Elemen Array dengan Perulangan For

Untuk memudahkan permasukkan data dalam matrik dapat digunakan dengan menggunakan perulangan for.

Contoh program memasukkan data matrik dengan for

Program InputMatrikDgFor; uses wincrt;

Var

matrik: array[1..10,1..10] of integer; i,j,brs,klm: integer;

Begin

(10)

write('Jumlah kolom : ');readln(klm); for i:=1 to brs do

for j:=1 to klm do

matrik[i,j] := random(10);

{Menampilkan hasil input matrik} for i:=1 to brs do

begin

for j:=1 to klm do

write(matrik[i,j]:5); writeln

end; readln; end.

Program penjumlahan dua matrik :

Syarat penjumlahan dua matrik adalah bahwa kedua matrik harus memiliki jumlah baris dan kolom yang sama.

Program PenjumlahanDuaMatrik; uses wincrt;

const

mak = 50; Var

matrikA, matrikB, matrikC : array[1..mak,1..mak] of integer; i,j,brs,klm: integer;

Begin

write('Jumlah baris : ');readln(brs); write('Jumlah kolom : ');readln(klm); {Isi matrik A}

for i:=1 to brs do for j:=1 to klm do

matrikA[i,j] := random(10); {Isi matrik B}

for i:=1 to brs do for j:=1 to klm do

matrikB[i,j] := random(10); {Menampilkan hasil input matrik} writeln('Isi Matrik A');

for i:=1 to brs do begin

for j:=1 to klm do

(11)

writeln end;

writeln('Isi Matrik B'); for i:=1 to brs do

begin

for j:=1 to klm do

write(matrikB[i,j]:5); writeln

end;

{Penjumlah dua matrik} for i:=1 to brs do for j:=1 to klm do

matrikC[i,j]:=matrikA[i,j]+matrikB[i,j]; writeln('Isi Matrik C');

for i:=1 to brs do begin

for j:=1 to klm do

write(matrikC[i,j]:5); writeln

end; readln; end.

Program perkalian dua matrik :

Syarat perkalian dua matrik adalah jumlah baris matrik kedua sama dengan jumlah kolom matrik pertama.

Program PekalianDuaMatrik; uses wincrt;

const

mak = 50; Var

matrikA, matrikB, matrikC : array[1..mak,1..mak] of integer; i,j,k,brsA,klmAbrsB, klmB : integer;

Begin

write('Jumlah baris matrik A : ');readln(brsA); write('Jumlah kolom matrik A : ');readln(klmAbrsB); write('Jumlah kolom matrik B : ');readln(klmB);

{Isi matrik A} for i:=1 to brsA do for j:=1 to klmAbrsB do

matrikA[i,j] := random(10); {Isi matrik B}

(12)

for j:=1 to klmB do

matrikB[i,j] := random(10); {Menampilkan hasil input matrik} writeln('Isi Matrik A');

for i:=1 to brsA do begin

for j:=1 to klmAbrsB do write(matrikA[i,j]:5); writeln

end;

writeln('Isi Matrik B'); for i:=1 to klmAbrsB do begin

for j:=1 to klmB do

write(matrikB[i,j]:5); writeln

end;

{Perkalian dua matrik} for i:=1 to brsA do for j:=1 to klmB do begin

matrikC[i,j]:=0;

for k:=1 to klmAbrsB do

matrikC[i,j]:=matrikC[i,j]+matrikA[i,k]*matrikB[k,j]; end;

writeln('Isi Matrik C'); for i:=1 to brsA do begin

for j:=1 to klmB do

write(matrikC[i,j]:5); writeln

Referensi

Dokumen terkait

pembudidaya di kelurahan Meruya Selatan atau tepatnya di kawasan Kayon, dengan bapak H.Gupron,…..saya mulai usaha penjualan dan budidaya sejak tahun 1980 sebelum dibangunnya

Berdasarkan pengertian dan unsur-unsur citizen jurnalims di atas dapat disimpulkan bahwa media massa sebagai salah satu sarana untuk mendapatkan informasi bagi

membuncah di dalam diri annabeth. Dibendungnya perasaan itu dengan paksa. Dia tidak boleh bersikap emosional. Iku anak Athena, kata Annabeth kepada dirinya sendiri. Aku

Hal tersebut menunjukkan bahwa dengan adanya penilaian dari wajib pajak yang dikenai pajak penghasilan (PPh) sesuai dengan ketentuan dalam PP Nomor 46 tahun 2013 terkait

Pertumbuhan : Merupakan tanaman vigor, type semi determinate,toleran layu bakteri dan cocok didataran rendah dan tinggi.. Cabai

Double pressing menggunakan tekanan pertama 30-35 bar dan pada pengempaan kedua tekanan 40-50 bar. Untuk menurunkan kadar minyak dalam ampas tekanan lawan dinaikan

-waham kejar : kepercayaan yang salah pada seseorang yang merasa dirinya dilecehkan, dicurangi, atau dikejar; sering ditemukan pada pasien dengan kasus hukum yang

Kader dapat dibentuk dengan cara memberikan pendidikan lingkungan sejak dini, anak usia sekolah dasar adalah subyek yang selalu ingin tahu, mudah ikut arus, dan semangat yang besar