Ilham Baihaqi
Sabtu, 28 Mei 2022
Minggu, 06 Maret 2022
Metodologi Penelitian Ilmu Komputer
Minat Bidang Penelitian Pemanfaatan IoT dibidang Pertanian
Internet saat ini telah berkembang pesat di dunia, salah satunya di Indonesia. Pada tahun 2021 pengguna internet di Indonesia telah mencapai 202,6 juta, terjadi peningkatan 15% dari tahun sebelumnya. Perkembangan internet yang pesat dapat dimanfaatkan untuk menerapkan Internet of Things (IoT) dalam menunjang perekonomian masyarakat, contohnya seperti Pertanian.
Gagasan penerapan IoT pada sektor pertanian sudah seharusnya untuk direalisasikan karena membawa dampak yang sangat positif untuk para petani. Dalam penerapannya, IoT dapat membantu petani melalui sensor-sensor untuk memantau perkembangan kesuburan tanah, pengendalian hama atau penyakit. Selain itu, petani dapat melakukan penajdwalan penyiraman, pemupukan dan penyemprotan pestisida otomatis dengan memanfaatkan IoT. Diharapkan jika penerapan IoT pada bidang pertanian dapat meningkatkan produktivitas hasil pertanian yang dapat meningkatkan perekonomian masyarakat.
Rabu, 05 Januari 2022
IMPLEMENTASI ALGORITMA BRANCH AND BOUND
Pengertian Algoritma Branch and Bound
Algoritma B&B (Branch and Bound) adalah salah satu algoritma yang digunakan untuk pencarian jalur. Contoh yang dibahas kali ini adalah mengenai pencarian jalur yang melalui semua titik dengan biaya terendah.
Algoritma ini memiliki 2 prinsip, yaitu:
- Algoritma ini akan melakukan perhitungan secara rekursif, akan memecah masalah kedalam masalah-masalah kecil, sambil tetap menghitung nilai terendah / terbaik. Proses ini dinamakan branching
- Jika branching diterapkan secara sendirian, maka hasilnya akan tetap mencari setiap kemungkinan yang ada. Untuk meningkatkan performa, algoritma ini akan melakukan pencatatan biaya minimum sebagai bound dalam setiap perhitungan, sehingga untuk calon hasil jawaban yang diperkirakan akan melebihi bound akan dibuang karena tidak mungkin akan mencapai nilai terbaik
Implementasi Algoritma Branch and Bound pada permasalahan Knapsack Problem
Rabu, 22 Desember 2021
Implementasi Algoritma Divide and Conquer pada Sorting dan Searching
Implementasi Algoritma Divide and Conquer pada Sorting dan Searching
Nama : Ilham Baihaqi
NPM : 20312152
Kelas : IF 20 E
Algoritma Divide and Conquer adalah algoritma yang sangat populer pada di dunia ilmu komputer. Algoritma Divide and Conquer adalah algoritma yang memiliki prinsip untuk membagi-bagi permasalahan yang terlalu besar menjadi beberapa atau sub-masalah yang lebih kecil sehingga menjadi mudah untuk diselesaikan. sub-sub masalah yang telah dibagi menjadi beberapa bagian yang lebih kecil kemudian akan dicari solusinya, setelah mendapatkan solusinya, solusi dari sub-sub masalah tersebut akan digabung menjadi satu untuk menyelesaikan masalah awal atau masalah utama.
Algoritma Sorting atau algoritma pengurutan adalah suatu langkah yang sistematis dan berurutan. atau algoritma untuk meletakkan kumpulan data ke dalam suatu urutan tertentu berdasarkan satu atau beberapa "kunci" pada tiap-tiap elemen.
Algoritma Searching atau algoritma pencarian adalah algoritma yang menerima suatu argumen "kunci" dan dengan menggunakan suatu langkah-langkah tertentu akan mencari "kunci" tersebut. Setelah proses pencarian dilakukan, akan diperoleh salah satu dari dua kemungkinan, yaitu data berhasil ditemukan, atau data tidak ditemukan.
Divide and Conquer Pada Sorting
1. Selection Sort
Selection Sort adalah sebuah teknik pengurutan dengan cara mencari nilai tertinggi / terendah pada suatu kumpulan data (array) kemudian menempatkan nilai tersebut pada tempatnya. Algoritma ini dibagi menjadi dua berdasarkan urutan datanya, yaitu : dari kecil ke besar (Ascending), dan dari besar ke kecil (Descending). Algoritma ini pada dasarnya memilih nilai yang terbesar/terkecil, dan menukarkan nilai tersebut dengan nilai disebelah kiri/kanan pada data. Dan kemudian langkah tersebut diulang secara terus menerus hingga data tersusun. Algoritma ini tidak efektif bila digunakan pada array yang jumlah nya besar karena kompleksitas dari algoritma ini adalah O(x2) dimana n adalah jumlah item.
Divide and Conquer Pada Searching
1. Binary Search
Algoritma Binary Search atau algoritma pencarian Biner, salah satu teknik pencarian yang dilakukan secara berulang kali membagi setengah dari jumlah data yang dicari sehingga dapat memperkecil lokasi pencarian. Dengan begitu dapat mempercepat waktu pencarian. Jika ditemukan kecocokan pada suatu data dengan data yang dicari maka pencarian akan selesai, jika tidak, pencarian akan terus dilakukan hingga akhir dari bagian data tersebut. Algoritma ini cocok untuk mencari pada jumlah data yang banyak, karena kompleksitas algoritma ini adalah O(log n) dimana n adalah jumlah item. Tetapi sebelum menggunakan algoritma ini, pastikan data sudah terurut. Jika tidak maka pencarian tidak bisa dilakukan.
2. Linear Search
Algoritma Linear Search atau pencarian linear, adalah salah satu teknik dari pencarian data, teknik ini mencari data dengan mengecek semua data secara satu per satu. Apabila ditemukan kecocokan pada data dengan data yang dicari, maka pencarian akan selesai. Jika tidak, pencarian akan terus dilakukan hingga data terakhir. Algoritma ini tidak efektif jika digunakan pada data yang besar karena kompleksitas algoritma ini adalah O(n) dimana n adalah jumlah item. Dan jika data yang dicari berada pada bagian paling akhir dari kumpulan data tersebut (array), maka pencarian tetap harus dilakukan dari yang paling awal, sehingga membutuhkan waktu yang lama.
Rabu, 15 Desember 2021
SEJARAH, DEFINISI DAN CARA KERJA ALGORITMA DIVIDE AND CONQUER
Nama : Ilham Baihaqi
Kelas : IF 20 E
NPM : 20312152
Sejarah, Definisi dan Cara Kerja Algoritma Divide and Conquer
A. Sejarah Algoritma Divide and Conqueror
Algoritma Divide And Conquer ditemukan oleh seorang ilmuwan Rusia bernama Anatolii Alexeevich Karatsuba pada tahun 1960. Pada mulanya, Anatolii menemukan algoritma yang lebih cepat untuk mengalihkan dua buah bilangan bulat yang besar dengan kompleksitas O(nlog 3).
B. Definisi Algoritma Divide and Conqueror
Algoritma Divide and Conquer merupakan algoritma yang sangat populer di dunia Ilmu Komputer. Divide and Conquer merupakan algoritma yang berprinsip memecah-mecah permasalahan yang terlalu besar menjadi beberapa bagian kecil sehingga lebih mudah untuk diselesaikan. Langkah-langkah umum algoritma Divide and Conquer :
Divide : Membagi masalah menjadi beberapa upa-masalah yang memiliki kemiripan dengan masalah semula namun berukuran lebih kecil ( idealnya berukuran hampir sama ).
Conquer : Memecahkan ( menyelesaikan ) masing-masing upa-masalah ( secara rekursif ).
Combine : Menggabungkan solusi masing-masing upa-masalah sehingga membentuk solusi masalah semula.
Objek masalah yang di bagi adalah masukan (input) atau instances yang berukuran n: tabel (larik), matriks, dan sebagainya, bergantung pada masalahnya. Tiap-tiap upa-masalah mempunyai karakteristik yang sama (the same type) dengan karakteristik masalah asal, sehingga metode Divide and Conquer lebih natural diungkapkan dalam skema rekursif. Sesuai dengan karakteristik pembagian dan pemecahan masalah tersebut, maka algoritma ini dapat berjalan baik pada persoalan yang bertipe rekursif (perulangan dengan memanggil dirinya sendiri). Dengan demikian, algoritma ini dapat diimplementasikan dengan cara iteratif ( perulangan biasa ), karena pada prinsipnya iteratif hampir sama dengan rekursif. Salah satu penggunaan algoritma ini yang paling populer adalah dalam hal pengolahan data yang bertipe array ( elemen larik ). Mengapa ? Karena pengolahan array pada umumnya selalu menggunakan prinsip rekursif atau iteratif. Penggunaan secara spesifik adalah untuk mencari nilai minimal dan maksimal serta untuk mengurutkan elemen array. Dalam hal pengurutan ini ada empat macam algoritma pengurutan yang berdasar pada algoritma Divide and Conquer, yaitu merge sort, insert sort, quick sort, dan selection sort. Merge sort dan Quick sort mempunyai kompleksitas algoritma O(n ²log n). Hal ini lebih baik jika dibandingkan dengan pengurutan biasa dengan menggunakan algoritma brute force.
C. Cara Kerja Algoritma Divide and Conqueror
Divide : artinya membagi masalah menjadi beberapa sub-masalah yang memiliki masalah dengan permasalahan semula namun lebih kecil dari sebelumnya atau sama dengan sebelumnya.
Conquer : artinya menyelesaikan masing-masing sub-masalah secara rekursif.
Combine : artinya menggabungkan solusi dari masing-masing sub-masalah sehingga dapat menyelesaikan masalah utama atau masalah awal.
Algoritma ini akan membagi n input menjadi k subset input yang berbeda (1<k≤n). Dari k subset input yang berbeda akan terdapat k submasalah, setiak submasalah mempunyai solusi masing-masing. Sehingga akan diperoleh subsolusi k. Kemudian, dari subsolusi k akan diperoleh solusi yang optimal atau solusi yang diharapkan.
Jika submasalah masih dianggap terlalu besar, maka metode Divide and Conquer dapat digunakan lagi secara berulang-ulang
Sabtu, 09 Oktober 2021
Praktikum Desain Web - Javascript
Nama : Ilham Baihaqi
NPM : 20312152
Kelas : IF20E
1. The <script> tag / Demo1
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
<body>
<h2>JavaScript in Body</h2>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = "My First Javascript";
</script>
</body>
</html>
Praktikum Desain Web - CSS
Latihan CSS Mata Kuliah Praktikum Desain Web
1. Membuat Alert button
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
<style>
.btn{
border: none;
color: white;
padding: 14px 28px;
cursor :pointer;
}
.sukses {background-color: #4caf50;} /*Green*/
.sukses:hover{background-color: #46a049;}
.info{background-color: #2196f3;} /*Blue*/
.info:hover {background: #0b7dda;}
.peringatan{background-color: #ff9800;} /*Orange*/
.peringatan:hover{background: #e68a00;}
.bahaya{background-color: #f44336;} /*Red*/
.bahaya:hover{background: #da190b;}
.semula{background-color: #e7e7e7; color: black;} /*Gray*/
.semula:hover{background:#ddd;}
</style>
</head>
<body>
<h1> Tombol Peringatan</h1>
<button class="btn sukses">Sukses</button>
<button class="btn info">Info</button>
<button class="btn peringatan">Peringatan</button>
<button class="btn bahaya">Bahaya</button>
<button class="btn Semula">Semula</button>
</body>
</html>
Hasil :
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
<style>
input[type=text],select{width: 100%;
padding: 12px 20px;
margin: 8px 0;
display: inline-block;
border: 1px solid #ccc;
border-radius: 4px;
box-sizing: border-box;}
input[type=submit]{width: 100%;
background-color: #4caf50;
color:white;
padding: 14 px 20px;
margin: 8px 0;
border: none;
border-radius: 4px;
cursor: pointer;
}
input[type=submit]:hover{background-color:#45a049;}
div{
border-radius: 5px;
background-color: #f2f2f2;
padding: 20px;
}
</style>
</head>
<body>
<h3>Using CSS to style an HTML Form</h3>
<div>
<form action="/action_page.php">
<label for="fname">First Name</label>
<input type="text" id="fname" name="firstname" placeholder="Your name...">
<label for="lname">Last Name</label>
<input type="text" id="lname" name="lastname" placeholder="Your last name...">
<label for="Country"></label>
<select id="country" name="country">
<option value="Australia">Australia</option>
<option value="Russia Federation">Russia Federation</option>
<option value="USA">USA</option>
</select>
<input type="submit"value="submit">
</form>
</div>
</body>
</html>
Hasil :
3. Membuat Table Navigation Bar
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
<style>
body {font-family: arial;}
ul {list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: #333;
}
li {
float: left;
}
li a
{
display: block;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
li a:hover:not(.active){background-color: #111}
.active {background-color: #4caf50;}
</style>
</head>
<body>
<ul>
<li><a href="home">Home</a></li>
<li><a href="#news">News</a></li>
<li><a href="contact">Contact</a></li>
<li style="float:right"><a class="active" href="#about">About</a></li>
</ul>
Hasil :
4. Membuat Dropdown Menu
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Dropdown</title>
<style>
body { font-family:arial; }
ul {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: #333;
}
li {
float: left;
}
li a, .dropbtn {
display: inline-block;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
li a:hover, .dropdown:hover, .dropbtn {
background-color: red;
}
li.dropdown {
display: inline-block;
}
.dropdown-content {
display: none;
position: absolute;
background-color: #f9f9f9;
min-width: 160px;
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0,2);
z-index: 1;
}
.dropdown-content a {
color: black;
padding: 12px 16px;
text-decoration: none;
display: block;
text-align: left;
}
.dropdown-content a:hover {background-color: #f1f1f1}
.dropdown:hover .dropdown-content {
display: block;
}
</style>
</head>
<body>
<ul>
<li><a href="#home">Home</a></li>
<li><a href="#news">News</a></li>
<li class="dropdown">
<a href="javascript:void(0)" class="dropbtn">Dropdown</a>
<div class="dropdown-content">
<a href="#">Link 1</a>
<a href="#">Link 2</a>
<a href="#">Link 3</a>
</div>
</li>
</ul>
<h3>Dropdown menu inside a navigation bar</h3>
<p>hover over the dropdown link to see the dropdown menu </p>
</body>
</html>
Hasil :
Software Requirement Spesification (SRS) pada Aplikasi untuk sistem transaksi pembayaran pada kasir
Link Download Word/PDF : Word / PDF