{"id":107,"date":"2020-07-03T13:13:53","date_gmt":"2020-07-03T06:13:53","guid":{"rendered":"http:\/\/materi.smkn43jkt.sch.id\/?p=107"},"modified":"2020-07-03T13:34:29","modified_gmt":"2020-07-03T06:34:29","slug":"algoritma-dan-pemrograman","status":"publish","type":"post","link":"http:\/\/materi.smkn43jkt.sch.id\/?p=107","title":{"rendered":"Algoritma dan Pemrograman"},"content":{"rendered":"<p>1.1 Algortima dan pemrograman Dasar<\/p>\n<p>Perangko dari Rusia pada Gambar di samping ini bergambar seorang pria dengan nama Muhammad bin Musa al-Khwarizmi. Bagi kalian yang sedang berkecimpung dalam dunia komputer maka seharusnya mengetahui siapa orang di samping ini. Dia adalah seorang ilmuwan Islam yang karya karyanya dalam bidang matematika, astronomi, astrologi dan geografi banyak menjadi dasar perkembangan ilmu modern. Dan dari namanya istilah yang akan kita pelajari dalam bab ini muncul. Dari Al-Khawarizmi kemudian\u00a0 berubah menjadi algorithm dalam Bahasa Inggris dan diterjemahkan menjadi algoritma dalam bahasa Indonesia.<\/p>\n<p>1.2 Definisi Algortima<\/p>\n<p>Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis.<\/p>\n<p>Algoritma yang dapat menyelesaikan suatu permasalahan dalam waktu yang singkat memiliki tingkat kerumitan yang rendah, sementara algoritma yang membutuhkan waktu lama untuk menyelesaikan suatu masalah membutuhkan tingkat kerumitan yang tinggi.<\/p>\n<p>1.3 Struktur Algortima Perhatikan algoritma sederhana berikut :<\/p>\n<p>Jika seseorang ingin mengirim surat kepada kenalannya di tempat lain, langkah yang harus dilakukan adalah:<\/p>\n<ol>\n<li>Menyiapkan Peralatan Tulis<\/li>\n<li>Menulis surat<\/li>\n<li>Surat dimasukkan ke dalam amplop tertutup<\/li>\n<li>Amplop ditempeli perangko secukupnya.<\/li>\n<li>Pergi ke Kantor Pos terdekat untuk mengirimkannya<\/li>\n<\/ol>\n<p>Algoritma menghitung luas persegi panjang:<\/p>\n<ol>\n<li>Masukkan panjang (P)<\/li>\n<li>Masukkan lebar (L)<\/li>\n<li>Luas P * L<\/li>\n<li>Tulis Luas<\/li>\n<\/ol>\n<p>Pembuatan algoritma mempunyai banyak keuntungan di antaranya:<\/p>\n<ol>\n<li>a) Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrograman manapun, artinya penulisan algoritma independen dari bahasa pemrograman dan komputer yang melaksanakannya.<\/li>\n<li>b) Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.<\/li>\n<li>c) Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karena algoritmanya sama.<\/li>\n<\/ol>\n<p>Beberapa hal yang perlu diperhatikan dalam membuat algoritma:<\/p>\n<ol>\n<li>a) Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah.Deskripsi tersebut dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan dipahami.<\/li>\n<li>b) Tidak ada notasi yang baku dalam penulisan teks algoritma seperti notasi bahasa pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi algoritmik.<\/li>\n<li>c) 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.<\/li>\n<li>d) 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. Pseudocode adalah kode yang mirip dengan instruksi kode program sebenarnya.<\/li>\n<li>e) Algoritma sebenarnya digunakan untuk membantu kita dalam mengkonversikan suatu permasalahan ke dalam bahasa pemrograman.<\/li>\n<li>f) Algoritma merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh komputer, algoritma harus ditranslasikan ke dalam notasi bahasa pemrograman<\/li>\n<\/ol>\n<p>Perhatikan algoritma sederhana berikut :<\/p>\n<p>Algoritma menghitung luas segitiga<\/p>\n<ol>\n<li>Start<\/li>\n<li>Baca data alas dan tinggi.<\/li>\n<li>Luas adalah alas kali tinggi kali 0.5<\/li>\n<li>Tampilkan Luas<\/li>\n<li>Stop<\/li>\n<\/ol>\n<p>Penjelasan : Algoritma di atas adalah algoritma yang sangat sederhana, hanya ada lima langkah. Pada algoritma ini tidak dijumpai perulangan ataupun pemilihan. Semua langkah dilakukan hanya satu kali. Sekilas algoritma di atas benar, namun apabila dicermati maka algoritma ini mengandung kesalahan yang mendasar, yaitu tidak ada pembatasan pada nilai data untuk alas dan tinggi.<\/p>\n<p>Hasil perbaikan algoritma perhitungan luas segitiga<\/p>\n<ol>\n<li>Start<\/li>\n<li>Baca data alas dan tinggi.<\/li>\n<li>Periksa data alas dan tinggi, jika nilai data alas dan tinggi lebih besar dari nol maka lanjutkan ke langkah ke 4 jika tidak maka stop<\/li>\n<li>Luas adalah alas kali tinggi kali 0.5<\/li>\n<li>Tampilkan Luas<\/li>\n<li>Stop<\/li>\n<\/ol>\n<p>Dari penjelasan di atas dapat diambil kesimpulan pokok tentang algoritma. Pertama, algoritma harus benar. Kedua algoritma harus berhenti, dan setelah berhenti, algoritma memberikan hasil yang benar.<\/p>\n<p>Contoh : Algoritma Berangkat Sekolah Mulai Bangun dari tempat tidur Mandi Pagi Sarapan Pagi Pergi Ke Sekolah Cari Ruang Kelas Masuk kelas untuk Belajar Selesai<\/p>\n<p>Beda Algoritma dan Program ? Program adalah kumpulan pernyataan komputer, sedangkan metode dan tahapan sistematis dalam program adalah algoritma. Program ditulis dengan menggunakanbahasa pemrograman. Jadi bisa disebut bahwa program adalah suatu implementasi dari bahasa pemrograman.<\/p>\n<p>Program = Algoritma + Bahasa (Struktur Data)<\/p>\n<p>Penerjemah Bahasa Pemrograman Untuk menterjemahkan bahasa pemrograman yang kita tulis maka diperlukan Compiler dan interpreter.<\/p>\n<p>Compiler adalah suatu program yang menterjemahkan bahasa program (Source code) ke dalam bahasa obyek (object code) secara keseluruhan program.<\/p>\n<p>Interpreter berbeda dengan Compiler, interpreter menganalisis dan mengeksekusi setiap baris dari program secara keseluruhan. Keuntungan dari interpreter adalah dalam eksekusi yang bisa dilakukan dengan segera. Tanpa melalui tahap kompilasi, untuk alas an ini interpreter digunakan pada saat pembuatan program berskala besar.<\/p>\n<p>Perbedaan Compiler dan interpreter. Compiler Interpreter Menterjemahkan secara keseluruhan Menterjemahkan Instruksi per instruksi Bila terjadi kesalahan kompilasi maka source program harus diperbaiki dan dikompilasi ulang Bila terjadi kesalahan interprestasi dapat Diperbaiki Dihasilkan Object program Tidak dihasilkan obyek program Dihasilkan Executable program Tidak dihasilkan Executable program Proses pekerjaan program lebih cepat Proses pekerjaan program lebih lambat Source program tidak dipergunakan hanya bila untuk perbaikan saja Source program terus dipergunakan Keamanan dari program lebih terjamin Keamanan dari program kurang terjamin<\/p>\n<p>1.4 Jenis-Jenis Bahasa Pemrograman \uf0b7 Bahasa Pemrograman Tingkat rendah (Bahasa mesin, Biner) \uf0b7 Bahasa Pemrograman Tingkat tinggi<\/p>\n<p>Contoh-contoh Bahasa Pemrograman yang ada :<\/p>\n<ol>\n<li>Prosedural : Algol, Pascal, Fortran, Basic, Cobol, C<\/li>\n<li>Fungsional : LOGO, APL, LISP<\/li>\n<li>Deklaratif : Prolog Object oriented murni: Smalltalk, Eifel, Java, PHP<\/li>\n<\/ol>\n<p>Cara penulisan algortima Ada tiga cara penulisan algoritma, yaitu :<\/p>\n<ol>\n<li>Structured English (SE) SE merupakan alat yang cukup baik untuk menggambarkan suatu algoritma. Dasar dari SE adalah Bahasa Inggris, namun kita dapat memodifikasi dengan Bahasa Indonesia sehingga kita boleh menyebutnya sebagai Structured Indonesian (SI).<\/li>\n<\/ol>\n<p>\u201dSE atau SI lebih tepat untuk menggambarkan suatu algoritma yang akan dikomunikasikan kepada pemakai perangkat lunak\u201d<\/p>\n<ol start=\"2\">\n<li>Pseudocode Pseudocode adalah kode yang mirip dengan instruksi kode program sebenarnya. Pseudocode didasarkan pada bahasa pemrograman yang sesungguhnya seperti BASIC,<\/li>\n<\/ol>\n<p>FORTRAN atau PASCAL. Pseudocode yang berbasis bahasa PASCAL merupakan pseudocode yang sering digunakan. \u201cPseudo berarti imitasi atau tiruan atau menyerupai, sedangkan code menunjuk pada kode program\u201d Contoh Pseudocode :<\/p>\n<ol>\n<li>Start<\/li>\n<li>READ alas, tinggi<\/li>\n<li>Luas = 0.5 * alas * tinggi<\/li>\n<li>PRINT Luas<\/li>\n<li>Stop<\/li>\n<\/ol>\n<p>Pada Contoh diatas tampak bahwa algoritma sudah sangat mirip dengan bahasa BASIC. Pernyataan seperti READ dan PRINT merupakan keyword yang ada pada bahasa BASIC yang masing-masing menggantikan kata \u201cbaca data\u201d dan \u201ctampilkan\u201d. Dengan menggunakan pseudocode seperti di atas maka proses penterjemahan dari algoritma ke kode program menjadi lebih mudah.<\/p>\n<p>rusnya sampai nilai variabel A tidak lagi memenuhi syarat kurang dari 10.<\/p>\n<p>1.5 Membuat Alur Logika Pemograman<br \/>\nA. Penyajian atau Penulisan Algoritma<br \/>\nPenyajian algoritma secara garis besar bisa dalam 2 bentuk penyajian yaitu tulisan dan<br \/>\ngambar. Algoritma yang disajikan dengan tulisan yaitu dengan struktur bahasa tertentu<br \/>\n(misalnya bahasa Indonesia atau bahasa Inggris) dan pseudocode.<br \/>\nPseudocode adalah kode yang mirip dengan kode pemrograman yang sebenarnya seperti<br \/>\nPascal, atau C, sehingga lebih tepat digunakan untuk menggambarkan algoritma yang akan<br \/>\ndikomunikasikan kepada pemrogram. Sedangkan algoritma disajikan dengan gambar, yaitu<br \/>\ndengan Flowchart<br \/>\nB. Flowchart (Diagram Alir)<br \/>\nFlowchart atau bagan alir adalah skema\/bagan (chart) yang menunjukkan aliran (flow) di<br \/>\ndalam suatu program secara logika.<br \/>\nFlowchart merupakan alat yang banyak digunakan untuk menggambarkan algoritma dalam<br \/>\nbentuk notasi-notasi tertentu. Flowchart merupakan gambar atau bagan yang<br \/>\nmemperlihatkan urutan dan hubungan antar proses beserta pernyataannya. Gambaran ini<br \/>\ndinyatakan dengan simbol. Dengan demikian setiap simbol menggambarkan proses<br \/>\ntertentu. Sedangkan antara proses digambarkan dengan garis penghubung. Dengan<br \/>\nmenggunakan flowchart akan memudahkan kita untuk melakukan pengecekan bagianbagian<br \/>\nyang terlupakan dalam analisis masalah. Di samping itu flowchart juga berguna<br \/>\nsebagai fasilitas untuk berkomunikasi antara pemrogram yang bekerja dalam tim suatu<br \/>\nproyek.<br \/>\nWalaupun tidak ada kaidah-kaidah yang baku dalam penyusunan flowchart, namun ada<br \/>\nbeberapa anjuran:<br \/>\n1) Hindari pengulangan proses yang tidak perlu dan logika yang berbelit sehingga<br \/>\njalannya proses menjadi singkat.<br \/>\n2) Jalannya proses digambarkan dari atas ke bawah dan diberikan tanda panah untuk<br \/>\nmemperjelas.<br \/>\n3) Sebuah flowchart diawali dari satu titik START dan diakhiri dengan END.<br \/>\nBerikut merupakan beberapa contoh simbol flowchart yang disepakati oleh dunia<br \/>\npemrograman:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-medium wp-image-110\" src=\"http:\/\/materi.smkn43jkt.sch.id\/wp-content\/uploads\/2020\/07\/Algoritma-dan-Pemrograman-JPG-227x300.jpg\" alt=\"\" width=\"227\" height=\"300\" srcset=\"http:\/\/materi.smkn43jkt.sch.id\/wp-content\/uploads\/2020\/07\/Algoritma-dan-Pemrograman-JPG-227x300.jpg 227w, http:\/\/materi.smkn43jkt.sch.id\/wp-content\/uploads\/2020\/07\/Algoritma-dan-Pemrograman-JPG.jpg 366w\" sizes=\"(max-width: 227px) 100vw, 227px\" \/><\/p>\n<p>Penjelasan lebih lanjut :<br \/>\nSimbol-simbol bagan alir program (Flowchart)<\/p>\n<ol>\n<li><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-112\" src=\"http:\/\/materi.smkn43jkt.sch.id\/wp-content\/uploads\/2020\/07\/1.jpg\" alt=\"\" width=\"157\" height=\"67\" \/> Notasi Membuat algoritma sederhana untuk menyelesaikan<br \/>\npermasalahan menggunakan bahasa natural, flowchart dan pseudocode.<\/li>\n<li><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-113\" src=\"http:\/\/materi.smkn43jkt.sch.id\/wp-content\/uploads\/2020\/07\/2.jpg\" alt=\"\" width=\"169\" height=\"80\" \/> Notasi ini disebut Data yang digunakan untuk mewakili data input<br \/>\natau output atau menyatakan operasi pemasukan data dan pencetakan hasil.<\/li>\n<li><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-114\" src=\"http:\/\/materi.smkn43jkt.sch.id\/wp-content\/uploads\/2020\/07\/3.jpg\" alt=\"\" width=\"154\" height=\"74\" \/> Notasi ini disebut Process yang digunakan untuk mewakili suatu<br \/>\nproses.<\/li>\n<li><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-115\" src=\"http:\/\/materi.smkn43jkt.sch.id\/wp-content\/uploads\/2020\/07\/4.jpg\" alt=\"\" width=\"155\" height=\"93\" \/> Notasi ini disebut Decision yang digunakan untuk suatu pemilihan,<br \/>\npenyeleksian kondisi di dalam suatu program.<\/li>\n<li><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-116\" src=\"http:\/\/materi.smkn43jkt.sch.id\/wp-content\/uploads\/2020\/07\/5.jpg\" alt=\"\" width=\"163\" height=\"83\" \/> Notasi ini disebut Preparation yang digunakan untuk memberi nilai<br \/>\nawal, nilai akhir, penambahan\/pengurangan bagi suatu variabel counter.<\/li>\n<li><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-117\" src=\"http:\/\/materi.smkn43jkt.sch.id\/wp-content\/uploads\/2020\/07\/6.jpg\" alt=\"\" width=\"161\" height=\"81\" \/> Notasi ini disebut Predefined Process yang digunakan untuk<br \/>\nmenunjukkan suatu operasi yang rinciannya ditunjukkan ditempat lain (prosedur, subprosedur,<br \/>\nfungsi).<\/li>\n<li><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-118\" src=\"http:\/\/materi.smkn43jkt.sch.id\/wp-content\/uploads\/2020\/07\/7.jpg\" alt=\"\" width=\"54\" height=\"53\" \/> Notasi ini disebut Connector yang digunakan untuk menunjukkan sambungan dari<br \/>\nflowchart yang terputus di halaman yang sama atau halaman berikutnya.<\/li>\n<li><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-119\" src=\"http:\/\/materi.smkn43jkt.sch.id\/wp-content\/uploads\/2020\/07\/8.jpg\" alt=\"\" width=\"16\" height=\"54\" \/> Notasi ini disebut Arrow yang digunakan untuk menunjukkan arus data atau aliran<br \/>\ndata dari proses satu ke proses lainnya.<\/li>\n<\/ol>\n<p>Contoh program Flowchart<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-medium wp-image-120\" src=\"http:\/\/materi.smkn43jkt.sch.id\/wp-content\/uploads\/2020\/07\/9-122x300.jpg\" alt=\"\" width=\"122\" height=\"300\" srcset=\"http:\/\/materi.smkn43jkt.sch.id\/wp-content\/uploads\/2020\/07\/9-122x300.jpg 122w, http:\/\/materi.smkn43jkt.sch.id\/wp-content\/uploads\/2020\/07\/9.jpg 192w\" sizes=\"(max-width: 122px) 100vw, 122px\" \/>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-medium wp-image-121\" src=\"http:\/\/materi.smkn43jkt.sch.id\/wp-content\/uploads\/2020\/07\/10-88x300.jpg\" alt=\"\" width=\"88\" height=\"300\" srcset=\"http:\/\/materi.smkn43jkt.sch.id\/wp-content\/uploads\/2020\/07\/10-88x300.jpg 88w, http:\/\/materi.smkn43jkt.sch.id\/wp-content\/uploads\/2020\/07\/10.jpg 140w\" sizes=\"(max-width: 88px) 100vw, 88px\" \/><\/p>\n<p>Bagan alir logika program\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 Bagan alir program komputer terinci<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>1.1 Algortima dan pemrograman Dasar Perangko dari Rusia pada Gambar di samping ini bergambar seorang pria dengan nama Muhammad bin Musa al-Khwarizmi. Bagi kalian yang sedang berkecimpung dalam dunia komputer maka seharusnya mengetahui siapa orang di samping ini. Dia adalah seorang ilmuwan Islam yang karya karyanya dalam bidang matematika, astronomi, astrologi dan geografi banyak menjadi [&hellip;]<\/p>\n","protected":false},"author":19,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[35],"tags":[],"_links":{"self":[{"href":"http:\/\/materi.smkn43jkt.sch.id\/index.php?rest_route=\/wp\/v2\/posts\/107"}],"collection":[{"href":"http:\/\/materi.smkn43jkt.sch.id\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/materi.smkn43jkt.sch.id\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/materi.smkn43jkt.sch.id\/index.php?rest_route=\/wp\/v2\/users\/19"}],"replies":[{"embeddable":true,"href":"http:\/\/materi.smkn43jkt.sch.id\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=107"}],"version-history":[{"count":3,"href":"http:\/\/materi.smkn43jkt.sch.id\/index.php?rest_route=\/wp\/v2\/posts\/107\/revisions"}],"predecessor-version":[{"id":122,"href":"http:\/\/materi.smkn43jkt.sch.id\/index.php?rest_route=\/wp\/v2\/posts\/107\/revisions\/122"}],"wp:attachment":[{"href":"http:\/\/materi.smkn43jkt.sch.id\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=107"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/materi.smkn43jkt.sch.id\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=107"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/materi.smkn43jkt.sch.id\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=107"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}