Posted by : Unknown
Sabtu, 11 Oktober 2014
MAKALAH
ALGORITMA
DI TINJAU DARI BERBAGAI DISIPLIN ILMU

DI SUSUN OLEH :
NAMA : MUHAMMAD FAHDI OHORELLA
KELAS : 1B (SATU)
SEMESTER :1 (SATU)
DOSEN : AMRAN MURSALIM SQ.ST
PROGRAM STUDI TEKNIK INFORMATIKA STT
TELEMATIKA
KATA
PENGANTAR
Puji dan syukur kita panjatkan kepada Allah S.W.T yang
telah memberi rahmat dan hidayah-Nya sehingga penyusunan makalah ini akhirnya
bisa diselesaikan. Makalah dengan judul “ALGORITMA DI
TINJAU DARI BERBAGAI DISIPLIN ILMU ini disesuaikan dengan tujuannya untuk menunjang perkuliahan dalam mata
kuliah algoritma
dan pemograman 1 serta memenuhi
tugas yang telah diberikan oleh dosen Pembimbing kepada kami.
Materi
diskusi sudah diurutkan sesuai dengan kapasitasnya masing-masing, sehingga
Mahasiswa insya Allah dapat dengan mudah memahami. Penulis menyadari bahwa
masih banyak ketidaksempurnaan pada penulisan makalah ini, baik isi maupun
redaksinya, oleh karenanya kritik dan saran yang membangun diharapkan dapat
memperbaiki makalah ini untuk selanjutnya. Terima kasih kepada semua pihak yang
telah membantu baik secara langsung ataupun tidak terhadap terselesaikannya
makalah ini. Akhir kata, insya Allah makalah ini dapat bermanfaat bagi siapa
saja yang membutuhkannya.
Jakarta,29 Desember
2011
Hormat
saya
M.FAHDI
OHORELLA
DAFTAR
ISI
KATA
PENGANTAR……………………………………………………
DAFTAR
ISI……………………………………………………………..
BAB
1. PENDAHULUAN……………………………………………...
I.
LATAR BELAKANG ………………………………………………...
BAB II.RUMUSAN MASALAH…………………………………........
PENGERTIAN DAN FUNGSI ALGORITMA…………………………
A.Mekanisme Pelaksanaan Algoritma oleh Pemroses…………...
B.Tahapan
dalam Pemrograman………………………………...
BAB III. ALGORITMA DI TINJAU DARI BERBAGAI DISIPLIN ILMU
A.Algoritma genetic……………………………………………..
B. Algoritma
Ilmu kimia………………………………………………...
KESIMPULAN………………………………………………………….
DAFTAR PUSTAKA …………………………………………
BAB I
PENDAHULUAN
A.
Latar
Belakang Masalah.
Ditinjau dari asal-usul katanya, kata Algoritma sendiri
mempunyai sejarah yang aneh. Orang hanya menemukan kata algorism 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 Ja’far Muhammad Ibnu Musa Al-Khuwarizmi. Al-Khuwarizmi
dibaca orang barat menjadi Algorism. Al-Khuwarizmi menulis buku yang berjudul
Kitab Al Jabar Wal- Muqabala yang artinya “Buku pemugaran dan pengurangan” (The
book of restoration and reduction). Dari judul buku itu kita juga memperoleh
akar kata “Aljabar” (Algebra).
Perubahan kata dari
algorism menjadi algorithma muncul karena kata algorism sering dikelirukan
dengan arithmetic, sehingga akhiran –sm berubah menjadi –thm. Karena
perhitungan dengan angka Arab sudah menjadi hal yang biasa, maka lambat laun
kata algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi)
secara umum, sehingga kehilangan makna kata aslinya. Dalam bahasa Indonesia,
kata algorithm diserap menjadi algoritma.
.
Definisi Algoritma
“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
BAB II
RUMUSAN MASALAH
RUMUSAN MASALAH
PENGERTIAN
DAN FUNGSI ALGORITMA
Dewasa ini, komputer digunakan di hampir semua bidang
kehidupan manusia, mulai dari pendidikan, bisnis, sampai dengan permainan.
Berbicara tentang komputer tidak lepas dari pemrogaman komputer. Hal ini karena
komputer pada dasarnya merupakan mesin yang tidak bisa apa-apa. Kita harus
memberikan serangkaian instruksi kepada komputer agar mesin ‘pintar’ ini dapat
memecahkan suatu masalah. Langkah-langkah yang perlu dilakukan dalam memberikan
instruksi kepada komputer untuk memecahkan masalah inilah yang dinamakan
pemrogaman komputer. Adapun langkah-langkah pemrogaman komputer adalah sebagi
berikut: mendefinisikan masalah, menentukan solusi, memilih algoritma, menulis
program, menguji program, menulis dokumentasi, serta merawat program.
Sebelum membuat program, hendaknya kita membuat Flow Chart
atau Pseudocode, sehingga memudahkan kita untuk memahami algoritma serta
memudahkan kita dalam membuat program. Program yang ditulis juga harus jelas,
nyata, dan komplit.
Algoritma adalah suatu prosedur yang tepat untuk memecahkan
masalah dengan menggunakan bantuan komputer serta menggunakan suatu bahasa
pemrogaman tertentu seperti bahasa Pascal, Visual Basic, Java, dan masih banyak
lagi bahasa yang lain.Pranata (2002:8) dalam kehidupan sehari-hari, sebenarnya
kita juga menggunakan algoritma untuk melaksanakan sesuatu. Sebagai contoh,
ketika kita menulis surat, maka kita perlu melakukan beberapa langkah sebagai
berikut:
1.
Mempersiapkan kertas dan amplop.
2.
Mempersiapkan alat tulis, seperti pena atau pensil.
3.
Mulai menulis.
4.
Memasukkan kertas ke dalam amplop.
5.
Pergi ke kantor pos untuk mengeposkan surat tersebut.
Fungsi Algoritma
Dengan algoritma, kita dapat mengatasi masalah dari yang
sederhana sampai yang kompleks sekalipun. Namun, seorang user harus mampu
membuat suatu program dengan menggunakan bahasa yang difahami oleh komputer.
Sebelum disajikan dalam bentuk bahasa pemrogaman, sebaiknya kita membuat
diagram alir (Flow Chart) dan Pseudocode. Hal ini dimaksudkan agar dapat
mempermudah kerja atau mempermudah dalam membuat program. Selain itu, algoritma
dapat mengatasi masalah logika dan masalah matematika dengan cara berurutan,
tetapi kadang-kadang algoritma tidak selalu berurutan, hal ini dikenal dengan
proses percabangan
Berikut
ini adalah contoh algoritma untuk menghitung luas lingkaran:
1.
Masukkan R
2.
Pi ? 3,14
3.
L ? Pi*R*R
4.
Tulis L
fungsi
algoritma adalah untuk mempermudah kerja atau memudahkan kita dalam membuat
program atau biasa di sebut sebagai Problem Solving. Selain itu, algoritma
dapat mengatasi masalah logika dan masalah matematika
Algoritma.
1.
Para programer dapat menggunakan algoritma untuk memecahkan masalah dengan
menggunakan bantuan komputer.
2.
Para programer dapat menggunakan algoritma sebagai Problem Solving dalam
masalah logika dan masalah matematika.
3.
Para programer harus menulis program algoritma dengan jelas, nyata, dan
komplit.
4.
dapat membuat game atau software dengan algoritma
Bedanya
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:
1. Pembuatan atau penulisan algoritma tidak tergantung pada bahasa
pemrograman manapun,
artinya penulisan algoritma independen dari
bahasa pemrograman dan
komputer yang melaksanakannya.
2. Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa
pemrograman.
3. Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama
karena algoritmanya
sama.
Beberapa hal yang perlu diperhatikan dalam membuat algoritma:
1. Teks algoritma berisi deskripsi langkah-langkah penyelesaian
masalah.
Deskripsi tersebut dapat
ditulis dalam notasi apapun asalkan mudah
dimengerti dan dipahami.
2. Tidak ada notasi yang baku dalam penulisan teks algoritma
seperti
notasi bahasa
pemrograman. Notasi yang digunakan dalam menulis
algoritma disebut
notasi algoritmik.
3. 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.
4. 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.
5. Algoritma sebenarnya digunakan untuk membantu kita dalam
mengkonversikan suatu
permasalahan ke dalam bahasa pemrograman.
6. 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 masingmasing
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.
Mekanisme
Pelaksanaan Algoritma oleh Pemroses
Komputer
hanyalah salah satu pemroses. Agar dapat dilaksanakan oleh
komputer, algoritma
harus ditulis dalam notasi bahasa pemrograman
sehingga dinamakan
program. Jadi program adalah perwujudan atau
implementasi teknis
algoritma yang ditulis dalam bahasa pemrograman
tertentu sehingga
dapat dilaksanakan oleh komputer.
Kata
“algoritma” dan “program” seringkali dipertukarkan dalam
penggunaannya.
Misalnya ada orang yang berkata seperti ini: “program
pengurutan data
menggunakan algoritma selection sort”. Atau pertanyaan
seperti ini:
“bagaimana algoritma dan program menggambarkan grafik tersebut?”. Jika 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).
Orang yang menulis program disebut pemrogram (programmer). Tiap-tiap
langkah di dalam program disebut pernyataan atau instruksi. Jadi,
program tersusun atas sederetan instruksi. Bila suatu instruksi dilaksanakan,
maka operasioperasi yang bersesuaian dengan instruksi tersebut dikerjakan
komputer.
Secara
garis besar komputer tersusun atas empat komponen utama yaitu,
piranti masukan,
piranti keluaran, unit pemroses utama, dan memori. Unit pemroses utama (Central
Processing Unit – CPU) adalah “otak” komputer, yang berfungsi mengerjakan
operasi-operasi dasar seperti operasi perbandingan, operasi perhitungan,
operasi membaca, dan operasi menulis. Memori adalah komponen yang berfungsi
menyimpan atau mengingatingat. Yang disimpan di dalam memori adalah program
(berisi operasioperasi yang akan dikerjakan oleh CPU) dan data atau informasi (sesuatu
yang diolah oleh operasi-operasi). Piranti masukan dan keluaran (I/O devices)
adalah alat yang memasukkan data atau program ke dalam memori, dan alat
yang digunakan komputer untuk mengkomunikasikan hasil-hasil aktivitasnya.
Contoh piranti masukan antara lain, papan kunci (keyboard), pemindai (scanner),
dan cakram (disk). Contoh piranti keluaran adalah, layar peraga (monitor),
pencetak (printer), dan cakram. Piranti masukkan Unit PemrosesUtama
(CPU) Piranti Keluaran Memori
Struktur
Dasar Algoritma
Algoritma berisi
langkah-langkah penyelesaian suatu masalah. Langkahlangkah 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.
Tahapan dalam Pemrograman
Langkah-langkah yang dilakukan dalam menyelesaikan
masalah dalam
pemrograman dengan komputer adalah:
1. Definisikan Masalah
Berikut adalah hal-hal yang harus diketahui dalam
analisis masalah supaya kita mengetahui bagaimana permasalahan tersebut:
a. Kondisi awal, yaitu input yang tersedia.
b. Kondisi akhir, yaitu output yang diinginkan.
c. Data lain yang tersedia.
d. Operator yang tersedia.
e. Syarat atau kendala yang harus dipenuhi.
Contoh kasus:
Menghitung biaya percakapan telepon di wartel.
Proses yang perlu diperhatikan adalah:
a. Input yang tersedia adalah jam mulai bicara dan
jam selesai bicara.
b. Output yang diinginkan adalah biaya percakapan.
c. Data lain yang tersedia adalah besarnya pulsa
yang digunakan dan
biaya per
pulsa.
d. Operator yang tersedia adalah pengurangan (-),
penambahan (+),
dan
perkalian (*).
e. Syarat kendala yang harus dipenuhi adalah aturan
jarak dan aturan waktu.
2. Buat Algoritma dan Struktur Cara Penyelesaian
Jika masalahnya kompleks,
maka dibagi ke dalam modul-modul. Tahap penyusunan algoritma seringkali dimulai
dari langkah yang global terlebih dahulu. Langkah global ini diperhalus sampai
menjadi langkah yang lebih rinci atau detail. Cara pendekatan ini sangat
bermanfaat dalam pembuatan algoritma untuk masalah yang kompleks. Penghalusan
langkah dengan cara memecah langkah menjadi beberapa langkah. Setiap langkah
diuraikan lagi menjadi beberapa langkah yang lebih sederhana. Penghalusan
langkah ini akan terus berlanjut sampai setiap langkah sudah cukup rinci dan
tepat untuk dilaksanakan oleh pemroses.
3. Menulis Program
Algoritma yang telah
dibuat, diterjemahkan dalam bahasa computer menjadi sebuah program. Perlu
diperhatikan bahwa pemilihan algoritma yang salah akan menyebabkan program
memiliki untuk kerja yang kurang baik. Program yang baik memiliki standar
penilaian:
a. Standar teknik pemecahan masalah
- Teknik Top-Down Teknik pemecahan masalah yang
paling umum digunakan. Prinsipnya adalah suatu masalah yang kompleks
dibagi-bagi ke dalam beberapa kelompok masalah yang lebih kecil. Dari masalah
yang kecil tersebut dilakukan analisis. Jika dimungkinkan maka masalah tersebut
akan dipilah lagi menjadi subbagiansubbagian dan setelah itu mulai disusun
langkah-langkah penyelesaian yang lebih detail.
- Teknik Bottom-Up Prinsip teknik bottom up adalah
pemecahan masalah yang kompleks dilakukan dengan menggabungkan
prosedur-prosedur yang ada menjadi satu kesatuan program sebagai penyelesaian
masalah tersebut.
b. Standar penyusunan program
- Kebenaran
logika dan penulisan.
- Waktu
minimum untuk penulisan program.
- Kecepatan
maksimum eksekusi program.
- Ekspresi
penggunaan memori.
- Kemudahan
merawat dan mengembangkan program.
- User
Friendly.
-
Portability.
-
Pemrograman modular.
4. Mencari Kesalahan
a. Kesalahan
sintaks (penulisan program).
b. Kesalahan
pelaksanaan: semantik, logika, dan ketelitian.
5. Uji dan Verifikasi Program
Pertama kali harus
diuji apakah program dapat dijalankan. Apabila
program tidak dapat dijalankan maka perlu diperbaiki penulisan
sintaksisnya tetapi bila program dapat dijalankan, maka harus diuji dengan
menggunakan data-data yang biasa yaitu data yang diharapkan oleh sistem. Contoh
data ekstrem, misalnya, program menghendaki masukan jumlah data tetapi user
mengisikan bilangan negatif. Program sebaiknya diuji menggunakan data yang
relatif banyak.
6. Dokumentasi Program
Dokumentasi program ada dua macam yaitu dokumentasi
internal dan dokumentasi eksternal. Dokumentasi internal adalah dokumentasi
yang dibuat di dalam program yaitu setiap kita menuliskan baris program
sebaiknya diberi komentar atau keterangan supaya mempermudah kita untuk
mengingat logika yang terdapat di dalam instruksi tersebut, hal ini sangat
bermanfaat ketika suatu saat program tersebut akan dikembangkan. Dokumentasi
eksternal adalah dokumentasi yang dilakukan dari luar program yaitu membuat
user guide atau buku petunjuk aturan atau cara menjalankan program tersebut.
7. Pemeliharaan Program
a. Memperbaiki kekurangan yang ditemukan kemudian.
b.
Memodifikasi, karena perubahan spesifikasi. Pemrograman Prosedural Algoritma
berisi urutan langkah-langkah penyelesaian masalah. Ini berarti algoritma
adalah proses yang prosedural. Pada program prosedural, program dibedakan
antara bagian data dengan bagian instruksi. Bagian instruksi terdiri dari atas
runtunan (sequence) instruksi yang dilaksanakan satu per satu secara berurutan
oleh sebuah
pemroses. Alur pelaksanaan instruksi dapat berubah
karena adanya pencabangan kondisional. Data yang disimpan di dalam memori
dimanipulasi oleh instruksi secara beruntun. Kita katakana bahwa tahapan
pelaksanaan program mengikuti pola beruntun atau prosedural. Paradigma
pemrograman seperti ini dinamakan pemrograman prosedural. Bahasa-bahasa tingkat
tinggi seperti Cobol, Basic, Pascal, Fortran, dan C/C++ mendukung kegiatan
pemrograman prosedural, karena itu mereka dinamakan juga bahasa prosedural.
Selain paradigma pemrograman prosedural, ada lagi paradigma yang lain yaitu
pemrograman berorientasi objek (Object Oriented Programming atau OOP).
Paradigma pemrograman ini merupakan trend baru
dan sangat popular akhir-akhir ini. Pada paradigma OOP, data dan instruksi
dibungkus (encapsulation) menjadi satu. Kesatuan ini disebut kelas (class) dan
instansiasi kelas pada saat run-time disebut objek (object). Data di dalam
objek hanya dapat diakses oleh instruksi yang ada di dalam objek itu saja.
Paradigma pemrograman yang lain adalah pemrograman fungsional, pemrograman
deklaratif, dan pemrograman konkuren. Buku ini hanya menyajikan paradigma
pemrograman presedural saja. Paradigma pemrograman yang lain di luar cakupan
buku ini.
Contoh Kasus dan Penyelesaian
1. Menghitung luas dan keliling lingkaran Proses
kerjanya sebagai berikut:
a. Baca jari-jari lingkaran
b. Tentukan konstanta phi = 3.14
c. Hitung luas dan keliling
L = phi*r*r
K = 2*phi*r
d. Cetak luas dan keliling
2. Menghitung rata-rata tiga buah data
a. Algoritma dengan struktur bahasa Indonesia
- Baca bilangan a, b, dan c
- Jumlahkan ketiga bilangan tersebut
- Bagi jumlah tersebut dengan 3
- Tulis hasilnya
b. Algoritma dengan pseudocode input (a, b, c),Jml =
a+b+c,
Rerata = Jml/3
,Output (Rerata)
3. Algoritma konversi suhu dalam derajat Celcius ke
derajat Kalvin
Penyelesaian menggunakan pseudocode:
Input (Celcius)
Kalvin = Celcius + 273
Output (Kalvin)
Komponen-Komponen
Utama Komputer
Mekanisme
kerja keempat komponen di atas dapat dijelaskan sebagai
berikut. Mula-mula
program dimasukkan ke dalam memori komputer. Ketika program dilaksanakan (execute),
setiap instruksi yang telah tersimpan di dalam memori dikirim ke CPU. CPU
mengerjakan operasioperasi yang bersesuaian dengan instruksi tersebut. Bila
suatu operasi memerlukan data, data dibaca dari piranti masukan, disimpan di
dalam memori lalu dikirim ke CPU untuk operasi yang memerlukannya tadi. Bila proses
menghasilkan keluaran atau informasi, keluaran disimpan ke dalam memori, lalu
memori menuliskan keluaran tadi ke piranti keluaran
(misalnya dengan
menampilkannya di layar monitor).
Belajar Memprogram dan Belajar Bahasa
Pemrograman
Belajar
memprogram tidak sama dengan belajar bahasa pemrograman.
Belajar memprogram
adalah belajar tentang metodologi pemecahan masalah, kemudian menuangkannya
dalam suatu notasi tertentu yang mudah dibaca dan dipahami. Sedangkan belajar
bahasa pemrograman berarti belajar memakai suatu bahasa aturan-aturan tata
bahasanya, pernyataan-pernyataannya, tata cara pengoperasian compiler-nya,
dan memanfaatkan pernyataan-pernyataan tersebut untuk membuat program yang
ditulis hanya dalam bahasa itu saja. Sampai saat ini terdapat puluhan bahasa
pemrogram, antara lain bahasa rakitan (assembly), Fortran, Cobol, Ada,
PL/I, Algol, Pascal, C, C++, Basic, Prolog, LISP, PRG, bahasabahasa simulasi
seperti CSMP, Simscript, GPSS, Dinamo. Berdasarkan terapannya, bahasa
pemrograman dapat digolongkan atas dua kelompok besar:
1. Bahasa pemrograman bertujuan khusus.
Yang termasuk kelompok ini adalah Cobol
(untuk terapan bisnis dan administrasi). Fortran (terapan komputasi ilmiah), bahasa rakitan (terapan
pemrograman mesin), Prolog (terapan
kecerdasan buatan), bahasa-bahas simulasi, dan sebagainya.
2. Bahasa perograman bertujuan umum, yang
dapat digunakan untuk
berbagai aplikasi.
Yang termasuk kelompok ini adalah bahasa Pascal, Basic dan C.
Tentu saja pembagian ini tidak kaku. Bahasabahasa bertujuan khusus tidak
berarti tidak bisa digunakan untuk aplikasi lain. Cobol misalnya, dapat
juga digunakan untuk terapan ilmiah, hanya saja kemampuannya terbatas. Yang
jelas, bahasabahasa
pemrograman yang
berbeda dikembangkan untuk bermacam-macam terapan yang berbeda pula. Berdasarkan
pada apakah notasi bahasa pemrograman lebih “dekat” ke
mesin atau ke bahasa
manusia, maka bahasa pemrograman dikelompokkan
atas dua macam:
1. Bahasa tingkat rendah. Bahasa jenis ini
dirancang agar setiap instruksinya langsung dikerjakan oleh komputer, tanpa
harus melalui penerjemah (translator). Contohnya adalah bahasa mesin. CPU
mengambil instruksi dari memori, langsung mengerti dan langsung mengerjakan
operasinya. Bahasa tingkat rendah bersifat
primitif, sangat
sederhana, orientasinya lebih dekat ke mesin, dan sulit dipahami manusia.
Sedangkan 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.
2. Bahasa tingkat
tinggi, yang membuat pemrograman lebih mudah dipahami, lebih “manusiawi”, dan
berorientasi ke bahasa manusia (bahasa Inggris). Hanya saja, program dalam
bahasa tingkat tinggi tidak dapat langsung dilaksanakan oleh komputer. Ia perlu
diterjemahkan terlebih dahulu oleh sebuah translator bahasa (yang disebut
kompilator atau compiler) ke dalam bahasa mesin sebelum akhirnya
dieksekusi oleh CPU. Contoh bahasa tingkat tinggi adalah Pascal, PL/I, Ada,
Cobol, Basic, Fortran, C, C++, dan sebagainya. Bahasa pemrograman bisa juga
dikelompokkan berdasarkan pada tujuan dan fungsinya. Di antaranya adalah:
Secara
sistematis berikut diberikan kiat-ksst untuk belajar memprogram dan
belajar bahasa
pemrograman serta produk yang dapat dihasilkan:
a.
Belajar Memprogram
• Belajar memprogram:
belajar bahasa pemrograman.
• Belajar memprogram:
belajar tentang strategi pemecahan masalah,
metodologi dan sistematika pemecahan masalah
kemudian
menuliskannya dalam notasi yang disepakati
bersama.
• Belajar memprogram:
bersifat pemahaman persoalan, analisis dan sintesis.
• Belajar memprogram,
titik berat: designer program.
b.
Belajar Bahasa Pemrograman
• Belajar bahasa
pemrograman: belajar memakai suatu bahasa
pemrograman, aturan sintaks, tatacara untuk
memanfaatkan pernyataan
yang spesifik untuk setiap bahasa.
• Belajar bahasa
pemrograman, titik berat: coder.
c.
Produk yang Dihasilkan Pemrogram
• Program dengan rancangan yang baik
(metodologis, sistematis).
• Dapat dieksekusi
oleh mesin.
• Berfungsi dengan
benar.
• Sanggup melayani
segala kemungkinan masukan.
• Disertai
dokumentasi.
• Belajar memprogram,
titik berat: designer program.
Menilai Sebuah Algoritma
Ketika
manusia berusaha memecahkan masalah, metode atau teknik yang
digunakan untuk
memecahkan masalah itu ada kemungkinan bisa banyak (tidak hanya satu). Dan kita
memilih mana yang terbaik di antara teknikteknik itu. Hal ini sama juga dengan
algoritma, yang memungkinkan suatu permasalahan dipecahkan dengan metode dan
logika yang berlainan. Yang menjadi pertanyaan adalah bagaimana mengukur mana
algoritma yang terbaik?
Beberapa persyaratan
untuk menjadi algoritma yang baik adalah:
• Tingkat
kepercayaannya tinggi (realibility). Hasil yang diperoleh dari
proses harus
berakurasi tinggi dan benar.
• Pemrosesan yang
efisien (cost rendah). Proses harus diselesaikan
secepat mungkin dan
frekuensi kalkulasi yang sependek mungkin.
• Sifatnya general.
Bukan sesuatu yang hanya untuk menyelesaikan satu
kasus saja, tapi juga
untuk kasus lain yang lebih general.
• Bisa dikembangkan (expandable).
Haruslah sesuatu yang dapat kita
kembangkan lebih jauh
berdasarkan perubahan requirement yang ada.
• Mudah dimengerti.
Siapapun yang melihat, dia akan bisa memahami
algoritma Anda. Susah
dimengertinya suatu program akan membuat
susah di-maintenance
(kelola).
• Portabilitas yang
tinggi (portability). Bisa dengan mudah
diimplementasikan di
berbagai platform komputer.
• Precise (tepat,
betul, teliti). Setiap instruksi harus ditulis dengan
seksama dan tidak ada
keragu-raguan, dengan demikian setiap instruksi
harus dinyatakan
secara eksplisit dan tidak ada bagian yang dihilangkan
karena pemroses
dianggap sudah mengerti. Setiap langkah harus jelas
dan pasti.
Contoh: Tambahkan 1
atau 2 pada x.
Instruksi di atas
terdapat keraguan.
• Jumlah langkah atau
instruksi berhingga dan tertentu. Artinya, untuk
kasus yang sama
banyaknya, langkah harus tetap dan tertentu meskipun
datanya berbeda.
• Efektif. Tidak
boleh ada instruksi yang tidak mungkin dikerjakan oleh
pemroses yang akan
menjalankannya.
Contoh: Hitung akar 2
dengan presisi sempurna.
Instruksi di atas
tidak efektif, agar efektif instruksi tersebut diubah.
Misal: Hitung akar 2
sampai lima digit di belakang koma.
• Harus terminate.
Jalannya algoritma harus ada kriteria berhenti.
Pertanyaannya adalah
apakah bila jumlah instruksinya berhingga maka
pasti terminate?
• Output yang
dihasilkan tepat. Jika langkah-langkah algoritmanya logis
dan diikuti dengan
seksama maka dihasilkan output yang diinginkan.
BAB III
A.
ALGORITMA DI TINJAU DARI BERBAGAI DISIPLIN ILMU
1.Algoritma
genetic
adalah
teknik pencarian yang di dalam ilmu komputer untuk menemukan penyelesaian
perkiraan untuk optimisasi dan masalah pencarian. Algoritma genetik adalah
kelas khusus dari algoritma evolusioner dengan menggunakan teknik yang
terinspirasi oleh biologi evolusioner seperti warisan, mutasi, seleksi alam dan
rekombinasi (atau crossover)
Algoritma Genetik pertama kali dikembangkan
oleh John Holland pada tahun 1970-an di New York, Amerika Serikat. Dia beserta
murid-murid dan teman kerjanya menghasilkan buku berjudul "Adaption in
Natural and Artificial Systems" pada tahun 1975.
Algoritma Genetik khususnya diterapkan
sebagai simulasi komputer dimana sebuah populasi representasi abstrak (disebut kromosom) dari solusi-solusi calon (disebut
individual) pada sebuah masalah optimisasi akan berkembang menjadi
solusi-solusi yang lebih baik. Secara tradisional, solusi-solusi dilambangkan
dalam biner sebagai string '0' dan '1', walaupun dimungkinkan juga penggunaan penyandian (encoding) yang berbeda. Evolusi
dimulai dari sebuah populasi individual acak yang lengkap dan terjadi dalam
generasi-generasi. Dalam tiap generasi, kemampuan keseluruhan populasi
dievaluasi, kemudian multiple individuals dipilih dari populasi sekarang
(current) tersebut secara stochastic (berdasarkan kemampuan
mereka), lalu dimodifikasi (melalui mutasi atau rekombinasi) menjadi bentuk
populasi baru yang menjadi populasi sekarang (current) pada iterasi berikutnya dari algoritma.
Prosedur Algoritma Genetik
Algoritma genetik yang umum menyaratkan dua
hal untuk didefinisikan:
(1) representasi genetik dari penyelesaian,
(2)
fungsi kemampuan untuk mengevaluasinya.
Representasi baku adalah sebuah larik bit-bit.
Larik jenis dan struktur lain dapat digunakan dengan cara yang sama. Hal utama
yang membuat representasi genetik ini menjadi tepat adalah bahwa
bagian-bagiannya mudah diatur karena ukurannya yang tetap, yang memudahkan
operasi persilangan sederhana. Representasi panjang variabel juga digunakan,
tetapi implementasi persilangan lebih kompleks dalam kasus ini. Representasi
seperti pohon diselidiki dalam pemrograman genetik dan representasi bentuk
bebas diselidiki di dalam HBGA.Fungsi kemampuan didefinisikan di atas
representasi genetik dan mengukur kualitas penyelesaian yang diwakili. Fungsi
kemampuan selalu tergantung pada masalah. Sebagai contoh, jika pada ransel kita ingin memaksimalkan
jumlah benda (obyek) yang dapat kita masukkan ke dalamnya pada beberapa
kapasitas yang tetap. Representasi penyelesaian mungkin berbentuk larik bits,
dimana tiap bit mewakili obyek yang berbeda, dan nilai bit (0 atau 1)
menggambarkan apakah obyek tersebut ada di dalam ransel atau tidak. Tidak
setiap representasi seperti ini valid, karena ukuran obyek dapat melebihi
kapasitas ransel. Kemampuan penyelesaian adalah jumlah nilai dari semua obyek
di dalam ransel jika representasi itu valid, atau jika tidak 0. Dalam beberapa
masalah, susah atau bahkan tidak mungkin untuk mendefinisikan lambang
kemampuan, maka pada kasus ini digunakan IGA.
Sekali kita mendefinisikan representasi
genetik dan fungsi kemampuan, algoritma genetik akan memproses inisialisasi
populasi penyelesaian secara acak, dan memperbaikinya melalui aplikasi pengulangan
dengan aplikasi operator-operator mutasi, persilangan, dan seleksi.
Secara sederhana, algoritma umum dari
algoritma genetik ini dapat dirumuskan menjadi beberapa langkah, yaitu:
Membentuk suatu populasi individual dengan
keadaan acak
- Mengevaluasi kecocokan setiap individual keadaan dengan hasil yang diinginkan
- Memilih individual dengan kecocokan yang tertinggi
- Bereproduksi, mengadakan persilangan antar individual terpilih diselingi mutasi
- Mengulangi langkah 2 - 4 sampai ditemukan individual dengan hasil yang diinginkan
B.ALGORITMA ILMU KIMIA
Ilmu kimia merupakan salah satu cabang dari ilmu pengetahuan
alam (IPA). Dalam ilmu kimia terdapat dua pemahaman yang harus dikuasai oleh
siswa, yaitu pemahaman konseptual dan pemahaman algoritma. Salah satu materi
yang mencakup kedua pemahaman tersebut adalah hukum gas. Dalam pembelajaran dan
evaluasi, proporsi antara pemahaman konseptual dengan pemahaman algoritma harus
seimbang, namun selama ini, pembelajaran kimia lebih menekankan pemahaman
algoritma daripada pemahaman konseptual. Beberapa hasil penelitian menyimpulkan
bahwa pemahaman konseptual jauh tertinggal dengan pemahaman algoritma.
Berdasarkan hal tersebut, tujuan penelitian adalah untuk: (1) mengetahui
persentase jumlah siswa kelas X SMA Negeri 1 Porong yang menjawab: (a)
pertanyaan konseptual maupun algoritma dengan benar pada materi hukum gas; (b)
pertanyaan konseptual dengan benar , tetapi salah dalam menjawab pertanyaan
algoritma pada materi hukum gas; (c) pertanyaan algoritma dengan benar, tetapi
salah dalam menjawab pertanyaan konseptual pada materi hukum gas; (d) tidak
dapat menjawab pertanyaan konseptual maupun algoritma pada materi hukum gas;
dan (2) mengetahui adanya perbedaan antara tingkat pemahaman konseptual dengan
pemahaman algoritma siswa kelas X SMA Negeri 1Porong pada materi hukum gas.
Penelitian ini menggunakan rancangan deskriptif kuantitatif.
Populasi penelitian adalah seluruh siswa kelas X SMA Negeri 1 Porong yang
terdiri 7 kelas. Sampel penelitian adalah kelas X-1 dan X-2 yang dipilih dengan
teknik pengambilan sampel secara acak dengan pertimbangan (purposive random
sampling). Instrumen penelitian berupa tes objektif yang berjumlah 30 butir
pasangan konseptual dan algoritma. Instrumen valid dari segi isi maupun butir
soal dengan realibilitas 0,953. Analisis data menggunakan teknik analisis data
deskriptif yang meliputi analisis persentase tingkat pemahaman konseptual dan
algoritma dalam 4 kategori. Untuk mengetahui adanya perbedaan antara tingkat
pemahaman konseptual dengan pemahaman algoritma siswa dilakukan melalui uji
beda (uji t) dengan taraf signifikansi α=0,05.
Hasil penelitian menunjukkan bahwa (1) siswa kelas X SMA
Negeri 1 Porong yang menjawab: (a) pertanyaan konseptual maupun algoritma
dengan benar pada materi hukum gas sebesar 41,8%; (b) pertanyaan konseptual
dengan benar , tetapi salah dalam menjawab pertanyaan algoritma pada materi
hukum gas 12,7%; (c) pertanyaan algoritma dengan benar, tetapi salah dalam
menjawab pertanyaan konseptual pada materi hukum gas 31,6%; (d) tidak
dapat menjawab pertanyaan konseptual maupun algoritma pada materi hukum gas
13,9%; dan (2) ada perbedaan yang signifikan antara tingkat pemahaman
konseptual dengan pemahaman algoritma siswa kelas X SMA Negeri 1 Porong dalam
materi hukum gas, dimana tingkat pemahaman konseptual (x=8,18) lebih rendah
daripada tingkat pemahaman algoritma (x=11,06).
KESIMPULAN
Bangsa
Indonesia berusaha untuk tidak tertinggal dengan bangsa lain menyangkut
telematika. Dengan dirintis oleh beberapa orang yang berdedikasi pada
dunia akademisi, pengenalan dunia telematika mulai dilakukan seiring
berkembangnya situasi politik dan ekonomi. Dukungan politik pemerintah dengan
berbagai kebijakannya, lebih menggairahkan telematika di Indonesia, dan
tentunya industri, serta pengaruh luar negeri mengambil peranan penting disamping
ketertarikan masyarakat yang membutuhkannya. Perkembangan telematika di Indonesia
mengalami peningkatan, sejalan dengan inovasi teknologi yang terjadi. Prospek
ke masa depan, telematika di Indonesia memiliki potensi yang tinggi, baik
itu
untuk kemajuan bangsa, maupun pemberdayaan sumber daya manusianya.menurut saya
algoritma adalah langkah langkah yang di susun secra logis untuk menyelesaikan
suatu masakah yang akan di selesaikan dan dalam algoritma harus logis dan harus di tentukan bernilai salah atau benar
Desain dan analisis algoritma adalah suatu cabang khusus dalam ilmu komputer yang mempelajari karakteristik dan
performa dari suatu algoritma dalam menyelesaikan masalah, terlepas dari
implementasi algoritma tersebut. Dalam cabang disiplin ini algoritma dipelajari
secara abstrak, terlepas dari sistem komputer atau bahasa pemrograman yang
digunakan. Algoritma yang berbeda dapat diterapkan pada suatu masalah dengan
kriteria yang sama.
Kompleksitas dari suatu algoritma merupakan ukuran
seberapa banyak komputasi yang dibutuhkan algoritma tersebut untuk
menyelesaikan masalah. Secara informal, algoritma yang dapat menyelesaikan
suatu permasalahan dalam waktu yang singkat memiliki kompleksitas yang rendah,
sementara algoritma yang membutuhkan waktu lama untuk menyelesaikan masalahnya
mempunyai kompleksitas yang tinggi.
Kata algoritma berasal dari
latinisasi 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 algorisma 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 algoritma,
yang mencakup semua prosedur atau urutan langkah yang jelas dan diperlukan
untuk menyelesaikan suatu permasalahan. Masalah timbul pada saat akan
menuangkan bagaimana proses yang harus dilalui dalam suatu/sebuah sistem
(program) bagi komputer sehingga pada saat eksekusinya, komputer dapat bekerja
seperti yang diharapkan. Programer komputer akan lebih nyaman menuangkan
prosedur komputasinya atau urutan langkah proses dengan terlebih dahulu membuat
gambaran (diagram alur) diatas kertas.
DAFTAR PUSTAKA
.PENGANTAR ALGORITMA DAN PEMOGRAMAN