algoritma pemrograman - ifa's teknik informatika-unijoyo 3 pendahuluan • teks algoritma yang...
TRANSCRIPT
S1 Teknik Informatika-Unijoyo 1
Algoritma Pemrograman
Pertemuan Ke-2(Teks Algoritma)
:: Noor Ifada ::
S1 Teknik Informatika-Unijoyo 2
Sub Pokok Bahasan
PendahuluanJudul AlgoritmaDeklarasiDeskripsiTranslasi Teks Algoritma ke dalam Teks Program Bahasa PascalTabel Translasi
S1 Teknik Informatika-Unijoyo 3
Pendahuluan
• Teks algoritma yang dimaksud di sini adalah teks pseudocode yang dianggap perlu untuk menjembatani keragaman dan kompleksitas bahasa sehingga dapat dilakukan “abstraksi”
• Teks ini lebih berorientasi kepada detail design dibandingkan coding, (merupakan rancangan secara prosedural yang selanjutnya dengan mudah dapat ditranslasi menjadi salah satu program dalam bahasa tertentu)
• Di sini contoh bahasa pemrograman yang digunakan adalah Bahasa Pascal. Jadi dalam pembahasan berikutnya, translasi teks algoritma adalah ke dalam teks program Bahasa Pascal.
S1 Teknik Informatika-Unijoyo 4
• Bagian-bagian (blok) dalam teks algoritma: – bagian judul (header) algoritma – bagian deklarasi– bagian deskripsi algoritma
• Setiap bagian disertai dengan komentar untuk memperjelas maksud teks yang dituliskan. Komentar adalah kalimat yang diapit oleh pasangan tanda kurung kurawal (‘{‘ dan ‘}’).
Algoritma NAMA_ALGORITMA{ Penjelasan mengenai algoritma, yang berisi uraian singkat
mengenai apa yang dilakukan oleh algoritma }DEKLARASI{ Semua nama yang dipakai, meliputi nama tipe, nama tetapan,
nama peubah, nama prosedur dan nama fungsi didefinisikan di sini }
DESKRIPSI :{ Semua langkah atau aksi algoritma dituliskan di sini }
S1 Teknik Informatika-Unijoyo 5
Judul Algoritma
• Judul algoritma adalah terdiri dari nama dan penjelasan (spesifikasi) tentang algoritma tersebut
• Nama algoritma yang digunakan sebaiknya singkat akan tetapi sudah dapat menggambarkan apa yang dilakukan oleh algoritma tersebut. Biasanya di bawah nama algoritma diberi penjelasan singkat mengenai apa yang dilakukan oleh algoritma. Penjelasan semacam ini sering kali disebut sebagai spesifikasi algoritma. Algoritma yang akan ditulis nantinya harus sesuai dengan spesifikasi yang didefinisikan.Algoritma LUAS_PERSEGI_PANJANG{ Menghitung luas persegi panjang dengan masukan ukuran panjang dan
ukuran lebar, lalu mencetak hasil luas persegi panjang ke piranti keluaran}
S1 Teknik Informatika-Unijoyo 6
Deklarasi• DEKLARASI adalah merupakan tempat untuk mendefinisikan berbagai
macam nama, yaitu:– Nama tipe– Nama konstanta– Nama informasi/peubah (nama variabel)– Nama fungsi, sekaligus spesifikasinya– Nama prosedur, sekaligus spesifikasinya
• Semua nama tersebut baru dapat digunakan jika telah didefinisikan di dalam DEKLARASI. Penulisan sekumpulan nama dalam DEKLARASI sebaiknya dikelompokkan menurut jenis nama tersebut.
• Dalam pendefinisian nama-nama, ada ketentuan-ketentuan yang harus diperhatikan: – Nama peubah belum terdefinisi harganya ketika didefinisikan. – Pendefinisian konstanta sekaligus juga memberikan harganya. – Pendefinisian nama fungsi sekaligus juga dengan domain dan
range serta spesifikasinya. – Pendefinisian nama prosedur sekaligus juga dengan pendefinisian
parameter (jika ada) dan spesifikasi prosedur (kondisi awal, kondisi akhir dan proses yang dilakukan).
S1 Teknik Informatika-Unijoyo 7
DEKLARASI{ Nama tipe, hanya untuk tipe yang bukan tipe dasar }type Titik : <X:real,Y:real> { koordinat pada sumbu kartesian }{ Nama konstanta, harus menyebutkan nilai }const phi = 3.14{ Nama peubah (variabel), menyebutkan tipe }P : Titik { Titik dalam derajat kartesian }jmlh : integer { Jumlah suatu elemen }ketemu : boolean { Keadaan hasil pencarian }{ Spesifikasi Fungsi, menyebutkan nama fungsi, domain dan range }function Konversi_Real_Ke_Integer(input i:real)→integer{ Mengkonversi harga i yang bertipe real menjadi harga ekivalen yang
bertipe integer }{ Spesifikasi Prosedur, menyebutkan nama, parameter, kondisi awal,
kondisi akhir dan proses }procedure Tukar(input/output A:integer, input/output B:integer){ Kondisi awal : A dan B terdefinisi, A=a dan B=b }{ Kondisi akhir : A=b dan B=a }{ Proses : Mempertukarkan nilai A dan B }
S1 Teknik Informatika-Unijoyo 8
• Dalam bahasa pemrograman, setiap nama memiliki aturan penulisan atau sintaks tertentu, misalnya aturan yang menyangkut karakter yang diperbolehkan, jumlah maksimum karakter, dan sebagainya. Di dalam teks algoritma, tidak terdapat aturan ketat mengenai nama. Hal yang perlu diperhatikan adalah bahwa pemilihan nama harus tidak menimbulkan kerancuan dan jika nama yang digunakan adalah singkat maka harus disertai dengan penjelasannya. Sebuah nama harus dituliskan secara utuh dan tidak boleh dipisahkan dengan spasi.
• Deklarasi global atau umum dikenal untuk seluruh program sedangkan deklarasi lokal hanya dikenal pada teks algoritma tempat deklarasi tersebut dituliskan.
S1 Teknik Informatika-Unijoyo 9
Deskripsi• DESKRIPSI adalah bagian inti dari algoritma. Bagian ini
berisi instruksi-instruksi atau pemanggilan aksi-aksi yang telah didefinisikan. Komponen di dalam teks algoritma dapat berupa:– Instruksi dasar seperti input/output, assignment– Urutan (sequence)– Pemilihan– Pengulangan
DESKRIPSI:read(a)b←a mod 2if b = 0 thenwrite(‘bilangan genap’)elsewrite(‘bilangan ganjil’)endif
S1 Teknik Informatika-Unijoyo 10
Translasi Teks Algoritma ke dalam Teks Program Bahasa Pascal
• Teks algoritma adalah hasil pemikiran yang konseptual. Agar dapat dilaksanakan oleh komputer maka algoritma harus ditranslasi ke dalam notasi bahasa pemrograman.
• Struktur program Pascal juga terdiri dari tiga bagian:– Judul Program sifatnya adalah optional dan tidak signifikan di dalam
program. Jika dituliskan dapat digunakan untuk memberi nama program dan sifatnya sebagai dokumentasi saja. Judul program jika ditulis, harus terletak pada awal program dan diakhiri dengan titik koma.
– Bagian Deklarasi digunakan bila di dalam program menggunakan pengenal (identifier). Identifier dapat berupa label, konstanta, tipe, peubah, prosedur dan fungsi. Jika suatu program menggunakan identifier, Bahasa Pascal menuntut supaya identifier tersebut dikenalkan terlebih dahulu sebelum digunakan, yaitu dideklarasikan terlebih dahulu di dalam bagian ini.
– Bagian Deskripsi menunjukkan suatu tindakan yang dikerjakan oleh program. Tindakan yang dilakukan oleh program tergantung pada instruksi-instruksi yang diberikan. Instruksi-instruksi yang akan diberikan untuk dikerjakan ditulis di antara kata cadangan Begin dan End. Akhir penulisan dari End diakhiri dengan tanda baca titik (‘.’). Yang perlu diperhatikan bahwa setiap instruksi per barisnya diakhiri dengan tanda baca titik koma (‘;’).
S1 Teknik Informatika-Unijoyo 11
Algoritma NAMA_ALGORITMA{ Penjelasan mengenai algoritma, yang
berisi uraian singkat mengenai apa yang dilakukan oleh algoritma }
DEKLARASI{ Semua nama yang dipakai, meliputi
nama tipe, nama tetapan, nama peubah, nama prosedur dan nama fungsi didefinisikan di sini }
DESKRIPSI :{ Semua langkah atau aksi algoritma
dituliskan di sini }
program NAMA_PROGRAM;{ Penjelasan mengenai program, yang
berisi uraian singkat mengenai apa yang dilakukan oleh program }
(* DEKLARASI *)[const]{ semua nama tetapan dan harga
tetapannya didefinisikan di sini }[type]{ semua nama tipe bentukan didefinisikan
di sini }[var]{ semua nama peubah global didefinisikan
di sini }{ deklarasi prosedur dan fungsi
didefinisikan di sini }(* DESKRIPSI *)begin{ semua instruksi program dituliskan di
sini }end.
ALGORITMA PASCAL
S1 Teknik Informatika-Unijoyo 12
• Contoh translasi dari teks algoritma ke teks bahasa pemrograman Pascal untuk mendapatkan hasil sebagai berikut:
012345
• Untuk mendapatkan hasil seperti di atas, pada bagian deskripsi digunakan instruksi dengan struktur pengulangan While-Do
S1 Teknik Informatika-Unijoyo 13
Algoritma PENAMBAHAN_SATU{ Menampilkan penambahan satu dari
suatu bilangan bulat, dimulai dari 0 sampai dengan 5 }
DEKLARASII : integer { peubah data bilangan
bulat }DESKRIPSI:I ← 0while I ≤ 5 dowrite(I)I←I + 1endwhile{ I > 5 }
program PENAMBAHAN_SATU;{ Menampilkan penambahan satu dari
suatu bilangan bulat, dimulai dari 0 sampai dengan 5 }
(* DEKLARASI *)[var]I : integer { peubah data bilangan
bulat }(* DESKRIPSI *)begin I := 0; while I <= 5 do begin writeln(I); I := I + 1; end;end.
ALGORITMA PASCAL
S1 Teknik Informatika-Unijoyo 14
Beberapa hal penting yang harus diketahui dari bahasa Pascal:
• Bahasa Pascal tidak membedakan nama yang ditulis dalam huruf besar ataupun huruf kecil. Jadi Bahasa Pascal tidak bersifat case sensitive. Misalnya:– I sama saja dengan i– penambahan_satu sama saja dengan
PENAMBAHAN_SATU• Komentar ditulis di antara tanda “{“ dan “}” atau
di antara “(*” dan “*)”• Program Pascal tidak mengenal aturan penulsian di
kolom tertentu, jadi boleh dituliskan mulai kolom ke berapapun. Penulisan instruksi-instruksi yang menjorok masuk beberapa kolom tidak memiliki pengaruh apapun di dalam proses. Hal ini hanya dimaksudkan untuk mempermudah pembacaan atau dokumentasi program, sehingga akan lebih terlihat bagian-bagiannya.
S1 Teknik Informatika-Unijoyo 15
Tabel Translasi• Notasi Algoritma ke dalam Notasi
Bahasa Pascal• Notasi Algoritma Pengisian Nilai,
Pembacaan dan Penulisan ke dalam Notasi Bahasa Pascal
• Notasi Algoritma Struktur Penyeleksian ke dalam Notasi Bahasa Pascal
• Notasi Algoritma Struktur Pengulangan ke dalam Notasi Bahasa Pascal
• Notasi Algoritma Prosedur ke dalam Notasi Bahasa Pascal
• Notasi Algoritma Fungsi ke dalam Notasi Bahasa Pascal
S1 Teknik Informatika-Unijoyo 16
Notasi Algoritma ke dalam Notasi Bahasa Pascal
recordfield1: type;field2: type; . . .fieldN: type;end;
record<field1: type,field2: type, . . .fieldN: type>
StringString[n]
string
Charchar
realdoubleextended
real
1 byte1 byte2 byte2 byte1 byte
byteshortintwordintegerlongint
integer
booleanboolean1. Tipe Dasar
Ket.PascalAlgoritmikKelompok
S1 Teknik Informatika-Unijoyo 17
Ket.PascalAlgoritmikKelompok
consttypetruefalse
consttypetruefalse
4. Lain-lain
{ komentar }(* komentar *)
{ komentar }3. Komentar
notandorxor
notandorxor
c. Logika
<<=>>==<>
<≤>≥=≠
b. Perbandingan
+−*/divmod
+−*/divmod
a. Aritmatika
2. Operator
S1 Teknik Informatika-Unijoyo 18
Notasi Algoritma Pengisian Nilai, Pembacaan dan Penulisan ke dalam Notasi
Bahasa Pascal
writewriteln
write3. Penulisan
readreadln
read2. Pembacaan
:=←1. Penugasan
PascalAlgoritmikKelompok
Menulis keluaran ke layar, lalu kursor pindah ke baris berikutnya:writeln
Menulis keluaran ke layar, kursor tetap di baris yang sama:write
Membaca masukan dari keyboard, lalu kursor pindah ke baris berikutnya:readln
Membaca masukan dari keyboard, kursor tetap di baris yang sama:read
S1 Teknik Informatika-Unijoyo 19
Notasi Algoritma Struktur Pemilihan ke dalam Notasi Bahasa Pascal
Cara 1:case nama ofnilai1 : aksi1;nilai2 : aksi1;..nilaiN : aksiN;[else aksiX]end;Cara 2:if kond1 thenaksi1elseif kond2 thenaksi2else ...
case nama<kond1> : aksi1<kond1> : aksi1..<kondN> : aksiN[otherwise aksiX]endcase
3. CASE
if <kondisi> thenaksi1elseaksi2;(*endif*)
if <kondisi> thenaksi1elseaksi2endif
2. IF-THE-ELSE
if <kondisi> thenbeginaksi1;aksi2;..aksiNend; (*if*)
if <kondisi> thenaksiendif
1. IF-THEN
PascalAlgoritmikStruktur
S1 Teknik Informatika-Unijoyo 20
Notasi Algoritma Struktur Pengulangan ke dalam Notasi Bahasa Pascal
repeataksi;until kondisi;
repeataksiuntil kondisi
3. REPEAT
while kondisi dobeginaksi1;aksi2;..aksiN;end; (*while*)
while kondisi doaksiendwhile
2. WHILE
For menurun:for pencacah:=b dowmto a dobeginaksi1;aksi2;..aksiN;end; (*for*)
For menurun:for pencacah←b downto a doaksiendfor
For menaik:for pencacah:=a to b dobeginaksi1;aksi2;..aksiN;end; (*for*)
For menaik:for pencacah←a to b doaksiendfor
1. FOR
PascalAlgoritmikStruktur
S1 Teknik Informatika-Unijoyo 21
Notasi Algoritma Prosedur ke dalam
Notasi Bahasa Pascal
• Prosedur Tanpa Parameter • Prosedur dengan Parameter Masukan • Prosedur dengan Parameter Keluaran • Prosedur dengan Parameter
Masukan/Keluaran
S1 Teknik Informatika-Unijoyo 22
Prosedur Tanpa Parameter
procedure NAMA_PROSEDUR{ Spesifikasi Prosedur, menyebutkan
nama, parameter, kondisi awal, kondisi akhir dan proses }
{ Kondisi awal : keadaan sebelum prosedur dilaksanakan }
{ Kondisi akhir : keadaan setelah prosedur dilaksanakan }
DEKLARASI{ Semua nama yang dipakai prosedur
didefinisikan di sini dan hanya berlaku lokal }
DESKRIPSI :{ badan prosedur, berisi semua
langkah atau aksi algoritma }
procedure NAMA_PROSEDUR;{ Spesifikasi Prosedur, menyebutkan nama,
parameter, kondisi awal, kondisi akhir dan proses }
{ Kondisi awal : keadaan sebelum prosedur dilaksanakan }
{ Kondisi akhir : keadaan setelah prosedur dilaksanakan }
(* DEKLARASI *){ Semua nama yang dipakai prosedur
didefinisikan di sini dan hanya berlaku lokal }
(* DESKRIPSI *)begin{ badan prosedur, berisi semua langkah
atau aksi }end;
Cara memanggil prosedur:NAMA_PROSEDUR;
ALGORITMA PASCAL
S1 Teknik Informatika-Unijoyo 23
Prosedur dengan Parameter Masukan
procedure NAMA_PROSEDUR(input parameter : tipe_param)
{ Spesifikasi Prosedur, menyebutkan nama, parameter, kondisi awal, kondisi akhir dan proses }
{ Kondisi awal : keadaan sebelum prosedur dilaksanakan }
{ Kondisi akhir : keadaan setelah prosedur dilaksanakan }
DEKLARASI{ Semua nama yang dipakai prosedur
didefinisikan di sini dan hanya berlaku lokal }
DESKRIPSI :{ badan prosedur, berisi semua langkah
atau aksi algoritma }
procedure NAMA_PROSEDUR(parameter : tipe_param);
{ Spesifikasi Prosedur, menyebutkan nama, parameter, kondisi awal, kondisi akhir dan proses }
{ Kondisi awal : keadaan sebelum prosedur dilaksanakan }
{ Kondisi akhir : keadaan setelah prosedur dilaksanakan }
(* DEKLARASI *){ Semua nama yang dipakai prosedur
didefinisikan di sini dan hanya berlaku lokal }
(* DESKRIPSI *)begin{ badan prosedur, berisi semua langkah
atau aksi }end;
Cara memanggil prosedur:NAMA_PROSEDUR(parameter_aktual);
ALGORITMA PASCAL
S1 Teknik Informatika-Unijoyo 24
Prosedur dengan Parameter Keluaran
procedure NAMA_PROSEDUR(output parameter : tipe_param)
{ Spesifikasi Prosedur, menyebutkan nama, parameter, kondisi awal, kondisi akhir dan proses }
{ Kondisi awal : keadaan sebelum prosedur dilaksanakan }
{ Kondisi akhir : keadaan setelah prosedur dilaksanakan }
DEKLARASI{ Semua nama yang dipakai prosedur
didefinisikan di sini dan hanya berlaku lokal }
DESKRIPSI :{ badan prosedur, berisi semua langkah
atau aksi algoritma }
procedure NAMA_PROSEDUR(var parameter : tipe_param);
{ Spesifikasi Prosedur, menyebutkan nama, parameter, kondisi awal, kondisi akhir dan proses }
{ Kondisi awal : keadaan sebelum prosedur dilaksanakan }
{ Kondisi akhir : keadaan setelah prosedur dilaksanakan }
(* DEKLARASI *){ Semua nama yang dipakai prosedur
didefinisikan di sini dan hanya berlaku lokal }
(* DESKRIPSI *)begin{ badan prosedur, berisi semua langkah
atau aksi }end;
Cara memanggil prosedur:NAMA_PROSEDUR(parameter_aktual);
ALGORITMA PASCAL
S1 Teknik Informatika-Unijoyo 25
Prosedur dengan Parameter Masukan/Keluaran
procedure NAMA_PROSEDUR(input/outputparameter : tipe_param)
{ Spesifikasi Prosedur, menyebutkan nama, parameter, kondisi awal, kondisi akhir dan proses }
{ Kondisi awal : keadaan sebelum prosedur dilaksanakan }
{ Kondisi akhir : keadaan setelah prosedur dilaksanakan }
DEKLARASI{ Semua nama yang dipakai prosedur
didefinisikan di sini dan hanya berlaku lokal }
DESKRIPSI :{ badan prosedur, berisi semua langkah
atau aksi algoritma }
procedure NAMA_PROSEDUR(var parameter : tipe_param);
{ Spesifikasi Prosedur, menyebutkan nama, parameter, kondisi awal, kondisi akhir dan proses }
{ Kondisi awal : keadaan sebelum prosedur dilaksanakan }
{ Kondisi akhir : keadaan setelah prosedur dilaksanakan }
(* DEKLARASI *){ Semua nama yang dipakai prosedur
didefinisikan di sini dan hanya berlaku lokal }
(* DESKRIPSI *)begin{ badan prosedur, berisi semua langkah
atau aksi }end;
Cara memanggil prosedur:NAMA_PROSEDUR(parameter_aktual);
ALGORITMA PASCAL
S1 Teknik Informatika-Unijoyo 26
Notasi Algoritma Fungsi ke dalam Notasi Bahasa Pascal
function NAMA_FUNGSI(input daftar parameter formal)→tipe_hasil
{ Spesifikasi Fungsi, menjelaskan apa yang dilakukan dan dikembalikan oleh fungsi }
DEKLARASI{ Semua nama yang dipakai fungsi
didefinisikan di sini dan hanya berlaku lokal }
DESKRIPSI :{ badan fungsi, berisi semua langkah
atau aksi algoritma untuk menghasilkan nilai yang akan dikembalikan }
return hasil { pengembalian nilai yang dihasilkan fungsi }
function NAMA_FUNGSI(daftar parameter formal) : tipe_hasil;
{ Spesifikasi Fungsi, menjelaskan apa yang dilakukan dan dikembalikan oleh fungsi }
(* DEKLARASI *){ Semua nama yang dipakai fungsi
didefinisikan di sini dan hanya berlaku lokal }
(* DESKRIPSI *)begin{ badan fungsi, berisi semua langkah
atau aksi algoritma untuk menghasilkan nilai yang akan dikembalikan }
NAMA_FUNGSI:=hasil; { pengembalian nilai yang dihasilkan fungsi }
end;
ALGORITMA PASCAL
S1 Teknik Informatika-Unijoyo 27
Summary
• Teks algoritma adalah hasil pemikiran yang konseptual. Agar dapat dilaksanakan oleh komputer maka algoritma harus ditranslasi ke dalam notasi bahasa pemrograman.
• Judul algoritma adalah bagian algoritma yang terdiri dari nama dan penjelasan (spesifikasi) tentang algoritma tersebut
• Deklarasi adalah bagian dari teks algoritma yang merupakan tempat untuk mendefinisikan nama tipe, nama konstanta, nama informasi/peubah (nama variabel), nama fungsi (sekaligus spesifikasinya) dan nama prosedur (sekaligus spesifikasinya)
• Deskripsi merupakan uraian langkah-langkah penyelesaian masalah. Setiap langkah algoritma dibaca dengan urutan dari “atas” ke “bawah”. Urutan penulisan ini akan menentukan urutan pelaksanaan perintah.
S1 Teknik Informatika-Unijoyo 28
Daftar Pustaka
• Andri Kristanto [2003]. Algoritma dan Pemrograman dengan C++, Graha Ilmu, Yogyakarta.
• Jogiyanto HM [1989]. Turbo Pascal, Andi Offset, Yogyakarta.
• Noor Ifada [2005]. Diktat Matakuliah Algoritma Pemrograman, Hibah Kompetisi A1, Jurusan Teknik Informatika, Universitas Trunojoyo.
• Rinaldi Munir [2003]. Algoritma dan Pemrograman dengan Pascal dan C edisi Kedua, Penerbit Informatika, Bandung.