Tuesday, February 24, 2015

Algoritma dan Pemrograman

Algoritma
Algoritma adalah jantung ilmu komputer atau yang biasa disebut informatika. Sudah banyak cabang ilmu komputer yang mengarah ke dalam algoritma. Namun, jangan pernah menganggap algoritma selalu identik dengan ilmu komputer. Bahkan dalam kehidupan sehari-hari pun banyak terdapat proses yang dinyatakan dalam algoritma. Misalnya pada cara resep kue maupun masakan yang dinyatakan dalam suatu resep juga dapat disebut  algoritma. Di setiap resep selalu ada urutan untuk membuat suatu masakan. Bila urutannya tidak logis, maka tidak dapat dihasilkan masakan yang dimaksud. Para ibu yang ingin mencoba suatu resep masakan akan membaca satu per satu langkah-langkah pembuatannya lalu ia mengerjakan proses sesuai yang ia baca. Secara umum, pihak (benda) yang mengerjakan proses disebut pemroses (processor). Pemroses tersebut dapat berupa seorang manusia, sebuah komputer, sebuah robot maupun alat elektronik lainnya. Seseorang yang memproses melakukan prosesnya dengan menjalankan atau “mengeksekusi” algoritma yang menjabarkan proses tersebut.
Algoritma merupakan deskripsi dari pola tingkah laku yang dinyatakan secara primitif yaitu aksi-aksi yang didefenisikan sebelumnya dan diberi nama, dan diasumsikan sebelumnya bahwa aksi-aksi tersebut dapat kerjakan sehingga dapat menyebabkan kejadian.
Melaksanakan algoritma berarti mengerjakan langkah-langkah yang ada di dalam algoritma. Pemroses mengerjakan prosesnya  berdasarkan dengan algoritma yang diberikan padanya. Seorang koki maupun juru masak membuat suatu masakan sesuai dengan resep yang diberikan padanya, seorang pianis memainkan sebuah lagu sesuai dengan not balok yang ada. Oleh karena itu algoritma seharusnya dinyatakan dalam bentuk yang dapat dimengerti oleh orang yang memproses. Jadi seseorang yang memproses harus mengerti langkah yang ada di dalam algoritma dan juga mampu mengerjakan operasi sesuai dengan langkah tersebut.


Berikut adalah tipe-tipe Algoritma Berdasarkan Format Penulisan
Algoritma  yaitu  independen  terhadap  bahasa  pemrograman  yang telah ditentukan,  artinya adalah algoritma  yang sudah dibuat tidak boleh hanya  dapat  diterapkan  pada suatu bahasa pemrograman.  Penulisan algoritma itu sendiri tidak terikat pada suatu aturan, tetapi tetap harus jelas maksudnya untuk setiap langkah algoritmanya. Namun pada dasar nya algoritma dapat dibagi menjadi beberapa macam berdasarkan format penulisannya, seperti sebagai berikut:
1. Deskriptif
Algoritma  bertipe  deskriptif  maksudnya  yaitu  algoritma  yang  ditulis  dalam bahasa manusia sehari- hari,seperti bahasa Indonesia atau bahasa Inggris dan dalam bentuk sebuah kalimat.  Pada setiap langkah algoritmanya diterangkan  dalam satu atau beberapa kalimat.
Misalnya algoritma dalam menentukan bilangan yang terbesar dari 3 bilangan berikut:
Algoritma Menentukan_bilangan_terbesar_dari_3_bilangan
§  Meminta input 3 bilangan dari user, misalkan bilangan a, b, dan c.
§  Apabila bilangan a lebih besar dari b maupun c, maka bilangan a merupakan bilangan terbesar.
§  Jika  tidak  (bilangan a tidak lebih besar dari b atau c) berarti bilangan a sudah  pasti  bukan  bilangan  terbesar. Kemungkinannya hanya ada bilangan b atau c.  Apabila  bilangan b yang lebih besar dari  c, maka b yang merupakan bilangan terbesar.  Sebaliknya  apabila bilangan  b yang tidak lebih besar dari c, maka bilangan c yang merupakan yang paling terbesar.
§  Selesai.



2. Flow Chart (Diagram Alir)
Selain dalam bentuk tulisan, algoritma sendiri juga dapat ditulis menggunakan bentuk diagram dengan anak panah sebagai penunjuk urutan langkah algoritmanya. Algoritma yang ditulis dengan symbol yang ada pada flow chart . Sekarang diberikan suatu contoh algoritma menentukan bilangan terbesar dari 3 bilangan seperti yang dicontohkan sebelumnya, tetapi ditulis dalam bentuk flow chart.
3. Pseudocode
Pseudo itu sendiri berarti imitasi dan kode  berarti kode yang dihubungkan dengan instruksi yang  ditulis  dalam  bahasa  komputer  (kode  bahasa  pemrograman).  Apabila diterjemahkan  secara  bebas,  maka  pseudocode  berarti  tiruan  atau  imitasi  dari  kode bahasa pemrograman. Pada  dasarnya,  pseudocode  merupakan  suatu  bahasa  yang  memungkinkan programmer agar berpikir terhadap permasalahan yang harus segera dipecahkan tanpa harus memikirkan syntax  dari  bahasa pemrograman  yang  tertentu.  Tidak ada satupun aturan penulisan syntax di  dalam pseudocode.  Jadi  pseudocode  digunakan  untuk menggambarkan logika urutan dari program tanpa memandang bagaimana bahasa pemrograman yang dipakainya. Walaupun pseudocode tidak ada aturan penulisan untuk syntax,  tetapi di dalam buku ini telah diberikan  suatu aturan  penulisan syntax yang cukup  sederhana  agar  para pembaca dapat  lebih  mudah  mengerti dalam  mempelajari algoritma yang terdapat di dalam buku tersebut.  Pseudocode tersebut ditulis pada dalam buku ini akan meniru syntax yang ada di dalam bahasa Pascal. Namun semua itu telah dibuat sesederhana mungkin sehingga tidak akanada kesulitan bagi pembaca untuk memahami algoritma dalam  buku  ini walaupun pembaca belum pernah mempelajari bahasa program Pascal. Contoh dari algoritma yang menentukan bilangan yang paling besar yaitu dari tiga bilangan yang ditulis dalam bentuk pseudocode.


Pemograman
Pemrograman berasal dari kata  program  yang diberi awalan pe- dan akhiran -an. Di dalam buku ini, program berarti program pada komputer. Pengertian   program  pada komputer itu sendiri adalah  sekumpulan  instruksi langkah per langkah yang memberitahukan mengenai yang harus dilakukan komputer dengan tepat.  Pemrograman  merupakan semua kegiatan pembuatan program komputer.
Kemudian  terdapat  pula  istilah   bahasa  pemrograman   yang  berarti  bahasa  yang digunakan dalam pembuatan program komputer. Menurut  pengertian  algoritma  dan  pemrograman, dapat  dikatakan bahwa  program  merupakan  hasil  penerapan  dari suatu algoritma.  Akan  tetapi, dalam  buku  ini  tidak dibahas  materi  mengenai  pembuatan  program  komputer. Buku ini  memfokuskan pada teknik pembuatan  algoritma tersebut. Nama yang ada pada mata kuliah algoritma dan pemrograman dalam hal ini berarti mempelajari pembuatan algoritma yang dapat diterapkan dalam pemrograman.

Sumber : http://bettyas.blogspot.com/2012/02/artikel-algoritma-dan-pemograman.html?m=1







Karmila Yusnitha
Informatika A

D1041141024

Algoritma Pemrograman



