[{"content":"Halo👋, Saya seorang {full-stack} developer, mahasiswa, dan {designer} yang hidup dengan menikmati secangkir teh 24/7 ☕️.\n","date":"2 Januari 2026","externalUrl":null,"permalink":"/id/","section":"","summary":"","title":"","type":"page"},{"content":"Media belajar untuk kamu yang ingin belajar sesuatu yang baru.\n","date":"2 Januari 2026","externalUrl":null,"permalink":"/id/study/","section":"Belajar","summary":"","title":"Belajar","type":"study"},{"content":"","date":"2 Januari 2026","externalUrl":null,"permalink":"/id/tags/coding/","section":"Tags","summary":"","title":"Coding","type":"tags"},{"content":"","date":"2 Januari 2026","externalUrl":null,"permalink":"/id/tags/css/","section":"Tags","summary":"","title":"CSS","type":"tags"},{"content":"","date":"2 Januari 2026","externalUrl":null,"permalink":"/id/tags/html/","section":"Tags","summary":"","title":"HTML","type":"tags"},{"content":"","date":"2 Januari 2026","externalUrl":null,"permalink":"/id/tags/javascript/","section":"Tags","summary":"","title":"JavaScript","type":"tags"},{"content":"Komputer programming adalah proses menulis, menguji, dan memelihara kode sumber untuk membuat perangkat lunak atau aplikasi. Belajar pemrograman dapat membuka banyak peluang karir di bidang teknologi dan memberikan keterampilan yang berguna dalam berbagai industri.\n","date":"2 Januari 2026","externalUrl":null,"permalink":"/id/study/programming/","section":"Belajar","summary":"","title":"Komputer Programming","type":"Study"},{"content":"","date":"2 Januari 2026","externalUrl":null,"permalink":"/id/tags/learn/","section":"Tags","summary":"","title":"Learn","type":"tags"},{"content":"","date":"2 Januari 2026","externalUrl":null,"permalink":"/id/tags/learn-coding/","section":"Tags","summary":"","title":"Learn Coding","type":"tags"},{"content":"","date":"2 Januari 2026","externalUrl":null,"permalink":"/id/tags/learn-programming/","section":"Tags","summary":"","title":"Learn Programming","type":"tags"},{"content":"","date":"2 Januari 2026","externalUrl":null,"permalink":"/id/tags/php/","section":"Tags","summary":"","title":"PHP","type":"tags"},{"content":"Pengenalan tentang HTML, CSS, PHP, Javascript, dll.\n","date":"2 Januari 2026","externalUrl":null,"permalink":"/id/study/programming/web/practicum-module-1/","section":"Belajar","summary":"","title":"Praktikum Module I","type":"pemrograman"},{"content":"","date":"2 Januari 2026","externalUrl":null,"permalink":"/id/tags/programming/","section":"Tags","summary":"","title":"Programming","type":"tags"},{"content":"","date":"2 Januari 2026","externalUrl":null,"permalink":"/id/tags/programming-for-beginners/","section":"Tags","summary":"","title":"Programming for Beginners","type":"tags"},{"content":"","date":"2 Januari 2026","externalUrl":null,"permalink":"/id/series/","section":"Series","summary":"","title":"Series","type":"series"},{"content":"","date":"2 Januari 2026","externalUrl":null,"permalink":"/id/tags/","section":"Tags","summary":"","title":"Tags","type":"tags"},{"content":"Dengan memahami logika dan struktur program yang dipelajari dalam modul ini, kita dapat menyusun kode web yang logis, terstruktur, dan efisien.\n","date":"2 Januari 2026","externalUrl":null,"permalink":"/id/study/programming/web/","section":"Belajar","summary":"","title":"Web","type":"pemrograman"},{"content":"","date":"2 Januari 2026","externalUrl":null,"permalink":"/id/tags/web/","section":"Tags","summary":"","title":"Web","type":"tags"},{"content":"Mampu mengenal skrip html, menggunakan ragam tag dan pendeklarasian tabel beserta atributnya, mampu menuliskan skrip dalam html\nPengertian HTML (Hypertext Markup Language) # Hypertext Markup Language (HTML) adalah sebuah bahasa untuk menampilkan konten di web. HTML sendiri adalah bahasa pemrograman yang bebas, artinya tidak dimiliki oleh siapapun, pengembangannya dilakukan oleh banyak orang di banyak Negara dan bias dikatakan sebagai sebuah bahasa yang dikembangkan bersama-sama secara global.\nSebuah dokumen HTML sendiri adalah dokumen teks yang dapat diedit oleh editor teks apapun. Dokumen HTML punya beberapa elemen yang dikelilingi oleh tagteks yang dimulai dengan symbol \u0026lt; dan berakhir dengan sebuah symbol \u0026gt;.\nEditor teks yang digunakan oleh penyusun adalah menggunakan Notepad dan XAMPP Versi 1.8.1 untuk web servernya dengan bahasa pemrograman PHP Versi 5.\nStruktur Dasar HTML # Elemen HTML dimulai dengan tag awal, yang diikuti dengan isi elemen dan tag akhir. Tag berakhir termasuksimbol / diikuti oleh tipe elemen, misalnya . Sebuah elemen HTML dapat bersarang di dalam elemen lainnya. Sebuah dokumen HTML standar terlihat seperti ini :\n\u0026lt;!DOCTYPE html\u0026gt; \u0026lt;html lang=\u0026#34;en\u0026#34;\u0026gt; \u0026lt;head\u0026gt; \u0026lt;meta charset=\u0026#34;UTF-8\u0026#34; /\u0026gt; \u0026lt;meta name=\u0026#34;viewport\u0026#34; content=\u0026#34;width=device-width, initial-scale=1.0\u0026#34; /\u0026gt; \u0026lt;title\u0026gt;Judul Halaman Web\u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt;\u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; Keterangan :\nTag HTML secara default dimulai dari \u0026lt;HTML\u0026gt; dan diakhiri dengan \u0026lt;/HTML\u0026gt;.\nTag \u0026lt;HEAD\u0026gt;… \u0026lt;/HEAD\u0026gt; merupakan tag kepala sebelum badan. Tag kepala ini akan terlebih dulu dieksekusi sebelum tag badan. Di dalam tag ini berisi tag \u0026lt;META\u0026gt; dan \u0026lt;TITLE\u0026gt;. Tag \u0026lt;META\u0026gt; merupakan informasi atau header suatu dokumen HTML. Atribut yang dimiliki oleh tag ini antara lain:\na. HTTP_EQUIV, atribut ini berfungsi untuk menampilkan dokumen HTML secara otomatis dalam jangka waktu tertentu.\nb. CONTENT, atribut ini berisi informasi tentang isi document HTML yang akan dipanggil.\nc. NAME, atribut ini merupakan identifikasi dari meta itu sendiri. Tag \u0026lt;META\u0026gt; dalam suatu document HTML boleh ada maupun tidak.\nTag \u0026lt;TITLE\u0026gt; … \u0026lt;/TITLE\u0026gt; adalah tag judul. Sebaiknya setiap halaman web memiliki judul, dan judul tersebut dituliskan di dalam \u0026lt;TITLE\u0026gt; … \u0026lt;/TITLE\u0026gt;. Judul ini akan muncul dalam titlebar dari browser.\nTag \u0026lt;BODY\u0026gt; … \u0026lt;/BODY\u0026gt; adalah tag berisi content dari suatu halaman web. Contoh penggunaan script HTML Buat lembar baru pada Notepad, kemudian ketikkan perintah di bawah ini. Simpan dengan nama Contoh01.php\n\u0026lt;!DOCTYPE html\u0026gt; \u0026lt;html lang=\u0026#34;en\u0026#34;\u0026gt; \u0026lt;head\u0026gt; \u0026lt;meta charset=\u0026#34;UTF-8\u0026#34; /\u0026gt; \u0026lt;meta name=\u0026#34;viewport\u0026#34; content=\u0026#34;width=device-width, initial-scale=1.0\u0026#34; /\u0026gt; \u0026lt;!-- Judul Web --\u0026gt; \u0026lt;title\u0026gt;Contoh 01\u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;!-- Perintah dibuat diantara --\u0026gt; \u0026lt;!-- \u0026lt;body\u0026gt; dan \u0026lt;/body\u0026gt; --\u0026gt; Halo \u0026lt;br /\u0026gt; ini script HTML pertamaku \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; Kemudian simpan file di atas di dalam folder c:\\XAMPP\\htdocs\\ buat folder baru untuk menyimpan file di dalam folder htdocs. Simpan file dengan nama contoh01.html. Pembuatan nama file pada saat penyimpanan harus diakhiri dengan extention “.html”\nCara penyimpanan dengan Notepad, perhatikan cara berikut :\nUntuk melihat hasil dari file di atas dapat menggunakan browser Mozilla, google chrome, internet explorer atau jenis browser lain. Ketikkan pada address bar “Localhost\\Nama Folder Penyimpanan\\”, kemudian pilih file contoh01.html\nSebelum di ketikkan alamat file tersebut, pastikan anda telah menjalankan Module Apache pada Xampp Control Panel.\nLihat gambar dibawah ini:\nKode-kode dalam HTML biasanya disebut TAG. Tag adalah sesuatu yang digunakan untuk menandai elemen-elemen dalam suatu dokumen HTML. Tag dalam HTML terdiri dari tanda lebih kecil ( \u0026lt; ), tanda lebih besar ( \u0026gt; ), dan garismiring ( / ). Biasanya Tag dituliskan secara berpasangan, misanya \u0026lt;h1\u0026gt;dan \u0026lt;/h1\u0026gt;. Tag yang tidak menggunakan garis miring ( / ) adalah Tag pembuka atau awal elemen. Sedangkan yang Tag yang mengandung garis miring ( / ) adalah penutup elemen atau akhir elemen. Namun, ada juga Tag yang dalam pemakaiannya tidak berpasangan, diantaranya adalah :\nTag untuk ganti paragraph yaitu \u0026lt;p\u0026gt; Tag untuk ganti baris atau line break yaitu \u0026lt;br\u0026gt; Tag untuk garis datar yaitu \u0026lt;hr\u0026gt; Tag list item yaitu \u0026lt;li\u0026gt; Untuk tag yang tidak berpasangan diatas, sebaiknya tetap ditulis menggunakan pasangannya. Hal ini dilakukan untuk mengantisipasi standar rekomendasi HTML kedepannya. Penulisan untuk semua Tag bebas, maksudnya kita bisa menggunakan huruf besar, huruf kecil, bahkan dicampur ( tidak case sensitive ). Tapi untuk mengantisipasi standar penulisan Tag, sebaiknya kita menggunakan huruf kecil semua.\nJenis – jenis tag dalam HTML :\ntag Performatan # Tag awal Kegunaan \u0026lt;b\u0026gt; Definisi teks yang ditebalkan \u0026lt;big\u0026gt; Definisi teks yang besar ukurannya \u0026lt;em\u0026gt; Definisi teks yang ditekan \u0026lt;i\u0026gt; Definisi teks yang dicetak miring ( italic ) \u0026lt;small\u0026gt; Definisi teks kecil ukurannya \u0026lt;u\u0026gt; Definisi teks yang bergaris bawah \u0026lt;sub\u0026gt; Definisi teks yang jadi subscript \u0026lt;sup\u0026gt; Definisi teks yang jadi superscript \u0026lt;ins\u0026gt; Definisi teks yang disisipkan \u0026lt;del\u0026gt; Definisi teks yang dihapus Tag Computer Output # Tag awal Kegunaan \u0026lt;code\u0026gt; Definisi teks computer code \u0026lt;kbd\u0026gt; Definisi teks keyboard \u0026lt;samp\u0026gt; Definisi contoh computer code \u0026lt;tt\u0026gt; Definisi teks teletype \u0026lt;var\u0026gt; Definisi suatu variabel \u0026lt;pre\u0026gt; Definisi teks preformatted Tag Citation, Quotation, Definition # Tag awal Kegunaan \u0026lt;abbr\u0026gt; Definisi suatu singkatan \u0026lt;acronym\u0026gt; Definisi suatu akronim \u0026lt;address\u0026gt; Definisi penulisan alamat \u0026lt;bdo\u0026gt; Definisi arah penulisan \u0026lt;blockquote\u0026gt; Definisi quotation panjang \u0026lt;q\u0026gt; Definisi quotation pendek \u0026lt;cite\u0026gt; Definisi suatu citation \u0026lt;dfn\u0026gt; Definisi istilah ( term ) Tag Link # Tag awal Kegunaan \u0026lt;a\u0026gt; Mendefinisikan suatu link Tag Image # Tag awal Kegunaan \u0026lt;img\u0026gt; Definisi sebuah image dalam dokumen \u0026lt;map\u0026gt; Definisi sebuah imame map \u0026lt;area\u0026gt; Definisi suatu area dalam image map Tag List # Tag awal Kegunaan \u0026lt;ol\u0026gt; Mendefinisikan sebuah list ordered \u0026lt;ul\u0026gt; Mendefinisikan sebuah list unordered \u0026lt;li\u0026gt; Mendefinisikan sebuah item dalam list \u0026lt;dl\u0026gt; Mendefinisikan sebuah list definisi \u0026lt;dt\u0026gt; Mendefinisikan sebuah istilah list definisi Contoh script penggunaan Tag HTML\nBuat lembar baru pada Notepad, kemudian ketikkan perintah di bawah ini. Simpan dengan nama Contoh02.html\n\u0026lt;!DOCTYPE html\u0026gt; \u0026lt;html lang=\u0026#34;en\u0026#34;\u0026gt; \u0026lt;head\u0026gt; \u0026lt;meta charset=\u0026#34;UTF-8\u0026#34; /\u0026gt; \u0026lt;meta name=\u0026#34;viewport\u0026#34; content=\u0026#34;width=device-width, initial-scale=1.0\u0026#34; /\u0026gt; \u0026lt;title\u0026gt;Contoh 02\u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body bgcolor=\u0026#34;#00CCFF\u0026#34; text=\u0026#34;#FF0000\u0026#34;\u0026gt; \u0026lt;p\u0026gt; ini adaalah contoh pengunaan formating TAG dalam HTML \u0026lt;br /\u0026gt; masing-masing TAG memiliki atribut masing-masing\u0026lt;br /\u0026gt; \u0026lt;/p\u0026gt; \u0026lt;font color=\u0026#34;#000000\u0026#34; \u0026gt;Ini juga termasuk contoh penggunaan formating TAG\u0026lt;br /\u0026gt;\u0026lt;/font\u0026gt; \u0026lt;h1\u0026gt; \u0026lt;marquee width=\u0026#34;50%\u0026#34; bgcolor=\u0026#34;#000099\u0026#34;\u0026gt; Ini uga salah satu penggunaan Tag \u0026lt;/marquee\u0026gt; \u0026lt;/h1\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; Hasil Tampilan\nPembuatan Tabel Menggunakan HTML # Tabel penting peranannya dalam halaman Web, selain untuk menampilkan teks atau gambar dalam format lajur dan kolom bias juga menggunakan tabel untuk membantu me-layout tampilan halaman\nTabel merupakan sebuah kotak yang terdiri atas baris/row dan kolom.column. Untuk membuat tabel, anda menggunakan tag \u0026lt;table\u0026gt; dan menutupnya dengan tag \u0026lt;/table\u0026gt;. Anda bisa juga menambahkan atribut lain di tag \u0026lt;table\u0026gt; pembuka. Misalnya menentukan warna, border, dan sebagainya.\nDi dalam tag \u0026lt;table\u0026gt; ada beberapa tag lain yang perlu dipahami, yaitu :\nTag \u0026lt;tr\u0026gt;\nArtinya tag untuk menuliskan baris biasa di tabel. TR singkatan dari Table Row.\nTag \u0026lt;td\u0026gt;\nArtinya tag untuk menuliskan kotak di dalam baris, makanya tag \u0026lt;td\u0026gt; ada di dalam tag \u0026lt;tr\u0026gt;. TD singkatan dari Table Data.\nTag \u0026lt;th\u0026gt;\nArtinya tag untuk menuliskan kotak biasa seperti \u0026lt;td\u0026gt;, namun untuk header tabel. TH singkatan dari Table Header.\nMenggabungkan sel # Sel-sel tabel secara normal memiliki lebar dan tinggi yang sama. Jika kita ingin membuat sebuah sel memiliki lebar atau tinggi yang berbeda dari sel-sel lainnya, maka satu-satunya cara yang bisa kita lakukan adalah dengan menggabungkan beberapa sel menjadi satu. Cara ini disebut merge atau penggabungan sel.\nUntuk menggabungkan sel-sel tabel ini diperlukan atribut rowspan atau colspan. Atribut rowspan digunakan untuk menggabungkan sel-sel tabel pada kolom yang sama. Atribut colspan untuk menggabungkan sel-sel tabel pada baris yang sama.\nBerikut contoh penggabungan kedua jenis :\nSecara Vertikal (Rowspan)\nTabel dengan kode HTML dibawah ini sel-sel kolom pertama akan digabung: \u0026lt;table\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;...\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;...\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;...\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;...\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;...\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;...\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;/table\u0026gt; ... ... ... ... ... ... Setelah digabung maka kondisi kode HTML menjadi seperti berikut:\n\u0026lt;table\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td rowspan=\u0026#34;3\u0026#34;\u0026gt;...\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;...\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;...\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;...\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;/table\u0026gt; ... ... ... ... Secara Horisontal (Colspan)\nTabel dengan kode HTML dibawah ini sel-sel baris pertama akan digabung: \u0026lt;table\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;...\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;...\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;...\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;...\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;...\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;...\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;/table\u0026gt; ... ... ... ... ... ... Setelah digabung maka kondisi kode HTML menjadi seperti berikut:\n\u0026lt;table\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td colspan=\u0026#34;2\u0026#34;\u0026gt;...\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;...\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;...\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;...\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;...\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;/table\u0026gt; ... ... ... ... ... Contoh script pembuatan tabel\nBuat lembar baru pada Notepad, kemudian ketikkan perintah di bawah ini. Simpan dengan nama Contoh03.html\n\u0026lt;html\u0026gt; \u0026lt;head\u0026gt; \u0026lt;title\u0026gt;Contoh 03\u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;h1\u0026gt;Tabel Data Siswa\u0026lt;/h1\u0026gt; \u0026lt;table border=\u0026#34;1\u0026#34; bgcolor=\u0026#34;black\u0026#34;\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;th\u0026gt;Nim\u0026lt;/th\u0026gt; \u0026lt;th\u0026gt;Nama\u0026lt;/th\u0026gt; \u0026lt;th\u0026gt;Alamat\u0026lt;/th\u0026gt; \u0026lt;th\u0026gt;Tempat, Tanggal Lahir\u0026lt;/th\u0026gt; \u0026lt;th\u0026gt;Jurusan\u0026lt;/th\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;12110001\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Anita\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Cengkareng\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Jakarta, 20 Agustus 1990\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Tehnik Informatika\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;12110002\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Aditya\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Tangerang\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Semarang, 01 Januari 1989\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Tehnik Informatika\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;12110003\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Firman\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Bogor\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Jakarta, 18 September 1988\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Tehnik Informatika\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;/table\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; Jika dilihat di browser, maka terlihat sebagai berikut :\nPenggunaan Cellpadding dan cellspacing # Buat lembar baru pada Notepad, kemudian ketikkan perintah di bawah ini. Simpan dengan nama tabelcell.html\n\u0026lt;!DOCTYPE html\u0026gt; \u0026lt;html\u0026gt; \u0026lt;head\u0026gt; \u0026lt;title\u0026gt;Penggunaan atribut Cellpadding dan cellspacing dalam Tabel\u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;h3\u0026gt;Belajar atribut cellpadding \u0026amp; cellspacing dalam Tabel\u0026lt;/h3\u0026gt; \u0026lt;table border=\u0026#34;1\u0026#34; cellspacing=\u0026#34;0\u0026#34; cellpadding=\u0026#34;0\u0026#34;\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;Baris 1, Kolom 1\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Baris 1, Kolom 2\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Baris 1, Kolom 3\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;Baris 2, Kolom 1\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Baris 2, Kolom 2\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Baris 2, Kolom 3\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;/table\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;table border=\u0026#34;1\u0026#34; cellspacing=\u0026#34;3\u0026#34; cellpadding=\u0026#34;5\u0026#34;\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;Baris 1, Kolom 1\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Baris 1, Kolom 2\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Baris 1, Kolom 3\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;Baris 2, Kolom 1\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Baris 2, Kolom 2\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Baris 2, Kolom 3\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;/table\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; Hasil Tampilan :\nPenggunaan Rowspan dan colspan # Buat lembar baru pada Notepad, kemudian ketikkan perintah di bawah ini. Simpan dengan nama tabelspan.html\n\u0026lt;html\u0026gt; \u0026lt;head\u0026gt; \u0026lt;title\u0026gt;Contoh Penggunaan Atribut Colspan dan Rowspan Tag Tabel\u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;h1\u0026gt;Contoh atribut colspan dan rowspan\u0026lt;/h1\u0026gt; \u0026lt;table border=\u0026#34;1\u0026#34;\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;Baris 1, Kolom 1\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Baris 1, Kolom 2\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Baris 1, Kolom 3\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;Baris 2, Kolom 1\u0026lt;/td\u0026gt; \u0026lt;td colspan=\u0026#34;2\u0026#34;\u0026gt;Baris 2, Kolom 2 \u0026amp; 3\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td rowspan=\u0026#34;2\u0026#34;\u0026gt;Baris 3 \u0026amp; 4, Kolom 1\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Baris 3, Kolom 2\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Baris 3, Kolom 3\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;Baris 4, Kolom 2\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Baris 4, Kolom 3\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;/table\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; Hasil Tampilan :\n","date":"2 Januari 2026","externalUrl":null,"permalink":"/id/study/programming/web/practicum-module-1/chapter-02-introduction-to-html/","section":"Belajar","summary":"","title":"Web Programming I #02: Pengenalan HTML","type":"study"},{"content":"","date":"2 Januari 2026","externalUrl":null,"permalink":"/id/series/web-programming-i-module/","section":"Series","summary":"","title":"Web Programming I Module","type":"series"},{"content":"Membahas mengenai konsep dasar pemrograman web, istilah-istilah dalam pemrograman web, menggunakan text editor, mengenal dan mengimplementasikan struktur navigasi\nDasar-Dasar Website # Internet # Internet merupakan “kependekan dari kata “internetwork”, yang berarti rangkaian komputer yang terhubung menjadi beberapa rangkaian jaringan”. Sistem komputer terhubung secara global dan menggunakan TCP/IP sebagai protocol. Secara umum internet dapat diartikan sebagai pertukaran informasi dan komunikasi. Semua informasi bisa didapatkan dengan mudah dan bebas di internet tanpa ada batasan.\nAda beberapa istilah yang sering digunakan apabila anda bekerja dengan internet diantaranya yaitu:\nWorld Wide Web (WWW)\nWWW merupakan kumpulan web server diseluruh dunia yang dapat menyediakan data dan informasi untuk dapat digunakan secara massal. Website\nWebsite atau situs web merupakan sebuah alamat tertentu di WWW yang menyediakan informasi tertentu. Untuk membuka sebuah situs web, anda dapat menggunakan browser. Web Pages (Halaman Web)\nWeb pages atau halaman web merupakan bagian dari situs web, apabila situs web diumpamakan merupakan sebuah buku, maka halaman web merupakan lembaran-lembaran kertas penyusun buku tersebut. Home Page (Halaman Muka)\nHomepage merupakan halaman muka dari sebuah situs web, atau ibarat cover muka sebuah buku. Homepage biasanya berupa outline dari isi situs web yang bersangkutan. Browser\nBrowser adalah aplikasi yang digunakan untuk berselancar didunia internet. Browser dapat memandu pengguna internet untuk berpindah antar situs web dengan mudah. URL (Universal Resource Locator)\nURL merupakan suatu alamat yang menunjukkan sebuah halaman tertentu internet. Contoh URL adalah: http://www.google.com HTTP (Hypertext Transfer Protocol)\nHTTP adalah bagian dari sebuah URL yang mengidentifikasikan lokasi web, dan digunakan dalam protokol HTML. DNS (Domain Name System)\nDNS merupakan sistem database terdistribusi yang tidak banyak dipengaruhi oleh bertambanhnya database. DNS menjamin informasi host terbaru akan disebarkan ke jaringan bila diperlukan. TCP/IP (Transmission Control Protocol / Internet Protocol)\nTCP/IP (Transmission Control Protocol/Internet Protocol) merupakan metodemetode yang digunakan untuk menghubungi server. TCP/IP merupakan bahasa standarisasi untuk internet. IP (Internet Protocol)\nIP (Internet Protocol) merupakan protokol yang digunakan dalam internet, secara teknis bermakna suatu bentuk pengisian dan pengalamatan data-data dan informasi yang akan dikirim melalui internet. Hyperlink\nHyperlink atau disebut link saja merupakan sebuah fasilitas yang sangat berperan mempopulerkan pengguna internet, karena mampu mereferensikan sebuah teks atau gambar ke alamat lain di internet. Web Browser\nMenggunakan web browser mudah, yang diperlukan hanyalah Anda harus memiliki alamat web yang akan dibuka. Alamat ini biasa disebut dengan Uniform Resource Locator (URL). Di dalam sistem operasi Windows Anda juga terdapat program web browser sertaan, yaitu Internet Explorer. Namun demikian diluar terdapat banyak program alternative web browser yang sebagian besar bersifat gratis, seperti Netscape, Firefox, Opera, Avant Browser, dan seterusnya. Perangkat Lunak Web Server # Web Server adalah sebuah perangkat lunak server yang berfungsi menerima permintaan HTTP atau HTTPS dari Client yang dikenal dengan web browser dan mengirimkan kembali hasilnya dalam bentuk halaman-halaman web yang umumnya berbentuk dokumen HTML. Server web yang terkenal diantaranya adalah:\na. Apache, web server antar platform\nXAMPP PHPTriad; discontinued Apache2Triad b. Internet Information Service (IIS), hanya dapat berjalan di sistem operasi MS Windows\nStruktur Navigasi # Struktur Navigasi adalah “Susunan menu atau hirarki dari suatu situs yang menggambarkan isi dari setiap halaman dan link atau navigasi tiap halaman pada suatu situs web”. Struktur Navigasi dapat dikatakan sebagai penggambar dari hubungan atau rantai kerja dari seluruh elemen yang akan digunakan dalam aplikasi.\nStruktur Navigasi dapat digolongkan menurut kebutuhan akan objek, kemudahan pemakaian, keinteraktifitasannya, dan kemudahan membuatnya yang berpengaruh terhadap waktu pembuatan suatu situs web. Dalam penggambarannya Struktur Navigasi terbagi kedalam 4 Struktur yang berbeda yaitu: Linier, Non Linier, Hierarchical (Hirarki) dan Composit (Campuran).\nAda 4 macam bentuk dasar dari peta navigasi yang biasa digunakan dalam proses pembuatan aplikasi web, yaitu:\nStruktur Navigasi Linier # Struktur navigasi linier hanya mempunyai satu rangkaian cerita yang berurut, yang menampilkan satu demi satu tampilan layar secara berurut menurut urutannya. Tampilan yang dapat ditampilkan pada sruktur jenis ini adalah satu halaman sebelumnya atau satu halaman sesudahnya, tidak dapat dua halaman sebelumnya atau dua halaman sesudahnya.\nflowchart LR %% Mendefinisikan kotak kosong dengan spasi agar lebarnya pas A[\"\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] B[\"\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] C[\"\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] D[\"\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] %% Alur panah dua arah A \u003c--\u003e B B \u003c--\u003e C C \u003c--\u003e D Contoh :\nflowchart TD %% Node Atas Login[\"Login User\"] %% Membuat blok khusus agar barisan bawah menyamping subgraph BarisHorizontal [\" \"] direction LR N1[\"Input Info\"] N2[\"Upload File\"] N3[\"Input Data siswa\"] N4[\"Logout\"] N5[\"Input Data guru\"] N6[\"Upload foto galeri\"] N7[\"Upload banner\"] %% Alur panah dua arah menyamping N1 \u003c--\u003e N2 N2 \u003c--\u003e N3 N3 \u003c--\u003e N4 N4 \u003c--\u003e N5 N5 \u003c--\u003e N6 N6 \u003c--\u003e N7 %% Panah panjang yang kembali dari ujung kanan ke ujung kiri N7 --\u003e N1 end %% Hubungan bolak-balik vertikal dari Login ke Logout Login \u003c--\u003e N4 %% Menghilangkan kotak border dan background dari subgraph style BarisHorizontal fill:none,stroke:none Struktur Navigasi Hirarki # Struktur navigasi hirarki biasa disebut struktur bercabang, merupakan suatu struktur yang mengandalkan percabangan untuk menampilkan data berdasarkan kriteria tertentu. Tampilan pada menu pertama akan disebut sebagai Master Page (halaman utama pertama), halaman utama ini mempunyai halaman percabangan yang disebut Slave Page (halaman pendukung). Jika salah satu halaman pendukung dipilih atau diaktifkan, maka tampilan tersebut akan bernama Master Page (halaman utama kedua), dan seterusnya. Pada struktur navigasi ini tidak diperkenankan adanya tampilan secara linier.\nflowchart TD %% Level 1 (Akar/Root) N1[\"\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] %% Level 2 (Cabang) N2_1[\"\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] N2_2[\"\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] %% Level 3 (Daun/Leaf) N3_1[\"\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] N3_2[\"\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] N3_3[\"\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] N3_4[\"\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] %% --- Alur panah dua arah (bolak-balik) --- N1 \u003c--\u003e N2_1 N1 \u003c--\u003e N2_2 N2_1 \u003c--\u003e N3_1 N2_1 \u003c--\u003e N3_2 N2_2 \u003c--\u003e N3_3 N2_2 \u003c--\u003e N3_4 Contoh :\nflowchart TD %% Node Utama (Root) Menu[\"MENU\"] %% Node Cabang Utama Tentang[\"Tentang\"] Mulai[\"MULAI\"] Keluar[\"Keluar\"] %% Node Sub-Menu Pilih[\"Pilih Hewan\"] Suara[\"Suara Hewan\"] %% --- Alur Garis --- Menu --\u003e Tentang Menu --\u003e Mulai Menu --\u003e Keluar Mulai --\u003e Pilih Pilih --\u003e Suara %% Alur perulangan (kembali ke pilihan hewan) Suara --\u003e Pilih Struktur Navigasi Non-Linier # Struktur navigasi non-linier atau struktur tidak berurut merupakan pengembangan dari struktur navigasi linier. Pada struktur ini diperkenankan membuat navigasi bercabang. Percabangan yang dibuat pada struktur nonlinier ini berbeda dengan percabangan pada struktur hirarki, karena pada percabangan nonlinier ini walaupun terdapat percabangan, tetapi tiap-tiap tampilan mempunyai kedudukan yang sama yaitu tidak ada Master Page dan Slave Page.\nContoh :\nStruktur Navigasi Campuran # Struktur navigasi campuran merupakan gabungan dari ketiga struktur sebelumnya yaitu linier, non-linier dan hirarki. Struktur navigasi ini juga biasa disebut dengan struktur navigasi bebas. Struktur navigasi ini banyak digunakan dalam pembuatan website karena struktur ini dapat digunakan dalam pembuatan website sehingga dapat memberikan ke-interaksian yang lebih tinggi.\nflowchart TD %% Level 1 (Root) N1[\"\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] %% Level 2 N2_1[\"\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] N2_2[\"\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] %% Level 3 N3_1[\"\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] N3_2[\"\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] N3_3[\"\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] N3_4[\"\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] %% Node tambahan di ujung kanan Level 3 N3_5[\"\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] %% --- Alur Pohon (Panah Bolak-balik) --- N1 \u003c--\u003e N2_1 N1 \u003c--\u003e N2_2 N2_1 \u003c--\u003e N3_1 N2_1 \u003c--\u003e N3_2 N2_2 \u003c--\u003e N3_3 N2_2 \u003c--\u003e N3_4 %% --- Alur Unik di Bagian Kanan Bawah --- %% Panah horizontal bolak-balik N3_4 \u003c--\u003e N3_5 %% Panah dari bawah yang melompati satu node N3_3 --\u003e N3_5 Contoh : ","date":"1 Januari 2026","externalUrl":null,"permalink":"/id/study/programming/web/practicum-module-1/chapter-01-basic-concept-of-web/","section":"Belajar","summary":"","title":"Web Programming I #01: Konsep Dasar Web","type":"study"},{"content":"","date":"28 Januari 2026","externalUrl":null,"permalink":"/id/tags/algorithm/","section":"Tags","summary":"","title":"Algorithm","type":"tags"},{"content":"","date":"28 Januari 2026","externalUrl":null,"permalink":"/id/tags/algorithms/","section":"Tags","summary":"","title":"Algorithms","type":"tags"},{"content":"","date":"28 Januari 2026","externalUrl":null,"permalink":"/id/tags/beginners/","section":"Tags","summary":"","title":"Beginners","type":"tags"},{"content":"","date":"28 Januari 2026","externalUrl":null,"permalink":"/id/tags/graph/","section":"Tags","summary":"","title":"Graph","type":"tags"},{"content":"","date":"28 Januari 2026","externalUrl":null,"permalink":"/id/tags/greedy-algorithm/","section":"Tags","summary":"","title":"Greedy-Algorithm","type":"tags"},{"content":"","date":"28 Januari 2026","externalUrl":null,"permalink":"/id/tags/greedy-method/","section":"Tags","summary":"","title":"Greedy-Method","type":"tags"},{"content":"","date":"28 Januari 2026","externalUrl":null,"permalink":"/id/tags/logic/","section":"Tags","summary":"","title":"Logic","type":"tags"},{"content":"","date":"28 Januari 2026","externalUrl":null,"permalink":"/id/series/logic-and-algorithms-chapters/","section":"Series","summary":"","title":"Logic and Algorithms Chapters","type":"series"},{"content":"Belajar logika dan algoritma dasar dari Nol. Pahami konsep-konsep esensial yang sering dipakai. Lalu terapkan dalam membuat solusi masalah. Selamat Belajar!\n","date":"28 Januari 2026","externalUrl":null,"permalink":"/id/study/programming/algorithm-logic/","section":"Belajar","summary":"","title":"Logika dan Algoritma","type":"programming"},{"content":"Graph merupakan cabang matematika yang dapat diterapkan dalam kehidupan sehari-hari, teori graph dapat memecahkan banyak masalah yang ada (Ramadhan et al., 2018).\nGraph digunakan untuk bermacam-macam disiplin ilmu dan kehidupannya sehari-hari. Graph digunakan di berbagai bidang(kimia, ekologi, genetika, olahraga, transportasi, kartografi, dan jaringan komputer) untuk memodelkan masalah (Didiharyono\u0026amp; Soraya, 2018) dan (Rahadi, 2019).\nPermasalahan yang bisa dipecahkan menggunakan data graph adalah:\nTravelling Salesman Permasalahan pencarian pohon rentang minimum (Minimum Spanning Tree Problem) Permasalahan path minimum (Shortest path problem) Coloring (Pewarnaan) 1. Travelling Salesman # Untuk menentukan waktu perjalanan seorang salesman seminimal mungkin.\nPermasalahan: # Setiap minggu sekali, seorang petugas kantor telepon berkeliling untuk mengumpulkan coin-coin pada telepon umum yang dipasang diberbagai tempat. Berangkat dari kantornya, ia mendatangi satu demi satu telepon umum tersebut dan akhirnya kembali ke kantor lagi. Masalahnya ia menginginkan suatu rute perjalanan dengan waktu minimal.\nMedel Graph # Misalnya # Kantor pusat adalah simpul 1 dan misalnya ada 4 telepon umum, yang kita nyatakan sebagai simpul 2, 3, 4 dan 5 dan bilangan pada tiap-tiap ruas menunjukan waktu ( dalam menit ) perjalanan antara 2 simpul.\nLangkah penyelesaian: # Dimulai dari simpul yang diibaratkan sebagai kantor pusat yaitu simpul 1 Dari simpul 1 pilih ruas yang memiliki waktu yang minimal. Lakukan terus pada simpul–simpul yang lainnya tepat satu kali yang nantinya Graph akan membentuk Graph tertutup karena perjalanan akan kembali ke kantor pusat. Problema diatas menghasilkan waktu minimalnya adalah 45 menit dan diperoleh perjalanan sbb : Problema diatas menghasilkan waktu minimalnya adalah 45 menit dan diperoleh perjalanan sebagai berikut :\n2. Minimum Spanning Tree # Kasus MST Problem # Mencari minimum biaya (cost) spanning tree dari setiap ruas (edge) graph yang membentuk pohon (tree).\nSolusi dari permasalahan ini: # Dengan memilih ruas suatu graph yang memenuhi kriteria dari optimisasi yang menghasilkan biaya minimum. Penambahan dari setiap ruas pada seluruh ruas yang membentuk graph akan menghasilkan nilai/biaya yang kecil (minimum cost). Kriteria dari Minimum Spanning Tree, yaitu : # Setiap ruas pada graph harus terhubung (connected) Setiap ruas pada graph harus mempunyai nilai (label graph) Setiap ruas pada graph tidak mempunyai arah (graph tidak berarah) Proses Total minimum cost terbentuknya graph dengan tahapan sebagai berikut: # Dari graph yang terbentuk, apakah memenuhi kriteria MST. Lakukan secara urut dari simpul ruas awal s/d ruas akhir Pada setiap simpul ruas perhatikan nilai/cost dari tiap-tiap ruas Ambil nilai yang paling kecil (jarak tertpendek setiap ruas). Lanjutkan s/d semua simpul ruas tergambar pada spanning tree Jumlahkan nilai/cost yang dipilih tadi. Kriteria :\n√ graph terhubung\n√ graph tidak berarah\n√ graph mempunyai label\nTentukan nilai MST dari graph di atas serta tentukan ruas (edge) yang membentuk MST\nPenyelesaian MINIMUM SPANNING TREE Perhatikan Kriteria dari MST, yaitu: # 1.Graph sudah merupakan graph terhubung 2.Graph merupakan graph yang tidak berarah 3.Masing-masing ruasnya mempunyai label\nMenghitung MST dari tiap-tiap ruas yang membentuk graph tersebut dengan cara: # a. Dilakukan secara urut dari ruas/edge pertama sampai dengan edge terakhir.\nb. Setiap ruas/edge harus digambarkan pada spanning tree yang terbentuk.\nTahapan Proses Penyelesaian dari edge (ruas), Cost(biaya) dan spanning tree # Edge (Ruas ) Cost (Biaya) Spanning Tree (1,2) 10 (2,6) (25) (3,6) 15 (4,6) 20 (3,5) 35 Total Cost 105 3. Shortest Path Problem # Permasalahan: Menghitung jalur terpendek dari sebuah graph berarah.\nKriteria untuk permasalahan Shortest Path problem tersebut : # Setiap ruas pada graph harus mempunyai nilai (label graph) Setiap ruas pada graph tidak harus terhubung (unconnected) Setiap ruas pada graph tersebut harus mempunyai arah (graph berarah). Hitung jarak satu per satu sesuai dengan arah yang ditunjukkan oleh tiap-tiap ruas. Perhitungan dilakukan terhadap ruas graph yang memiliki jalur awal dan akhir. Penyelesaian # Pertama: Melihat proses simpul yang mempunyai awal dan akhir tujuan dari graph, yaitu: A – B, A – C, A – D, A – E Kedua: Mencari jalur terpendek dari tiap-tiap proses keempat jalur tersebut dengan menghitung panjang tiap-tiap jalur. Langkah 1 Penyelesaian Jalur A - B # A -B = 50 A -C - D- B = 10 + 15 + 20 = 45 A - E - D - B = 45 + 35 + 20 = 100 Jalur terpendek untuk simpul A tujuan B adalah:\nA – C – D – B = 45\nLangkah 2 Penyelesaian Jalur A - C # A – C = 10 A – B – C = 50 + 15 = 65 A – B – E – D – B – C = 50 + 10 + 35 + 20 + 15 = 130 A – E – D – B – C = 45 +35 +20 + 15 = 115 Jalur terpendek untuk simpul A tujuan C adalah:\nA – C = 10\nLangkah 3 Penyelesaian Jalur A - D # A – C – D = 10 + 15 = 25 A – B – E – D = 50 + 10 + 35 = 95 A – B – C – D = 50 + 15 + 15 = 80 A – E – D = 45 + 35 = 80 Jalur terpendek untuk simpul A tujuan D adalah:\nA – C – D = 25\nLangkah 4 Penyelesaian Jalur A - E # A – E = 45 A – B – E = 50 + 10 = 60 A – C – D – B – E = 10 + 15 + 20 + 10 = 55 A – C – D – E = 10 + 15 + 30 = 55 Jalur terpendek untuk simpul A tujuan E adalah\nA – E = 45\nTabel Jalur SHORTEST PATH PROBLEM # Jalur Panjang Jarak A – C 10 A – C – D 25 A – C – D – B 45 A – E 45 4. Coloring (Pewarnaan) # Permasalahan pada Pewarnaan (Coloring) # Problema pemberian warna kepada semua simpul, sedemikian sehingga 2(dua) simpul yang berdampingan (ada ruas menghubungkan ke dua simpul tersebut) mempunyai warna yang berbeda. Banyak warna yang dipergunakan, diminta seminimal mungkin Contoh 1: Pola Lampu Lalu Lintas # Permasalahan : # Menentukan pola lampu lalulintas dengan jumlah fase minimal, dan pada setiap fase tidak ada perjalanan yang saling melintas. Perjalanan yang diperbolehkan adalah :\nA ke B, A ke C, A ke D, B ke C, B ke D, E ke B, E ke C dan E ke D\nLangkah-langkah penyelesaian masalah # Tentukan simpul dari perjalanan yang diperbolehkan (untuk peletakan simpulnya bebas) Tentukan ruas untuk menghubungkan 2 simpul yg menyatakan 2 perjalanan yg saling melintas Beri warna pada setiap simpul dengan warna warna baru. Bila Simpul berdampingan maka berilah warna lain Bila simpul tidak bedampingan maka berilah warna yang sama Kita lihat Bahwa simpul AB, BC dan ED tidak dihubungkan oleh suatu ruas jadi untuk simpul tersebut tidak pernah melintas perjalanan-perjalanan lain dan simpul tersebut selalu berlaku lampu hijau Tentukan pembagian masing–masing simpul yang sudah diberikan warna. Putih = ( AC, AD )\nHitam = ( BD, EB )\nMerah = ( EC )\nCatatan : Pembagian simpul berdasarkan simpul yang tidak langsung berhubungan seminimal mungkin (BISA DILAKUKAN DENGAN BEBERAPA KEMUNGKINAN)\nDari langkah ke 5 diperoleh 3 fase, sehingga bisa kita simpulkan keseluruhan situasi dan hasilnya dapat dinyatakan dengan : Fase 1\nStatus Lampu Jalur HIJAU AC, AD, AB, BC, ED MERAH BD, EB, EC Fase 2\nStatus Lampu Jalur HIJAU BD, EB, AB, BC, ED MERAH AC, AD, EC Fase 3\nStatus Lampu Jalur HIJAU EC, AB, BC, ED MERAH AC, AD, BD, EB Contoh 2: Tabel Penjadwalan Ujian # MHS A B C D E F 1 0 1 0 0 1 0 2 0 0 1 1 0 0 3 1 0 0 0 1 0 4 1 0 0 0 0 1 5 0 1 0 1 0 0 6 0 1 1 0 0 0 7 1 0 0 0 0 1 8 0 0 1 1 0 0 Penjelasan Tabel Penjadwalan Ujian\n6 kolom yang dilambangkan dengan huruf menunjukkan nama mata kuliah. 8 baris yang ditunjukkan dengan angka adalah mahasiswa. Angka “1” pada tabel menunjukkan tentang mata kuliah yang diambil. Angka “0” pada tabel, berarti mata kuliah yang tidak diambil. Permasalahan Tabel Penjadwalan Ujian # Ada mahasiswa yang mengambil dua mata kuliah sekaligus. Tim pembuat jadwal harus membuat jadwal ujian yang sesuai agar jadwal ujian mahasiswa tidak bentrok. Syaratnya: tidak boleh ada mahasiswa yang mengikuti dua ujian pada waktu yang bersamaan. Penyelesaian Masalah Tabel Penjadwalan Ujian # Menggambarkan Simpul yang menunjukan mata kuliah. Membuat ruas atau garis penghubung menyatakan ada mahasiswa yang memilih kedua mata kuliah itu. Memilih simpul yang berwarna sama, simpul yang berwarna sama menunjukan tidak ada mahasiswa yang mengambil mata kuliah tersebut secara bersamaan, berarti boleh dijadwalkan pada waktu yang sama. Gambar Simpul Tabel Penjadwalan Ujian # Penjelasan Graph Dari Tabel Penjadwalan Ujian # Apabila terdapat dua buah simpul yang dihubungkan oleh ruas, maka ujian kedua mata kuliah tidak dapat dibuat pada waktu yang bersamaan. Beri Warna pada masing-masing simpul, apabila warna berbeda diberikan pada simpul yang menunjuk pada waktu ujiannya berbeda. Warna yang digunakan harus seminimal mungkin. Catatan: Simpul yang berdampingan tidak boleh berwarna sama. Hasil Graph Dari Tabel Penjadwalan Ujian dengan Warna # Keterangan:\nP -\u0026gt; Putih\nM -\u0026gt; Merah\nH -\u0026gt; Hijau\nPenjelasan Grap dengan Warna # Warna Merah : untuk simpul F, E, D Warna Putih : untuk simpul A, B, Warna Hijau : untuk simpul C (dikarenakan berdampingan) Simpul C bertetangga dengan simpul B (warna putih), dan simpul D (warna merah) sehingga C harus diberi warna lain. Penjelasan Graph Tabel Penjadwalan Ujian dengan Warna # Kelompokkan simpul yang berwarna sama, warna yang sama artinya bisa dijadwalkan untuk ujian sehingga diperoleh hasil, sebagi berikut:\nSimpul merah = F, E, D Simpul Putih = A, B Simpul hijau = C Catatan:\nUntuk posisi peletakan Simpul Bisa Bebas Awal pemberian warna boleh bebas Warna yang digunakan Bebas Awal pemberian warna mempengaruhi susunan Jadwal ","date":"28 Januari 2026","externalUrl":null,"permalink":"/id/study/programming/algorithm-logic/12-problems-and-graph-models-in-greedy-method/","section":"Belajar","summary":"","title":"Logika dan Algoritma #12: Problema Dan Model Graph Dalam Metode Greedy","type":"study"},{"content":"","date":"26 Januari 2026","externalUrl":null,"permalink":"/id/tags/analysis/","section":"Tags","summary":"","title":"Analysis","type":"tags"},{"content":" 1. Pengertian Teknik Searching (Pencarian) # Teknik dalam memilih dan menyeleksi sebuah elemen dari beberapa elemen yang ada.\n2. Teknik Searching (Pencarian) # Teknik Linear/Sequential Search Teknik StraitMAXMIN Teknik Linear/Sequential Search # a. Linear/Sequential Search (Untuk data yang belum terurut/yang sudah terurut ) # Pencarian yang dimulai dari record-1 diteruskan ke record selanjutnya yaitu record-2, ke-3,\u0026hellip;, sampai diperoleh isi record sama dengan informasi yang dicari (Nilai X).\nKecepatan Waktu Pencarian tergantung pada: Jumlah elemen data dan posisi data yang dicari\nAlgoritma : # Tentukan I = 1 Ketika Nilai (I) \u0026lt;\u0026gt; X Maka Tambahkan I = I +1 Ulangi langkah No. 2 sampai Nilai(I) = X atau I \u0026gt; N Jika I = N+1 Maka Cetak “Pencarian Gagal” selain itu Cetak “ Pencarian Sukses “ Contoh 1:\nData A = { 10, 4, 9, 1, 15, 7 }\nDicari 15\nLangkah pencariannnya:\nLangkah 1: A[1] = 10 Langkah 2: 10 \u0026lt;\u0026gt; 15, maka A[2] = 4 Langkah 3: ulangi langkah 2 Langkah 2: 4 \u0026lt;\u0026gt; 15, maka A[3] = 9 Langkah 2: 9 \u0026lt;\u0026gt; 15, maka A[4] = 1 Langkah 2: 1 \u0026lt;\u0026gt; 15, maka A[5] = 15 Langkah 2: 15 = 15 Langkah 4: “Pencarian Sukses” Contoh 2: Apabila ditemukan kondisi: Nilai (I) = N + 1, maka pencarian tidak ditemukan atau gagal. Dikarenakan jumlah elemen adalah N, N + 1 artinya data yang dicari bukan merupakan elemen data dari N.\nKodingan Program Teknik Sequential/Linier Search\ndef seqSearch(data, key): i = 0 pos = i + 1 # Looping untuk memeriksa data satu per satu dari indeks awal while i \u0026lt; len(data): if data[i] == key: break # Berhenti mencari jika data sudah ditemukan i += 1 pos = i + 1 # Mengecek apakah posisi akhir berada di dalam batas jumlah elemen array if pos \u0026lt;= len(data): print(\u0026#39;data\u0026#39;, key, \u0026#39;ditemukan di posisi\u0026#39;, pos) else: print(\u0026#39;data tidak ditemukan\u0026#39;) return pos # --- Blok pemanggilan fungsi --- data = [10, 4, 9, 1, 15, 7] print(\u0026#34;Array data:\u0026#34;, data) print(\u0026#34;Mencari angka 15...\u0026#34;) seqSearch(data, 15) Hasil Program\ndata 15 ditemukan di posisi 5 Teknik Pencarian MAXMIN # b. Teknik STRAITMAXMIN # Menentukan/mencari elemen max\u0026amp;min. Pada Himpunan yang berbentuk array linear. Analisis waktu tempuh/time complexity yang digunakan untuk menyelesaikan pencarian hingga mendapatkan tingkat kompleksitas yang terbagi atas best case, worst case dan average case Algoritma untuk mencari elemen MaxMin dalam pemrograman Python :\ndef STRAITMAXMIN(A, n): # Inisialisasi nilai max dan min dengan elemen pertama array max = A[0] min = A[0] # Looping dimulai dari elemen kedua (indeks 1) hingga elemen ke-n for i in range(1, n): # Jika elemen saat ini lebih besar dari \u0026#39;max\u0026#39;, perbarui \u0026#39;max\u0026#39; if A[i] \u0026gt; max: max = A[i] # Jika tidak lebih besar, cek apakah ia lebih kecil dari \u0026#39;min\u0026#39; elif A[i] \u0026lt; min: min = A[i] # Cetak hasil akhirnya (berada di luar blok for) print(\u0026#34;Max =\u0026#34;, max, \u0026#34;, Min =\u0026#34;, min) *Keterangan:\nB = Benar\nS = Salah\nflowchart TD %% Node Awal Start([Mulai]) --\u003e Init{{\"max=A[0]\nmin=A[0]\"}} Init --\u003e SetI[\"i=1\"] %% Titik Pengecekan Looping (i \u003c n) SetI --\u003e CekLoop{\"i \u003c n\"} %% Alur jika Benar (B) masuk ke pengecekan max/min CekLoop -- B --\u003e CekMax{\"A[i] \u003e max\"} %% Alur jika Salah (S) dari pengecekan i \u003c n langsung ke Cetak CekLoop -- S --\u003e Cetak[/\"Cetak max \u0026 min\"/] %% Pengecekan Nilai Maximum CekMax -- B --\u003e SetMax[\"max=A[i]\"] CekMax -- S --\u003e CekMin{\"A[i] \u003c min\"} %% Pengecekan Nilai Minimum CekMin -- B --\u003e SetMin[\"min=A[i]\"] %% Semua alur proses bermuara ke increment i+=1 SetMax --\u003e Inc[\"i+=1\"] CekMin -- S --\u003e Inc SetMin --\u003e Inc %% Kembali ke pengecekan awal (Looping) Inc --\u003e CekLoop %% Node Akhir Cetak --\u003e Selesai([Selesai]) Base Case # Pada kasus ini keadaan tercapai jika elemen pada himpunan A disusun secara increasing (menaik). Dengan perbandingan waktu n - 1 kali satuan operasi. Kondisi pencarian yang tercepat/terbaik Contoh :\nTerdapat himpunan A yang berisi 4 buah bilangan telah disusun secara increasing dengan A[0]=2, A[1]=4, A[2]=5, A[3]=10.\nTentukan/cari Bilangan Max\u0026amp;Min serta jumlah operasi perbandingan yang dilakukan.\n*Keterangan\nB = Benar\nS = Salah\nP = Perbandingan\n2 4 5 10 Max 4 5 10 Min 2 2 2 P 1 1 1 Total Perbandingan = 3\nflowchart TD %% Node Awal Start([Mulai]) --\u003e Init{{\"max=A[0]\nmin=A[0]\"}} Init --\u003e SetI[\"i=1\"] %% Titik Pengecekan Looping (i \u003c n) SetI --\u003e CekLoop{\"i \u003c n\"} %% Alur jika Benar (B) masuk ke pengecekan max/min CekLoop -- B --\u003e CekMax{\"A[i] \u003e max\"} %% Alur jika Salah (S) dari pengecekan i \u003c n langsung ke Cetak CekLoop -- S --\u003e Cetak[/\"Cetak max \u0026 min\"/] %% Pengecekan Nilai Maximum CekMax -- B --\u003e SetMax[\"max=A[i]\"] CekMax -- S --\u003e CekMin{\"A[i] \u003c min\"} %% Pengecekan Nilai Minimum CekMin -- B --\u003e SetMin[\"min=A[i]\"] %% Semua alur proses bermuara ke increment i+=1 SetMax --\u003e Inc[\"i+=1\"] CekMin -- S --\u003e Inc SetMin --\u003e Inc %% Kembali ke pengecekan awal (Looping) Inc --\u003e CekLoop %% Node Akhir Cetak --\u003e Selesai([Selesai]) Penyelesaian Best Case:\nUntuk masalah tersebut dapat digunakan procedure STRAITMAXMIN yang menghasilkan bilangan Min=2 \u0026amp; bilangan Max=10, Operasi perbandingan data mencari bilangan MaxMin dari himpunan tersebut (n-1)=3 kali operasi perbandingan. Worst Case # Pada kasus ini terjadi jika elemen dalam himpunan nilai yang terbesar berada di paling depan atau disusun secara decreasing (menurun). Dengan Oprasi perbandingan sebanyak 2(n-1) kali satuan operasi. Kondisi Pencarian Terlama/Terburuk. Contoh :\nMencari elemen MaxMin \u0026amp; jumlah oprasi perbandingan yang dilakukan terhadap himpunan A yang disusun decreasing.\nA[0]=80, A[1]=21, A[2]=6, A[3]=-10\n*Keterangan\nB = Benar\nS = Salah\nP = Perbandingan\n80 21 6 -10 Max 80 80 80 Min 21 6 -10 P 2 2 2 Total Perbandingan = 6\nflowchart TD %% Node Awal Start([Mulai]) --\u003e Init{{\"max=A[0]\nmin=A[0]\"}} Init --\u003e SetI[\"i=1\"] %% Titik Pengecekan Looping (i \u003c n) SetI --\u003e CekLoop{\"i \u003c n\"} %% Alur jika Benar (B) masuk ke pengecekan max/min CekLoop -- B --\u003e CekMax{\"A[i] \u003e max\"} %% Alur jika Salah (S) dari pengecekan i \u003c n langsung ke Cetak CekLoop -- S --\u003e Cetak[/\"Cetak max \u0026 min\"/] %% Pengecekan Nilai Maximum CekMax -- B --\u003e SetMax[\"max=A[i]\"] CekMax -- S --\u003e CekMin{\"A[i] \u003c min\"} %% Pengecekan Nilai Minimum CekMin -- B --\u003e SetMin[\"min=A[i]\"] %% Semua alur proses bermuara ke increment i+=1 SetMax --\u003e Inc[\"i+=1\"] CekMin -- S --\u003e Inc SetMin --\u003e Inc %% Kembali ke pengecekan awal (Looping) Inc --\u003e CekLoop %% Node Akhir Cetak --\u003e Selesai([Selesai]) Penyelesaian Worst Case\nUntuk masalah tersebut dengan proses STRAITMAXMIN adalah elemen max=80 \u0026amp; elemen min=-10, Operasi perbandingan untuk elemen Maxmin tersebut adalah 2(4-1) = 6 kali satuan operasi. Average Case # Digunakan untuk memprediksi jumlah langkah/operasi jika pencarian elemen MaxMin dilakukan pada elemen dalam himpunan yang tersusun secara acak (tidak decreasing/tidak increasing). Jumlah prediksi operasi Perbandingan yang dilakukan adalah ratarata waktu tempuh best case \u0026amp; worst case, yaitu: $$ \\begin{aligned} \u0026\\frac{1}{2} [(n - 1) + 2(n - 1)] \\\\[8pt] \u0026= \\frac{1}{2} (n - 1 + 2n - 2) \\\\[8pt] \u0026= \\frac{1}{2} (3n - 3) = \\frac{3}{2}n - \\frac{3}{2} \\quad \\text{Kali} \\end{aligned} $$ Kondisi Pencarian acak Contoh:\nPada himpuan A yg berisi { 5,-4, 9, 7 } dilakukan pencarian elemen max \u0026amp; min dengan menggunakan proses STRAITMAXMIN. Berapa elemen maxmin yang didapatkan \u0026amp; jumlah oprasi perbandingan yang dilakukan.\n*Keterangan\nB = Benar\nS = Salah\nP = Perbandingan\n5 -4 9 7 Max 5 9 9 Min -4 -4 -4 P 1 2 1 Total Perbandingan = 5\nflowchart TD %% Node Awal Start([Mulai]) --\u003e Init{{\"max=A[0]\nmin=A[0]\"}} Init --\u003e SetI[\"i=1\"] %% Titik Pengecekan Looping (i \u003c n) SetI --\u003e CekLoop{\"i \u003c n\"} %% Alur jika Benar (B) masuk ke pengecekan max/min CekLoop -- B --\u003e CekMax{\"A[i] \u003e max\"} %% Alur jika Salah (S) dari pengecekan i \u003c n langsung ke Cetak CekLoop -- S --\u003e Cetak[/\"Cetak max \u0026 min\"/] %% Pengecekan Nilai Maximum CekMax -- B --\u003e SetMax[\"max=A[i]\"] CekMax -- S --\u003e CekMin{\"A[i] \u003c min\"} %% Pengecekan Nilai Minimum CekMin -- B --\u003e SetMin[\"min=A[i]\"] %% Semua alur proses bermuara ke increment i+=1 SetMax --\u003e Inc[\"i+=1\"] CekMin -- S --\u003e Inc SetMin --\u003e Inc %% Kembali ke pengecekan awal (Looping) Inc --\u003e CekLoop %% Node Akhir Cetak --\u003e Selesai([Selesai]) Penyelesaian kasus acak\nContoh: A = { 5, -4, 9, 7 }\nOperasi Perbandingan : 5 *Penyelesaian kasus acak tidak bisa menggunakan rumus dikarenakan hasil perbandingan akan berada diantara Best Case dan Worst Case Best Case \u0026lt; Average Case \u0026lt; Worst Case\nDimana menggunakan rumus: 3/2 n - 3/2 = 3/2*4 - 3/2 = 4,5\nNote: Penggunaan average case digunakan untuk membandingkan algoritma dimana jika terjadi perbedaan nilai yang lebih baik antara Best Case dan Worst Case seperti merge sort dan quick sort. Dimana best case lebih baik quick sort namun worst case lebih baik merge sort sehingga untuk menentukan algoritma terbaik dilakukan perbandingan average case (Tidak dibahas karena merupakan analisis algoritma yang lebih mendalam)\nKesimpulan Analisis Algoritma # Setiap Algoritma bisa dianalis langkah operasi yang dilakukan untuk menentukan kompleksitasnya Untuk menyatakan suatu algoritma lebih baik bisa dilakukan dengan membandingkan kompleksitas algoritma tersebut secara menyeluruh Jika terjadi perbedaan nilai yang lebih baik antara Best Case dan Worst Case, maka untuk menentukanalgoritma terbaik bisa dilakukan perbandingan Average Case ","date":"26 Januari 2026","externalUrl":null,"permalink":"/id/study/programming/algorithm-logic/10-searching-techniques-and-introduction-to-algorithm-analysis/","section":"Belajar","summary":"","title":"Logika dan Algoritma #10: Teknik Searching dan Pengantar Analisis Algoritma","type":"study"},{"content":"","date":"26 Januari 2026","externalUrl":null,"permalink":"/id/tags/searching/","section":"Tags","summary":"","title":"Searching","type":"tags"},{"content":" Metode Sorting # 1. Pengertian Sorting # Proses pengaturan sederetan data ke dalam suatu urutan atau susunan urutan tertentu. Data yang diurutkan dapat berupa data bilangan, data karakter maupun data string (Sitorus, 2015).\n2. Macam-Macam Metode Sorting: # Selection Sort Bubble Sort Insertion Sort Hal yang mempengaruhi Kecepatan Algoritma Sorting: Jumlah Operasi Perbandingan \u0026amp; Jumlah Operasi pemindahan Data Teknik pengurutan dengan cara pemilihan elemen atau proses kerja dengan memilih elemen data terkecil untuk kemudian dibandingkan \u0026amp; ditukarkan dengan elemen pada data awal, dst s/d seluruh elemen sehingga menghasilkan pola data yang telah disorting.\nPrinsip Kerja dari Teknik Selection Sort ini adalah : # Pengecekan dimulai data ke-1 sampai dengan data ke-n Tentukan index bilangan dengan nilai terkecil dari data bilangan tersebut Tukar bilangan pada index tersebut dengan bilangan pada posisi awal iterasi (I = 0 untuk bilangan pertama) dari data bilangan tersebut Ulangi langkah diatas untuk bilangan berikutnya (I= I+1) sampai n-1 kali Contoh : 22 10 15 3 8 2 Iterasi 1 1 2 3 4 5 6 Langkah 1: 221015382 Langkah 2: 221015382 Langkah 3: 210153822 Langkah 4: Ulangi langkah 2 dan 3 Iterasi 2 Langkah 1: 210153822 Langkah 2: 210153822 Langkah 3: 231510822 Langkah 4: Ulangi langkah 2 dan 3 Iterasi 3 Langkah 1: 231510822 Langkah 2: 231510822 Langkah 3: 238101522 Langkah 4: Ulangi langkah 2 dan 3 Iterasi 4 Langkah 1: 238101522 Langkah 2: 238101522 Langkah 3: 238101522 Langkah 4: Ulangi langkah 2 dan 3 Iterasi 5 Langkah 1: 238101522 Langkah 2: 238101522 Langkah 3: 238101522 Langkah 4: Ulangi langkah 2 dan 3 Iterasi 6 Langkah 1: 238101522 Langkah 2: 238101522 Langkah 3: 238101522 Langkah 4: Ulangi langkah 2 dan 3 ilustrasi 221015382 221015382 210153822 231510822 238101522 238101522 Contoh Program # def SelectionSort(val): # Looping dari indeks paling belakang mundur ke depan for i in range(len(val)-1, 0, -1): Max = 0 # Looping untuk mencari nilai terbesar di sisa array yang belum terurut for l in range(1, i+1): if val[l] \u0026gt; val[Max]: Max = l # Proses pertukaran (swap) nilai terbesar ke posisi paling belakang temp = val[i] val[i] = val[Max] val[Max] = temp # --- Blok pemanggilan fungsi --- Angka = [22, 10, 15, 3, 8, 2] print(\u0026#34;Array sebelum diurutkan:\u0026#34;, Angka) SelectionSort(Angka) print(\u0026#34;Array setelah diurutkan: \u0026#34;, Angka) Hasil Program:\n[2, 3, 8, 10, 15, 22] Bubble Sorting # Metode pengurutan dengan membandingkan data nilai elemen yang sekarang dengan data nilai elemen-elemen berikutnya. Pembandingan elemen dapat dimulai dari awal atau mulai dari paling akhir. Apabila elemen yang sekarang lebih besar (untuk urut menaik) atau lebih kecil (untuk urut menurun) dari elemen berikutnya, maka posisinya ditukar, tapi jika tidak maka posisinya tetap (Harumy et al., 2016). Bubble Sorting (Dari Depan) # Prinsip Kerja dari Bubble Sort adalah : Pengecekan mulai dari data ke-1 sampai data ke-n Bandingkan data ke-1 dengan data sebelahnya (ke-2) Jika lebih besar maka pindahkan bilangan tersebut dengan bilangan yang ada didepannya Jika lebih kecil maka tidak terjadi pemindahan Ulangi langkah 1 s/d 4 sebanyak n-1 kali dengan jumlah data dikurang 1 setiap iterasi Awal: [5, 7, 3, 2, 4]\nIterasi 1: # Bandingkan 5 dan 7. (5 \u0026lt; 7) → Posisi sudah benar, tidak ditukar. [5, 7, 3, 2, 4] Bandingkan 7 dan 3. (7 \u0026gt; 3) → Tukar! [5, 3, 7, 2, 4] Bandingkan 7 dan 2. (7 \u0026gt; 2) → Tukar! [5, 3, 2, 7, 4] Bandingkan 7 dan 4. (7 \u0026gt; 4) → Tukar! [5, 3, 2, 4, 7] Hasil: Angka terbesar (7) sudah berada di posisi paling kanan. Iterasi 2: # Bandingkan 5 dan 3. (5 \u0026gt; 3) → Tukar! [3, 5, 2, 4, 7] Bandingkan 5 dan 2. (5 \u0026gt; 2) → Tukar! [3, 2, 5, 4, 7] Bandingkan 5 dan 4. (5 \u0026gt; 4) → Tukar! [3, 2, 4, 5, 7] Hasil: Angka terbesar kedua (5) menempati posisi benarnya. (Angka 7 tidak perlu dicek lagi). Iterasi 3: # Bandingkan 3 dan 2. (3 \u0026gt; 2) → Tukar! [2, 3, 4, 5, 7] Bandingkan 3 dan 4. (3 \u0026lt; 4) → Posisi sudah benar, tidak ditukar. [2, 3, 4, 5, 7] Hasil: Seluruh array secara tidak sadar sudah terurut dengan benar. Iterasi 4: # Sistem tetap melakukan satu kali pengecekan terakhir dari depan (membandingkan 2 \u0026amp; 3, lalu 3 \u0026amp; 4) untuk memastikan tidak ada lagi elemen yang tertukar. Karena tidak ada pertukaran ( no swap ), proses sorting resmi dihentikan. HASIL BUBBLE SORT (Dari Depan) Awal 5 7 3 2 4 Iterasi 1 5 3 2 4 7 Iterasi 2 3 2 4 5 7 Iterasi 3 2 3 4 5 7 Iterasi 4 2 3 4 5 7 Bubble Sorting (Dari Belakang) # Prinsip Kerja dari Bubble Sort adalah : Pengecekan mulai dari data ke-n sampai data ke-1 Bandingkan data ke-n dengan data sebelahnya (ke-(n-1)) Jika lebih kecil maka pindahkan bilangan tersebut dengan bilangan yang ada didepannya Jika lebih besar maka tidak terjadi pemindahan Ulangi langkah 1 s/d 4 sebanyak n-1 kali dengan jumlah data dikurang 1 setiap iterasi Awal: [5, 7, 3, 2, 4]\nIterasi 1: (Bermula dari indeks paling kanan) # Bandingkan 2 dan 4. (2 \u0026lt; 4) → Posisi sudah betul, tidak ditukar. [5, 7, 3, 2, 4] Bandingkan 3 dan 2. (3 \u0026gt; 2) → Tukar! [5, 7, 2, 3, 4] Bandingkan 7 dan 2. (7 \u0026gt; 2) → Tukar! [5, 2, 7, 3, 4] Bandingkan 5 dan 2. (5 \u0026gt; 2) → Tukar! [2, 5, 7, 3, 4] Hasil: Angka terkecil (2) sudah berada di posisi paling kiri (depan). Iterasi 2: (Abaikan posisi pertama yang sudah terurut) # Bandingkan 3 dan 4. (3 \u0026lt; 4) → Posisi sudah betul, tidak ditukar. [2, 5, 7, 3, 4] Bandingkan 7 dan 3. (7 \u0026gt; 3) → Tukar! [2, 5, 3, 7, 4] Bandingkan 5 dan 3. (5 \u0026gt; 3) → Tukar! [2, 3, 5, 7, 4] Hasil: Angka terkecil kedua (3) sudah berada di posisi yang betul. Iterasi 3: (Abaikan posisi pertama dan kedua) # Bandingkan 7 dan 4. (7 \u0026gt; 4) → Tukar! [2, 3, 5, 4, 7] Bandingkan 5 dan 4. (5 \u0026gt; 4) → Tukar! [2, 3, 4, 5, 7] Hasil: Angka terkecil ketiga (4) sudah berada di posisi yang betul. Secara keseluruhan susunan sudah terurut. Iterasi 4: # Sistem melakukan satu pusingan terakhir untuk memastikan tiada lagi pertukaran yang berlaku (membandingkan 5 dan 7). Kerana tiada pertukaran, proses dihentikan. BUBBLE SORT (Dari Belakang) Awal 5 7 3 2 4 Iterasi 1 2 5 7 3 4 Iterasi 2 2 3 5 7 4 Iterasi 3 2 3 4 5 7 Iterasi 4 2 3 4 5 7 Contoh Program # def BubbleSort(X): # Logika ini sebenarnya adalah Selection Sort for i in range(len(X)-1, 0, -1): Max = 0 for l in range(1, i+1): if X[l] \u0026gt; X[Max]: Max = l # Proses pertukaran (swap) temp = X[i] X[i] = X[Max] X[Max] = temp # --- Blok pemanggilan fungsi --- Hasil = [22, 10, 15, 3, 8, 2] print(\u0026#34;Sebelum:\u0026#34;, Hasil) BubbleSort(Hasil) print(\u0026#34;Sesudah: \u0026#34;, Hasil) [2, 3, 8, 10, 15, 22] Insertion Sort # Pengurutan data yang membandingkan data dengan dua elemen data pertama, kemudian membandingkan elemen-elemen data yang sudah diurutkan, kemudian perbandingan antara data tersebut akan terus diulang hingga tidak ada elemen data yang tersisa (Rahayuningsih, 2016). Mirip dengan cara mengurutkan kartu, perlembar yang diambil \u0026amp; disisipkan (insert) ke tempat yang seharusnya. Prinsip Kerja Insertion Sort adalah:\nPengecekan mulai dari data ke-1 sampai data ke-n Index awal adalah data ke-2 Pengecekan mulai dari data ke-1 sampai data ke-(index-1) Bandingkan data pada posisi index dengan data pengecekan Jika data pada posisi index lebih kecil maka data tersebut dapat disisipkan sesuai dengan posisisi saat pengecekan kemudian geser data sisanya Ulangi langkah diatas untuk index berikutnya (I=I+1) sampai n-1 kali Awal: [5, 7, 3, 2, 4]\nElemen pertama (angka 5) dianggap sebagai bagian yang sudah terurut. Kita akan mulai memeriksa dari elemen kedua.\nIterasi 1: # Ambil elemen kedua, yaitu 7. Bandingkan dengan elemen di sebelah kirinya (5). Karena 7 lebih besar dari 5 (7 \u0026gt; 5), posisinya sudah benar. Hasil: [5, 7, 3, 2, 4] (Bagian terurut sekarang: 5, 7) Iterasi 2: # Ambil elemen ketiga, yaitu 3. Bandingkan 3 dengan elemen-elemen di kirinya dari kanan ke kiri: 3 \u0026lt; 7 (Geser 7 ke kanan) 3 \u0026lt; 5 (Geser 5 ke kanan) Sisipkan 3 di posisi paling depan. Hasil: [3, 5, 7, 2, 4] (Bagian terurut sekarang: 3, 5, 7) Iterasi 3: # Ambil elemen keempat, yaitu 2. Bandingkan 2 dengan elemen-elemen di kirinya (7, 5, 3): 2 \u0026lt; 7 (Geser 7 ke kanan) 2 \u0026lt; 5 (Geser 5 ke kanan) 2 \u0026lt; 3 (Geser 3 ke kanan) Sisipkan 2 di posisi paling depan. Hasil: [2, 3, 5, 7, 4] (Bagian terurut sekarang: 2, 3, 5, 7) Iterasi 4: # Ambil elemen terakhir, yaitu 4. Bandingkan 4 dengan elemen-elemen di kirinya: 4 \u0026lt; 7 (Geser 7 ke kanan) 4 \u0026lt; 5 (Geser 5 ke kanan) -4 \u0026gt; 3 (Berhenti menggeser karena 4 lebih besar dari 3). Sisipkan 4 tepat setelah angka 3. Hasil Akhir: [2, 3, 4, 5, 7] (Seluruh array sudah terurut!). INSERTION SORT Awal 5 7 3 2 4 Iterasi 1 5 7 3 2 4 Iterasi 2 3 5 7 2 4 Iterasi 3 2 3 5 7 4 Iterasi 4 2 3 4 5 7 Contoh Program:\ndef InsertionSort(val): # Mulai dari elemen kedua (indeks 1) karena elemen pertama dianggap sudah di posisinya for index in range(1, len(val)): a = val[index] # \u0026#39;a\u0026#39; adalah nilai yang sedang kita pegang/ingin disisipkan b = index # Selama masih ada elemen di kiri (b\u0026gt;0) DAN elemen di kiri lebih besar dari \u0026#39;a\u0026#39; while b \u0026gt; 0 and val[b-1] \u0026gt; a: # Geser elemen yang lebih besar itu ke kanan val[b] = val[b-1] b = b - 1 # Setelah menemukan posisi yang pas, sisipkan \u0026#39;a\u0026#39; di posisi tersebut val[b] = a # --- Blok pemanggilan fungsi --- Angka = [22, 10, 15, 3, 8, 2] print(\u0026#34;Array sebelum diurutkan:\u0026#34;, Angka) InsertionSort(Angka) print(\u0026#34;Array setelah diurutkan: \u0026#34;, Angka) [2, 3, 8, 10, 15, 22] Kesimpulan Metode Sorting # Bubble sorting membutuhkan waktu komputasi paling lama. Insertion sort dan Selection sort memilki kompleksitas yang sama dengan Bubble sort, tetapi waktunya lebih cepat. ","date":"25 Januari 2026","externalUrl":null,"permalink":"/id/study/programming/algorithm-logic/09-sorting-methods/","section":"Belajar","summary":"","title":"Logika dan Algoritma #09: Metode Sorting","type":"study"},{"content":"","date":"25 Januari 2026","externalUrl":null,"permalink":"/id/tags/sorting-methods/","section":"Tags","summary":"","title":"Sorting Methods","type":"tags"},{"content":"","date":"24 Januari 2026","externalUrl":null,"permalink":"/id/tags/divide-and-conquer/","section":"Tags","summary":"","title":"Divide and Conquer","type":"tags"},{"content":" Metode D And C # Divide # Memilah data nilai elemen–elemen dari rangkaian data menjadi dua bagian dan mengulangi pemilahan hingga satu elemen terdiri maksimal dua nilai (Sonita \u0026amp; Nurtaneo, 2015).\nConquer # Mengurutkan masing-masing data nilai elemen (Sonita \u0026amp; Nurtaneo, 2015).\nPrinsip Dasar # Membagi n input menjadi k subset input yang berbeda (1\u0026lt;k≤n). k subset input tersebut akan terdapat k subproblem. Setiap subproblem mempunyai solusi menjadi k subsolusi. Dari k subsolusi akan mendapatkan solusi yang optimal Jika subproblem masih besar → D and C Bentuk Umum Proses Metode D And C dpt dilihat sebagai berikut: # flowchart TD %% Node Puncak Top[\"n input\"] %% Level 1: Pembagian Input In1[\"n input I\"] In2[\"n input II\"] In3[\"n input III\"] InK[\"n input K\"] %% Level 2: Subproblem Prob1[\"Subproblem I\"] Prob2[\"Subprob. II\"] Prob3[\"Subprob. III\"] ProbK[\"Subprob. K\"] %% Level 3: Subsolusi Sol1[\"Subsolusi I\"] Sol2[\"Subsolusi II\"] Sol3[\"Subsolusi III\"] SolK[\"Subsolusi K\"] %% Node Bawah: Solusi Gabungan Final[\"Solusi Optimal\"] %% --- Alur Panah --- %% Dari Top ke Input cabang Top --\u003e In1 Top --\u003e In2 Top --\u003e In3 Top --\u003e InK %% Dari Input cabang ke Subproblem In1 --\u003e Prob1 In2 --\u003e Prob2 In3 --\u003e Prob3 InK --\u003e ProbK %% Dari Subproblem ke Subsolusi Prob1 --\u003e Sol1 Prob2 --\u003e Sol2 Prob3 --\u003e Sol3 ProbK --\u003e SolK %% Dari Subsolusi digabung ke Solusi Optimal Sol1 --\u003e Final Sol2 --\u003e Final Sol3 --\u003e Final SolK --\u003e Final Metode D AND C Menggunakan teknik Rekursif yang membagi masalah menjadi dua atau lebih submasalah dengan ukuran yang sama. Masalah umum untuk teknik ini seperti pengurutan, perkalian.\nMetode D AND C:\nMerge Sorting Quick Sorting Binary Search Teknik D and C Merge Sort # Menggabungkan dua array yang sudah terurut (Utami, 2017) Metode merge sort merupakan metode yang membutuhkan fungsi rekursif untuk penyelesaiannya. Prinsip Kerja Merge Sort adalah : # Kelompokkan deret bilangan kedalam 2 bagian, 4 bagian, 8 bagian, \u0026hellip;\u0026hellip;dst sampai tinggal sendiri Lakukan pengurutan sesuai dengan kelompok sebelumnya Lakukan pengurutan sejumlah pembagian Contoh 1:\nflowchart TD %% Level 1: Array Awal L1[\"22 | 10 | 15 | 3 | 8 | 2\"] %% Level 2: Pembagian Pertama L2_1[\"22 | 10 | 15\"] L2_2[\"3 | 8 | 2\"] %% Level 3: Pembagian Kedua L3_1[\"22 | 10\"] L3_2[\"15\"] L3_3[\"3 | 8\"] L3_4[\"2\"] %% Level 4: Pembagian Ketiga (Satuan) L4_1[\"22\"] L4_2[\"10\"] L4_3[\"3\"] L4_4[\"8\"] %% Level 5: Penggabungan (Merge) Pertama L5_1[\"10 | 22\"] L5_2[\"15\"] L5_3[\"3 | 8\"] L5_4[\"2\"] %% Level 6: Penggabungan Kedua L6_1[\"10 | 15 | 22\"] L6_2[\"2 | 3 | 8\"] %% Level 7: Hasil Akhir Terurut L7[\"2 | 3 | 8 | 10 | 15 | 22\"] %% --- Alur Panah Divide (Memecah) --- L1 --\u003e L2_1 L1 --\u003e L2_2 L2_1 --\u003e L3_1 L2_1 --\u003e L3_2 L2_2 --\u003e L3_3 L2_2 --\u003e L3_4 L3_1 --\u003e L4_1 L3_1 --\u003e L4_2 L3_3 --\u003e L4_3 L3_3 --\u003e L4_4 %% --- Alur Panah Conquer (Menggabung) --- L4_1 --\u003e L5_1 L4_2 --\u003e L5_1 L3_2 --\u003e L5_2 L4_3 --\u003e L5_3 L4_4 --\u003e L5_3 L3_4 --\u003e L5_4 L5_1 --\u003e L6_1 L5_2 --\u003e L6_1 L5_3 --\u003e L6_2 L5_4 --\u003e L6_2 L6_1 --\u003e L7 L6_2 --\u003e L7 Contoh 2:\nAwal 5 7 3 2 4 Bagi 2 5 7 3 2 4 Bagi 4 5 7 3 2 4 Bagi 8 5 7 3 2 4 Sorting 1 5 7 3 2 4 Sorting 2 3 5 7 2 4 Sorting 3 2 3 4 5 7 def mergeSort(X): print(\u0026#34;Memecah array: \u0026#34;, X) if len(X) \u0026gt; 1: mid = len(X) // 2 lefthalf = X[:mid] righthalf = X[mid:] # Rekursif untuk memecah array menjadi bagian terkecil mergeSort(lefthalf) mergeSort(righthalf) i = j = k = 0 # Proses penggabungan (Merge) kembali secara terurut while i \u0026lt; len(lefthalf) and j \u0026lt; len(righthalf): if lefthalf[i] \u0026lt; righthalf[j]: X[k] = lefthalf[i] i = i + 1 else: X[k] = righthalf[j] j = j + 1 k = k + 1 # Memasukkan sisa elemen dari lefthalf (jika ada) while i \u0026lt; len(lefthalf): X[k] = lefthalf[i] i = i + 1 k = k + 1 # Memasukkan sisa elemen dari righthalf (jika ada) while j \u0026lt; len(righthalf): X[k] = righthalf[j] j = j + 1 k = k + 1 print(\u0026#34;Menggabungkan: \u0026#34;, X) # --- Blok pemanggilan fungsi --- X = [22, 10, 15, 3, 8, 2] print(\u0026#34;Array awal:\u0026#34;, X) print(\u0026#34;-\u0026#34; * 30) mergeSort(X) print(\u0026#34;-\u0026#34; * 30) print(\u0026#34;Hasil akhir:\u0026#34;, X) Hasil Program:\nArray awal: [22, 10, 15, 3, 8, 2] ------------------------------ Memecah array: [22, 10, 15, 3, 8, 2] Memecah array: [22, 10, 15] Memecah array: [22] Menggabungkan: [22] Memecah array: [10, 15] Memecah array: [10] Menggabungkan: [10] Memecah array: [15] Menggabungkan: [15] Menggabungkan: [10, 15] Menggabungkan: [10, 15, 22] Memecah array: [3, 8, 2] Memecah array: [3] Menggabungkan: [3] Memecah array: [8, 2] Memecah array: [8] Menggabungkan: [8] Memecah array: [2] Menggabungkan: [2] Menggabungkan: [2, 8] Menggabungkan: [2, 3, 8] Menggabungkan: [2, 3, 8, 10, 15, 22] ------------------------------ Hasil akhir: [2, 3, 8, 10, 15, 22] Quick Sorting # Merupakan metode yang tercepat Quicksort diperkenalkan oleh C.A.R. Hoare. Quicksort partition exchange sort, karena konsepnya membuat bagian-bagian, dan sort dilakukan perbagian. Pada algoritma quick sort, pemilihan pivot merupaka hal yang menentukan apakah algoritma quicksort tersebut akan memberikan performa terbaik atau terburuk (Nugraheny, 2018). Misal ada N elemen dalam keadaan urut turun, adalah mungkin untuk mengurutkan N elemen tersebut dengan N/2 kali, yakni pertama kali menukarkan elemen paling kiri dengan paling kanan, kemudian secara bertahap menuju ke elemen yang ada di tengah. Tetapi hal ini hanya bisa dilakukan jika tahu pasti bahwa urutannya adalah urut turun.\nSecara garis besar metode ini dijelaskan sebagai berikut, Misal: akan mengurutkan vektor A yang mempunyai N elemen. Pilih sembarang dari vektor tsb, biasanya elemen pertama misalnya X. Kemudian semua elemen tersebut disusun dengan menempatkan X pada posisi J sedemikian rupa sehingga elemen ke 1 sampai ke j-1 mempunyai nilai lebih kecil dari X dan elemen ke J+1 sampai ke N mempunyai nilai lebih besar dari X.\nDengan demikian mempunyai dua buah subvektor, subvektor pertama nilai elemennya lebih kecil dari X, subvektor kedua nilai elemennya lebih besar dari X.\nPada langkah berikutnya, proses diatas diulang pada kedua subvektor, sehingga akan mempunyai empat subvektor. Proses diatas diulang pada setiap subvektor sehingga seluruh vektor semua elemennya menjadi terurutkan.\nflowchart TD %% Level 1: Array Awal L1[\"23 | 45 | 12 | 24 | 56 | 34 | 27 | 23 | 16\"] %% Level 2: Pemecahan Pertama (Pivot 23) L2_1[\"12 | 23 | 16\"] L2_2[\"23\"] L2_3[\"45 | 24 | 56 | 34 | 27\"] L1 -- \"Subvektor Kiri\" --\u003e L2_1 L1 --\u003e L2_2 L1 -- \"Subvektor Kanan\" --\u003e L2_3 %% Level 3 L3_1[\"12\"] L3_2[\"23 | 16\"] L3_3[\"23\"] L3_4[\"24 | 34 | 27\"] L3_5[\"45\"] L3_6[\"56\"] L2_1 --\u003e L3_1 L2_1 --\u003e L3_2 L2_2 --\u003e L3_3 L2_3 --\u003e L3_4 L2_3 --\u003e L3_5 L2_3 --\u003e L3_6 %% Level 4 L4_1[\"12\"] L4_2[\"16\"] L4_3[\"23\"] L4_4[\"23\"] L4_5[\"24\"] L4_6[\"34 | 27\"] L4_7[\"45\"] L4_8[\"56\"] L3_1 --\u003e L4_1 L3_2 --\u003e L4_2 L3_2 --\u003e L4_3 L3_3 --\u003e L4_4 L3_4 --\u003e L4_5 L3_4 --\u003e L4_6 L3_5 --\u003e L4_7 L3_6 --\u003e L4_8 %% Level 5: Hasil Akhir (Satuan Terurut) L5_1[\"12\"] L5_2[\"16\"] L5_3[\"23\"] L5_4[\"23\"] L5_5[\"24\"] L5_6[\"27\"] L5_7[\"34\"] L5_8[\"45\"] L5_9[\"56\"] L4_1 --\u003e L5_1 L4_2 --\u003e L5_2 L4_3 --\u003e L5_3 L4_4 --\u003e L5_4 L4_5 --\u003e L5_5 L4_6 --\u003e L5_6 L4_6 --\u003e L5_7 L4_7 --\u003e L5_8 L4_8 --\u003e L5_9 Contoh 2 Pilih vektor X \u0026rarr; elemen pertama Iterasi 1 22 10 15 3 8 2 22 10 15 3 8 2 22 Iterasi 2 Pilih lagi vektor X berikutnya 10 15 3 8 2 22 10 3 8 2 10 15 22 Iterasi 3 Pilih lagi vektor X berikutnya 3 8 2 10 15 22 3 2 3 8 10 15 22 Binary Search # Binary Search (Untuk data yang sudah terurut) Digunakan mencari sebuah data pada himpunan data-data yang tersusun secara urut, yaitu data yang telah diurutkan dari besar ke kecil/sebaliknya. Proses dilaksanakan pertama kali pada bagian tengah dari elemen himpunan, jika data yang dicari ternyata \u0026lt; elemen bagian atasnya, maka pencarian dilakukan dari bagian tengah ke bawah\nAlgoritma Binary Search\nLow = 1 , High = N Ketika Low \u0026lt;= High Maka kerjakan langkah No .3, Jika tidak Maka kerjakan langkah No.7 Tentukan Nilai Tengah dengan rumus (Low + High) Div 2 Jika X \u0026lt; Nilai Tengah, Maka High = Mid –1, Ulangi langkah 1 Jika X \u0026gt; Nilai Tengah, Maka Low = Mid +1, Ulangi langkah 1 Jika X = Nilai Tengah, Maka Nilai Tengah = Nilai yang dicari Jika X \u0026gt; High Maka Pencarian GAGAL Contoh:\nData A = { 1, 3, 9, 11, 15, 22, 29, 31, 48 } Dicari 3\nLangkah Pencariannya:\nLangkah 1: Low = 1 dan High = 9\nLangkah 2: Low \u0026lt;= High (jika YA ke L-3, jika TDK ke L-7)\nLangkah 3: Mid = (1+9) div 2 = 5 yaitu 15\nLangkah 4: 3 \u0026lt; 15, maka High = 5 – 1 = 4 yaitu 11\nLangkah 1: Low = 1 dan High = 4\nLangkah 2: Low \u0026lt;= High\nLangkah 3: Mid = (1+4) div 2 = 2 yaitu 3\nLangkah 4: 3 \u0026lt; 3, ke langkah 5\nLangkah 5: 3 \u0026gt; 3, ke langkah 6\nLangkah 6: 3 = 3 (Pencarian berhasil)\nKodingan Program Binary Search # def BinSearch(data, key): awal = 0 akhir = len(data) - 1 ketemu = False while (awal \u0026lt;= akhir) and not ketemu: tengah = (awal + akhir) // 2 if key == data[tengah]: ketemu = True print(\u0026#39;data\u0026#39;, key, \u0026#39;ditemukan diposisi\u0026#39;, tengah + 1) elif key \u0026lt; data[tengah]: akhir = tengah - 1 else: awal = tengah + 1 if not ketemu: print(\u0026#39;data tidak ditemukan\u0026#39;) # --- Data uji coba Anda --- data = [1, 3, 9, 11, 15, 22, 29, 31, 48] print(\u0026#34;Array data:\u0026#34;, data) print(\u0026#34;Mencari angka: 3\u0026#34;) print(\u0026#34;-\u0026#34; * 30) BinSearch(data, 3) Hasil Program:\ndata 3 ditemukan diposisi 2 Teknik D AND C # Dengan Prinsip Dasar Metode Divide \u0026amp; Conquer akan dapat dipecahkan suatu permasalahan proses Searching elemen Max\u0026amp;Min dengan teknik D and C\nMenghasilkan solusi optimal menemukan nilai Maximum dan Minimum\nContoh:\nTentukan elemen MaxMin suatu array A yang terdiri dari 9 bilangan :\nA[1] = 22, A[4] = -8, A[7] = 17 A[2] = 13, A[5] = 15, A[8] = 31 A[3] = -5, A[6] = 60, A[9] = 47 Penyelesaian Teknik D and C\nA = {22,13, -5, -8, 15, 60, 17, 31, 47}\nflowchart TD %% Level 1 (Root) N1[\"1,9 | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] %% Level 2 N2_1[\"1,5 | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] N2_2[\"6,9 | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] %% Level 3 N3_1[\"1,3 | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] N3_2[\"4,5 | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] N3_3[\"6,7 | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] N3_4[\"8,9 | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] %% Level 4 N4_1[\"1,2 | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] N4_2[\"3,3 | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] %% --- Alur Panah Pembagian --- N1 --\u003e N2_1 N1 --\u003e N2_2 N2_1 --\u003e N3_1 N2_1 --\u003e N3_2 N2_2 --\u003e N3_3 N2_2 --\u003e N3_4 N3_1 --\u003e N4_1 N3_1 --\u003e N4_2 Penyelesaian Teknik D AND C # Lalu Proses tree call dr setiap elemen yang ditunjuk pada bagan tree tersebut diatas. Dengan cara, membalik terlebih dahulu posisi tree dari bawah ke atas. Lalu mengisinya dengan elemen-elemnnya sesuai dengan bagan tree.\nPerhatikan bagan tree call ini :\nA = { 22, 13, -5, -8, 15, 60, 17, 31, 47 }\nPosisi penggabungan \u0026rarr; Max, Min flowchart TD %% Level 1 (Daun/Posisi Awal di Atas) N12[\"1,2 | 22,13\"] N33[\"3,3 | -5,-5\"] N45[\"4,5 | -8,15\"] N67[\"6,7 | 60,17\"] N89[\"8,9 | 31,47\"] %% Level 2 (Penggabungan Tahap 1) N13[\"1,3 | 22,-5\"] %% Level 3 (Penggabungan Tahap 2) N15[\"1,5 | 22,-8\"] N69[\"6,9 | 60,17\"] %% Level 4 (Akar/Hasil Akhir di Bawah) N19[\"1,9 | 60,-8\"] %% --- Alur Garis (Menggunakan --- untuk garis lurus tanpa panah) --- N12 --- N13 N33 --- N13 N13 --- N15 N45 --- N15 N67 --- N69 N89 --- N69 N15 --- N19 N69 --- N19 ","date":"24 Januari 2026","externalUrl":null,"permalink":"/id/study/programming/algorithm-logic/08-divide-and-conquer-method/","section":"Belajar","summary":"","title":"Logika dan Algoritma #08: Metode Divide and Conquer","type":"study"},{"content":"","date":"23 Januari 2026","externalUrl":null,"permalink":"/id/tags/array/","section":"Tags","summary":"","title":"Array","type":"tags"},{"content":" Larik atau Array # Array adalah Jenis variabel yang dapat digunakan untuk menyimpan sejumlah data dengan tipe yang sama (Kadir, 2017). Array disebut juga tabel, vektor, atau larik Tujuan menggunakan Array: # Dapat melakukan loop atau pengulangan melalui elemen di dalam array dengan mudah dan mengambil nilai yang diperlukan hanya dengan menentukan nomor indeks.\nSetiap elemen dalam array diakses dengan membedakan indeks/subscript arraynya.\nContoh 1:\nA[1] = 3\nA[2] = 5\nA[3] = 10\nContoh 2:\nArray of integer [1,2,3,4,5] index dimulai dari 0 sampai (n-1), dengan n adalah panjang array.\nKode program membuat dan menampilkan array:\nimport numpy as np a = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]) print(a) # Output [[1 2 3 4] [5 6 7 8] [9 10 11 12]] Dimensi Array Terdiri dari: # Array Dimensi Satu Array Dimensi Dua 1. Array Dimensi Satu # Sebuah variabel yang menyimpan sekumpulan data yang memiliki tipe sama dan elemen yang akan diakses hanya melalui 1 indeks atau subskrip.\nBentuk Umum:\nNama_array[jumlah_elemen]\nContoh:\n**Contoh Program Array dimensi 1:\nnilai_tugas = [70, 80, 90, \u0026#34;Keterangan Lulus\u0026#34;] print(\u0026#34;Nilai Tugas:\u0026#34;) print(nilai_tugas) # Output Nilai Tugas: [70, 80, 90, \u0026#39;Keterangan Lulus\u0026#39;] 2. Array Dimensi Dua # Array dimensi dua atau disebut sebagai array bersarang atau nested list Array dimensi dua terdiri dari baris dan kolom Bentuk Umum :\nnama_aray[jumlah_elemen_baris] [jumlah_elemen_kolom]\nContoh:\nContoh Program:\narray=[[\u0026#34;Teknik\u0026#34;,\u0026#34;Kedokteran\u0026#34;,\u0026#34;MIPA\u0026#34;],[1,2,3]] print(array) # Output [[\u0026#39;Teknik\u0026#39;, \u0026#39;Kedokteran\u0026#39;, \u0026#39;MIPA\u0026#39;], [1, 2, 3]] Pada contoh Array dimensi dua maka memperlihatkan array dua dimensi dengan ukuran 2X3 dengan urutan fakultas berdasarkan tingkat kesulitannya. Baris pertama mewakili nama-nama fakultas dan kolom kedua mewakili tingkat kesulitannya.\nMatrik # Matrik adalah Penyajian Data Istilah-istilah dalam matrik seperti: Ordo (Dimensi matriks yang memuat baris dan kolom), elemen, baris dan kolom Contoh: m= baris, n= kolom\nm x n:\na11 a12 a13\u0026hellip;..a1n\na21 a22 \u0026hellip;\u0026hellip;a2n -\u0026gt; elemen\nam1 am2 \u0026hellip;\u0026hellip;amn\n2 1 2\n3 0 1 -\u0026gt; Ordo 3x3\n2 0 0\nHasil:\na11 = 2, a21 = 3, a31 = 2 a12 = 1, a22 = 0, a32 = 0 a13 = 2, a23 = 1, a33 = 0 Matrik dalam Pemrograman Python # Dibuat seperti membuat Array 2 dimensi Biasanya diakses dengan bentuk A[i][j] dimana:\nA = nama matriks I = indeks baris J = indeks kolom\nTerdapat 3 bagian utama pada matriks berordo sama yaitu: Array Dimensi Dua # Diberikan matriks A sebagai berikut :\n1 1 1 1\n0 1 1 1\n0 0 1 1\n0 0 0 1\nPerintah pokok yang digunakan pada pengisian matriks A adalah :\nA[i,j] = 1, jika i \u0026lt;=j , A[i,j] = 0, jika i \u0026gt; j\nProgram:\n# Deklarasi matriks 4x4 matriks = [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]] # Isi matriks 4x4 for i in range(4): for j in range(4): if i == j: matriks[i][j] = 1 if i \u0026lt; j: matriks[i][j] = 1 if i \u0026gt; j: matriks[i][j] = 0 # Cetak bentuk matriks for i in range(4): print(matriks[i]) Latihan # Diberikan matriks A sebagai berikut :\n1 2 3 4\n0 2 3 4\n0 0 3 4\n0 0 0 4\nPerintah pokok yang digunakan pada pengisian matriks A adalah :\nDiberikan algoritma sebagai berikut:\nnilai = [1, 2, 3, 4] for i in range(len(nilai)): nilai[i] = 2 * i + 1 print(nilai[i]) Algoritma di atas akan menghasilkan nilai..\n","date":"23 Januari 2026","externalUrl":null,"permalink":"/id/study/programming/algorithm-logic/07-array/","section":"Belajar","summary":"","title":"Logika dan Algoritma #07: Array","type":"study"},{"content":"Rekursif adalah suatu proses yang bisa memanggil dirinya sendiri.\nContoh konsep penggunaan Rekursif\nMasalah : Memotong Roti tawar tipis-tipis sampai habis\nAlgoritma :\nJika roti sudah habis atau potongannya sudah paling tipis maka pemotongan roti selesai. Jika roti masih bisa dipotong, potong tipis dari tepi rotitersebut, lalu lakukan prosedur 1 dan 2 untuk sisapotongannya. Contoh Fungsi Rekursif # Fungsi pangkat Faktorial Fibonancy Menara Hanoi Fungsi Pangkat # Menghitung 10 pangkat n dengan menggunakan konsep rekursif.\nSecara Notasi pemrograman dapat ditulis :\n100 = 1 \u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip; (1)\n10n 10 * 10n-1 \u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip; (2)\nContoh:\n103 = 10 _ 102\n102 = 10 _ 101\n101 = 10 * 100\n100 = 1\nProgram Fungsi Pangkat # # Fungsi Pangkat Secara Rekursif def pangkat(x, y): if y == 0: return 1 else: return x * pangkat(x, y - 1) x = int(input(\u0026#34;Masukkan Nilai X: \u0026#34;)) y = int(input(\u0026#34;Masukkan Nilai Y: \u0026#34;)) print(\u0026#34;%d dipangkatkan %d = %d\u0026#34; % (x, y, pangkat(x, y))) # Output Masukkan Nilai X: 10 Masukkan Nilai Y: 3 10 dipangkatkan 3 = 1000 Fungsi pangkat akan memanggil dirinya sendiri, yaitu setiap nilai x dan y di input akan dikirim ke fungsi pangkat() melalui parameter variabel x dan y. Selama nilai y bukan 0 maka fungsi pangkat() akan terus memanggil dirinya sendiri, dan nilai y akan selalu berkurang 1 (y-1) sampai kondisi terpenuhi dan perulangan dihentikan Faktorial # 0! = 1\nN! = N x (N-1)! Untuk N \u0026gt; 0\nSecara notasi pemrograman dapat ditulis sebagai :\nFAKT (0) = 1 \u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;. (1)\nFAKT(N) = N * FAKT (N-1) \u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;. (2)\nContoh:\nFAKT(5) = 5 _ FAKT(4)\nFAKT(4) = 4 _ FAKT(3)\nFAKT(3) = 3 _ FAKT(2)\nFAKT(2) = 2 _ FAKT(1)\nFAKT(1) = 1 * FAKT(0)\nPerhitungan Faktorial Secara Rekursif # Hitung 5!, maka dapat dilakukan secara rekursif dengan cara : 5! = 5 * 4!\nSecara rekursif nilai dari 4! Dapat dihitung kembali dengan 4 _ 3!, sehingga 5! Menjadi : 5! = 5 _ 4 * 3!\nSecara rekursif nilai dari 3! Dapat dihitung kembali dengan 3 _ 2!, sehingga 5! Menjadi : 5! = 5 _ 4 _ 3 _ 2!\nSecara rekursif nilai dari 2! Dapat dihitung kembali dengan 2 _ 1, sehingga 5! Menjadi : 5! = 5 _ 4 _ 3 _ 2 * 1 = 120.\nProgram Faktorial # # Fungsi Pangkat secara Rekursif def faktorial(a): if a == 1: return a else: return a * faktorial(a - 1) bil = int(input(\u0026#34;Masukkan Bilangan: \u0026#34;)) print(\u0026#34;%d! = %d\u0026#34; % (bil, faktorial(bil))) # Output Masukkan Bilangan : 5 5! = 120 Masukkan Bilangan : 6 6! = 720 Fungsi Faktorial # Fungsi Faktorial adalah fungsi rekursif karena memanggil fungsinya sendiri. Pada saat dijalankan program akan meminta \u0026ldquo;memasukkan bilangan\u0026rdquo; pada variabel bil, kemudian bilangan tersebut akan dikirim ke fungsi faktorial() lewat parameter a. Selama nilai a tidak sama dengan 1 maka fungsi faktorial akan terus memanggil dirinya sendiri. Perulangan akan berhenti ketika nilai =1 Fibonancy # Deret Fibonancy : 0,1,1,2,3,5,8,13,\u0026hellip;\u0026hellip;\u0026hellip;\nSecara notasi pemrograman dapat ditulis sebagai :\nFibo (1) = 0 \u0026amp; Fibo (2) = 1 \u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;. (1)\nFibo (N) = Fibo (N-1) + Fibo (N-2) \u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip; (2)\nContoh:\nFibo(5) = Fibo(4) + Fibo(3)\nFibo(4) = Fibo(3) + Fibo(2)\nFibo(3) = Fibo(2) + Fibo(1)\nProgram Deret Fibonancy # def fibonacci(n): if n == 0 or n == 1: return n else: return fibonacci(n - 1) + fibonacci(n - 2) x = int(input(\u0026#34;Masukkan Batas Deret Bilangan Fibonacci: \u0026#34;)) print(\u0026#34;Deret Fibonacci:\u0026#34;) for i in range(x): print(fibonacci(i), end=\u0026#39; \u0026#39;) # Output Masukan Batas Deret Bilangan Fibonacci : 5 Deret Fibonacci 0 1 1 2 3 Masukan Batas Deret Bilangan Fibonacci : 8 Deret Fibonacci 0 1 1 2 3 5 8 13 Fungsi Fibonancy # Fungsi fibonancy merupakan fungsi rekursif yang memanggil dirinya sendiri. Bilangan fibonancy adalah bilangan yang memiliki suku awal 0 dan 1, dan suku berikutnya adalah penjumlahan dari dua suku sebelumnya. Fungsi fibonancy akan terus memanggil dirinya ketika (nilai n) bukan bernilai 0 atau 1 dengan melakukan proses penjumlahan (fibonacci(n-1) + fibonacci(n-2)) Konsep Menara Hanoi # Jika n=1, maka langsung pindahkan saja piringan dari tiang A ke tiang C \u0026amp; selesai. Pindahkan n-1 piringan yg paling atas dari tiang A ke tiang B. Pindahkan piringan ke n (piringan terakhir) dari tiang A ke tiang C Pindahkan n-1 piringan dari tiang B ke tiang C Langkah pemindahan tersebut diatas dapat diubah dengan notasi sebagai berikut:\nMenara (n,asal,bantu,tujuan)\nUntuk jumlah piringan n\u0026gt;1 dapat dibagi menjadi 3 notasi penyelesaian Menara (n-1, Asal,Tujuan, Bantu); Menara (n, Asal, Bantu, Tujuan); atau Asal -\u0026gt; Tujuan; Menara (n-1, Bantu, Asal, Tujuan); Langkah-Langkah Pemindahan Piringan # MENARA(1, A, C, B)\nPindahkan cakram dari tiang A ke tiang B: A → B\nMENARA(2, A, B, C)\nPindahkan dua cakram dari tiang A ke tiang C: A → C\nPindahkan satu cakram dari tiang A ke tiang B: A → B\nMENARA(1, B, A, C)\nPindahkan cakram dari tiang B ke tiang C: B → C\nMENARA(3, A, C, B)\nPindahkan tiga cakram dari tiang A ke tiang B: A → B\nPindahkan satu cakram dari tiang A ke tiang C: A → C\nPindahkan dua cakram dari tiang A ke tiang B: A → B\nMENARA(1, C, B, A)\nPindahkan cakram dari tiang C ke tiang A: C → A\nMENARA(2, C, A, B)\nPindahkan dua cakram dari tiang C ke tiang B: C → B\nPindahkan satu cakram dari tiang C ke tiang A: C → A\nMENARA(1, A, C, B)\nPindahkan cakram dari tiang A ke tiang B: A → B\nMENARA(1, A, C, B)\nPindahkan satu cakram dari tiang A ke tiang C: A → C\nMENARA(4, A, B, C)\nPindahkan empat cakram dari tiang A ke tiang B: A → B\nPindahkan satu cakram dari tiang B ke tiang C: B → C\nPindahkan dua cakram dari tiang B ke tiang A: B → A\nPindahkan satu cakram dari tiang C ke tiang B: C → B\nPindahkan tiga cakram dari tiang A ke tiang C: A → C\nPindahkan satu cakram dari tiang A ke tiang B: A → B\nPindahkan dua cakram dari tiang A ke tiang C: A → C\nPindahkan satu cakram dari tiang B ke tiang A: B → A\nPindahkan satu cakram dari tiang B ke tiang C: B → C\nPindahkan satu cakram dari tiang A ke tiang B: A → B\nPindahkan satu cakram dari tiang C ke tiang A: C → A\nMENARA(1, B, A, C)\nPindahkan cakram dari tiang B ke tiang C: B → C\nIlustrasi diatas menghasilkan 15 langkah penyelesaian dari permasalahan konsep menara Hanoi dengan jumlah piringan sebanyak 4 buah 18\nUntuk Video konsep menara hanoi dapat dilihat pada:\nLink\nRumus Langkah Pemindahan :\n2N - 1\nN = Jumlah Piringan\n","date":"22 Januari 2026","externalUrl":null,"permalink":"/id/study/programming/algorithm-logic/06-recursive-structures/","section":"Belajar","summary":"","title":"Logika dan Algoritma #06: Struktur Rekursif","type":"study"},{"content":"","date":"22 Januari 2026","externalUrl":null,"permalink":"/id/tags/recursive-structures/","section":"Tags","summary":"","title":"Recursive Structures","type":"tags"},{"content":"","date":"21 Januari 2026","externalUrl":null,"permalink":"/id/tags/greedy/","section":"Tags","summary":"","title":"Greedy","type":"tags"},{"content":"Instruksi pengulangan (repetition) adalah instruksi yang dapat mengulangi pelaksanaan sederetan instruksi lain berulangkali sesuai dengan persyaratan yang ditentukan. Struktur instruksi perulangan pada dasarnya terdiri atas:\nKondisi perulangan. Suatu kondisi yang harus dipenuhi agar perulangan dapat terjadi Badan (body) perulangan. Deretan instruksi yang akan diulang-ulang pelaksanaannya Pencacah (counter) perulangan. Suatu variabel yang nilainya harus berubah agar perulangan dapat terjadi dan pada akhirnya membatasi jumlah perulangan yang dapat dilaksanakan. Bentuk Perulangan pada Python # Perulangan For Perulangan yang mengerjakan “bagian pernyataan yang sama” secara berulang-ulang berdasarkan syarat atau kondisi yang ditentukan. Perulangan While Perulangan yang mengerjakan perintah selama kondisinya bernilai benar. Loop bersarang (Nested Loop) Perulangan di dalam perulangan. 1. Perulangan For # Bentuk Umum\nFor variable in range: statements Flowchart - For\nMenampilkan Deret Bilangan # Algoritma deret Deklarasi n, i : integer Begin read(n) for i in range n write(i) End # Menampilkan Bilangan Deret n = int(input(\u0026#39;Banyak Data: \u0026#39;)) for i in range(n): print(i) # Output Banyak Data : 5 0 1 2 3 4 Note: pada Python perulangan dengan fungsi Range dimulai dari 0 Penjelasan algoritma: Mula-mula masukkan nilai n misal:5, kemudian terjadi perulangan dengan i=0 sampai n. Pengulangan dikerjakan selama kondisi bernilai true. Kemudian write (i) menghasilkan keluaran 0 dst, proses diulang lagi sampai dengan i kurang dari nilai n.\nPerintah n i=0..n i Output read(n) 5 i=0: write(i) true 0 0 i=1: write(i) true 1 1 i=2: write(i) true 2 2 i=3: write(i) true 3 3 i=4: write(i) true 4 4 i=5: write(i) false 2. Perulangan While # Perulangan akan terus dilaksanakan selama kondisi bernilai True/benar\nBentuk Umur\nwhile kondisi: statement(s) Flowchart Perulangan While\nAda instruksi yang berkaitan dengan kondisi sebelum masuk ke while sehingga kondisi ini benar (terpenuhi) dan pengulangan bisa dilaksanakan. Ada suatu instruksi di antara instruksi-instruksi yang diulang yang mengubah nilai variabel perulangan agar pada saat kondisi perulangan tidak terpenuhi sehingga perulangan berhenti. Menampilkan Deret Bilangan Genap # Algoritma deret Deklarasi n, x : integer Begin read(n) x \u0026lt;- 2 while x \u0026lt;= n do write(x) x \u0026lt;- x + 2 End # Menampilkan Deret Bilangan Genap n = int(input(\u0026#39;Masukkan Nilai N: \u0026#39;)) x = 2 while x \u0026lt;= n: print(x, end=\u0026#34; \u0026#34;) x = x + 2 # Output Massukan Nilai N : 8 2 4 6 8 Mula-mula inputkan nilai n = 8, kemudian x diberi nilai 2, setelah itu x dibandingkan dengan n. Jika (x\u0026lt;=n) bernilai benar maka x ditampilkan kemudian x ditambah 2 dan menghasilkan nilai x baru. Setelah itu data kembali keatas dan menguji (X\u0026lt;=N) bernilai benar, jika ya proses yang sama dgn sebelumnya dilakukan kembali. Demikian seterusnya sampai (x\u0026lt;=n) bernilai salah.\nTabel Penyimpanan Deret # Algoritma while untuk menampilkan angka 1 hingga 15 # Algoritma Perulangan_while {mencetak angka 1 hingga 15} Deklarasi angka =1 Deskripsi while angka \u0026lt;= 15: cetak angka angka \u0026lt;- angka + 1 Program Python Mencetak bilangan 1 sampai 15 # # Perulangan While angka = 1 while angka \u0026lt;= 15: print (\u0026#34;Bilangan ke-: \u0026#34;, angka) angka = angka + 1 print (\u0026#34;Terima Kasih\u0026#34;) # Output Hasil Running : Bilangan ke-: 1 Bilangan ke-: 2 Bilangan ke-: 3 Bilangan ke-: 4 Bilangan ke-: 5 Bilangan ke-: 6 Bilangan ke-: 7 Bilangan ke-: 8 Bilangan ke-: 9 Bilangan ke-: 10 Bilangan ke-: 11 Bilangan ke-: 12 Bilangan ke-: 13 Bilangan ke-: 14 Bilangan ke-: 15 Terima Kasih Program Python Mencetak bilangan Menurun 10 sampai 1 # # Perulangan While # Mencetak bilangan 10 sampai 1 bil = 10 while bil \u0026gt; 0: print(bil) bil = bil - 1 print(\u0026#34;Hasil Mencetak Bilangan Secara Menurun\u0026#34;) # Output 10 9 8 7 6 5 4 3 2 1 Hasil Mencetak Bilangan Secara Menurun Program Python Menentukan Bilangan Prima atau tidak # # Input bilangan bilangan = int(input(\u0026#34;Masukkan Bilangan: \u0026#34;)) # Bilangan prima harus lebih besar dari 1 if bilangan \u0026gt; 1: for i in range(2, bilangan): if (bilangan % i) == 0: print(bilangan, \u0026#34;bukan bilangan prima\u0026#34;) print(i, \u0026#34;kali\u0026#34;, bilangan // i, \u0026#34;=\u0026#34;, bilangan) break else: print(bilangan, \u0026#34;adalah bilangan prima\u0026#34;) # Bila bilangan kurang atau sama dengan satu else: print(bilangan, \u0026#34;bukan bilangan prima\u0026#34;) # Output Masukkan Bilangan : 137 137 adalah bilangan prima Masukkan Bilangan : 147 147 bukan bilangan prima 3 kali 49 = 147 Perintah BREAK; # Berfungsi untuk keluar dari suatu loop for atau while bentuk umumnya adalah:\n... ... break ... ... Program Python Menggunakan Perintah Break # # Perintah break pada perulangan for # Program akan keluar setelah mencetak angka sampai 6 karena perintah break bil = 6 for i in range(0, 10): print(i) if i == bil: break # Output 0 1 2 3 4 5 6 Note: Looping akan dikerjakan terus sampai dipaksa keluar oleh instruksi break; Perintah Continue: # Fungsi Continue akan melakukan pengulangan mulai dari awal lagi.\n# Penggunaan continue pada while bil = 0 pilihan = \u0026#39;y\u0026#39; while (pilihan != \u0026#39;n\u0026#39;): bil = int(input(\u0026#34;Masukkan bilangan dibawah 50: \u0026#34;)) if (bil \u0026gt; 50): print(\u0026#34;Bilangan melebihi angka 50, Silahkan diulangi.\u0026#34;) continue print(\u0026#34;Pangkat dua dari bilangan ini adalah: \u0026#34;, bil * bil) pilihan = input(\u0026#34;Apakah Anda ingin mengulang kembali (y/n)? \u0026#34;) # Output Masukkan bilangan dibawah 50: 20 Pangkat dua dari bilangan ini adalah: 400 Apakah Anda ingin mengulang kembali (y/n)? y Masukkan bilangan dibawah 50: 36 Pangkat dua dari bilangan ini adalah: 1296 Apakah Anda ingin mengulang kembali (y/n)? y Masukkan bilangan dibawah 50: 70 Bilangan melebihi angka 50, Silahkan diulangi. Masukkan bilangan dibawah 50: 25 Pangkat dua dari bilangan ini adalah: 625 Apakah Anda ingin mengulang kembali (y/n)? n 3. Nested Loop (Loop Bersarang) # Bentuk Umum Nested While:\nWhile kondisi: while kondisi: statement(s) statement(s) Bentuk Umum Nested For:\nfor variabel in range: for variabel in range: statement(s) statement(s) Program Python Menggunakan Nested While Mencetak Bil. Prima antara 1 - 50 # # Program Menggunakan Nested While # Untuk mencetak bilangan prima antara 1 sampai 50 i = 2 while(i \u0026lt; 50): j = 2 while(j \u0026lt;= (i/j)): if not(i % j): break j = j + 1 if (j \u0026gt; i/j): print(i, \u0026#34;adalah Bilangan Prima\u0026#34;) i = i + 1 print(\u0026#34;Terima Kasih\u0026#34;) # Output 2 adalah Bilangan Prima 3 adalah Bilangan Prima 5 adalah Bilangan Prima 7 adalah Bilangan Prima 11 adalah Bilangan Prima 13 adalah Bilangan Prima 17 adalah Bilangan Prima 19 adalah Bilangan Prima 23 adalah Bilangan Prima 29 adalah Bilangan Prima 31 adalah Bilangan Prima 37 adalah Bilangan Prima 41 adalah Bilangan Prima 43 adalah Bilangan Prima 47 adalah Bilangan Prima Terima Kasih Program Python # Membuat Program untuk mencetak bilangan genap 1 sampai 10: for i in range(2,12,2): print(i) # Output 2 4 6 8 10 Membuat program menjumlahkan Bilangan 1 sampai 10 jum = 0 for i in range(10): i = i + 1 print(i) jum = jum + i print(\u0026#34;Jumlah Bilangan 1 - 10 adalah: \u0026#34;, jum) #Output 1 2 3 4 5 6 7 8 9 10 Jumlah Bilangan 1 - 10 adalah: 55 Membuat program untuk menggambar segitiga siku-siku dengan melakukan masukan bilangan bulat. Format Masukan \u0026amp; keluaran:\nMasukan adalah bilangan bulat dengan range : 1 ≤ 𝑁 ≤ 100.\nKeluaran program adalah karakter \u0026lsquo;*\u0026rsquo; yang menggambarkan pola segitiga siku-siku.\n# Meminta input bilangan bulat positif dari pengguna n = int(input(\u0026#34;Masukkan Bilangan Bulat Positif: \u0026#34;)) # Validasi input, pastikan n adalah bilangan bulat positif if n \u0026lt;= 0: print(\u0026#34;Masukan tidak valid. Masukkan bilangan bulat positif.\u0026#34;) else: # Melakukan perulangan nested for untuk menghasilkan pola siku-siku for i in range(0, n): for j in range(0, i + 1): print(\u0026#39;* \u0026#39;, end=\u0026#39;\u0026#39;) print(\u0026#39;\u0026#39;) # Pindah ke baris berikutnya setelah setiap baris bintang selesai # Output * * * * * * * * * * * * * * * ","date":"21 Januari 2026","externalUrl":null,"permalink":"/id/study/programming/algorithm-logic/05-looping/","section":"Belajar","summary":"","title":"Logika dan Algoritma #05: Looping","type":"study"},{"content":" Greedy diambil dari bahasa inggris berarti rakus, tamak, loba, serakah. Prinsip greedy: “Take What You Can Get Now!”. Algoritma greedy membentuk solusi langkah perlangkah (step by step). Greedy adalah strategi pencarian untuk masalah optimasi berbasis prinsip: pada setiap tahap, pilih solusi paling baik. Dengan harapan, semua tahapan ini akan menemukan solusi terbaik untuk masalah tersebut. Algoritma greedy termasuk sederhana dan tidak rumit (Santosa and Ai, 2017). Untuk mendapatkan solusi optimal dari permasalahan yang mempunyai dua kriteria yaitu:\nFungsi Tujuan/Utama Nilai pembatas (constrain) Proses Kerja Metode Greedy:\nUntuk menyelesaikan suatu permasalahan dengan n input data yang terdiri dari beberapa fungsi pembatas \u0026amp; 1 fungsi tujuan yang diselesaikan dengan memilih beberapa solusi yang mungkin (feasible solution/feasible sets), yaitu bila telah memenuhi fungsi tujuan/obyektif.\nContoh Persoalan Optimasi:\n(Masalah Penukaran Uang):\nDiberikan uang senilai A. Tukar A dengan koin-koin uang yang ada. Berapa jumlah minimum koin yang diperlukan untuk penukaran tersebut?\nContoh 1: tersedia banyak koin 1, 5, 10, 25\nUang senilai A = 32 dapat ditukar dengan banyak cara berikut:\n32 = 1 + 1 + … + 1 (32 koin)\n32 = 5 + 5 + 5 + 5 + 10 + 1 + 1 (7 koin)\n32 = 10 + 10 + 10 + 1 + 1 (5 koin)\n… dst\nMinimum: 32 = 25 + 5 + 1 + 1 (4 koin) Metode GREEDY digunakan dalam penyelesaian masalah-masalah :\nOptimal On Tape Storage Problem Knapsack Problem 1. Optimal On Tape Storage Problem # Permasalahan bagaimana mengoptimalisasi storage/memory dalam komputer agar data yg disimpan dapat termuat dengan optimal.\nMisalkan terdapat n program yang akan disimpan didalam pita (tape). Pita tersebut mempunyai panjang maksimal sebesar L, masing-masing program yang akan disimpan mempunyai panjang L1,L2,L3\u0026hellip;,Ln . Cara penyimpanan adalah terurut (sequential).\nPenerapan dari Optimal On Tape Storage Problem adalah: # Terdapat pada Pita Kaset Media penyimpanan pada abad 19 Sebelum era digitalisasi pada abad 20 Kriteria Greedy pada Optimal On Tape Storage Problem: # Fungsi tujuan: Optimal Storage = \\( \\displaystyle D(I) = \\sum*{j=1}^{n} \\sum*{k=1}^{j} l_{ik} \\)\nFungsi Pembatas : Mean Retrieval Time (MRT) = \\( \\displaystyle \\sum_{j=1}^{n} t_j / n \\)\nContoh soal:\nPenyimpanan pada pita kaset terdapat 3 file lagu dengan durasi waktu 5 menit,10 menit, 3 menit. Tentukan urutannya agar dapat menghemat media penyimpanannya?\nPenyelesaiannya:\nMenemukan 2 kriteria greedy\nFungsi tujuan: optimalisasi media penyimpanan Fungsi pembatas : waktu akses file (Mean Retrieval Time)\nMencari Feasible Solution\nAlternatif solusi yang dapat digunakan untuk memperoleh optimal solution\nJumlah Feasible Solution untuk 3 buah file input adalah: N Faktorial dimana N: Jumlah File 3!=3x2x1=6\nMenghitung Fungsi Tujuan \u0026amp; Fungsi Pembatas\nOrdering Panjang D (I) MRT 1,2,3 5,10,3 5 + (5+10) + (5+10+3) = 38 38/3=12,66 1,3,2 5,3,10 5 + (5+3) + (5+3+10) = 31 31/3=10,33 2,1,3 10,5,3 10 + (10+5) + (10+5+3) = 43 43/3=14,33 2,3,1 10,3,5 10 + (10+3) + (10+3+5) = 41 41/3=13,66 3,1,2 3,5,10 3 + (3+5) + (3+5+10) = 29 29/3=9,66 3,2,1 3,10,5 3 + (3+10) + (3+10+5) = 34 34/3=11,33 (L1,L2,L3) = (5,10,3)\nDari tabel tersebut, didapat susunan/order yang optimal,sbb :\nsusunan pertama untuk program ke tiga susunan kedua untuk program kesatu susunan ketiga untuk program kedua Kunci dari permasalahan Optimal On Tape Storage Problem adalah Susunan File dari ukuran Kecil Kebesar (Increasing)\n2. KNAPSACK Problem # Knapsack adalah tas atau karung Karung digunakan memuat objek, tentunya tidak semua objek dapat ditampung di dalam karung. Karung hanya dapat menyimpan beberapa objek dengan total ukurannya (weight) lebih kecil atau sama dengan ukuran kapasitas karung. Gambar ilustrasi terdapat tas berkapasitas 15kg, ada 5 barang dengan berat dan keuntungannya masing-masing. Persoalannya adalah barang mana saja yang harus dimasukan ke dalam tas (Aristi, 2015)..\nKasus:\nTerdapat n obyek (Xi;i=1,2,3,\u0026hellip;.n) Masing-masing mempunyai berat (weight)/Wi Masing-masing memiliki nilai (profit)/Pi yang berbeda-beda. Masalah KNAPSACK Problem # Bagaimana obyek-obyek tersebut dimuat/dimasukan kedalam ransel (knapsack) yang mempunyai kapasitas max=M.\nSehingga timbul permasalahan sbb:\nBagaimana memilih obyek yang akan dimuat dari n obyek yang ada sehingga nilai obyek termuat jumlahnya sesuai dengan kapasitas( M) Jika semua obyek harus dimuat ke dalam ransel maka berapa bagian dari setiap obyek yang ada dapat dimuat ke dalam ransel sedemikian sehingga nilai kumulatif max \u0026amp; sesuai dengan kapasitas ransel ? Penyelesaian Knapsack Problem dapat dilakukan dengan: # Secara Matematika Kriteria Greedy Algoritma Pemrograman Greedy 1. Penyelesaian Knapsack Secara Matematika # Fungsi tujuan = fungsi utama/obyektif\nFungsi yang menjadi penyelesaian permasalahan dengan mendapatkan solusi yang optimal.\nSolusi dimaksud = menemukan nilai/profit yanggmaksimal untuk jumlah obyek yang dimuat dalam ransel sehingga sesuai kapasitas.\nFungsi Tujuan Maksimum : \\( \\displaystyle \\sum_{i=1}^{n} P_i X_i \\)\nFungsi pembatas = fungsi subyektif\nFungsi yang bertujuan untuk memberikan batas maksimal dari setiap obyek untuk dapat dimuat dalam ransel sehingga kapasitasnya tidak melebihi dari jumlah maksimal daya tampung ransel.\nFungsi Pembatas : \\( \\displaystyle \\sum_{i=1}^{n} W_i X_i \\le M \\)\ndimana : 0 \\(\\le\\) Xi \\(\\le\\) 1; Pi \u0026gt;0;Wi\u0026gt;0\nCatatan : karena dengan menggunakan Matematika sangat sulit dan rumit maka tidak dibahas lebih mendalam.\n2. Penyelesaian Dengan Kriteria Greedy # Konsep dari kriteria yang ditawarkan oleh metode Greedy yaitu :\nPilih obyek (barang) dengan nilai Pi maximal atau terbesar Pilih obyek (barang) dengan berat Wi minimal dahulu. Pilih obyek (barang) dgn perbandingan nilai \u0026amp; berat yaitu Pi/Wi yang terbesar. Contoh:\nDiketahui bahwa kapasitas M = 20kg\nDengan jumlah barang n=3\nBerat Wi masing-masing barang\n(W1, W2, W3) = (18, 15, 10) Nilai Pi masing-masing barang\n(P1, P2, P3) = (25, 24, 15) Pilih barang dengan Nilai Profit Maksimal\nP1 = 25 -\u0026gt; X1 = 1, dimisalkan sebagai atas atas nilai P2 = 24 -\u0026gt; X2 = 2/15, dihitung dengan Fungsi Pembatas P3 = 15 -\u0026gt; X3 = 0, dimisalkan sebagai batas bawah nilai Penyelesaian Soal Kriteria Greedy\nPenyelesaiannya:\nBarang nilai profit terbesar adalah barang ke-1, maka yang pertama kali dipilih adalah barang ke-1 sebanyak \\( X_1 = 1 \\) Setelah barang ke-1 terpilih, maka sisa kapasitas ransel adalah 20 kg - 18 kg = 2 kg. Kemudian pilih barang ke-2 sebanyak \\( X_2 \\) = sisa kapasitas ransel / \\( W_2 \\) = 2/15 Setelah barang ke-2 terpilih, sisa kapasitas ransel = 0 Kg, sehingga barang ke-3 tidak terpilih → \\( X_3 = 0 \\) \\( (X_1, X_2, X_3) = (1, 2/15, 0) \\) adalah feasible solution Pilih barang dengan Berat Minimal\nW1 = 18 -\u0026gt; X1 = 0, sebagai batas bawah W2 = 15 -\u0026gt; X2 = 2/3,dihitung dgn Fungsi Pembatas W3 = 10 -\u0026gt; X3 = 1, sebagai batas atas Penyelesaiannya:\nBarang dengan berat terkecil adalah barang ke-3, maka yang terpilih adalah barang ke-3 sebanyak \\( X_3 = 1 \\) Setelah barang ke-3 terpilih, maka sisa kapasitas ransel adalah 20kg - 10kg = 10kg Pilih barang ke-2 sebanyak \\( X_2 \\) = Sisa Kapasitas ransel / \\( W_2 \\) = 10/15 = 2/3 Setelah barang ke-2 terpilih, sisa kapasitas ransel adalah 0Kg, artinya barang ke-1 tidak terpilih → \\( X_1 = 0 \\) \\( (X_1, X_2, X_3) = (0, 2/3, 1) \\) adalah feasible solution Pilih barang dengan menghitung perbandingan yang terbesar dari\nProfit dibagi Berat (Pi/Wi) yang diurut secara tidak naik, yaitu :\nP1/W1 = 25/18 =1.38-\u0026gt; karena terkecil maka X1 = 0 P2/W2 = 24/15 =1.6-\u0026gt; karena terbesar maka X2 = 1 P3/W3 = 15/10 =1.5-\u0026gt; dengan Fungsi pembatas X3 = 1/2 Penyelesaiannya:\nBarang dengan \\( (P_i/W_i) \\) terbesar adalah barang ke-2, maka yang pertama kali dipilih adalah barang ke-2 sebanyak \\( X_2 = 1 \\) Setelah barang ke-2 terpilih, maka sisa kapasitas ransel adalah 20kg - 15kg = 5kg Kemudian pilih barang ke-3 sebanyak \\( X_3 \\) = sisa kapasitas ransel / \\( W_3 \\) = 5/10 = 1/2 Setelah barang ke-3 terpilih, sisa kapasitas ransel adalah 0kg, maka barang ke-1 tidak terpilih → \\( X_1 = 0 \\) \\( (X_1, X_2, X_3) = (0, 1, 1/2) \\) adalah feasible solution Dibuatkan tabel berdasarkan elemen dr ke-3 kriteria metode Greedy\nSolusi ke \\( (X_1, X_2, X_3) \\) \\( \\sum W_i X_i \\) \\( \\sum P_i X_i \\) Pi Max ( 1, 2/15, 0 ) 20 (25.1) + (24.(2/15)) + (15.0) = 28.2 Wi Min ( 0, 2/3, 1 ) 20 (25.0) + (24.(2/3)) + (15.1) = 31 Pi/Wi max ( 0, 1, 1/2 ) 20 (25.0) + (24.1) + (15.(1/2)) = 31.5 Nilai profit maksimal = 31.5 dengan komposisi yang sama\n3. Penyelesaian Algoritma Pemrograman Greedy # Algoritma GREEDY KNAPSACK\nPROCEDURE GREEDY_KNAPSACK (P, W, X, n) REAL P(1:n), W(1:n), X(1:n), M, isi INTEGER i, n X(1:n) = 0 isi = M FOR i = 1 TO n DO IF W(i) \u0026gt; isi THEN EXIT ENDIF X(i) = 1 isi = isi - W(i) REPEAT IF i ≤ n THEN X(i) = isi / W(i) ENDIF END GREEDY_KNAPSACK Keterangan:\nn = Jumlah objek\nWi = Bobot setiap objek\nPi = Profit setiap objek\nXi = Probabilitas setiap objek\nM = Kapasitas media\npenyimpanan\nEfektif jika data (Pi/Wi) disusun secara tidak naik lebih dahulu.\nPenyelesaiannya :\nDengan Algoritma Pemrograman Greedy.\nDiket. bhw kapasitas M = 20kg, degan jumlah barang n=3\nBerat Wi masing2 barang = (W1, W2, W3) = (18, 15, 10)\nNilai Pi masing2 barang = (P1, P2, P3) = (25, 24, 15)\nLakukan pengurutan secara tdk naik terhadap hasil Pi/Wi, misalnya :\nP1/Wi -\u0026gt; 25/18 = 1,39 menjadi urutan ke 3 P2/W2 -\u0026gt; 24/15 = 1,60 menjadi urutan ke 1 P3/W3 -\u0026gt; 15/10 = 1.50 menjadi urutan ke 2 Sehingga menghasilkan pola urutan data yg baru,yaitu\nW1,W2,W3 -\u0026gt; 15, 10, 18 dan\nP1,P2,P3 -\u0026gt; 24, 15, 25\nLalu data\\(_2\\) tsb diinput’ kpd Alg. Greedy, terjadi proses :\nInisialisasi Awal:\n\\( X(1:n) \\leftarrow 0 \\) ; isi \\( \\leftarrow 20 \\) ; \\( i = 1 \\) Proses Perulangan:\nUntuk \\( i = 1 \\):\nCek kondisi: \\( W(1) \u0026gt; \\text{isi} \\) ? → \\( 15 \u0026gt; 20 \\) ? → Kondisi SALAH Karena salah, maka \\( X(1) = 1 \\) → Berarti bahwa barang tersebut dapat dimuat seluruhnya. isi = 20 - 15 = 5 → Kapasitas ransel berkurang, tersisa 5 kg. Untuk \\( i = 2 \\):\nCek kondisi: \\( W(2) \u0026gt; \\text{isi} \\) ? → \\( 10 \u0026gt; 5 \\) ? → Kondisi BENAR Karena benar, maka \\( X(2) = 5 / 10 = 1/2 \\) → Benda 10 kg hanya dapat dimuat setengah (1/2) bagian, yaitu 5 kg. Untuk \\( i = 3 \\):\nENDIF → Proses diakhiri karena ransel sudah penuh (kapasitas maksimal 20 kg). Sehingga, \\( X(3) = 0 \\). Total Profit: Profit nilai yang didapat adalah penjumlahan dari \\( P_1 X_1 + P_2 X_2 + P_3 X_3 \\), yaitu: \\( (24 \\times 1) + (15 \\times 1/2) + (18 \\times 0) \\) \\( = 24 + 7.5 + 0 = \\mathbf{31.5} \\)\nPenyelesaiannya:\nx(1:n) \u0026lt;- 0 ; isi \u0026lt;- 20 ; i = 1\nFOR i \u0026lt;- 1 TO 3\nSaat \\( i=1 \\) Apakah \\( W[1] \u0026gt; \\text{isi} \\)? → \\( 15 \u0026gt; 20 \\)?\n\\( x[1] \\leftarrow 1 \\) → barang dapat dimuat seluruhnya \\( \\text{isi} = 20 - 15 = 5 \\) → sisa kapasitas 5kg Saat \\( i=2 \\) Apakah \\( W[2] \u0026gt; \\text{isi} \\)? → \\( 10 \u0026gt; 5 \\)? → exit\nApakah \\( i \\le n \\)? → \\( 2 \\le 3 \\)? \\( x[2] = \\text{isi}/W[2] = 5/10 = 1/2 \\) → benda 10kg dimuat 1/2 bagian = 5 ENDIF → diakhiri karena ransel sudah penuh (max = 20kg)\nProfit nilai : \\( P_1 + P_2 + P_3 \\) yaitu: \\( 24(1) + 15(1/2) + 18(0) = 24 + 7,5 = 31,5 \\)\nKodingan Program\n# Program Penyelesaian algoritma greedy pada knapsack def fractional_knapsack(value, weight, capacity): # Menyimpan daftar indeks barang (0, 1, 2, dst.) index = list(range(len(value))) # Menghitung rasio value/weight untuk masing-masing barang ratio = [v/w for v, w in zip(value, weight)] # Mengurutkan indeks barang berdasarkan rasio terbesar ke terkecil (Descending) index.sort(key=lambda i: ratio[i], reverse=True) max_value = 0 fractions = [0] * len(value) for i in index: if weight[i] \u0026lt;= capacity: # Jika kapasitas sisa masih cukup untuk menampung seluruh berat barang ini fractions[i] = 1 max_value += value[i] capacity -= weight[i] else: # Jika kapasitas sisa tidak cukup, ambil sebagian saja (fraksi) fractions[i] = capacity / weight[i] max_value += value[i] * (capacity / weight[i]) break # Hentikan perulangan karena ransel pasti sudah penuh return max_value, fractions # --- Blok Eksekusi Program Utama --- n = int(input(\u0026#39;Enter number of items: \u0026#39;)) # Mengambil input value (profit) dan diubah menjadi list integer value = input(\u0026#39;Enter the values of the {} item(s) in order: \u0026#39;.format(n)).split() value = [int(v) for v in value] # Mengambil input weight (berat) dan diubah menjadi list integer weight = input(\u0026#39;Enter the positive weights of the {} item(s) in order: \u0026#39;.format(n)).split() weight = [int(w) for w in weight] capacity = int(input(\u0026#39;Enter maximum weight: \u0026#39;)) # Memanggil fungsi dan menyimpan hasil return-nya max_value, fractions = fractional_knapsack(value, weight, capacity) # Menampilkan hasil akhir print(\u0026#39;\\nThe maximum value of items that can be carried:\u0026#39;, max_value) print(\u0026#39;The fractions in which the items should be taken:\u0026#39;, fractions) Output:\nEnter number of items: 3 Enter the values of the 3 item(s) in order: 25 24 15 Enter the positive weights of the 3 item(s) in order: 18 15 10 Enter maximum weight: 20 The maximum value of items that can be carried: 31.5 The fractions in which the items should be taken: [0, 1, 0.5] ","date":"21 Januari 2026","externalUrl":null,"permalink":"/id/study/programming/algorithm-logic/11-greedy-method/","section":"Belajar","summary":"","title":"Logika dan Algoritma #11: Metode Greedy","type":"study"},{"content":"","date":"21 Januari 2026","externalUrl":null,"permalink":"/id/tags/looping/","section":"Tags","summary":"","title":"Looping","type":"tags"},{"content":"","date":"20 Januari 2026","externalUrl":null,"permalink":"/id/tags/branching/","section":"Tags","summary":"","title":"Branching","type":"tags"},{"content":"Struktur Percabangan dalam pemrograman python, yaitu:\nStruktur Percabangan if Struktur Percabangan if else Struktur Percabangan if elif else Struktur Percabangan nested if 1. Struktur Percabangan if # Struktur percabangan if digunakan untuk satu pilihan keputusan. Jika kondisi True/benar maka statement dikerjakan, Jika kondisi False/salah maka statement tidak dikerjakan.\nBentuk Umum\nif kondisi: statement diagram alir if:\nContoh kondisi id # Jika Nilai Ujian \u0026gt;= 70, maka cetak \u0026ldquo;Selamat Anda Lulus Ujian\u0026rdquo;. Penulisan kode program python sbb:\n# struktur Percabangan if Nilai = input(\u0026#39;Masukan Nilai Anda: \u0026#39;) if Nilai \u0026gt;= \u0026#39;70\u0026#39;: print(\u0026#39;Selamat Anda Lulus Ujian\u0026#39;) # Output 75 Selamat Anda Lulus Ujian 2. Struktur Percabangan if else # Percabangan if \u0026hellip; Else akan menyeleksi kondisi jika bernilai True/benar maka statement1 dijalankan, jika kondisi bernilai False/salah maka statement2 dijalankan.\nBentuk Umum:\nif kondisi: statement1 else: statement2 Menentukan Bilangan Genap atau Ganjil # Soal: Membuat algoritma untuk menentukan suatu bilangan termasuk bilangan genap atau ganjil.\nIdentifikasi Masalah:\nInput: Bilangan bulat (integer)\nOutput: Bilangan \u0026ldquo;Ganjil\u0026rdquo; atau \u0026ldquo;Genap\u0026rdquo;.\nalgoritma bilangan_ganjil_genap Deklarasi Bil: integer Ket: string Begin Read (bil) If bil mod 2 = 0 then ket \u0026lt;- ‘genap’ Else ket \u0026lt;- ‘ganjil’ Write (ket) end Mula-mula diinputkan variabel (bil), misal 5. karena kondisi (bil mod 2 = 0) bernilai salah’, maka variabel ket adalah yang setelah else yaitu ‘ganjil’ sehingga perintah write (ket) nya sebagai output adalah ganjil.\nFlowchart Bilangan Genap/Ganjil # Contoh Program if Else Menentukan Bilangan Ganjil atau Genap # #struktur Percabangan if ... else bilangan = int(input(\u0026#39;Masukan Sebuah Bilangan: \u0026#39;)) if bilangan % 2 == 0: print(\u0026#34;Bilangan {} adalah genap.\u0026#34;.format(bilangan)) else: print(\u0026#34;Bilangan {} adalah ganjil .\u0026#34;.format(bilangan)) Hasil Running: Masukan Sebuah Bilangan: 9 Bilangan 9 adalah ganjil. Masukan Sebuah Bilangan: 6 Bilangan 6 adalah genap. 3. Struktur Percabangan if elif else # Digunakan untuk menguji lebih dari 2 kondisi, bila kondisi1 benar maka statement1 dikerjakan, bila salah menuju ke kondisi2 . Bila kondisi2 benar maka statement2 dikerjakan, jika salah maka statemen3 dikerjakan.\nBentuk umum:\nif kondisi1: statement1 elif kondisi2: statement2 else: statement3 Contoh Program if elif else # #Struktur Percabangan if ... elif ... else Nilai = input(\u0026#39;Masukan Nilai Akhir : \u0026#39;) if Nilai \u0026gt;= 80: print(\u0026#39;Grade = A\u0026#39;) elif Nilai \u0026gt;= 70: print(\u0026#39;Grade = B\u0026#39;) elif Nilai \u0026gt;= 60: print(\u0026#39;Grade = C\u0026#39;) elif Nilai \u0026gt;= 40: print(Grade = D) else: printf(Grade = E) Hasil Running: Masukan Nilai Akhir : 70 Grade = B \u0026gt;\u0026gt;\u0026gt; Masukan Nilai Akhir : 90 Grade = A \u0026gt;\u0026gt;\u0026gt; Masukan Nilai Akhir : 65 Grade = C \u0026gt;\u0026gt;\u0026gt; 4. Struktur Percabangan Nested if # Nested if (if bersarang)\nKondisi nested If adalah suatu konfisi if didalam kondisi if.\nBentuk umum:\nif kondisi1: if kondisi 1.1: statement 1.1 elif kondisi 1.2: statement 1.2 else: statement 1.3 elif kondisi2: if kondisi 2.1: statement 2.1 elif kondisi 2.2: statement 2.2 else: statement: 2.3 else: statement3 Contoh Program Nested if # # Struktur Percabangan Nested If # Merk Baju Polo/Alisan/StYess Merk = input(\u0026#39;Merk Baju P/A/S: \u0026#39;) if Merk == \u0026#39;P\u0026#39;: print(\u0026#39;Merk Polo\u0026#39;) ukuran = input(\u0026#39;Ukuran L/M/S: \u0026#39;) if ukuran == \u0026#39;L\u0026#39;: print(\u0026#39;Harga = 300000\u0026#39;) elif ukuran == \u0026#39;M\u0026#39;: print(\u0026#39;Harga = 225000\u0026#39;) else: print(\u0026#39;Harga = 175000\u0026#39;) elif Merk == \u0026#39;A\u0026#39;: print(\u0026#39;Merk Alisan\u0026#39;) ukuran = input(\u0026#39;Ukuran L/M/S: \u0026#39;) if ukuran == \u0026#39;L\u0026#39;: print(\u0026#39;Harga = 275000\u0026#39;) elif ukuran == \u0026#39;M\u0026#39;: print(\u0026#39;Harga = 200000\u0026#39;) else: print(\u0026#39;Harga = 150000\u0026#39;) elif Merk == \u0026#39;S\u0026#39;: print(\u0026#39;Merk StYess\u0026#39;) ukuran = input(\u0026#39;Ukuran L/M/S: \u0026#39;) if ukuran == \u0026#39;L\u0026#39;: print(\u0026#39;Harga 250000\u0026#39;) elif ukuran == \u0026#39;M\u0026#39;: print(\u0026#39;Harga = 175000\u0026#39;) else: print(\u0026#39;Harga = 125000\u0026#39;) else: print(\u0026#39;Merk tidak valid\u0026#39;) Hasil Running: Merk Baju P/A/S: P Merk Polo Ukuran L/M/S: L Harga = 300000 Merk Baju P/A/S: A Merk Alisan Ukuran L/M/S: S Harga = 150000 Note: Merk Baju dan Ukuran di input dengan Huruf Besar. ","date":"20 Januari 2026","externalUrl":null,"permalink":"/id/study/programming/algorithm-logic/04-branching/","section":"Belajar","summary":"","title":"Logika dan Algoritma #04: Branching","type":"study"},{"content":"","date":"19 Januari 2026","externalUrl":null,"permalink":"/id/tags/flowchart/","section":"Tags","summary":"","title":"Flowchart","type":"tags"},{"content":"","date":"19 Januari 2026","externalUrl":null,"permalink":"/id/tags/learning/","section":"Tags","summary":"","title":"Learning","type":"tags"},{"content":"Adalah suatu diagram yang menggambarkan susunan logika suatu program Simbol simbol yang digunakan adalah sebagai berikut :\nSimbol Nama Simbol Keterangan Terminal sebagai awal (berisi ‘Start’/’Mulai’) dan sebagai akhir (berisi ‘End’/’Stop’/’Selesai’). Input/Output Membaca masukan (input) atau menampilkan keluaran (output). Proses/Prosessing Mengolah data melalui operasi aritmatika dan logika. Decision/(kotak keputusan) Berfungsi untuk memutuskan arah/percabangan yang diambil sesuai dengan kondisi yang dipenuhi, yaitu Benar/Salah. Subroutine/subrutin Untuk menjalankan proses suatu bagian (sub program) atau prosedur. On page Connector untuk menghubungkan diagram alur yang terputus dimana bagian tersebut masih berada pada halaman yang sama. Flowline/Alur data Bagian arah instruksi yang dijalankan. Off page Coneector Menghubungkan sambungan dari bagian flowchart yang terputus dimana sambungannya berada pada halaman lain. Preparation Digunakan untuk pemberian harga awal. Diagram Alir Program Komputer # Pada dasarnya suatu program komputer umumnya terdiri atas :\nPembacaan / pemasukan data ke dalam komputer Melakukan komputasi/perhitungan terhadap data tersebut Mengeluarkan / mencetak/ menampilkan hasilnya. Flowchart terdiri dari tiga struktur # Struktur Sequence / Struktur Sederhana Digunakan untuk program yang instruksinya sequential atau urutan Contoh Flowchart Struktur Squence Menghitung Luas Segitiga # Menggunakan Tabel Penyimpanan # Tabel 1. Media Penyimpanan Sequence 1\nPerintah A B Output A \u0026lt;- 10 10 A \u0026lt;- 2*A 20 B \u0026lt;- A 20 Write(B) 20 Tabel 2. Media Penyimpanan Sequence 2\nPerintah X Y Z Output X \u0026lt;- 100 100 Y \u0026lt;- X-25 75 Z \u0026lt;- Y/5 15 X \u0026lt;- X/(Z+5) 5 Write(X,Y,Z) Menjumlahkan Dua Bilangan Positif # Membuat flowchart untuk menjumlahkan dua bilangan bulat positip dan mencetak hasilnya Algoritmanya:\nMasukkan bilangan a Masukkan bilangan b Jumlahkan bilangan a dan b Cetak hasil jumlahnya Menentukan Bilangan Genap/Ganjil # Struktur Branching Digunakan untuk program yang menggunakan pemilihan atau penyeleksian kondisi.(contoh menentukan bilangangenap/ganjil)\nAlgoritmanya:\nMasukkan sebuah bilangan Bagi bilangan tersebut dengan 2 Jika sisa pembagian = 0 maka bilangan tersebut adalah bilangan genap Jika sisa pembagian = 1 maka bilangan tersebut adalah bilangan ganjil Pseuducode:\nread bilangan If bil mod 2 = 0 then “Bilangan Genap” Else “Bilangan Ganjil” Flowchart Perulangan # Stuktur Looping Digunakan untuk program yang instruksinya akan dieksekusi berulang-ulang.\n","date":"19 Januari 2026","externalUrl":null,"permalink":"/id/study/programming/algorithm-logic/03-flowchart/","section":"Belajar","summary":"","title":"Logika dan Algoritma #03: Flowchart","type":"study"},{"content":"","date":"18 Januari 2026","externalUrl":null,"permalink":"/id/tags/algorithm-concept/","section":"Tags","summary":"","title":"Algorithm Concept","type":"tags"},{"content":"","date":"18 Januari 2026","externalUrl":null,"permalink":"/id/tags/data-concept/","section":"Tags","summary":"","title":"Data Concept","type":"tags"},{"content":" Konsep Algoritma # 1. Algoritma Pe-ubah # Adalah Variabel yang nilainya BUKAN konstanta (selalu berubah – sesuai dengan kondisi Variabel terKINI)\nSintaks : P = Q\nAlgoritma : P \u0026lt;- Q\nArti : Bahwa Nilai P diberi harga Nilai Q Nilai P akan SAMA DENGAN nilai Q, \u0026amp; Nilai Q TETAP\n2. Algoritma Pertukaran # Berfungsi mempertukarkan masing-masing isi Variabel sedemikian sehingga Nilai dari tiap Variabel akan berubah/bertukar.\nContoh Soal Algoritma # Soal # Diketahui P=10, Q=15 dan R=5. Diberikan Algoritma P=Q,Q=R, mk Nilai P,Q,R sekarang?\nJawaban # P = Q: Dalam langkah ini, nilai Q (15) akan disalin ke dalam variabel P. Sehingga, P sekarang bernilai 15.\nQ = R: Dalam langkah ini, nilai R (5) akan disalin ke dalam variabel Q. Sehingga, Q sekarang bernilai 5.\nHasil akhirnya adalah:\nNilai P adalah 15 Nilai Q adalah 5 Nilai R tetap 5 (tidak berubah dalam algoritma yang diberikan) Analisa Algoritma # Sekumpulan lidi yang berjumlah 12 dapat membentuk kotak seperti di bawah ini. Pertanyaan pindahkanlah dua buah lidi tersebut agar membentuk empat buah kotak. Dengan memindahkan dua buah lidi yang ada pada bagian bawah, seperti dibawah ini\nAda tiga batang lidi dibawah ini, bagaimana caranya untuk membentuk angka 6 tanpa mematahkannya Jawab: Ketiga buah lidi tersebut akan membentuk angka 6 romawi\nBudi tidak pernah bolos dalam kelasnya, tetapi dia tidak pernah mengerjakan tugas selama setahun ini. Kerjanya cuma bicara dan Budi juga tidak pernah mengikuti ujian semester, Budi juga bukan murid yang berprestasi. Kenapa Budi tidak pernah mendapat peringatan dari pihak sekolah? (menurut Anda apa jawabannya)\nJawabannya: Karena Budi adalah Seorang guru.\nPenjelasan: Budi tidak pernah mengerjakan tugas namun membuat tugas, kerjanya cuma bicara menjelaskan materi pelajaran dalam kelas sehingga Budi tidak akan pernah mengikuti ujian semester.\nBerapa banyaknya garis minimal untuk menutup seluruh titik-titik yang ada dibawah ini dengan syarat bahwa untuk membuat garis tersebut tidak boleh terputus :\nAlgoritma Pertukaran Isi Bejana Untuk Latihan Uji Coba Pertukaran Mahasiswa Membawa 2 Gelas air yang berbeda warnanya dan 1 gelas Kosong\nDiberikan dua buah bejana, A dan B; bejana A berisi larutan berwarna merah, bejana B berisi larutan berwarna biru\nBuatlah pseudocode untuk menukarkan isi kedua bejana itu sedemikian sehingga bejana A berisi larutan berwarna biru dan bejana B berisi larutan berwarna merah.\nDESKRIPSI :\nTuangkan larutan dari bejana A ke dalam bejana C. Tuangkan larutan dari bejana B ke dalam bejana A. Tuangkan larutan dari bejana C ke dalam bejana B. Tipe Data Pada Python # Tipe Data Keterangan Boolean Mempunyai dua nilai yaitu true bernilai 1 dan false bernilai 0 String Terdiri dari karakter/kalimat berupa huruf, angka, dll (diapit tanda \u0026quot; atau \u0026lsquo;) Integer Menyatakan bilangan bulat Float Menyatakan bilangan yang mempunyai koma Complex Menyatakan pasangan angka real dan imajiner List Data untaian yang menyimpan berbagai tipe data, isinya dapat berubah-ubah Tuple Data untaian yang menyimpan berbagai tipe data, tapi isinya tidak dapat berubah-ubah Hexadecimal Menyatakan bilangan dalam format heksa Dictionary Data untaian yang menyimpan berbagai tipe data berupa pasangan penunjuk dan nilai Contoh tipe data pada python # #tipe data Boolean print(True) #tipe data String print(\u0026#34;Belajar Python menyenangkan...\u0026#34;) #tipe data Integer print(20) #tipe data Float print(3.14) #tipe data Complex print(5j) Hasil Running: True Belajar Python menyenangkan... 20 3.14 5j Tipe Data list # Adalah sebuah array yang berisi kumpulan tipe yang tidak sejenis.\n#tipe data list kata = [\u0026#34;Belajar\u0026#34;, \u0026#34;Python\u0026#34;, \u0026#34;di\u0026#34;, \u0026#34;School Programs\u0026#34;] angka = [10, 50, 100, 1000] campur = [\u0026#34;Belajar\u0026#34;, 100, 7.99, True] #cetak print(kata) print(angka) print(campur) Hasil Running: [\u0026#39;Belajar\u0026#39;, \u0026#39;Python\u0026#39;, \u0026#39;di\u0026#39;, \u0026#39;School Programs\u0026#39;] [10, 50, 100, 1000] [\u0026#39;Belajar\u0026#39;, 100, 7.99, True] Tipe Data Tuple # Tipe data tuple hampir sama dengan list, perbedaanya anggotanya tidak bisa diubah setelah dideklarasikan. Tuple menggunakan kurung biasa dan dipisahkan dengan koma untuk anggota.\n#tipe data tuple kata = (\u0026#34;Belajar\u0026#34;, \u0026#34;Python\u0026#34;, \u0026#34;di\u0026#34;, \u0026#34;School Programs\u0026#34;) angka = (10, 50, 100, 1000) campur = (\u0026#34;Belajar\u0026#34;, 100, 7.99, True) #cetak print(kata) print(angka) print(campur) Hasil Running: (\u0026#39;Belajar\u0026#39;, \u0026#39;Python\u0026#39;, \u0026#39;di\u0026#39;, \u0026#39;School Programs\u0026#39;) (10, 50, 100, 1000) (\u0026#39;Belajar\u0026#39;, 100, 7.99, True) Tipe Data Dictionary # Bentuk umum tipe data dictionary pada pemrograman python: Nama_variabel = {“ key1”: “value1”, “key2”: “value2”, “key3”: “value3” }\n#Tipe data dictionary data = {1:\u0026#34;Belajar\u0026#34;, 2: [\u0026#34;C++\u0026#34;, \u0026#34;Python\u0026#34;], \u0026#34;Di Kampus\u0026#34;: \u0026#34;School Programs\u0026#34;, \u0026#34;menyerah\u0026#34; : False, \u0026#34;Tahun\u0026#34;: 2021} print(data) Hasil Running: {1: \u0026#39;Belajar\u0026#39;, 2: [\u0026#39;C++\u0026#39;, \u0026#39;Python\u0026#39;], \u0026#39;Di Kampus\u0026#39;: \u0026#39;School Programs\u0026#39;, \u0026#39;menyerah\u0026#39;: False, \u0026#39;Tahun\u0026#39;: 2021} Operator Aritmatika \u0026amp; Matematika # Operator Keterangan + Penjumlahan - Pengurangan * Perkalian / Pembagian % Modulus (sisa bagi) ** Pemangkatan // Pembagian dimana hasilnya bilangan bulat Contoh Operator Aritmatika dan Matematika # \u0026gt;\u0026gt;\u0026gt; 1+2 3 \u0026gt;\u0026gt;\u0026gt; 8-12 -4 \u0026gt;\u0026gt;\u0026gt; 4*5 20 \u0026gt;\u0026gt;\u0026gt; 42/7 6.0 \u0026gt;\u0026gt;\u0026gt; 9%2 1 \u0026gt;\u0026gt;\u0026gt; 5**2 25 \u0026gt;\u0026gt;\u0026gt; 10//3 3 Operator Perbandiangan # Operator Keterangan \u0026gt; Lebih besar dari \u0026lt; Lebih kecil dari == Sama dengan != Tidak sama dengan \u0026lt;= Lebih kecil sama dengan \u0026gt;= Lebih besar sama dengan Contoh Operator Perbandingan # \u0026gt;\u0026gt;\u0026gt; 10\u0026gt;5 True \u0026gt;\u0026gt;\u0026gt; 8\u0026lt;6 False \u0026gt;\u0026gt;\u0026gt; 10==10 True \u0026gt;\u0026gt;\u0026gt; 5!=6 True \u0026gt;\u0026gt;\u0026gt; 6\u0026lt;=6 True \u0026gt;\u0026gt;\u0026gt; 8\u0026gt;=3 True Operator Bitwise # Operator Keterangan \u0026amp; AND l OR ~ NOT ^ XOR \u0026laquo; Geser bit ke kiri \u0026raquo; Geser bit ke kanan Operator AND # Operator AND akan bernilai false (0) apabila nilai semua operandnya atau salah satu bernilai false (0), dan akan bernilai true (1) apabila kedua operand bernilai true (1).\nOperand 1 Operand 2 Output 0 0 0 0 1 0 1 0 0 1 1 1 Operator OR # Operator Or akan menghasilkan output: Jika salah satu operand atau kedua operand bernilai true (1) akan menghasilkan output true (1), jika kedua operand bernilai false (0) maka akan menghasilkan output false (0).\nOperand 1 Operand 2 Output 0 0 0 0 1 1 1 0 1 1 1 1 Operator XOR # Hasil operasi menggunakan operator XOR, yaitu:\nApabila bit yang dibandingkan nilainya berbeda misalnya 1 (true) dan 0 (false) maka outputnya adalah 1 (true). Apabila bit yang dibandingkan nilainya sama misalnya 1 (true) dan 1(true) atau 0 (false) dan 0 (false) maka outputnya adalah 0 (false). Operand 1 Operand 2 Output 0 0 0 0 1 1 1 0 1 1 1 0 Menggabungkan Nilai string # Pada Pemrograman Python untuk menggabungkan nilai string pada program adalah sebagai berikut:\n#Penggabungan dua string kata1 = \u0026#34;Belajar Bahasa Pemrograman Python \u0026#34; kata2 = \u0026#34;Sangat Menyenangkan\u0026#34; # Menampilkan nilai dari kata1 dan kata2 print(“Kata1: “,kata1) Print(“Kata2: “,kata2) # Menggabungkan kata1 dan kata2 gabung = kata1 + kata2 print(“Hasil Penggabungan kata1 dan kata2”) print(gabung) Hasil Running: Belajar Bahasa Pemrograman Python Sangat Menyenangkan Fungsi Len # Untuk menghitung jumlah karakter digunakan fungsi len()\n#Fungsi Len #Untuk Menghitung Panjang Karakter kata = \u0026#34;Belajar Bahasa Pemrograman Python\u0026#34; jumlah_karakter=len(kata) print(jumlah_karakter) Hasil Running: 33 Fungsi index() # Untuk mengetahui posisi karakter dalam kalimat.\n#fungsi index kata = \u0026#39;Aisah Zahra\u0026#39; #dimana posisi karakater Z print (kata.index(\u0026#39;Z\u0026#39;)) #dimana posisi karakter r print (kata.index(\u0026#39;r\u0026#39;)) Hasil Running: 7 10 ","date":"18 Januari 2026","externalUrl":null,"permalink":"/id/study/programming/algorithm-logic/02-algorithm-concepts-and-data-concepts/","section":"Belajar","summary":"","title":"Logika dan Algoritma #02: Konsep Algoritma dan Konsep Data","type":"study"},{"content":" Pengertian Dasar Logika dan Algoritma # Logika Diperkenalkan pertama kali oleh Aristoteles(384-322 SM).\nAlgoritma diperkenalkan Oleh Ahli Matematika : Abu Ja’far Muhammad Ibnu Musa Al Khawarizmi. Seorang ilmuwan Persia yang menulis kitab al jabr w’al muqabala (rules of restoration and reduction) sekitar tahun 825 M\nDefinisi Logika dan Algoritma # Definisi Logika # Ilmu dalam lingkungan fllsafat yang membahas prinsipprinsip dan hukum penalaran dengan tepat (Rakmat, 2013). ilmu yang memberikan prinsip-prinsip yang harus diikuti agar dapat berfikir valid menurut aturan yang berlaku (Mustofa, 2016). Definisi Algoritma # Urutan langkah untuk menyelesaikan masalah matematika dan logika (Zarman \u0026amp; Wicaksono, 2020). Deretan instruksi yang jelas untuk memecahkan masalah (Rinaldi munir,2016). Sekumpulan instruksi yang jumlahnya terbatas, yang apabila dilaksanakan akan menyelesaikan suatu tugas tertentu (Sjukani, 2013). Tahap Penyelesaian Masalah # Contoh Algoritma # Bagaimana cara untuk membuat Mie Instan?\nContoh 1 Mulai\nMerebus air Memasukkan mie ke dalam air yang mendidih Menuangkan mie yang telah matang ke dalam mangkok Memasukkan bumbu masak Mengaduk sampai rata. Selesai\nContoh 2 Mulai\nMerebus air Memasukkan mie ke dalam air yang mendidih Memasukkan bumbu masak Mengaduk sampai rata Menuangkan mie yang telah matang ke dalam mangkok Selesai\nNote: contoh algoritma 1 \u0026amp; 2 menjelaskan bahwa suatu masalah dapat diselesaikan dengan beragam langkah dan urutan. Karakteristik Algoritma # Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas. Setiap langkah harus didefinisikan dengan tepat dan tidak berarti dua (ambiguous). Algoritma memiliki nol atau lebih masukan (input). Algoritma mempunyai nol atau lebih keluaran (output). Algoritma harus sangkil (effective), setiap langkah harus sederhana sehingga dapat dikerjakan dalam sejumlah waktu yang masuk akal. Algoritma # Bagaimana cara menuliskan Algoritma? Tidak ada standar yang jelas untuk menuliskan algoritma, namun tergantung pada masalah dan sumber daya. Algoritma tidak ditulis untuk mendukung kode pemrograman tertentu. Semua bahasa pemrograman berbagi konstruksi dasar. Konstruksi dasar terdiri dari:\nPerulangan/Loop ( for, while) Percabangan/Control Flow (if – else) Contoh: Algoritma Menjumlahkan Dua Bilangan dan Mencetak Hasilnya\nMulai\nBaca bilangan a dan b Hitung a ditambah b, simpan pada c Tulis nilai c Selesai\nPenulisan Algoritma dalam Pseuducode # Bahasa Pemograman # Program adalah kumpulan intruksi-instruksi yang diberikan kepada komputer untuk melaksanakan suatu tugas atau pekerjaan. Dalam membuat program dibutuhkan bahasa pemrograman.\nBahasa pemrograman adalah bahasa komputer yang digunakan dalam menulis program\nContoh bahasa pemrograman adalah: Bahasa rakitan (assembly), Fortran, Cobol, Pascal, C, C++, Basic, Prolog, PHP, Java, Python.\nBerdasarkan kedekatan bahasa pemrograman dikelompokkan menjadi 2 macam yaitu:\nBahasa tingkat rendah Bahasa yang dirancang agar setiap instruksinya langsung dikerjakan oleh komputer, tanpa harus melalui penerjemah. Contoh: bahasa mesin (sekumpulan kode biner (0 dan 1))\nBahasa tingkat tinggi Bahasa jenis ini membuat program menjadi lebih mudah dipahami.\nContoh: Pascal, Cobol, Fortran, Basic, Prolog, C, C++, PHP, Java, Python\nBahasa Pemograman Python # Python adalah bahasa pemrograman tingkat tinggi Dirancang oleh Guido Van Rossum Python merupakan bahasa pemrograman yang mudah dipahami karena struktur sintaknya rapi dan mudah dipelajari.\nPython banyak digunakan untuk membuat aplikasi program seperti: Program GUI (desktop), Aplikasi Mobile Web, Game, Hacking dan Internet of Thing(IoT).\nPython dianjurkan untuk pemula yang belum pernah coding\nBahasa Pemograman C++, java, dan Python # Mencetak Kata \u0026ldquo;Logika Algoritma\u0026rdquo;\nSintak pada C++:\n#include \u0026lt;iostream.h\u0026gt; main() { cout\u0026lt;\u0026lt;\u0026#34;Logika Algoritma\u0026#34;; } return 0 Sintak pada Java:\nClass LogikaalgoritmaApp { public static void main(string[] args) { system.out.println(\u0026#34;Logika Algoritma\u0026#34;); } } Sintak pada Python:\nprint(\u0026#34;Logika Algoritma\u0026#34;) Tahapan Analisa Algoritma # 1. Bagaimana merencanakan suatu algoritma. # Dengan menentukan model atau desain untuk menyelesaikan suatu masalah sebagai sebuah solusi, sehingga akan banyak terdapat variasi model yang diambil yang terbaik.\n2. Bagaimana menyatakan suatu algoritma # Menentukan model algoritma yang digunakan untuk membuat barisan secara urut agar mendapatkan solusi masalah. Model algortima tersebut dapat dinyatakan dengan pseudocode atau flowchart.\na. Pseudocode (bahasa semu) # Merupakan bentuk informal untuk mendeskripsikan algoritma yang mengikuti struktur bahasa pemrograman tertentu.\nb. Flowchart (Diagram Alir) # Penggambaran algoritma secara diagram yang menggambarkan alur susunan logika dari suatu masalah.\nTujuan pseudocode adalah: Lebih mudah dibaca oleh manusia, lebih mudah dipahami dan lebih mudah dalam menuangkan ide/hasil pemikiran\nContoh : Untuk menghitung Luas Segi tiga\nMasukan Nilai Alas Masukan Nilai Tinggi Hitung Luas =( Alas * Tinggi ) / 2 Cetak Luas Tahapan Analisa Algoritma Lanjutan # 3. Bagaimana validitas suatu algoritma. # Validitas suatu algoritma dengan didapatkan solusi sebagai penyelesaian dari masalah\n4. Bagaimana Menganalisa suatu Algoritma # Analisa algoritma dengan melihat waktu tempuh dan jumlah memori yang digunakan\n5. Bagaimana Menguji Program dari suatu Algoritma. # Algoritma tersebut diimplementasikan kedalam bahasa pemrograman misal: Python. Proses uji algoritma tersebut dengan dua tahap yaitu: a. Fase Debugging dan b. Fase Profilling\na. Fase Debugging # yaitu fase dari proses program eksekusi yang akan melakukan koreksi terhadap kesalahan.\nb. Fase Profilling # yaitu fase yang akan bekerja jika program tersebut sudah benar (telah melewati fase debugging).\n","date":"17 Januari 2026","externalUrl":null,"permalink":"/id/study/programming/algorithm-logic/01-basic-concepts/","section":"Belajar","summary":"","title":"Logika dan Algoritma #01: Pengertian Dasar","type":"study"},{"content":"","date":"8 April 2026","externalUrl":null,"permalink":"/tags/business-management-system/","section":"Tags","summary":"","title":"Business Management System","type":"tags"},{"content":"","date":"8 April 2026","externalUrl":null,"permalink":"/tags/case-study/","section":"Tags","summary":"","title":"Case Study","type":"tags"},{"content":"","date":"8 Januari 2026","externalUrl":null,"permalink":"/id/series/chapters-on-erp/","section":"Series","summary":"","title":"Chapters on ERP","type":"series"},{"content":"","date":"8 Januari 2026","externalUrl":null,"permalink":"/id/tags/enterprise-resource-planning/","section":"Tags","summary":"","title":"Enterprise Resource Planning","type":"tags"},{"content":"Enterprise Resource Planning (ERP) adalah sistem manajemen bisnis yang mengintegrasikan berbagai fungsi dan proses dalam sebuah organisasi. ERP membantu perusahaan mengelola sumber daya, meningkatkan efisiensi operasional, dan memberikan informasi yang akurat untuk pengambilan keputusan. Dengan ERP, perusahaan dapat mengotomatisasi proses bisnis, meningkatkan kolaborasi antar departemen, dan meningkatkan produktivitas secara keseluruhan. Belajar tentang ERP dapat membuka peluang karir di bidang teknologi informasi dan manajemen bisnis. Selamat Belajar!\n","date":"8 Januari 2026","externalUrl":null,"permalink":"/id/study/erp/","section":"Belajar","summary":"","title":"Enterprise Resource Planning (ERP)","type":"Study"},{"content":" Metode OOAD # OOAD (Object-Oriented Analysis and Design) Merupakan suatu metode untuk menganalisis informasi mengenai contex system,dapat mendukung dalam menangani data dengan jumlah besar yang dapat didistribusikan ke departemen terkait, dan dengan pendekatan analisa, perancangan, user interface dan pemrograman yang berorientasi objek. Menggunakan UML dalam perancangan system informasinya Studi Kasus Penerapan ERP # Berikut ini akan digambarkan penerapan ERP menggunakan Metode OOAD untuk Sistem Penjualan (Sales \u0026amp; Distribution) Diagram UML Yang digambarkan :  Use Case Diagram  Activity Diagram Contoh Proses Bisnis Sistem Berjalan Penjualan Sebelum Penerapan Odoo # Contoh Use Case Modul Sales and Distribution # ","date":"8 Januari 2026","externalUrl":null,"permalink":"/id/study/erp/08-case-study-of-erp-implementation-using-the-ooad-method/","section":"Belajar","summary":"","title":"Enterprise Resource Planning #08: Studi Kasus Penerapan ERP dengan Menggunakan Metode OOAD","type":"study"},{"content":"","date":"8 Januari 2026","externalUrl":null,"permalink":"/id/tags/erp/","section":"Tags","summary":"","title":"ERP","type":"tags"},{"content":"","date":"8 Januari 2026","externalUrl":null,"permalink":"/id/tags/ooad/","section":"Tags","summary":"","title":"OOAD","type":"tags"},{"content":"","date":"8 Januari 2026","externalUrl":null,"permalink":"/id/tags/penerapan-erp/","section":"Tags","summary":"","title":"Penerapan ERP","type":"tags"},{"content":"","date":"8 Januari 2026","externalUrl":null,"permalink":"/id/tags/sistem-manajemen-bisnis/","section":"Tags","summary":"","title":"Sistem Manajemen Bisnis","type":"tags"},{"content":"","date":"8 Januari 2026","externalUrl":null,"permalink":"/id/tags/studi-kasus/","section":"Tags","summary":"","title":"Studi Kasus","type":"tags"},{"content":"Saat ini, beredar bermacam – macam jenis software ERP dengan berbagai fitur, versi, skala, dan kemampuan, dgn menyediakan sistem ERP untuk berbagai jenis industry\nSAP # SAP merupakan salah satu sistem ERP yg popular diIndonesia. SAP didirikan sekitar 1975 dijerman oleh 5 orang mantan karyawan yg bekerja di IBM. SAP sebenarnya dari bahasa jerman yaitu System Andwendungen Produkteinder Datenverarbeitung atau dalam bahasa inggris singkatan SAP adalah Systems Applications Product in Data Processing.\nSAP terdiri dari modul – modul yang terintegrasi, meliputi SAP ERP Enterprise Core, yaitu merupakan solusi aplikasi ERP, dan SAP Business Suite, yaitu merupakan paket aplikasi bisnis seperti SAP Customer Relationship Management, SAP Supply Chain Management, SAP supllier Relationship Management, SAP Product Lifecycle Management\nPengguna aplikasi sistem ERP pada umumnya adalah perusahan mrenengah besar. SAP merupakan pemimpin pasar diseluruh dunia dgn penguasaan pasar mencapai 65%. SAP kini menyediakan paket solusi ERP untuk perusahaan menengah kecil, spt SAP Business One dan SAP All In One. Di Indonesia, saat ini Sistem SAP banyak digunakan dalam berbagai kombinasi modul, fitur dan fasilitas oleh perusahaan besar spt : Garuda Indonesia, Telkom, PLN, Pertamina, Astra International, Astra Honda Motor, Indofood, Aqua Danone, Bentoel Prima, Bank mandiri, Ultra Jaya, Excelcomindo, Blue Bird, Nippon Indosari Corp, Ranch Market Indonesia, jamu Puspo, Zyrex, dll\nSAP System # Fungsi Utama dalam SAP ERP adalah :\nAkuntansi Biaya, Akuntansi Manajemen, penjualan, Distribusi, Manufaktur, Perencanaan Produksi, Pengadaan , SDM, Penggajian\nFaktor yang mempengaruhi implementasi SAP # Kerangka Waktu Orang Hardware Software PeopleSoft # PeopleSoft adalah perusahaan software yg cukup lama berkembang dan produknya sudah banyak digunakan oleh berbagai perusahaan terkemuka didunia. Akuisisi peoplesoft oleh oracle makin menambah keberagaman produk oracle dan memperluas dukungan oracle tdhp semua pengguna produknya, baik produk database maupun aplikasi program.\nProduct Software PeopleSoft # HRMS (Human Resource Management Sistem), terdiri dari : Payroll, Benefits, Human Resource, Pension Administration, Time \u0026amp; labor Accounting and Control terdiri dari : General Ledger, payables, Receivables, Asset Managements, Project, Budgets, Expenses, Cash management Treasury Management Material Management Supply Chain Planning Service Revenue Management Enterprise Performance Management Procurement Project Management Oracle # Oracle corperation didirikan thn 1977 dan merupakan perusahaan software yg mengembangkan, membuat, memasarkan, emndistribusikan, dan melayani software database, dan infrastruktur software. Software yg dipasarkan meliputi application server, software kolaborasi, dan pengembangan. Sejak tahun 2004, perusahann oracle mengakuisis salah satu perusahaan pengembangan sistem ERP terkemuka, yaitu peoplesoft, sehingga perusahaan oracle harus mampu mendukung berbagai jenis produk dan terus mengembangkan produk dan layanannya.\nOracle e-business suite # Financials : # Planning (General Ledger, Analyzer) Analysis Consolidation Expenditure management Billing and Cash Collection Cash management Asset management Supply Chain Management : # Strategic Procurement Non- production Procerument Strategic souring Catalog Management Project: # Costing Billing Time and Expense Activity Management Gateway Human Resources Material Management: # Inventory Purchasing Manufacturing : # Factory dan Item Definition Planning \u0026amp; simulation Materials Management Production Cost Management Integrated Technologies Application Modules System Oracles # Open Source ERP # Odoo merupakan salah satu penyedia jasa software ERP Odoo mempunyai dua macam versi , yakni yang pertama adalah versi komunitas dan yang kedua adalah versi enterprise. Versi pertama merupakan open source dan dapat kita lihat pada situs odoo.com secara langsung pada bagian community. Dan versi yang kedua merupakan versi yang eksklusif dan dapat dilihat pada situs Odoo tersebut. Software ini menyediakan software yang inutif, komplit, terintegrasi, dan pastinya open source bagi para penggunanya dalam kegiatan bisnis\nBerikut ini contoh trial pembuatan modul Human Resource dalam bagian Recruitment secara online Buka situs https://www.odoo.com/trial pilih bagian Human Resource dan pilih recruitment Tampilan dashboard Human Resource bagian recruitment akan seperti gambar dibawah ini : Tampilan jadwal dari kebutuhan recruitment dari Human resource akan tampil seperti gambar dibawah ini : Tampilan kebutuhan data modul recruitment adalah seperti gambar berikut ini : ","date":"7 Januari 2026","externalUrl":null,"permalink":"/id/study/erp/07-program-applications/","section":"Belajar","summary":"","title":"Enterprise Resource Planning #07: Aplikasi Program ERP","type":"study"},{"content":"","date":"7 Januari 2026","externalUrl":null,"permalink":"/id/tags/erp-applications/","section":"Tags","summary":"","title":"ERP Applications","type":"tags"},{"content":"","date":"7 Januari 2026","externalUrl":null,"permalink":"/id/tags/erp-programs/","section":"Tags","summary":"","title":"ERP Programs","type":"tags"},{"content":" Pendahuluan # Tidak semua proyek teknologi informasi diperusahaan berjalan mulus. Faktor kesiapan SDM dlm perusahaan dan kualitas konsultan sbg mitra kerja sama belum tentu menjamin keberhasilan implementasi proyek sistem informasi.\nMerupakan suatu kenyataan bahwa belum tentu setiap sumber daya manusia baik dari pihak perusahaan maupun pihak konsultan memiliki semangat yang sama dalam mengerjakan suatu proyek Sistem Informasi.\nPerlunya pertimbangan dalam melakukan pemilihan sumber daya manusia yang tepat dalam menangani sebuah proyek sistem informasi. Adalah tugas manajemen untuk melakukan penyeleksian terhadap staff atau karyawan sebagai project leader yang tepat untuk terlibat aktif dan menangani proyek sistem informasi,dimana orang yang benar benar memiliki bersemangat untuk mengikuti proyek sistem informasi secara tuntas.\nMenurut Richardus Eko Indrajit, untuk dapat memperlihatkan hubungan antar manfaat (value) bagi SDM perusahaan dan konsultan terhadap potensi keberhasilan sebuah proyek Sistem Informasi dapat terlihat dalam matrik berikut :\nHubungan manfaat Sumber Daya Manusia # quadrantChart x-axis \"Value for IT Konsultants: LOW\" --\u003e \"HIGH\" y-axis \"Value for Corporate People: LOW\" --\u003e \"HIGH\" quadrant-1 \"1 Win-win Project\" quadrant-2 \"2 Knowledge Transfer\" quadrant-3 \"4 Just for Fun\" quadrant-4 \"3 Free R\u0026D\" Kuadran Satu # Memiliki sebuah lingkungan dimana SDM dari kedua pihak merasa mendapatkan manfaat dari proyek yang dikerjakan. Dalam keadaan ini, biasanya proyek akan berjalan cukup lancar, karena semua pihak saling bekerja sama dgn baik. Tidak ada perasaan curiga dan ingin mendapatkan suatu dari keberhasilan proyek TI. Dilihat dari sisi keuangan proyek, biasanya prinsip “ value for money” menjadi pertimbangan utama. Dengan demikian, akan tercipta suasana”win-win”, yang merupakan keadaan ideal sebuah proyek dimana hal ini yang akan memperkecil resiko terjadinya kegagalan implementasi proyek TI.\nKuadran Dua # Mewakili sebuah situasi dimana hanya pihak perusahaan (klien) saja yang merasa mendapatkan banyak manfaat dari keterlibatan SDM didalam menangani proyek TI. Sementara pihak konsultan merasa tidak memperoleh manfaat yang signifikan dengan keberadaan proyek TI tersebut, sehingga pihak konsultan cenderung tidak banyak terlibat secara intens dalam proyek TI. Fenomena ini kadang membuat pihak perusahaan menuntut hal-hal yang lebih daripada semestinya(over demanding). Walaupun pada mulanya resiko kegagalan proyek TI cukup kecil, namun suasana yang berlarut-larut(jika proyek TI berjangka relatif panjang), maka akan dapat meningkatkan resiko kegagalan proyek TI. Hal ini disebabkan, karena pihak konsultan akan melakukan pekerjaan lain diluar proyek tersebut, sehingga akan menurunkan kualitas pemberian jasa konsultan\nKuadran Tiga # Merupakan situasi yang terbalik dari kuadran dua, dimana pihak konsultan yg merasa mendapatkan manfaat dengan adanya proyek TI. Sementara bagi pihak perusahaan, SDM merasa cenderung menjadi beban, sehingga dari pihak perusahaan akan menyerahkan kepada pihak konsultan untuk mengerjakan proyek TI. Keadaan ini, akan membuat pihak SDM perusahaan akan memberikan berbagai kritik sebagai manifestasi ketidaksetujuan terhadap berbagai hasil kerja yang dilakukan pihak konsultan.Keadaan ini akan membuat resiko kegagalan proyek yang tinggi, terlepas dari berkualitas atau tidaknya output yang dihasilkan dari proyek TI tersebut. Dan tidak sedikit terjadi keadaan dimana pihak perusahaan menjadi acuh tak acuh terhadap hasil kerja yang dilakukan pihak konsultan.\nPada situasi ini, pihak konsultan akan diuntungkan karena disamping mendapatkan jasa konsultan, juga dapat dijadikan sarana pelatihan, penelitian dan pengembangan TI bagi pihak konsultan.\nKuadran Empat # Kedua belah pihak dengan berbagai alasan dan kondisi, tidak memperoleh manfaat apapun dari proyek TI tersebut, sehingga kedua belah pihak biasanya sama – sama menginginkan agar proyek diselesaikan dengan cepat dan dengan kualitas seadanya(minimum quality). Tidak jarang terjadi pelanggaran etika bisnis oleh salah satu maupun kedua belah pihak, yg tentunya dapat menimbulkan resiko dikemudian hari\nEvaluasi Sistem Baru # Tujuan dari aktivitas review evaluasi sistem baru adalah :\nMenentukan apakah tujuan dan objectivitas sistem tercapai Menentukan apakah prosedur operasional, aktivitas operasi dan kontrol sudah sempurna Menentukan apakah keperluan pengguna telah dipenuhi Menentukan apakah batasan sistem perlu diperhatikan Tahapan Evaluasi Sistem # flowchart TD N1[\"1. Identifikasi apa yang akan dievaluasi\"] N2[\"2. Tentukan Kriteria Evaluasi\"] N3[\"3. Organisir kegiatan evaluasi\"] N4[\"4. Pengumpulan data(termasuk pengukuran)\"] N5[\"5. Maintain record history\"] N6[\"6. Analisis data performance\"] N7[\"7. Susun rekomendasi\"] N8[\"8. Lakukan tindakan koreksi\"] N9[\"9. Proses evaluasi hasil\"] %% Alur utama ke bawah N1 --\u003e N2 N2 --\u003e N3 N3 --\u003e N4 N4 --\u003e N5 N5 --\u003e N6 N6 --\u003e N7 N7 --\u003e N8 N8 --\u003e N9 %% Alur umpan balik (garis yang kembali ke atas) N8 --\u003e N3 N9 --\u003e N1 Pemeliharaan Sistem ERP # Aktivitas pemeliharaan meliputi aksi korektif terhadap permasalahan yang ditemui, adaptasi prosedur untuk fitur atau kebutuhan baru yang diperlukan. Aktivitas pemeliharaan sistem ERP perfektif sebagai tanggapan atas upgrade aplikasi program , dan aktivitas pemeliharaan preventif untuk kegiatan administrasi rutin.\nSecara garis besar, klasifikasi aktivitas pemeliharaan sistem ERP dapat dilihat pada tabel berikut :\nJenis Tugas Keterangan korektif aplikasi program tambahan ada tambahan aplikasi program dari vendor troubleshooting menyelesaikan masalah berdasarkan laporan pengguna adaptif transfer implementasi fitur baru testing pengujian setelah ada perubahan modifikasi kostumisasi internal penyesuaian antar muka(interface) implementasi antar muka dengan program lain upgrade versi penyesuaian, perencanaan dengan aplikasi Administrasi monitor respone time, ukuran file, back up, error log monitoring alur kerja menelusuri aliran aktivitas pemeliharaan Pengembangan Sistem ERP # Perkembangan pola bisnis dan kemajuan teknologi informasi dan komunikasi, dapat mempengaruhi pola implementasi sistem ERP dimasa mendatang, antara lain:\nPenggunaan aplikasi berbasis web, khususnya untuk memudahkan koordinasi dengan mitra kerja pada supply chain Meningkatkan sistem yang menggunakan inteligensia buatan(artificial intelligent) untuk mendukung proses perencanaan Meningkatkan penggunaan sistem ERP pada perusahaan berskala menengah, dgn teknologi yangg lebih stabil dan waktu implementasi yang relatif cepat dan biaya instalasi yang lebih mudah 4.Sistem cenderung bersifat fleksibel dan modular(mendukung pendekatan implementasi best of breed) 5.Meningkatnya dukungan pihak ketiga(bolt ons) sebagai penyedia aplikasi yang diakses oleh sistem antara(middleware) ","date":"6 Januari 2026","externalUrl":null,"permalink":"/id/study/erp/06-evaluation-and-performance-measurement/","section":"Belajar","summary":"","title":"Enterprise Resource Planning #06: Evaluasi Dan Pengukuran Kinerja ERP","type":"study"},{"content":"","date":"6 Januari 2026","externalUrl":null,"permalink":"/id/tags/erp-evaluation/","section":"Tags","summary":"","title":"ERP Evaluation","type":"tags"},{"content":"","date":"6 Januari 2026","externalUrl":null,"permalink":"/id/tags/erp-evaluation-metrics/","section":"Tags","summary":"","title":"ERP Evaluation Metrics","type":"tags"},{"content":"","date":"6 Januari 2026","externalUrl":null,"permalink":"/id/tags/erp-performance-measurement/","section":"Tags","summary":"","title":"ERP Performance Measurement","type":"tags"},{"content":" Pokok Bahasan # Konversi Sistem Kesuksesan Implementasi ERP Kegagalan Implementasi ERP Konversi Sistem # Tujuan konversi sistem adalah menggantikan sistem lama menjadi sistem baru, dimana system baru tersebut harus lebih baik, lebih user-friendly, dan cara kerja menjadi lebih efisien dibandingkan dengan sistem lama.\nMetode umum konversi dari sistem lama ke system baru adalah :\nSistem Parallel Sistem Direct Cut Over Sistem Pilot Approach Sistem Phase In Methode Sistem Parallel # Yaitu mengoperasikan sistem baru dan sistem lama secara bersamaan (pada suatu saat yang ditentukan). Setiap hasil proses dievaluasi, disambung. Apabila sistem baru lebih baik dari sistem lama maka baru dilakukan penggantian sistem yang baru.\nKelebihan sistem parallel: # Memungkinkan pengecekan data pada sistem lama Menambahkan rasa aman bagi pengguna Kekurangan sistem parallel: # Masalah biaya yang relatif besar Penggunaan tenaga kerja menjadi dua kali untuk sistem lama dan system yang baru Tidak mudah membandingkan kualitas hasil output sistem baru terhadap sistem lama Sistem baru langsung digunakan untuk menggantikan sistem lama, pada suatu saat atau periode yang ditentukan Sistem Direct Cut Over # Sistem konversi ini dapat dilakukan apabila persyaratan berikut :\nTelah dilakukan pengetesan sistem secara ekstensif Adanya toleransi terhadap waktu tunggu (time delay) Pengguna dipaksa harus menggunakan sistem baru Resiko yg akan timbul akibat pelaksanaan sistem ini:\nDelay yang lama berakibat makin banyak kesalahan Pengguna menggunakan sistem yang belum dikenal Pengguna tidak berkesempatan membandingkan antara sistem lama terhadap sistem baru Sistem Pilot Approach (Distributed Approach) # Strategi konversi ini dilakukan apabila terhadap beberapa lokasi atau site, misalnya pada sistem bank, franchise, restoran, supermarket dan lainnya. Pengujian dan pengoperasiannya dilakukan pada suatu site terpilih dan apabila hasilnya memuaskan baru dilakukan konversi di site lain\nSistem Phase-In method (Prototipe Approach/Gradual Approach) # Strategi konversi ini menggabungkan dua jenis approach pertama dengan mengurangi sebanyak banyaknya risiko yang dapat terjadi. Artinya pada saat awal dilakukan parallel run, selanjutkan pada pertengahan periode secara bertahap sistem lama digantikan sistem baru.\nKeuntungan : # Pengguna terlibat dalam konversi ini Dapat mendeteksi bila terjadi kesalahan sistem atau data Kelemahan : # Membutuhkan waktu yang lebih lama Apabila sistemnya besar, strategi ini akan sulit dilakukan Kesuksesan Implementasi ERP # Beberapa hal yang dapat mempengaruhi Kesuksesan dari Implementasi ERP pada perusahaan\nUser focus dan Technology Focus Tata Kelola dan Alokasi SDM Dukungan Vendor dan Konsultan Pelatihan 1. User Focus Vs Technology Focus # user focus : implementasi sistem ERP untuk mendukung proses bisnis user Technology focus : implementasi ERP dengan teknologi terbaru atau proses yang lebih komplek, sehingga memungkinkan terjadi perubahan proses bisnis user Sebaiknya sistem ERP fokus pada kebutuhan user, fokus teknologi dapat dipertimbangkan setelah fokus user selesai 2. Tata Kelola Dan Alokasi SDM # Implementasi ERP yang efektif memerlukan dukungan dan komitmen dari pimpinan manajemen Tim yang terlibat dalam implementasi ERP harus orang yang berpengalaman di bidangnya masingmasing dan memiliki pengaruh Tim yang ideal melibatkan user , spesialis TI di perusahaan, orang-orang yang dapat bekerja antar departemen, orang yang memahami proses bisnis dengan baik 3. Dukungan Vendor Dan Konsultan # Idealnya perusahaan memiliki kendali utama atas dukungan vendor dan jasa konsultasi ERP Penggunaan konsultan secara menyeluruh perlu dihindari, karena berarti konsultan akan masuk terlalu jauh dalam bisnis perusahaan 4. Pelatihan # Pelatihan yang buruk menjadi salah satu faktor terbesar gagalnya implementasi\nBeberapa kegagalan yang berhubungan dengan pelatihan : a. Memberikan pelatihan karyawan pada software tertentu tanpa memperhatikan proses bisnisnya b. Memusatkan perintah pada urutan eksekusi tanpa memberikan penjelasan kenapa ada urutan tersebut c. Menyingkat waktu pelatihan d. Menyelesaikan masalah dengan cara sistem yang lama tanpa mencari penyelesaian dengan cara sistem yang baru\nBeberapa masalah lain mencakup : keberagaman user, komplektifitas sistem, keberagaman metode pelatihan Beberapa vendor mengantisipasi hal ini dengan menyediakan pelatihan yang fleksibel dengan berbagai macam media : a. Web based virtual learning b. Computer based training c. Video course d. Self study books e. Pop up help screens Antisipasi Kegagalan # Kegagalan ERP biasanya disebabkan oleh :\nIntegrasi sistem Tidak ada kesesuaian antara personil, proses dan teknologi Peluang Kegagalan yang Perlu Diantisipasikan # User kurang terlatih Tidak memahami bagaimana aplikasi enterprise mengubah bisnis dan tidak siap mengikuti disiplin ilmu baru User belum sepenuhnya menyadari setiap tindakan mereka pada sistem berpengaruh pada operasional perusahaan Hasil pelatihan (training) yang kurang sesuai sehingga terjadi ketimpangan ketika training dan implementasi Beberapa vendor sudah menyediakan antisipasi strategi untuk mencapai tujuan ideal ERP (meningkatkan proses integrasi internal ke konektifitas eksternal) Para vendor ini membuat produknya lebih fleksibel dan lebih mudah diimplementasikan misal : a. Strategi berbasis komponen b. ERP Berbasis web c. ERP yang modular, yang bisa digunakan per modulnya Waktu dan biaya implementasi melebihi anggaran Pre-implementation tidak dilakukan dengan baik Strategi operasi tidak sejalan dengan business process design dan pengembangannya Orang-orang tidak disiapkan untuk menerima dan beroperasi dengan sistem yang baru Kurangnya edukasi dalam tahap implementasi akan memberikan kesulitan bagi user yang justru akan memperlambat proses bisnis ","date":"5 Januari 2026","externalUrl":null,"permalink":"/id/study/erp/05-implementation/","section":"Belajar","summary":"","title":"Enterprise Resource Planning #05: Implementasi","type":"study"},{"content":"","date":"5 Januari 2026","externalUrl":null,"permalink":"/id/tags/erp-benefits/","section":"Tags","summary":"","title":"ERP Benefits","type":"tags"},{"content":"","date":"5 Januari 2026","externalUrl":null,"permalink":"/id/tags/erp-implementation/","section":"Tags","summary":"","title":"ERP Implementation","type":"tags"},{"content":"","date":"5 Januari 2026","externalUrl":null,"permalink":"/id/tags/erp-implementation-obstacles/","section":"Tags","summary":"","title":"ERP Implementation Obstacles","type":"tags"},{"content":"","date":"5 Januari 2026","externalUrl":null,"permalink":"/id/tags/erp-implementation-stages/","section":"Tags","summary":"","title":"ERP Implementation Stages","type":"tags"},{"content":"","date":"5 Januari 2026","externalUrl":null,"permalink":"/id/tags/erp-system-selection/","section":"Tags","summary":"","title":"ERP System Selection","type":"tags"},{"content":" Pokok Bahasan # Manfaat Penerapan ERP Kendala Implementasi ERP Pemilihan Sistem ERP Manfaat Penerapan ERP # Manfaat implementasi sistem ERP yang baik tidak terbatas pada lingkungan internal perusahaan, tetapi juga dapat diperluas secara vertical dan horizontal.\nImplementasi sistem ini memerlukan integrasi data-data yang ada, sehingga data-data tersebut tidak hanya tersimpan didalam sistem saja tetapi tidak dapat memberikan manfaat.\nImplementasi sistem ERP tergantung pada ukuran bisnis, ruang lingkup dari perubahan dan peran serta pelanggan.\nSebagian besar sistem ERP yang ditawarkan dalam bentuk COTS (Commersial Off The Shelf) yaitu solusi bisnis berupa paket aplikasi terpadu yang dikelompokkan berdasarkan spesialisasi proses bisnis, fungsi dan industry tertentu.\nPaket COTS pada umumnya memuat tiga elemen yaitu: a. Data yaitu berupa satu sumber daya yang terintegrasi untuk seluruh perusahaan, entry data hanya dilakukan satu kali. b. Integrasi yaitu mengolah, menyimpan, dan memindahkan data menggunakan satu paket software. c. Fungsionalitas modul yaitu proses menentukan interaksi program dengan basis data.\nMigrasi Data # Langkah strategi migrasi data yang dapat menentukan kesuksesan implementasi ERP : a. Mengidentifikasi data yang akan di migrasi b. Menentukan waktu dari migrasi data c. Membuat template data d. Menentukan alat untuk migrasi data e. Memutuskan persiapan yang berkaitan dengan migrasi f. Menentukan pengarsipan data Kendala Implementasi ERP # Teknis Masalah bahasa dan perubahan dari model hard copy menjadi model display. a. Terminologi istilah yang sama sehingga istilahistilah dalam produksi, penjualan, dll yang digunakan harus dirubah sesuai istilah dalam ERP. b. Dalam manajemen tradisional Manajer menandatangani tumpukan kertas sebagai tanda persetujuan, sedangkan Approval dalam ERP dilakukan melalui media tersebut (model display) Budaya Implementasi ERP yang berbasis penggunaan teknologi menuntut perubahan-perubahan yang harus dilakukan karyawan, diantaranya harus aware terhadap penggunaan software tersebut (contoh: selalu update data). Politik Kendala berasal dari dalam / luar departemen IT Karyawan IT merasa pekerjaannya akan hilang Karyawan di luar departemen IT merasa terancam karena sebagian pekerjaan akan dilakukan oleh software ERP. Keengganan user departemen lain karena adanya unsur ”ketidakpercayaan” terhadap departemen IT. Ketidakpercayaan timbul karena ketakutan bahwa data atau laporan rahasia akan diketahui oleh bagian IT selaku administrator. Pemilihan Sistem ERP # Proses pemilihan software ERP sebaiknya dilakukan dengan melalui beberapa tahap analisis sebagai berikut:\nAnalisis strategi bisnis Analisis sumber daya manusia Analisis infrastruktur Analisis software 1. Analisis Strategi Bisnis # Bagaimana level kompetisi di pasar \u0026amp; apa harapan pelanggan? Adakah keuntungan kompetitif yang ingin dicapai? Apa strategi bisnis perusahaan dan obyektif yang ingin dicapai? Bagaimana proses bisnis yang sekarang berjalan \u0026amp; proses bisnis yang diinginkan? Adakah proses bisnis yang harus diperbaiki? Apa dan bagaimana prioritas bisnis yang ada, dan adakah rencana kerja untuk mencapai objektif dan prioritas tersebut? Target bisnis seperti apa yang harus dicapai dan kapan? 2. Analisa Sumber Daya Manusia # Bagaimana komitmen top manajemen terhadap usaha untuk implementasi ERP? Siapa yang akan mengimplementasikan ERP dan siapa yang akan menggunakannya? Bagaimana komitmen dari tim implementasi? Apa yang diharapkan para calon user terhadap ERP? Adakah konsultan dari luar yang disiapkan untuk membantu proses persiapan? 3. Analisa Infrastruktur # Bagaimanakah kelengkapan infrastruktur yang sudah ada (overall networks, permanent office systems, communication system dan auxiliary system) Seberapa besar budget untuk infrastruktur? Apa infrastruktur yang harus disiapkan? 4. Analisa Perangkat Lunak # Apakah perangkat lunak tersebut cukup fleksibel dan mudah disesuaikan dengan kondisi perusahaan? Apakah ada dukungan layanan dari penyedia, tidak hanya secara teknis tapi juga untuk kebutuhan pengembangan sistem di kemudian hari Seberapa banyak waktu implementasi yang tersedia Apakah perangkat lunak memiliki fungsi yang bisa meningkatkan proses bisnis perusahaan Implementasi ERP # Penerapan ERP pada perusahaan akan mendukung pencapaian keberhasilan perusahaan. Penerapan didukung oleh keempat komponen teknologi yaitu humanware, technoware, organware dan infoware. Secara garis besar, terdapat tiga pendekatan umum yaitu : Penggunaan satu paket software utuh (vendor utuh). Kombinasi dari beberapa paket software (berbagai vendor, best of breed). Kostumisasi atau membuat sendiri paket software ERP Tahapan Implementasi Sistem ERP # Secara umum , tahapan implementasi sistem ERP meliputi :\nTahapan Perencanaan Tahapan Analisis Tahapan Desain Tahapan Dukungan Teknis Tahapan Implementasi Tahapan Perencanaan # Langkah awal implementasi adalah membentuk komite pengarah, yang bertugas untuk mengidentifikasi tujuan utama dan ruang lingkup proyek sistem ERP untuk menentukan Project Leader dan anggota tim dalam membangun sistem.\nTugas Tim Project : # Mendefinisikan masalah yang akan diselesaikan oleh sistem ERP san menentukan ruang lingkup proyek secara lebih rinci. Mengevaluasi alternatif pendekatan pada ERP, seperti : solusi kostumisasi, satu kesatuan paket, integrasi beberapa paket software atau kombinasi dari beberapa alternatif dan memilih salah satu solusi Membuat jadwal dan anggaran proyek dengan memperhatikan studi kelayakan dan melaporkan setiap temuan yang signifikan kepada komite pengarah secara tertulis maupun secara lisan Tahapan Analisis # Komite pengarah telah sepakat untuk menjalankan proyek implementasi sistem ERP dan sudah menentukan pendekatan yang akan dilakukan. Tim mulai membentuk kelompok kerja dan mendefinisikan kebutuhan pengguna. Pihak konsultan luar dapat dilibatkan hanya untuk membantu kelompok kerja dalam menjalankan aktivitas analisis ini.\nTugas Tim Project # Mengevaluasi vendor yang dapat memenuhi kebutuhan dan membuat rekomendari kepada tim pengarah, yg akan memilih vendor dan kemudian tim akan melakukan evaluasi lebih rinci atas vendor terpilih Mengidentifikasikan inisiatif rekayasa ulang proses bisnis yang mungkin diperlukan berdasarkan pendekatan sistem ERP dan paket yang dipilih. Meskipun tidak selalu menjadi alternatif yang baik, perusahaan dapat mempertimbangkan solusi untuk melakukan kostumisasi paket Setelah itu, maka perwakilan vendor dan pihak konsultan dapat dilibatkan proses analisi, dimana komite pengarah dan tim proyek akan diberikan pelatihan intensif mengenai konsep dan operasional sistem oleh pihak konsultan\nTahap akhir adalah akan dihasilkan sebuah prototipe sistem ERP diberbagai fungsi organisasi untuk melakukan simulasi dan menunjukkan integrasi antar modul pengguna dan identifikasi sesuai kebutuhan.\nAkhirnya tim proyek akan membuat laporan rekomendasi kepada pengarah untuk proses persetujuan dan verifikasi kelanjutan proyek.\nTahapan Desain # Dimulai setelah perusahaan memutuskan vendor atau konsultan yang telah dipilih. Tingkat desain tergantung pada pendekatan sistem ERP, jika memilih satu kesatuan paket, maka antarmuka sebagian besar sudah ditentukan, dan kostumisasi biasanya dilakukan pada bagianbagian minor saja.\nTahapan Dukungan Teknis # Untuk menjamin keberhasilan sistem jangka pendek dan jangka panjang, maka dukungan teknis dr para pengguna sangatlah diperlukan. Walaupun semua pengguna sudah mendapatkan pelatihan yang insentif, namun staff dukungan teknis tetap diperlukan, khususnya untuk perubahan sistem yang drastis dan komprehensif, misalnya perbaikan koreksi kesalahan program yang ditemukan pengguna dlm menjalankan sistem baru. Jika terjadi kesalahan program, maka diperlukan respon yang cepat dari konsultan atau project leader untuk menjaga kepercayaan pengguna terhadap sistem baru dan demi mendukung kelancaran dan efektifitas kerja.\nUntuk itu, diperlukan pemeliharaan system untuk menjaga kinerja sistem agar tetap optimal. Demikian pula pelaksanaan audit sistem dapat dilakukan secara periode untuk mengetahui apakah tujuan sistem ERP sudah tercapai sesuai yang diharapan.\nTahapan Implementasi # Setelah perusahaan menentukan paket software terpilih yg akan digunakan dan dilakukan kostumisasi, maka tahapan berikutnya adalah melakukan konstruksi. Untuk pendekatan kesatuan paket, maka program sudah dirancang dan diterapkan permodul. Misalnya : fungsi pembelian, inventory, pembayaran.\nDalam tahapan implementasi, semua rencana rekayasa ulang proses bisnis diterapkan, karena semua hardware, software, data, jaringan sudah diterapkan, maka hanya dua hal yang perlu dikaji yaitu orang dan prosedur.\nSetelah modul selesai dikonfigurasi dan diintegrasikan dengan komponen dan program lain, maka tahap selanjutnya adalah :\nPembuatan prototype sistem, yang dilanjutkan dengan dilakukan validasi beberapa kali iterasi dan dilakukan revisi hingga akhirnya sistem siap dijalankan Verifikasi dan pengujian keseluruhan sistem dan dilakukan beberapa konfigurasi ulang untuk meningkatkan kinerja sistem Membuat dokumentasi seluruh sistem dan memberikan pelatihan kepada semua pengguna sistem Membuat rencana konversi “roll out” sistem, yang meliputi jadwal instalasi sistem diseluruh organisasi dengan pendekatan strategi konversi terpilih. Antisipasi Kegagalan # Kegagalan ERP biasanya disebabkan oleh :\nIntegrasi sistem Tidak ada kesesuaian antara personil, proses dan teknologi ","date":"4 Januari 2026","externalUrl":null,"permalink":"/id/study/erp/04-implementation/","section":"Belajar","summary":"","title":"Enterprise Resource Planning #04: Implementasi","type":"study"},{"content":"","date":"3 Januari 2026","externalUrl":null,"permalink":"/id/tags/business-management/","section":"Tags","summary":"","title":"Business Management","type":"tags"},{"content":"","date":"3 Januari 2026","externalUrl":null,"permalink":"/id/tags/crm/","section":"Tags","summary":"","title":"CRM","type":"tags"},{"content":"","date":"3 Januari 2026","externalUrl":null,"permalink":"/id/tags/customer-relationship-management/","section":"Tags","summary":"","title":"Customer Relationship Management","type":"tags"},{"content":" Produksi dan Operasi # Hal utama dalam produksi dan operasi adalah perencanaan produksi, perencanaan (forecasting) yg akurat kebutuhan bahan dari sales order yang diterima, dan perbandingan standar costing dengan actual cost(accounting)\nPendekatan penyusunan perencanaan produksi agar menjadi akurat, maka harus didasarkan pada forecasting penjualan untuk periode tertentu dan posisi persediaan. Maka dapat dilakukan demand management(permintaan manajemen) terdiri atas : perhitungan kebutuhan bahan(material requirement planning) yang diteruskan proses pembelian, scheduledetail proses produksi.\nPendekatan Perencanaan Produksi (Production Planning) dalam sistem ERP # graph TD A([Perencanaan Sales]) --\u003e C[Perencanaan Sales dan Operasi] B([Saldo Inventory]) --\u003e C C --\u003e D[Permintaan Management] D --\u003e E[Schedule Detail] D --\u003e F[MRP] E --\u003e G([Produksi]) F --\u003e H([Pembelian]) Kegunaaan Modul Produksi # Mengatur jadwal produksi dengan cepat sesuai dengan schedule pengiriman dari order penjualan dan rencana penjualan dengan mempertimbangkan ketersediaan material dan kapasitas produksi\nMeningkatkan pengendalian penggunaan material per work order untuk mencapai tingkat efisiensi kegiatan produksi\nKarakteristik modul produksi # Fasilitas penginputan Tarif Standar Direct Labor dan FOH per Mesin Fasilitas perhitungan Bill Of Material (BOM) per Work Order Produksi Fasilitas perhitungan Standar Pra-Kalkulasi per Work Order Produksi Fasilitas penginputan Work Order Produksi dan Permintaan Barang per Work Order Produksi Fasilitas penginputan Penerimaan Hasil Jadi dan Detail Pemakaian Bahan per Work Order Fasilitas penginputan Retur Penerimaan Hasil Jadi untuk reproses produksi Fasilitas penginputan Koreksi Work In Process (WIP) Siklus Umum Proses Bisnis Perusahaan Produk Dan Jasa # Laporan yang Dihasilkan # Laporan Biaya Standar Pra-Kalkulasi Work Order Produksi Laporan Profit/Loss by Work Order Produksi (Rincian dan Summary) Laporan Penerimaan Hasil Jadi(perperiode,perWork Order produksi) Laporan Analisa Variance Bahan baku per Work Order Produksi Laporan Analisa Variance Pembebanan Direct Labor dan FOH per Work Order Produksi Laporan Proses Produksi-Kapasitas Utilisasi dan Efisiensi Mesin (Rincian dan Summary) Laporan WIP Status dan Summary WIP Laporan Outstanding per Work Order Produksi Laporan Summary Cost of Goods Sold per Work order Produksi Laporan Waste Produksi Laporan Pemakaian bahan per Work Order Produksi Laporan BOM Variance( Volume Variance, Price Variance, Usage Variance) Customer Relationship Manajemen # Adalah strategi yang digunakan untuk mempelajari kebutuhan dan perilaku pelanggan untuk membangun relasi yang kuat dengan pelanggan. CRM merupakan sebuah pendekatan untuk mengerti dan mempengaruhi tingkah laku pelanggan, yang dapat dilakukan melalui kemampuan berkomunikasi dalam meningkatkan pelayanan permintaan order pelanggan.\nProgram CRM merupakan suatu proses interaksi pelanggan dengan sistem, dimana pelanggan dapat memperoleh informasi berguna seperti : status order, kontak person in charger, fungsi sales, yang akhirnya bertujuan untuk dapat meningkatkan hubungan baik dengan pelanggan\nSolusi CRM adalah penyediaan informasi yang dibutuhkan untuk mendukung program penjualan, pelayanan, dan pemasaran. Manfaat CRM dapat berupa penyederhanaan proses bisnis, meningkatkan kualitas dan akurasi data, menyediakan akses bagi pengguana atau unit bisnis terhadap sumber daya yang sama\nManfaat CRM # Menyediakan layanan pelanggan yang lebih baik Membuat all center yang lebih efisien Menyederhanakan proses pemasaran dan penjualan Mendapatkan pelanggan baru Mengetahui secara detail pelanggan dan pelanggan yang baik Mengetahui produk yg dibutuhkan pelanggan dan produk yang tidak dibutuhkan pelanggan Mengetahui kapan waktu dan bagaimana pelanggan membeli Mengetahui karakteristik pelanggan Mengidentifikasi dan menggolongkan level pelanggan Mengetahui memperkirakan produk yang akan dibeli pelanggan Mengetahui untuk membina hubungan baik dengan pelanggan untuk waktu yang akan dating Keuntungan CRM menurut Efraim Turban # Biaya yang relatif rendah dalam merekrut calon pelanggan Tidak memerlukan pelanggan yang banyak dalam melakukan pemeliharaan proses bisnis yang terus menerus (steady business volume) Meningkatkan perluasan segmentasi dan target penjualan dan pelayanan, sehingga memperoleh keuntungan dengan jumlah pelanggan yang besar Meningkatkan tingkat loyalitas pelanggan Meningkatkan pelayanan terhadap pelanggan Melakukan evaluasi terhadap pembelian pelanggan dan bagaimana dapat menciptakan produk baru Melakukan perpindahan dari fokus produk ke fokus pelanggan Usaha agar CRM dalam IT Development # Kebutuhan persiapan termasuk alokasi Waktu dan uang, membangun tujuan yang realistik, dan memperoleh komitmen dari top manajemen Penyesuaian proses bisnis berjalan Pelatihan dan keterlibatan aktif tiap pengguna Yakinkan tingkat integrasi system Ukuran Tingkat Keberhasilan CRM # Mengurangi pembuatan laporan Mengurangi biaya dalam melakukan proses bisnis Meningkatkan tingkat kepuasan pelanggan eksternal Meningkatkan produktivitas kerja Meningkatkan penjualan Laporan yang Dihasilkan # Layanan dan dukungan untuk pelanggan Laporan Customer Interaction Laporan Customer Self Service online inquiry Lead and Activity trancking Laporan Sales Laporan Sales Support Laporan Sales Qualification Sumber Daya Manusia # Fungsi management SDM adalah melibatkan perekrutan, penempatan,evaluasi, kompensasi,dan pengembangan karyawan dari suatu organisasi.\nTujuan dari management SDM adalah penanganaan SDM yang efektif dan efisien dalam perusahaan.\nSistem SDM dirancang untuk mendukung perencanaan untuk memenuhi kebutuhan personel perusahaan, mengembangkan potensi karyawan, mengendalikan semua kebijakan dan program personel.\nHuman Resource Information System (HIRS) # HRIS dapat mendukung penggunaan yang strategis, taktis dan operasional dalam SDM suatu organisasi yang meliputi:\na. Perekrutan, pemilihan dan pemberian pekerjaan b. Penempatan kerja c. Penilaian kinerja d. Analisis manfaat karyawan e. Pelatihan dan pengembangan karyawan f. Kesehatan, keselamatan dan keamanan karyawan\nSistem Informasi SDM # flowchart TD %% --- Header Kolom --- H0[\" \"] ~~~ H1[\"KEPEGAWAIAN\"] H1 ~~~ H2[\"PENGEMBANGAN\"] H2 ~~~ H3[\"KOMPENSASI\"] %% Menyelaraskan Header dengan Baris 1 H1 ~~~ K1 H2 ~~~ P1 H3 ~~~ C1 %% --- Baris 1: Sistem Strategis --- L1[\"SISTEM\nSTRATEGIS\"] ~~~ K1[\"• Perencanaan SDM\n• Penelusuran tenaga kerja\"] K1 ~~~ P1[\"• Perencanaan suksesi\n• Perencanaan\nPenilaian Kinerja\"] P1 ~~~ C1[\"• Biaya Kontrak\n• Perkiraan gaji\"] %% --- Baris 2: Sistem Taktis --- L2[\"SISTEM\nTAKTIS\"] ~~~ K2[\"• Analisis biaya tenaga kerja\n• Analisis turnover\"] K2 ~~~ P2[\"• Efektivitas pelatihan\n• Penyesuaian karier\"] P2 ~~~ C2[\"• Efektivitas kontrak \u0026\nanalisis keberimbangan\n• Analisis kecenderungan\ntunjangan\"] %% --- Baris 3: Sistem Operasional --- L3[\"SISTEM\nOPERASIONAL\"] ~~~ K3[\"• Perekrutan\n• Penjadwalan tenaga\nkerja\"] K3 ~~~ P3[\"• Penilaian keahlian\n• Evaluasi Kinerja\"] P3 ~~~ C3[\"• Pengendalian\npenggajian\n• Administrasi tunjangan\"] %% --- Panah Hubungan Vertikal (Dua Arah) --- K1 \u003c--\u003e K2 \u003c--\u003e K3 P1 \u003c--\u003e P2 \u003c--\u003e P3 C1 \u003c--\u003e C2 \u003c--\u003e C3 %% --- Styling Visual (Menghilangkan kotak pada teks label) --- style H0 fill:none,stroke:none style H1 fill:none,stroke:none,font-weight:bold,font-size:16px style H2 fill:none,stroke:none,font-weight:bold,font-size:16px style H3 fill:none,stroke:none,font-weight:bold,font-size:16px style L1 fill:none,stroke:none,font-weight:bold,font-size:14px style L2 fill:none,stroke:none,font-weight:bold,font-size:14px style L3 fill:none,stroke:none,font-weight:bold,font-size:14px Faktor – faktor dalam penilaian SDM # Kompetensi Komitmen Keserasian Efektifitas Biaya Laporan yang Dihasilkan # Laporan Employee Schedulling Trainning Development Employement Penggajian, benefit,bonus, overtime Laporan Job Description Struktur organisasi and Work Flow Analysis ","date":"3 Januari 2026","externalUrl":null,"permalink":"/id/study/erp/03-systems-applications/","section":"Belajar","summary":"","title":"Enterprise Resource Planning #03: Aplikasi Sistem ERP (Produksi dan Operasi Customer Relationship Manajemen Sumber Daya Manusia)","type":"study"},{"content":"","date":"3 Januari 2026","externalUrl":null,"permalink":"/id/tags/erp-system/","section":"Tags","summary":"","title":"ERP System","type":"tags"},{"content":"","date":"3 Januari 2026","externalUrl":null,"permalink":"/id/tags/hr/","section":"Tags","summary":"","title":"HR","type":"tags"},{"content":"","date":"3 Januari 2026","externalUrl":null,"permalink":"/id/tags/human-resources/","section":"Tags","summary":"","title":"Human Resources","type":"tags"},{"content":"","date":"3 Januari 2026","externalUrl":null,"permalink":"/id/tags/information-systems/","section":"Tags","summary":"","title":"Information Systems","type":"tags"},{"content":"","date":"3 Januari 2026","externalUrl":null,"permalink":"/id/tags/information-technology/","section":"Tags","summary":"","title":"Information Technology","type":"tags"},{"content":"","date":"3 Januari 2026","externalUrl":null,"permalink":"/id/tags/operations/","section":"Tags","summary":"","title":"Operations","type":"tags"},{"content":"","date":"3 Januari 2026","externalUrl":null,"permalink":"/id/tags/production/","section":"Tags","summary":"","title":"Production","type":"tags"},{"content":" Procurement # Siklus sistem procurement dimulai dari aktivitas pembuatan pembelian(purchase requisition) dari departemen. Setelah form permintaan disetujui oleh atasan departemen terkait dan disampaikan ke departemen pembelian, maka petugas departemen pembelian akan melakukan pemilihan pihak pemasok negosiasi harga, dan kemudian diterbitkan pesanan pembelian (purchase order) sebagai bukti bahwa perusahaan telah menyetujui proses pembelian kepada pihak pemasok. Kemudian proses penerimaan barang(good receipt) oleh gudang berdasarkan pesanan pembelian tersebut. Berdasarkan kesepakatan, maka pemasok melakukan penagihan yang disertai faktur, faktur pajak untuk proses pembayaran. Proses verifikasi penagihan (invoice verification) oleh departemen keuangan. Setelah itu, dilakukan proses pembayaran kepada pemasok sebagai bukti pelunasan atas barang yang dibeli\nSiklus sistem procurement # Laporan dari Procurement # Laporan status permintaan pembelian Laporan status pesanan pembelian Laporan pembelian Laporan retur pembelian Laporan kontrol pembelian Sales and Distribution # Siklus manajemen penjualan dimulai dari kegiatan presales(sales contract) yaitu negosiasi hatrga dengan pihak pelanggan yg kemudian disertai dengan pembuatan penawaran harga(quotation). Kemudian dilanjutkan dengan pemrosesan order penjualan (sales order). Sekarang ini, penerapan sistem ERP ini dapat dilakukan menggunakan web based. Setelah itu, administrasi penjualan mengecek persediaan barang digudang, untuk menyediakan barang yang diperlukan untuk memenuhi order penjualan. Hal ini dikenal dengan istilah Inventory Sourcing.\nSetelah barang tersedia, maka dilakukan proses shipping yaitu aktivitas mengirimkan barang ke tempat pelanggan dengan pembuatan surat jalan(SJ) dan Delivery Order(DO). Kemudian dilanjutkan dengan aktivitas billing yaitu proses pembuatan faktur komersial, faktur pajak, kwintansi yg disampaikan ke pelanggan untuk proses penagihan. Berdasarkan tagihan tersebut, pelanggan melakukan pembayaran, jika dilihat dari segi perusahaan , akan dilakukan proses penerimaan atas nilai piutang pelanggan (receipt account receivable)\nSiklus Sales and Distribution # Kegunaan Sales and Distribution # Meningkatkan pelayanan terhadap kepuasan pelanggan, yaitu mempercepat proses peneriamaan pesanan sampai pengiriman barang dengan tepat waktu Memberikan informasi penjualan dan Analisa penjualan yang dibutuhkan pihak pelanggan Membuat perencanaan penjualan untuk perhitungan kebutuhan bahan material, perencanaan pembelian dan produksi barang dimasa depan Karakteristik Modul Sales and Distribution # Fasilitas mengelola dan penginputan kontrak penjualan dan order penjualan Fasilitas overdue limit kredit, untuk pembatasan order penjualan terhadap saldo piutang yang sudah jatuh tempo tapi belum dilakukan pembayaran oleh dihak pelanggan Fasilitas untuk penginputan transaksi penjualan dalam multi curency Fasilitas delivery schedule untuk membuat delivery order berdasarkan sales order yg segera harus dikirim dgn memperhitungkan jumlah saldo persediaan di gudang Fasilitas delivery order untuk transaksi pengiriman barang tepat waktu Fasilitas sales invoice (faktur komersial, faktur pajak,kwitansi) secara otiomatis untuk proses penagihan ke pelanggan Fasilitas sales return untuk transaksi pengembalian barang (return jual) dari pelanggan dengan alas an tertentu Dalam aktivitas sales dan distribusi, system informasi dituntut untuk semakin fleksibel,user friendly yang canggih, agar mampu mengikuti dan menangani berbagai perubahan dan keadaan tertentu secara tepat dan cepat, seperti : proses perubahan harga,alokasi persediaan,fleksibel penggunaan sistem barcode, mendukung kegiatan promosi, ketepatan Waktu pengiriman dan pengecekan batas plafond kredit\nLaporan dari Sales and Distribution # Laporan Sales Kontrak dan Outstanding Sales Kontrak Laporan Sales Order dan Outstanding Sales Order Laporan Penjualan Laporan Analisa Penjualan Laporan Retur penjualan Laporan Delivery Update Laporan Komisi Sales person Laporan Kredit Pelanggan Laporan Gross Profit Finance dan Accounting # Pada sistem ERP, untuk penyusunan laporan keuangan dilakukan melalui aplikasi program General Ledger. Semua data transaksi diperoleh dari sistem proses transaksi lainnya, seperti :\nSales transaction processing sistem : sales order processing, billing, sales analysis Purchases transaction processing sistem : purchases, inventory, processing Cash receipt and Disbursement transaction processing sistem : account receivable, cash receipts, account payable, cash disbursement Payroll transaction processing sistem : payroll, time keeping flowchart LR %% ====================== %% SALES SYSTEM (KIRI) %% ====================== subgraph S1[Sales Transaction Processing System] SOP[Sales Order Processing] BILL[Billing] SA[Sales Analysis] SOP --\u003e BILL SOP --\u003e SA end %% ====================== %% CASH SYSTEM (TENGAH ATAS) %% ====================== subgraph S2[Cash Receipts and Disbursements Transaction Processing System] AR[Accounts Receivable] CR[Cash Receipts] AP[Accounts Payable] CD[Cash Disbursements] CR --\u003e AR CD --\u003e AP end %% ====================== %% GENERAL LEDGER (KANAN ATAS) %% ====================== subgraph S3[General Ledger Processing and Reporting System] GL[General Ledger] FR[Financial Reporting] GL --\u003e FR end %% ====================== %% PURCHASES SYSTEM (BAWAH TENGAH) %% ====================== subgraph S4[Purchases Transaction Processing System] PUR[Purchases] INV[Inventory Processing] PUR --\u003e INV end %% ====================== %% PAYROLL SYSTEM (KANAN BAWAH) %% ====================== subgraph S5[Payroll Transaction Processing System] TK[Timekeeping] PAY[Payroll] TK --\u003e PAY end %% ====================== %% KONEKSI ANTAR SISTEM (NGIKUT GAMBAR) %% ====================== %% Sales ke Cash BILL --\u003e AR %% Cash ke General Ledger CR --\u003e GL CD --\u003e GL %% Purchases ke Cash PUR --\u003e AP %% Inventory ke General Ledger INV --\u003e GL %% Payroll ke General Ledger PAY --\u003e GL %% (opsional tambahan dari gambar: garis atas panjang) BILL --\u003e GL SOP --\u003e INV General Ledger # General ledger merupakan jantung dari sistem informasi accounting karena akan dihasilkan laporan keuangan(financial reporting) untuk mengetahui kondisi keuangan suatu perusahaan spt laporan neraca, laporan laba rugi, laporan analisa rasio keuangan dan laporan keuangan lainnya. Kegunaan general ledger yaitu :\nFasilitas multi currency bagi kode perkiraan yang mempunyai mata uang equvalensi dalam mata uang asing Fasilitas jurnal berulang untuk mempermudah dan mempercepat entry transaksi untuk transaksi yang berulang Tersedia fasilitas budget yang dapat dibandingkan dengan actual secara cepat dan mudah Penyajian laporan keuangan secara otomatis(automatic reporting Sistem pelaporan yang bertingkat dan informatif Dapat menyimpan data untuk periode yang tak dibatasi dan hanya dibatasi oleh kapasitas hard disk yang digunakan Dirancang sedemikian rupa, sehingga build un early warning sistem pada saat penginputan transaksi maupun pada saat penyimpanan transaksi Fasilitas posting dan unposting per periode, sehingga memudahkan jika terjadi kekeliruan data pada periode sebelumnya dapat dilakukan proses unposting general ledger Laporan yang dihasilkan yaitu :\nLaporan neraca dan laporan rugi Laporan rincian dan highlight laporan keuangan Laporan rincian biaya per pusat beban Laporan rincian saldo perkiraan Laporan kartu buku besar Laporan neraca saldo Laporan daftar jurnal transaksi Inventory # Melalui model inventory, maka akan dapat dikendalikan persediaaan bagi perusahaan, sehingga dapat meminimalkan tingkat persediaan, dimana akan berdampak terhadap penggunaan modal kerja yang dapat digunakan untuk menumpuk jumlah persediaan menjadi lebih rendah tanpa harus menganggu kelancaran proses produksi. Juga dapat mengurangi tingkat kerugian persediaan yang tak terpakai lagi (obselence), rusak(damage) dan persediaan yang kadaluarsa (expired date)\nAlasan perlu adanya inventory # Dapat memenuhi kebutuhan pelanggan pada waktu tertentu Mengambil keuntungan ketika ada potongan harga dari pihak pemasok Menghindari dari fluktuasi harga meningkat Menyediakan persediaan cadangan (buffer) untuk kondisi permintaan yang tidak menentu Menjaga kelangsungan proses produksi Klasifikasi Inventory # Raw material Work in process Finished goods Raw Material # Merupakan bahan dasar dari suatu industri yang digunakan untuk memproduksi barang siap jual ke pihak pelanggan. Tapi hal ini tergantung dari jenis perusahaan masing - masing, dimana raw material diperusahaan dapat menjadi sebagai Finished goods dari perusahaan lainnya\nWork in process # Merupakan inventory yang sudah diolah untuk diproses menjadi barang jadi (Finished goods), yang masih setengah jadi (dalam proses penyelesaian). Dalam perusahaan industri manufaktur, maka proses Work in process memerlukan biaya proses mesin, bahan pembantu, tenaga kerja.\nFinished goods # Merupakan barang yang siap dikirim atau siap dijual kepada pihak pelanggan. Dalam manufaktur, maka Finished goods merupakan barang dari proses terakhir yang disimpan dalam gudang untuk siap dijual ke pihak pelanggan.\nJust In Time # Inventory identik dengan menumpukan sejumlah uang atau investasi yang akan menganggu cash flow suatu perusahaan, terlebih jika inventory tersebut tidak bergerak. Just in Time adalah metode yang digunakan untuk menanganan sistem inventory, dimana manfaatnya sbb:\nInventory berkurang, sehingga investasi dalam inventory berkurang, yang akhirnya akan mempengaruhi kinerja keuangan perusahaan Barang yg kadaluarsa (obsolete inventory) akan lebih sedikit Kualitas inventory akan meningkat Mengurangi proses inspeksi dan pengerjaan Kembali Deteksi inventory yang cepat jika terjadi cacat inventory yang diakibatkan proses produksi Biaya penanganan inventory mengalami penurunan seperti hand-ling cost, carrying cost Kebutuhan ruangan atau gudang berkurang, shg dpt meminimalisasi invetasi gudang Lead time menjadi lebih pendek Produktivitas meningkat Fleksibilitas lebih besar Hubungan dengan pihak supplier menjadi lebih baik 12.Aktivitas penjadwalan dan kontrol menjadi lebih sederhana 13.Kapasitas meningkat 14.Penggunaan SDM menjadi lebih edisien 15.Lebih banyak variasi produk 16.Kepuasan pelanggan menjadi lebih besar 17.Respon yang lebih cepat terhadap pesanan pelanggan Karakteristik Modul Inventory # Fasilitas Inventory Adjusment, untuk melakukan koreksi persediaan yang terjadi karena kerusakan, selisih stock, penyusutan, penguapan dsb Fasilitas Inventory Transfer, untuk mencatat proses perpindahan/ mutasi stock antar gudang, perubahan jenis produk, serta laporan dan analisa persediaan yang berguna untuk memudahkan pengendalian persediaan Fasilitas stock validation, untuk pengendalian stock minus, dimana dilakukan validasi transaksi inventory agar tidak melebihi stock yang tersedia Fasilitas perhitungan inventory turn over (tingkat perputaran persediaan)per item persediaan Fasilitas perhitungan rata – rata pemakaian per item persediaan yang digunakan dalam operasi perusahaan Fasilitas kuantitas minimum inventory untuk item persedian yang dihitung berdasarkan Average Usage, Lead Time dan jumlah hari yg dipenuhi Fasilitas grouping level dari pergerakan persediaan of movement(slow moving, middle moving, fast moving) Fasilitas multi warehouse, untuk mencatat persediaan dengan banyak lokasi gudang yg berbeda – beda Fasilitas posting dan unposting per-periode, shg memudahkan jk terjadi kekeliruan data pd periode sebelumnya dpt dilakukan proses un posting inventory, dgn otorisasi tertentu Implemetasi motode sistem inventory Just In Time dpt berjalan baik, bila didukung dan dijalankan dgn system ERP, dmn terintegrasi dgn Master Production Schedule (MPS) dan Master Requirement Planning (MRP) dlm merencanakan kebutuhan produksi untuk pembuatan permintaan pembelian material yg diteruskan dgn pembuatan PO. Proses ini tentunya berkaitan dgn Bill Of Material (BOM)\nLaporan yang dihasilkan # Laporan data history persediaan Informasi harga beli dan harga jual persediaan Laporan penerimaan persedian Laporan pengeluaran persediaan Kartu persediaan Laporan stock dan mutasi persediaan Laporan status persediaan Laporan perubahan jenis produk, koreksi persediaan, retur pengeluaran persediaan ","date":"2 Januari 2026","externalUrl":null,"permalink":"/id/study/erp/02-systems-applications/","section":"Belajar","summary":"","title":"Enterprise Resource Planning #02: Aplikasi Sistem ERP (Procurement, Sales and Distribution, Finance and Accounting, Inventory)","type":"study"},{"content":"","date":"2 Januari 2026","externalUrl":null,"permalink":"/id/tags/finance-and-accounting/","section":"Tags","summary":"","title":"Finance and Accounting","type":"tags"},{"content":"","date":"2 Januari 2026","externalUrl":null,"permalink":"/id/tags/inventory/","section":"Tags","summary":"","title":"Inventory","type":"tags"},{"content":"","date":"2 Januari 2026","externalUrl":null,"permalink":"/id/tags/procurement/","section":"Tags","summary":"","title":"Procurement","type":"tags"},{"content":"","date":"2 Januari 2026","externalUrl":null,"permalink":"/id/tags/sales-and-distribution/","section":"Tags","summary":"","title":"Sales and Distribution","type":"tags"},{"content":" Sejarah Sistem ERP # Tahun Peristiwa 1960-an Sistem Fabrikan fokus kepada pengendalian Inventory (Inventory Control) 1970-an Fokus bergeser pada MRP (Material Requirement Planning) yang menerjemahkan jadwal Utama suatu produk menjadi kebutuhan berbasis timephased net, untuk perencanaan dan pengadaan barang sebagian jadi, komponen maupun bahan baku 1980-an MRP-II (Manufacturing Resource Planning) berkembang mencakup pengelolaan operasi (shop floor) dan aktivitas pengelolaan distribusi 1990-an MRP –II dikembangkan lagi mencakup aktivitas rekayasa, keuangan, sumber daya manusia, pengelolaan proyek yang melingkupi hampir semua aktivitas sistem organisasi usaha (business enterprise), yang kemudian dikenal dengan istilah Enterprise Resource Planning (ERP) 2000-sekarang Enteded ERP menjadi ERP II Tahapan Evolusi Sistem ERP # Material Requirement Planning # MRP digunakan untuk melakukan simulasi persamaan industri manufaktur, dengan menggunakan jadwal perencanaan (master schedule) untuk menjawab produk apa yang akan diproduksi, daftar pengadaan material (bill of material) untuk menjawab bahan material yang diperlukan untuk membuat produk, daftar saldo persediaan untuk menjawab bahan material apa yang sudah dimiliki dan bahan material yang harus dibeli.\nClose Loop MRP # Alat bantu berupa sistem untuk mendukung perencanaan hingga penjualan dan produksi (Sales and Distributor Planning), jadwal pembuatan produk (Master Schedulling), perkiraan perencanaan penjualan dan perencanaan order konsumen (Demand Management), serta analisa sumber daya\nRuang Lingkup Close Loop MRP # graph TD A[Demand Management] B[Production Planning] C[Master Scheduling] D[Material Requirements] E[Plant \u0026 Supplier Scheduling] F[Execution] G[Capacity Planning] %% Alur utama A \u003c--\u003e B A \u003c--\u003e C A \u003c--\u003e E B \u003c--\u003e G C \u003c--\u003e G D \u003c--\u003e G E \u003c--\u003e G C \u003c--\u003e D D \u003c--\u003e E C \u003c--\u003e E E \u003c--\u003e F Manufacturing Resource Planning (MRP II) # Sama seperti tahap sebelumnya, hanya ada penambahan elemen sebagai berikut :\nPerencanaan penjualan dan operasi, proses yang digunakan untuk menyeimbangkan antara permintaan dan persediaan, sehingga management dapat melakukan kontrol terhadap aspek operasional dan bisnis. Antarmuka keuangan, kemanpuan menerjemahkan rencana operasional (satuan bentuk pieces, kg, gallon,satuan lainnya) menjadi satuan biaya(dalam mata uang tertentu). Simulasi kemampuan melakukan analisis “what if” untuk mendapatkan jawaban yang mungkin diterapkan, baik dalam satuan unit maupun dalam jumlah uang. Enterprise Resource Planning (ERP) # Dasar ERP diturunkan dari MRP II, tetapi proses bisnisnya diperluas dan lebih sesuai diterapkan pada kondisi perusahaan yang memiliki beberapa unit bisnis. Dengan sistem ERP, maka integrasi keuangan lebih ditekankan, alat bantu rantai – pasok, dukungan atas bisnis melintas batas fungsi organisasi, bahkan melintas antar perusahaan dapat dilakukan dengan mudah. Tujuan utama implementasi ERP adalah agar perusahaan dapat menjalankan bisnis dalam kondisi yang cepat berubah dan sangat kompetitif, dan jauh lebih baik dari sebelumnya.\nExtended ERP II # Perluasan dari fungsi- fungsi yang ada pada system ERP, yaitu mencakup fungsi-fungsi yang dapat menjembatani komunikasi dengan suplier dan konsumen. Sistem ini tidak hanya berfokus pada konsumen, proses produksi, transaksi real time, management asset perusahaan, bahkan berfokus pada usaha optimasi seluruh jaringan bisnis, termasuk integrasi dengan supplier\nPerbandingan ERP dan ERP II # Aspek ERP ERP II Peranan Optimasi Enterprise Partisipasi elemen pada rantai bisnis proses perusahaan, dukungan penuh e-commerce Domain Manufaktur dan Distribusi Semua segmen dan sektor pada perusahaan Fungsi Produksi, Penjualan, Distribusi dan Proses Keuangan Lintas Industri, Sektor tertentu, proses industri spesifik Proses Menangani proses nternal, tertutup erhadap proses ksternal Terhubung dengan mitra bisnis Arsitektur Dukungan pada web, tertutup, arsitektur bersifat monopolitik Berbasis web, terbuka,fleksibel terhadap integrasi dengan sistem lain dengan berbasis komponen Data Dihasilkan dan dikonsumsi oleh internal perusahaan Dihasilkan dan dikonsumsi oleh pihak internal dan eksternal perusahaan dan hasilnya dipublikasikan ke semua pihak yang berkepentingan Infrastruktur sistem ERP # Karakteristik Sistem ERP # Menurut daniel O’leary adalah sebagai berikut :\nPaket perangkat lunak yang didesain untuk lingkungan pelanggan pengguna server, apakah secara tradisional atau berbasis jaringan. Memadukan sebagian besar dari proses bisnis. Memproses sebagian besar dari transaksi perusahaan. Menggunakan database perusahaan secara tipikal menyimpan setiap data sekali saja. Memungkinkan akses data secara real time. Memungkinkan perpaduan proses transaksi dan kegiatan perencanaan. Menunjang sistem multi mata uang dan bahasa, yang sangat diperlukan perusahaan multinasional. Memungkinkan penyesuaian untuk kebutuhan khusus perusahaan tanpa melakukan pemrograman kembali. Menurut Daniel O’Leary :\nPaket perangkat lunak yang didesain untuk lingkungan pelanggan pengguna server, apakah secara tradisional atau berbasis jaringan Memadukan sebagian besar dari proses bisnis Memproses sebagian besar dari transaksi perusahaan Menggunakan database perusahaan yang secara tipikal menyimpan setiap data sekali saja Memungkinkan akses data secara real time Memungkinkan perpaduan proses transaksi dan kegiatan perencanaan Menunjang sistem multi mata uang dan bahasa, yang sangat diperlukan perusahaan multiinasional Memungkinkan penyesuaian untuk kebutuhan khusus perusahaan tanpa melakukan pemrograman kembali Manfaat Sistem ERP # Menurut james A O’brien adalah sebagai berikut :\nKualitas dan Efisiensi Penurunan Biaya. Pendukung Keputusan. Kelincahan Perusahaan. Sistem Terintegrasi Sistem ERP tidak hanya memadukan data dan orang Sistem ERP dapat memungkinkan management mengelola operasi. Sistem ERP dapat memudahkan ekstrasi informasi. Sistem ERP menghasikan informasi Sistem ERP menciptakan struktur organisasi. Sistem ERP menjamin seluruh aktivitas. Sistem ERP mengendalikan seluruh proses bisnis. Konsep ERP # Enterprise Resource Planning(ERP) merupakan singkatan dari tiga elemen kata Enterprise (Perusahan/Organisasi), Resource (Sumber Daya), Planning(Perencanaan). Jadi Enterprise Resource Planning (ERP) merupakan konsep untuk merencanakan dan mengelola sumber daya perusahaan , yaitu berupa paket aplikasi program terintegrasi dan multi modul yang dirancang untuk melayani dan mendukung berbagai fungsi dalam perusahaan (to serve and support multi business functions), sehingga pekerjaan menjadi lebih efisien dan dapat memberikan pelayanan lebih bagi konsumen, yang akhirnya dapat menghasilkan nilai tambah dan memberikan keuntungan maksimal bagi semua pihak yang berkepentingan(stake holder) atas perusahaan\nERP terdiri atas paket software komersial yang menjamin integrasi yang mulus atas semua aliran informasi diperusahaan, yang meliputi keuangan, akuntansi, sumber daya manusia, rantai pasok dan informasi konsumen. Sistem ERP adalah paket sistem informasi yang dapat dikonfigurasi, yang mengintegrasikan informasi dan proses yang berbasis informasi di dalam dan melintas area fungsional dalam sebuah organisasi ERP merupakan satu basis data, satu aplikasi dan satu kesatuan antar muka diseluruh enterprise flowchart TB ES([ENTERPRISE SYSTEM]) FA[Financial \u0026 Accounting] CRM[Customer Relationship Management] HR[Human Resource] INV[Inventory] SD[Sales \u0026 Distributor] BI[Business Intelligence] MFG[Manufacturing] PROC[Procurement] PM[Plant Maintenance] %% Relasi dari pusat ES --\u003e FA ES --\u003e CRM ES --\u003e HR ES --\u003e INV ES --\u003e SD ES --\u003e BI ES --\u003e MFG ES --\u003e PROC ES --\u003e PM Scope of Financial Dan Accounting # Cost Center and Profit Center Account Payable Account Receivable Cash/ Bank Management (Cash Flow Management) Treasury Management General Ledger(Income Statement \u0026amp; Balance Sheet) Sales Quotation Sales Order Shipping Good Issue Invocing Credit Control Komisi,Discount,Creadit Notes Scope of Manufacturing # Order Production Bill of Material Planning Producting Control –Order Production Master Planning Schedulling MRP(material requirement planning) Product costing Scope of Inventory # Inventory Movement(transfer) Inventory Management Multiple Warehouse Location Product Category Product Items Physical and Valuation Inventory Procurement # Purchase Requisition and Approval Purchase Order and Approval Good Receipt Invoice Verification Purchase Return Scope of Human Resource # Employee Schedulling Training Development Employement Payroll,Benefit,Bonut,Overtime Job Description Self Service HR Struktur Organisasi and Workflow analysis Scope of Plant # Reduce operational budged on production Increase for Efficiency (work clearance management, maintenance execution,service part,document management, maintenance budgeting and integration with accounting assets) Scope of Customer Relationship Management # Customer Campaign Customer Interaction Center Customer Self Service Online Inquiry Lead and Activity Tracking(Information, Service, Charge,Account, Warranty,help) Knowledge base, Sales Report,Sales Support, Sales Qualification Consistent user experience Personalization of Service Realtime access enterprise info Ruang Lingkup Businness Intelligence # Sistem informasi untuk pengambilan keputusan bagi management, seperti Decision Support Sistem(DSS),yang Inovatif dan Intuitif Interface untuk kepentingan analisis data transaksi agar memperoleh kinerja bisnis\nMerupakan proses interaktif untuk eksplorasi dan analisis informasi yang terstruktur dan pada domain tertentu(data warehouse)untuk mengetahui pola bisnis tertentu, sehingga membantu pengambilan keputusan\n","date":"1 Januari 2026","externalUrl":null,"permalink":"/id/study/erp/01-introduction-and-benefits/","section":"Belajar","summary":"","title":"Enterprise Resource Planning #01: Pengenalan dan Manfaatnya","type":"study"},{"content":"","date":"25 Januari 2025","externalUrl":null,"permalink":"/id/tags/e-learning/","section":"Tags","summary":"","title":"E-Learning","type":"tags"},{"content":" Portfolio Proyek: Sistem Informasi Ujian Online (Computer-Based Test) # SMK Negeri 34 Jakarta # Deskripsi Proyek # Sebuah aplikasi ujian online berbasis web (Computer-Based Test) yang dikembangkan untuk memodernisasi proses evaluasi belajar di SMK Negeri 34 Jakarta. Sistem ini dirancang untuk menggantikan platform konvensional (seperti Google Form) dengan solusi yang lebih aman, terintegrasi, dan mampu meminimalisir kecurangan akademik melalui fitur proteksi khusus.\nTim Pengembang # Ketua Tim: Azriel Fidzlie – Developer / Penulis Anggota: Fatya Restu Pertiwi – Penulis Anggota: Muhammad Daffa Rakan – Penulis Teknologi \u0026amp; Metodologi # Framework: CodeIgniter 4 (PHP) Database: MySQL Metode Pengembangan: Rapid Application Development (RAD) Pengujian: Black Box Testing Frontend: HTML5, CSS3, JavaScript (Bootstrap/AdminLTE) 1. Modul Siswa (Peserta Ujian) # Anti-Cheating System: Mekanisme deteksi perpindahan tab browser untuk mencegah siswa mencari jawaban di internet. Real-time Timer: Penghitung waktu pengerjaan soal secara otomatis. Rekapitulasi Nilai: Hasil ujian yang dapat dilihat langsung setelah sesi berakhir. 2. Modul Guru (Penguji) # Bank Soal \u0026amp; Paket Ujian: Pengelolaan ribuan soal dengan fitur acak soal dan acak opsi jawaban (shuffle). Live Monitoring: Memantau status pengerjaan siswa secara real-time dari dashboard guru. Auto-Grading: Penilaian otomatis untuk soal pilihan ganda yang akurat dan instan. 3. Modul Administrator # Manajemen Data Master: Pengelolaan data guru, siswa, kelas, jurusan, dan mata pelajaran. Reporting: Pembuatan laporan hasil ujian dan berita acara dalam format yang siap cetak. Keunggulan # Keamanan Data: Enkripsi password dan proteksi akses database. User Friendly: Antarmuka yang intuitif untuk semua kalangan usia (guru dan siswa). Efisiensi: Mengurangi penggunaan kertas (paperless) dan mempercepat proses pengolahan nilai. Lampiran # Link Aplikasi ","date":"25 Januari 2025","externalUrl":null,"permalink":"/id/portfolio/implementation-of-smkn-34-jakarta-online-examination-system/","section":"Portfolio","summary":"","title":"Implementasi Sistem Ujian Online SMKN 34 Jakarta","type":"portfolio"},{"content":"","date":"25 Januari 2025","externalUrl":null,"permalink":"/id/tags/online-exam/","section":"Tags","summary":"","title":"Online Exam","type":"tags"},{"content":"","date":"25 Januari 2025","externalUrl":null,"permalink":"/id/tags/portfolio/","section":"Tags","summary":"","title":"Portfolio","type":"tags"},{"content":"","date":"10 Januari 2025","externalUrl":null,"permalink":"/id/tags/environment/","section":"Tags","summary":"","title":"Environment","type":"tags"},{"content":"","date":"10 Januari 2025","externalUrl":null,"permalink":"/id/tags/health/","section":"Tags","summary":"","title":"Health","type":"tags"},{"content":"","date":"10 Januari 2025","externalUrl":null,"permalink":"/id/tags/k3lh/","section":"Tags","summary":"","title":"K3lh","type":"tags"},{"content":" Pengertian K3LH # K3LH (Kesehatan, Keselamatan, Kerja dan Lingkungan Hidup) adalah Program Kesehatan dan Keselamatan Kerja dan Lingkungan Hidup pada suatu perusahaan atau instansi lain yang memiliki banyak pekerja atau karyawan. Atau definisi k3LH yang lainnya adalah suatu upaya perlindungan agar karyawan/tenaga kerja selalu dalam keadaan selamat dan sehat selama melakukan pekerjaannya di tempat kerja termasuk juga orang lain yang memasuki tempat kerja maupun proses produk dapat secara aman dalam produksinya\nK3LH merupakan hal penting dalam membangun industri. Pertumbuhan dan pembangunan industri banyak menimbulkan masalah terhadap manusia di setiap negara. Contohnya adalah kecelakaan kerja, bermacam penyakit akibat kerja, dan dampak lingkungan dari adanya industri.\nManfaat dan Tujuan K3LH # Dengan program K3LH, pekerja dan perusahaan bisa menikmati manfaatnya. Perusahaan akan menjadi lebih bermutu dan sistematis untuk berkembang lebih cepat, dan pekerja menjadi lebih aman, lebih sehat dan nyaman. Jika kenyamanan dalam bekerja bisa terwujud, akan tercipta hubungan yang lebih harmonis antara para pekerja dan perusahaan tempat mereka bekerja sehingga menghasilkan produk yang maksimal sesuai misi perusahaan.\nTujuan K3LH # Melindungi tenaga kerja/karyawan atas hak keselamatannya, ketika melakukan pekerjaannya untuk kesejahteraan hidup maupun meningkatkan produksi dan produtivitas nasional. Memeliharan sumber produksi, agar bisa digunakan secara aman dan juga efisien. Menjamin keselamatan setiap orang lain yang berada di tempat kerja. Agar industri bisa tumbuh dan berkembang dengan cepat dan baik, maka sistem kerja di setiap industri harus diatur dan dirancang dengan memperhatikan K3LH dan para pekerja. Karena setiap pekerja atau buruh mempunyai hak untuk memeroleh perlindungan atas keselamatan dan kesehatan kerja, moral, dan kesusilaan serta perlakuan yang sesuai dengan harkat dan martabat manusia serta nilai-nilai agama.\n3 Alasan Utama Mengapa Suatu Perusahaan Melaksanakan K3LH # Kewajiban mematuhi Undang-undang Tenaga Kerja Memenuhi Hak asasi manusia Mengurangi beban ekonomi para pekerja Keuntungan dari penerapan K3LH adalah terciptanya hasil kerja yang optimal, karena suasana kerja yang nyaman akan menghasilkan produksi yang lebih banyak dan lebih bermutu. Jadi program K3LH ini bisa mempengaruhi kuantitas dan kualitas hasil produksi. Perusahaan yang menerapkan program K3LH biasanya mengaplikasikan K3LH di lingkungan perusahaan.\nCara Menerapkan K3LH # Memberikan fasilitas seragam kerja dan sepatu keselamatan (safety shoes) dan mewajibkan seragam dan sepatu keselamatan tersebut untuk dipakai oleh semua pekerja yang terlibat dalam produksi, bengkel dan lapangan. Memasang atribut K3LH seperti tulisan yang mengingatkan pekerja untuk selalu sadar akan keselamatan, kesehatan dan kebersihan di lingkungan perusahaan. Maksud dari atribut K3LH ini adalah menghindari bahaya atau kesalahan yang bisa berakibat fatal. Maksud lainnya adalah memperhatikan kebersihan di lingkungan perusahaan, menciptakan suasana yang lebih nyaman dan bersih. Memisahkan sampah organik (contoh : sampah dari tumbuhan dan kertas) dan bukan organik (contoh : sampah dari plastik). Menerapkan K3LH dalam prosedur dan sistem kerja. Manajemen perusahaan mengupayakan para karyawannya dengan memberi petunjuk tentang K3LH supaya para pekerja memahami pengertian K3LH dan menerapkannya. ","date":"10 Januari 2025","externalUrl":null,"permalink":"/id/articles/the-importence-of-implementing-k3lh/","section":"Artikel","summary":"","title":"Pentingnya Penerapan K3LH","type":"articles"},{"content":"","date":"10 Januari 2025","externalUrl":null,"permalink":"/id/tags/safety/","section":"Tags","summary":"","title":"Safety","type":"tags"},{"content":"","date":"10 Januari 2025","externalUrl":null,"permalink":"/id/tags/workplace/","section":"Tags","summary":"","title":"Workplace","type":"tags"},{"content":"Menggeluti dunia teknologi dan pengembangan perangkat Lunak. Memiliki pengalaman programming, pengembangan web, dan sertifikasi yang relevan. Keterampilan komunikasi yang baik, Berpengalaman di bisnis kecil.\nKeterampilan Data Analysis, HTML, CSS, JavaScript, PHP, Node.js, MySQL, Vue.js, Jaringan. Daftar Riwayat Hidup Pengalaman Kerja Pendidikan TVRI Nasional April 2025 - Juli 2025 IT Broadcasting Membantu program acara untuk menampilkan materi, Monitoring selama pra-produksi dan pasca-produksi, Mengoperasikan VMix, dan Membantu Liputan Website\nKorps Brimob Polri Februari 2020 - Maret 2020 Staff Administrasi Melakukan pemeliharaan perangkat keras, Membuat Penomoran surat, Membuat surat tugas operasi zebra, dan Mengirim surat Website\nUniversitas Bina Sarana Informatika Maret 2022 - Maret 2026 Sistem Informasi Meneliti Sistem Ujian Online Berbasis Web dengan Metode Rapid Application Development (RAD) untuk Meningkatkan Efisiensi dan Keamanan Ujian di Era Digital. Skripsi: Implementasi Sistem Ujian Online SMKN 34 Jakarta.\nSMKN Harapan Bangsa Juli 2017 - Juli 2020 Teknik Komputer Jaringan Memiliki keahlian dalam Mengoperasikan Komputer, mengkonfigurasi Cisco serta mengkonfigurasikan jaringan. Mahir dalam mengoperasikan cisco. Pengalaman bersertifikasi yang telah diperoleh meliputi: Sertifikat PKL (Praktek Kerja Lapangan sebagai Staff Administrasi di Korps Brimob Resimen III).\nSertifikat Certificate of Completion Badges Sertifikat Pelatihan yang diselenggarakan oleh Programiz dengan judul Certificate of Completion yang terdiri dari materi “Java Interview Questions”, “Learn Java Basics”, “Learn Python Basics”, dan “Python Beyond Basics Challenges”\nERP (Enterprise Resource Planning) Sertifikat Workshop dan berhasil menyelesaikan Uji Kompetensi ERP yang diselenggarakan oleh PT. Sumihai Teknologi Indonesia. Sertifikat Kompetensi Analis Program Sertifikat kompetensi sebagai Analis Program (Program Analyst) oleh Badan Nasional Sertifikasi Profesi (BNSP) di bidang Pengembangan Perangkat Lunak. Sertifikat IAII (Ikatan Ahli Informatika Indonesia) Sertifikat Profisiensi Pengetahuan di bidang Database Systems dari Ikatan Ahli Informatika Indonesia (IAII) dengan predikat Proficient. Sertifikat Praktek Kerja Industri (PRAKERIN) Pendidikan Sistem Ganda (PSG) Sertifikat Praktek Kerja Industri (PRAKERIN) Pendidikan Sistem Ganda (PSG) yang diperoleh saat melakukan praktek kerja industri di Korps Brimob Resimen III pada bulan Februari 2020 hingga Maret 2020. Bahasa Indonesia (Native), Inggris (Intermediate)\nUnduh Anda dapat melihat resume saya di FlowCV atau langsung mengunduh file PDF-nya.\nFlow CV Unduh ","date":"28 Januari 2025","externalUrl":null,"permalink":"/id/resume/","section":"","summary":"","title":"Lampiran","type":"page"},{"content":" Profil Saya lahir dan besar di Jakarta Indonesia, Jakarta terletak di provinsi DKI Jakarta, Indonesia, dan terkenal dengan sejarahnya yang kaya, termasuk sebagai ibu kota Sunda Kalapa dan sebagai pusat pelabuhan kerajaan Padjadjaran. Saya berharap dapat bertemu Anda di kampung halaman saya.\nSaat ini saya bekerja sebagai freelancer dibidang web development, dengan fokus pada pengembangan front-end dan back-end menggunakan HTML, PHP, CSS, dan JavaScript.\nSaya seorang anak 1 bersaudara. Dulu saya pikir saya menyukai olahraga, tetapi sekarang saya tahu saya hanya menyukai gagasan menyukai olahraga. Namun, saya sangat menyukai musik, dan bermain games adalah salah satu gairah terbesar saya.\nPikiran Acak Ketika kita memikirkan kematian\u0026hellip;\nTapi percayalah kamu sebenarnya tidak benar-benar ingin mati; kamu hanya ingin melarikan diri dan menghilang.\nKamu ingin bahagia, dan memiliki keberanian untuk tetap bahagia;\nKamu hanya ingin hidup lebih indah. king_ulee\n","date":"28 Januari 2025","externalUrl":null,"permalink":"/id/about/","section":"","summary":"","title":"Tentang","type":"page"},{"content":"","date":"1 Januari 2025","externalUrl":null,"permalink":"/id/tags/laptop/","section":"Tags","summary":"","title":"Laptop","type":"tags"},{"content":"Laptop memanfaatkan sumber daya dari baterai. Dan untuk pengisian daya baterainya digunakan adaptop A/C. Laptop biasanya mempunyai baterai dengan daya tahan sekitar 1-6 jam tergantung cara pemakaiannya, ukuran baterai dan juga spesifikasi dari laptopnya. Notebook atau computer notebook merupakan istilah lain dari laptop.\nLaptop dan komputer desktop pada umumnya mempunyai fungsi yang sama. Karena komponen-komponen penyusun yang ada di dalamnya sama, perbedaannya hanya di ukurannya. Pada laptop ukuran komponennya diperkecil agar lebih ringan, tidak mudah panas serta agar hemat daya.\nAwal Ide Laptop # Alan Kay ialah seorang ilmuwan komputer yang berasal dari Amerika yang mempunyai ide untuk membuat laptop pertama kalinya. Kemudian di bantu oleh Adam Osborne yaitu seorang publisher software yang juga bekerja di penerbitan buku di Amerika.\nSebagai alat teknologi, laptop juga dimulai dari hal yang sederhana hingga berkembang menjadi laptop seperti sekarang ini yang sudah canggih dan multifungsi. Untuk lebih jelasnya mengenai perkembangan laptop, berikut ini akan dipaparkan dengan ringkas.\n1. IBM Portable PC 5100 (1975) # IBM portable PC 5100 ini adalah komputer mikro pertama. Fungsinya khusus digunakan sebagai eginering dan untuk kebutuhan Matematika (mathematicians). IBM 5100 memiliki ukuran yang cukup kecil karena bisa masuk ke dalam tas dan bisa di bawa atau di pindahkan ke satu tempat dengan mudah.\n2. Rockwell AIM 65 (1977) # Setelah IBM Portable di kembangkan menjadi Rockwell AIM 65 (merupakan komputer mikro kedua) namun lebih lengkap dari yang sebelumnya karena mempunyai layar dan keyboard serta hard copy printer\n3. IBM Portable PC 5110 (1978) # Komputer jenis ini merupakan versi komputer bisnis yang dikembangkan dari IBM 5100 (komputer versi 1975 sebelumnya).\n4. Heathkit H89 (1979) # Heathkit H89 all-in-one ini dirilis oleh Heathkit pada tahun 1979 di akhir tahun.\n5. Osborne 1 (1981) # Osborne Computer Corporation membuat perangkat versi komputer portable pertama yaitu Osborne 1 pada tahun 1981. Walaupun versi pertama, komputer jenis ini memiliki banyak kekurangan dan keterbatasan dan masih perlu perbaikan dan pengembangan lebih lagi.\nKeterbatasannya yaitu hanya mampu menampilkan 51 karakter/baris teks, layar dalam ukuran hanya diagonal 5 serta memiliki tas kotak pembawa. Osborne 1 mempunyai 2 buah disk drive sebagai floppy-disk, beratnya kira-kira 10 kg, mempunyai mesin CPU 8. Pada era tahun 1981 Osborne 1 diterima secara luas sehingga jumlah produksinya meningkat.\n6. Gavilans (1983) # Gavilans Mobile Computer dirilis tahun 1983, dengan berat 4 kg (jika dibandingkan dengan laptop masa kini cukup berat yah), menggunakan Nickel-Cadmium sebagai baterai dan bisa bertahan sampai 9 jam, 64K RAM dan bisa di upgrade menjadi 128K, mempunyai mouse/touchpad berada di bagian depan atas keyboard, mempunyai prosesor Intel 8088 5MHz dan floppy disk drive.\nBaterai yang dipakai tersebut membuat perangkat ini unggul dan perpaduan desain dan performanya di tahun tersebut. Kelebihan lain yaitu perangkat pertama mobile pc yang dipasarkan dengan brand laptop.\nSetelah muncul osborne 1, Bill Gates memperkenalkan idenya mengenai portable computer dengan icd screen. Seseorang yang bekerja di Microsoft bernama Kazuhiko nishi menerapkan ide tersebut menghasilkan prototype radio shack. Berat dari perangkat ini 2 kg, radio shack trs-80 versi model 100 mobile pc dengan fitur modem, text editor, telecommunications program serta program yang dirancang oleh Microsoft.\nPada tahun 1984 IBM mengembangkan portable pc 5155 menjadi suatu perangkat dengan berat 13,6 kg dan layar 9 inch.\n7. Compact SLT 289 (1984-1988) # Compact juga tak ingi kalah saing dalam pengembangan laptop. Compaq merilis produk bernama Compaq SLT 286 denga revolusi VGA, serta dilengkapi dengan prosesor 12MHz, harddisk drive 20MB, 1,44 floppy disk, beratnya 6,3 kg serta keyboard dapat dipisahkan dari badan laptop. komputer portable pertama yang dapat di bawa dalam perjalanan dalam penerbangan.\n8. Minisport (1990-an) # Pengembangan laptop pada tahun 1990-an merupakan masa revolusi terbesar yaitu diawali dari munculnya minisport yang dirilis zenith data systems dengan fitur 1,44 inch floppy drisk, 640 Kb RAM, 20 MB esdi hard drive dan 2400 baud modem\nDi era tahun 1990-an pabrik macintosh dan macintosh portable melakukan gebrakan besar untuk membuat laptop dengan berat 8 kg, layar 9,8 inch versi active matrix, memiliki resolusi layar 640×400 pixel, desain yang kuat dan kokoh, dan sebuah trackball telah dibuat secara inovatif untuk melengkapinya.\nLayar 256-color merupakan pilihan utama untuk laptop pada tahun 1993, misalnya powerbook 165.\n9. Toughbooks (1996-2003) # Panasonic dan intel membuat juga ikut serta membuat laptop milik mereka dengan berfokuskan pada segmen robust mobile pc yaitu toughbook (cf-25), laptop andalan mereka saat ini. Desain dari toughbook ini dirancang dengan kelebihan ”bertahan” walaupun jatuh dari ketinggian 70 centimeter. Selain itu latop ini tahan akan akan udara lembab dan debu.\n10. Laptop Masa kini (2003-sekarang) # Setelah betahun-tahun akhirnya laptop masa kini telah berkembang dengan baik dan canggih hal terseut dikarenakan kemajuan ilmu di bidang teknologi yang semakin canggih sehingga mendukung perkembangannya.\nLaptop zaman sekarang sudah banyak memeberikan keuntungan bagi penggunanya, bahkan penggunaan laptop sudah mayoritas di kalangan dunia. Hal tersebut dikarenakan penggunaannya mudah, cepat dan paktis. Bentuk laptop zaman sekarang sudah bermacam-macam dengan desain yang menarik, rata-rata semua laptop yang beredar sekarang ini sudah ringan dan ramping.\nFitur yang ditawarkan pada laptop zaman sekarang juga begitu menarik perhatian bahkan bebrapa laptop sudah bisa touch screen dan perangkat software dan hardware yang lebih baik dari zaman dulu. Mungkin masa depan akan menawarkan fitur yang lebih lagi dengan karena ilmu di bidang teknologi sangat berkembang pesat dan banyakpara ilmuwan terus mengembangkannya.\n","date":"1 Januari 2025","externalUrl":null,"permalink":"/id/articles/the-history-and-development-of-laptops-over-time/","section":"Artikel","summary":"","title":"Sejarah dan Perkembangan Laptop dari Masa ke Masa","type":"articles"},{"content":"","date":"1 Januari 2025","externalUrl":null,"permalink":"/id/tags/tech/","section":"Tags","summary":"","title":"Tech","type":"tags"},{"content":"","date":"10 Januari 2025","externalUrl":null,"permalink":"/id/categories/","section":"Categories","summary":"","title":"Categories","type":"categories"},{"content":"","date":"10 Januari 2025","externalUrl":null,"permalink":"/id/categories/cisco/","section":"Categories","summary":"","title":"Cisco","type":"categories"},{"content":"","date":"10 Januari 2025","externalUrl":null,"permalink":"/id/tags/cisco/","section":"Tags","summary":"","title":"Cisco","type":"tags"},{"content":"","date":"10 Januari 2025","externalUrl":null,"permalink":"/id/tags/inter-vlan/","section":"Tags","summary":"","title":"Inter-Vlan","type":"tags"},{"content":"Untuk menghubungkan VLAN yang berbeda, dibutuhkan perangkat layer 3 baik itu router atau switch layer 3. Cara pertama adalah dengan menggunakan satu router melalui satu interface. Teknik ini disebut router on a stick. Kekurangan dari teknik ini adalah akan terjadi collision domain karena hanya menggunakan satu interface.\nAda 2 trunking protocol yang biasa digunakan:\nISL = cisco proprietary, bekerja pada ethernet, token ring dan FDDI, menambahi tag sebesar 30byte pada frame dan semua traffic VLAN ditag. IEEE 802.11Q (dot1q) = open standard, hanya bekerja pada ethernet, menambahi tag sebesar 4byte pada frame. Buat topologi seperti diatas dan konfigurasi VLAN10 dan VLAN20 seperti lab sebelumnya. Tambahkan 1 router. Karena hanya menggunakan 1 interface, maka harus dibuat sub-interface untuk dijadikan gateway VLAN. Port SW1 yang terhubung ke router harus diset mode trunk.\nRouter(config)#interface FastEthernet0/0.10 Router(config-subif)#encapsulation dot1Q 10 Router(config-subif)#ip address 10.10.10.1 255.255.255.0 Router(config-subif)#interface FastEthernet0/0.20 Router(config-subif)#encapsulation dot1Q 20 Router(config-subif)#ip address 20.20.20.1 255.255.255.0 Cek interface dengan perintah show ip int brief.\nRouter#sh ip int br Interface IP-Address OK? Method Status Protocol FastEthernet0/0 unassigned YES unset up up FastEthernet0/0.10 10.10.10.1 YES manual up up FastEthernet0/0.20 20.20.20.1 YES manual up up FastEthernet0/0.30 30.30.30.30 YES manual up up FastEthernet0/1 unassigned YES unset administratively down down Vlan1 unassigned YES unset administratively down down Router# Sekarang ping antar VLAN yang berbeda.\nPC\u0026gt;ping 20.20.20.21 Pinging 20.20.20.21 with 32 bytes of data: Request timed out. Reply from 20.20.20.21: bytes=32 time=1ms TTL=127 Reply from 20.20.20.21: bytes=32 time=0ms TTL=127 Reply from 20.20.20.21: bytes=32 time=0ms TTL=127 Ping statistics for 20.20.20.21: Packets: Sent = 4, Received = 3, Lost = 1 (25% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 1ms, Average = 0ms PC\u0026gt;tracert 20.20.20.21 Tracing route to 20.20.20.21 over a maximum of 30 hops: 1 30 ms 0 ms 0 ms 10.10.10.1 2 0 ms 0 ms 0 ms 20.20.20.21 Trace complete. Router#sh ip arp Protocol Address Age (min) Hardware Addr Type Interface Internet 10.10.10.10 4 0000.0C1B.0D20 ARPA FastEthernet0/0.10 Internet 20.20.20.21 3 0060.7092.05A9 ARPA FastEthernet0/0.20 Internet 30.30.30.1 1 0001.C7AE.3D52 ARPA FastEthernet0/0.30 Router# ","date":"10 Januari 2025","externalUrl":null,"permalink":"/id/articles/inter-vlan-router-on-a-stick/","section":"Artikel","summary":"","title":"Inter-VLAN - Router on a Stick","type":"articles"},{"content":"","date":"25 Januari 2025","externalUrl":null,"permalink":"/id/tags/internet/","section":"Tags","summary":"","title":"Internet","type":"tags"},{"content":"","date":"25 Januari 2025","externalUrl":null,"permalink":"/id/tags/satelit/","section":"Tags","summary":"","title":"Satelit","type":"tags"},{"content":"","date":"25 Januari 2025","externalUrl":null,"permalink":"/tags/satellite/","section":"Tags","summary":"","title":"Satellite","type":"tags"},{"content":"","date":"25 Januari 2025","externalUrl":null,"permalink":"/id/tags/starlink/","section":"Tags","summary":"","title":"Starlink","type":"tags"},{"content":" Apa Itu Starlink? # Starlink adalah layanan internet berbasis satelit yang dikembangkan oleh SpaceX, perusahaan teknologi luar angkasa milik Elon Musk. Proyek ini bertujuan untuk menyediakan akses internet berkecepatan tinggi dan latensi rendah ke seluruh dunia, termasuk daerah terpencil yang sulit dijangkau oleh infrastruktur internet tradisional.\nCara Kerja Starlink WiFi # Starlink bekerja dengan menggunakan konstelasi ribuan satelit kecil yang mengorbit di Low Earth Orbit (LEO) pada ketinggian sekitar 550 km. Dibandingkan dengan satelit geostasioner yang berada di ketinggian sekitar 35.000 km, satelit LEO memiliki latensi yang jauh lebih rendah, sehingga memungkinkan koneksi internet yang lebih cepat dan stabil.\nKomponen Utama Starlink # Satelit Starlink – Mengirim dan menerima data dari pengguna melalui antena phased-array. User Terminal (Dish Antenna) – Perangkat penerima yang dipasang di rumah atau kendaraan pengguna untuk berkomunikasi dengan satelit. Gateway Station – Stasiun bumi yang menghubungkan jaringan satelit dengan infrastruktur internet global. Keunggulan Starlink WiFi # Kecepatan Tinggi – Starlink dapat menyediakan kecepatan internet hingga 250 Mbps atau lebih, tergantung pada kondisi cuaca dan lokasi pengguna. Latensi Rendah – Dengan latensi sekitar 20-40 ms, Starlink lebih responsif dibandingkan layanan internet satelit konvensional. Cakupan Global – Mampu menjangkau wilayah terpencil, seperti pedesaan, pegunungan, dan lautan. Mudah Dipasang – Instalasi Starlink cukup sederhana, hanya memerlukan antena parabola dan modem yang dikonfigurasi secara otomatis. Mobilitas Tinggi – Dengan layanan Starlink Roam (sebelumnya Starlink RV), pengguna dapat membawa dan menggunakan Starlink di berbagai lokasi. Kekurangan Starlink WiFi # Biaya Mahal – Harga perangkat Starlink berkisar $599 - $2.500, dengan biaya langganan bulanan mulai dari $99 - $150 tergantung pada paket layanan. Terpengaruh Cuaca – Hujan lebat, salju, atau badai dapat mengganggu sinyal dan mengurangi kecepatan koneksi. Perlu Area Terbuka – Agar optimal, antena Starlink harus dipasang di area dengan pandangan bebas ke langit tanpa hambatan seperti pohon atau bangunan tinggi. Belum Sepenuhnya Stabil – Karena masih dalam pengembangan, layanan Starlink terkadang mengalami gangguan atau downtime. Starlink vs Internet Tradisional # Aspek Starlink WiFi Fiber Optik Internet Seluler Kecepatan 50-250 Mbps 100-1000 Mbps 10-200 Mbps Latensi 20-40 ms 5-10 ms 30-100 ms Cakupan Global Terbatas pada daerah perkotaan Tergantung pada sinyal operator Biaya Bulanan $99-$150 $30-$100 $10-$50 Cara Berlangganan dan Menggunakan Starlink # Cek Ketersediaan – Kunjungi situs resmi Starlink dan masukkan lokasi Anda untuk melihat apakah layanan tersedia. Pesan Perangkat – Pilih paket yang sesuai dan lakukan pemesanan. Pasang Antena – Setelah perangkat tiba, pasang antena di tempat terbuka dan sambungkan ke modem. Aktivasi dan Penggunaan – Gunakan aplikasi Starlink untuk mengonfigurasi dan menghubungkan perangkat ke jaringan. Masa Depan Starlink # Starlink terus berkembang dengan penambahan lebih banyak satelit dan peningkatan teknologi untuk meningkatkan kecepatan dan stabilitas layanan. Selain itu, SpaceX juga berencana untuk menyediakan layanan Starlink for Aviation bagi pesawat dan Starlink for Maritime bagi kapal laut.\nKesimpulan # Starlink WiFi adalah inovasi revolusioner yang menghadirkan internet cepat dan stabil ke daerah-daerah yang sulit dijangkau oleh layanan konvensional. Meskipun masih memiliki beberapa kekurangan, Starlink menjadi solusi potensial untuk menjembatani kesenjangan digital di seluruh dunia.\n","date":"25 Januari 2025","externalUrl":null,"permalink":"/id/articles/starlink-wifi-the-global-satelite-internet-revolution/","section":"Artikel","summary":"","title":"Starlink WiFi: Revolusi Internet Satelit Global","type":"articles"},{"content":"Artikel bertujuan memberikan informasi yang berguna kepada pembaca. Informasi tersebut bisa berupa berita terbaru, pengetahuan tentang suatu topik, panduan, atau analisis.\n","date":"16 Januari 2023","externalUrl":null,"permalink":"/id/articles/","section":"Artikel","summary":"","title":"Artikel","type":"articles"},{"content":"Menampilkan hasil karya yang sudah dibuat.\n","date":"16 Januari 2023","externalUrl":null,"permalink":"/id/portfolio/","section":"Portfolio","summary":"","title":"Portfolio","type":"portfolio"},{"content":"","externalUrl":null,"permalink":"/id/authors/","section":"Authors","summary":"","title":"Authors","type":"authors"},{"content":"","externalUrl":null,"permalink":"/id/tags/codeigniter/","section":"Tags","summary":"","title":"CodeIgniter","type":"tags"},{"content":"","externalUrl":null,"permalink":"/id/tags/digital-transaction-systems/","section":"Tags","summary":"","title":"Digital Transaction Systems","type":"tags"},{"content":"Koleksi jepretan foto yang diambil secara random, sebagai media penyalur hobi fotografi.\nCoffee Tower Building Moon ","externalUrl":null,"permalink":"/id/others/gallery/","section":"Lainnya","summary":"","title":"Galeri","type":"others"},{"content":"","externalUrl":null,"permalink":"/id/others/","section":"Lainnya","summary":"","title":"Lainnya","type":"others"},{"content":"","externalUrl":null,"permalink":"/id/tags/mvc/","section":"Tags","summary":"","title":"MVC","type":"tags"},{"content":"","externalUrl":null,"permalink":"/id/tags/network-implementation/","section":"Tags","summary":"","title":"Network Implementation","type":"tags"},{"content":"Menyelami arsitektur MVC dan pengembangan Back-End menggunakan Framework CodeIgniter.\n","externalUrl":null,"permalink":"/id/study/programming/web/practicum-module-2/","section":"Belajar","summary":"","title":"Praktikum Modul II","type":"pemrograman"},{"content":"Pengembangan Web Lanjut: Fokus pada interaksi pengguna, sistem transaksi digital, dan implementasi jaringan pada aplikasi berbasis CodeIgniter.\n","externalUrl":null,"permalink":"/id/study/programming/web/practicum-module-3/","section":"Belajar","summary":"","title":"Praktikum Modul III","type":"pemrograman"},{"content":"","externalUrl":null,"permalink":"/id/tags/user-interaction/","section":"Tags","summary":"","title":"User Interaction","type":"tags"}]