LAPORAN PRAKTIKUM ALGORITMA DAN PEMROGRAMAN DASAR K)las Pagi E
Nama Praktikan Khairul !ali Gultom
Nama p)nilai
Nomor Mahasiswa "#"$%&'($'
Tanggal Kumpul
Tana Tangan Praktikan
Tanggal kor)ksi
Nilai
Tana Tangan Dos)n
Inri Sulistianingsih S*Kom
Uni+)rsitas P)m,angunan Pan-a,ui M)an !akultas Ilmu Komput)r .urusan Sist)m Komput)r M)an ('"&
KATA PENGANTAR
Puji dan syukur kehadirat Tuhan Yang Maha Esa, yang karena karunia, barokah, rahmat dan dan hiday hidayah ah-Ny -Nyaa maka maka Lapo Lapora ran n Prakt Praktik ikum um Algori lgoritm tmaa dan Pemro Pemrogr gram aman an Fakul Fakulta tass lmu lmu !omputer "ni#ersitas Pembangunan Pan$a %udi Medan ini dapat diterbitkan&
Laporan Praktikum Algoritma dan Pemrograman ini diterbitkan agar dapat memberikan in'ormasi kepada dosen dan mahasis(a Fakultas lmu !omputer&
)emoga )emoga Lapora Laporan n Prakti Praktikum kum ini dapat dapat berman berman'aa 'aatt sepert sepertii yang dihara diharapkan pkan&& Namun Namun demikian saya sangat terbuka untuk menerima masukan demi penyempurnaan laporan praktikum ini& )aran dan kritik yang membangun akan penulis terima dengan senang hati& Akhirnya, hanya kepada Allah )*T penulis serahkan segalanya mudah-mudahan dapat berman'aat khusunya bagi penulis umumya bagi kita semua&
Medan, +anuari ./
Penulis
DA!TAR ISI
/A/ I
P)nahuluan************************************************************************************* P)nahuluan************************************************************************************* *****ii
/A/ II Lanasan T) T)ori ori t)ntang Algoritma an P)mrograman********* P)mrograman**** ********** ******** ****** ***iii iii /A/ III 0asil P)r-o,aan 1 Praktikum**************************************************************i+ /A/ I2 Analisa Analisa 0asil P)r-o,aan************************************************************** P)r-o,aan************************************************************** *********" ******** *"
Penutup&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&. 0a'tar Pustaka&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/A/ I P)nahuluan a* Umum
)etiap orang yang bekerja biasanya membutuhkan alat bantu untuk menyelesaikan pekerjaannya supaya menjadi lebih mudah& )eorang tukang kayu misalnya membutuhkan palu, gergaji dan pengukur& Ahli Ahli mesin membutuhkan kun$i pas dan obeng& )eorang teknisi elektronika membutuhkan multimeter, os$illos$ope dan solder untuk menyelesaikan pekerjaannya& %eberapa peralatan bantu tersebut dapat dikategorikan sesuai dengan jenis pekerjaannya, misalnya seorang ahli bedah, maka orang tersebut harus mempunyai peralatan yang didesain se$ara khusus untuk melakukan operasi& Peralatan tersebut tentunya tidak biasa digunakan oleh orang lain selain ahli bedah& Ada beberapa peralatan yang digunakan oleh beberapa pro'esi, misalnya1 obeng digunakan oleh ahli mesin, tukang kayu, tukang listrik dan lain sebagainya& )elain obeng, komputer juga merupakan sebuah peralatan yang digunakan oleh banyak pro'esi, sehingga hal tersebut sangat sulit dikategorikan pada bidang apa& )elain seperti dijelaskan diatas komputer juga men$akup banyak pekerjaan yang berbeda atau boleh jadi dapat dikatakan menjadi peralatan yang paling serbaguna yang pernah dibuat& Peman'aatan komputer oleh seorang akuntan, digunakan untuk menganalisis keuntungan, untuk membuat laporan keuangan,
tetapi pada sebuah pabrik komputer digunakan sebagai kendali mesinmesin produksi, sedangkan pada seorang mekanik digunakan untuk menganalisis berbagai sistem pada mesin dan permasalahan lainnya& Mengapa komputer menjadi peralatan yang sangat serbaguna2& +a(abanya sangat sederhana, komputer dapat mengerjakan tugastugas yang ber#ariasi karena komputer dapat diprogram& !omputer merupakan sebuah mesin yang khusus hanya mengikuti instruksi yang diberikan padanya&!arena komputer bersi'at programmable, sehingga komputer tidak hanya milik satu pro'esi saja& !omputer diran$ang untuk mengerjakan pekerjaan yang sesuai programprogram yang diberikannya padanya& Pekerjaan sebagai programmer merupakan pekerjaan yang sangat penting karena merekalah yang membuat perangkat lunak yang digun akan untuk menginstruksikan komputer sebagai peralatan yang sesuai dengan yang diinginkan& Tanpa programmer, pengguna komputer tidak mempunyai perangkat lunak, dan tanpa perangkat lunak komputer tidak akan bisa mengerjakan apapun& 0alam pemrograman komputer ada dua kombinasi yang tidak terpisahkan yaitu seni dan ilmu pengetahuan& 0ikatakan dalam seni karena setiap aspek dalam program harus diran$ang dengan hati-hati& 3al-hal yang perlu diperhatikan dalam mendesain sebuah komputer adalah sebagai berikut1 Aliran instruksi se$ara logi$, Pro$edure matematik, Tampilan yang akan mun$ul pada layar monitor, n'ormasi yang ditampilkan oleh user, Program harus 4user 'riendly5, serta Petunjuk penggunaan maupun bentuk dokumen tertulis lainnya& Pemprograman berkaitan dengan aspek ilmu pengetahuan berkaitan dengan ilmu teknik karena jarang sekali program dapat berjalan baik pada saat program pertama kali ditulis& %iasanya perlu banyak dilakukan per$obaan, pembetulan dari kesalahan maupun diran$ang ulang sesuai dengan kebutuhan& 0engan adanya hal tersebut diatas maka dibutuhan seorang programmer yang memahami dua kemampuan yaitu seni dan ilmu pengetahuan&
)eorang programmer harus menguasai bahasa yang dimiliki oleh komputer seperti bahasa 67 7, +a#a atau bahasa pemrograman lainnya& %ahasa tersebut merupakan $ara komputer supaya bisa memahami apa yang diperintahkan karena komputer tidak paham bahasa ndonesia atau bahasa manusia manusia, sehingga programmerlah yang harus menyesuaikan dengan komputer& %ahasa komputer mempunyai aturan-aturan yang harus diikuti& 0alam menulis program komputer yang meliputi seni dan ilmu pengetahuan tersebut seperti halnya dalam meran$ang sebuah mobil, dimana mobil tersebut harus mempunyai tingkat 'ungsional yang tinggi, e''i$ient, bertenaga maksimal, mudah digunakan, dan amat menyenangkan jika dilihat& ,* Lata Latarr ,)la ,)laka kang ng
%ahasa program program merupakan merupakan suatu (ahana untuk untuk menuangkan pikiran pikiran manusia manusia yang dapat dimengerti dimengerti oleh mesin komputer komputer sehingga sehingga bernilai bernilai guna& )uatu bahasa program program akan terikat aturan dari paradigma bahasa& Ada berbagai ma$am paradigma bahasa 1 Prosedural, Fungsional, 0eklarati', 8bje$t 8riented, !onkuren& Perlu diperhatikan perbedaan antara belajar bahasa program dengan belajar memprogram999 %elajar bahasa program hanya belajar tentang sintak :aturan; dari bahasa sedangkan belajar memprogram akan ter$akup beberapa hal yang didalamnya terkandung tentang belajar bahasa program itu sendiri& Yang harus diperhatikan oleh mahasis(a yang sedang belajar be lajar memprogram, yaitu 1
•
Simulasi , sensibilitas terhadap masalah dan kemungkinan solusi& !egiatan dilakukan di
kelas, melalui permainan& 6ontoh 1 Mengurutkan tinggi badan mahasis(a mahasis(a dari tinggi ke pendek atau sebaliknya& Permainan dapat dilakukan se$ara manual maupun dengan komputer& •
Analisis masalah se$ara lebih 'ormal dan membuat spesi'ikasi dan algoritma dalam
notasi yang ditetapkan& Mahasis(a harus menuliskan solusi algoritmiknya dalam notasi standar di kelas& Penulis Penulisan an notasi notasi algoritm algoritmik ik bertuj bertujuan uan untuk untuk menyerag menyeragamk amkan an
pemaham pemahaman an tentan tentang g
algoritma program yang terbebas dari sintak :aturan; penulisan bahasa program & •
yaitu menterj menterjema emahkan hkan notasi notasi algori algoritmi tmik k ke dalam dalam sintak sintak bahasa bahasa M)nulis program program , yaitu program&
•
D),ugging an m)ngu3i -o,a program & 3al ini bertujuan untuk mendapatkan program
yang benar& benar& Program Program dikatakan benar benar jika terbebas dari dari salah lojik dan sintak sintak bahasa& )e$ara ideal ideal mahasis(a mahasis(a hanya diberi diberi kesempatan kesempatan untuk me-run program program sebanyak sebanyak kali 1 pertama untuk membersihkan program dari kesalahan sintak dan kedua untuk mendapatkan program benar& Pada tahap ini diharapkan tidak terjadi kesalahan lojik jika analisa benar& bena r& •
perlu dilakuk dilakukan an untuk untuk mening meningkat katkan kan keper$ keper$aya ayaan an M)ngamat M)ngamatii p)r p)risti istiwa wa )ks)kusi )ks)kusi , perlu bah(a jika analisa benar maka sisa pekerjaan menjadi mudah& Pada pemrograman prosedural, aspek ini penting untuk memahami 'enomena eksekusi dan perubahaan nilai suatu struktur data&
•
M)m,a-a program 1 orang akan dapat menulis dengan baik kalau sering memba$a& 3al
ini juga berlaku dalam memprogram& !egiat !egiatan an yang yang dapat dapat dilaku dilakukan kan di kelas kelas adalah adalah dengan dengan saling saling tukar menukar menukar teks algoritma, dan saling mengkritik algoritma teman& Mahasis(a harus berlatih sendiri pada kegiatan belajar bersama& •
M)m,uktikan k),)naran program s)-ara 4ormal , satu-satunya hal yang menjamin
kebenaran, tetapi kontradikti' dan sulit diterapkan dalam kehidupan sehari-hari& Program yang hanya lima baris pembuktiannya bisa sehalaman, sehingga seringkali tidak pernah diterapkan dalam aplikasi nyata&
5 * Tu3uan Praktikum
Adapun tujuan pembuatan makalah ini adalah 1 .& "ntuk melengka melengkapi pi nilai nilai tugas tugas mata kuliah kuliah Algoritm Algoritmaa dan Pemrogram Pemrograman an . & )ebagai )ebagai medi mediaa untuk untuk berba berbagi gi penget pengetahua ahuan n <& "ntuk "ntuk mengkaji mengkaji kembali kembali pengetah pengetahuan uan yang telah saya dapat pada kuliah kuliah Algori Algoritma tma dan Pemrograman .
/A/ II Lanasan T)ori t)ntang Algoritma an P)mrograman a* Dasa Dasarr6asa asarr komputer digunakan di hampir semua bidang kehidupan manusia, mulai dari pendidikan, bisnis, sampai dengan permainan& %erbi$ara tentang komputer tidak lepas dari pemrograman pemrograma n komputer& kompu ter& 3al ini karena komputer pada dasarnya da sarnya adalah ad alah mesin yang tidak tida k bisa apa-apa& !ita harus memberikan serangkaian instruksi kepada komputer agar mesin =pintar= ini dapat meme$ahkan suatu masalah& Langkah-langkah yang kita lakukan dalam memberikar& instruksi kepada komputer untuk untuk meme$ahkan masalah inilah yang dinamakan pemrograman pemrogr aman komputer. P)mrograman Komput)r
0alam 0alam kehidu kehidupan pan sehari sehari-ha -hari ri,, untuk untuk berkom berkomunika unikasi si dengan dengan orang orang lain, lain, kita kita harus harus menggunakan bahasa yang sama dengan orang tersebut& Apabila kita menggunakan %ahasa ndonesia, la(an bi$ara kita juga harus mengerti %ahasa ndonesia& !alau la(an bi$ara kita tidak mengerti %ahasa ndonesia, kita masih bisa berkomunikasi dengannya melalui seorang penerjemah& penerjema h& 0alam pemrograman komputer, berlaku juga hal seperti di atas& !ita harus menggunakan bahasa yang ya ng dimengerti dimen gerti oleh komputer untuk memberikan me mberikan suatu s uatu instruksi& instruk si&
Pada dasarnya, komputer adalah mesin digital, artinya komputer hanya mengenal kondisi ada arus listrik :biasanya dilambangkan dengan .; dan tidak ada arus listrik :biasanya dilambangkan denga dengan n ;& ;& 0enga 0engan n kata kata lain lain,, kita kita haru haruss mengg menggun unaka akan n sand sandii dan . untu untuk k mela melaku kukan kan pemrograman komputer& %ahasa pemrograman yang menggunakan sandi dan . ini disebut bahas bahasa a
Mung ngki kin n Anda nda mesin mesin.. Mu
suda sudah h bisa bisa memba embaya yang ngka kan n baga bagaim iman anaa suli sulitn tnya ya
memprogram dengan bahasa mesin& Namun Anda tidak perlu kuatir karena de(asa ini jarang sekali orang yang memprogram dengan bahasa mesin& !arena bahasa mesin sangat susah, maka mun$ul ide untuk melambangkan untaian sandi dan . dengan singkatan kata yang lebih mudah dipahami manusia& )ingkatan kata ini kemudian sering sering disebut disebut mnemonic code. %ahasa pemrograman yang menggunakan singkatan kata ini disebut bahasa assembly. )ebagai $ontoh, dalam prosesor ntel, terdapat perintah .. .. ...& Perintah dalam bahasa mesin ini sama artinya dengan perintah assembly 6MP AL, 80, yang artinya bandingkan nilai register AL dengan 0& 6MP di sini sebenarnya adalah singkatan dari 6oMPare& 0apatAnda lihat di sini bah(a perintah 6MP AL, 0 jauh lebih mudah dipahami daripada .. .. ...& Tentu saja ini jika dilihat dari sudut pandang manusia, bagi kom kompute puterr, kom kombina binasi si dan dan . tent entu lebi lebih h mudah udah dipa dipaha hami mi&& Per Perangk angkat at lunak unak yang yang mengk mengkon# on#er ersi sika kan n
peri perint ntah ah-p -per erin inta tah h
asse assemb mbly ly ke dalam dalam bahas bahasaa mesi mesin n
seri sering ng dise disebu butt
juga assembler. Pemrog Pemrogram raman an dengan dengan bahasa bahasa assembl assembly y dirasak dirasakan an banyak banyak orang orang masih masih terlal terlalu u sulit, sulit, term termas asuk uk saya saya send sendir iri& i& )esu )esusa saii denga dengan n si'a si'att manu manusi siaa yang yang tidak tidak pernah pernah puas, puas, akhi akhirn rnya ya dikembangkan dikembangkan suatu bahasa pemrograman pemrograman yang lebih mudah digunakan& %ahasa pemrograman pemrograman
ini menggunakan kata-kata yang mudah dikenali oleh manusia& %ahasa pemrograman seperti ini disebut bahasa generasi ketiga atau disingkat <>L (thirdgeneration language). %ebe %ebera rapa pa orang orang meny menyebu ebutt baha bahasa sa ini ini denga dengan n bahas bahasaa tingk tingkat at ting tinggi gi atau atau disi dising ngkat kat 3LL (high-level banyak $ontoh $ontoh bahasa bahasa generas generasii ketiga, ketiga, antara antara lain1 lain1 %asi$, %asi$, (high-level language). Ada banyak Pas$al, 6, 677, 68%8L, dsb&
%ahasa generasi ketiga biasanya menggunakan kata-kata dalam bahasa nggris karena memang bahasa tersebut adalah bahasa internasional& )ebagai $ontoh, Anda dapat menuliskan perintah berikut dalam ,ahasa Pas-al7
writ)ln 89Algoritma:;< atau p)rintah ,)rikut alam ,ahasa 57 print4 8=Algoritma>n>r?;< atau p)rintah ,)rikut alam ,ahasa 5@@7 -out =Algoritma? )nl<
Langkah6langkah alam P)mrograman Komput)r
0alam melakukan suatu kegiatan, tentu saja kita memerlukan langkah-langkah yang harus dilalui& 8rang tidur saja, menurut para dokter, mele(ati beberapa tahapan atau 'ase& 0alam pemrograman komputer, kita juga memerlukan beberapa langkah&
"rutan "rutan langkah-la langkah-langkah ngkah yang saya sajikan dalam buku ini tidak bersi'at bersi'at mutlak, mutlak, artinya artinya Anda tidak harus melakukannya dari langkah pertama, kedua, ketiga, dst& Ada beberapa langkah yang harus atau mungkin diulang sampai berkali-kali& Lebih jauh ja uh lagi, la gi, buku bu ku lain la in mu mung ngkin kin men yajika yaj ikan n langk lan gkah ah-la -lang ngka kah h yang ya ng kelih ke lihata atan n nya ny a berb be rbed edaa tetapi pada intinya sama& %erikut ini adalah beberapa langkah yang harus dilakukan dalam pemrograman komputer1
.&
M)n)4inisikan masalah & Langkah pertama ini sering dilupakan oleh banyak pemrogram&
%egitu %egitu mereka mereka mendap mendapat at perint perintah ah untuk untuk membua membuatt suatu suatu progra program, m, mereka mereka langsu langsung ng menulis programnya tanpa mende'inisikan masalahnya terlebih dulu& )aya mengutip katakata kata dari dari 3enry 3enry Ledgar Ledgard d dalam salah salah satu satu buk bukuny unyaa tenta tentang ng 3ukum 3ukum Murphy Murphy untuk untuk pemrograman1 pemrograma n1 Semakin cepat Anda menulis program akan semakin lama Anda menyelesaikannya.
Memang tidak ada bukti ilmiah tentang kata-kata ini, tetapi dari pengalaman pribadi saya ketika menjadi asisten riset di "ni#ersitas >adjah Mada tahun .??@ dan .??, kata-kata ini ternyata banyak benarnya&
)ebe )ebelu lum m meng mengin inja jak k pada pada lang langka kah h kedu kedua, a, saya saya inga ingatk tkan an seka sekali li lagi lagi bah( bah(aa lang langka kah h pertama, mendefinisikan masalah, sangat #ital tetapi sering dilupakan& Tentukan masalahnya seperti apa, kemudian apa saja yang harus dipe$ahkan dengan komputer, yang terakhir adalah apa masukannya dan bagaimana keluarannya&
&
)etelah h masala masalah h dide'i dide'inis nisik ikan an dengan dengan jelas, jelas, masuka masukan n apa yang yang M)n)ntukan M)n)ntukan solusi& )etela diberikan diberikan sudah jelas, jelas, keluaran keluaran apa yang diinginka diinginkan n sudah sudah jelas, jelas, langkah langkah selanjut selanjutnya nya adalah adalah men$ari men$ari jalan jalan bagaimana bagaimana masalah masalah tersebut tersebut diselesa diselesaikan ikan&& Apabila Apabila permasalahan permasalahan terlalu kompleks, biasanya kita harus membaginya ke dalam beberapa modul ke$il agar lebih mudah diselesaikan& diselesaikan& )ebagai $ontoh, program untuk menghitung in#ers matriks, dapat dibagi menjadi beberapa modul ke$il& Modul pertama adalah meminta masukan dari pengguna berupa matriks bujur sangkar& Modul kedua adalah men$ari in#ers matriks yang dimasukkan pengguna& Modul terakhir terakhir adalah menampilka menampilkan n hasilnya hasilnya kepada kepada pengguna& pengguna& Anda akan belajar belajar membagi membagi permasalahan permasalah an ke dalam d alam beberapa bebe rapa modul mod ul ke$il pada %ab @, Subrutin.
<& M)milih Langka kah h ini ini meru merupa paka kan n sala salah h satu satu langk angkah ah pent pentin ing g dala dalam m M)milih algori algoritma tma& Lang pemrograman pemrograma n komputer& kompute r& Mengapa2 !arena pemilihan algoritma yang salah akan menyebabkan program memiliki unjuk kerja yang kurang baik& Algoritma inilah yang akan saya bahas sepanjang buku ini, jadi saya tidak akan membahasnya panjang lebar di sini&
B&
M)nulis program & Pada langkah ini, Anda mulai menuliskan program komputer untuk
meme$ahkan masalah yang diberikan& )ebagaimana saya jelaskan di a(al bab ini, untuk menulis program Anda dapat menggunakan salah satu bahasa generasi ketiga& )aya tidak merekomen merekomendasi dasikan kan bahasa mesin atau assembly assembly karena terlalu terlalu sulit sulit dan memboros memboroskan kan
(aktu& ngat ada pepatah lama mengatakan (aktu adalah uang& Memang banyak orang yang senang menggunakan assembly dengan alasan ke$epatan yang tinggi, tetapi (aktu yang diperlukan untuk menulis programnya juga sangat lama& 0engan kata lain, harga yang dibayar untuk ke$epatan yang tinggi tersebut $ukup mahal& )aya juga tidak merekomendasikan bahasa generasi keempat karena penggunaannya lebih banyak dalam dunia basis data& Ada beberapa hal yang harus dipertimbangkan saat memilih bahasa pemrograman, antara lain masalah yang dihadapi, bahasa pemrograman yang Anda kuasai, dsb& 0alam buku ini, Anda khusus akan menulis program menggunakan bahasa Pas$al&
@& M)ngu3i program & )etelah program selesai ditulis, Anda harus mengujinya& Pengujian pertama adalah1 adalah 1 apakah ap akah program berhasil dikompilasi dengan baik2 Pengujian Pengujia n berikutnya1 apakah program dapat menampilkan keluaran yang diinginkan2
Lebih jauh lagi, Anda juga harus menguji program dengan banyak kasus lain& )ering terjadi, suatu program berjalan baik untuk kasus A, %, 6C tetapi menghasilkan sesuatu yang tidak diinginkan untuk kasus D, Y, dan &
Langka Langkah h keempa keempatt dan kelima kelima ini bisa bisa dilaku dilakukan kan berula berulangng-ula ulang ng sampai sampai progra program m diyakini benar-benar berjalan sesuai yang diharapkan&
& M)nulis okum)ntasi 3al ini ini bias biasany anyaa dila dilaku kukan kan bers bersam amaa aan n deng dengan an menu menuli liss okum)ntasi & 3al progr pro gram, am, artin ar tin ya pada pa da setiap set iap baris ba ris progra pro gram m atau at au setiap set iap bebe be berap rapaa baris ba ris progr pro gram, am, Anda And a menambahkan komentar yang menjelaskan kegunaan dari suatu pernyataan&
0okumentasi ini kelihatannya sepele dan banyak dilupakan orang, padahal 'ungsinya pent pe nting ing seka se kali& li& 0i masa mas a menda men datan tang, g, apab ap abila ila Anda And a perlu pe rlu melak mel aku u kan ka n perub pe rubah ahan an atau at au perba pe rba ikan ika n terha ter hada dap p suatu sua tu prog pr ogra ram, m, Anda And a akan ak an meras mer asak akan an penti pe nting ngny nyaa doku do kumen men tasi ta si yang baik& Meskipun demikian, sebagian besar $ontoh program di buku ini tidak menyertakan dokumentasi& 3al ini karena dokumentasi dari program tersebut tidak lain adalah buku ini sendiri& 0okumentasi yang dijadikan satu dalam program, berupa komentar-komentar pendek, biasa bia sany nyaa sud sudah ah $uku $u kup& p& Namun Na mun akan ak an lebih le bih baik ba ik jika jik a Anda And a juga ju ga menul men ulisk iskan anny nyaa dala da lam m dokumen tersendiri kemudian men$etaknya di atas kertas jika perlu& )aya memang tidak tidak begitu begitu menyar menyarank ankan an dok dokument umentasi asi di atas atas kertas kertas,, tetapi tetapi hal yang yang terpent terpenting ing adalah menambahkan komentar-komentar singkat di dalam program Anda& Mungkin sekarang Anda berpikir tidak ada gunanya, tetapi per$ayalah nantinya Anda akan merasakan pentingnya hal ini&
&*
M)rawat program program & Langkah ini dilakukan setelah program selesai dibuat dan
sudah digunakan oleh pengguna Anda& 3al yang paling sering terjadi di sini adalah mun$ulnya bug yang sebelumn#a tidak terdeteksi& Atau mungkin juga pengguna ingin ingin tambahan tambahan suatu suatu 'asilita 'asilitass baru& Apabila Apabila hal-hal hal-hal seperti seperti ini terjadi, Anda harus melakukan re#isi terhadap program Anda&
,* Algoritm AlgoritmaB aB ProgramB ProgramB an P)mrogram P)mrograman an
Apakah Itu Algoritma
dari asal-usul katanya, kata Algoritma sendiri mempunyai sejarah yang aneh& 8rang hanya menemukan kata algorism a lgorism 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 +a'ar Muhammad bnu Musa Al-!hu(ariGmi& Al-!hu(ariGmi& Al-!hu(ariGmi diba$a orang barat menjadi Algorism& Algorism& Al-!hu(ariGmi Al-!hu(ariGmi menulis buku yang berjudul !itab Al Al +abar *al*alMuHabala yang artinya 4%uku pemugaran dan pengurangan5 :The book o' restoration and redu$tion;& 0ari judul buku itu kita juga memperoleh akar kata 4Aljabar5 :Algebra;& Perubahan kata dari algorism menjadi algorithm mun$ul karena kata algorism sering dikelirukan dengan arithmeti$, sehingga akhiran Ism berubah menjadi Ithm& !arena perhitungan dengan angka ang ka Arab sudah menjadi hal yang biasa, maka lambat laun kata algorithm berangsur-angsur dipakai sebagai metode perhitungan :komputasi; se$ara umum, sehingga kehilangan makna kata aslinya& 0alam bahasa ndonesia, kata algorithm diserap menjadi algoritma& D)4inisi Algoritma
4Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun se$ara sistematis dan logis5& !ata logis merupakan kata kun$i dalam algoritma& Langkah-langkah dalam algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar& 0alam beberapa konteks, algoritma adalah spesi'ikasi urutan langkah untuk melakukan pekerjaan tertentu& Pertimbangan dalam pemilihan algoritma adalah, pertama, algoritma haruslah benar& Artinya Artinya algoritma akan memberikan keluaran yang dikehendaki dari sejumlah masukan yang diberikan& Tidak peduli sebagus apapun algoritma, kalau memberikan keluaran ke luaran yang salah, pastilah algoritma tersebut bukanlah algoritma yang baik& Pertimbangan kedua yang harus diperhatikan adalah kita harus mengetahui seberapa baik hasil yang di$apai oleh algoritma tersebut& 3al ini penting p enting terutama pada algoritma untuk menyelesaikan masalah yang memerlukan aproksimasi hasil :hasil yang hanya berupa pendekatan;& Algoritma Algoritma yang baik harus mampu memberikan hasil yang sedekat mungkin dengan nilai yang sebenarnya& !etiga adalah e'isiensi algoritma& E'isiensi algoritma dapat ditinjau dari hal yaitu e'isiensi (aktu dan memori& Meskipun algoritma memberikan keluaran yang benar :paling mendekati;, tetapi jika kita harus menunggu berjam-jam untuk mendapatkan keluarannya, algoritma tersebut biasanya tidak akan dipakai, setiap orang menginginkan keluaran yang $epat& %egitu juga dengan memori, semakin besar memori yang terpakai maka semakin buruklah algoritma tersebut& 0alam kenyataannya, setiap orang bisa membuat algoritma yang berbeda untuk menyelesaikan suatu permasalahan, (alaupun terjadi perbedaan dalam menyusun algoritma, tentunya kita mengharapkan keluaran yang sama& +ika terjadi demikian, $arilah algoritma yang paling e'isien dan $epat&
/)a Algoritma an Program
Program adalah kumpulan pernyataan komputer, sedangkan metode dan tahapan sistematis dalam program adalah algoritma& Program ditulis dengan menggunakan bahasa pemrograman& +adi bisa disebut bah(a program adalah suatu implementasi dari bahasa pemrograman& %eberapa pakar memberi 'ormula bah(a 1 Program J Algoritma 7 %ahasa :)truktur 0ata; %agaimanapun juga struktur data dan algoritma berhubungan sangat erat pada sebuah program& Algoritma 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&Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman&Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karena algoritmanya sama&%eberapa hal yang perlu diperhatikan dalam membuat algoritma 1 Teks Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah& 0eskripsi tersebut dapat d apat ditulis dalam notasi apapun asalkan mudah dimengerti dan dipahami& Tidak ada notasi yang baku dalam penulisan pe nulisan teks algoritma seperti notasi bahasa pemrograman& Notasi yang digunakan dalam menulis algoritma disebut notasi algoritmik&
)etiap orang dapat membuat aturan penulisan dan notasi algoritmik sendiri& 3al ini dikarenakan teks algoritma tidak sama dengan teks program& Namun, Na mun, supaya notasi algoritmik mudah ditranslasikan ke dalam notasi bahasa pemrograman tertentu, maka sebaiknya notasi algoritmik tersebut berkorespondensi dengan notasi bahasa pemrograman pe mrograman se$ara umum& Notasi algoritmik bukan notasi bahasa pemrograman, karena itu pseudo$ode dalam notasi algoritmik tidak dapat dijalankan oleh komputer& Agar Agar dapat dijalankan oleh komputer, pseudo$ode dalam notasi algoritmik harus ditranslasikan atau diterjemahkan ke dalam notasi bahasa pemrograman yang dipilih& Perlu diingat bah(a orang yang menulis program sangat terikat dalam aturan tata bahasanya dan spesi'ikasi mesin yang menjalannya& Algoritma sebenarnya digunakan untuk membantu kita dalam mengkon#ersikan suatu permasalahan ke dalam bahasa pemrograman& 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 1 a& Pendeklarasian #ariabel "ntuk mengetahui dibutuhkannya pendeklarasian #ariabel dalam penggunaan bahasa pemrograman apabila
tidak semua bahasa pemrograman membutuhkannya&
b& Pemilihan tipe data Apabila bahasa pemrograman yang akan digunakan membutuhkan pendeklarasian #ariabel maka perlu hal ini dipertimbangkan pada saat pemilihan tipe data&
$& Pemakaian instruksi-instruksi %eberapa instruksi mempunyai kegunaan yang sama tetapi masing-masing 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& 3al-hal teknis ini diperhatikan ketika mengkon#ersikannya menjadi program& '& 6ara pengoperasian $ompiler $ompiler atau interpreter& %ahasa pemrograman yang digunakan termasuk dalam kelompok $ompiler atau interpreter& B& Algoritma Merupakan +antung lmu n'ormatika Algoritma adalah jantung ilmu komputer atau in'ormatika& %anyak $abang ilmu komputer yang mengarah ke dalam terminologi algoritma& Namun, jangan beranggapan algoritma selalu identik dengan ilmu komputer saja& 0alam kehidupan sehari-hari pun banyak terdapat proses yang dinyatakan dalam suatu algoritma& 6ara-$ara membuat kue atau masakan yang dinyatakan dalam suatu resep juga dapat disebut sebagai algoritma& Pada setiap resep selalu ada urutan langkahlangkah membuat masakan& %ila langkah-langkahnya tidak logis, tidak dapat dihasilkan masakan
yang diinginkan& bu-ibu yang men$oba suatu resep masakan akan memba$a satu per satu langkah-langkah pembuatannya lalu ia mengerjakan proses sesuai yang ia ba$a& )e$ara umum, pihak :benda; yang mengerjakan proses disebut pemroses :pro$essor;& Pemroses tersebut dapat berupa manusia, komputer, robot atau alat-alat elektronik elektronik lainnya& Pemroses melakukan suatu proses dengan melaksanakan atau 4mengeksekusi5 algoritma yang menjabarkan proses tersebut& Algoritma adalah deskripsi dari suatu pola tingkah laku yang dinyatakan se$ara primiti' yaitu aksi-aksi yang dide'enisikan sebelumnya dan diberi nama, dan diasumsikan sebelumnya bah(a aksi-aksi tersebut dapat kerjakan sehingga dapat menyebabkan kejadian& Melaksanakan algoritma berarti mengerjakan langkah-langkah di d i dalam algoritma tersebut& Pemroses mengerjakan proses sesuai dengan algoritma yang diberikan kepadanya& +uru masak membuat kue berdasarkan resep yang diberikan kepadanya, pianis memainkan lagu berdasarkan papan not balok& !arena itu suatu algoritma harus dinyatakan dalam bentuk yang dapat dimengerti oleh pemroses& +adi suatu pemroses harus1 Mengerti setiap langkah dalam algoritma& Mengerjakan operasi yang bersesuaian dengan langkah tersebut&
M)kanism) P)laksanaan Algoritma ol)h P)mros)s
!omputer hanyalah salah satu pemroses& Agar dapat dilaksanakan oleh komputer, algoritma harus ditulis dalam notasi bahasa pemrograman sehingga dinamakan program& +adi program adalah per(ujudan atau implementasi teknis algoritma yang ditulis dalam bahasa pemrograman tertentu sehingga dapat dilaksanakan oleh komputer& !ata 4algoritma5 dan 4program5 seringkali dipertukarkan dalam penggunaannya& Misalnya ada orang yang berkata seperti ini1 4program pengurutan data menggunakan algoritma sele$tion sort5& Atau pertanyaan seperti ini1 4bagaimana algoritma dan program menggambarkan gra'ik tersebut25& +ika Anda sudah memahami pengertian algoritma yang sudah disebutkan sebelum ini, Anda dapat membedakan arti kata algoritma dan program& Algoritma adalah
langkah-langkah penyelesaikan masalah, sedangkan program adalah realisasi algoritma dalam bahasa pemrograman& Program ditulis dalam salah satu bahasa pemrograman dan kegiatan membuat program disebut pemrograman :programming;& 8rang yang menulis program d isebut pemrogram :programmer;& Tiap-tiap Tiap-tiap langkah di dalam program disebut pernyataan atau instruksi& +adi, program tersusun atas sederetan instruksi& %ila suatu instruksi dilaksanakan, maka operasioperasi yang bersesuaian dengan instruksi tersebut dikerjakan komputer& )e$ara garis besar komputer tersusun atas empat komponen utama yaitu, piranti masukan, piranti keluaran, unit pemroses utama, dan memori& "nit pemroses utama :6entral Pro$essing Pro$essing "nit I 6P"; adalah 4otak5 komputer, ko mputer, yang ber'ungsi mengerjakan operasi-operasi dasar seperti operasi perbandingan, operasi perhitungan, operasi memba$a, dan operasi menulis& Memori adalah komponen yang ber'ungsi menyimpan atau mengingatingat& Yang Yang disimpan di dalam memori adalah program :berisi operasi-operasi yang akan dikerjakan oleh 6P"; dan data atau in'ormasi :sesuatu yang diolah oleh operasi-operasi;& Piranti masukan dan keluaran :K8 de#i$es; adalah alat yang memasukkan data atau program ke dalam memori, dan alat yang digunakan komputer untuk mengkomunikasikan hasil-hasil akti#itasnya& 6ontoh piranti masukan antara lain, papan kun$i :keyboard;, pemindai :s$anner;, dan $akram :disk;& 6ontoh piranti keluaran adalah, layar peraga :monitor;, pen$etak :printer;, dan $akram&
Mekanisme kerja keempat komponen di atas dapat dijelaskan sebagai berikut& Mula-mula program dimasukkan ke dalam memori komputer& !etika program dilaksanakan :ee$ute;, setiap inst instru ruks ksii yang yang tela telah h ters tersim impa pan n di dala dalam m memo memori ri diki dikiri rim m ke 6P"& 6P"& 6P" 6P" meng menger erja jaka kan n operasioperasi yang bersesuaian dengan instruksi tersebut& %ila suatu operasi memerlukan data, data diba$a dari piranti masukan, disimpan di dalam memori lalu dikirim ke 6P" untuk operasi yang memerlukannya tadi& %ila proses menghasilkan keluaran atau in'ormasi, keluaran disimpan ke dalam memori, lalu memori menuliskan keluaran tadi ke piranti keluaran :misalnya dengan menampilkannya di layar monitor;& /)la3ar M)mprogram an /)la3ar /ahasa P)mrograman
%elajar memprogram tidak sama dengan belajar bahasa pemrograman& %elajar memprogram adalah belajar tentang metodologi peme$ahan masalah, kemudian menuangkannya dalam suatu notasi tertentu yang mudah diba$a dan dipahami& )edangkan belajar bahasa pemrograman berarti belajar memakai suatu bahasa aturan-aturan tata bahasanya, pernyataan-pernyataannya, tata $ara pengoperasian $ompiler-nya, dan meman'aatkan pernyataan-pernyataan tersebut untuk membuat
program yang ditulis hanya dalam bahasa itu saja& )ampai saat ini terdapat puluhan bahasa pemrogram, antara lain bahasa rakitan :assembly;, Fortran, 6obol, Ada, PLK, Algol, Pas$al, 6, 677, 677, %asi$, %asi$, Prolog Prolog,, L)P L)P, P>, P>, bahasa bahasabaha bahasa sa simula simulasi si sepert sepertii 6)MP 6)MP, )ims$r )ims$ript ipt,, >P)), >P)), 0inamo& %erdasarkan terapannya, bahasa pemrograman dapat digolongkan atas dua kelompok besar 1 %ahasa %ahasa pemrog pemrogram raman an bertuj bertujuan uan khus khusus& us& Yang termas termasuk uk kelomp kelompok ok ini adalah adalah 6obol 6obol :untuk :untuk terapan bisnis dan administrasi;& Fortran :terapan komputasi ilmiah;, bahasa rakitan :terapan pemrograman mesin;, Prolog :terapan ke$erdasan buatan;, bahasa-bahasa simulasi, dan sebagainya& %ahasa %ahasa perogr perograma aman n bertuj bertujuan uan umu umum, m, yang yang dapat dapat diguna digunakan kan untuk untuk berbaga berbagaii aplika aplikasi& si& Yang termasuk kelompok ini adalah bahasa Pas$al, %asi$ dan 6& Tentu saja pembagian ini tidak kaku& %ahasabahasabertujuan khusus tidak berarti tidak bisa digunakan untuk aplikasi lain& 6obol misalnya, dapat juga digunakan untuk terapan ilmiah, hanya saja kemampuannya terbatas& Yang jelas, bahasabahasa pemrograman yang berbeda dikembangkan untuk berma$am-ma$am terapan yang berbeda pula& %erdasarkan pada apakah notasi bahasa pemrograman lebih 4dekat5 ke mesin atau ke bahasa manusia, maka bahasa pemrograman dikelompokkan atas dua ma$am 1 %ahasa tingkat rendah& %ahasa jenis ini diran$ang agar setiap instruksinya langsung dikerjakan oleh komputer, tanpa harus melalui penerjemah :translator;& 6ontohnya adalah bahasa mesin& 6P" 6P" menga mengamb mbil il inst instru ruks ksii dari dari memo memori ri,, langs langsung ung menge mengert rtii dan dan langs langsung ung menge mengerj rjaka akan n operasinya& %ahasa tingkat rendah bersi'at primiti', sangat sederhana, orientasinya lebih dekat ke
mesin, mesin, dan sulit dipahami dipahami manusia& )edangkan bahasa rakitan dimasukkan ke dalam kelompok ini karena alasan notasi yang dipakai dalam bahasa ini lebih dekat ke mesin, meskipun untuk melaksanakan instruksinya masih perlu penerjemahan ke dalam bahasa mesin& %ahasa tingkat tinggi, yang membuat pemrograman lebih mudah dipahami, lebih 4manusia(i5, dan berorientasi ke bahasa manusia :bahasa nggris;& 3anya saja, program dalam bahasa tingkat tinggi tidak dapat langsung dilaksanakan oleh komputer& a perlu diterjemahkan terlebih dahulu oleh sebuah translator bahasa :yang disebut kompilator atau $ompiler; ke dalam bahasa mesin sebelum akhirnya dieksekusi oleh 6P"& 6ontoh bahasa tingkat tinggi adalah Pas$al, PLK, Ada, 6obol, %asi$, Fortran, 6, 677, dan sebagainya& %ahasa pemrograman bisa juga dikelompokkan berdasarkan pada tujuan dan 'ungsinya& 0i antaranya adalah 1 M)nilai S),uah Algoritma
!etika manusia berusaha meme$ahkan masalah, metode atau teknik yang digunakan untuk meme$ahkan masalah itu ada kemungkinan bisa banyak :tidak hanya satu;& 0an kita memilih mana yang terbaik di antara teknikteknik itu& 3al ini sama juga dengan algoritma, yang memungkinkan suatu permasalahan dipe$ahkan dengan metode dan logika yang berlainan& Yang menjadi pertanyaan adalah bagaimana mengukur mana algoritma yang terbaik2& %eberapa persyaratan untuk menjadi algoritma yang baik adalah 1 Tingkat keper$ayaannya tinggi :realibility;& 3asil yang diperoleh dari proses harus berakurasi tinggi dan benar&
Pemrosesan yang e'isien :$ost rendah;& Proses harus diselesaikan se$epat mungkin dan 'rekuensi kalkulasi yang sependek mungkin& )i'atnya general& %ukan sesuatu yang hanya untuk menyelesaikan satu kasus saja, tapi juga untuk kasus lain yang lebih general& %isa dikembangkan :epandable;& 3aruslah sesuatu yang dapat kita kembangkan lebih jauh berdasarkan perubahan reHuirement yang ada& Mudah dimengerti& )iapapun yang melihat, dia akan bisa memahami algoritma Anda& )usah dimengertinya suatu program akan membuat susah di-maintenan$e :kelola;& Portab Portabili ilitas tas yang yang tinggi tinggi :porta :portabil bility ity;& ;& %isa %isa dengan dengan mud mudah ah diimpl diimpleme ementa ntasik sikan an di berbaga berbagaii plat'orm komputer& Pre$ise :tepat, betul, teliti;& )etiap instruksi harus ditulis dengan seksama dan tidak ada keraguraguan, dengan demikian setiap instruksi harus dinyatakan se$ara eksplisit dan tidak ada bagian yang dihilangkan karena pemroses dianggap sudah mengerti& )etiap langkah harus jelas dan pasti&6ontoh 1 Tambahkan Tambahkan . atau pada & nstruksi di atas terdapat keraguan& +uml +umlah ah lang langka kah h atau atau inst instru ruks ksii berhi berhing ngga ga dan dan tert terten entu tu&& Artin rtinya ya,, untuk untuk kasu kasuss yang yang sama sama banyaknya, langkah harus tetap dan tertentu meskipun datanya berbeda& E'ekti'& Tidak boleh ada instruksi yang tidak mungkin dikerjakan oleh pemroses yang akan menjalankannya& 6ontoh 1 3itung akar dengan presisi sempurna&
nstruksi di atas tidak e'ekti', agar e'ekti' instruksi tersebut diubah& Misal 1 3itung akar sampai lima digit di belakang koma& 3arus terminate& +alannya algoritma harus ada kriteria berhenti& Pertanyaannya adalah apakah bila jumlah instruksinya berhingga maka pasti terminate2 8utput 8utput yang dihasi dihasilka lkan n tepat& tepat& +ika +ika langka langkah-l h-lang angkah kah algori algoritma tmanya nya logis logis dan diikuti diikuti dengan dengan seksama maka dihasilkan output yang diinginkan& )edangkan kriteria Algoritma menurut 0onald E& !nuth adalah 1 nput1 algoritma dapat memiliki nol atau lebih inputan dari luar& 8utput1 algoritma harus memiliki minimal satu buah output keluaran& 0e'initeness :pasti;1 algoritma memiliki instruksi-instruksi yang jelas dan tidak ambigu& Finiteness :ada batas;1 algoritma harus memiliki titik berhenti :stopping role;& E''e$ti#eness :tepat dan e'isien;1 algoritma sebisa mungkin harus dapat dilaksanakan dan e'ekti'& 6ontoh instruksi yang tidak e'ekti' adalah1 A J A 7 atau A J A . Namun ada beberapa program yang memang diran$ang untuk unterminatable 1 $ontoh )istem 8perasi& P)nCa3ian Algoritma
Penyajian algoritma se$ara garis besar bisa dalam bentuk penyajian yaitu tulisan dan gambar& Algoritma yang disajikan dengan tulisan yaitu dengan struktur bahasa tertentu :misalnya bahasa
ndonesia atau bahasa nggris; dan pseudo$ode& Pseudo$ode adalah kode yang mirip dengan kode pemrograman yang sebenarnya seperti Pas$al, atau 6, sehingga lebih tepat digunakan untuk mengg menggam ambar barka kan n algo algori ritm tmaa yang yang akan akan diko dikomu muni nika kasi sikan kan kepad kepadaa pemr pemrogr ogram am&& )eda )edangk ngkan an algoritma algoritma disajikan disajikan dengan gambar, gambar, misalnya misalnya dengan 'lo($hart& 'lo($hart& )e$ara )e$ara umum, pseudo$ode mengekspresikan ide-ide se$ara in'ormal dalam proses penyusunan algoritma& )alah satu $ara untuk menghasilkan kode pseudo adalah dengan meregangkan aturan-aturan bahasa 'ormal yang dengannya #ersi akhir dari algoritma akan diekspresikan& Pendekatan ini umumnya digunakan ketika bahasa pemrograman yang akan digunakan telah diketahui sejak a(al& Flo($hart merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar proses beserta pernyataannya& pernyataann ya& >ambaran ini dinyatakan dengan simbol& 0engan demikian setiap simbol menggambarkan proses tertentu& )edangkan antara proses digambarkan dengan garis penghubung& 0engan menggunakan 'lo($hart akan memudahkan kita untuk melakukan penge$ekan bagian-bagian yang terlupakan dalam analisis masalah& 0i samping itu 'lo($hart juga berguna sebagai 'asilitas untuk berkomunikasi antara pemrogram yang bekerja dalam tim suatu proyek& Ada dua ma$am 'lo($hart yang menggambarkan proses dengan komputer, yaitu 1 Flo($h Flo($hart art sistem sistem yaitu yaitu bagan bagan dengan dengan simbol simbol-si -simbo mboll tertent tertentu u yang menggam menggambar barkan kan urutan urutan prosedur dan proses suatu 'ile dalam suatu media menjadi 'ile di dalam media lain, dalam suatu sistem pengolahan data& %eberapa $ontoh Flo($hart sistem1
Flo($hart program yaitu bagan dengan simbol-simbol tertentu yang menggambarkan urutan proses dan hubungan antar proses se$ara mendetail di dalam suatu program& Kaiah6Kaiah Umum P)m,uatan !low-hart Program
0alam pembuatan 'lo($hart Program tidak ada rumus atau patokan yang bersi'at mutlak& !arena 'lo($h 'lo($hart art merupa merupakan kan gambar gambaran an hasil hasil pemiki pemikiran ran dalam dalam mengan menganali alisis sis suatu suatu masala masalah h dengan dengan komputer& )ehingga 'lo($hart yang dihasilkan dapat ber#ariasi antara satu pemrogram dengan yang lainnya& Namun se$ara garis besar setiap pengolahan selalu terdiri atas < bagian utama, yait yaitu u 1 -np -nput ut,, -Proses pengolahan dan -8utput
"ntuk pengolahan data dengan komputer, urutan dasar peme$ahan suatu masalah1 -
)TAT )TAT,, berisi berisi pernyataan pernyataan untuk untuk persiapan persiapan peralatan peralatan yang yang diperlukan diperlukan sebelum sebelum menangani menangani
peme$ahan persoalan& - EA0, berisi berisi pernyat pernyataan aan kegiata kegiatan n untuk untuk memba$a memba$a data dari suatu suatu peralatan peralatan input& - P8)E), P8)E), berisi berisi kegiatan kegiatan yang yang berkaita berkaitan n dengan dengan peme$ahan peme$ahan persoalan persoalan sesuai sesuai dengan data
-
yang diba$a& *TE, *TE, berisi berisi perny pernyata ataan an untuk untuk merekam merekam hasil hasil kegiat kegiatan an ke peralat peralatan an output& output& EN0, EN0, meng mengakh akhir irii kegi kegiat atan an pengo pengola laha han& n&
*alaupun *alaupun tidak ada kaidah-kaidah yang baku dalam penyusunan pen yusunan 'lo($hart, namun ada beberapa anjuran 1 -
3indar 3indarii pengulan pengulangan gan proses proses yang yang tidak tidak perlu dan logik logikaa yang berbeli berbelitt sehingg sehinggaa jalannya jalannya
proses menjadi singkat& - +ala +alann nnya ya pros proses es diga digamb mbar arka kan n dari dari atas atas ke ba(a ba(ah h dan dan dibe diberi rika kan n tand tandaa pana panah h untu untuk k
-
memperjelas& )ebuah 'lo($hart 'lo($hart dia(ali dia(ali dari dari satu satu titik titik )TAT )TAT dan diakhiri diakhiri dengan EN0&
%erikut merupakan beberapa $ontoh simbol 'lo($hart yang disepakati oleh dunia pemrograman 1
"ntuk memahami lebih dalam mengenai 'lo($hart ini, akan diambil sebuah kasus sederhana& !asus 1 %uatlah sebuah ran$angan program dengan menggunakan 'lo($hart, men$ari luas persegi panjang& )olusi 1 Perumusan untuk men$ari luas persegi panjang adalah 1 LJp&l di mana, L adalah Luas persegi panjang, p adalah panjang persegi, dan l adalah lebar persegi&
!eterangan 1 -
)imbol )imbol pertam pertamaa menun menunjukk jukkan an dimu dimulai lainya nya sebuah sebuah progra program& m& )imbol )imbol kedua kedua menun menunjukk jukkan an bah( bah(aa input input data data dari dari p dan l& 0ata 0ata dari p dan dan l akan dipro diproses ses pada pada simbol simbol ketig ketigaa dengan dengan menggu menggunaka nakan n perumus perumusan an L J
p& l& - )imbol )imbol keemp keempat at menunj menunjukka ukkan n hasil hasil output output dari dari prose prosess dari simb simbol ol ketiga ketiga&& -
)imbol )imbol kelima kelima atau atau terakh terakhir ir menunj menunjukka ukkan n berakhi berakhirny rnyaa program program denga dengan n tanda End& End&
Struktur Dasar Algoritma
Algoritma berisi langkah-langkah penyelesaian suatu masalah& Langkah-langkah tersebut dapat berupa runtunan aksi :seHuen$e;, pemilihan aksi :sele$tion;, pengulangan aksi :iteration; atau kombinasi dari ketiganya& +adi struktur dasar pembangunan algoritma ada tiga, yaitu1 -
)truktu ktur untu ntunan 0iguna 0igunakan kan untuk untuk prog program ram yang yang perny pernyataa ataanny nnyaa seHuent seHuential ial atau atau urut urutan& an& )truktu ktur Pe Pemilihan 0iguna 0igunakan kan untuk untuk program program yang yang menggun menggunakan akan pemil pemiliha ihan n atau penyel penyeleks eksian ian kondis kondisi& i& )truktu ktur Per Perulangan 0iguna 0igunakan kan untuk untuk program program yang yang pernya pernyataa taanny nnyaa akan diekse dieksekus kusii berulan berulang-u g-ulan lang& g&
0alam Algoritma, tidak dipakai simbol-simbol K sintaks dari suatu bahasa pemrograman tertentu, melainkan bersi'at umum dan tidak tergantung pada suatu bahasa pemrograman apapun juga& Notasi-notasi algoritma dapat digunakan untuk seluruh bahasa pemrograman manapun& D)4inisi Ps)uo6-o)
!ode atau tanda yang menyerupai :pseudo; atau merupakan penjelasan $ara menyelesaikan suatu masalah& Pseudo-$ode sering digunakan oleh manusia untuk menuliskan algoritma& 6ontoh kasus 1 men$ari bilangan terbesar dari dua bilangan yang diinputkan
)olusi Pseudo-$ode 1 -
Masu Masukk kkan an bila bilang ngan an pert pertam amaa Masu Masukk kkan an bila bilang ngan an kedu keduaa
-
+ika +ika bilanga bilangan n pertama pertama O bilang bilangan an kedua kedua maka kerja kerjakan kan langka langkah h B, jika tidak tidak,, kerjakan kerjakan
-
langkah @& Tamp mpil ilka kan n bil bilan anga gan n per perta tam ma Tampil pilkan kan bil bilanga angan n kedu keduaa
)olusi Algoritma 1 -
Masukkan bilangan pertama (a) Masukkan bilangan kedua (b) if a > b then kerjakan langkah 4 print a print b
Contoh Lain Algortima dan Pseudo-code
Tahapan alam P)mrograman
Langkah-langkah yang dilakukan dalam menyelesaikan masalah dalam pemrograman dengan komputer adalah 1 -
0e'inisikan kan Mas Masalah %uat %uat Algor Algoritm itmaa dan dan )trukt )truktur ur 6ara 6ara Peny Penyeles elesaia aian n Menulis Program
-
Men$ari !esalahan "ji "ji dan dan eri'i ri'ika kasi si Prog Progra ram m 0okum kumenta ntasi Pr Progr ogram Pem Pemeli elihara haraan an Prog Progra ram m
-* Tip) DataB 2aria,)lB an Op)rator Tip) Data Paa 2/ (''
0ata adalah 'akta mengenai objek, orang, dan lain-lain& 0ata dinyatakan dengan nilai :angka, deretan karakter, atau symbol;& "ntuk menampung data kita mmerlukan suatu #ariabel, setiap #ariabel harus memiliki tipe data& Pada % @ terdapat beberapa tipe data, diantaranya boolean untuk menyatakan dua kondisi, yaitu true dan 'alse, selanjutnya tipe data untuk karakter, yaitu $har dan string& !emudian ada tipe data numerik&
Tipe data numerik pada % @ dibedakan menjadi dua bagian yaitu 1 •
Tipe data untuk nilai-nilai bilangan integer
•
Tipe data untuk bilangan pe$ahan
Tabel Tabel berikut ini menampilkan tipe data yang ada pada % @ lengkap beserta ukuran memori dan jangkauan nilai nya& No
Tip) Data
Ukuran M)mori
.angkauan
. < B
%oolean %yte 6har 0ate
%yte . %yte %yte Q %yte
True atau False sKd @@ )atu karakter .K.K. sKd <.K.K????
@
0e$imal
. %yte
I /?,Q,.,@.B,B,<,@?<,@B<,?@,<<@ sKd
0ouble
Q %yte
/&?Q.@.BB<@?<@B@<<@ -.&/?/?<.
/ Q ? .
nteger nt. nt< ntB
B %yte %yte B %yte Q %yte
.&/?/?<.
..
L o ng
Q %yte
?,<,,<,Q@B,//@,Q/ I ?,<,,<,Q@B,//@,QQ sKd
.
.< .B .@
8bje$t
)byte )hort )ingle
B %yte K Q %yte
?,<,,<,Q@B,//@,Q/ 0ata yang dapat disimpan
. %yte %yte B %yte
ke dalam #ariabel tipe objek I .Q sKd ./ I </Q sKd <// I <,BQ<@E7
. )tring ./ "int. .Q "int< .? "intB Tip) Data Paa 5
<,BQ<@E7
)ama seperti % @, 6R juga menyediakan beberapa tipe data yang dapat dipakai pada pembuatan program& Tabel Tabel berikut ini memberikan penjelasan singkat mengenai tipe data yang ada pada 6R& No Tip) Data
Ukuran M)mori
.angkauan
. < B @ / Q
. %yte . %yte . %yte . %yte %yte Q %yte B %yte B %yte
True :.; atau False :; sKd @@ I .Q sKd ./ sKd @&@<@ .& D . -Q sKd /&? D . Q @& . I <B sKd .&/ ..<Q .&@ D . -B@ sKd <&B D .
bool byte sbyte $har de$imal double 'loat int
sKd
? .
uint long
B %yte Q %yte
,.B/,BQ<,B/ sKd B,?B,?/,?@ I ?,<,,<,Q@B,//@,QQ sKd
.. . .<
ulong short ushort
Q %yte %yte %yte
?,<,,<,Q@B,//@,Q/ sKd .Q,BB,/BB,/<,/?,@@.,.@ I <,/Q sKd <,// sKd @,@<@
Kon+)rsi Tip) Data Paa 2/ ('' an 5
Pada pemrograman % @ dan 6R seringkali kita menggunakan Tet%o untuk memasukkan nilai suatu data& Tetbo pada % @ dan 6R de'aultnya mempunyai nilai string& Apabila kita ingin memasukkan data numeri$ atau lainnya, kita memerlukan kon#ersi data tertentu untuk itu& % @ dan 6R menyediakan 'ungsi untuk mengkon#ersi nilai, baik untuk data string ke numerik, data numerik ke string, dan juga kon#ersi untuk data lainnya&
Pada % @ kita dapat langsung menuliskan perintah kon#ersi, tetap pada pemrograman 6R kita terlebih dahulu harus memakai perintah 46on#ert5 atau 4)ystem&6on#ert5 dan perintah kon#ersi& Tabel-tabel berikut ini menerangkan perintah kon#ersi yang terdapat pada b @ dan 6R !ungsi Paa 2/ ('' No !ungsi
K)t)rangan
.
6%ool
"ntuk mengubah nilai . menjadi True dan 8
6%yte 66har 6date 60bl 60e$ 6int 6Lng 6)hort 6)tr
menjadi False !on#ersi ke nilai K tipe data%yte !on#ersi ke 6har, yaitu . !arakter pertama !on#ersi data ke 'ormat 0ate :Tanggal; !on#ersi ke nilai K tipe data 0o 0ouble !on#ersi ke nilai K tipe data 0e$imal !on#ersi ke nilai K tipe data nteger :%ulat; !on#ersi ke nilai K tipe data Lo Long !on#ersi ke nilai K tipe data )hort !on#ersi ke nilai K tipe data )tring
< B @ / Q ? .
!ungsi Paa 5 No !ungsi
K)t)rangan
. < B @
!on#ersi ke nilai K tipe data %oolean !on#ersi ke nilai K tipe databyte !on#ersi ke nilai K tipe data $har !on#ersi ke nilai K tipe data date :tanggal; !on#ersi ke nilai K tipe data de$imal
To%oolean To%yte To6har To0ateTime To0e$imal
/ Q ? . .. . .< .B .@
To0ouble Tont. Tont< TontB To)%yte To)ingle To)tring To"nt. To"nt< To"ntB
!on#ersi ke nilai K tipe data double !on#ersi ke nilai K tipe data int. !on#ersi ke nilai K tipe data int< !on#ersi ke nilai K tipe data intB !on#ersi ke nilai K tipe data sbyte !on#ersi ke nilai K tipe data single !on#ersi ke nilai K tipe data string !on#ersi ke nilai K tipe data uint. !on#ersi ke nilai K tipe data uint< !on#ersi ke nilai K tipe data uintB
Op)rator
8PEAT8 ATMAT!A Adalah Adalah operato operatorr yang yang diguna digunakan kan untuk untuk melakuk melakukan an perhit perhitung ungan an matema matemati tika& ka& Pada materi materi sebelumnya kita telah mengenal pengertian dari ariabel, maka sekarang $oba kita asumsikan bah(a #ariabel a J < dan b J ., maka hasil implementasi dari 8perator Aritmatika adalah sebagai berikut Op)rator 7 K S
K)t)rangan Penjumlahan Pengurangan Perkalian Pembagian )isa Pembagian
5ontoh a 7 b hasilnya B a I b hasilnya a b hasilnya < a K b hasilnya < a S b hasilnya
0alam 677 operator aritmatika memiliki kedudukan prioritas tertinggi atau terendah, hal tersebut ditentukan oleh $ara penulisan atau penempatannya,
.& !edudukan prioritas se$ara penulisan ter$antum sebagaimana sebag aimana dalam tabel& Op)rator 77 -- :khusus yang berkedudukan sebagai a(alan; - :"nary Minus; KS 7-
Prioritas Tertinggi
Terendah
& !edudukan prioritas tertinggi se$ara penempatan ditentukan oleh posisi yang PALING KIRI dari baris program&
+adi jika operator memiliki kedudukan prioritas yang sama :se$ara pen ulisan; maka hal tersebut dapat ditentukan lagi prioritas utamanya se$ara penempatan&
5lassB O,3)-t an M)tho
5lass
6lass adalah cetak biru atau blueprint’ dari dari o,3)-t & 6lass digunakan hanya untuk membuat kerangka dasar& Yang Yang akan kita pakai nantinya adalah hasil $etakan dari $lass, yakni yak ni o,3)-t & )ebagai analogi, -lass bisa diibaratkan dengan laptop atau notebook & !ita tahu bah(a laptopmemiliki $iri-$iri seperti merk , memiliki keyboard , memiliki processor , dan beberapa $iri khas lain yang menyatakan sebuah benda tersebut adalah laptop& )elain memiliki $iri-$iri, sebuah laptop juga bisa dikenakan tindakan, seperti1 menghidupkan laptop atau mematikan laptop&
Class dalam analogi ini adalah gambaran umum tentang sebuah benda& 0i dalam pemrograman
nantinya, $ontoh $lass seperti1 koneksidatabase dan profileuser & 0i dalam P3P, penulisan penulisan -lass dia(ali dengan key!ord -lass, kemudian diikuti dengan nama dari class& Aturan penulisan nama -lass sama seperti aturan penulisan variabel dalam P3P, yakni
dia(ali dengan huru' atau underscore untuk karakter pertama, kemudian boleh diikuti dengan huru', unders$ore atau angka untuk karakter kedua dan selanjutnya& si dari -lass berada dalam tanda kurung kura(al&
%erikut adalah $ontoh penulisan -lass dalam P3P1
.
U2php
$lass laptop V
<
KK isi dari $lass laptop&&&
B
W
@
2O
O,3)-t
adalah hasil cetak dari dari -lass , atau hasil konkrit’ dari dari -lass & +ika O,3)-t atau O,3)k adalah menggunakan analogi -lass laptop , maka objek dari -lass laptop bisa berupa1 laptopandi, laptopanto, laptopduniailkom, dan lain-lain& 8bjek dari -lass laptop akan memiliki seluruh
$iri-$iri laptop , yaitu property dan method -nya& -nya&
Proses mencetak’ objek objek dari -lass ini disebut dengan instansiasi: :atau instantiation dalam bahasa inggris;& Pada P3P, proses instansiasi dilakukan dengan menggunakan key(ord n)w:& 3asil $etakan -lass akan disimpan dalam variabel untuk untuk selanjutnya digunakan dalam proses program&
)ebagai $ontoh, berikut adalah $ara membuat o,3)k laptopandi dan laptopanto yang dibuat dari -lass laptop 1 .& U2php & $las $lasss lap lapto top pV <& KK&& KK&&&& isi isi dari dari $la $lass ss lapt laptop op B& W @& Xlapt Xlaptop opan andi di J ne( ne( lapto laptop: p:;C ;C & Xlapt Xlaptop opan anto to J ne( ne( lapto laptop: p:;C ;C /& 2O 0ari $ontoh diatas, Flaptopani dan Flaptopanto merupakan objek dari dari -lass laptop & !edua objek ini akan memiliki seluruh property dan method yang yang telah diran$ang dari -lass laptop &
M)tho M)tho adalah tindakan yang bisa dilakukan didalam class& +ika menggunakan analogi -lass laptop kita, maka $ontoh method adalah1 menghidupkan laptop, mematikan laptop, mengganti cover laptop, dan berbagai tindakan lain&
Method pada dasarnya adalah function yang berada di dalam -lass & )eluruh 'ungsi dan si'at 'un$tion bisa diterapkan kedalam method, seperti argumenKparameter, mengembalikan nilai :dengan key(ord return;, dan lain-lain&
%erikut adalah $ontoh penulisan -lass dengan penambahan m)tho1 .
U2php
$lass laptop V
<
'un$tion hidupkanlaptop:; V
B
KK&&& isi dari method hidupkanlaptop
@
W
/
'un$tion matikanlaptop:; V
Q
KK&&& isi dari method matikanlaptop
?
W
. .. .
&&& KKisi dari $lass laptop W
.< 2O $ontoh diatas, function hiupkanlaptop8; dan function matikanlaptop8; adalah method dari dari $lass laptop& )eperti yang kita lihat, bah(a penulisan method di dalam P3P sama dengan $ara penulisan 4un-tion & )ebuah $lass tidak harus memiliki method&
Struktur P)rulangan an P)r-a,angan
Pada saat belajar pemrograman ja#a, maka yang paling basi$ adalah kita harus mengerti tentang konsep umum dalam pemrograman& Misalnya1
•
Per$abangan :i'Kelse, s(it$h;
•
Perulangan :'or, (hile, do (hile;
•
Fun$tion pada 677 atau Method pada ja#a :publi$,pri#at,prote$t;
yang nanti akan $oba di jelaskan menurut pemahaman saya
P)rulangan
0alam 677 perulangan digunakan untuk menjalankan satu perintah atau lebih, dan dilakukan se$ara berulang selama kondisi tertentu& )e$ara umum perulangan terdiri dari < komponen, dengan kata lain memiliki < $iri khas 1 .&
Nilai Awal, yang ber'ungsi sebagai inisialisasi&
&
P)ru,ah Nilai, untuk menentukan berapa kali jumlah perulangan akan dikerjakan&
<&
sebuah uah per pernya nyataan taan K kon kondis disii ter terten tentu tu guna men mengam gambil bil kep keputu utusan san eks ekseku ekusi si SCaratB seb program&
Ada beberapa jenis perulangan perulangan yang bisa kita gunakan dalam pemrograman pemrograman 677 dianta diantaranya ranya sebagai berikut 1 •
'or
•
doZ(hile
•
(hile
)ementara )ement ara itu, untuk stud!asus stud!asus di atas saya akan menggun menggunakan akan whil), sehingga program akan dieksekusi selama whil) tertentu, adapun $ara penulisannya sbb 1
(hile : syarat ; V pernyataan ke-nC Perubah NilaiC W
-ontoh 7
(hile :i U .; V i' :iS JJ ; V $out UU i UU [ [C i77C W }
P)r-a,angan
0alam 677 per$abangan digunakan untuk meme$ahkan persoalan dan mengambil keputusan dari beberapa pernyataan&
Ada beberapa jenis per$abangan yang bisa kita gunakan dalam pemrograman 677 diantaranya sebagai berikut 1 •
i'
•
i' I else
•
s(it$h I $ase
"ntuk stud!asus diatas saya akan menggunakan i4 H )ls) dan swit-h H -as)B sehingga mengandung pengertian 4jika kondisi benar, maka kerjakan pernyataan ., selain
itu kerjakan pernyataan apabila apab ila pernyataan . tidak memenuhi syarat5& Adapun Adapun $ara penulisannya sebagai berikut 1
i' :kondisi; V pernyataan .C W else V pernyataan C W
-ontoh 7
i' : totbeli OJ @ ; V potongan J & totbeliC W else V potongan J &@ totbeliC W
)edangkan swit-h H -as) intinya sama dengan i' I else, akan tetapi swit-h H -as) hanya bisa memeriksa data yang bertipe $har dan int, selain itu tidak bisa& Adapun $ara penulisannya sebagai berikut 1
s(it$h :syarat; V $ase kontanta-.1 pernyataan .C breakC $ase konstanta-1
perintah C breakC de'ault1 perintahC W -ontoh 7
s(it$h :3ari; V $ase .1 $out UU [Ahad[C breakC $ase 1 $out UU [)enin[C breakC de'ault1 $out UU [)elasa[C W
/A/ III 0asil P)r-o,aan 1 Praktikum Latihan (*#
.&
8utput
)$ript
& )$ript
8utput
Latihan ""*
.& )$ript
8utput
& )$ript
8utput
P)nutup K)simpulan
mpe m pera rati ti#e #e prog progra ram m bera berana nalo logi gi diba diba(a (ah h baha bahasa sa pemogr pemograma aman n yang yang mema mema$u $u atau atau berorientasi pada objek objek system in'ormasi yang mengarah pada system in'ormasi&
Pembuatan program program komputer dengan penguasaan data yang ada pada bahasa pemograman untuk dikuasai agar menjadi seorang programmer handal& ha ndal& %eberapa sub dari bidang pemograman imperati#e diantaranya dian taranya adalah #ariable dan d an penugasan C perintah tidak struktur C perintah tidak terstruktur C subprogram, prosedur dan 'ungsiC dan penanganan eksepsi& Mengenali dan memberi $ontoh #ariable dan penguasaaanya, mengenali bentuk perintah tidak terstruktur, mengenali bentuk perintah terstruktur, dapat menjelaskan bentuk-bentuk struktur $ontrol, dapat menuliskan subprogram, prosedur, dan 'ungsi, dan dapat mengenali serta menjelaskan beberapa bentuk eksepsi dan penangananya&
Da4tar Pustaka
https1KKandika'isma&(ordpress&$om
https1KKsysyuny&(ordpress&$om
http1KK(((&duniailkom&$om
http1KK(((&bimarakajati&ml
%uku Pintar 677 untuk Pemula Penerbit Pen erbit Abdul !hadir