Algoritma Pemrograman
A. Algoritma
          Dari asal-usul kata algoritma berasal dari kata algorism yang artinya proses menghitung dengan angka arab. Kata algorism ini berasal dari nama penulis buku arab yang terkenal bernama Abu Ja’far Muhammad Ibnu  Musa Al-Khuwarizmi. Nama belakang sang penulis yaitu Al-Khuwarizmi dibaca oleh orang barat menjadi algorism. Lalu kata algorism itu berubah menjadi algorithm karena sering dikelirukan dengan kata arithmetic. Karena seringnya penggunaan perhitungan dengan angka arab maka kata algorithm berangsur-angsur dipakai dalam metode komputasi umum. Dalam bahasa Indonesia algorithm disebut algoritma. Sedangkan definisi algoritma sendiri adalah langka-langkah logis yang disusun secara berurutan untuk menyelesaikan masalah.

Ciri-ciri algoritma antara lain, yaitu :
1. Algoritma mempunyai bagian awal dan akhir
2. Semua kalimat yang digunakan harus jelas maknanya atau tidak ambigu.
3. Memiliki input (kondisi awal) dan output (kondisi akhir)
4. Algoritma harus bersifat efektif.

Sedangkan kriteria algoritma menurut Donald E. Kruth adalah :
1. Input, algoritma dapat memiliki nol atau lebih inputan dari luar.
2. Output, algoritma harus memiliki minimal satu buah output keluaran.
3. Definiteness (pasti), algoritma memiliki instruksi-instruksi yang jelas dan tidak ambigu.
4. Finiteness (ada batas), algoritma harus memiliki titik berhenti.
5. Effectiveness (tepat dan efisien), algoritma sebisa mungkin dapat dilaksanakan dan efektif.

            Algoritma merupakan bagian penting dari ilmu komputer atau informatika. Namun, jangan beranggapan algoritma hanya indentik dengan ilmu komputer atau informatika. Dalam kehidupan sehari-hari terdapatjuga  proses yang dinyatakan dalam bentuk algoritma. Contohnya pada resep memasak, apabila langkah-langkah tidak logis hasil nya tidak akan sesuai dengan yang diinginkan. Orang-orang yang membaca resep masakan akan membaca langkah-langkah resep satu persatu lalu mengerjakannya sesuai yang  mereka baca. Secara umum pihak yang mengerjakan proses disebut pemroses (processor). Pemroses melakukan suatu proses dengan melaksanakan algoritma yang menjabarkan proses tersebut.

B. Pemrograman
Pemrograman adalah aktifitas yang berhubungan dengan pembuatan program dengan mengikuti kaidah bahasa pemrograman tertentu. Ada bermacam-macam bahasa pemrograman di antaranya, yaitu Pascal, BASIC, dan Java. Para ahli memberi formula “Program = Algoritma + Bahasa (Struktur Data)”.
Berdasarkan terapannya, bahasa pemrograman dikelompokkan menjadi :
1. Bahasa pemrograman bertujuan khusus, contohnya Cobol (untuk terapan bisnis dan administrasi),  Prolog (terapan kecerdasan buatan), dan sebagainya. 
2. Bahasa Pemrograman bertujuan umum, yaitu yang dapat digunakan untuk berbagai aplikasi. Contohnya adalah bahasa Pascal dan Basic.
Sedangkan berdasarkan notasinya lebih “dekat” ke mesin atau bahasa yang digunakan manusia, bahasa pemrograman dikelompokkan menjadi :
 1. Bahasa pemrograman tingkat tinggi ( high-level language )
Merupakan bahasa pemrograman yang dekat kepada bahasa yang digunakan manusia. Program yang dibuat dengan menggunakan bahasa pemrograman yang mudah dipahami oleh manusia, yang biasanya menggunakan bahasa inggris, misalnya IF, FOR, While, dll. Contoh bahasa pemrograman tingkat tinggi adalah C,  BASIC, Java, dan sebagainya

2. Bahasa pemrograman tingkat rendah ( low-level language )
Merupakan bahasa pemrograman yang dekat kepada mesin. Bahasa ini hanya memakai kode biner ( hanya mengenal bilangan 0 dan 1 ) atau suatu kode sederhana untuk menggantikan kode-kode tertentu dalam system biner. Contoh bahasa pemrograman tingkat rendah adalah Assembler.

C. Algoritma Pemrograman
            Jadi, dari pengertian keduanya dapat disimpulkan pengertian Algoritma Pemrograman adalah langkah-langkah logis yang disusun secara berurutan untuk menyelesaikan masalah dalam pemrograman.  Agar algoritma dapat diproses oleh komputer, maka dirubah menjadi bentuk program (melalui proses pemrograman).
Adapun yang hal-hal harus diperhatikan dalam pembuatan algoritma dalam pemrograman adalah :
1. Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah.
2. Tidak ada notasi yang baku dalam penulisan teks algoritma seperti notasi bahasa pemrograman.
3.  Setiap orang dapat membuat aturan penulisan dan notasi algoritmik sendiri.
4. Notasi algoritmik bukan notasi bahasa pemrograman, oleh karena itu pseudocode dalam notasi algoritmik tidak dapat dijalankan oleh komputer.
5. Algoritma harus ditranslasikan ke dalam notasi bahasa pemrograman.

            Penyajian algoritma terbagi menjadi dua bentuk, yaitu bentuk tulisan dan gambar. Dalam bentuk tulisan Algoritma yang disajikan dengan tulisan yaitu dengan struktur bahasa tertentu (misalnya bahasa Indonesia atau bahasa Inggris) dan pseudocode. Sedangkan algoritma disajikan dengan gambar, contohnya dengan flowchart.
  
- Pseudocode
Pseudocode adalah kode atau tanda yang menyerupai (pseudo) atau merupakan penjelasan cara menyelesaikan masalah. Pseudocode sering digunakan untuk menuliskan algoritma.
Contoh kasus : mencari bilangan terkecil dari dua bilangan yang diinputkan
Solusi Pseudocode :
1. Masukkan bilangan yang pertama
2. Masukkan bilangan yang kedua
3. Jika bilangan pertama < bilangan kedua maka tampilkan angka pertama,  jika tidak,  maka tampilkan angka kedua.

Solusi Algoritma :
1. Masukkan bilangan yang pertama (a)
2. Masukkan bilangan yang kedua (b)
3. if a < b kemudian print a, jika tidak, print 

- Flowchart
Flowchart merupakan gambar yang memperlihatkan urutan dan hubungan antar proses beserta pernyataannya. Gambaran ini dinyatakan dengan simbol. Setiap simbol menggambarkan proses tertentu. Sedangkan antara proses digambarkan atau dihubungkan dengan garis penghubung. Dengan menggunakan flowchart akan memudahkan kita untuk melakukan pengecekan bagian-bagian yang terlupakan dalam menganalisis masalah.
Ada dua macam flowchart yang menggambarkan proses dengan komputer, yaitu :
1. Flowchart sistem yaitu gambar dengan simbol-simbol tertentu yang menggambarkan urutan prosedur dan proses suatu file dalam suatu media menjadi file di dalam media lain, dalam suatu sistem pengolahan data.
2. Flowchart program yaitu gambar dengan simbol-simbol tertentu yang menggambarkan urutan proses dan hubungan antar proses secara mendetail di dalam suatu program.
            Dalam pembuatan flowchart Program tidak terdapat rumus atau patokan yang bersifat mutlak. Ini dikarenakan flowchart merupakan gambaran hasil pemikiran dalam menganalisis suatu masalah dengan komputer. Sehingga flowchart yang dihasilkan dapat bervariasi antara satu pemrogram dengan yang lainnya. Namun secara umum setiap pengolahan flowchart selalu terdiri atas 3 bagian, yaitu Input, Proses pengolahan, dan Output.
            Langkah-langkah dalam pemrograman adalah :
