algoritma & pemograman 2A


A. Pemrograman Komputer

Dalam kehidupan sehari–hari, untuk
berkomunikasi dengan orang lain, kita harus
menggunakan bahasa yang sama dengan orang tersebut.
Apabila kita menggunakan Bahasa Indonesia, lawan
bicara kita harus mengerti Bahasa Indonesia. Kalau
lawan bicara kita tidak mengerti Bahasa Indonesia,
kita masih bisa berkomunikasi dengannya melalui
penerjemah.
Dalam pemograman komputer, berlaku juga hal
seperti di atas. Kita harus menggunakan bahasa yang
dimengerti oleh komputer untuk memberikan suatu
instruksi. Pada dasarnya, komputer adalah mesin
digital, artinya komputer hanya mengenal kondisi ada
arus listrik (biasanya dilambangkan dengan 1) dan
tidak ada arus listrik (dilambangkan dengan 0).
Dengan kata lain kita harus menggunakan sandi 0 dan
1 untuk melakukan pemrograman komputer. Bahasa
pemrograman yang menggunakan sandi 0 dan 1 ini
disebut bahasa mesin (assembly). Sebagai contoh,
dalam prosesor Intel, terdapat perintah 0011 1010
0000 1011. Perintah dalam bahasa mesin ini sama
artinya dengan perintah assembly CMP AL, 0D, yang
artinya bandingkan nilai register AL dengan 0D. CMP
di sini sebenarnya adalah singkatan dari CoMPare.
Untuk membantu manusia dalam mengkonversi bahasa
mesin diperlukan perangkat lunak yang disebut
assembler.
Pemrograman dengan bahasa assembly masih terasa
sulit bagi kebanyakan orang sehingga dikembangkan
bahasa pemrograman yang lebih mudah digunakan.
Bahasa pemrograman yang dikembangkan ini lebih
condong ke bahasa manusia dan disebut bahasa
generasi ketiga / 3GL (Third-Generation Language)
atau juga dikenal dengan bahasa tingkat tinggi/ HLL
(High-Level Language). Sebagai contoh Basic, Pascal,
C, C++, Cobol, dsb.
Bahasa generasi ketiga menggunakan kata-kata
dalam bahasa Inggris karena bahasa tersebut adalah
bahasa internasional, misal ;
Pascal:
writeln (‘Algoritma’);
Atau perintah dalam bahasa C:
printf (“Algoritma\n\r”):
Atau perintah dalambahasa C++:
cout << “Algoritma” << endl;
Ketiga pernyataan di atas bertujuan sama yaitu
menuliskan teks ‘algoritma’ ke keluaran standar
(Standard Output), ke layar monitor. Ketiga perintah
sederhana di atas sebenarnya terdiri dari puluhan
atau bahkan ratusan pernyataan assembly. Perangkat
lunak yang menerjemahkan program dalam bahasa
manusiawi ke dalam bahasa assembly atau mesin ada
dua macam, yaitu interpreter dan kompiler.
Interpreter menerjemahkan program baris
perbaris artinya jika suatu baris akan diekskusi
maka baris tersebut diterjemahkan terlebih dahulu ke
bahasa mesin. Apabila baris berikutnya akan
diekskusi maka baris tersebut baru diterjemahkan
kedalam bahasa mesin. Contoh bahasa pemograman yang
menggunakan interpreter adalah basic.

