Anda di halaman 1dari 9

[Pertemuan ke-1]

PEMROGRAMAN TERSTRUKTUR

Mata Kuliah : Pemrograman Terstruktur (3 Sks)


Tujuan : Mahasiswa mampu menjelaskan konsep pemrograman
procedural.
Topik : 1. Pengantar Algoritma
2. Paradigma Pemrograman
3. Tipe-tipe Dasar dan bentukan
Dosen Pengampu : Ervi Nurafliyan Susanti, S.T., M.Kom.

A. Pengantar Algoritma

Apa itu Algoritma


Ditinjau dari asal usulnya kata Algoritma sendiri mempunyai sejarah yang aneh. Orang hanya
menemukan kata Algorism yang berarti proses menghitung dengan angka arab. Anda
dikatakan Algorist jika anda menghitung menggunakan Angka Arab. Para ahli bahasa
berusaha menemukan asal kata ini namun hasilnya kurang memuaskan. Akhirnya para ahli
sejarah matematika menemukan asal kata tersebut yang berasal dari nama penulis buku arab
yang terkenal yaitu Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi. Al-Khuwarizmi
dibaca orang barat menjadi Algorism. Al-Khuwarizmi menulis buku yang berjudul Kitab Al
Jabar Wal-Muqabala yang artinya “Buku pemugaran dan pengurangan” (The book of
restoration and reduction), dari judul buku itu kita juga memperoleh akar kata “Aljabar”
(Algebra). Perubahan kata dari Algorism menjadi Algorithm muncul karena kata Algorism
sering dikelirukan dengan Arithmetic, sehingga akhiran –sm berubah menjadi –thm, karena
perhitungan dengan angka Arab sudah menjadi hal yang biasa, maka lambat laun kata
Algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara umum,
sehingga kehilangan makna kata aslinya. Dalam Bahasa Indonesia, kata Algorithm diserap
menjadi Algoritma.

Menurut Kamus Besar Bahasa Indonesia terbitan Balai Pustaka tahun 1988 algoritma
diartikan sebagai urutan logis pengambilan putusan untuk menyelesaikan masalah. Tahun
1950 algoritma sering dihubungkan dengan “algoritma Euclidean” (Euclid’s algorithm) yaitu
proses untuk menemukan pembagi bersama terbesar (common greatest devisor) dari dua
bilangan bulat.

Algoritma Euclidean.
Diberikan dua buah bilangan positif m dan n (dalam hal ini m  n), carilah pembagi
bersama terbesar, pbt, dari kedua bilangan tersebut, yaitu bilangan posistif terbesar yang
habis membagi m dan n.

Definisi Algoritma
“Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara
sistematis dan logis”.

Kata Logis merupakan kata kunci dalam Algoritma. Langkah-langkah dalam Algoritma harus
logis dan harus dapat ditentukan bernilai salah atau benar.
Menurut Donald E. Knuth dalam bukunya yang berjudul The Art of Computer Programming,
algoritma harus mempunyai lima ciri penting berikut:

[ Pemrograman Terstruktur || Ervi Nurafliyan Susanti, S.T., M.Kom. ] Page 1


[Pertemuan ke-1]

1. Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas. Sebagai


contoh dalam algoritma Euclidean diatas, pada langkah E2 jika r = 0, algoritma 0 ,
maka nilai n selalu berkurang sebagai akibat langkah E3. Danberhenti. Jika r E1,
dan pada akhirnya nilai r = 0. Program yang tidak pernah berhenti adalah program
yang berisi algoritma yang salah.
2. Setiap langkah harus didefinisikan dengan tepat dan tidak berarti dua (ambiguous),
pembaca harus mengerti apa itu m dan n adalah bilangan bulat positif, maka setiap
kali E1 dikerjakan maka kita harus menjamin bahwa nilai m dan n selalu positif.
3. Algoritma memiliki nol aatau lebih masukan (input). Masukan ialah besaran yang
diberikan kepada algoritma sebelum algoritma mulai bekerja.
4. Algoritma mempunyai satu atau lebih keluaran (output). Keluaran adalah besaran
yang memiliki hubungan dengan masukan.
5. Algoritma harus sangkil (effective). Setiap langkah harus sederhana sehingga dapat
dikerjakanm dalam waktu yang masuk akal.