1. Definisikan Masalah
2. Buat Algoritma dan Struktur Cara Penyelesaian
3. Menulis Program
4. Mencari Kesalahan
5. Uji dan Verifikasi Program
6. Dokumentasi Program
7. Pemeliharaan Program

Sumber            :

LUTHFIA JUSTISIA LOEBIS (D1041141078)










 

Dasar Pengenalan Algoritma dan Pemrograman

Algoritma dan Pemrograman

Kata algoritma diambil dari nama ilmuwan muslim Abu Ja’far Muhammad bin Musa Al-Khwarizmi (780-846 M) yang banyak menghasilkan karya dalam bidang matematika, di samping karya-karyanya dalam bidang lainnya seperti geografi dan music
Pemecahan sebuah masalah pada hakekatnya adalah menemukan langkah-langkah tertentu yang jika dijalankan efeknya akan memecahkan masalah tersebut. Misalnya, dalam masalah telpon menelpon seseorang. Sewaktu akan menelepon di telepon rumah misalnya, maka urutan langkah-langkah tertentu mesti dilakukan. Langkah-langkah tersebut secara garis besar adalah:
1.    Angkat gagang telepon
2.    Tekan nomor yang akang dihubungi
3.    Bicara
4.    Letakkan gagang telepon tersebut.
Dari uraian tersebut, secara umum dapat ditarik beberapa karakteristik atau syarat algoritma:
1.    Algoritma semestinya harus tidak ambigu
Pendeskripsian langkah-langkah dalam algoritma semestinya harus dan hanya mempunyai rafsiran tunggal. Maka dari itu, sebuah bahasa pemrograman seperti Pascal sering digunakan untuk menuliskan algoritma, sehingga langkah-langkah tersebut yang dituliskan hanya mempunyai tafsiran tunggal, terutama menurut computer.

2.    Algoritma harus tepat
Algoritma wajib menyatakan urutan langkah-langkahnya. Kapan sebuah langkah atau langkah y dilakukan, apakah sebelum langkah z atau sesudahnya, harus dinyatakan dengan sangat jelas. Algoritma harus dinyatakan dengan jelas kapan berhenti dari sebuah langkah untuk meneruskan ke langkah beerikutnya.

3.    Algoritma harus pasti
Jika serangkaian langkah yang sama dilakukan selama dua kali maka hasilnya harus selalu sama. Sebagai contoh, jika dua orang mengikuti resep kue yang sama, maka rasa dan kelezatan kue yang dihasilkan harus sama. Kalau tidak sama, berarti ada beberapa perbedaan yang tidak disadari.

4.    Algoritma harus berhingga
Beberapa langkah dalam algoritma harus bisa dilaksanakan pada rentang waktu tertentu seperti yang diuraikan di-atas.

Cara Penulisan Algoritma
Algoritma sebagai langkah-langkah pemecahan masalah dapat dituliskan dalam salah satu cara, contohnya yaitu:
1.    Uraian deskriptif
2.    Pseudocode
3.    flow chart
Algoritma dapat dituliskan dalam kode-kode yang disepakati dan mempunyai arti tertentu. Kode-kode seperti ini disebut dengan pseudocode. Algoritma dalam uraian deskriptif diatas jika dituliskan dengan salah satu pseudocode yang mirip dengan bahasa Pascal menjadi
Input (b)
i ← 0
j ← 0
while (i<b) do
i ← i + 1
if  i mod 2 = 0 then
 j ← j + i
output (j)
Algoritma tersebut dapat juga dituliskan dalam notasi grafik yang setiapnya mempunyai arti tertentu. Disitu dinamakan dengan flow chart. Terdapat beberapa notasi dasar penggambaran bagan flowchart seperti:




a.    Notasi kapsul digunakan untuk menggambarkan awal (mulai) dan akhir (selesai) sebuah bagan alir atau flowchart
b.    Notasi jajaran genjang digunakan untuk menggambarkan pembacaan data (input) dan untuk menampilkan daya (output)
c.    Notasi empat persegi panjang digunakan untuk menggambarkan proses dalam bagan alir.
d.    Notasi belah ketupat mempunyai dua panah keluar (dua nilai keluaran) yang masih bernilai true (ya, benar) dan false (tidak, salah) digunakan untuk pengujian sebuah kondisi.
Langkah yang dilakukan setelah pengujian tergantung kepada hasil pengujian, true atau false.


Belajar Memogram dan Belajar Bahasa Pemrograman.
Belajar mengprogram tidak sama dengan belajar bahasa pemrograman. Belajar memprogram adalah belajar yang dimana tentang metodologi pemecahan masalah itu tersebut, kemudian meletakkannya dalam notasi itu tersebut yang tentunya mudah dibaca dan dipahami juga. Sedangkan jika belajar bahasa pemrograman berarti kita belajar menggunakan bahasa aturan yang memiliki tata-tata bahasanya, pernyataannya, tata cara bagaimana pengoperasian compiler itu tersebut, dan memanfaatkan pernyataan-pernyataan tersebut untuk membuat program-program yang ditulis hanya dalam bahasa yang dibuat untuk program itu saja. Sampai saat ini terdapat banyak sekali bahasa pemrogram, antara lain yaitu bahasa rakitan atau assembl), Fortran, CoboI, Pascal, Algol, C++, C, Basic, LISP, Java, bahasa simulasi seperti CSMP, Simscript, GPSS, terdapat Dinamo juga dan lain-lain.

Bahasa pemrograman memiliki tujuan yang khusus. Kelompok ini adalah Cobol  atau untuk terapan bisnis dan administrasi. Fortran (terapan komputasi di bidang ilmiah), bahasa rakitan (terapan atau pemrograman mesin), terapan dalam kecerdasan buatan atau yang biasa dikenal dengan prolog, bahasa simulasi, dan sebagainya.

Bahasa perograman juga memiliki tujuan umum, yaitu sebagai aplikasi. Kelompok ini adalah bahasa Basic, Pascal dan C. Tentu saja pembagian kelompok ini tidak kaku. Bahasa ini bertujuan khusus bukan berarti tidak bisa digunakan untuk aplikasi lain. Misalnya Cobol, dapat juga digunakan untuk bidang ilmiah, hanya saja kemampuannya terbatas. Bahasa - bahasa pemrograman yang berbeda dikembangkan untuk bermacam-macam terapan yang berbeda juga.

Berdasarkan apakah notasi bahasa - bahasa pemrograman itu lebih dekat ke bahasa mesin atau ke bahasa manusiawi, maka bahasa pemrograman dikelompokkan atas 2 macam :

Bahasa Program Tingkat Rendah
Jenis ini dirancang untuk setiap instruksinya langsung dikerjakan di dalam komputer, tanpa harus melalui penerjemah. Contohnya adalah bahasa bahasa mesin. CPU mengambil instruksi dari memori itu, langsung mengerti hal tersebut dan langsung mengerjakan operasinya. Bahasa tingkat rendah sifatnya primitif, sederhana, orientasinya lebih ke mesin, dan sulit dipahami oleh manusia. Sedangkan bahasa rakitan termasuk ke dalam kelompok ini, karena alasan Bentuk notasi yang dipakai dalam bahasa lebih dekat ke mesin, meskipun melaksanakan instruksinya masih perlu translator ke dalam bahasa mesin.

Bahasa Program Tingkat Tinggi
Bahasa ini yang membuat pemrograman sangat mudah dipahami, lebih sangat manusiawi, dan masuk ke dalam bahasa manusia seperti bahasa Inggris. Hanya saja memogram dalam bahasa tingkat tinggi tidak dapat langsung diterjemahkan kedalam  komputer. Ia perlu diterjemahkan terlebih dahulu oleh sebuah penerjemah atau translator bahasa (yang disebut compiler atau kompilator) ke dalam bahasa mesin dan akhirnya dieksekusi oleh CPU. Contoh bahasa tingkat tinggi adalah PL/I, Pascal, Cobol, Ada, Java, Basic Fortran, C++, C, dan masih banyak lagi.