Kompiler menerjemahkan semua perintah kedalam
bahasa mesin kemudian menjalankan hasil
penerjemahan. Hasil penerjemahan ini bisa disimpan
dalam file atau memori. Contoh bahasa pemrograman
yang menggunakan kompiler adalah Pascal, C, dan C++.
Khusus untuk Pascal, ada beberapa kompiler tetapi
jumlahnya sedikit. Misalnya Turbo Pascal
(http://www.inprice.com), GNU Pascal
(http://didaktik.physik.uni-essen.de/~gnupascal/
home.html), Free Pascal
(http://www.freepascal.sk), dsb. Kompiler Pascal
yang banyak digunakan adalah Turbo Pascal, sehingga
pada modul ini juga digunakan Turbo Pascal sebagai
acuannya.
Perkembangan bahasa pemrograman setelah bahasa
generasi ketiga adalah bahasa generasi keempat atau
yang disingkat 4GL (fourth-generation language).
Bahasa ini banyak digunakan sebagai aplikasi basis
data (database), salah satu contohnya adalah SQL
(Structured Query Language). Pada bahasa ini,
perintah-perintah yang digunakan lebih manusiawi,
misalnya “SELECT Nama,Nilai FROM Mahasiswa”, untuk
mengambil data Nama dan Nilai dari basis data
Mahasiswa.
B. Langkah-langkah dalam Pemrograman Komputer
Dalam pemrograman komputer, diperlukan beberapa
langkah dan langkah-langkah yang disajikan pada
modul ini tidak bersifat mutlak. Artinya Anda tidak
harus melakukan dari langkah pertama, kedua, ketiga,
dst. Ada beberapa langkah yang harus atau mungkin
diulang sampai beberapa kali. Berikut ini contoh
beberapa langkah yang harus dilakukan dalam
pemrograman komputer:

1. Mendefinisikan Masalah.
Mendefinisikan masalah dengan menentukan
masalahnya seperti apa, kemudian apa saja yang
harus dipecahkan dengan komputer, yang terakhir
adalah apa masukannya dan bagaimana keluarannya.
2. Menentukan Solusi.
Setelah masalah didefinisikan dengan jelas,
masukan yang diberikan sudah jelas, keluaran yang
diinginkan sudah jelas, maka langkah selanjutnya
adalah mencari jalan penyelesaian masalah. Jika
permasalahan terlalu kompleks, biasanya kita harus
membaginya ke dalam beberapa modul kecil agar
lebih mudah diselesaikan.
Sebagai contoh, program untuk menghitung invers matriks, dapat dibagi
menjadi beberapa modul kecil. Modul pertama adalah
meminta masukan dari pengguna berupa matriks bujur
sangkar. Modul kedua adalah mencari invers matriks
yang dimasukkan pengguna. Modul terakhir adalah
menampilkan hasilnya pada pengguna.

3. Memilih Algoritma.
Langkah ini merupakan salah satu langkah yang
penting dalam pemrograman komputer karena
pemilihan algoritma yang salah akan menyebabkan
program memiliki unjuk kerja yang kurang baik.

4. Menulis Program.
Pada langkah ini dimulai penulisan program
komputer untuk memecahkan masalah yang diberikan.
Untuk menulis program dapat digunakan salah satu
bahasa generasi ketiga. Ada beberapa hal yang
harus diperhitungkan sebelum memilih bahasa
pemrograman, antara lain masalah yang dihadapi,
bahasa pemrograman yang Anda kuasai, dsb.
5. Menguji Program.
Setelah program selesai ditulis dilakukan
pengujian. Pengujian pertama adalah; Apakah
program berhasil dikompilasi dengan baik?
Pengujian berikutnya; Apakah program dapat
menampilkan keluaran yang diinginkan? Lebih jauh
lagi program harus diuji dengan banyak kasus.
Sering terjadi, suatu program berjalan baik untuk
kasus A, B, C; tetapi menghasilkan sesuatu yang
tidak diinginkan untuk kasus X,Y, dan Z. Langkah
ini bisa dilakukan berulang-ulang sampai program
diyakini benar-benar berjalan sesuai dengan yang
diharapkan.

6. Menulis Dokumentasi.
Merupakan hal sepele yang sering dilupakan, karena
tidak ada fungsinya pada saat pembuatan program,
namun pada masa mendatang akan sangat diperlukan,
apalagi bagi orang lain yang mempelajari program
kita. Dokumentasi ada dua, yaitu di atas kertas
dan menjadi satu dalam program (komentar pendek
yang menerangkan fungsi perintah-perintah yang ada
dalam program tersebut.

7. Merawat program
Setelah program selesai dan digunakan oleh user,
maka sering kali muncul bug / kesalahan yang
sebelumnya tidak terdeteksi, atau juga user ingin
menambahkan fasilitas baru, sehingga program harus
direvisi.

C. Definisi Algoritma
1. Pengertian
Ditinjau dari asal usul katanya 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.   

2. 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.

3. Aturan Penulisan Algoritma
Pada setiap bagian algoritma apabila akan
dituliskan komentar mengenai setiap bagian
tersebut dituliskan di antara tanda kurung
kurawal, contoh { Komentar }. Notasi algoritmis
yang dituliskan diantara tanda ini tidak akan
dieksekusi oleh program.
Contoh :
Setiap Algoritma akan selalu terdiri dari tiga
bagian yaitu :
a. 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 :
Catatan :
Untuk memisahkan antara kata dalam judul
algoritma menggunakan tanda “_” bukanlah
suatu keharusan. Anda dapat menuliskan
LuasLingkaran atau Luas_Lingkaran. Tetapi
sebaiknya anda tidak menggunakan spasi “ “
untuk memisahkan antara kata di dalam nama
algoritma.
b. Kamus (Deklarasi)
Kamus adalah bagian teks algoritma sebagai
tempat untuk mendefinisikan :
1) Nama type
2) Nama konstanta
3) Nama variable
4) Nama fungsi
5) Nama prosedur
Semua nama tersebut baru dapat dipakai di
dalam algoritma jika telah didefinisikan
terlebih dahulu didalam kamus. Penulisan
sekumpulan nama dalam kamus sebaiknya
dikelompokan menurut jenis nama tersebut.
Nama ariable 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 :
c. Algoritma
Algoritma adalah bagian inti dari suatu
algoritma yang berisi instruksi atau
pemanggilan aksi yang telah didefinisikan.
Komponen teks algoritma dalam pemrograman
procedural dapat berupa :