B. Paradigma Pemrograman
Paradigma adalah sudut pandang tertentu yang digunakan terhadap suatu problem, realitas,
keadaan dan sebagainya. Paradigma membatasi dan mengkondisikan jalan berpikir
seseorang, mengarahkannya terhadap beberapa atribut dan mengabaikan atribut lain,
sehingga paradigma hanya memberikan pandangan yang terbatas terhadap sebuah realitas.

Dalam pemrograman dikenal beberapa paradigma, yaitu:


1. Paradigma Pemrograman Prosedural atau Imperatif
Paradigma ini didasari oleh konsep mesin Von Newman (stored program concept)
sekelompok tempat penyimpanan (memori), yang dibedakan menjadi memori instruksi dan
memori data, masing-masing memori tersebut dapat diberi nama dan nilai, selanjutnya
instruksi akan dieksekusi satu persatu secara sekuensial oleh sebuah proses tunggal. Program
dalam paradigma ini berdasarkan pada struktur informasi di dalam memori dan manipulasi
dari informasi yang disimpan tersebut. Kata kunci yang sering digunakan dalam paradigma
ini adalah:

Algoritma + Struktur Data = Program

Kelebihan dari paradigma ini adalah efisiensi eksekusi karena lebih dekat dengan konsep
mesin, kekurangannya adalah batasan yang sangat mengikat sehingga terkadang menyulitkan
programmer yang tidak terbiasa.

Contoh bahasa pemrogaman yang menggunakan paradigma prosedural atau imperatif adalah:
Algol, Pascal, Fortran, Basic, Cobol, C, dsb…

2. Paradigma Pemrograman Fungsional


Paradigma ini didasari oleh konsep pemetaan dan fungsi pada matematika, fungsi dapat
berupa fungsi ”primitif”, atau komposisi dari fungsi-fungsi lain yang telah terdefinisi. Dalam
paradigma ini, diasumsikan bahwa akan selalu ada fungsi-fungsi dasar yang dapat digunakan,
sehingga penyelesaian masalah berdasarkan pada fungsi-fungsi yang telah tersedia tersebut.
Jadi dasar pemecahan masalah adalah transformasional, semua kelakuan program adalah
suatu rantai transformasi dari sebuah keadaan awal menuju ke suatu rantai keadaan akhir,
yang mungkin melalui keadaan antara, melalui aplikasi fungsi.

[ Pemrograman Terstruktur || Ervi Nurafliyan Susanti, S.T., M.Kom. ] Page 2


[Pertemuan ke-1]

Paradigma fungsional tidak mempermasalahkan memorisasi dan struktur data, tidak


adapemilahan antara data dan program, tidak ada lagi pengertian tentang ”variabel”.
Programmer
tidak perlu tahu bagaimana mesin mengeksekusi atau bagaimana informasi disimpan dalam
memori, setiap fungsi seperti ”kotak hitam”, yang perlu diperhatikan hanya keadaan awal dan
akhir, sebuah program besar dihasilkan dengan menggabungkan fungsi-fungsi yang telah
tersedia. Program yang dihasilkan dengan bahasa pemrograman yang menggunakan
paradigma ini biasanya membutuhkan waktu pemrosesan yang lebih lama dibandingkan
dengan yang menggunakan paradigma prosedural karena dibutuhkan waktu lebih untuk
memproses fungsi-fungsi yang digunakan dalam membuat program.

Contoh bahasa pemrograman yang menggunakan paradigma fungsional adalah LOGO, APL
dan LISP.

3. Paradigma Pemrograman Deklaratif, Predikatif atau Lojik