Bahasa pemrograman juga dapat dikelompokkan sebagai berikut:

Kaidah Umum Pembuatan Program Flowchart

Dalam pembuatan flowchart Program tidak ada patokan yang bersifat mutlak. Karena flowchart adalah gambaran pemikiran dalam menganalisa suatu masalah dengan menggunakan komputer. Sehingga flowchart yang dihasilkan dapat memiliki variasi antara satu pemogram dengan yang lain.

Namun dalam garis besar setiap pengolahan selalu terdiri atas 3 bagian utama, yaitu :
Untuk masalah pengolahan data dengan menggunakan komputer, urutan dasar dalam pemecahan suatu masalah:
-    START, untuk persiapan peralatan yang diperlukan sebelum menangani pemecahan dalam persoalan.
-    READ, kegiatan untuk membaca data data dari suatu peralatan input.
-    PROSES, berisi yang berkaitan dengan pemecahan persoalan sesuai dengan data yang dibaca.
-    WRITE, pernyataan untuk merekam hasil dari kegiatan ke peralatan output.
-    END, mengakhiri kegiatan pengolahan data.

Walaupun disini tidak adanya kaidah-kaidah yang baku dalam penyusunan - penyusunan flowchart, namun terdapat anjuran penting, yaitu :
-    Hindari pengulangan proses yang tidak penting dan logika yang berbelit sehingga dapat mengganggu jalannya proses menjadi singkat.
-    Jalannya proses ditentukan atau digambarkan dari atas ke bawah dan diberikan tanda panah untuk memperjelas prose situ tersebut.
-    Sebuah flowchart diawali dengan satu titik START dan diakhiri dengan menggunakan END.

Sumber    : - Buku Dasar Algoritma dan Pemrograman
                   - https://andikafisma.wordpress.com/algoritma-dan-pemrograman/

Created by:  - DWIKI RAMADHAN (D1041141038)
                    - ANDRI (D1041141060)
                    - MUHAMMAD FAJRI SAPARIANTO (D1041141032)
                    - MUHAMMAD RIZKI FIRDAUS ARITONANG (D1041141040)
                    - RIDHA ADITYA PRATAMA (D1041141046)

DASAR ALGORITMA DAN PEMROGRAMAN

A. ALGORITMA

Kata algoritma diambil dari nama ilmuwan muslin Abu Jafar Muhammad bin Musa Al-Khawarizmi (760-846 M), beliau banyak menghasilkan karya di bidang matematika, geografi, hingga musik.
Pemecahan masalah sebenarnya adalah menemukan langkah-langkah tertentu yang dapat memecahkan masalah saat dijalankan. Seperti dalam masalah menelpon. Saat akan menelpon di telepon umum, maka langkah-langkah di bawah ini harus dilakukan:

1. Angkat ganggang telepon
2. Masukkan koin
3. Tekan nomor yang akan dihubungi
4. BIcara
5. Letakkan kembali gagang telepon

Langkah-langkah tersebut akan bekerja saat telepon dalam kondisi normal(telepon dijawab/nomor yang dihubungi menjawab), tetapi untuk keadaan tidak normal, maka langkah-langkah tersebut tidak akan memecahkan masalah. Oleh karena itu, langkah-langkah tersebut harus dikembangkan seperti berikut :

1. Angkat gagang telepon
2. a.  Jika terdengar nada panggil, masukkan koin
        b.  Jika tidak terdengar nada panggil, kelangkah selanjutnya
3. Tekan nomor yang akan dihubungi
4. a. Jika nomor telepon yang dihubungi menjawab, bicara
        b. Jika nomor telepon yang dihubungi tidak menjawab, kelangkah selanjutnya
5. Letakkan gagang telepon

Poin 2 dan 4 pada langkah pada contoh 2 dipecah menjadi dua langkah, masing-masing yaitu 2.a dan 2.b serta 4.a dan 4.b. ternyata, langkah-langkah yang lebihrinci itu pun tidak menggambarkan cara menelpom di telepon umum secara tuntas. Jika kita memberikan urutan langkah-langkah tersebut kepada sesorang yang belum pernah menggunakan telepon umum, maka belum tentu ia dapat menelpon dengan baik. Langkah tersebut benar jika seseorang hanya menelepon sebentar, tetapi jika ia akan menelepon lebih lama, yang berarti perlu memasukkan koin-koin lain, maka langkah-langkah tersebut harus lebih dikembangkan.

Urutan langkah-langkah tersebut adalah algoritma. Algoritma adalah urutan langkah-langkah yang dinyatakan dengan jelas dan tidak rancu untuk memecahkan suatu masalah (jika ada pemecahannya) dalam jangka waktu tertentu. Artinya, setiap langkah yang dikerjakan harus memiliki efek tertentu. Langkah-langkah yang tidak dapat dikerjakan dan tidak memiliki efek tertentu tidak dapat disebut sebagai suatu algoritma. Efek-efek pada setiap langkah akan menyelesaikan semua masalah secara keseluruhan.

Efek dari sebuah langkah tertentu bisa dilihat dengan membandingkan keadaan sebelum langkah tersebut dilakukan (K0) dan keadaan setelah langkah tersebut dilakukan (K1). Misalnya, keadaan sebelum langkah “angkat gagang telepon” adalah gagang telepon berada di tempatnya (K0), dan setelah langkah tersebut dilakukan gagang telepon sudah terangkat (K1), sehingga efek dari langkah tersebut adalah terangkatnya gagang telepon. Jika semua langkah di atas dilakukan, maka efek dari semua langkah tersebut akan memecahkan masalah tata cara menelepon.

Dari uraian di atas, secara umum dapat ditarik beberapa karakteristik atau syarat algoritma:

1. Algoritma harus tidak ambigu (unambiguous)
Deskripsi dari  langkah-langkah algoritma hanya dapat memiliki satu tafsiran. Oleh karena itu, sebuah bahasa pemograman seperti Pascal sering digunakan pada penulisan  algoritma, sehingga langkah-langkah yang dituliskan hanya mempunyai satu tafsiran saat dibaca oleh komputer.

2. Algoritma harut tepat (precise)
Algoritma harus menyatakan urutan tiap langkahnya. Kapan sebuah langkah atau langkah a dilakukan, apakah sebelum langkah b atau sesudahnya, dan harus dinyatakan dengan jelas. Algoritma harus mempunyai pernyataan jelas tentang kapan satu langkah berhenti dan kapan harus dilanjutkan ke langkah selanjutnya.

3. Algoritma harus pasti (definite)
Jika serangkaian langkah yang sama dilakukan dua kali maka hasilnya akan selalu sama. Misalnya, jika dua orang chef mengikuti satu resep yang sama, maka rasa masakan yang dihasilkan harus sama. Jika hasil akhir atau rasa masakan tidak sama, pasti ada beberapa perbedaan yang tidak disadari, seperti merk bahan yang berbeda, atau durasi memasak yang berbeda, atau ada perbedaan pada hal lainnya.

4. Algoritma harus berhingga (finite)
Langkah – langkah  dalam algoritma harus dapat dilakukan pada rentang waktu tertentu seperti yang telah diuraikan di atas.

B. CARA PENULISAN ALGORITMA

Algoritma sebagai langkah-langkah pemecahan masalah dapat dituliskan dalam beberapa cara, yaitu :
1. Uraian deskriptif
2. Pseudocode
3. Bagan alir (flow chart)