1) Instruksi dasar seperti input/output,
     assignment
2) Sequence (runtutan)

3) Analisa kasus
4) Perulangan
Setiap langkah algoritma dibaca dari “atas”
ke “bawah”. Urutan deskripsi penulisan
menentuan urutan langkah pelaksanaan
perintah.
Contoh :

D. Flow Chart
Dalam proses pembuatan program kadang-kadang
perlu digambarkan bagaimana arus data dari algoritma
yang sudah dibuat, terutama kalau algoritma sudah
cukup kompleks. Untuk itu algoritma dapat disajikan
dalam bentuk flow chart. Flow chart merupakan
gambaran program secara runtut yang digambarkan
menggunakan simbol-simbol yang telah ditetapkan
bentuknya yaitu sebagai berikut :
No. Simbol Makna
1. Start/mulai   End/selesai
2. Input / Output
3. Kondisi
4.Procedure /Function
5. Perulangan for
6. Proses/penugasan
7.Nilai awal/Inisialisasi

Contoh : Flowchart untuk menjumlahkan dua bilangan
bulat.
mulai
bil1, bil2
jumlah =
bil1 + bil2
jumlah
selesai

1. Operator Aritmatika
Rumus-rumus aljabar biasanya melibatkan operator
aritmatika, di antaranya:
Aritmatika Pascal Arti
+ + Penjumlahan
- - Pengurangan
Divide Div Pembagian bilangan
bulat
Mod Mod Sisa pembagian
(modulus)

2. Pemrograman
Dalam bahasa Pascal, pernyataan yang berkaitan
dengan operasi dasar adalah sebagai berikut:
Pernyataan Algoritmik Bahasa
Pascal
Input Read read atau readln
Output Write write atau
writeln
Penugasan ¬ :=
Akhir
pernyataan
;
Fungsi yang sering digunakan yaitu :
Fungsi Arti
Sqr kuadrat
Sqrt akar kuadrat
Ln logaritma
alami



A. DASAR TEORI
1. Skema dari program Pascal adalah sebagai berikut:
Program nama_program;
[ Deklarasi label ]
[ Deklarasi konstanta ]
[ Deklarasi tipe ]
[ Deklarasi variabel ]
[ Deklarasi subprogram ]
Begin
Pernyataan;
....
Pernyataan;
End.

2. Variabel
Variabel (perubah) merupakan suatu nama yang
menyiratkan lokasi memori komputer yang dapat
digunakan untuk menyimpan nilai, dimana isinya
dapat diubah-ubah. Variabel dapat dipandang
sebagai abstraksi dari lokasi. Hasil abstraksi
dari variabel adalah nilai dari variabel itu.
Nilai dari suatu variabel diubah dengan assignment

statement. Sebuah assignment statement terdiri
dari sebuah variabel disebelah kirinya dan suatu
ekspresi di sebelah kanannya.
Jumlah := B1 + B2
variabel jumlah diubah nilainya menjadi nilai dari
ekspresi B1 + B2 setelah dievaluasi.

Dalam suatu program Pascal setiap variabel
yang akan digunakan terlebih dahulu
dideklarasikan, dimana setiap variabel harus
mempunyai tipe. Deklarasi variabel berguna untuk
memberi informasi kepada compiler serta membantu
programmer berfikir secara jelas dan terencana.

Var
B1, B2, jumlah : integer;

3. Jenis/Tipe Data
Pada waktu sebuah variabel dideklarasikan
maka tipenya sekaligus ditentukan. Tipe dari suatu
variabel menyatakan:


a. Jenis nilai yang dapat disimpan dalam lokasi
memori untuk variabel tersebut, (membatasi
himpunan nilai-nilai yang dapat dipunyai
variabel tersebut)
b. Jenis operasi yang dapat dilakukan terhadap
variabel yang bersangkutan.

4. Pernyataan
Pernyataan adalah deretan instruksi yang akan
dieksekusi oleh komputer. Pernyataan dalam bahasa
Pascal terdiri dari dua macam, yaitu:
a. Pernyataan Sederhana yaitu pernyataan yang
tidak berisi penyataan lain
1) Assignment statement yaitu pernyataan
yang digunakan memberikan nilai ke suatu
variabel. Contoh :
a:=10;
b:=a*2;

2) Pernyataan yang digunakan untuk memanggil
procedure atau function. Contoh :
hitung (a,b);
cetak (a,b);

3) Jump Statement yaitu penyataan yang
digunakan untuk melompati pernyataanpernyataan
lain.

b. Pernyataan majemuk (Compound Statement).
Dalam bahasa Pascal, pernyataan majemuk
   diawali dengan begin dan diakhiri dengan end.


