Disusun Oleh :
Amroni. M.Kom
Pertemuan 1
Konsep Algoritma dan pemrograman
1.1.
Sejarah Algoritma
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 Jafar Muhammad Ibnu Musa Al-Khuwarizmi. Al-Khuwarizmi dibaca orang
barat menjadi Algorism. Al-Khuwarizmi menulis buku yang berjudul Kitab Al Jabar WalMuqabala 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.
Dalam kenyataannya, setiap orang bisa membuat algoritma yang berbeda untuk
menyelesaikan suatu permasalahan, walaupun terjadi perbedaan dalam menyusun algoritma,
tentunya kita mengharapkan keluaran yang sama. Jika terjadi demikian, carilah algoritma yang
paling efisien dan cepat.
Program adalah kumpulan pernyataan komputer, sedangkan metode dan tahapan
sistematis dalam program adalah algoritma. Program ditulis dengan menggunakan bahasa
pemrograman. Jadi bisa disebut bahwa program adalah suatu implementasi dari bahasa
pemrograman.
Beberapa pakar memberi formula bahwa:
Program = Algoritma + Bahasa (Struktur Data)
Bagaimanapun juga struktur data dan algoritma berhubungan sangat erat pada sebuah program.
Algoritma yang baik tanpa pemilihan struktur data yang tepat akan membuat program menjadi
kurang baik, demikian juga sebaliknya.
Pembuatan algoritma mempunyai banyak keuntungan di antaranya:
1. Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrograman manapun,
artinya penulisan algoritma independen dari bahasa pemrograman dan komputer yang
melaksanakannya.
2. Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.
3. Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karena algoritmanya
sama.
Beberapa hal yang perlu diperhatikan dalam membuat algoritma:
1. Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah. Deskripsi tersebut
dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan dipahami.
2. Tidak ada notasi yang baku dalam penulisan teks algoritma seperti notasi bahasa
pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi algoritmik.
3. Setiap orang dapat membuat aturan penulisan dan notasi algoritmik sendiri. Hal ini
dikarenakan teks algoritma tidak sama dengan teks program. Namun, supaya notasi
algoritmik mudah ditranslasikan ke dalam notasi bahasa pemrograman tertentu, maka
sebaiknya notasi algoritmik tersebut berkorespondensi dengan notasi bahasa pemrograman
secara umum.
4. Notasi algoritmik bukan notasi bahasa pemrograman, karena itu pseudocode dalam notasi
algoritmik tidak dapat dijalankan oleh komputer. Agar dapat dijalankan oleh komputer,
pseudocode dalam notasi algoritmik harus ditranslasikan atau diterjemahkan ke dalam notasi
bahasa pemrograman yang dipilih. Perlu diingat bahwa orang yang menulis program sangat
terikat dalam aturan tata bahasanya dan spesifikasi mesin yang menjalannya.
5. Algoritma sebenarnya digunakan untuk membantu kita dalam mengkonversikan suatu
permasalahan ke dalam bahasa pemrograman.
6. Algoritma merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh komputer,
algoritma harus ditranslasikan ke dalam notasi bahasa pemrograman. Ada beberapa hal yang
harus diperhatikan pada translasi tersebut, yaitu:
Modul TIK3 Pikes-Poltekes Tasik Malaya
a. Pendeklarasian variabel
Untuk mengetahui dibutuhkannya pendeklarasian variabel dalam penggunaan bahasa
pemrograman apabila tidak semua bahasa pemrograman membutuhkannya.
b. Pemilihan tipe data
Apabila bahasa pemrograman yang akan digunakan membutuhkan pendeklarasian
variabel maka perlu hal ini dipertimbangkan pada saat pemilihan tipe data.
c. Pemakaian instruksi-instruksi
Beberapa instruksi mempunyai kegunaan yang sama tetapi masingmasing memiliki
kelebihan dan kekurangan yang berbeda.
d. Aturan sintaksis
Pada saat menuliskan program kita terikat dengan aturan sintaksis dalam bahasa
pemrograman yang akan digunakan.
e. Tampilan hasil
Pada saat membuat algoritma kita tidak memikirkan tampilan hasil yang akan disajikan.
Hal-hal teknis ini diperhatikan ketika mengkonversikannya menjadi program.
f. Cara pengoperasian compiler atau interpreter.
Bahasa pemrograman yang digunakan termasuk dalam kelompok compiler atau
interpreter.
1.3. Algoritma Merupakan Jantung Ilmu Informatika
Algoritma adalah jantung ilmu komputer atau informatika. Banyak cabang ilmu komputer
yang mengarah ke dalam terminologi algoritma. Namun, jangan beranggapan algoritma selalu
identik dengan ilmu komputer saja. Dalam kehidupan sehari-hari pun banyak terdapat proses
yang dinyatakan dalam suatu algoritma. Cara-cara membuat kue atau masakan yang dinyatakan
dalam suatu resep juga dapat disebut sebagai algoritma. Pada setiap resep selalu ada urutan
langkah-langkah membuat masakan. Bila langkah-langkahnya tidak logis, tidak dapat dihasilkan
masakan yang diinginkan. Ibu-ibu yang mencoba suatu resep masakan akan membaca satu per
satu langkah-langkah pembuatannya lalu ia mengerjakan proses sesuai yang ia baca. Secara
umum, pihak (benda) yang mengerjakan proses disebut pemroses (processor). Pemroses tersebut
dapat berupa manusia, komputer, robot atau alat-alat elektronik lainnya. Pemroses melakukan
suatu proses dengan melaksanakan atau mengeksekusi algoritma yang menjabarkan proses
tersebut.
Algoritma adalah deskripsi dari suatu pola tingkah laku yang dinyatakan secara primitif
yaitu aksi-aksi yang didefenisikan sebelumnya dan diberi nama, dan diasumsikan sebelumnya
bahwa aksi-aksi tersebut dapat kerjakan sehingga dapat menyebabkan kejadian. Melaksanakan
algoritma berarti mengerjakan langkah-langkah di dalam algoritma tersebut. Pemroses
mengerjakan proses sesuai dengan algoritma yang diberikan kepadanya. Juru masak membuat
kue berdasarkan resep yang diberikan kepadanya, pianis memainkan lagu berdasarkan papan not
balok. Karena itu suatu algoritma harus dinyatakan dalam bentuk yang
dapat dimengerti oleh pemroses. Jadi suatu pemroses harus:
Modul TIK3 Pikes-Poltekes Tasik Malaya
Mekanisme kerja keempat komponen di atas dapat dijelaskan sebagai berikut. Mula-mula
program dimasukkan ke dalam memori komputer. Ketika program dilaksanakan (execute), setiap
instruksi yang telah tersimpan di dalam memori dikirim ke CPU. CPU mengerjakan operasi
operasi yang bersesuaian dengan instruksi tersebut. Bila suatu operasi memerlukan data, data
dibaca dari piranti masukan, disimpan di dalam memori lalu dikirim ke CPU untuk operasi yang
memerlukannya tadi. Bila proses menghasilkan keluaran atau informasi, keluaran disimpan ke
dalam memori, lalu memori menuliskan keluaran tadi ke piranti keluaran (misalnya dengan
menampilkannya di layar monitor).
1.5. Pengantar Borland Delphi 7
Delphi adalah perangkat pengembangan aplikasi yang berjalan di sistem operasi
Windows. Delphi merupakan kelanjutan dari Turbo Pascal yang merupakan produk
Borland, sekarang telah berganti menjadi Inprise Corporation. Delphi diluncurkan pertama
kali pada tahun 1995.
Borland menyatakan bahwa Delphi merupakan alat yang dapat digunakan untuk Rapid
Application Development (RAD),
yang
hingga
kini
tetap
terbukti
menjadi
bahasa
pemrograman yang paling baik. Dengan keberhasilan ini maka Borland (sebelum menjadi
Inprise), mengembangkan produk lain yang mirip yakni C++Builder, Jbuilder (Java Language).
Dengan demikian jika kita telah menguasai Delphi dengan mudah kita dapat berpindah
menggunakan bahasa lainnya yaitu C++Builder atau Jbuilder. Kedua produk ini sengaja dibuat
memiliki IDE yang sama dengan Delphi.
Selain sebagai aplikasi biasa dengan mudah Delphi membuat aplikasi untuk internet.
Seperti Win-CGI (Windows Common
Gateway
Interface),
ISAPI
(Internet
Service
Application Program Interface) . Bahkan Borland menyatakan sebagai satu langkah menuju
ActiveX. Seperti dengan mudah membuat sebuah aplikasi ActiveForm yang dapat berjalan pada
Internet Explorer sebagai suatu aplikasi biasa. Selain itu Delphi dapat membuat aplikasi
MIDAS, pada aplikasi ini kita harus membuat dua lapis, lapis pertama adalah aplikasi Server
yang melayani permintaan aplikasi kedua yaitu Client.
Delphi dapat mengakses database Paradox, xBase, MS-Access juga dengan menggunakan
ODBC Delphi dapat mengakses database lain seperti Oracle, Sybase, Interbase, DB2, MS-SQL,
MySQL. Sehingga kita dapat berpindah dari satu database ke database lain tanpa perlu mengubah
aplikasi secara keseluruhan.
klik
file
Delphi.7.SecondEdition.v7.2
yang
terdapat
dalam
folder
delphi7.secondedition.
2. Perhatikan Gambar dibawah ini, klik tombol Next :
3. Perhatikan Gambar dibawah ini, klik tombol Next, klik tombol install :
4. Tunggu proses sampai selesai, kemudian klik tombol Finish Seperti Gambar dibawah ini:
5. Copy file delphi32.dro (yang terdapat dalam folder delphi32.dro) ke folder hasil
6.
installasi, di folder C: Program Files , Delphi, di dalam folder Bin . .. Paste (replace, ok)
1. Kontrol Text
Kontrol Text digunakan untuk memberikan input atau masukan berupa kotak isian.
2. Kontrol Radio
Kontrol Radio digunakan untuk menampilkan salah satu pilihan dari satu kumpulan/grup pilihan.
3. Kontrol CheckBox
Kontrol CheckBox digunakan untuk memilih beberapa pilihan dari pilihan yang tersedia.
Penggunaannya hampir sama dengan kontrol radio, perbedannya terletak pada pilihan yang
dimungkinkan lebih dari satu.
4. Kontrol Button
Kontrol button digunakan untuk mengontrol suatu aksi atau menjalankan sebuah prosedur / event.
Object Control
1.8. Menjalankan dan Membuat Program Delphi
Menggunakan menu bar
a. Klik Start
b. Klik All Programs
c. Klik Group Delphi 7 Second Edition v.7.2
d. Klik Delphi 7 Second Edition v.7.2
Menggunakan menu tool bar yang terdapat dalam dekstop double klik icon Delphi 7 Second
Edition v.7.2.
Setelah program dibuka maka telah terbentuk secara otomatis Project dengan nama project1 dan
Unit dengan nama unit1.
Buatlah tampilan visual (User Interface) seperti gambar di bawah ini :
Pemberian nama komponen dari control dalam form dapat diatur sendiri, boleh juga
menggunakan penamaan bawaan dari Delphinya.
Seting Properti
Kontrol
Label 1
Label2
Edit1
RadioGroup1
RadioButton1
RadioButton2
Label3
ComboBox1
GroupBox1
CheckBox1
CheckBox2
CheckBox3
Button1
Properti
Caption
Caption
Name
Text
Caption
Caption
Caption
Caption
Text
Items
Caption
Caption
Caption
Caption
Caption
Value
Contoh Container dan Control
Nama
T1
Hapus Text nya (Kosongkan)
Jenis Kelamin
Laki-Laki
Perempuan
Jurusan
Hapus ComboBox1
Keperawatan
Kebidanan
Gizi
Pikes
Extra Kurikuler
Futsal
Senam
Rohani Islam
Keluar
Simpanlah unit dan project yang telah saudara buat melalui menu File Save All berilah nama
unitnya dengan nama : contoh1 dan projectnya dengan nama : project1
Listing Kode Program
unit contoh1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
T1: TEdit;
RadioGroup1: TRadioGroup;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
ComboBox1: TComboBox;
Label3: TLabel;
GroupBox1: TGroupBox;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
CheckBox3: TCheckBox;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Modul TIK3 Pikes-Poltekes Tasik Malaya
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Application.Terminate;
end;
end.
Setelah program selesai dibuat lakukan kompilasi terhadap program dengan cara :
Klik menu project dan klik kompile project
Apabila terdapat eror maka perbaiki program dan kompilasi ulang.
Setelah itu program dapat di run menggunakan menu tool bar run atau dari menu Run Run atau
Tekan tombol F9.
Output Tampilan Program setelah di Run
Pertemuan 2
Konsep tipe data dan operator
Diantara character tidak dapat menggunakanx Spesial character kecuali under score (_)
Contoh :
Modul TIK3 Pikes-Poltekes Tasik Malaya
Write(A)
Write(Nilai A = , A)
atau
Print(A)
Print(Nilai A = , A)
atau
Output(A)
Output(Nilai A = , A)
Output
AND
OR
XOR
OUTPUT NOT
Berikut adalah hal-hal yang harus diketahui dalam analisis masalah supaya kita mengetahui
bagaimana permasalahan tersebut:
a. Kondisi awal, yaitu input yang tersedia.
b. Kondisi akhir, yaitu output yang diinginkan.
c. Data lain yang tersedia.
d. Operator yang tersedia.
e. Syarat atau kendala yang harus dipenuhi.
Contoh kasus:
Menghitung biaya percakapan telepon di wartel. Proses yang perlu diperhatikan adalah:
a. Input yang tersedia adalah jam mulai bicara dan jam selesai bicara.
b. Output yang diinginkan adalah biaya percakapan.
c. Data lain yang tersedia adalah besarnya pulsa yang digunakan dan biaya per pulsa.
d. Operator yang tersedia adalah pengurangan (-), penambahan (+), dan perkalian (*).
e. Syarat kendala yang harus dipenuhi adalah aturan jarak dan aturan waktu.
2. Buat Algoritma dan Struktur Cara Penyelesaian
Jika masalahnya kompleks, maka dibagi ke dalam modul-modul. Tahap penyusunan
algoritma seringkali dimulai dari langkah yang global terlebih dahulu. Langkah global ini
diperhalus sampai menjadi langkah yang lebih rinci atau detail. Cara pendekatan ini sangat
bermanfaat dalam pembuatan algoritma untuk masalah yang kompleks. Penghalusan langkah
dengan cara memecah langkah menjadi beberapa langkah. Setiap langkah diuraikan lagi
menjadi beberapa langkah yang lebih sederhana. Penghalusan langkah ini akan terus berlanjut
sampai setiap langkah sudah cukup rinci dan tepat untuk dilaksanakan oleh pemroses.
3. Menulis Program
Algoritma yang telah dibuat, diterjemahkan dalam bahasa komputer menjadi sebuah program.
Perlu diperhatikan bahwa pemilihan algoritma yang salah akan menyebabkan program
memiliki untuk kerja yang kurang baik. Program yang baik memiliki standar penilaian:
a. Standar teknik pemecahan masalah
- Teknik Top-Down
Teknik pemecahan masalah yang paling umum digunakan. Prinsipnya adalah suatu masalah
yang kompleks dibagi-bagi ke dalam beberapa kelompok masalah yang lebih kecil. Dari
masalah yang kecil tersebut dilakukan analisis. Jika dimungkinkan maka masalah tersebut
akan dipilah lagi menjadi subbagiansubbagian dan setelah itu mulai disusun langkah-langkah
penyelesaian yang lebih detail.
- Teknik Bottom-Up
Prinsip teknik bottom up adalah pemecahan masalah yang kompleks dilakukan dengan
menggabungkan prosedur-prosedur yang ada menjadi satu kesatuan program sebagai
penyelesaian masalah tersebut.
b. Standar penyusunan program
- Kebenaran logika dan penulisan.
- Waktu minimum untuk penulisan program.
Modul TIK3 Pikes-Poltekes Tasik Malaya
unit unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
p: TEdit;
l: TEdit;
luas: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
luas.Text:= inttostr(strtoint(p.Text)+strtoint(l.Text));
end;
end.
unit unit21;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Label3: TLabel;
r: TEdit;
luas: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
const pi=3.14;
begin
luas.Text:= floattostr(pi*strtoint(r.Text)*strtoint(r.Text));
end;
end.
Pertemuan 3
Macam-macam/bentuk-bentuk algoritma
Algoritma berisi langkah-langkah penyelesaian suatu masalah. Langkah-langkah tersebut
dapat berupa runtunan aksi (sequence), pemilihan aksi (selection), pengulangan aksi (iteration)
atau kombinasi dari ketiganya. Jadi struktur dasar pembangunan algoritma ada tiga, yaitu:
1. Struktur Runtunan
Digunakan untuk program yang pernyataannya sequential atau urutan.
2. Struktur Pemilihan
Digunakan untuk program yang menggunakan pemilihan atau penyeleksian kondisi.
3. Struktur Perulangan
Digunakan untuk program yang pernyataannya akan dieksekusi berulang-ulang.
Buatlah project dengan nama : project3 dan Unit dengan nama : unit3 dengan layout seperti
gambar dibawah ini:
unit unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
A: TEdit;
B: TEdit;
H: TEdit;
Label4: TLabel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
Modul TIK3 Pikes-Poltekes Tasik Malaya
unit unit31;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
Tp3 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Modul TIK3 Pikes-Poltekes Tasik Malaya
Label3: TLabel;
n1: TEdit;
n2: TEdit;
H: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
p3: Tp3;
implementation
{$R *.dfm}
procedure Tp3.Button1Click(Sender: TObject);
begin
H.Text:=booltostr( (strtoint(n1.Text)<strtoint(n2.text)) and (strtoint(n1.Text)<=strtoint(n2.text)));
end;
procedure Tp3.Button2Click(Sender: TObject);
begin
H.Text:=booltostr( (strtoint(n1.Text)<strtoint(n2.text)) or (strtoint(n1.Text)<=strtoint(n2.text)));
end;
procedure Tp3.Button3Click(Sender: TObject);
begin
H.Text:=booltostr(
(strtoint(n1.Text)<strtoint(n2.text))
xor
(strtoint(n1.Text)<=strtoint(n2.text)));
end;
procedure Tp3.Button4Click(Sender: TObject);
begin
H.Text:=booltostr(Not (strtoint(n1.Text)<strtoint(n2.text)));
end;
end.
Pertemuan 4
Algoritma dalam bentuk Flowchart
Program Flowchat
Adalah urutan logis pengambilan kepututusan untuk pemecahan masalah menggunakan
simbol.
Mulai
Var
P,L,Luas : Numerik
Read (P,L)
Luas Pp*L
Write (Luas)
Selesai
Bil : Numerik
Kep : String
Read(Bil)
Bil < 0
True
Kep=Negatif
False
Kep=Positif
Write(Kep)
Selesai
Apabila flowchart tersebut diterapkan kedalam program maka tampilan programnya adalah :
unit contoh4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm4 = class(TForm)
Label1: TLabel;
Label2: TLabel;
bil: TEdit;
kep: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
{$R *.dfm}
procedure TForm4.Button1Click(Sender: TObject);
begin
if strtoint(bil.Text) < 0 then
kep.Text:='Negatif'
else
kep.Text:=' Positif '
end;
end.
Latihan :
buatlah flowchart, algoritma dan program untuk memasukan sebuah bilangan dan tentukan
apakah bilangan itu :
Ganjil atau Genap !
Modul TIK3 Pikes-Poltekes Tasik Malaya
Pertemuan 5
Konsep Struktur Dasar Runtunan
Struktur dasar runtunan atau sequent adalah algoritma yang dapat digunakan untuk
mencari solusi suatu permasalahan secara berurutan. Hampir semua permasalahan yang dihadapi
akan kita selesaikan dengan mengacu kepada algoritma runtunan.
Solusi penyelesaian masalah mengikuti tahapan input process output. Contoh Kuliah
adalah penererapan algoritma sequent yaitu semester 1,2,3,4,5 dan 6.
Apabila diseselesaikan dalam algoritma, maka dapat dituliskan solusi masalahnya sebagai berikut
Algoritma strutuktur_runtunan
Var
Na,Nt,Nq,Nuts,Nuas : Integer
Nak
: Real
Begin
Read(Na,Nt,Nq,Nuts,Nuas)
Nak 0.1*Na+0.1*Nt+0.1*Nq+0.3*Nuts+0.5*Nuas
Write(Nak)
End
Apabila algoritma diatas diterapkan kedalam program, maka dapat diimplementasikan seperti
gambar dibawah ini :
unit Unit5;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Na: TEdit;
Nt: TEdit;
Nq: TEdit;
Nuts: TEdit;
Nuas: TEdit;
Nak: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
Modul TIK3 Pikes-Poltekes Tasik Malaya
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
Nak.Text:=floattostr(strtoint(na.Text)*0.1+strtoint(nt.Text)*0.1+strtoint(nq.Text)*0.1+strtoint(nu
ts.Text)*0.3+strtoint(nuas.Text)*0.4);
end;
end.
Latihan :
Buatlah Algoritma, Flowchart dan Program secara sequent untuk mencatat data rekam medik
pasien pada sebuah klinik atau puskesmas !
Pertemuan 6
Algoritma pengambilan keputusan (tunggal)
Digunakan untuk melakukan penyeleksian kondisi tunggal yang dapat menghasilkan dua
keputuasn, keputusan kondisi benar dan keputusan kondisi salah.
Syntak penulisan algoritma If kondisi tunggal :
If (kondisi) then
Statement1
Else
Statement2
Endif
Keterangan :
Apabila kondisi benar maka statement1 dikerjakan dan apabila kondisi salah maka statement 2
dikerjakan. Apabila digambarkan dalam program flowchart maka struktur kondisi dapat
digambarkan :
Kondisi
True
Statement1
False
Statement2
Contoh :
Buatlah algoritma untuk memasukan data dua bilangan a dan b dan tentukan apakah a>b atau
sebaliknya.
Syntak penulisan algoritma If kondisi tunggal :
Algoritma_Name iftunggal
var
a,b:numerik
ket : string
Begin
Read(a,b)
if a>b then
ket a lebih besar b
else
ket a lebih kecil b
endif
writeln(ket)
End
A,b : numerik
Ket : string
Read(a,b)
True
a>b
Ket
a lebih besar b
False
Ket
a lebih kecil b
Writeln(ket)
Selesai
Apabila Algoritma dan Flowchart diatas diterapkan dalam program dapat dilihat dalam gambar
dibawah ini.
unit flowcart;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Modul TIK3 Pikes-Poltekes Tasik Malaya
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
A: TEdit;
B: TEdit;
K: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
if strtoint(A.Text) > strtoint(B.Text) then
k.Text:='A Lebih Besar B'
else
k.Text:='A Lebih Kecil B'
end;
end.
Masih banyak kasus-kasus yang terdapat dalam aktifitas kita yang dapat diselesaikan dengan
kondisi tunggal menghasilkan dua buah keputusan. Carilah kasus tersebut dan implementasikan
dengan algoritma, flowchart dan program.
Pertemuan 8
Algoritma Pengambilan Keputusan (Majemuk)
8.1. Struktur If Majemuk
Digunakan untuk melakukan penyeleksian terhadap N kondisi dengan keputusan
sebanyak N+1.
Syntak penulisan algoritma If kondisi majemuk :
If (kondisi1) then
Statement1
Else
If (kondisi2) then
Statement2
Else
If (kondisiN) then
StatementN
Else
Statement N+1
Endif
Endif
Endif
Apabila kondisi1 benar maka statement1 dikerjakan, apabila kondisi2 benar maka statement 2
dikerjakan dan seterusnya.
Contoh:
Buatlah algoritma untuk menentukan nama hari berdasarrkan nomor hari dengan ketentuan
sebagai berikut :
No. hari
Nama Hari
Senin
Selasa
Rabu
Kamis
Jumat
Sabtu
Minggu
Algoritma_Name Seleksihari
Var
nh:numerik
nmh:string
Begin
Read(nh)
if nh=1 then
nmh Senin
else
if nh=2 then
nmh Selasa
else
if nh=3 then
nmh Rabu
else
Modul TIK3 Pikes-Poltekes Tasik Malaya
if nh=4 then
nmh Kamis
else
if nh=5 then
nmh Jumat
else
if nh=6 then
nmh Sabtu
else
nmh Minggu
Endif
Endif
Endif
Endif
Endif
Endif
Write(nama hari : ,nmh)
End
8.2. Struktur Case Of
Struktur control ini digunakan untuk menyeleksi expresi (ungkapan yang akan diseleksi)
yang mempunyai nilai expresi majemuk. Expresi dapat berbentuk data numurik bulat atau
character yang dapat mempunyai nilai tunggal atau pun nilai range.
Syntax penulisan case of
case expression of
Nexp1 : statement1
...
NexpN: statementN
else
statementN+1
endcase
Apabila Nexp1 sama dengan Expression maka stattemen1 dikerjakan
Apabila Nexp2 sama dengan Expression maka stattemen2 dikerjakan dan seterusnya sampai
NexpN. Jika tidak ada yang benar maka statementN+1 dikerjakan.
Contoh :
Buat Algoritma untuk menentukan keterangan dari karakter yang dimasukan dari keyboard.
Algoritma_Name ContohCase
Var
Ch : char
Begin
Read(Ch)
case Ch of
'A'..'Z', 'a'..'z : WriteLn('Letter')
'0'..'9
: WriteLn('Digit')
'+', '-', '*', '/ : WriteLn('Operator')
else
WriteLn('Special character');
endcase
End
Buatlah algoritma untuk membaca data nilai mahasiswa dengan data : Nama Mahasiswa, Mata
Kuliah, Sks dan Nilai serta menentukan nilai mutu yang diperoleh mahasiswa berdasarkan nilai
yang diperolah dengan ketentuan :
Nilai
Mutu
0-49
0
50-59
1
60-69
2
70-84
3
85-100
4
Total Nilai = Sks * Mutu
Ip = Total Nilai / Sks
Algoritma_Name ContohCase1
Var
Ns, Mtk : String
Sks, Nilai, Mutu, Tn, Ip : Numerik
Begin
Read(Ns, Mtk, Sks, Nilai)
Case Nilai Of
85 to 100 : Mutu = 4
70 to 84 : Mutu = 3
60 to 69 : Mutu = 2
50 to 59 : Mutu = 1
Else
Mutu = 0
EndCase
Tn = Sks * Mutu
Ip = Tn / Sks
Write (Ns, Mtk, Sks, Nilai, Mutu, IP)
End
Apabila algoritma diatas diimplementasikan dengan program flowchart, maka program
flowchartnya adalah sebagai berikut :
Mulai
Var
Ns, Mtk : String
Sks,
Mulai
Nilai, Mutu, Tn, Ip: Single
Nilai
85-100
Mutu = 4
T
Nilai
70 - 84
Mutu = 3
T
Nilai
60 - 69
Mutu = 2
T
Nilai
50-59
Mutu = 1
T
Mutu = 0
Tn = Sks*Mutu
Ip = Tn / Sks
Selesai
Pertemuan 9
Algoritma Pengulangan
Struktur pengulangan digunakan untuk mengurangi penulisan algoritma/program yang
sama agar tidak dituliskan sebanyak proses yang akan terjadi dengan tujuan untuk efisiensi
struktur penulisan agar hemat dalam pemakaian memori komputer.
Terdapat 3 struktur iterasi yang dapat digunakan dalam algoritma yaitu :
1. While Do
2. Repeat Until
3. For Do
Contoh :
Buatlah algoritma dan program untuk menghitung total harga bayar dari 5 macam barang yang
dibeli oleh seorang pembeli, data pembeli : Nama Barang, Jumlah barang dan Harga Barang.
Harga Bayar = Jumlah barang * Harga Barang !
Algoritma_Name Loop1
Var
NB : String
E,JB,HB,HBY,THB : Numerik
E1
1
THB 0
While E <= 5 do
2
Read (NB,JB,HB)
HBY JB * HB
THB THB + HBY
Write (HBY)
EE+1
3
Modul TIK3 Pikes-Poltekes Tasik Malaya
EndWhile
Write(THB)
End
Contoh Lain :
Buatlah algoritma dan program untuk menampilkan 10 bilangan asli dan hitung berapa jumlah
total 10 bilangan tersebut !
Output :
1
2
3
.
.
.
10
Total 10 Bilangan = .
Penyelesaian dengan Algoritma :
Algoritma_Name Loop2
Var
Bil, Totol : Numerik
Begin
Bil 1
1
Total 0
While Bil <= 10 do
2
Write(Bil)
Total Total +Bil
Bil Bil + 1
Endwhile
Write(Total)
End
Repeat
- Statement
Until (Kondisi)
Digunakan untuk pengulangan data numerik dan Non Numerik.
Syarat Pengulangan Repeat Until
1. Variabel yang akan dijadikan kondisi pengu-langan tidak harus diinisialisasi
2. Pengulangan dilakukan selama kondisi bernilai salah dan dihentikan jika kondisi bernilai
benar.
3. Perlu ada operasi untuk merubah kondisi.
4. Pengulangan dapat dilaksanakan minimal satu kali.
Modul TIK3 Pikes-Poltekes Tasik Malaya
Contoh :
Buatlah algoritma untuk menampilkan 10 bilangan asli dan hitung berapa jumlah total 10
bilangan tersebut !
Output :
1
2
3
.
.
.
10
Total 10 Bilangan = .
Algoritma_Name Loop3
Var
Bil, Total : Numerik
Begin
Bil 1
1
Total 0
Repeat
Write(Bil)
Total Total +Bil
Bil Bil + 1
Until Bil > 10
2
Write(Total)
End
.
.
.
10
Total 10 Bilangan = .
AlgoritmaName Loop5
Var
Bil, Total : Numerik
Begin
Total 0
For Bil = 1 to 10 do
Write(Bil)
Total Total + Bil
Endfor
Writeln(Total 10 Bilangan = ,Total)
End
9.4. Struktur Pengulangan Bersarang (Nesteed Loop)
Struktur ini digunakan untuk melakukan pengulangan bersarang atau loop dalam loop.
Untuk menyelesaikan masalah yang tidak dapat diselesaikan dalam loop tunggal. Pengulangan
bersarang ini dapat dua, tiga atau lebih disesuaikan dengan solusi penyelesaian masalah algoritma
yang akan digunakan. Penerapan struktur ini dapat seragam atau digabung dengan sintak
penulisan sebagai berikut :
Struktur 1 :
While (Kondisi 1)
While (Kondisi 2)
- Statement
endwhile
Endwhile
Struktur 2 :
Repeat
Repeat
-Statement
Until (Kondisi2)
Until (Kondisi1)
Struktur 3 :
For varcounter1 = N To/DownTo N1 [Step N] Do
For varcounter2 = N To/DownTo N1 [Step N] Do
- Statement
Modul TIK3 Pikes-Poltekes Tasik Malaya
EndFor
EndFor
Menentukan Loop dalam dan Loop luar
Ditentukan berdasarkan pergerakan :
Loop bergerak pertama adalah loop dalam
Loop bergerak berikutnya adalah loop luar
Contoh :
k
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
b
Loop bergerak pertama adalah k, dan loop bergerak kedua adalah b. maka k adalah loop dalam
dan b adalah loop luar. Apabila diimplementasikan ke algoritma adalah :
Algoritma_Name NLoop
Var
b,k: Integer
Begin
B=1
While b <=4 do
For k = 1 to 5 do
write( k)
endfor
writeln;
b=b+1
Endwhile
End
Exercise:
Buat Algoritma untuk menampilkan deret dibawah ini :
1
12
123
1 2 3 4 dan
12345
1234
123
12
1
Pertemuan 10
Algoritma Procedure, Function dan ARRAY/LARIK
10.1. Modul Program
Modul digunakan untuk membagi algoritma/program yang besar menjadi potongan
program yang lebih kecil sehingga program yang besar dapat diselesaikan oleh beberapa orang
secara terpisah ( team work ) dengan tujuan untuk mempercepat pembuatan algoritma/program.
Modul dibagi dua yaitu :
1. Procedure
Adalah modul program yang dapat digunakan untuk membawa suatu nilai yang dapat
dipakai untuk modul itu sendiri, modul yang lain atau program utama.
Contoh :
AlgoritmaName ContohModul
Var
A,B : Numerik
Procedure BacaData
Begin
Read(A)
Read(B)
End
Procedure CetakData
Begin
Write(Nilai A : ,A)
Write(Nilai B : ,B)
End
Begin
BacaData
CetakData
End
2. Function
Modul program yang dapat digunakan untuk menghitung dan mengembalikan suatu nilai
yang dapat digunakan untuk modul itu sendiri, modul yang lain atau program utama.
Penulisan modul Function
Modul TIK3 Pikes-Poltekes Tasik Malaya
Faktorial 1
Else
Faktorial N*(Faktorial(N-1)
Endif
End
Begin
A5
Write(Nilai Faktorial : ,Faktorial(A))
End
Memanggil Function
Nama_Function[(Argument)]
Contoh :
AlgoritmaName Fungsi
Var
A,B : Numerik
Function Hitung : Numerik
Begin
Hitung = A * B
End
Begin
Read(A)
Read(B)
Write(Nilai Fungsi Hitung :, Hitung)
End
10.2. Array
Adalah deretan data terstruktur yang terdiri sejumlah elemen data dimana setiap elemen
data mempunyai type data yang sama.
Array dapat kita amati disekeliling kita seperti : Kereta api, Antrian Tiket, Sepeda motor dan lain
lain.
Array dapat memiliki dimensi satu, dua, tiga dan seterusnya.
1. Array 1 dimensi
Adalah array yang hanya memiliki satu kelompok elemen data yang dapat digunakan.
Perhatikan Gambar array dibawah ini :
Untuk variabel array A tersebut kita dapat memberikan type data integer, karakter, string dan
type data yang lain.
Deklarasi variabel array 1 dimensi :
Var
Nama_var : Array[1..N] of typedata
Contoh : Var A : Array[1..5] of integer
Variabel array diatas dapat digunakan untuk :
Input : Read(NamaVar[Elemen])
Contoh : Read(A[1])
Proses : NamaVar[Elemen] Nilai Data
Modul TIK3 Pikes-Poltekes Tasik Malaya
Contoh : A[1] 10
output : Write(NamaVar[Elemen])
Contoh : Write(A[1])
Algoritma_Name Array1
Var
A : Array[1..5] of integer
E : integer
Procedure isiarrayA
Begin
For E = 1 to 5 d0
Read(A[E])
Endfor
End
Procedure cetakarrayA
Begin
For E = 1 to 5 d0
Write(A[E])
Endfor
End
Begin
isiarrayA
cetakarrayA
End
2. Array Dua Dimensi
Adalah array yang mempunyai dua kelompok elemen data yaitu baris dan kolom.
Perhatikan gambar dibawah ini :
Endfor
Endfor
End
Procedure CetakArrayA
Begin
For b = 1 to 3 do
For k = 1 to 4 do
Write (A[b,k])
Endfor
Endfor
End
Begin
IsiArrayA
CetakArrayA
End
Studi kasus 1
Perhatikan Operasi penjumlahan matriks dibawah ini :
Buatlah algoritma dan program untuk membaca data array A,B dan menghitung operasi
penjumlahan array A dan B !
Studi Kasus 2
Perhatikan Operasi perkalian matriks dibawah ini :
Buatlah algoritma dan program untuk membaca data array A,B dan menghitung operasi perkalian
array A dan B !
Pertemuan 11
Algoritma Sorting
Sorting atau pengurutan data adalah proses yang sering harus dilakukan dalam
pengolahan data. Bahkan mesin otomatik yang pertama kali lahir adalah mesin pengurut, dan
masih dipakai sampai saat ini misalnya untuk menyortir surat berkode pos di kantor pos dengan
mesin terotomatisasi. Dibedakan dua macam pengurutan :
-
pengurutan internal, yaitu pengurutan terhadap sekumpulan data yang disimpan dalam
media internal komputer yang dapat diakses setiap elemennya secara langsung. Maka dapat
dikatakan sebagai pengurutan tabel.
pengurutan eksternal, yaitu pengurutan data yang disimpan dalam memori sekunder,
biasanya data bervolume besar sehingga tidak mampu untuk dimuat semuanya dalam
memori.
Algoritma pengurutan adalah salah satu contoh solusi algoritmik yang kaya : satu macam
dan persoalannya adalahDiberikan sebuah Tabel integer T [1..N] yang isinya sudah terdefinisi.
Tuliskan sebuah algoritma yang mengurutkan elemen tabel sehingga terurut membesar :
T1 T2 T3 ...... TN
Pengurutan dengan pencacahan adalah pengurutan yang paling sederhana. Jika diketahui
bahwa data yang akan diurut mempunyai daerah jelajah (range) tertentu, dan merupakan bilangan
bulat, misalnya [Min..Max] maka cara paling sederhana untuk mengurut adalah :
1. Sediakan array TabCount [Min..Max] yang diinisialisasi dengan nol, dan pada akhir proses
TabCounti berisi banyaknya data pada tabel asal yang bernilai i.
2. Tabel dibentuk kembali dengan menuliskan kembali haraa-harga yang ada.
Catatan : TabCount Tii dituliskan untuk menunjukkan bahwa indeks T adalah i, dan Ti
merupakan indeks dari TabCount.
Cermati ulang kebenaran algoritma di atas, dan gantilah search dengan boolean Pencarian
dengan sentinel dapat dimanfaatkan pada Insertion Sort. Pada kasus ini, sentinel ditaruh pada T0
karena pada tahapan ke Pass, pencarian sekuensial dilakukan pada T [pass-1..1]. Berikut ini
adalah algoritma untuk Insertion sort dengan sentinel :
sebagai "pass").Pada setiap Pass, tabel "terdiri dari" dua bagian : bagian yang sudah terurut yaitu
[1..Pass-1] dan ide dasarnya adalah mengapungkan elemen ke "pass" sampai pada tempatnya.
Pertemuan 12
Algoritma Searching
Searching (pencarian) merupakan proses yang fundamental dalam pengolahan data.
Pencarian adalah menemukan nilai data tertentu didalam sekumpulan data yang bertipe sama
(baik bertipe dasar atau bertipe bentukan).
Pencarian data digunakan untuk :
-
Insert
Update
Delete dan
Report
SequentialSearch(pencarianberurutan)
Diberikan larik L yang sudah terdefinisi elemen-elemennya, dan x adalah elemen yang bertipe
sama dengan elemen larik L, carilah x didalam larik L.
Hasil atau keluaran dari persoalan pencarian dapat bermacam-macambergantung pada pesifikaasi
rinci dari persoalan tersebut, misalnya :
a. Pencarian hanya untuk memeriksa keberadaan x, keluaran yang diinginkan misalnya pesan
bahwa x ditemukan atau tidak ditemukan didalam larik.
b. Hasil pencarian adalah indeks elemen larik. Jika x ditemukan maka indeks elemen larik
tempat x berada diisikan kedalam idx. Jika x tidak terdapat didalam larik L, maka idx diisi
dengan harga khusus , misalnya -1
c. Hasil pencarian adalah sebuah nilai boolean yang menyatakan status hasil pencarian. Jika x
ditemukan maka sebuah perubah bertipe boolean, misalnya ketemu diisi dengan nilai true,
sebaliknya diisi dengan nilai false. Hasil pencarian ini selanjutnya disimpulkan pada bagian
pemanggilan prosedur.
Contoh :
Perhatikan larik L diatas :
Misalkan x=68, maka ketemu=true, dan x=100, maka ketemu=false.
(1) If idx <> -1 then {x ditemukan}
L[idx] L[idx]+1 (manipulasi nilai x)
Endif
else
write(x,tidak ditemukan)
endif
Untuk masing-masing algoritma, tipe larik yang digunakan didefinisikan dibagian deklarasi
global . Larik L bertipe larik integer.
Const
Nmax = 100 {jumlah maximum elemen larik}
Type
Larikint = array[1..Nmax] of integer
1. Algoritma pencarian Seguential
Adalah proses membandingkan setiap elemen larik satu persatu secara beruntun, mulai dari
elemen pertama sampai elemen yang dicari ditemukan, atau seluruh elemen sudah diperiksa.
Contoh perhatikan larik L dibawah ini dengan n=6 elemen
if L[i]=x then
return (true)
else
return (false)
endif
End
Procedure SeqSearch2( L : Larikint, n: integer, x : integer, idx : integer)
Var
i : integer
Begin
i1
While (i < n) and (L[i] <> X) do
i i +1
endwhile
if L[i]=x then
idx i
else
idx -1
endif
End
Function SeqSearch1( L : Larikint, n: integer, x : integer) integer
Var
i : integer
Begin
i1
While (i < n) and (L[i] <> X) do
i i +1
endwhile
if L[i]=x then
return (i)
else
return (-1)
endif
End
Procedure SeqSearch3( L : Larikint, n: integer, x : integer, ketemu : boolean)
Var
i : integer
Begin
i1
Ketemu false
While (i <= n) and (not ketemu) do
if L[i]=x then
ketemu true
else
ii+1
endif
endwhile
End
Function SeqSearch4( L : Larikint, n: integer, x : integer) boolean
Var
i : integer
Begin
i1
Ketemu false
While (i <= n) and (Not ketemu) do
Modul TIK3 Pikes-Poltekes Tasik Malaya
Disusun Oleh : Amroni. M.Kom # 49
if L[i]=x then
Ketemu true
return(ketemu)
else
ii+1
endif
i i +1
endwhile
End
2. Algoritma Binary Search
Algoritma yang digunakan untuk pencarian data dengan waktu yang cepat. Prinsip
pencarian dengan membagi data atas dua bagian. Data yang tersimpan dalam larik harus sudah
terurut. Misalkan indeks kiri adalah i dan indeks kanan adalah j. pada mulanya i diinisialisasi
dengan 1. dan j dengan n.
Langkah Pencarian :
1. Bagi dua elemen larik pada elemen tengah . Elemen tengah adalah elemen dengan indeks
k = (i+j) div
2. elemen tengah L[k] membagi larik menjadi dua bagian yaitu bagian kiri L[i..k] dan bagian
kanan L[k+1..j].Periksa apakah L[k]=x. jika L[k]=x, pencarian selesai sebab x sudah
ditemukan. Tetapi jika L[k]<>x harus ditentukan apakah pencarian akan dilakukan dilarik
bagian kiri atau dibagian kanan. Jika L[k] < x, maka pencarian dilakukan lagi pada larik
bagian kiri. Sebaliknya jika L[k] > x pencarian dilakukan lagi pada larik bagian kanan.
3. Ulangi langkah 1 hingga x ditemukan atau i > j (yaitu ukuran larik sudah nol).
Contoh : misalkan diberikan larik L dengan delapan buah elemen yang sudah terurut menurun :
idx -1
endif
end
Tugas :
Implementasikan algoritma diatas kedalam program dan amati kecepatan pencarian antara
sequential search dengan binary search.
Pertemuan 13
Implementasi algoritma dalam bidang RMIK
Proses rekam medik data pasien dapat diterapkan dengan memanfaatkan data terstruktur array
atau record. Data yang telah tersimpan kedalam data terstruktur tersebut dapat digunakan dalam
proses pengurutan atau pencarian data pasien. Penerapan kasus tersebut dapat diselesaikan
dengan disain form program seperti gambar dibawah ini :
Algoritmanya
Flwchartnya dan
Programnya !
Kembangkanlah data diatas dihubungkan dengan data penyakit, pemeriksaan medis dan
pemberian obat kepada pasien.
Modul TIK3 Pikes-Poltekes Tasik Malaya
Daftar Pustaka
1.
2.
3. Rinaldi Munir, 2005, Algoritma dan Pemrograman dalam Bahasa Pascal dan C, Bandung :
Penerbit Informatika
4. Ebook/Internet