Algoritma dapat dituliskan dalam uraian deskriptif, yaitu menggunakan bahasa yang biasa digunakan sehari-hari. Selain cara tersebut, algoritma juga dapat dituliskan dengan kode-kode yang disepakati dan memiliki arti tertentu. Kode-kode ini disebut sebagai pseudocode. Kode-kode ini dapat dikembangkan oleh masing-masing programmer, asalkan arti dalam setiap kode disetujui bersama. Algoritma juga dapat dituliskan dalam notasi grafik yang masing-masing mempunyai arti tertentu. Notasi tersebut digunakan untuk menggambarkan bagan alir (flow chart). Terdapat beberapa notasi dasar dalam penggambaran bagan alir, seperti:

Keterangan:

a. Notasi kapsul digunakan untuk menggambarkan awal (mulai) dan akhir (selesai) sebuah bagan alir.
b. Notasi jajaran genjang digunakan untuk menggambarkan pembacaan data (input) dan untuk menampilkan daya (output).
c. Notasi persegi empat panjang digunakan untuk menggambarkan proses di dalam bagan alir.
d. Notasi belah keupat mrmpunyai dua panah keluar (dua nilai keluaran) yang masih bernilai true (ya, benar) dan false (tidak, salah) digunakan untuk pengujian sebah kondisi.
Langkah yang dilakukan setelah pengujian tergantung kepada hasil pengujian, true atau false.

Bagan alir sudah tidak banyak digunakan karena alasan berikut ini:

a. Bagan alir hanya cocok untuk masalah kecil. Untuk masalah yang lebih besar penggunaann ya menjadi kurang efisien.

b. Penggunaan bagan alir memerlukan kemampuan menggambar baik yang berarti modifikasi bagan alir akan lebih sulit. Meskipun demikian, bagan alir sangat bermanfaat saat digunakan untuk menggambarkan logika pemecahan masalah untuk pengajaran.

C. LANGKAH – LANGKAH PEMROGRAMAN

Sebenarnya hanya diperlukan waktu yang singkat untuk membuar program, terutama dalam penulisannya. Terdapat beberapa langkah penting lainnya yang jika dapat diselesaikan dengan baik, maka proses pemrograman akan menjadi singkat.

1. Mendefinisikan masalah. 
2. Mencari garis besar (outline) pemecahan masalah.
3. Menerjemahkan outline pemecahan masalah.
4. Menerjemahkan algoritma ke dalam bahasa pemrograman (coding).
5. Pengujian program (debugging).

Terdapat tiga kriteria program yang baik, yaitu benar (correct), jelas (clear) dan efisien (efficient). Kebenaran program harus dipenuhi oleh setiap program. Program yang baik akan jelas dan mudah dibaca dan dipahami. Jika terdapat beberapa alternative pemecahan masalah dalam program, program yang paling efisien adalah yang terbaik. Efisiensi program dapat terkait dengan waktu eksekusi dan ruang penyimpanan yang dibutuhkan.

Sumber : buku Dasar – dasar Algoritma dan Pemograman (BAB 1)








Adetya Pratiwi (D1041141048)

Algoritma dan Pemrograman

1. Definisi Algoritma

Secara bahasa algoritma berasal dari kata Algorism yang jika diartikan adalah proses menghitung dengan angka arab. Namun setelah dilakukan penelitian tentang asal kata tersebut, ditemukan bahwa kata algoritma berasal dari nama seorang penulis buku arab yang terkenal dan matematikawan yaitu Abu Ja’far Ibnu Musa Al-Khuwarizmi. Al-Khuwarizmi kemudian dibaca menjadi algorism.

Secara istilah algoritma dapat diartikan sebagai urutan-urutan, langkah-langkah, yang disusun secara sistematis dan logis untuk memecahkan suatu masalah tertentu. Logis merupakan hal terpenting dalam hal algoritma. Algoritma tersebut haruslah logis dan dapat ditentukan nilai kebenaran maupun kesalahannya.

2. Pertimbangan Dalam Membuat Algoritma

Ada beberapa hal penting yang harus dipertimbangkan dalam membuat algoritma. Dalam banyak konteks algoritma disebut sebagai spesifikasi dalam mengerjakan dan memecahkan suatu masalah tertentu. Karena itu dalam membuat algoritma tidak boleh asal-asalan.

Pertimbangan pertama adalah algoritma tersebut haruslah bernilai benar. Ini merupakan syarat mutlak yang harus dipenuhi dalam membuat suatu algoritma. Tidak perduli seberapa unik atau aman algoritma tersebut, tetapi jika bernilai salah maka akan memberikan hasil keluaran (output) yang salah pula.

Kedua adalah seberapa baik algoritma tersebut. Kita harus dapat mengetahui seberapa baik dan memuaskan hasil yang diperoleh algoritma tersebut. Hal ini penting terutama jika kita menggunakan algoritma untuk menyelesaikan masalah yang memerlukan pendekatan hasil. Algoritma kita akan dinilai efisien dan baik jika dapat memberikan hasil yang mendekati hasil nyata.

Ketiga adalah efisiensi algoritma tersebut. Efisiensi algoritma dapat dilihat dari 2 hal yaitu efisiensi waktu dan efisiensi memori. Jika algoritma kita memberikan hasil keluaran (output) yang mendekati hasil nyata tetapi memerlukan waktu yang relatif lama serta penyimpanan memori yang besar maka orang akan cenderung tidak memilih algoritma tersebut.

3. Algoritma dan Program

Jika diibaratkan, program dalam komputer adalah sekumpulan perintah-perintah ataupun pernyataan-pernyataan komputer. Sedangkan algoritma adalah cara-cara ataupun metode untuk menyelesaikan pernyataan atau perintah tersebut. Program dibuat dengan menggunakan bahasa pemrograman. Jadi program dapat dikatakan sebagai implementasi dari sebuah bahasa pemrograman itu sendiri. Banyak pakar serta ahli informatika berpendapat bahwa :

Program : Algoritma + Bahasa Pemrograman (Struktur Data)

Pembuatan algoritma sendiri mempunyai beberapa keuntungan, antara lain :

  1. Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrograman tertentu, artinya penulisan algoritma bersifat bebas dan independen pada bahasa pemrograman dan komputer itu sendiri
  2. Notasi algoritma bisa diterjemahkan ke dalam berbagai bahasa pemrograman karena algoritma tidak terikat pada bahasa pemrograman itu sendiri
  3. Hasil keluaran (output) yang dihasilkan akan selalu sama walaupun bahasa pemrogramannya berbeda dikarenakan algoritma yang dipakai sama.


4. Faktor-Faktor Yang Perlu Diperhatikan Dalam Membuat Algoritma

Terdapat beberapa hal yang perlu diperhatikan dalam membuat algoritma, yaitu :

  1. Teks algoritma berisi penggambaran langkah-langkah dalam menyelesaikan masalah. Deskripsi tersebut dapat ditulis dalam bentuk notasi apapun asalkan mudah untuk dipahami dan dimengerti
  2. Tidak terdapat notasi yang baku dalam menulis teks algoritma seperti dalam notasi pemrograman. Notasi yang digunakan dalam menulis algoritma disebut dengan notasi algoritmik.
  3. Setiap orang dapat membuat notasi algoritmik dan aturan penulisannya sendiri. Hal ini disebebkan teks algoritma berbeda dengan teks program. Tetapi agar teks algortimik mudah ditranslasikan ke dalam bahasa pemrograman tertentu, maka sebaikya dilakukan korespondensi terhadap notasi algoritmik tersebut terhadap bahasa pemrograman tertentu.
  4. Notasi algoritmik bukanlah notasi bahasa pemrograman, oleh karena itu pseudocode dalam notasi algoritmik tidak dapat berjalan oleh komputer. Supaya dapat berjalan di sebuah komputer, pseudocode dalam notasi algoritmik harus ditranlasikan ke dalam sebuah bahasa pemrograman yang dipilih. Kita perlu mengingat bahwa orang yang menulis program sangat terikat dalam aturan tata bahasanya dan spesifikasi komputer yang menjalankannya.
  5. Sebenarnya algoritma digunakan untuk dapat membantu kita dalam mengkonversikan sebuah permasalahan ke dalam suatu bahasa pemrograman agar dapat diselesaikan secara komputerisasi.
  6. Algoritma merupakan suatu hasil dari pemikiran konseptual, agar dapat dilaksanakan oleh komputer, algortima harus ditranslasikan ke dalam notasi bahasa pemrograman. Oleh karena itu, terdapat beberapa hal yang harus diperhatikan pada translasi tersebut,yaitu : 