B. PETUNJUK PRAKTIKUM
Ketiklah 2 listing program berikut ini:
1. Program 1.1 (prog_1_1.pas) : Kenalan, Tanya
          nama dan umur Anda.
program kenalan;
uses wincrt;
var nama: string;
umur: integer;
Begin
writeln('program kenalan');
writeln('akan menanyakan nama dan umur anda');
write('ketikkan nama anda : '); readln(nama);
write('berapa umur anda (th) : '); readln(umur);
writeln('nama = ',nama);
writeln('umur (hari) = ',umur*365);
readln;
                  end.


2. Program 1.2 (prog_1_2.pas) : Penjumlahan dua
bilangan bulat.
program jumlah_bilangan;
uses wincrt;
var a,b,jumlah : integer;
Begin
writeln('program menghitung jumlah dua bilangan
bulat');
write('bilangan 1: '); readln(a);
write('bilangan 2: '); readln(b);
jumlah := a+b;
write('jumlah dua bilangan = ');
write(jumlah);
readln;
end.





Algoritma & Pemrogram 2A
STRUKTUR PERULANGAN
1.1 Perulangan FOR
Digunakan untuk mengulang statemen berulang kali sejumlah yang ditentukan.
1.1.1 Perulangan Positif
Dengan penghitung / counter dari kecil ke besar (penambahan positif).
Bentuk umum :
FOR variable control : = nilai awal TO nilai akhir DO statemen
Contoh program (1) :
Var
I : integer ;
Begin
For I : = 1 to 5 do
Write ( I ) ;
Writeln (‘Pascal’);
End.
Output program (1) :
12345Pascal
Contoh program (2) :
Var
I : integer ;
Begin
For I : = 1 to 5 do
Begin
Write ( I ) ;
Writeln (‘Pascal’);
End ;
End.
Struktur Perulangan
Algoritma & Pemrogram 2A
Output program (2) :
1Pascal
2Pascal
3Pascal
4Pascal
5Pascal
1.1.2 Perulangan Negatif
Dengan penghitung / counter dari besar ke kecil ( pertambahannya negatif).
Bentuk umum :
FOR variable control : = nilai awal DOWN TO nilai akhir DO statemen
Contoh program :
Var
I : integer ;
Begin
For I : = 5 down to 1 do
Begin
Write ( I ) ;
Writeln (‘Pascal’);
End ;
End.
Output program :
5Pascal
4Pascal
3Pascal
2Pascal
1Pascal
1.1.3 Perulangan Tersarang
Perulangan yang berada didalam perulangan yang lainnya. Perulangan yang lebih dalam akan diproses lebih dulu sampai habis, kemudian perulangan yang lebih luar baru akan bertambah, mengerjakan
Struktur Perulangan
Algoritma & Pemrogram 2A
perulangan yang lebih dalam lagi mulai dari nilai awalnya dan seterusnya.
Contoh program :
Var
I, J : integer ;
Begin
For I : = 1 to 5 do
Begin
For J : = 1 to 3 do
Write ( I : 8, J : 3);
Writeln ;
End ;
End.
1.2 Perulangan WHILE DO
Bentuk umum :
WHILE ungkapan logika DO statemen
Digunakan untuk melakukan proses perulangan suatu statemen terus menerus selama kondisi ungkapan logika pada while masih bernilai logika benar.
Contoh program :
Var
I : integer ;
Begin
I : = 0 ;
While I < 5 do
Begin
Writeln (I);
I : = I + 1 ;
End ;
End.
Struktur Perulangan
Algoritma & Pemrogram 2A
Output program : 0
1
2
3
4
1.3 Perulangan REPEAT UNTIL
Digunakan untuk mengulang statemen sampai kondisi yang diseleksi di Until tidak terpenuhi.
Bentuk umum :
REPEAT statemen UNTIL ungkapan
Contoh program :
Var
I : integer ;
Begin
I : = 0 ;
Repeat
I : = I + 1 ;
Writeln (I) ;
Until I = 5;
End.
Output program : 1
2
3
4
5
Perbedaan antara struktur “ repeat until “ dengan “ while do “ adalah :
- Paling sedikit statemen-statemen dalam repeat until diproses sekali, karena seleksi kondisi ada pada statemen until yang terletak dibawah.
- Pada while do paling sedikit dikerjakan nol kali, karena seleksi kondisi ada pada statemen while yang terletak diatas, sehingga apabila kondisi tidak terpenuhi maka tidak akan masuk ke dalam lingkungan perulangannya.
- Pada repeat until dapat tidak menggunakan blok statemen ( BEGIN dan END ) untuk menunjukan batas perulangannya, karena batas perulangannya sudah ditunjukkan oleh repeat sampai dengan until.
Struktur Perulangan