Anda di halaman 1dari 11

MODUL 1

LOGIKA DAN ALGORITMA PEMOGRAMAN


1.1 Tujuan Praktikum
1. Membuat algoritma sesuai dengan kondisi yang telah ditentukan
2. Membuat flowchart sesuai dengan algoritma yang telah dibuat
3. Menunjukkan hubungan antara algoritma dan flowchart
1.2 Landasan Teori
1.2.1. Pengantar Logika dan Algoritma
LOGIKA
Diperkenalkan pertama kali oleh Aristoteles (384-322 SM)
Definisi Logika
1. penalaran atau bentuk pemikiran.
2. ilmu yang memberikan prinsip-prinsip yang harus diikuti agar dapat berfikir valid menurut
aturan yang berlaku.

ALGORITMA
Diperkenalkan Oleh Ahli Matematika : Abu Ja’far Muhammad Ibnu Musa Al Khawarizmi.
Seorang ilmuan Persia yang menulis kitab al jabr w’al muqabala (rules of restoration and
reduction) sekitar tahun 825 M

Berikut ini pengertian algoritma menurut para ahli secara lengkap:

Abu Ja’far Muhammad Ibnu Musa Al Khawarizmi


Definisi algoritma adalah suatu metode khusus untuk menyelesaikan suatu persoalan.

KBBI (Kamus Besar Bahasa Indonesia)


Arti algoritma adalah sebagai berikut :

 prosedur sistematis untuk memecahkan masalah matematis dalam langkah-langkah


terbatas
 urutan logis pengambilan keputusan untuk pemecahan masalah
Goodman Hedet Niemi
Algoritma adalah urutan terbatas dari operasi-operasi terdefinisi dengan baik, yang masing-
masing membutuhkan memori dan waktu yang terbatas untuk menyelesaikan suatu
masalah.

Donald E. Knuth
Algoritma adalah sekumpulan aturan-aturan berhingga yang memberikan sederetan operasi-
operasi untuk menyelesaikan suatu jenis masalah yang khusus.

Rinaldi Munir
Pengertian algoritma adalah sebuah bentuk urutan langkah logis yang akan membantu
seseorang dalam menyelesaikan masalah yang sedang dijalaninya.

Seymour Lipschutz, Ph.D dan Marc Lipson, Ph.D.


Algoritma adalah suatu daftar langkah-demi-langkah yang terhingga dari instruksi-instruksi
yang terdefinisikan dengan jelas yang dipakai untuk permasalahan tertentu.

David Bolton
Algoritma adalah deskripsi dari suatu prosedur yang berakhir dengan sebuah hasil.

Andrey Andreyevich Markov


Algoritma adalah hal umum untuk dipahami sebagai suatu keputusan yang tepat untuk
mendefinisikan proses komputasi yang mengarahkan dari data awal hingga hasil yang
diinginkan.

Stone dan Knuth


Algoritma adalah suatu seperangkat aturan yang tepat mendefinisikan urutan operasi hingga
sedemikian rupa sehingga setiap aturan yang efektif, jelas hingga sedemikian rupa sehingga
urutan berakhir dalam waktu yang terbatas.

Amikom Yogyakarta
Pengertian algoritma adalah sebuah bentuk instruksi dalam bentuk cara atau metode yang
akan membantu kamu dalam menyelesaikan program dengan cara yang lebih sistematis.

Minsky
Algoritma adalah seperangkat arutan yang membertahukan kepada kita dari waktu ke waktu,
tepatnya bagaimana untuk bertindak.

Jadi, dapat disimpulkan definisi algoritma


1. Langkah – langkah yang dilakukan agar solusi masalah dapat diperoleh.
2. Suatu prosedur yang merupakan urutan langkah-langkah yg berintegrasi.
3. Suatu m etode khusus yang digunakan untuk menyelesaikan suatu masalah yang nyata.

Algoritma merupakan langkah-langkah (prosedur) yang harus dilakukan untuk


menyelesaikan sebuah masalah.