a. Pendeklarasian Variabel
Guna mengetahui dibutuhkannya pendeklarasian variabel dalam penggunaan bahasa pemrograman apabila tidak semua bahasa pemrograman membutuhkannya.
b. Pemilihan Tipe Data
Bila bahasa pemrograman yang akan kita gunakan membutuhkan pendeklarasian variable maka tentu saja pemilihan tipe data perlu dipertimbangkan.
c. Pemakaian Insruksi-Instruksi
Terdapat beberapa instruksi-insturksi yang mempunyai kegunaan yang sama tetapi masing-masing memiliki kelebihan dan kekurangan yang berbeda.
d. Aturan Sintakis
Disaat menulis program kita terikat dengan aturan sintakis dalam bahasa program yang kita gunakan.
e. Tampilan Hasil
Disaat kita membuat algoritma, kita tidak memikirkan tampilan hasil yang akan ditunjukkan. Hal-hal teknis seperti ini diperhatikan ketika kita akan mengkonversikannya menjadi sebuah program.
f. Cara Pengoperasian Compiler atau Interpreter
Bahasa pemrograman yang kita pilih dan digunakan termasuk dalam kelompok compiler atau interpreter.
5. Algoritma Merupakan Jantung Ilmu Informatika

Jika diibaratkan ke dalam tubuh manusia, algoritma adalah jantung di dalam ilmu komputer dan informatika. Banyak sekali cabang dari ilmu komputer yang mengarah kepada terminologi algoritma. Namun, jangan berpikir bahwa algoritma selalu erat kaitannya dengan ilmu komputer saja. Dalam kehidupan kita sehari-hari pun sebenarnya banyak terdapat proses yang dinyatakan sebagai suatu algortima yang bahkan kita tidak sadari.

Contohnya adalah resep-resep membuat kue atau masakan. Resep ini juga dapat disebut sebagai sebuah algoritma karena pada resep terdapat urutan langkah-langkah yang logis untuk membuat suatu masakan yang terdapat pada resep tersebut.
Orang yang ingin membuat masakan atau kue yang terdapat dalam resep tersebut akan membaca setiap langkah-langkah yang terdapat dalam resep tersebut kemudian mengerjekan proses sesuai dengan yang ia baca.

Secara umumya, pihak yang mengerjakan proses disebut pemroses (processor). Pemroses ini dapat berupa manusia, komputer, robot, atau peralatan lainnya. Pemroses melakukan suatu proses dengan menjalankan atau mengeksekusi algoritma (metode) yang menjabarkan proses tersebut guna menyelesaian masalah.
Algoritma merupakan penggambaran dari suatu pola tingkah laku yang dinyatakan secara primitif yaitu berupa aksi-aksi yang didefenisikan sebelumnya dan diberi label (nama), dan diasumsikan bahwa aksi-aksi tersebut dapat dikerjakan sehingga dapat menyebabkan kejadian atau memecahkan sebuah masalah.

Mengeksekusi algoritma mempunyai arti mengerjakan langkah-langkah di dalam algoritma tersebut. Seorang pemroses mengerjakan langkah tersebut dengan algoritma yang diperolehnya. Seorang Chef  membuat kue berdasarkan dari resep yang diberikan kepadanya, gitaris memainkan lagu berdasarkan kunci gitarnya. Oleh karena itu suatu algoritma harus dinyatakan dalam bentuk yang dapat dimengerti oleh pemroses. Jadi suatu pemroses harus :
Mengerti setiap langkah yang terdapat didalam algoritma tersebut.
Mengerjakan operasi yang bersinergi dengan langkah tersebut.

Berikut merupakan suatu contoh algoritma dalam kehidupan sehari-hari :

Mengirim surat kepada teman:
Tulislah surat Anda pada sebuah kertas surat.
Ambilah sebuah amplop untuk surat tersebut.
Masukkan surat ke dalam amplop.
Tutuplah amlpol tersebut.
Jika ingat, tulislah alamat teman kita pada bagian depan amplop.
Jika tidak ingat, carilah alamat teman tersebut, kemudian tulis alamat surat di bagian depan amplop.
Jika ada, tempelah perangko pada sisi kanan atas amplop.
Jika tidak ada, belilah sebuah perangko di kantor pos kemudian tempelah perangko pada sisi kanan             atas amplop.
Pergilah ke kantor pos terdekat guna mengirimkan surat tersebut.

Sumber :

https://andikafisma.wordpress.com/algoritma-dan-pemrograman/

http://oc.its.ac.id/ambilfile.php?idp=2145

http://saepudin-ujangg.blogspot.com/2013/03/algoritma-pemrograman-tingkat-dasar.html


Nama : Syarif Ilyasha
NIM   : D1041141036

MENGENAL ALGORITMA DAN PEMROGRAMAN

A. Asal Usul Algoritma
     Ketika mencoba meneliti asal katanya, kata Algoritma mempunyai sejarah yang aneh. Orang hanya akan menemukan kata algorism yang berarti proses menghitung dengan menggunakan angka arab. Ahli sejarah matematika menemukan asal muasal kata tersebut yang berasal dari nama penulis buku berbahasa arab yang terkenal yaitu Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi. Nama Al-Khuwarizmi dibaca orang barat menjadi Algorism. Al-Khuwarizmi menulis buku yang berjudulkan Kitab Al Jabar Wal-Muqabala yang berarti “Buku pemugaran dan pengurangan” .

B. Definisi Algoritma dan Program
     Algoritma yaitu urutan langkah-langkah logis penyelesaian masalah yang tersusun secara sistematis dan harus logis. Kata logis merupakan inti dari algoritma. Langkah-langkah didalam algoritma haruslah logis dan dapat ditentukan nilainya benar atau salah. Dalam beberapa konteks, algoritma juga berarti spesifikasi urutan langkah untuk melakukan sebuah pekerjaan.
Sedang program merupakan serangkaian instruksi yang ditulis untuk melakukan suatu fungsi spesifik pada sebuah komputer. Komputer pada dasarnya membutuhkan keberadaan program agar bisa berjalan sesuai fungsinya, hal ini biasanya dilakukan dengan cara mengeksekusi serangkaian instruksi program tersebut pada prosesor komputer .
Beberapa pakar memberi formula bahwa :
Program = Algoritma + Bahasa (Struktur Data)
Bagaimanapun juga struktur data dan algoritma memiliki hubungan yang sangat erat pada sebuah program. Algoritma yang baik tetapi tanpa struktur data yang tepat akan membuat program jadi kurang baik, dan juga sebaliknya.