Paradigma ini didasari atas pendefinisian relasi antar individu yang dinyatakan sebagai
predikat. Sebuah program lojik adalah kumpulan aksioma (Fakta dan aturan deduksi. Dalam
paradigma ini, programmer menguraikan sekumpulan fakta dan aturan-aturan (inference
rules). Ketika program dieksekusi, pemakai akan mengajukan pertanyaan, selanjutnya
program akan menggunakan aturan deduksi dan mencocokkan pertanyaan dengan fakta-fakta
yang ada untuk menjawab pertanyaan.

Contoh bahasa pemrograman yang menggunakan paradigma ini adalah: Prolog.

4. Paradigma Berorientasi Object (Object Oriented)


Paradigma ini menggunakan konsep class dan object, object adalah instansiasi dari class,
setiap object akan mempunyai attribute dan method, masing-masing object dapat berinteraksi
dengan object lainnya meskipun berasal dari class yang berbeda. mempunyai hirarki artinya
sebuah class dapat diturunkan menjadi sebuah class baru yang juga memiliki attribut dan
method class diatasnya. Dengan begitu dalam paradigma ini dikenal konsep modularitas,
penggunaan kembali (reuse) serta kemudahan modifikasi.

Contoh bahasa pemrograman yang menggunakan paradigma ini adalah: Smalltalk, Eifel,
Delphi, Java

C. Tipe-tipe Dasar dan bentukan


1. Tipe data Dasar
Merupakan tipe yang dapat langsung dipakai. Jenis-jenis Tipe data Dasar:
 Bilangan Bulat (Integer)
 Tipe riil (Real)
 Tipe karakter (Char)
 Tipe string (string)
 Dan tipe Logika (boolean)
Tipe data integer
Merupakan tipe data berupa bilangan bulat, terbagi atas beberapa kategori sbb:
Tipe Data Ukuran Tempat Rentang Nilai
 Byte 1 byte 0 s/d +255
Shortint  1 byte -28 s/d +127
Integer 2 bytes -32768 s/d 32767
[ Pemrograman Terstruktur || Ervi Nurafliyan Susanti, S.T., M.Kom. ] Page 3
[Pertemuan ke-1]

Word  2 bytes 0 s/d 65535


Longint  4 bytes 2147483648 s/d 2147483647

Contoh penggunaan tipe data integer pada pascal:

Output Program:

Tipe data Riil (Real)


Konstanta bertipe real adalah bilangan yang berisi titik desimal atau jenis bilangan pecahan.
Dalam Pascal paling sedikit harus ada satu digit sebelum dan sesudah titik desimal, tidak
boleh ada koma dan nilainya bisa positif atau negatif. Dapat dituliskan secara biasa atau
model scientific. Contoh bilangan real: 34.265 -3.55 0.0 35.997E+11, dimana E merupakan
simbol perpangkatan 10. Jadi 452.13 mempunyai nilai sama dengan 4.5213e2.

Penggolongan tipe data bilangan real sbb:


Tipe Data Ukuran Tempat Rentang Nilai
real 6 bytes 2.9 x 10-39 s/d 1.7 x1038
single  4 bytes 1.5 x 1045 s/d 3.4 x 1038  
double 8 bytes 5.0 x 10-324 s/d 1.7 x 10308
extended  10 bytes 3.4 x 10-4932 s/d 1.1 x 104932
comp  8 bytes -9.2x 1018 s/d 9.2x 1018

Contoh penggunaan tipe data real pada pascal

Output Program:

Tipe data Karakter (char) pada pascal


Karakter merupakan tipe data yang hanya mampu menyimpan 1 digit karakter.  Ukuran untuk
tipe data karakter adalah 1 byte (1 byte = 8 bit). Adapun macam karakter yang ada sejumlah
256 macam karakter yaitu dari kode karakter (ASCII), 0 sampai dengan 255. Untuk penulisan

[ Pemrograman Terstruktur || Ervi Nurafliyan Susanti, S.T., M.Kom. ] Page 4


[Pertemuan ke-1]

karakter menggunakan tanda petik tunggal (‘ )  di depan dan belakang karakter yang ditulis.
Contoh : ‘a’, ‘A’,’&’ dll.

Nilai-nilai yang termasuk karakter adalah:


a)      Karakter huruf  : ‘a’..’z’,’A’..’Z’
b)      Karakter angka  : ‘0’..’9’
c)      Karakter tanda baca  : titik, koma, titik koma, titik dua dan sebagainya
d)      Karakter khusus : $, %, #, @ dan sebagainya.

Contoh Tipe data Char:

Output Program