Dalam mendefinisikan algoritma, kita harus dapat mendefinisikan tiga hal


utama dengan jelas, yaitu:

1. Masalah, yaitu sebuah persoalan yang ingin diselesaikan oleh sebuah


algoritma.
2. Masukan, yaitu contoh data atau keadaan yang menjadi permasalahan.
3. Keluaran, yaitu bentuk akhir dari data atau keadaan setelah algoritma
diimplementasikan ke masukan. Keluaran merupakan hasil ideal yang
diinginkan dan dianggap telah menyelesaikan masalah.

“Algoritma adalah urutan langkah-langkah logis penyelesaian masalah


yang disusun secara sistematis dan logis”. Kata logis merupakan kata
kunci dalam algoritma. Langkah-langkah dalam algoritma harus logis dan
harus dapat ditentukan bernilai salah atau benar. Dalam beberapa konteks,
algoritma adalah spesifikasi urutan langkah untuk melakukan pekerjaan
tertentu. Pertimbangan dalam pemilihan algoritma adalah, pertama,
algoritma haruslah benar. Artinya algoritma akan memberikan keluaran yang
dikehendaki dari sejumlah masukan yang diberikan. Tidak peduli sebagus
apapun algoritma, kalau memberikan keluaran yang salah, pastilah algoritma
tersebut bukanlah algoritma yang baik.
Pertimbangan kedua yang harus diperhatikan adalah kita harus mengetahui
seberapa baik hasil yang dicapai oleh algoritma tersebut. Hal ini penting
terutama pada algoritma untuk menyelesaikan masalah yang memerlukan
aproksimasi hasil (hasil yang hanya berupa pendekatan). Algoritma yang baik
harus mampu memberikan hasil yang sedekat mungkin dengan nilai yang
sebenarnya.
Ketiga adalah efisiensi algoritma. Efisiensi algoritma dapat ditinjau dari 2 hal
yaitu efisiensi waktu 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 cepat. Begitu juga dengan
memori, semakin besar memori yang terpakai maka semakin buruklah
algoritma tersebut.

1.2.2. Ciri-ciri, Sifat, Struktur Dasar dan Cara Penulisan Algoritma


Ciri-Ciri Algoritma :
a. Input (Masukan yg diberikan secara internal)
b. Output (Keluaran / Tampilan yg dihasilkan)
c. Definite (Menyatakan apa yg dilakukan)
d. Effective (Instruksi yg dilakukan secara Manual, dgn jumlah waktu yg berhingga)
e. Terminate (Berhenti setelah sejumlah Operasi)
Ciri-ciri Algoritma menurut Donald E. Knuth
1. Algoritma mempunyai awal dan akhir . Suatu algoritma harus berhenti setelah
mengerjakan serangkaian tugas dengan kata lain algroritma harus memiliki langkah
terbatas .
2. Setiap langkah harus didefinisikan dengan tepat sehingga tidak memiliki arti ganda (not
ambiguous)
3. Memiliki masukan (input) atau kondisi awal
4. Memiliki keluaran (output) atau kondisi akhir
5. Algoritma harus efektif , bila diikuti benar-benar akan menyelesaikan masalah .

SIFAT-SIFAT ALGORITMA

1. Banyaknya langkah instruksi harus berhingga


Pelaksanaan sebuah algoritma yang terprogram haruslah dapat diakhiri atau diselesaikan
melalui sejumlah langkah operasional yang berhingga. Jika tidak demikian, kita tidak akan
dapat mengharapkan bahwa pelaksaan algoritma tersebut dapat menghasilkan suatu solusi
yang baik.

2. Langkah atau instruksi harus jelas


Artinya bahwa penulisa setiap langkah yang terdapat didalam sebuah algoritma harus
memiliki arti yang khusus atau spesifik sehingga dapat dibedakan antara penulisan langkah
untuk komputer(program/pemrograman) dengan penulisan langkah bagi
manusia(pesudocode). Manusia akan lebih mudah memahami algoritma yang terdiri atas
simbol-simbol(Contoh: pembuatan algoritma dengan diagram alur/flowchart) sedangkan
komputer hanya membutuhkan sebuah penulisan algoritma dengan kode-kode yang
dituangkan dalam bahasa yang dimengerti oleh komputer itu sendiri(bahasa pemrograman).