C. Algoritma Dalam Informatika
     Algoritma merupakan jantung ilmu komputer atau informatika. Ada banyak cabang ilmu komputer yang menjurus kepada terminologi algoritma. Namun, janganlah beranggapan bahwa algoritma hanya identik dengan ilmu komputer saja. Dalam kehidupan sehari-hari  kita pun banyak terdapat proses yang dinyatakan dalam suatu algoritma. Metode pembuatan sebuah kue atau masakan yang ada dalam sebuah resep juga dapat disebut sebagai sebuah algoritma. Pada setiap resep akan selalu ada urutan langkah-langkah membuat masakan. Apabila langkah-langkahnya tidak logis, masakan yang diinginkan pun tidak bisa dibuat. Kita akan membaca satu per satu langkah-langkah pembuatannya lalu mengerjakan prosesnya secara bertahap. Umumnya, pihak atau benda yang mengerjakan proses disebut pemroses (processor). Pemroses ini dapat berupa manusia, komputer, robot atau alat-alat lainnya. Pemroses melakukan sebuah proses dengan cara melaksanakan atau “mengeksekusi” algoritma yang menjabarkan proses tersebut.


D. Program dan Bahasa Pemrograman
     Memprogram tidaklah sama dengan bahasa pemrograman. Memprogram yaitu tentang metodologi pemecahan masalah dan kemudian menuangkannya dalam suatu notasi tertentu yang mudah dibaca dan dipahami. Sedangkan bahasa pemrograman yaitu berarti menggunakan suatu bahasa aturan-aturan tata bahasanya, pernyataannya, tata cara dalam mengoperasikan compiler-nya, dan juga memanfaatkan pernyataan-pernyataan tersebut untuk membuat program yang ditulis hanya dalam bahasa itu saja. Untuk saat ini terdapat puluhan bahasa pemrogram, diantaranya bahasa rakitan (assembly), Fortran, Cobol, PL/I, Ada, Algol, Pascal, C, C++, Basic, LISP, PRG, dan bahasa-bahasa simulasi yaitu CSMP, Simscript, Dinamo, GPSS.
Berdasarkan penerapannya bahasa dibagi menjadi 2 yaitu :
Bahasa pemrograman bertujuan khusus, yang termasuk kelompok ini yaitu Cobol (untuk terapan bisnis dan administrasi). Fortran (terapan komputasi ilmiah), bahasa rakitan (terapan pemrograman mesin), Prolog (terapan kecerdasan buatan), bahasa-bahasa simulasi, dsb.
Bahasa pemrograman bertujuan umum,yaitu bahasa pemrograman yang dapat digunakan untuk berbagai macam aplikasi.Bahasa pemrograman yang termasuk kelompok ini adalah bahasa Pascal, Basic dan C. Bahasa bahasa yang bertujuan khusus tidak berarti tidak bisa digunakan untuk aplikasi lain. Misalnya Cobol, dapat juga digunakan untuk terapan ilmiah, hanya saja kemampuannya terbatas. Pada intinya bahasa bahasa pemrograman yang berbeda dikembangkan untuk bermacam-macam terapan yang berbeda pula.
Selain dari penerapannya bahasa juga dibagi atas tingkatannya yaitu :
Bahasa tingkat rendah. Bahasa jenis ini dirancang agar setiap instruksinya langsung dikerjakan oleh komputer, tanpa harus melewati penerjemah (translator). Contohnya yaitu bahasa mesin. CPU akan mengambil instruksi dari memori, langsung mengerti dan akan langsung mengerjakan operasinya. Bahasa tingkat rendah bersifat sangat sederhana orientasinya lebih dekat ke mesin, dan sulit untuk dipahami oleh manusia. Sedangkan bahasa rakitan dimasukkan ke dalam kelompok ini karena alasan notasi yang dipakai dalam bahasa ini akan lebih dekat ke mesin, meski untuk melaksanakan instruksinya masih perlu penerjemahan ke dalam bahasa mesin.
Bahasa tingkat tinggi, bahasa ini membuat pemrograman lebih mudah dipahami, lebih “manusiawi”, dan berorientasi ke bahasa manusia (bahasa Inggris). Akan tetapi, program dalam bahasa tingkat tinggi belum dapat langsung dilaksanakan oleh komputer tetapi  ia perlu diterjemahkan terlebih dahulu oleh sebuah translator bahasa (yang disebut kompilator atau compiler) ke dalam bahasa mesin sebelum akhirnya akan dieksekusi oleh CPU. Berikut contoh bahasa tingkat tinggi adalah Pascal, PL/I, Cobol, Basic, Fortran, C,Ada, C++, dsb.

E. Penyajian Algoritma dan Nilainya
     Penyajian algoritma bisa dalam 2 bentuk penyajian yaitu dalam bentuk gambar dan tulisan. Algoritma yang disajikan dengan menggunakan tulisan yaitu dengan struktur bahasa tertentu (misalnya bahasa Indonesia atau bahasa Inggris) dan pseudocode. Pseudocode meupakan kode yang mirip dengan kode pemrograman yang sebenarnya seperti Pascal, atau C, sehingga akan lebih tepat digunakan untuk menggambarkan algoritma yang akan dikomunikasikan kepada pemrogram. Untuk algoritma yang disajikan dengan gambar, misalnya flowchart. Pada umumnya, pseudocode mengekspresikan ide-ide secara informal dalam proses penyusunan algoritma. Salah satu cara agar menghasilkan kode pseudo adalah dengan meregangkan aturan-aturan bahasa formal yang dengannya versi akhir dari algoritma akan diekspresikan. Pendekatan ini pada umumnya digunakan ketika bahasa pemrograman yang akan kita gunakan telah diketahui dari awal.
Selain itu agar programnya baik algoritmanya harus baik juga berikut beberapa persyaratan untuk menjadi algoritma yang baik adalah :

Tingkat kepercayaannya tinggi (realibility). Hasil yang didapatkan dari proses harus berakurasi tinggi dan benar.

Pemrosesan yang efisien . Proses harus diselesaikan secepat mungkin dan frekuensi kalkulasi yang sependek mungkin.

Sifatnya umum. Bukan sesuatu yang hanya untuk menyelesaikan satu kasus saja, tapi juga untuk kasus lain yang lebih umum.

Dapat dikembangkan (expandable). Harus merupakan sesuatu yang dapat kita kembangkan lebih jauh berdasarkan perubahan requirement yang ada.

Mudah dimengerti agar siapapun yang melihat, akan dapat memahami algoritma Anda.

Portabilitas yang tinggi . Bisa dengan mudah diimplementasikan di berbagai platform komputer.

Precise (tepat, betul, teliti). Setiap instruksi haruslah ditulis dengan seksama dan tidak boleh ada keragu-raguan, dengan demikian setiap instruksi harus dinyatakan secara eksplisit dan tidak ada bagian yang dihilangkan karena pemroses dianggap sudah mengerti

Jumlah langkah atau instruksinya berhingga dan tertentu. Artinya, untuk kasus-kasus yang sama banyaknya, langkah harus tetap dan tertentu meskipun datanya berbeda.

Efektif, yaitu Tidak boleh ada instruksi yang tidak mungkin dikerjakan oleh pemroses yang akan menjalankannya.


Harus terminate. Jalannya algoritma harus mempunyai kriteria berhenti.
Outputnya tepat. Apabila langkah-langkah algoritmanya logis dan diikuti dengan seksama maka dihasilkan output yang diinginkan.




Rizky Kurnaidi (D1041141054)







TEORI DASAR ALGORITMA DAN PEMROGRAMAN

TEORI DASAR ALGORITMA DAN PEMROGRAMAN