Catatan : Apabila char ingin dijadikan sebagai konstanta maka karakter yang dimasukkan
harus diapit dengan tanda kutip satu dan apabila karakter itu berupa tanda kutip satu maka
harus diapit dengan dua tanda kutip satu.

Tipe data String


Merupakan urut-urutan dari karakter yang terletak di antara tanda petik tunggal. String adalah
data yang berisi sederet karakter yang terletak diantara tanda kutip satu. Jika karakter kutip
merupakan bagian dari konstanta string, maka ditulis dengan menggunakan dua buah tanda
kutip satu berurutan. Nilai data string akan menempati memori sebesar maksimla jumlah
karakter yang dapa ditampung ditambah denga 1 byte (index ke-0) untuk menyimpan panjang
string yang sebenarnya. Jika panjang string tidak ditulis, maka panjang string dianggap 255
karakter. Panjang string yang diijinkan antara 1 sampai 255.

Bentuk umum dari deklarasi tipe string adalah:


Var pengenal : string[panjang]; dimana
pengenal : nama variabel
panjang : bilangan bulat yang menunjukkan banyaknya karakter (1 – 255).

Untuk tipe data string, operator yang berlaku adalah operator penggabungan (+).

Contoh:

[ Pemrograman Terstruktur || Ervi Nurafliyan Susanti, S.T., M.Kom. ] Page 5


[Pertemuan ke-1]

Output Program

Tipe data boolean (logika)


Merupakan tipe data logika, yang berisi dua kemungkinan nilai: TRUE atau FALSE.
Biasanya tipe data ini digunakan untuk perbandingan. Var A, B, C : Boolean; Operator NOT,
OR AND dan XOR dapat dibentuk secara bersamaan menjadi sebuah ungkapan Boolean
yang rumit. Turbo Pascal for Windows memiliki tiga macam jenis ini yaitu:
Boolean,WordBool dan LongBool.Tipe Boolean memakai memori paling kecil, sedangkan
WordBool dan LongBool dipakai untuk menulis program yang sesuai dengan lingkungan
Windows.

Contoh Program Tipe data Boolean:

Output Program:

2.         Tipe Data Bentukan


Jenis-jenis Tipe data Bentukan:
 Record(rekam)
 Array(larik)
 Enumerated(terbilang)
 Set(himpunan)
 Subrange(sub jangkauan)
 Tipe Data Pointer

Record (Rekam)

[ Pemrograman Terstruktur || Ervi Nurafliyan Susanti, S.T., M.Kom. ] Page 6


[Pertemuan ke-1]

Definisi Record hampir sama dengan Array, tetapi yang membedakan antara keduanya adalah
kalau Array semua komponennya bertipe data yang sama sedangkan Record setiap
komponennya bisa bertipe data yang beda-beda.

Contoh:
TYPE my_rec = RECORD
Nama : STRING[90]; Npm  : STRING[ 8] ;
Nilai : REAL;
END;
VAR
Data nya    : my re c;

Array(larik)
Larik (array) adalah kumpulan data yang mempunyai tipe data sejenis dan tipe terstruktur
yang mempunyai komponen dalam jumlah yang tetap. Posisi masing-masing komponen
dalam larik dinyatakan sebagai nomor indeks. Daftar nomor telpon, daftar kode mata kuliah,
vektor, matrik merupakan contoh larik.

Bentuk umum dari tipe larik adalah:


type pengenal = array [tipe_index] of tipe;
pengenal : nama tipe data.
tipe_index : tipe data untuk nomor index.
tipe : tipe data komponen.
Contoh,
type Vek = array [1..100] of integer;

Contoh penulisan tipe larik berdimensi satu sbb :


CONST batas = 20;
VAR telpon : ARRAY[1..3] OF STRING[7]; { larik dengan nama telpon
mempunyai 3 data dengan tipe string }
nilai : ARRAY[1..5] OF INTEGER; { larik dengan nama nilai mempunyai 5 data dengan tipe
integer }
gaji : ARRAY[1..batas] OF REAL; { larik dengan namagaji mempunyai 20 data dengan tipe
real }