3. Proses harus jelas dan mempunyai batasan


Rangkaian suatu proses yang berisi langkah-langkah instruksi dari suatu algoritma yang akan
dilaksanakn harus ditetapkan dengna jelas, baik dan pasti sebab sebuah algoritma harus
memiliki instruksi dasar tertentu dimana setiap instruksi harus memiliki unsur pelaksana yang
berfungsi sebagai pemroses data yang akan dimasukkan dalam sebuah komputer. Dengan
demikian, sebuah algoritma harus ditulis dengan jelas tentang batasa-batasan proses yang
akan dilaksanakan oleh komputer.

4. Input dan Output harus mempunyai batasan


Input merupakan data yang dimasukkan ke dalam algoritma yang untuk kemudian akan
dilaksanakan oleh komputer. Dengan begitu, input yang diberikan harus sesuai dengan jenis
dari bahasa pemrograman yang digunakan, sedangkan ouput merupakan hasil yang diperoleh
dari pekerjaan yang dilaksanakan komputer untuk kepentingan user yang merupakan pihak
diluar komputer. Algoritma harus menghasilkan output karena merupaka solusi yang
diharapkan dari suatu masalah yang timbul.

5. Efektifitas
Instruksi yang diberikan pada komputer agar hanya menjalankan atau melaksanakan proses
yang mampu dilaksanakannya. Yang dimaksud mampu adalah bahwa suatu algoritma atau
instruksi-instruksi dalam sebuah program hanya akan dapat dilaksanakan jika informasi yang
diberikan oleh instruksi-instruksi tersebut lengkap, benar dan jelas.
6. Adanya batasan ruang lingkup
Sebuah algoritma yang baik adalah hanya ditujukan bagi suatu masalah tertentu saja.
Susunana input harus ditentukan lebih dulu sebab susunan tersebut enentukan sifat umum
dari algoritma yang bersangkutan.

Suatu Algoritma yg terbaik (The Best) : “ Suatu algoritma harus menghasilkan output

yg tepat guna (efektif) dlm waktu yg relatif singkat & penggunaan memori yg relatif

sedikit (efesien) dgn langkah yg berhingga & prosedurnya berakhir baik dlm keadaan

dip’oleh suatu solusi ataupun tdk ada solusinya. “

Struktur Dasar Algoritma


Algoritma berisi langkah-langkah penyelesaian suatu masalah. Langkah-langkah tersebut
dapat berupa runtunan aksi (sequence), pemilihan aksi (selection), pengulangan aksi
(iteration) atau kombinasi dari ketiganya. Jadi struktur dasar pembangunan algoritma ada
tiga, yaitu:

1. Struktur Runtunan
Digunakan untuk program yang pernyataannya sequential atau urutan.
2. Struktur Pemilihan
Digunakan untuk program yang menggunakan pemilihan atau penyeleksian kondisi.
3. Struktur Perulangan
Digunakan untuk program yang pernyataannya akan dieksekusi berulang-ulang.

Dalam Algoritma, tidak dipakai simbol-simbol / sintaks dari suatu bahasa pemrograman
tertentu, melainkan bersifat umum dan tidak tergantung pada suatu bahasa pemrograman
apapun juga. Notasi-notasi algoritma dapat digunakan untuk seluruh bahasa pemrograman
manapun.

1.2.3. Perbedaan Algoritma dan Program


Program adalah kumpulan pernyataan komputer, sedangkan metode dan tahapan
sistematis dalam program adalah algoritma. Program ditulis dengan menggunakan bahasa
pemrograman. Jadi bisa disebut bahwa program adalah suatu implementasi dari bahasa
pemrograman. Beberapa pakar memberi formula bahwa :

Program = Algoritma + Bahasa (Struktur Data)