Definisi Algoritma :
Kata algoritma berasal dari kata “algoritmi”, pertama kali dicetuskan oleh Al-Khawarizmi, yang merupakan ilmuwan asal Persia. Pada awalnya algortima sendiri pertama kali digunakan untuk menyelesaikan soal aritmatika, tetapi dari zaman ke zaman algoritma digunakan untuk memecahkan masalah.
Algoritma tentunya memiliki hubungan dengan ilmu matematika, tentunya banyak pendapat dari para ahli mengenai algoritma.
•    Goodman Hedet Niemi mengatakan bahwa “algoritma adalah urut-urutan dari operasi-operasi yang terdefinisi dengan baik, yang masing-masing membutuhkan memori dan waktu yang terbatas untuk menyelesaikan suatu masalah”
•    Abu Ja’far Muhammad Ibnu Musa Al-Khawarizmi mengungkapkan “algoritma adalah suatu metode khusus untuk menyelesaikan suatu persoalan”
•    Menurut Seymur Lipschutz, P.hd “algoritma merupakan suatu langkah demi langkah yang terhingga dari instruksi-intruksi yang terdefinisikan dengan jelas yang dipakai untuk permasalahan tertentu.”
•    Menurut Minsky, algoritma adalah seperangkat aturan yang memberitahukan kepada kita dari waktu ke waktu, tepatnya bagaimana untuk bertindak.
•    Stone dan Knuth mengatakan bahwa algoritma adalah suatu perangkat yang tepat mendefinisikan urutan operasi hingga sedemikian rupa sehingga setiap aturan yang efektif, jelas hingga sedemikian rupa sehingga urutan berakhir dalam waktu yang terbatas.

Dari masing-masing pendapat yang dikemukan oleh para ahli, dapat kita simpulkan secara umum bahwa algoritma adalah suatu metode sistematis yang bersifat memiliki urutan-urutan yang digunakan untuk memecahkan masalah-masalah dan pengambilan keputusan.

Dalam penggunaan algoritma diperlukan beberapa petimbangan. Pertama adalah algoritma harus benar, yang berarti algoritma akan memberikan output yang sama dengan jumlah instruksi yang dimasukkan. Jika algoritma yang dimasukkan salah, maka salah juga outputnya.

Pertimbangan kedua adalah sejauh mana hasil keluaran dari algoritma yang dibuat, khususnya algoritma yang diperuntukkan yang memiliki output yang terdekat dengan hasil aslinya. Sebuah algoritma harus sebaik mungkin memiliki hasil yang dekat dengan hasil sebenarnya.

Yang ketiga adalah efisiensi dari algoritma, efisiensi ini dapat dilihat dari 2 konteks, yaitu kapasitas memori dan waktu. Walaupun sebuah algoritma memiliki hasil yang tepat bahkan mendekati, tetapi memerlukan waktu yang panjang untuk menunggu hasilnya, algoritma tersebut tidak akan dipakai, karena rang akan menggunakan algoritma yang keluaran yang cepat. Jika dikaitkan dengan kapasitas memori, jika memori yang dipakai terlalu banyak, maka algoritma tersebut kurang baik.

Semua orang dapat menyelesaikan masalah menggunakan algoritma dengan urutan-urutan yang berbeda-beda, yang terpenting adalah hasilnya sama.

Definisi Program :
Program jika didefinisikan secara umum dalam konteks teknologi informasi adalah aplikasi yang digunakan untuk menjalankan tugas, seperti aplikasi untuk mengerjakan dokumen, desain grafis, untuk perhitungan dan lain-lain. Tetapi jika didefinisikan secara detail, program merupakan sesuatu yang dibentuk dari pernyataan-pernyataan komputer, yang ditulis dengan bahasa pemrograman.
Dari definisi-definisi diatas, kita dapat menemukan hubungan antara algoritma dan program. Program dibuat dari bahasa pemrograman, sedangkan metode dengan tahapan yang sistematis disebut dengan algoritma. Jadi bisa dikatakan bahwa program adalah implementasi dari algoritma. Para ilmuwan memiliki rumus tentang hubungan antara algoritma dan program, yaitu :

STRUKTUR DATA + ALGORITMA = PROGRAM

Program tentunya memiliki keterkaitan dengan algoritma dan struktur data. Jika suatu algoritma itu memiliki susunan yang baik tetapi tanpa adanya struktur data yang baik, maka program yang dijalankan juga kurang efisien, begitu juga sebaliknya.
Ada beberapa hal yang perlu diperhatikan dalam pembuatan algoritma :

1.   Algoritma berisi urutan-urutan penyelesaian masalah, penulisan algoritma dapat digunakan dalam        notasi apapun dengan syarat dapat dimengerti.
2.   Tidak ada notasi tetap pada algoritma dalam bahasa pemrograman apapun, notasi algoritma tidak       memiliki pengaruh pada bahasa pemrograman. Komputer yang menjalankan algoritma.
3.   Algoritma adalah cara untuk mengkorversikan struktur penyelesaian masalah menjadi bahasa             pemrograman.
4.   Algoritma adalah hasil pemikiran yang bersifat konseptual, supaya komputer dapat                               melaksanakannya, algoritma harus diterjemahkan kedalam bahsa pemrograman.
5.  Notasi algoritmik bukanlah notasi bahasa pemrograman, karena itu pseudocode dalam notasi              algoritmik tidak dapat dibaca leh komputer.
6.  Setiap orang dapat membuat notasi algoritmanya sendiri. Karena teks algoritma tidak sama                  dengan teks program.

Algoritma tentunya berkaitan dengan ilmu komputer, tetapi tidak hanya itu. Algoritma juga berkaitan dengan hal-hal yang ada di kehidupan kita sehari-hari. Langkah-langkah dalam membuat kue juga diakatakan sebagai algoritma, karena memiliki urutan atau tahapnya sendiri. Jika langkah-langkah tersebut bahkan ada salah satu langkah yang tidak logis, maka kue tersebut juga tidak akan sempurna.

Komputer adalah salah satu dari pemroses. Algoritma harus ditranslasikan ke dalam bahasa pemrograman terlebih dahulu agar menjadi program agar dapat dibaca oleh komputer. Dapat dikatakan bahwa program adalah perwujudan atau implementasi teknis dari susunan algoritma yang dibaca melalui bahasa pemrograman.

Program ditulis dengan bahasa pemrograman, proses penulisan ini dinamakan pemrograman (programming), sedangkan pelaku dari pemrograman ini disebut pemrogram (programmer). Urutan-urutan langakah dalam program disebut instruksi atau pernyataan.

Secara umum, bagian-bagian pada komputer dibagi menjadi 4 bagian; pemroses utama, piranti input, piranti output, dan memori. Pemroses utama (Central Processing Unit) adalah komponen komputer yang melaksanakan tugas untuk melakukan operasi-operasi dasar pada komputer seperti, menghitung data, membaca, membandingkan, serta menulis data. Memori adalah perangkat yang berfungsi menyimpan komponen-komponen dalam komputer, di memori inilah program dapat disimpan serta data ataupun informasi. Alat output dan input adalah piranti yang digunakan untuk menghubungkan atau mengkomunikasikan data yang dihasilkan dan dimasukkannya. Contoh alat input  seperti keyboard, mouse, trackpad, scanner,  dan cakram (disk). Sedangkan contoh alat output seperti monitor, speaker, pencetak (printer).

Komponen-kompnen utama dalam komputer ini memiliki kesinambungan yang erat, jika tidak maka operasi yang ada pada komputer tidak mungkin berjalan dengan semestinya. Hubungan dari ke empat komponen ini dapat diskemakan sebagai berikut :








Mekanisme kerja keempat komponen diatas dapat dijelaskan sebagai berikut. Pertama, program disimpan dalam memori. Kemudian ketika program akan dijalankan (execute), memori akan mengirim instruksi-intruksi program ke dalam CPU.  Ketika dalam pengoperasian sebuah program memerlukan data, maka data akan dimasukkan melalui alat input. Jika operasi mengeluarkan hasil, maka hasil akan disimpan di dalam memori dan dilihat melalui alat output.




Ditulis oleh :
Faz Faidhani (D1041141018)