Pengertian Algoritma dan pemograman
1. Apakah Itu Algoritma
Ditinjau dari asal-usul katanya, kata Algoritma sendiri memiliki sejarah yang aneh. Orang melulu menemukan kata algorism yang berarti proses menghitung dengan angka arab. Anda disebutkan algorist andai Anda menghitung memakai angka arab. Para berpengalaman bahasa berjuang menemukan asal kata ini tetapi hasilnya tidak cukup memuaskan. Akhirnya para berpengalaman sejarah matematika mengejar asal kata itu yang berasal dari nama penulis kitab arab yang familiar yaitu Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi. Al-Khuwarizmi dibaca orang barat menjadi Algorism. Al-Khuwarizmi menulis kitab yang berjudul Kitab Al Jabar Wal-Muqabala yang dengan kata lain “Buku pemugaran dan pengurangan” (The book of restoration and reduction). Dari judul kitab itu kita pun memperoleh akar kata “Aljabar” (Algebra). Perubahan kata dari algorism menjadialgorithm muncul sebab kata algorism tidak jarang dikelirukan dengan arithmetic, sampai-sampai akhiran –sm pulang menjadi –thm. Karena perhitungan dengan angka Arab telah menjadi urusan yang biasa, maka lambat laun kata algorithm berangsur-angsur digunakan sebagai cara perhitungan (komputasi) secara umum, sampai-sampai kehilangan arti kata aslinya. Dalam bahasa Indonesia, kata algorithm diserap menjadi algoritma.
teknologi informasi jaringan
2. Definisi Algoritma
“Algoritma ialah urutan langkah-langkah logis solusi masalah yang dibentuk secara sistematis dan logis”. Kata logis merupakan keyword dalam algoritma. Langkah-langkah dalam algoritma mesti logis dan mesti bisa ditentukan bernilai salah atau benar. Dalam sejumlah konteks, algoritma ialah spesifikasi urutan tahapan untuk mengerjakan pekerjaan tertentu. Pertimbangan dalam pemilihan algoritma merupakan, kesatu, algoritma mestilah benar. Artinya algoritma akan menyerahkan keluaran yang dikehendaki dari sebanyak masukan yang diberikan. Tidak peduli sebagus apapun algoritma, bila memberikan keluaran yang salah, tentulah algoritma itu bukanlah algoritma yang baik.
Pertimbangan kedua yang mesti diperhatikan ialah kita mesti memahami seberapa baik hasil yang dijangkau oleh algoritma tersebut. Hal ini urgen terutama pada algoritma untuk menuntaskan masalah yang membutuhkan aproksimasi hasil (hasil yang melulu berupa pendekatan). Algoritma yang baik mesti dapat memberikan hasil yang sedekat barangkali dengan nilai yang sebenarnya.
Ketiga ialah efisiensi algoritma. Efisiensi algoritma bisa ditinjau dari 2 hal yakni efisiensi masa-masa dan memori. Meskipun algoritma menyerahkan keluaran yang benar (paling mendekati), tetapi andai kita mesti menantikan berjam-jam guna mendapatkan keluarannya, algoritma tersebut seringkali tidak bakal dipakai, masing-masing orang mengharapkan keluaran yang cepat. Begitu pun dengan memori, semakin besar kenangan yang terpakai maka semakin buruklah algoritma tersebut. Dalam kenyataannya, masing-masing orang dapat membuat algoritma yang bertolak belakang untuk menuntaskan suatu permasalahan, walaupun terjadi perbedaan dalam merangkai algoritma, pastinya kita menginginkan keluaran yang sama. Jika terjadi demikian, carilah algoritma yang paling tepat guna dan cepat.
teknologi informasi jaringan
3. Beda Algoritma dan Program
Program ialah kumpulan pengakuan komputer, sementara metode dan langkah sistematis dalam program ialah algoritma. Program ditulis dengan memakai bahasa pemrograman. Jadi dapat disebut bahwa program ialah suatu implementasi dari bahasa pemrograman. Beberapa pakar memberi rumus bahwa :
teknologi informasi jaringan
Program = Algoritma + Bahasa (Struktur Data)
Bagaimanapun pun struktur data dan algoritma bersangkutan sangat erat pada suatu program. Algoritma yang baik tanpa pemilihan struktur data yang tepat akan menciptakan program menjadi tidak cukup baik, demikian pun sebaliknya.
Pembuatan algoritma mempunyai tidak sedikit keuntungan di antaranya :
- Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrograman manapun, dengan kata lain penulisan algoritma independen dari bahasa pemrograman dan komputer yang melaksanakannya.
- Notasi algoritma bisa diterjemahkan ke dalam sekian banyak bahasa pemrograman.
- Apapun bahasa pemrogramannya, output yang bakal dikeluarkan sama sebab algoritmanya sama.
Beberapa urusan yang perlu diacuhkan dalam menciptakan algoritma :
- Teks algoritma berisi pemaparan langkah-langkah solusi masalah. Deskripsi itu dapat ditulis dalam notasi apapun asalkan gampang dimengerti dan dipahami.
- Tidak terdapat notasi yang baku dalam penulisan teks algoritma laksana notasi bahasa pemrograman. Notasi yang dipakai dalam mencatat algoritma dinamakan notasi algoritmik.
- Setiap orang dapat menciptakan aturan penulisan dan notasi algoritmik sendiri. Hal ini disebabkan teks algoritma tidak sama dengan teks program. Namun, agar notasi algoritmik gampang ditranslasikan ke dalam notasi bahasa pemrograman tertentu, maka usahakan notasi algoritmik itu berkorespondensi dengan notasi bahasa pemrograman secara umum.
- Notasi algoritmik bukan notasi bahasa pemrograman, karena tersebut pseudocode dalam notasi algoritmik tidak bisa dijalankan oleh komputer. Agar bisa dijalankan oleh komputer, pseudocode dalam notasi algoritmik mesti ditranslasikan atau diterjemahkan ke dalam notasi bahasa pemrograman yang dipilih. Perlu dikenang bahwa orang yang mencatat program paling terikat dalam aturan tata bahasanya dan spesifikasi mesin yang menjalannya.
- Algoritma sebenarnya dipakai untuk menolong kita dalam mengkonversikan suatu persoalan ke dalam bahasa pemrograman.
- Algoritma adalahhasil pemikiran konseptual, agar dapat dilakukan oleh komputer, algoritma mesti ditranslasikan ke dalam notasi bahasa pemrograman. Ada sejumlah hal yang mesti diacuhkan pada translasi tersebut, yakni :
a. Pendeklarasian variabel
Untuk memahami dibutuhkannya pendeklarasian variabel dalam pemakaian bahasa pemrograman bilamana tidak seluruh bahasa pemrograman membutuhkannya.
b. Pemilihan tipe data
Apabila bahasa pemrograman yang akan dipakai membutuhkan pendeklarasian variabel maka butuh hal ini dipertimbangkan pada ketika pemilihan tipe data.
c. Pemakaian instruksi-instruksi
Beberapa instruksi memiliki kegunaan yang sama tetapi setiap memiliki keunggulan dan kelemahan yang berbeda.
teknologi informasi jaringan
Pada ketika menyebutkan program kita terbelenggu dengan aturan sintaksis dalam bahasa pemrograman yang bakal digunakan.
e. Tampilan hasil
Pada saat menciptakan algoritma anda tidak memikirkan tampilan hasil yang bakal disajikan. Hal-hal teknis ini diacuhkan ketika mengkonversikannya menjadi program.
f. Cara pengoperasian compiler atau interpreter.
Bahasa pemrograman yang dipakai termasuk dalam kumpulan compiler atau interpreter.
teknologi informasi jaringan
4. Algoritma Merupakan Jantung Ilmu Informatika
Algoritma ialah jantung ilmu komputer atau informatika. Banyak cabang ilmu komputer yang menuju dalam terminologi algoritma. Namun, jangan berpikir algoritma tidak jarang kali identik dengan ilmu komputer saja. Dalam kehidupan keseharian pun tidak sedikit ada proses yang ditetapkan dalam sebuah algoritma. Cara-cara menciptakan kue atau masakan yang ditetapkan dalam sebuah resep pun dapat dinamakan sebagai algoritma. Pada masing-masing resep tidak jarang kali ada urutan langkah-langkah menciptakan masakan. Bila langkah-langkahnya tidak logis, tidak dapat didapatkan masakan yang diinginkan. Ibu-ibu yang mengupayakan suatu resep masakan akan menyimak satu per satu langkah-langkah pembuatannya kemudian ia menggarap proses cocok yang ia baca. Secara umum, pihak (benda) yang menggarap proses dinamakan pemroses (processor). Pemroses itu dapat berupa manusia, komputer, robot atau alat-alat elektronik lainnya. Pemroses mengerjakan suatu proses dengan mengemban atau “mengeksekusi” algoritma yang mengulas proses tersebut.
teknologi informasi jaringan
Melaksanakan algoritma berarti menggarap langkah-langkah di dalam algoritma tersebut. Pemroses menggarap proses cocok dengan algoritma yang diserahkan kepadanya. Juru masak menciptakan kue menurut resep yang diserahkan kepadanya, pianis memainkan lagu menurut papan not balok. Karena tersebut suatu algoritma mesti ditetapkan dalam format yang bisa dimengerti oleh pemroses. Jadi sebuah pemroses mesti:
teknologi informasi jaringan
- Mengerti setiap tahapan dalam algoritma.
- Mengerjakan operasi yang bersesuaian dengan tahapan tersebut.
5. Mekanisme Pelaksanaan Algoritma oleh Pemroses
Komputer hanyalah di antara pemroses. Agar dapat dilakukan oleh komputer, algoritma mesti ditulis dalam notasi bahasa pemrograman sehingga disebut program. Jadi program ialah perwujudan atau implementasi teknis algoritma yang ditulis dalam bahasa pemrograman tertentu sampai-sampai dapat dilakukan oleh komputer.
Kata “algoritma” dan “program” biasanya dipertukarkan dalam pemakaiannya. Misalnya terdapat orang yang berbicara seperti ini: “program pengurutan data memakai algoritma selection sort”. Atau pertanyaan laksana ini: “bagaimana algoritma dan program mencerminkan grafik tersebut?”. Jika kita sudah mengetahui pengertian algoritma yang sudah dilafalkan sebelum ini, Anda bisa membedakan makna kata algoritma dan program. Algoritma ialah langkah-langkah penyelesaikan masalah, sementara program ialah realisasi algoritma dalam bahasa pemrograman. Program ditulis dalam di antara bahasa pemrograman dan pekerjaan membuat program disebutpemrograman (programming). Orang yang mencatat program dinamakan pemrogram(programmer). Tiap-tiap tahapan di dalam program disebut pengakuan atau instruksi.Jadi, program tersusun atas sederetan instruksi. Bila sebuah instruksi dilaksanakan, maka operasi-operasi yang bersesuaian dengan instruksi tersebut digarap komputer.
teknologi informasi jaringan
Yang ditabung di dalam memori ialah program (mengandung operasi-operasi yang akan digarap oleh CPU) dan data atau informasi (sesuatu yang diubah oleh operasi-operasi). Piranti masukan dan keluaran (I/O devices) ialah alat yang memasukkan data atau program ke dalam memori, dan perangkat yang dipakai komputer guna mengkomunikasikan hasil-hasil aktivitasnya. Contoh piranti masukan antara lain, papan kunci (keyboard), pemindai (scanner), dan cakram (disk). Contoh piranti keluaran merupakan, layar peraga (monitor), pencetak (printer), dan cakram.
teknologi informasi jaringan
Mekanisme kerja keempat komponen di atas dapat diterangkan sebagai berikut. Mula-mula program dimasukkan ke dalam kenangan komputer. Ketika program dilakukan (execute), masing-masing instruksi yang sudah tersimpan di dalam kenangan dikirim ke CPU. CPU menggarap operasioperasi yang bersesuaian dengan instruksi tersebut. Bila sebuah operasi membutuhkan data, data dibaca dari piranti masukan, ditabung di dalam kenangan lalu dikirim ke CPU guna operasi yang memerlukannya tadi. Bila proses menghasilkan keluaran atau informasi, keluaran ditabung ke dalam memori, lalu kenangan menyebutkan keluaran tadi ke piranti keluaran (misalnya dengan menampilkannya di layar monitor).
teknologi informasi jaringan
6. Belajar Memprogram dan Belajar Bahasa Pemrograman
Belajar memprogram tidak sama dengan belajar bahasa pemrograman. Belajar memprogram ialah belajar mengenai metodologi solusi masalah, lantas menuangkannya dalam sebuah notasi tertentu yang gampang dibaca dan dipahami. Sedangkan belajar bahasa pemrograman berarti belajar menggunakan suatu bahasa aturan-aturan tata bahasanya, pernyataan-pernyataannya, tata teknik pengoperasian compiler-nya, dan memanfaatkan pernyataan-pernyataan itu untuk menciptakan program yang ditulis melulu dalam bahasa tersebut saja. Sampai ketika ini ada puluhan bahasa pemrogram, antara beda bahasa rakitan (assembly), Fortran, Cobol, Ada, PL/I, Algol, Pascal, C, C++, Basic, Prolog, LISP, PRG, bahasabahasa simulasi laksana CSMP, Simscript, GPSS, Dinamo. Berdasarkan terapannya, bahasa pemrograman bisa digolongkan atas dua kumpulan besar :
Bahasa pemrograman bertujuan khusus. Yang termasuk kumpulan ini ialah Cobol (untuk terapan bisnis dan administrasi). Fortran (terapan komputasi ilmiah), bahasa rakitan (terapan pemrograman mesin), Prolog(terapan kepintaran buatan), bahasa-bahasa simulasi, dan sebagainya.
Bahasa perograman bertujuan umum, yang dapat dipakai untuk sekian banyak aplikasi. Yang termasuk kumpulan ini ialah bahasa Pascal, Basic dan C. Tentu saja pembagian ini tidak kaku. Bahasabahasabertujuan eksklusif tidak berarti tidak dapat digunakan untuk software lain. Cobol misalnya, bisa juga dipakai untuk terapan ilmiah, melulu saja kemampuannya terbatas. Yang jelas, bahasabahasa pemrograman yang bertolak belakang dikembangkan guna bermacam-macam terapan yang bertolak belakang pula.
teknologi informasi jaringan
Bahasa tingkat rendah. Bahasa jenis ini dirancang supaya setiap instruksinya langsung digarap oleh komputer, tanpa mesti melewati penerjemah (translator). Contohnya ialah bahasa mesin. CPU memungut instruksi dari memori, langsung memahami dan langsung menggarap operasinya. Bahasa tingkat rendah mempunyai sifat primitif, paling sederhana, orientasinya lebih dekat ke mesin, dan sulit dicerna manusia. Sedangkan bahasa rakitan dimasukkan ke dalam kumpulan ini karena dalil notasi yang digunakan dalam bahasa ini lebih dekat ke mesin, meskipun untuk mengemban instruksinya masih butuh penerjemahan ke dalam bahasa mesin.
Bahasa tingkat tinggi, yang menciptakan pemrograman lebih gampang dipahami, lebih “manusiawi”, dan berorientasi ke bahasa insan (bahasa Inggris). Hanya saja, program dalam bahasa tingkat tinggi tidak bisa langsung dilakukan oleh komputer. Ia butuh diterjemahkan terlebih dahulu oleh suatu translator bahasa (yang dinamakan kompilator atau compiler) ke dalam bahasa mesin sebelum kesudahannya dieksekusi oleh CPU. Contoh bahasa tingkat tinggi ialah Pascal, PL/I, Ada, Cobol, Basic, Fortran, C, C++, dan sebagainya.
Bahasa pemrograman dapat juga dikelompokkan menurut pada destinasi dan fungsinya. Di antaranya ialah :
teknologi informasi jaringan
Ketika manusia berjuang memecahkan masalah, cara atau kiat yang dipakai untuk memecahkan masalah tersebut ada bisa jadi bisa tidak sedikit (tidak melulu satu). Dan anda memilih mana yang terbaik salah satu teknikteknik itu. Hal ini sama pun dengan algoritma, yang memungkinkan suatu persoalan dipecahkan dengan cara dan logika yang berlainan. Yang menjadi pertanyaan ialah bagaimana mengukur mana algoritma yang terbaik?. Beberapa persyaratan guna menjadi algoritma yang baik ialah :
teknologi informasi jaringan
- Tingkat kepercayaannya tinggi (realibility). Hasil yang didapatkan dari proses mesti berakurasi tinggi dan benar.
- Pemrosesan yang tepat guna (cost rendah). Proses mesti ditamatkan secepat barangkali dan frekuensi kalkulasi yang sependek mungkin.
- Sifatnya general. Bukan sesuatu yang melulu untuk menuntaskan satu permasalahan saja, tapi pun untuk permasalahan lain yang lebih general.
- Bisa dikembangkan (expandable). Haruslah sesuatu yang dapat anda kembangkan lebih jauh menurut evolusi requirement yang ada.
- Mudah dimengerti. Siapapun yang melihat, dia akan dapat memahami algoritma Anda. Susah dimengertinya sebuah program akan menciptakan susah di-maintenance (kelola).
- Portabilitas yang tinggi (portability). Bisa dengan gampang diimplementasikan di sekian banyak platform komputer.
- Precise (tepat, betul, teliti). Setiap instruksi mesti ditulis dengan cermat dan tidak terdapat keragu-raguan, dengan demikian masing-masing instruksi mesti ditetapkan secara gamblang dan tidak terdapat bagian yang dihilangkan sebab pemroses dirasakan sudah mengerti. Setiap tahapan harus jelas dan pasti.
Contoh : Tambahkan 1 atau 2 pada x.
Instruksi di atas ada keraguan.
Jumlah tahapan atau instruksi berhingga dan tertentu. Artinya, untuk permasalahan yang sama banyaknya, tahapan harus tetap dan tertentu meskipun datanya berbeda.
Efektif. Tidak boleh terdapat instruksi yang tidak mungkin digarap oleh pemroses yang bakal menjalankannya.
Contoh : Hitung akar 2 dengan presisi sempurna.
Instruksi di atas tidak efektif, supaya efektif instruksi itu diubah.
Misal : Hitung akar 2 hingga lima digit di belakang koma.
Harus terminate. Jalannya algoritma mesti terdapat kriteria berhenti. Pertanyaannya ialah apakah bila jumlah instruksinya berhingga maka tentu terminate?
Output yang didapatkan tepat. Jika langkah-langkah algoritmanya logis dan dibuntuti dengan cermat maka didapatkan output yang diinginkan.
Sedangkan kriteria Algoritma menurut keterangan dari Donald E. Knuth ialah :
Input: algoritma bisa mempunyai nol atau lebih inputan dari luar.
Output: algoritma mesti mempunyai minimal satu buah output keluaran.
Definiteness (pasti): algoritma mempunyai instruksi-instruksi yang jelas dan tidak ambigu.
Finiteness (ada batas): algoritma mesti mempunyai titik berhenti (stopping role).
Effectiveness (tepat dan efisien): algoritma sebisa barangkali harus dapat dilakukan dan efektif. Contoh instruksi yang tidak efektif merupakan: A = A + 0 atau A = A 1
Namun ada sejumlah program yang memang dirancang guna unterminatable : misal Sistem Operasi.
teknologi informasi jaringan
Penyajian algoritma secara garis besar dapat dalam 2 format penyajian yaitu artikel dan gambar. Algoritma yang disajikan dengan artikel yaitu dengan struktur bahasa tertentu (misalnya bahasa Indonesia atau bahasa Inggris) dan pseudocode. Pseudocodeadalah kode yang serupa dengan kode pemrograman yang sebetulnya seperti Pascal, atau C, sampai-sampai lebih tepat dipakai untuk mencerminkan algoritma yang bakal dikomunikasikan untuk pemrogram. Sedangkan algoritma disajikan dengan gambar, contohnya dengan flowchart. Secara umum, pseudocode mengekspresikan ide-ide secara informal dalam proses penyusunan algoritma. Salah satu teknik untuk menghasilkan kode pseudo ialah dengan meregangkan aturan-aturan bahasa formal yang dengannya versi akhir dari algoritma bakal diekspresikan. Pendekatan ini umumnya dipakai ketika bahasa pemrograman yang akan dipakai telah diketahui semenjak awal.
teknologi informasi jaringan
samping tersebut flowchart juga bermanfaat sebagai kemudahan untuk berkomunikasi antara pemrogram yang bekerja dalam tim sebuah proyek.
teknologi informasi jaringan
- Flowchart sistem yakni bagan dengan simbol-simbol tertentu yang mencerminkan urutan formalitas dan proses sebuah file dalam sebuah media menjadi file di dalam media lain, dalam sebuah sistem pengolahan data. Beberapa misal Flowchart sistem:
- Flowchart program yakni bagan dengan simbol-simbol tertentu yang mencerminkan urutan proses dan hubungan antar proses secara rinci di dalam sebuah program.
Kaidah-Kaidah Umum Pembuatan Flowchart Program
Dalam penciptaan flowchart Program tidak ada formula atau patokan yang mempunyai sifat mutlak. Karena flowchart merupakan cerminan hasil pemikiran dalam meneliti suatu masalah dengan komputer. Sehingga flowchart yang didapatkan dapat bervariasi antara satu pemrogram dengan yang lainnya. Namun secara garis besar masing-masing pengolahan tidak jarang kali terdiri atas 3 unsur utama, yakni :
- Input,
- Proses pengolahan dan
- Output
Untuk pengolahan data dengan komputer, urutan dasar solusi suatu masalah:
START, berisi pengakuan untuk persiapan perlengkapan yang dibutuhkan sebelum menangani solusi persoalan.
READ, mengandung pernyataan pekerjaan untuk menyimak data dari sebuah peralataninput.
PROSES, berisi pekerjaan yang sehubungan dengan solusi persoalan cocok dengan data yang dibaca.
WRITE, berisi pengakuan untuk merekam hasil pekerjaan ke perlengkapan output.
END, mengakhiri pekerjaan pengolahan.
Walaupun tidak terdapat kaidah-kaidah yang baku dalam penyusunan flowchart, tetapi ada sejumlah anjuran :
teknologi informasi jaringan
- Hindari duplikasi proses yang tidak butuh dan logika yang berbelit sampai-sampai jalannya proses menjadi singkat.
- Jalannya proses dicerminkan dari atas ke bawah dan diserahkan tanda panah untuk
- Sebuah flowchart dimulai dari satu titik START dan diselesaikan dengan END.untuk memperjelas
Untuk mengetahui lebih dalam tentang flowchart ini, akan dipungut sebuah permasalahan sederhana.
Kasus : Buatlah suatu rancangan program dengan memakai flowchart, menggali luas persegi panjang.
Solusi : Perumusan untuk menggali luas persegi panjang ialah :
L = p . l
di mana, L ialah Luas persegi panjang, p ialah panjang persegi, dan l ialah lebar persegi
Informasi jaringan
Terimakasih.semoga bermanfaat.
0 Komentar