Bagaimanapun juga struktur data dan algoritma berhubungan sangat erat pada sebuah
program. Algoritma yang baik tanpa pemilihan struktur data yang tepat akan membuat
program menjadi kurang baik, demikian juga sebaliknya.
Pembuatan algoritma mempunyai banyak keuntungan di antaranya :

 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.
Beberapa hal yang perlu diperhatikan dalam membuat algoritma :

 Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah. Deskripsi tersebut


dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan dipahami.
 Tidak ada notasi yang baku dalam penulisan teks algoritma seperti notasi bahasa
pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi algoritmik.
 Setiap orang dapat membuat aturan penulisan dan notasi algoritmik sendiri. Hal ini
dikarenakan teks algoritma tidak sama dengan teks program. Namun, supaya notasi
algoritmik mudah ditranslasikan ke dalam notasi bahasa pemrograman tertentu, maka
sebaiknya notasi algoritmik tersebut berkorespondensi dengan notasi bahasa
pemrograman secara umum.
 Notasi algoritmik bukan notasi bahasa pemrograman, karena itu pseudocode dalam notasi
algoritmik tidak dapat dijalankan oleh komputer. Agar dapat dijalankan oleh
komputer, pseudocode dalam notasi algoritmik harus ditranslasikan atau diterjemahkan ke
dalam notasi bahasa pemrograman yang dipilih. Perlu diingat bahwa orang yang menulis
program sangat terikat dalam aturan tata bahasanya dan spesifikasi mesin yang
menjalannya.
 Algoritma sebenarnya digunakan untuk membantu kita dalam mengkonversikan 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 :
a. Pendeklarasian variabel
Untuk mengetahui dibutuhkannya pendeklarasian variabel dalam penggunaan bahasa
pemrograman apabila tidak semua bahasa pemrograman membutuhkannya.
b. Pemilihan tipe data
Apabila bahasa pemrograman yang akan digunakan membutuhkan pendeklarasian
variabel maka perlu hal ini dipertimbangkan pada saat pemilihan tipe data.
c. Pemakaian instruksi-instruksi
Beberapa instruksi mempunyai kegunaan yang sama tetapi 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.
Hal-hal teknis ini diperhatikan ketika mengkonversikannya menjadi program.
f. Cara pengoperasian compiler atau interpreter.
Bahasa pemrograman yang digunakan termasuk dalam
kelompok compiler atau interpreter.

1.2.4. Faktor Penilaian Algoritma


a. Waktu Tempuh (Running Time) dr suatu Algortima.
Hal-hal yg dpt mempengaruhi drpd waktu tempuh adalah :
1. Banyaknya langkah.
2. Besar dan jenis input data.
3. Jenis Operasi.
4. Komputer dan kompilator
b. Jumlah Memori Yang Digunakan.

1.2.5. Penyajian Algoritma


Secara besar, teknik penyajian algoritma terbagi menjadi 3 bentuk umum :

1 Kalimat Deskriptif
Yaitu dengan menjelaskan secara detail algoritma suatu masalah dengan bahasa
yang mudah dimengerti oleh orang awam, dan akan sangat sulit dimengerti bila
diterjemahkan kedalam bahasa pemograman.
Contoh :

Program LuasSegitiga
Memasukkan angka luas dan tinggi. Algoritma mengitung luas segitiga
yaitu setengah alas dikalikan tinggiALGORITMA
1. Masukkan alas dan tinggi
2. Rumus luas segitiga = 0.5 * a * t
3. Cetak hasilnya ke layar

PseudoCode

Pseudocode adalah notasi yang menyerupai notasi bahasa pemrograman tingkat tinggi.
Keuntungan menggunakan notasi Pseudocode adalah kemudahan mengkonversinya lebih
tepat disebut mentranslasi ke notasi bahasa pemrograman, karena terdapat korespondensi
antar setiap pseudocode dengan notasi bahasa pemrograman. Pseudo berarti imitasi dan
code berarti kode yang dihubungkan dengan instruksi yang ditulis dalam bahasa komputer
(kode bahasa pemrograman). Apabila diterjemahkan secara bebas, maka pseudocode berarti
tiruan atau imitasi dari kode bahasa pemrograman.