Enumerated(terbilang)
Tipe data enumerated (skalar) menunjukkan kumpulan dari nilai yang urutannya sudah pasti.
Nilai dari tipe yang dideklarasikan ini akan diwakili dengan pengenal – pengenal (identifiers)
yang akan menjadi nilai suatu konstanta. Disebut tipe terbilang karena semua nilai disebut
satu persatu.

Contoh 1:
Type bahasa = (delphi, java, c, pascal, basic);
bulan = (maret, april, mei, juni, juli);

Tipe data bulan mempunya 5 elemen dari maret sampai juli. Urutannya, maret adalah
identifier berupa konstanta bernilai 0 dan juli bernilai 4, yang perlu diperhatikan dengan tipe
data skalar ini adalah tipe data ini sudah berbeda dengan tipe standar yang ada dan pascal
tidak mengijinkan operasi dengan tipe data yang berbeda.

[ Pemrograman Terstruktur || Ervi Nurafliyan Susanti, S.T., M.Kom. ] Page 7


[Pertemuan ke-1]

Contoh 2:
Type hari = (Senin,Selasa,Rabu,Kamis,Jum'at,Sabtu,Minggu);
hari_kerja = (Senin,Selasa,Rabu,Kamis,Jum'at);
situasi = (senang,gembira,sedih,susah);

Set(himpunan)
Tipe himpunan adalah kumpulan obyek yang mempunyai tipe data yang sama dan urutan
penulisannya tidak diperhatikan.Setiap onyek di dalam suatu himpunan disebut dengan
anggota atau elemen himpunan. Bentuk umum deklarasi himpunan adalah:
type pengenal = set of tipe_data;

atau dapat juga langsung dideklarasikan dalam bagian deklarasi perubah seperti berikut:
var pengenal = set of tipe_data;

Keterangan:
pengenal : nama perubah atau pengenal yang akan dinyatakan sebagai tipe himpunan.
tipe_data : tipe data dari anggota himpunan, harus bertipe ordinal.
Contoh deklarasi himpunan adalah sebagai berikut:
type Irama = (jazz, rock, blues, country, classic);
Musik = set of Irama;
Nilai = set of 0..10;
Untai = set of char;
Huruf = set of ‘A’..’Z’;
Sakit = (pusing, mual, lemas, lesu, letih);
Penyakit = set of sakit;

Subrange(sub jangkauan)
Tipe data subrange adalah suatu range yang menunjukkan nilai terkecil dan nilai terbesar
yang dapat dipergunakan. Tipe data ini adalah tipe data yang dapat didefinisikan sendiri oleh
pemakai. Nilai data pada tipe ini mempunyai jangkauan tertentu. Misalkan nilai ujian
mempunyai harga 0 sampai 100, maka nilai ujian dapat didefinisikan sbb :

TYPE
nilai = 0..100;

Contoh:
VAR sks : 1..4;
angkatan : 89..95;
nilai : 'A'..'E';

Deklarasi tipe data subrange mempunyai bentuk: Type pengenal = konstanta1 .. konstanta2;
dimana: pengenal : nama tipe data yang dideklarasikan
konstanta1 : batas bawah nilai data
konstanta2 : batas atas nilai data

Kedua konstanta di dalam subrange harus bertipe ordinal yang sama, di mana nilai konstanta
pertama lebih kecil atau sama dengan nilai konstanta kedua. Tipe data real tidak dapat
digunakan sebagai nilai subrange, karena buka tipe ordinal.

[ Pemrograman Terstruktur || Ervi Nurafliyan Susanti, S.T., M.Kom. ] Page 8


[Pertemuan ke-1]

Contoh:
Type tanggal = 1 .. 31;
bulan = 1 .. 12;

TIPE DATA PENUNJUK (Pointer)


Tipe data pointer merupakan tipe data yang berbeda dengan yang lainnya. Semua tipe data
yang lainnya bersifat STATIS sedangkan tipe Pointer bersifat DINAMIS. Tipe ini merupakan
tipe data untuk suatu variabel, dimana isi variabel ini berupa alamat variabel lain, dalam
artian variabel pointer adalah variabel yang menunjuk nilai atau alamat variabel lainnya.

[ Pemrograman Terstruktur || Ervi Nurafliyan Susanti, S.T., M.Kom. ] Page 9

Anda mungkin juga menyukai