Dokumen tersebut membahas tentang algoritma pemrograman dan konsep dasar algoritma. Dibahas pula jenis-jenis algoritma, beda antara algoritma dan program, serta struktur dasar dari algoritma."
1. TP4 SMK NEGERI 1 PUNGGING
February6,2014
BUKU PEGANGAN SISWA DAN GURU
TEKNIK PENYIARAN
DASAR PEMROGRAMAN
ALGORITHMA PEMROGRAMAN
DISUSUN OLEH : ZAINUL ARIFIN, S. Kom
= TEKNIK BROADCASTING =
PAKET KEAHLIAN
TEKNIK PRODUKSI DAN PENYIARAN PROGRAM PERTELEVISIAN
BIDANG KEAHLIAN TEKNIK INFORMASI DAN KOMUNIKASI
DINAS PENDIDIKAN. KAB. MOJOKERTO
SMK NEGERI 1 PUNGGING
2013/2014
2. TP4 SMK NEGERI 1 PUNGGING
February6,2014
A. PENGERTIAN ALGORITHMA PEMROGRAMAN
Diagram Alur sering digunakan untuk menggambarkan sebuah
algorithma. Dalam matematika dan komputasi, algorithma merupakan
kumpulan perintah untuk menyelesaikan suatu masalah. Perintah-perintah
ini dapat diterjemahkan secara bertahap dari awal hingga akhir. Masalah
tersebut dapat berupa apa saja, dengan catatan untuk setiap masalah, ada
kriteria kondisi awal yang harus dipenuhi sebelum menjalankan algorithma.
Algorithma akan dapat selalu berakhir untuk semua kondisi awal yang
memenuhi kriteria, dalam hal ini berbeda dengan heuristik. Algorithma
sering mempunyai langkah pengulangan (iterasi) atau memerlukan
keputusan (logika Boolean dan perbandingan) sampai tugasnya selesai.
Desain dan analisis algorithma adalah suatu cabang khusus dalam ilmu
komputer yang mempelajari karakteristik dan performa dari suatu algorithma
dalam menyelesaikan masalah, terlepas dari implementasi algorithma
tersebut. Dalam cabang disiplin ini algorithma dipelajari secara abstrak,
terlepas dari sistem komputer atau bahasa pemrograman yang digunakan.
Algorithma yang berbeda dapat diterapkan pada suatu masalah dengan
kriteria yang sama.
Kompleksitas dari suatu algorithma merupakan ukuran seberapa
banyak komputasi yang dibutuhkan algorithma tersebut untuk
menyelesaikan masalah. Secara informal, algorithma yang dapat
menyelesaikan suatu permasalahan dalam waktu yang singkat memiliki
3. TP4 SMK NEGERI 1 PUNGGING
February6,2014
kompleksitas yang rendah, sementara algorithma yang membutuhkan waktu
lama untuk menyelesaikan masalahnya mempunyai kompleksitas yang tinggi.
Sejarah istilah "algorithma" berasal dari bahasa Latin, dari nama
seorang ahli matematika dari Uzbekistan Al Khawārizmi (hidup sekitar abad
ke-9), sebagaimana tercantum pada terjemahan karyanya dalam bahasa latin
dari abad ke-12 "Algorithmi de numero Indorum". Pada awalnya kata
algorithma adalah istilah yang merujuk kepada aturan-aturan aritmetis untuk
menyelesaikan persoalan dengan menggunakan bilangan numerik arab
(sebenarnya dari India, seperti tertulis pada judul di atas). Pada abad ke-18,
istilah ini berkembang menjadi algorithma, yang mencakup semua prosedur
atau urutan langkah yang jelas dan diperlukan untuk menyelesaikan suatu
permasalahan.
JENIS-JENIS ALGORITHMA
Terdapat beragam klasifikasi algoritma, dan setiap klasifikasi
mempunyai alasan tersendiri. Salah satu cara untuk melakukan klasifikasi
jenis-jenis algoritma adalah dengan memperhatikan paradigma dan metode
yang digunakan untuk mendesain algoritma tersebut.
Beberapa paradigma yang digunakan dalam menyusun suatu algoritma
akan dipaparkan dibagian ini. Masing-masing paradigma dapat digunakan
dalam banyak algoritma yang berbeda.
4. TP4 SMK NEGERI 1 PUNGGING
February6,2014
Divide and Conquer
Paradigma untuk membagi suatu permasalahan besar menjadi
permasalahan-permasalahan yang lebih kecil. Pembagian masalah ini
dilakukan terus menerus sampai ditemukan bagian masalah kecil yang
mudah untuk dipecahkan. Singkatnya menyelesaikan keseluruhan
masalah dengan membagi masalah besar dan kemudian memecahkan
permasalahan-permasalahan kecil yang terbentuk.
Dynamic Programming
Paradigma pemrograman dinamik akan sesuai jika digunakan pada
suatu masalah yang mengandung sub-struktur yang optimal dan
mengandung beberapa bagian permasalahan yang tumpang tindih .
Paradigma ini sekilas terlihat mirip dengan paradigma Divide and
Conquer, sama-sama mencoba untuk membagi permasalahan menjadi sub
permasalahan yang lebih kecil, tapi secara intrinsik ada perbedaan dari
karakter permasalahan yang dihadapi.
Metode Serakah
Sebuah algoritma serakah mirip dengan sebuah Pemrograman
dinamik, bedanya jawaban dari submasalah tidak perlu diketahui dalam
setiap tahap dan menggunakan pilihan “serakah” apa yang dilihat terbaik
pada saat itu.
5. TP4 SMK NEGERI 1 PUNGGING
February6,2014
Pseudo Code (Kode Semu)
Pseudo Code (kode semu) merupakan metode yang cukup efisien
untuk menggambarkan suatu algoritma . Pseudo Code dituliskan dengan
menggunakan bahasa yang mudah dipahami (boleh menggunakan bahasa
Indonesia) agar alur logika yang digambarkan dapat dimengeti oleh orang
awam sekalipun.
Flowchart Pseudo Code (kode semu) disusun dengan tujuan untuk
menggambarkan tahap-tahap penyelesaian suatu masalah dengan kata-
kata (teks). Metode ini mempunyai kelemahan, dimana penyusunan
algoritma dengan kode semu sangat dipengaruhi oleh tata bahasa
pembuatnya, sehingga kadang-kdang sulit dipahami oleh orang lain. Oleh
karena itu kemudian dikembangkan suatu metode lain yang dapat
menggambarkan suatu algoritma program secara lebih mudah dan
sederhana yaitu dengan menggunakan flowchart (diagram alir).
Sistem Flowchart
Sistem flowchart merupakan diagram alir yang menggambarkan
suatu sistem peralatan komputer yang digunakan dalam proses
pengolahan data serta hubungan antar peralatan tersebut. Sistem flow
chart tidak digunakan untuk menggambarkan urutan langkah untuk
memecahkan masalah, tetapi hanya untuk menggambarkan prosedur
dalam sistem yang dibentuk.
6. TP4 SMK NEGERI 1 PUNGGING
February6,2014
B. KONSEP ALGORITHMA PEMROGRAMAN
“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
harusdapat ditentukan bernilai salah atau benar. Dalam beberapa konteks,
algoritma adalah spesifikasi urutan langkah untuk melakukan pekerjaan
tertentu.
Pertimbangan dalam pemilihan algoritmaadalah, 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.
Konsep Algoritma
7. TP4 SMK NEGERI 1 PUNGGING
February6,2014
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.
Dalam kenyataannya, setiap orang bisa membuat algoritma yang
berbeda untuk menyelesaikan suatu permasalahan, walaupun terjadi
perbedaan dalam menyusun algoritma, tentunya kita mengharapkan
keluaran yang sama. Jika terjadi demikian, carilah algoritma yang paling
efisien dan cepat.
8. TP4 SMK NEGERI 1 PUNGGING
February6,2014
BEDA ALGORITHMA DENGAN 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.
9. TP4 SMK NEGERI 1 PUNGGING
February6,2014
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.
10. TP4 SMK NEGERI 1 PUNGGING
February6,2014
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 variable
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.
11. TP4 SMK NEGERI 1 PUNGGING
February6,2014
f) Cara pengoperasian compiler atau interpreter.
Bahasa pemrograman yang digunakan termasuk dalam kelompok
compiler atau interpreter.
C. STRUKTUR ALGORITHMA
Pada dasarnya, sebuah algoritma merupakan deskripsi pelaksanaan
suatu proses. Algoritma itu sendiri disusun oleh sederetan langkah instruksi
yang logis. Tiap langkah instruksi tersebut mengerjakan suatu tindakan
(aksi).
Bila suatu aksi dilaksanakan, maka sejumlah operasi yang bersesuaian
dengan aksi itu dikerjakan oleh pemroses. Efek dari pengerjaan suatu aksi
dapat diamati dengan membandingkan keadaan pada saat aksi belum dimulai
(t0), dan keadaan pada saat aksi selesai dikerjakan (t1).
t0 : keadaan sebelum aksi dikerjakan aksi
t1 : keadaan setelah aksi dikerjakan
Sebagai contoh, tinjau kembali algoritma yang menggambarkan proses
mempertukarkan larutan dari dua buah bejana A dan B. Pada setiap
pelaksanaan aksi amati keadaan awal dan keadaan akhir akhirnya
t0 : Bejana A berisi larutan berwarna merah, bejana B berisi larutan
berwarna biru (bejana C masih kosong)
12. TP4 SMK NEGERI 1 PUNGGING
February6,2014
1. Tuangkan larutan dari bejana A ke dalam bejana C
t1 : Bejana A kosong, bejana C berisi larutan berwarna Biru
t0 : Bejana A kosong, bejana B berisi larutan berwarna Merah
2. Tuangkan larutan dari bejana B ke dalam bejana A
t1 : Bejana A berisi larutan berwarna Merah, bejana B kosong
t0 : Bejana B kosong, bejana C berisi larutan berwarna Biru
3. Tuangkan larutan dari bejana C ke dalam bejana B
t1 : Bejana B berisi larutan berwarna Biru, bejana A sudah berisi larutan
berwarna Merah (bejana C kosong)
13. TP4 SMK NEGERI 1 PUNGGING
February6,2014
Algoritma berisi langkah suatu masalah. Langkah-langkah tersebut
dapat berupa runtunan aksi, pemilihan aksi, dan pengulangan aksi. Ketiga
jenis langkah tersebut membentuk konstruksi suatu algoritma. Jadi sebuah
algoritma dapat dibangun dari tiga buah struktur dasar, yaitu:
Runtunan (sequence)
Pemilihan (selection)
Pengulangan (repetition)
a) RUNTUTAN (SEQUENCE)
Sebuah runtunan terdiri dari satu atau lebih instruksi.Tiap instruksi
dikerjakan secara berurutan sesuai dengan urutan penulisannya, yakni
sebuah instruksi dilaksanakan setelah instruksi sebelumnya selesai
dilaksanakan.Urutan instruksi menetukan keadaan akhir algoritma.Bila
urutan diubah, maka hasil akhirnya mungkin juga bisa berubah.
Perhatikan runtunan instruksi berikut:
A1
A2
A3
A4
A5
Sebagai contoh, tinjau kembali algoritma mempertukarkan larutan
di dalam dua buah bejana A dan B. Algoritma diatas disusun oleh runtunan
14. TP4 SMK NEGERI 1 PUNGGING
February6,2014
yang terdiri atas 3 buah instruksi. Tiap instruksi dikerjakan secara
berurutan, maka hasil akhir adalah hasil diinginkan.
Bila instruksi diubah, maka hasil akhirnya pun juga berubah
sehingga pertukaran isi dua buah bejana pun tidak benar. Karena itu,
penting perlu memperhatikan urutan aksi di dalam sebuah runtunan.
Urutan aksi di dalam runtunan mencerminkan cara berpikir si penyusun
algoritma dalam menuliskan langkah-langkah pemecahan masalah.
b) PEMILIHAN (SELECTION)
Adakalanya sebuah instruksi dikerjakan jika kondisi tertentu
dipenuhi. Contoh dalam algoritma pencarian data terkecil dilakukan
dengan membanding-bandingkan data. Mula-mula data pertama dianggap
data terkecil sementara (min). Kemudian membandingkan min dengan
data ke-2, 3, …..(n).
Selama proses perbandingan, bila data lebih kecil dari min, maka
date ke-j itu menjadi min yang baru. Langkah terakhir ditulis dalam
pernyataan berikut
Jika data ke-j lebih kecil dari min, maka
isikan data ke-j sebagai min yang baru
15. TP4 SMK NEGERI 1 PUNGGING
February6,2014
Pernyataan diatas dapat ditulis dalam struktur umum
if kondisi then
aksi
Dalam bahasa indonesia, if berati “jika” dan then artinya “maka”.
Kondisi adalah persyaratan yang dapat bernilai benar atau salah. Aksi
hanya dilaksanakan apabila kondisi bernilai benar.Sebaliknya, apabila
kondisi bernilai benar. Sebaliknya apabila bernilai salah, maka aksi tidak
dilaksanakan. Kata yang digarisbawahi, if dan then, merupakan kata kunci
(keywords) untuk struktur pemilihan ini.
Struktur pemilihan if-then hanya memberikan satu pilihan aksi bila
kondisi (persyartan) dipenuhi (bernilai benar), dan tidak memberi pilihan
aksi lain bila kondisi bernilai salah.
Bentuk pemilihan yang lebih umum ialah pemilihan satu dari dua
buah aksi bergantung pada nilai kondisinya. Apabila pilihan aksi yang
dilakukan lebih dari dua buah, maka struktur pemilihannya menjadi lebih
rumit, seperti pada contoh berikut (pemilihan bersarang)
If lampu pengatur lalu lintas berwarna merah then
anda harus berhenti
else
if lampu pengatur lalu lintas berwarna kuning then
anda boleh jalan tapi dengan hati-hati
else
anda dipersilahkan terus berjalan
16. TP4 SMK NEGERI 1 PUNGGING
February6,2014
Perhatikanlah bahwa penggunaan indentasi (rongak kosong)
membuat algoritma menjadi lebih mudah dibaca. Tanpa indentasi,
algoritma menjadi lebih sulit dibaca, misalnya algoritma ditulis seperti
dibawah ini
if lampu pengatur lalu lintas berwarna merah then
anda harus berhenti
elseif lampu pengatur lalu lintas berwarna kuning then
anda boleh jalan tapi dengan hati-hati else
anda dipersilahkan terus berjalan
Perancang algoritma sangat dianjurkan membuat indentasi agar
algoritma yang dibuat lebih mudah dibaca.
Contoh lain dari pemilihan bersarang adalah menentukan bilangan
terbesar dari tiga buah bilangan: x, y, dan z.
if x > y then
if x > z then
tulis x sebagai bilangan terbesar
else
tulis z sebagai bilangan terbesar
else
if y > z then
tulis y sebagai bilangan terbesar
else
tulis z sebagai bilangan terbesar
Kelebihan struktur pemilihan terletak pada kemampuannya yang
memungkinkan pemroses mengikuti jalur aksi yang berbeda berdasarkan
kondisi yang ada.Tanpa struktur pemilihan, kita tidak mungkin menulis
algoritma untuk permasalahan praktis yang demikian kompleks.
17. TP4 SMK NEGERI 1 PUNGGING
February6,2014
c) PENGULANGAN (REPETITION)
Salah satu kelebihan komputer adalah kemampuannya untuk
mengerjakan pekerjaan yang sama berulang kali tanpa mengenal lelah.
Sewaktu duduk di sekolah dasar, bila anda pernah dihukum oleh guru
untuk menuliskan sebuah kalimat sebanyak 500 kali, misalnya
dikarenakan anda nakal tidak mengerjakan PR. Misalkan kalimat yang
harus ditulis 500 kali tersebut adalah:
“Saya berjanji tidak akan nakal dan malas lagi”
Bila pekerjaan menulis kalimat ini diserahkan kepada komputer, maka
pemrogram mungkin menuliskannya sebagai berikut:
Algoritma menulis 500 kalimat
Deskripsi :
1. Saya berjanji tidak akan nakal dan malas lagi
2. Saya berjanji tidak akan nakal dan malas lagi
3. Saya berjanji tidak akan nakal dan malas lagi
4. Saya berjanji tidak akan nakal dan malas lagi
....
500
Tentu saja algoritma untuk menulis 500 buah kalimat seperti diatas
tidak elegan, karena instruksi “Saya berjanji tidak akan nakal dan malas
lagi” harus dibuat di dalam teks algoritma sebanyak 500 kali. Untuk
mengatasi hal ini, maka anda dapat menggunakan struktur pengulangan
18. TP4 SMK NEGERI 1 PUNGGING
February6,2014
for-do sehingga algoritma menulis 500 buah kalimat dapat ditulis sebagai
berikut:
Algoritma menulis 500 kalimat :
Menuliskan kalimat " Saya berjanji tidak akan nakal dan malas lagi "
Sebanyak 500 kali.
Deskripsi :
for K dari 1 sampai 500 do
tulis kalimat "Saya berjanji tidak akan nakal dan malas
lagi "
“K” adalah pencacah pengulangan yang dari 1 sampai 500. Komputer akan
melaksanakan aksi tulis kalimat tersebut sebanyak 500 kali.
Struktur pengulangan ini dapat ditulis secara umum sebagai berikut:
for pencacah pengulangan dari 1 sampai Kdo
aksi
Struktur pengulangan yang kedua adalah REPEAT yang terdiri atas
kata kunci repeat-until (repeat artinya “ulangi” dan until artinya “sampai”
atau “hingga”) yang mempunyai bentuk umum sebagai berikut:
Repeat
aksi
Until
kondisi
yang artinya adalah pengulangan aksi dilakukan hingga kondisi
(persyaratan) berhenti terpenuhi.
19. TP4 SMK NEGERI 1 PUNGGING
February6,2014
Struktur pengulangan yang ketiga adalah WHILE dengan kata kunci
while-do (while artinya “selagi” atau “selama” dan do artinya “lakukan”)
yang mempunyai bentuk umum sebagai berikut:
while kondisi do
aksi
yang artinya adalah selama kondisi (persyaratan) pengulangan masih
benar, maka aksi dikerjakan. Perbedaannya dengan repeat-until, jika pada
repeat-until kondisi pengulangan dievaluasi diakhir, sedangkan pada while-
do kondisi pengulangan dievaluasi di awal perhitungan.
Meskipun struktur repeat-until dan while-do mempunyai fungsi yang
mirip sehingga pada beberapa kasus dapat saling menggantikan, namun
secara umum penggunaannya bergantung pada spesifikasi masalah.
D. ALGORITHMA MENGGUNAKAN BAHASA NATURAL
Bahasa Natural atau yang biasa disebut Natural Language
Programming (NLP) merupakan cara penyajian suatu algoritma yang paling
sederhana dan paling mudah dimengerti. karena Bahasa Natural adalah
bahasa yang biasa kita gunakan sehari – hari namun tetap sesuai dengan
kaidah bahasa yang baku. Ada beberapa hal yang perlu diperhatikan jika kita
akan menyajikan suatu algoritma sebuah program dengan bahasa Natural,
antara lain Start dan End yang harus dituliskan secara explisit.
Bahasa Natural, Start biasanya dituliskan sebagai ‘inisialisasi’ atau
‘Mulai’ dan merupakan langkah pertama dalam algoritma, sedangkan End
20. TP4 SMK NEGERI 1 PUNGGING
February6,2014
sendiri dituliskan sebagai ‘selesai’ dan dituliskan pada akhir algoritma.
Namun sebenarnya tidak ada aturan baku dalam hal penamaan lain dari Start
dan End itu sendiri.
Salah satu contoh sederhana adalah algoritma untuk menentukan
sebuah bilangan adalah ganjil atau genap. Jadi diberikan input sebuah
bilangan dari user, dan program akan secara otomatis menentukan dan
memberikan output berupa informasi genap atau ganjil.
Contoh :
1. Inisialisasi : (START)
2. Input sebuah bilangan, masukkan ke dalam sebuah variabel, misalkan saja
bil.
3. Apakah bil modulus 2 sama dengan nol?
Jika ya, maka bilangan tersebut adalah bilangan genap.
Jika tidak, maka sudah dapat dipastikan bahwa bilangan tersebut
adalah bilangan ganjil.
4. Tampilkan jenis bilangan (genap, atau ganjil).
5. Apakah ingin mengulang proses?
Jika ya, kembali ke langkah 2.
Jika tidak, langsung ke langkah 5 (selesai).
6. Selesai : (END)
21. TP4 SMK NEGERI 1 PUNGGING
February6,2014
ISI / CONTENT
Pemrograman Bahasa Alami (NLP) adalah cara ontologi dibantu
pemrograman dalam hal kalimat bahasa alam, misalnya Bahasa Inggris.
Sebuah dokumen terstruktur dengan Content, bagian dan sub-bagian untuk
penjelasan kalimat bentuk dokumen NLP, yang sebenarnya adalah sebuah
program komputer. Sebuah contoh dari pemrograman bahasa alami adalah
dalam "sEnglish" yang pendek untuk "sistem bahasa Inggris".
Unit terkecil dari pernyataan di NLP adalah ‘kalimat’. Setiap kalimat
dinyatakan dalam bentuk konsep dari ontologi yang mendasari, atribut dalam
ontologi itu dan nama benda-benda dalam huruf kapital. Dalam sebuah teks
NLP setiap kalimat jelas kompilasi menjadi panggilan prosedur dalam bahasa
pemrograman yang mendasari tingkat tinggi seperti MATLAB, Oktaf, Scilab,
Pythondan-lain-lain.
Bahasa simbolik seperti [Mathematica] mampu Diartikan atau
ditafsirkan pengolahan pertanyaan oleh kalimat. Hal ini dapat
memungkinkan permintaan interaktif seperti yang diterapkan. Perbedaan
antara dan NLP adalah bahwa yang kedua membangun sebuah program
tunggal atau perpustakaan rutinitas yang diprogram melalui kalimat bahasa
alam dengan menggunakan ontologi yang mendefinisikan struktur data yang
tersedia dalam bahasa pemrograman tingkat tinggi.
Sebuah teks contoh dari program bahasa NLP Inggris (dalam sEnglish) adalah
sebagai berikut:
22. TP4 SMK NEGERI 1 PUNGGING
February6,2014
Yang mendefinisikan skema kontrol umpan balik menggunakan [sliding
mode kontrol] metode. Catatan ini menjelaskan NLP dalam bentuk umum,
tanpa spesifik tentang bahasa pemrograman tingkat tinggi yang mendasari.
E. PENGENALAN VARIABEL, TIPE DATA, KONSTANTA DAN OPERATOR
a) VARIABEL
Variabel adalah merupakan tempat penyimpanan data yang sifatnya
sementara.Variabel dialokasikan oleh computer untuk menampung nilai
data dan variable harus memiliki tipe data atau jenis data. Setiap variable
harus mempunyai nama untuk pemberian nama variable terdapat
beberapa syarat yaitu :
Syarat Penamaan Variabel :
Panjang Karakter Maksimal 255 Karakter
Tidak dapat menggunakan Spasi
23. TP4 SMK NEGERI 1 PUNGGING
February6,2014
Tidak dapat dimulai dengan angka
Tidak dapat menggunakan Tanda Baca selain ( _ )
Pendeklarasian Variabel adalah suatu kegiatan untuk mengenalkan
Nama Variabel dengan Tipe Data yang digunakan di Memory (Random
Access Memory) atau dapat juga didefenisikan sebagai awal pemesanan
tempat pada blok – blok memory. Didalam Visual Basic contohnya, sangat
dianjurkan untuk mendeklarasikan suatu variable dengan cara
menentukan nama dan type data yang digunakan.Pada saat
mendeklarasikan variable terdapat beberapa tempat yang dapat
digunakan yaitu :
General Declarations Form / Module
Didalam Procedure atau Fungsi
Mendeklarasikan variabel
Memberikan nama variabel sebagai identitas pengenal
Menentukan tipe data variable
Bentuk umum:
Var
NamaVariabel1,
NamaVariabel2,
:
:
NamaVariabelN : TipeData1;
NamaVariabel1,
NamaVariabel2,
:
24. TP4 SMK NEGERI 1 PUNGGING
February6,2014
:
NamaVariabelN : TipeData2;
:
:
NamaVariabel1,
NamaVariabel2,
:
:
NamaVariabelN : TipeDataN;
Contoh Deklarasi variabel :
Var
Angka1,
Angka2 :Integer;
Nama1,
Nama2 :String;
b) TIPE DATA
Tipe data atau Jenis Data dapat diartikan sebagai media untuk
mendefinisikan Variabel. Secara sederhana tipe data dapat didefinisikan
dengan istilah tempat untuk menentukan pemberian nilai terhadap suatu
variabel sesuai atau tidak dengan nilai yang diberikan oleh user. Dalam
versi lain tipe data juga diartikan sebagai batasan terhadap fungsi tanda
pengenal terhadap semua nilai yang diterima.
Logika yang dapat kita berikan adalah ketika kita menempatkan
tanda pengenal harga hanya mengenal angka, maka ketika kita
25. TP4 SMK NEGERI 1 PUNGGING
February6,2014
memberikan nilai berupa string maka secara otomatis data tersebut akan
ditolak karena nilai tersebut tidak dikenali oleh tipe data yang diberikan.
JENIS-JENIS TIPE DATA
1. Tipe data Integer / Ordinal
Tipe data ini adalah tipe data yang berupa bilangan bulat yang
akan digunakan untuk operasi matematika. Ada beberapa tipe data
yang termasuk integer, yaitu antara lain:
ShortInt : memiliki nilai range -128 sampai 127 (signed 8-bit)
SmallInt : memiliki nilai range antara - 32768 sampai dengan 32767
(signed 16-bit)
LongInt : memiliki nilai range -2147483648 sampai 2147483647
(signed 32-bit )
Int64 : memiliki range -263+1 sampai 263-1 (signed 64-bit)
Byte : memiliki nilai range 0 sampai 255 (unsigned 8-bit)
Word : memiliki nilai range 0 sampai 65535 (unsigned 16-bit)
LongWord : memiliki nilain range 0 sampai 4294967295(unsigned
32-bit )
Pada pemakaian integer type di implemetasi 16 bit maka:
Integer : memiliki range antara - 32768 sampai dengan 32767
(signed 16-bit)
Cardinal : memiliki range 0 sampai 65535 (unsigned 16-bit)
26. TP4 SMK NEGERI 1 PUNGGING
February6,2014
Pada pemakaian integer type di implemetasi 32 bit maka:
Integer : memiliki range antara -2147483648 sampai 2147483647
(signed 32-bit)
Cardinal : memiliki range 0 sampai 4294967295 (unsigned 32-bit)
Penulisan pada deklarasi variable:
[variable] : [type data integer];
2. Tipe data Boolean
Tipe data ini hanya terdiri dari nilai logika True (1) dan False (0).
Ada beberapa jenis dari tipe Boolean ini, yaitu:
Boolean : berukuran 1 byte (false 0, true 1)
ByteBool : berukuran Byte (false 0, true 255 - 8 bit)
Bool : berukuran Double (false 0, true -1)
WordBool : berukuran Word (false 0, true 65535 - 16 bit)
LongBool : berukuran Double (false 0, true -1)
Penulisan pada deklarasi variable:
[variable] : [type data boolean];
3. Tipe data Floating Point /Real
Tipe data Floating Point/Real ini meliputi bentuk bilangan
desimal. Beberapa bentuk dari tipe data ini adalah :
27. TP4 SMK NEGERI 1 PUNGGING
February6,2014
Real : memiliki range 2.9 x 10-39 sampai 1.7 x 1038
Single : memiliki range 1.5 x 10-45 sampai 3.4 x 1038
Double : memiliki range 5.0 x 10-324 sampai 1.7 x 104392
Extended : memiliki range 3.6 x 10-4951 sampai 1.1 x 104392
Currency : memiliki range -922337203685477.5808 sampai
922337203685477.5808
Comp : memiliki range -263+1 sampai 263-1
Untuk currency, tipe data ini memiliki kepresisian tinggi yaitu 4
angka dibelakang koma (pembulatan bilangan real menjadi bilangan
desimal dengan 4 angka dibelakang koma). Biasanya digunakan untuk
satuan uang. Dan untuk comp, tipe data ini akan menyimpan nilai
integer (bulat) dari nilai decimal yang masuk (melakukan pembulatan).
Penulisan pada deklarasi variable:
[variable] : [type data floating point];
4. Tipe Data Enumerated
Tipe data Enumeratedadalah tipe data yang berupa nilai urutan
dari data yang telah dibuat.
Penulisan pada deklarasi variable :
[variable] : ( [data0],[data1],[data2] );
Masing-masing data akan diberikan nilai integer secara urut.
Urutan dimulai dengan nilai urut 0.
28. TP4 SMK NEGERI 1 PUNGGING
February6,2014
Jika ingin melihat nilai integer dari setiap data maka dengan perintah:
ord( [data1] )
5. Tipe data Sub Range
Tipe data ini memungkinkan kita membuat range sendiri. Dengan
perintah:
[variable] : [constant start]..[constant end];
contoh:
a :5.....10;
Jika kita mendeklarasikan 5 adalah a maka proses compile akan
terus berjalan jika kita mendeklarasikan 15 adalah a maka proses
compile tidak akan berjalan atau berhenti, sehingga terdapat error pada
proses compile sehingga tidak dapat di run.
6. Tipe data String dan Character
Tipe data String adalah tipe data yang merupakan rangkaian dari
huruf, angka atau symbol yang tidak mengandung harga (nilai).
Beberapa tipe data string adalah sebagai berikut:
ShortString : Dapat menampung 255 karakter (ANSIChar)
AnsiString : Dapat menampung ~231 karakter (ANSIChar)
WideString : Dapat menampung ~230 karakter (WideChar)
String : Dapat menampung 255 karakter (ANSIChar)
29. TP4 SMK NEGERI 1 PUNGGING
February6,2014
Tipe data Character adalah tipe data yang berkaitan dengan
karakter ( huruf, angka, symbol). Ada beberapa tipe data dari Character
yaitu:
ANSIChar : Satu karakter ANSI
WideChar : Satu karakter Unicode
Char : Sama dengan ANSIChar
Jika Anda ingin memunculkan karakter dari nomor urut, Anda
dapat menggunakan perintah chr([NoUrut]). Dan untuk mengetaui no
urut dari sebuah karakter, Anda dapat menuliskan perintah
:chr([karakter]);
c) KONSTANTA
Kontanta adalah tempat penyimpanan data yang sifatnya tetap.
Konstanta sama seperti halnya variable yaitu sama – sama sebagai tempat
penyimpanan data akan tetapi Konstanta hanya dapat memiliki satu Data
dan tidak memiliki tipe data. Konstanta hanya mengenal 2 tipe data / jenis
data yaitu :
Data String adalah tipe data yang digunakan untuk menyimpan barisan
karakter.
Data Double adalah tipe bilangan riil termasuk bilangan pembagian
atau koma.
30. TP4 SMK NEGERI 1 PUNGGING
February6,2014
Pada saat mendeklarasikan Konstanta terdapat beberapa tempat
yang dapat digunakan yaitu :
General Declarations Form / Module
Konstanta Didalam Procedure atau Fungsi
Bentuk Umum :
Const
NamaKonstanta1 = NilaiKonstanta1;
NamaKonstanta2 = NilaiKonstanta2;
:
:
NamaKonstantaN = NilaiKonstantaN;
Contoh deklarasi konstanta:
Const
Jumlah = 100; {integer}
Nama = 'Rini'; {string}
Konstanta Bertipe
Konstanta bertipe adalah suatu konstanta yang dideklarasikan dengan tipe
tertentu:
Bentuk Umum:
Const
NamaKonstanta1:Tipe1 = NilaiKonstanta1;
NamaKonstanta2:Tipe2 = NilaiKonstanta2;
:
:
NamaKonstantaN:TipeN = NilaiKonstantaN;
31. TP4 SMK NEGERI 1 PUNGGING
February6,2014
Contoh deklarasi konstanta:
Const
Jumlah : integer = 100;
Nama : string = ‘Rini’;
d) OPERATOR
Operator adalah sebuah simbol yang berguna dalam
memerintahkan suatu perintah dalam komputer untuk menjalankan
persamaan matematika atau suatu logika, misalnya untuk:
Menjumlahkan dua nilai
Memberikan nilai ke suatu variabel (assignment)
Membandingkan kesamaan dua nilai.
Contoh penggunaan operasi operator diatas:
$x = 100;
$y = 10;
32. TP4 SMK NEGERI 1 PUNGGING
February6,2014
Operasi Operator Contoh Sintax
Penjumlahan + $x + $y
Pengurangan - $x – $y
Perkalian * $x * $y
Pembagian / $x / $y
Sisa Pembagi % $x % $y
Increament ++ $x++
Decreament -- $x–
F. PSEUDOCODE
Pseudocode adalah bentuk penulisan algoritma yang menggunakan
struktur bahasa pemrograman sederhana. Walaupun pseudocode memakai
struktur bahasa pemrograman, pseudocode tidak mengikuti aturan penulisan
bahasa pemrograman manapun. Mengapa begitu? Karena pseudocode
dituliskan hanya untuk mempermudah seseorang memahami sebuah
algoritma.
Dengan begitu, pseudocode hanyalah menyerupai kode program saja,
dan tidak bisa dimengerti langsung oleh komputer.Pseudocode baru bisa
diolah oleh komputer jika telah mengikuti aturan penulisan sebuah bahasa
pemrograman.(Bisa bahasa C, Java, Pascal, dan lain-lain.)
Contoh-contoh penulisan pseudocode:
1. Menampilkan tulisan Test
Start
Print ‚Test‛
End
33. TP4 SMK NEGERI 1 PUNGGING
February6,2014
2. Menampilkan variable berisi tulisan Test
Start
a = ‚Test‛
Print a
End
3. Menghitung hasil penjumlahan
Start
Read b, c
d = b + c
Print b, ‚ ditambah ‚, c, ‚ hasilnya ‚, d
End
4. Menampilkan isi variable yang hanya lebih kecil dari 10
Start
Read e
If e < 10 Then
Print e
Else
Print ‚Masukkan angka kurang dari 10!‛
End If
End
5. Menampilkan isi variable yang hanya di antara 0 dan 10
Start
Read f
If f > 0 Then
If f < 10 Then
Print f
Else
Print ‚Masukkan angka di antara 0 dan 10!‛
End If
Else
Print ‚Masukkan angka di antara 0 dan 10!‛
End If
End
34. TP4 SMK NEGERI 1 PUNGGING
February6,2014
6. Menampilkan mata pelajaran sesuai nomor yang dimasukkan
Start
Print ‚Masukkan nomor mata pelajaran Anda (1-3):‛
Read g
Switch g
Case 1 : Print ‚Matematika‛
Case 2 : Print ‚Bahasa Indonesia‛
Case 3 : Print ‚Bahasa Inggris‛
Else : Print ‚Masukkan hanya nomor 1-3‛
End Switch
End
7. Menampilkan tulisan Test sebanyak 5 kali dengan fungsi For
Start
For h = 1 To 5 Do
Print ‚Test ‛
End For
End
8. Menampilkan tulisan Test sebanyak 5 kali dengan fungsi While-Do
Start
i = 1
While i <= 5 Do
Print ‚Test ‛
i = i + 1
End While
End
9. Menampilkan tulisan Test sebanyak 5 kali dengan fungsi Repeat-Until
Start
j = 1
Repeat
Print ‚Test ‛
j = j + 1
Until j <= 5
End
35. TP4 SMK NEGERI 1 PUNGGING
February6,2014
G. FLOWCHART
Flowchart atau diagram alir merupakan sebuah diagram dengan
simbol-simbol grafis yang menyatakan aliran algoritma atau proses yang
menampilkan langkah-langkah yang disimbolkan dalam bentuk kotak,
beserta urutannya dengan menghubungkan masing masing langkah tersebut
menggunakan tanda panah. Diagram ini bisa memberi solusi selangkah demi
selangkah untuk penyelesaian masalah yang ada di dalam proses atau
algoritma tersebut.
Tujuan utama penggunaan flowchart adalah untuk menyederhanakan
rangkaian proses atau prosedur untuk memudahkan pemahaman pengguna
terhadap informasi tersebut. Oleh karena itu, design sebuah flowchart harus
ringkas, jelas, dan logis.
Jenis jenis Flowchart
Ada beberapa jenis flowchart diantaranya:
1. Bagan alir sistem (systems flowchart).
2. Bagan alir dokumen (document flowchart).
3. Bagan alir skematik (schematic flowchart).
4. Bagan alir program (program flowchart).
5. Bagan alir proses (process flowchart).
36. TP4 SMK NEGERI 1 PUNGGING
February6,2014
System Flowchart
System flowchart dapat didefinisikan sebagai bagan yang menunjukkan
arus pekerjaan secara keseluruhan dari sistem.Bagan ini menjelaskan urut-
urutan dari prosedur-prosedur yang ada di dalam sistem. Bagan alir sistem
menunjukkan apa yang dikerjakan di sistem.
Document Flowchart
Bagan alir dokumen (document flowchart) atau disebut juga bagan alir
formulir (form flowchart) atau paperwork flowchart merupakan bagan alir
yang menunjukkan arus dari laporan dan formulir termasuk tembusan-
tembusannya.
37. TP4 SMK NEGERI 1 PUNGGING
February6,2014
Schematic Flowchart
Bagan alir skematik (schematic flowchart) merupakan bagan alir yang
mirip dengan bagan alir sistem, yaitu untuk menggambarkan prosedur di
dalam sistem.Perbedaannya adalah, bagan alir skematik selain menggunakan
simbol-simbol bagan alir sistem, juga menggunakan gambar-gambar
komputer dan peralatan lainnya yang digunakan.Maksud penggunaan
gambar-gambar ini adalah untuk memudahkan komunikasi kepada orang
yang kurang paham dengan simbol-simbol bagan alir. Penggunaan gambar-
gambar ini memudahkan untuk dipahami, tetapi sulit dan lama
menggambarnya.
38. TP4 SMK NEGERI 1 PUNGGING
February6,2014
Program Flowchart
Bagan alir program (program flowchart) merupakan bagan yang
menjelaskan secara rinci langkah-langkah dari proses program. Bagan alir
program dibuat dari verifikasi bagan alir sistem.
Bagan alir program dapat terdiri dari dua macam, yaitu bagan alir logika
program (program logic flowchart) dan bagan alir program komputer
terinci (detailed computer program flowchart). Bagan alir logika program
digunakan untuk menggambarkan tiap-tiap langkah di dalam program
komputer secara logika.
Bagan alat- logika program ini dipersiapkan oleh analis sistem.Gambar
berikut menunjukkan bagan alir logika program. Bagan alir program
komputer terinci (detailed computer program flow-chart) digunakan untuk
39. TP4 SMK NEGERI 1 PUNGGING
February6,2014
menggambarkan instruksi-instruksi program komputer secara terinci. Bagan
alir ini dipersiapkan oleh pemrogram.
Process Flowchart
Bagan alir proses (process flowchart) merupakan bagan alir yang
banyak digunakan di teknik industri. Bagan alir ini juga berguna bagi analis
sistem untuk menggambarkan proses dalam suatu prosedur.
40. TP4 SMK NEGERI 1 PUNGGING
February6,2014
SIMBOL DAN FUNGSI FLOWCHART
Pedoman Membuat Flowchart
Bila seorang analis dan programmer akan membuat flowchart, ada
beberapa petunjuk yang harus diperhatikan, seperti:
Flowchart digambarkan dari halaman atas ke bawah dan dari kiri
kekanan.
Aktivitas yang digambarkan harus didefinisikan secara hati-hati dan
definisi ini harus dapat dimengerti oleh pembacanya.
Kapan aktivitas dimulai dan berakhir harus ditentukan secara jelas.
41. TP4 SMK NEGERI 1 PUNGGING
February6,2014
Setiap langkah dari aktivitas harus diuraikan dengan menggunakan
deskripsi kata kerja
Setiap langkah dari aktivitas harus berada pada urutan yang benar.
Lingkup dan range dari aktifitas yang sedang digambarkan harusditelusuri
dengan hati-hati. Percabangan-percabangan yang memotong aktivitas
yang sedang digambarkan tidak perlu digambarkan pada flowchart yang
sama. Simbol konektor harus digunakan dan percabangannya diletakan
pada halaman yang terpisah atau hilangkan seluruhnya bila
percabangannya tidak berkaitan dengan sistem.
Gunakan simbol-simbol flowchart yang standar.
Contoh
42. TP4 SMK NEGERI 1 PUNGGING
February6,2014
Keterangan :
Dari gambar flowchart di atas terlihat bahwa suatu flowchart harus
terdapat proses persiapan dan proses akhir. Dan yang menjadi topik dalam
pembahasan ini adalah tahap proses. Karena kegiatan ini banyak
mengandung variasi sesuai dengan kompleksitas masalah yang akan
dipecahkan. Walaupun tidak ada kaidah-kaidah yang baku dalam penyusunan
flowchart, namun ada beberapa anjuran yaitu:
Hindari pengulangan proses yang tidak perlu dan logika yang berbelit
sehingga jalannya proses menjadi singkat
Penggambaran flowchart yang simetris dengan arah yang jelas.
Sebuah flowchart diawali dari satu titik START dan diakhiri dengan END.