{"id":32317,"date":"2025-07-05T20:45:38","date_gmt":"2025-07-05T13:45:38","guid":{"rendered":"https:\/\/dte.telkomuniversity.ac.id\/?p=32317"},"modified":"2025-07-05T20:45:39","modified_gmt":"2025-07-05T13:45:39","slug":"algoritma-dan-logika-dasar-pemrograman","status":"publish","type":"post","link":"https:\/\/dte.telkomuniversity.ac.id\/en\/algoritma-dan-logika-dasar-pemrograman\/","title":{"rendered":"Algoritma dan Logika Dasar Pemrograman"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.google.com\/imgres?q=algoritma%20pemrograman&amp;imgurl=https%3A%2F%2Fdocif.telkomuniversity.ac.id%2Fposaqoq%2F2024%2F12%2Fimages.jpeg&amp;imgrefurl=https%3A%2F%2Fdocif.telkomuniversity.ac.id%2Fapa-itu-algoritma-pemrograman%2F&amp;docid=MBNtdksv2NrPkM&amp;tbnid=U71dRzMur1yTiM&amp;vet=12ahUKEwjR5d7E7aWOAxW6SmwGHeNpMIwQM3oECBgQAA..i&amp;w=290&amp;h=174&amp;hcb=2&amp;ved=2ahUKEwjR5d7E7aWOAxW6SmwGHeNpMIwQM3oECBgQAA\"><img fetchpriority=\"high\" decoding=\"async\" width=\"290\" height=\"174\" src=\"https:\/\/b581640.smushcdn.com\/581640\/wp-content\/uploads\/2025\/07\/image-34.png?lossy=1&strip=1&webp=1\" alt=\"\" class=\"wp-image-32318\" srcset=\"https:\/\/b581640.smushcdn.com\/581640\/wp-content\/uploads\/2025\/07\/image-34.png?lossy=1&strip=1&webp=1 290w, https:\/\/b581640.smushcdn.com\/581640\/wp-content\/uploads\/2025\/07\/image-34-255x153.png?lossy=1&strip=1&webp=1 255w\" sizes=\"(max-width: 290px) 100vw, 290px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>1. Pendahuluan<\/strong><\/h2>\n\n\n\n<p>Pemrograman komputer bukan sekadar menulis sintaks atau memahami bahasa pemrograman. Salah satu elemen paling krusial dalam proses pengembangan perangkat lunak adalah kemampuan untuk <strong>menyusun algoritma dan logika yang tepat<\/strong>. Algoritma dan logika dasar menjadi jantung dari setiap program, memungkinkan komputer untuk menyelesaikan permasalahan secara efisien dan sistematis.<\/p>\n\n\n\n<p>Dalam artikel ini, kita akan membahas definisi algoritma, komponen logika dasar, contoh algoritma sederhana, dan bagaimana keterampilan ini membentuk fondasi dari seluruh proses pemrograman.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>2. Pengertian Algoritma<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2.1 Definisi Algoritma<\/strong><\/h3>\n\n\n\n<p>Algoritma adalah serangkaian langkah atau instruksi logis yang digunakan untuk menyelesaikan suatu permasalahan secara sistematis. Setiap algoritma harus memiliki:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Input<\/strong>: data yang diperlukan untuk diproses.<\/li>\n\n\n\n<li><strong>Proses<\/strong>: langkah-langkah logis.<\/li>\n\n\n\n<li><strong>Output<\/strong>: hasil akhir dari proses.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2.2 Ciri-ciri Algoritma yang Baik<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Jelas dan tidak ambigu<\/strong><\/li>\n\n\n\n<li><strong>Terbatas (finite)<\/strong>: memiliki akhir.<\/li>\n\n\n\n<li><strong>Efisien<\/strong>: waktu dan ruang yang optimal.<\/li>\n\n\n\n<li><strong>Dapat diimplementasikan<\/strong>: dapat dijalankan oleh komputer.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>3. Logika Dasar dalam Pemrograman<\/strong><\/h2>\n\n\n\n<p>Logika pemrograman mengacu pada kemampuan menyusun perintah secara logis dan terstruktur untuk mencapai tujuan tertentu. Elemen logika dasar meliputi:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3.1 Operasi Logika<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>AND (<code>&amp;&amp;<\/code>)<\/li>\n\n\n\n<li>OR (<code>||<\/code>)<\/li>\n\n\n\n<li>NOT (<code>!<\/code>)<\/li>\n<\/ul>\n\n\n\n<p>Contoh:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>if nilai &gt;= 80 and nilai &lt;= 100:\n    print(\"Nilai A\")\n\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3.2 Percabangan<\/strong><\/h3>\n\n\n\n<p>Memungkinkan program untuk membuat keputusan.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\nif umur &gt;= 17:\n    print(\"Dewasa\")\nelse:\n    print(\"Anak-anak\")\n\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3.3 Perulangan<\/strong><\/h3>\n\n\n\n<p>Digunakan untuk menjalankan perintah berulang.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>for<\/code> loop<\/li>\n\n\n\n<li><code>while<\/code> loop<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>for i in range(5):\n    print(i)\n\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3.4 Variabel dan Tipe Data<\/strong><\/h3>\n\n\n\n<p>Logika juga bergantung pada pemahaman struktur data dasar, seperti variabel, integer, float, string, dan boolean.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>4. Struktur Algoritma<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>4.1 Pseudocode<\/strong><\/h3>\n\n\n\n<p>Pseudocode adalah cara menuliskan algoritma dalam bentuk narasi terstruktur, tanpa mengikuti aturan sintaks bahasa pemrograman tertentu.<\/p>\n\n\n\n<p>Contoh:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\nAlgoritma Penjumlahan\nInput: dua angka A dan B\nOutput: jumlah A + B\n\nLangkah:\n1. Baca A dan B\n2. Jumlahkan A dan B\n3. Tampilkan hasil\n\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>4.2 Flowchart<\/strong><\/h3>\n\n\n\n<p>Representasi grafis algoritma dengan simbol:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Persegi panjang<\/strong>: proses<\/li>\n\n\n\n<li><strong>Jajar genjang<\/strong>: input\/output<\/li>\n\n\n\n<li><strong>Belah ketupat<\/strong>: keputusan<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>5. Contoh Algoritma Sederhana<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>5.1 Algoritma Penentu Bilangan Ganjil atau Genap<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>angka = int(input(\"Masukkan angka: \"))\nif angka % 2 == 0:\n    print(\"Genap\")\nelse:\n    print(\"Ganjil\")\n\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>5.2 Algoritma Menghitung Faktorial<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>n = int(input(\"Masukkan angka: \"))\nfaktorial = 1\nfor i in range(1, n + 1):\n    faktorial *= i\nprint(\"Hasil:\", faktorial)\n\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>6. Analisis Algoritma<\/strong><\/h2>\n\n\n\n<p>Analisis algoritma penting untuk mengetahui seberapa efisien suatu solusi. Dua parameter utama:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Kompleksitas Waktu (Time Complexity)<\/strong>: jumlah langkah yang dibutuhkan (notasi Big-O).<\/li>\n\n\n\n<li><strong>Kompleksitas Ruang (Space Complexity)<\/strong>: memori yang digunakan.<\/li>\n<\/ul>\n\n\n\n<p>Contoh:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Algoritma pencarian linear: <code>O(n)<\/code><\/li>\n\n\n\n<li>Algoritma pencarian biner: <code>O(log n)<\/code><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>7. Latihan Logika Pemrograman<\/strong><\/h2>\n\n\n\n<p>Berikut contoh latihan logika yang sering muncul di platform seperti HackerRank dan LeetCode:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Menentukan bilangan prima<\/li>\n\n\n\n<li>Membalik string atau angka<\/li>\n\n\n\n<li>Menentukan nilai maksimum\/minimum dari daftar<\/li>\n\n\n\n<li>Menentukan jumlah digit dalam bilangan<\/li>\n<\/ul>\n\n\n\n<p>Contoh soal: Buat program untuk menentukan apakah suatu bilangan adalah palindrome.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>n = input(\"Masukkan angka: \")\nif n == n&#091;::-1]:\n    print(\"Palindrome\")\nelse:\n    print(\"Bukan Palindrome\")\n\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>8. Teknik Pengembangan Algoritma<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>8.1 Divide and Conquer<\/strong><\/h3>\n\n\n\n<p>Membagi masalah besar menjadi masalah kecil yang lebih mudah.<\/p>\n\n\n\n<p>Contoh: Merge Sort<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>8.2 Greedy Algorithm<\/strong><\/h3>\n\n\n\n<p>Memilih solusi terbaik lokal di setiap langkah.<\/p>\n\n\n\n<p>Contoh: algoritma pencarian koin minimum<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>8.3 Dynamic Programming<\/strong><\/h3>\n\n\n\n<p>Menghindari perhitungan ulang dengan menyimpan hasil sebelumnya (memoization).<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>9. Kesalahan Umum dalam Menyusun Algoritma<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Kurang memperhitungkan kasus ekstrem.<\/li>\n\n\n\n<li>Tidak menangani kondisi batas (edge cases).<\/li>\n\n\n\n<li>Tidak mempertimbangkan efisiensi.<\/li>\n\n\n\n<li>Terlalu fokus pada sintaks daripada logika.<\/li>\n<\/ul>\n\n\n\n<p>Solusi:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Buat flowchart terlebih dahulu.<\/li>\n\n\n\n<li>Lakukan dry-run (menjalankan algoritma di atas kertas).<\/li>\n\n\n\n<li>Uji algoritma dengan berbagai input.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>10. Algoritma dalam Kehidupan Nyata<\/strong><\/h2>\n\n\n\n<p>Algoritma digunakan dalam berbagai aspek kehidupan:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Algoritma pencarian di Google.<\/li>\n\n\n\n<li>Algoritma rekomendasi di Netflix atau YouTube.<\/li>\n\n\n\n<li>Algoritma kriptografi dalam keamanan data.<\/li>\n\n\n\n<li>Algoritma kontrol lalu lintas dan navigasi GPS.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>11. Pentingnya Belajar Algoritma<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Dasar dalam menyelesaikan soal coding<\/strong><\/li>\n\n\n\n<li><strong>Fondasi dalam pemrograman kompetitif<\/strong><\/li>\n\n\n\n<li><strong>Diperlukan dalam wawancara kerja teknis<\/strong><\/li>\n\n\n\n<li><strong>Kunci memahami struktur data dan AI<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Belajar algoritma mengajarkan <strong>pemecahan masalah<\/strong>, <strong>pola pikir logis<\/strong>, dan <strong>analisis kompleksitas<\/strong>, keterampilan yang sangat dibutuhkan dalam semua aspek pengembangan perangkat lunak.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>12. Kesimpulan<\/strong><\/h2>\n\n\n\n<p>Pemahaman algoritma dan logika dasar pemrograman adalah fondasi penting dalam dunia pengembangan perangkat lunak. Dengan menguasai konsep ini, seorang programmer dapat membangun solusi yang lebih efisien, andal, dan mudah dipelihara. Latihan rutin, penyelesaian masalah nyata, dan pemahaman konsep dasar akan membuat kemampuan algoritmik semakin matang.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Referensi<\/strong><\/h2>\n\n\n\n<p>[1] T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein, <em>Introduction to Algorithms<\/em>, 3rd ed., MIT Press, 2009.<\/p>\n\n\n\n<p>[2] R. Sedgewick and K. Wayne, <em>Algorithms<\/em>, 4th ed., Addison-Wesley, 2011.<\/p>\n\n\n\n<p>[3] G. Brassard and P. Bratley, <em>Fundamentals of Algorithmics<\/em>, Prentice Hall, 1996.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. Pendahuluan Pemrograman komputer bukan sekadar menulis sintaks atau memahami bahasa pemrograman. Salah satu elemen paling krusial dalam proses pengembangan perangkat lunak adalah kemampuan untuk menyusun algoritma dan logika yang tepat. Algoritma dan logika dasar menjadi jantung dari setiap program, memungkinkan komputer untuk menyelesaikan permasalahan secara efisien dan sistematis. Dalam artikel ini, kita akan membahas [&hellip;]<\/p>\n","protected":false},"author":59,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"wds_primary_category":0,"footnotes":""},"categories":[101],"tags":[],"class_list":["post-32317","post","type-post","status-publish","format-standard","hentry","category-berita"],"_links":{"self":[{"href":"https:\/\/dte.telkomuniversity.ac.id\/en\/wp-json\/wp\/v2\/posts\/32317","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dte.telkomuniversity.ac.id\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dte.telkomuniversity.ac.id\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dte.telkomuniversity.ac.id\/en\/wp-json\/wp\/v2\/users\/59"}],"replies":[{"embeddable":true,"href":"https:\/\/dte.telkomuniversity.ac.id\/en\/wp-json\/wp\/v2\/comments?post=32317"}],"version-history":[{"count":1,"href":"https:\/\/dte.telkomuniversity.ac.id\/en\/wp-json\/wp\/v2\/posts\/32317\/revisions"}],"predecessor-version":[{"id":32320,"href":"https:\/\/dte.telkomuniversity.ac.id\/en\/wp-json\/wp\/v2\/posts\/32317\/revisions\/32320"}],"wp:attachment":[{"href":"https:\/\/dte.telkomuniversity.ac.id\/en\/wp-json\/wp\/v2\/media?parent=32317"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dte.telkomuniversity.ac.id\/en\/wp-json\/wp\/v2\/categories?post=32317"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dte.telkomuniversity.ac.id\/en\/wp-json\/wp\/v2\/tags?post=32317"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}