You are on page 1of 17

Bab I

Pengenalan Algoritma
Terlebih dahulu yang harus kita ketahui adalah masalah programmer. Dan tugas - tugas dari programmer tersebut adalah Analisis Masalah yaitu membatasi antara input, proses dan output. Pembuatan dan pengembangan Algoritma. o Flow Chart o Pseude Code Pemilihan Program Pemrograman Dasar / Murni Pemrograman Pascal Pemrograman C++ Pemrograman basic Pemrograman Dbase Pemrograman $ % Pemrograman Data Base Lanjutan Pemrograman Delphi Pemrograman C++ Builder atau Delphi Pemrograman !isual Basic Pemrograman !isual "o# pro Pemrograman &racle

Pemeriksaan Program. Men'alankan Program ( Test )un * Pemeliharaan dan pengembangan Program + o Media yang digunakan adalah Disket o Media yang digunakan kapasitas lebih dari ,,-- Mb adalah CD o Media yang digunakan kapasitas lebih dari .// Mb adalah 0arddisk

A. Pengertian Algoritma Algoritma adalah suatu langkah untuk menyelesaikan masalah dengan bantuan logika dan ditulis secara sistematis. Elemen dasar yang digunakan dalam Algoritma adalah sebagai berikut : Pengenalan Abjad, Huruf atau Character . disini kita harus bisa membedakan antara A .. Z atau a .. ! . Pengenalan Angka numeric atau bilangan bulat : ", #, $, %&&. 'st. Pengenalan s(ecial karakter : ), *, +, ,, -, ., &.dll. Pengenalan /nterfier yaitu fungsi 0 fungsi key1ord yang ada di algoritma se(erti 2rite, /f then else, for , 1hile, case of, read sby. Pengenalan eks(resi adalah (erhitungan yang menggabungkan o(erator hitung. Contoh : Tunjangan adalah 25% * Gapok D=
b $ 4ac

Tunj = 0,25 * Gapok3