Pada dasarnya, pseudocode merupakan suatu bahasa yang memungkinkan programmer


untuk berpikir terhadap permasalahan yang harus dipecahkan tanpa harus memikirkan
syntax dari bahasa pemrograman yang tertentu. Tidak ada aturan penulisan syntax di dalam
pseudocode. Jadi pseudocode digunakan untuk menggambarkan logika urut-urutan dari
program tanpa memandang bagaimana bahasa pemrogramannya.

Contoh PseudoCode sederhana untuk menentukan bilangan terkecil diantara dua bilangan
:

Start
Read x,y

If x < y Then

Print x

Else

Print y

End If

End
PseudoCode diatas dimulai dengan deklarasi inputan x dan y lalu dilanjutkan dengan
penentuan kondisi apakah x lebih kecil dari y. Jika x lebih dari y, maka program akan
mencetak x sebagai angka terkecil. Namun, jika kebalikannya (y lebih kecil dari x) maka
program akan mencetak y sebagai angka terkecil.

FlowChart

Flowchart Sistem merupakan bagan yang menunjukkan alur kerja atau apa yang sedang
dikerjakan di dalam sistem secara keseluruhan dan menjelaskan urutan dari prosedur-
prosedur yang ada di dalam sistem. Dengan kata lain, flowchart ini merupakan dekripsi secara
grafik dari urutan prosedur-prosedur yang terkombinasi yang membentuk suatu
sistem. Flowchart berasal dari dua kata yaitu flow yang berarti alir atau alur dan chart yang
berarti diagram. Dalam ilmu teknologi flowchart adalah diagram yang berupa simbol-simbol
grafis yang membentuk aliran algoritma yang menggambarkan langkah-langkah dalam
penyelesaian masalah dalam program atau sistem secara logika.

Kaidah-Kaidah Umum Pembuatan Flowchart Program


Dalam pembuatan flowchart Program tidak ada rumus atau patokan yang bersifat mutlak.
Karena flowchart merupakan gambaran hasil pemikiran dalam menganalisis suatu masalah
dengan komputer.
Namun secara garis besar setiap pengolahan selalu terdiri atas 3 bagian utama, yaitu:

1. Input,
2. Proses pengolahan
3. Output

Untuk pengolahan data dengan komputer, urutan dasar pemecahan suatu masalah:
 START, berisi pernyataan untuk persiapan peralatan yang diperlukan sebelum menangani
pemecahan persoalan.
 READ, berisi pernyataan kegiatan untuk membaca data dari suatu peralatan input.
 PROSES, berisi kegiatan yang berkaitan dengan pemecahan persoalan sesuai dengan data
yang dibaca.
 WRITE, berisi pernyataan untuk merekam hasil kegiatan ke peralatan output.
 END, mengakhiri kegiatan pengolahan.

Walaupun tidak ada kaidah-kaidah yang baku dalam penyusunan flowchart, namun ada
beberapa anjuran:

 Hindari pengulangan proses yang tidak perlu dan logika yang berbelit sehingga jalannya
proses menjadi singkat.
 Jalannya proses digambarkan dari atas ke bawah dan diberikan tanda panah untuk
memperjelas.
 Sebuah flowchart diawali dari satu titik START dan diakhiri dengan END.

Beberapa symbol flowchart dan pengertiannya :


Contoh flowchart menentukan luas persegi panjang :

Keterangan :
o Dimulai dengan symbol terminator untuk menandakan start.
o Masukkan input p dan l. Karena ini inputan, maka menggunakan symbol input-output
(trapesium).
o Lakukan proses perhitungan luas dengan mengalikan panjang dan lebar persegi panjang.
Karena ini proses, gunakan symbol proses (persegi panjang).
o Setelah di proses, kita akan melakukan print/output luasnya. Gunakan symbol input-
output (trapesium).
o End.

1.3 Tugas Praktikum

1.

Anda mungkin juga menyukai