D = ((B*B !("*a*# $0,5

Dan priorita% utama &ang dilak%anakan perhitungan oleh #omputer ' (ang menggunakan Tanda )urung ( * (ang menggunakan Tanda Pangkat ( $ * (ang menggunakan Tanda )ali ( * * (ang menggunakan Tanda Bagi ( + * Tanda Bagi ter,agi ata% dua ' -od adalah .i%a Pem,agian ' /0 mod 2 = 00 /0 mod 1 = / Di2 adalah 3a%il Pem,agian ' /0 di2 2 = 50 /0 di2 1 = 1 (ang menggunakan Tanda Plu% ( 4 * (ang menggunakan Tanda )urang ( ! * B* 5lo6 7hart 5istem (enyajian yang beru(a diagram grafis untuk menentukan (rosedur kerja atau diagram alir. 6entuk umum dari 7lo1 Chart : memulai ( Begin mengakhiri ( 9nd

8ooping ( Pengulangan

De#i%ion atau %ele#tion ( Pemilihan

Pro%e%

7one#tor ( Alat Penghu,ung ke 5ile

Gari% Penghu,ung 5lo6 7hart

Do#ument Tempat Pen&impanan 5ile %ementara

)a%u%' 6uatlah flo1 Chart untuk menghitung 'iskriminasi: '8 7ara Pen&ele%aiann&a' :nput Pro%e% =utput ' ;,,a,#< ' ;D=((,*, !("*a*# $0,5< ' ;D< Program Di%krimina%i
b $ 4ac

:nput ;,,a,#<

D=((,*, !("*a*# $0,5

=utput ;D<

Do#ument Di%krimina%i 9>D

C. P%eude 7ode 5ystem (enulisan yang aturan (enulisannya sudah berdasarkan (rogram terstruktur yang satu sama lain saling berhubungan untuk menjadi (rogram yang utuh. 6entuk (enulisannya : Algoritma >ame ' ? @udul Pogram A Bar >ama 2aria,le ' tipe data ? pendeklara%ian tipe data A Begin ? -emulai Program A Cead ? -em,a#a :nputan A .tatement ? Badan Program A Drite ? -en#etak =utput A 9nd* ? mengakhiri program A 9i(e data adalah kum(ulan dari huruf, angka, simbol yang berfungsi untuk menyim(an nilai di memory com(uter. 9i(e data yang sering digunakan dalam (rogram antara lain: 6yte adalah bilangan bulat yang berka(asitas :"..$;;< digit. 5hortinteger adalah bilangan bulat yang berka(asitas :0 #$=..#$>< digit. 2ord adalah bilangan bulat yang berka(asitas :"..?;;%;< digit. /nteger adalah bilangan bulat yang berka(asitas :@%$>?=..%$>?><digit. Aong/nteger adalah bilangan bulat yang berka(asitas :@$#4>4=%?4=.. $#4>4=%?4>. Beal adalah bilangan decimal yang berka(asitas :$,CD#"@%C..#,>D#"%=< digit. 5ingle adalah bilangan decimal yang berka(asitas :#,;D#"@4;..%,4D#"%=< digit. 'ouble adalah bilangan decimal yang berka(asitas :;,"D#" @%$4 .. #,>D#"%="< digit. EEtended adalah bilangan decimal yang berka(asitas :%,4D#" @4C%$ .. #,#D#"4C%$< digit. Char adalah huruf yang berka(asitas # huruf atau character. 5tring adalah huruf yang berka(asitas $ milyar huruf. Tata #ara penuli%an nama 2ari,el antara lain ' 9idak boleh menggunakan blank atau s(asi. Fama 5is1a : string3 : 5alah < FamaG5is1a : string3 : 6enar < 9idak boleh didahului dengan angka. #Ha(ok Ha(ok# : longint3 : 5alah < : longint3 : 6oleh <

9idak boleh menggunakan s(ecial character. )nama Ha(okI : string3 : 5alah < : longint3 : 5alah <

9idak boleh menggunakan interfaier. 2riteGnama Ha(okGfor : string3 : 5alah < : longint3 :5alah <

7ontoh ka%u%'
Buatlah P%eude 7ode untuk menukar i%i tempat dar a ke , dan , ke a* 7ara pen&ele%aiann&a' )eadaan a6al Belum dipro%e% )eadaan akhir %udah dipro%e%

A
/00

B
50

A
50

B
/00

A
:nput ' ; A, B, 7 < Pro%e%' ; A ke 7, B ke A, 7 ke B < =utput' ; A, B < Algoritma >ame' ; TukarETempat <0 Bar A, B, 7 ' integer0 Begin Cead(:nput 0 A=70 B=A0 7=B0 Drite(=utput 0 9nd* /00

2 /
7
0

B
50

Ba, :: De#e%ion + .ele#tion ( Pemilihan


'idalam (emrograman kita ada bebera(a langkah yang a(abila ada (emilihan itu kita menggunakan langkah decesion. 'idalam (emrograman syntaE : Aturan < (enulisan ada $ macam: /* :F then el%e 9nd iF Pro%e% pemilihan &ang menggunakan kondi%i ( ?, A, ?=, A=, = * .&ntaG penuli%ann&a ' :F ()ondi%i!/ Then ( .tatement H / 9l%e iF ( )ondi%i H 2 Then ( .tatement H 2 9l%e iF ( )ondi%i H 1 Then ( .tatement H 1 9l%e ( .tatement H n 9nd iF 7ontoh )a%u% ' Buatlah algoritma dalam ,entuk P%eudeu 7ode untuk menghitung >ilai Akhir -aha%i%6a* Dengan )etentuan >:-, >ama -aha%i%6a, Alamat -aha%i%6a, @uru%an, >ilai IA., >ilai IT., >ilai JuiK dan >ilai Tuga%* Intuk men#ari >ilai Akhir Adalah "0% * >ilai Ia% ditam,ah 10% * >ilai IT. ditam,ah 20% * >ilai JuiK ditam,ah /0% * >ilai Tuga%* >ilai Akhir ditentukan oleh >ilai Grade* @ika >ilai Akhir A L5 maka >ilai Grade = MAN @ika >ilai Akhir A O5 maka >ilai Grade = MBN @ika >ilai Akhir A P5 maka >ilai Grade = M7N @ika >ilai Akhir A 55 maka >ilai Grade = MDN @ika >ilai Akhir ? 55 maka >ilai Grade = M9N 7ara pen&ele%ain&a ' /n(ut Proses : J Fim, Fama, Alamat, Kurusan, FGLA5, FGL95, FM, F9 N : J Fa 8 :",4OFGLA5<P:",%OFGL95<P:",$OFM<P:",#OF9< Kika Fa Q =; maka FH 8 RAS Kika Fa Q >; maka FH 8 R6S Kika Fa Q ?; maka FH 8 RCS

Kika Fa Q ;; maka FH 8 R'S Kika Fa T ;; maka FH 8 RES N &utput + 1 23M, 2ama, Alamat, 4urusan, 256A$, 256T$, 2 , 2T, 2a, 27 8

Algoritma Name ! Menghitung"Nilai"A#hir"Mahasiswa $ %ar NIM& Nama& Alamat& 'urusan (tring) N"*as& N"*ts& N+& N, B-te/ Integer) Na .eal) N/ Char) Begin .ead0Input 1 Na 2 34&56N"*A(7834&96N"*,(7834&:6N+7834&;6N,7) I< Na $ => ,hen N/2?A? @lse I< Na $ A> ,hen N/2?B? @lse I< Na $ B> ,hen N/2?C? @lse I< Na $ >> ,hen N/2?D? ,hen N/2?@? @nd IF Crite 0 Dutput 1 @nd. :. Case o< @nd Case Alternati9 lain apabila kita menggunakan selection atau decision.

(-ntaE penulisann-a Case 3 Nama %ariabel 7 o<


Fondisi Fondisi Fondisi Fondisi @nd Case G; G: G9 Gn (tatement (tatement (tatement (tatement H H H H ; : 9 n

Contoh Fasus Buatlah Algoritma dalam bentuk Pseudeu Code untuk menghitung 6pah :arya;an. Dengan :etentuan 23:, 2ama :arya;an, Alamat :arya;an, 7ol, 4am :er'a. 4ika 7ol < , maka 6ang 0arian < =//// dan 6ang %embur < ,//// 4ika 7ol < = maka 6ang 0arian < ,>/// dan 6ang %embur < .>// 4ika 7ol < ? maka 6ang 0arian < ,//// dan 6ang %embur < >/// 6ang %embur dihitung 'ika 4am :er'anya lebih dari @ 4am. Tun'angan < -A B 6ang 0arian dan 6pah < 6ang 0arian ditambah 6ang %embur + Tun'angan. Cara penyelesainnya + 3nput + 1 23:, 2ama, Alamat, 7ol, 4: 8 Proses + 1 4ika 7ol < , maka 60 < =//// dan 6% < ,//// 4ika 7ol < = maka 60 < ,>/// dan 6% < .>// 4ika 7ol < ? maka 60 < ,//// dan 6% < >/// 4ika 4: C @ maka %embur < (4:-@* B 6% 4ika 4: D< @ maka %embur < /E Tun' < /,/- B 60 6pah < 60 + %embur + Tun' 8 &utput + 1 23:, 2ama, Alamat, 7ol, 4:, 60, 6%, %embur, Tun', 6pah 8 Algoritma Name ! Menghitung"*pah"Far-awan $ %ar NIF& Nama& Alamat (tring) 'F& /ol Integer) *I Longint) *L& Lembur& *pah& ,unj .eal) Begin .ead 0 Input 1 Case /ol D< ; *I 2 :4444) *L 2 ;4444) : *I 2 ;>444) *L 2 A>44) 9 *I 2 ;4444) *L 2 >444) @nd Case I< 'F $ = ,hen Lembur 2 3 'F H = 7 6 *L) @lse Lembur 2 4) @nd I< ,unj 2 4&45 6 *I) *pah 2 *I 8 Lembur 8 ,unjangan ) Crite 0 Dutput 1

@nd.

Bab III Looping 3 Pengulangan 7

$uatu langkah dimana kita akan melakukan proses beulang F ulang untuk penambahan data. Proses looping ini synta#nya ada tiga macam + ;. For to do @nd For Proses pengulangan yang menggunakan increment ( Pencacah 2aik *. (-ntaE penulisann-a For nama Jariable 2 inde# awal to inde# a#hir do Begin .ead 0 Input 1 (tatement @nd @nd For Catatan + 6ntuk nama Gariable kita bisa menggunakan huru9 a sampai H tapi yang sering digunakan adalah huru9 3, 4, I, J. Contoh Fasus Buat Algoritma dalam bentuk Pseudeu Code untuk menghitung ? Data :redit 2asabah Bank. Dengan :etentuan 2o 2asabah, 2ama 2asabah, Alamat 2asabah, Besar Pin'aman, $uku Bunga, %ama Pin'aman. 6ntuk mencari bunga adalah Besar pin'aman dikali %ama pin'aman dikali $uku Bunga. 2ilai Pengembalian adalah Besar pin'aman ditambah Bunga. Cara pen-elesainn-a + 3nput Proses + 1 2o52asabah, 2ama, Alamat, BP, %P, $B 8 + 1 Pengulangan sampai dengan ? :ali B < BP B %P B $B 2P < BP + B 8 + 1 2o52asabah, 2ama, Alamat, BP, %P, $B, B, 2P 8

&utput

Algoritma Name ! Data"Fredit"Nasabah"Ban# $ %ar No"Nasabah& Nama& Alamat (tring) LP& I Integer)

Begin

BP B& (B& NP For I2; to 9 do Begin .ead 0 Input 1 B 2 BP 6 LP 6 (B) NP 2 BP 8 B) @nd @nd For Crite 0 Dutput 1

Longint) .eal)

@nd. =. Chile Do @nd Chile Proses pengulangan yang menggunakan kondisi ( D, C, D<, C<, < *. Proses pengulangan berlangsung 'ika kondisinya benar. (-ntaE penulisann-a Nama Jariable 2 IndeE awal) Chile 3 #ondisi 7 do Begin .ead 0 Input 1 (tatement) InKrement) @nd @nd Chile Contoh Fasus Buatlah Algoritma dalam Pseudeu Code untuk menghitung = %uas Persegi Pan'ang. Dengan :etentuan Pan'ang, %ebar. 6ntuk mencari %uas adalah pan'ang kali lebar. Cara penyelesainnya + 3nput Proses &utput + 1 P, % 8 + 1 Pengulangan sampai dengan = kali %uas < P B % 8 + 1 P, %, %uas 8

Algoritma Name ! Perhitungan"Matemati#a $ %ar P& L& Luas real) I Integer) Begin I24) Chile I!: do Begin .ead 0 Input 1 Luas 2 P 6 L) I 2 I 8 ;) @nd @nd Chile Crite 0 Dutput 1 @nd. 9. .epeat *ntil Proses pengulangan kebalikan dari Khile do. Dan tidak perlu menggunakan Begin dan Lnd. (-ntaE penulisann-a Nama Jariable 2 IndeE awal) .epeat .ead 0 Input 1 (tatement) InKrement) *ntil 3 Fondisi 7 Contoh :asus Buat Algoritma dalam bentuk Pseudeu Code untuk menghitung ? Data :redit 2asabah Bank. Dengan :etentuan 2o 2asabah, 2ama 2asabah, Alamat 2asabah, Besar Pin'aman, $uku Bunga, %ama Pin'aman. 6ntuk mencari bunga adalah Besar pin'aman dikali %ama pin'aman dikali $uku Bunga. 2ilai Pengembalian adalah Besar pin'aman ditambah Bunga. Cara pen-elesainn-a + 3nput Proses + 1 2o52asabah, 2ama, Alamat, BP, %P, $B 8 + 1 Pengulangan sampai dengan ? :ali B < BP B %P B $B 2P < BP + B 8

&utput + 1 2o52asabah, 2ama, Alamat, BP, %P, $B, B, 2P 8 Algoritma Name ! Data"Fredit"Nasabah"Ban# $ %ar No"Nasabah& Nama& Alamat (tring) LP& I Integer) BP Longint) B& (B& NP .eal) Begin I24) .epeat .ead 0 Input 1 B 2 BP 6 LP 6 (B) NP 2 BP 8 B) I 2 I 8 ;) *ntil 3 I!9 7 Crite 0 Dutput 1 @nd.

Bab I% (tru#tur Data Fomple# 3 Pengelompo#an ,ipe Data 7 Pengelompokan tipe data didalam program terbagi atas = macam + ;. ArraAdalah kumpulan dari tipe data yang se'enis atau disebut "ield 2ame. $ynta# penulisanaya + Nama %ariabel Contoh :asus + Buatlah Algoritma dalam bentuk Pseudeu Code untuk menghitung > Data Pen'ulan Barang. Dengan ketentuan 2o, 2ama Barang, 0arga Barang, $tock A;al, Ter'ual. 6ntuk mencari $isa adalah $tock A;al F Ter'ual. Cara pen-elesainn-a 3nput Proses &utput + 1 2o, 2B, 0B, $A, ter'ual 8 + 1 Pengulangan sampai dengan > kali $isa < $A F Ter'ual 8 + 1 2o, 2B, 0B, $A, Ter'ual, $isa 8 Arra- 0 IndeE Awal .. IndeE a#hir 1 D< ,ipe data)

Algoritma Name Data"Penjualan"Barang $ %ar No& NB Arra-0;..>1 o< (tring) IB Arra-0;..>1 o< Longint) (A& ,erjual& (isa Arra-0;..>1 o< Integer) I Integer) Begin For I2; to > do Begin .ead 0 Input 1 (isa0I1 2 (A0I1 G ,erjual0I1) @nd @nd For Crite 0 Dutput 1 @nd.

:. .eKord Adalah kumpulan dari tipe data yang tidak se'enis. (-ntaE penulisann-a ,-pe Nama"Data

.eKord ,ipe DataG;) ,ipe DataG:) ,ipe DataGn)

@nd %ar Nama Jariable Contoh Fasus

Nama JariableG; Nama JariableG: Nama JariableGn

,ipe data)

Buatlah algoritma dalam bentuk Pseudeu Code dengan menggunakan )ecord untuk menghitung - 2ilai Akhir Mahasis;a. Dengan :etentuan 23M, 2ama Mahasis;a, Alamat Mahasis;a, 4urusan, 2ilai 6A$, 2ilai 6T$, 2ilai uiH dan 2ilai Tugas. 6ntuk mencari 2ilai Akhir Adalah -/A B 2ilai 6as ditambah ?/A B 2ilai 6T$ ditambah =/A B 2ilai uiH ditambah ,/A B 2ilai Tugas. 2ilai Akhir ditentukan oleh 2ilai 7rade. 4ika 2ilai Akhir C @> maka 2ilai 7rade < MAN 4ika 2ilai Akhir C .> maka 2ilai 7rade < MBN 4ika 2ilai Akhir C O> maka 2ilai 7rade < MCN 4ika 2ilai Akhir C >> maka 2ilai 7rade < MDN 4ika 2ilai Akhir D >> maka 2ilai 7rade < MLN Cara pen-elesain-a 3nput Proses + 1 2im, 2ama, Alamat, 4urusan, 256A$, 256T$, 2 , 2T 8 + 1 Pengulangan sampai dengan - kali 2a < (/,-B256A$*+(/,?B256T$*+(/,=B2 *+(/,,B2T* 4ika 2a C @> maka 27 < MAN 4ika 2a C .> maka 27 < MBN 4ika 2a C O> maka 27 < MCN 4ika 2a C >> maka 27 < MDN 4ika 2a D >> maka 27 < MLN 8

&utput + 1 23M, 2ama, Alamat, 4urusan, 256A$, 256T$, 2 , 2T, 2a, 27 8 Algoritma Name ! Menghitung"Nilai"A#hir"Mahasiswa $ ,-pe Data"(iswa 2 reKord NIM& Nama& Alamat& 'urusan (tring) N"*as& N"*ts& N+& N, B-te/ Integer) Na .eal) N/ Char) @nd %ar (iswa Arra-0;..51 o< Data"(iswa) I Integer) Begin I24) .epeat .ead0Input 1 Na.(iswa0I1 2 34&56N"*A(.(iswa0I17 8 34&96N"*,(.(iswa0I17 8 34&:6N+.(iswa0I17 8 34&;6N,.(iswa0I17) I< Na.(iswa0I1 $ => ,hen N/.(iswa0I12?A? @lse I< Na.(iswa0I1 $ A> ,hen N/.(iswa0I12?B? @lse I< Na. (iswa0I1 $ B> ,hen N/.(iswa0I12?C? @lse I< Na.(iswa0I1 $ >> ,hen N/.(iswa0I12?D? ,hen N/.(iswa0I12?@? @nd IF Crite 0 Dutput 1 @nd.

Bab % Prosedur Fungsi $utu blok program terpisah yang terdiri dari sub- sub program yang se;aktu ;aktu bisa dipanggil. Perbedaan dari prosedur 9ungsi adalah kalau prosedur hasilnya tidak ditipe datakan P dideklarasikan tapi kalau 9ungsi hasilnya ditipedatakan P dideklarasikan. Contoh Fasus Buatlah program pen'umlahan dengan menggunakan prosedur 9ungsi denga ketentuan A,B, C. Pen-elesainn-a 3nput + 1A,B8 Proses + 1 C<A+B 8 &utput +1C8 Algoritma Name 0 Penjumlahan 1 ProKedure Penjumlahan3 A& B& C integer7) Begin C2A8B) @nd Begin .ead 0 Nilai A 1 .ead 0 Nilai B 1 Penjumlahan) @nd.

Algoritma Name 0 Penjumlahan 1 FunKtion Penjumlahan3 A& B& C integer7 integer) Begin C2A8B) @nd Begin .ead 0 Nilai A 1 .ead 0 Nilai B 1 Penjumlahan) @nd.

ProKedure /aris) Begin .ead3LGGGGGGGGGGGGGGGGGGGGGGGL7) @nd Begin /aris) .ead3L Belajar algoritma L7) /aris) @nd. FunKtion /aris (tring) Begin .ead3LGGGGGGGGGGGGGGGGGGGGGGGL7) @nd Begin /aris) .ead3L Belajar algoritma L7) /aris) @nd.

You might also like