Aplikasi Berbasi Web II (Capture 2)
Aplikasi Berbasi Web II (Capture 1)
Pemrograman Mobile 3
Pemrograman Mobile 2
Pemrograman Mobile 1
Teknik-Teknik Pada Machine Learning

Machine Learning (Pembelajaran Mesin) mencakup berbagai teknik dan algoritma yang dikategorikan ke dalam beberapa kelompok utama, berdasarkan cara mereka belajar dan jenis masalah yang mereka selesaikan. Berikut adalah beberapa teknik utama dalam Machine Learning:
1. Pembelajaran Terawasi (Supervised Learning)
Dalam pembelajaran terawasi, algoritma dilatih menggunakan data yang sudah dilabeli. Tujuannya adalah untuk mempelajari pemetaan dari input ke output. Beberapa teknik dalam kategori ini termasuk:
- Regresi Linier: Untuk memprediksi nilai output yang kontinu.
- Regresi Logistik: Digunakan untuk klasifikasi biner.
- Trees dan Random Forests: Fleksibel untuk klasifikasi atau regresi.
- Support Vector Machines (SVM): Untuk klasifikasi atau regresi pada dataset kompleks.
- Neural Networks: Jaringan yang dapat menangani tugas-tugas yang sangat kompleks.
2. Pembelajaran Tanpa Pengawasan (Unsupervised Learning)
Pembelajaran tanpa pengawasan melibatkan pelatihan model pada data tanpa label. Tujuannya adalah untuk menemukan struktur tersembunyi dalam data. Beberapa tekniknya meliputi:
- Clustering (e.g., K-Means, DBSCAN): Untuk mengelompokkan data berdasarkan kesamaan.
- Analisis Komponen Utama (PCA): Untuk reduksi dimensi dan visualisasi data.
- Autoencoders: Untuk pembelajaran fitur dan reduksi dimensi.
3. Pembelajaran Semi-Supervised
Pembelajaran semi-supervised menggunakan kombinasi data berlabel dan tidak berlabel, sering kali dengan jumlah data berlabel yang jauh lebih sedikit.
4. Pembelajaran Penguatan (Reinforcement Learning)
Dalam pembelajaran penguatan, model belajar untuk membuat keputusan melalui trial and error, dengan mendapatkan “reward” atau “punishment” berdasarkan aksinya.
- Q-Learning, Deep Q-Network (DQN): Untuk tugas-tugas yang memerlukan serangkaian keputusan, seperti permainan atau robotika.
5. Deep Learning
Deep Learning adalah subkategori dari machine learning yang menggunakan neural networks dengan banyak lapisan (deep neural networks) untuk menangani tugas-tugas yang sangat kompleks.
- Convolutional Neural Networks (CNNs): Untuk pengolahan gambar dan video.
- Recurrent Neural Networks (RNNs), LSTM, GRU: Untuk pemrosesan data sekuensial seperti bahasa alami atau deret waktu.
6. Ensemble Methods
Metode ensemble melibatkan kombinasi beberapa model untuk meningkatkan kinerja.
- Boosting (e.g., AdaBoost, Gradient Boosting): Menggabungkan banyak model lemah untuk membentuk model yang kuat.
- Bagging (e.g., Random Forest): Menggunakan subset data untuk melatih model-model berbeda dan kemudian menggabungkan hasilnya.
Setiap teknik ini memiliki kekuatan dan keterbatasannya sendiri, dan pemilihan metode yang tepat sangat bergantung pada jenis data dan masalah spesifik yang dihadapi. Pembelajaran mesin adalah bidang yang sangat aktif dan berkembang, dengan teknik baru dan perbaikan yang terus muncul.
Metode-metode pada Machine Learning
Metode klasifikasi, pengelompokkan, prediksi, dan clustering adalah empat pilar utama dalam bidang informatika, terutama dalam subbidang pembelajaran mesin dan analisis data. Setiap metode memiliki aplikasi dan perkembangan yang unik, dan bersama-sama, mereka membentuk landasan bagi banyak sistem cerdas yang kita gunakan hari ini.
1. Metode Klasifikasi
Klasifikasi adalah proses mengidentifikasi kategori yang mana sebuah objek baru termasuk, berdasarkan pelatihan dari dataset yang telah dikategorikan. Dalam beberapa tahun terakhir, kemajuan dalam pembelajaran mendalam (deep learning) telah merevolusi metode klasifikasi. Jaringan saraf konvolusional (CNN) dan jaringan saraf berulang (RNN) menjadi sangat populer untuk tugas-tugas seperti pengenalan gambar dan pemrosesan bahasa alami. Klasifikasi sekarang lebih akurat dan efisien, dengan kemampuan untuk belajar dari data yang sangat besar dan kompleks.
2. Pengelompokkan
Pengelompokkan, atau segmentasi, adalah tentang membagi data ke dalam kelompok berdasarkan kesamaan atau pola. Metode seperti K-Means, DBSCAN, dan algoritma hierarkis terus dikembangkan untuk meningkatkan efisiensi dan akurasi. Dengan pertumbuhan data besar (big data), pengelompokkan telah menjadi penting untuk analisis data skala besar, memungkinkan kita untuk menemukan pola dan hubungan yang tidak jelas dalam kumpulan data yang luas.
3. Prediksi
Prediksi adalah tentang memperkirakan hasil masa depan berdasarkan data historis. Algoritma pembelajaran mesin seperti regresi linier, regresi logistik, dan random forest telah digunakan secara luas untuk prediksi. Namun, dengan munculnya jaringan saraf buatan, kemampuan prediksi telah meningkat secara signifikan. Pembelajaran mesin sekarang dapat memanfaatkan data yang lebih besar dan lebih kompleks untuk membuat prediksi yang lebih akurat, dari prakiraan cuaca hingga prediksi tren pasar.
4. Clustering
Clustering, serupa dengan pengelompokkan, melibatkan pembagian data menjadi kelompok berdasarkan kesamaan. Namun, clustering sering digunakan dalam konteks pembelajaran tanpa pengawasan, di mana tidak ada label atau kategori yang ditentukan sebelumnya. Teknik seperti Clustering Berbasis Kerapatan dan Spectral Clustering telah dikembangkan, memanfaatkan teknik-teknik canggih seperti pembelajaran mesin dan matematika terapan untuk mengidentifikasi struktur yang lebih kompleks dalam data.
Perkembangan Terkini
Perkembangan terkini dalam bidang ini melibatkan integrasi kecerdasan buatan (AI) dan pembelajaran mesin dalam skala yang lebih besar. Dengan kemajuan dalam komputasi awan dan penyimpanan data, kita kini dapat mengolah dan menganalisis data dalam volume yang belum pernah terjadi sebelumnya. Selain itu, integrasi teknologi seperti pemrosesan bahasa alami (NLP) dan penglihatan komputer memungkinkan aplikasi metode-metode ini dalam skenario yang semakin kompleks dan bervariasi.
Ke depan, kita dapat mengharapkan integrasi lebih lanjut dari metode ini dengan teknologi canggih lainnya, seperti Internet of Things (IoT) dan sistem otomatis, membuka kemungkinan baru dalam bidang seperti kesehatan, keuangan, dan manajemen kota pintar. Keahlian dalam metode-metode ini tidak hanya penting untuk ilmuwan data, tetapi juga menjadi aset berharga di hampir setiap industri di era digital ini.
Pengembangan Aplikasi Ai Berbasis Web

Sebagai seorang Software Engineer, pengembangan aplikasi AI berbasis web membutuhkan pendekatan yang terstruktur dan berfokus pada kaidah-kaidah software engineering. Berikut adalah contoh dan penjelasan pengembangan aplikasi AI berbasis web dengan pendekatan software engineering:
Contoh Aplikasi: Sistem Rekomendasi Berbasis AI Penjelasan: Sistem rekomendasi adalah aplikasi AI yang memberikan rekomendasi atau rekomendasi berdasarkan preferensi pengguna dan data historis. Pendekatan software engineering yang tepat untuk aplikasi ini adalah sebagai berikut:
- Pemahaman Persyaratan
- Tim pengembang dan tim bisnis berkolaborasi untuk memahami persyaratan aplikasi secara rinci.
- Persyaratan termasuk sumber data, jenis rekomendasi yang diinginkan, dan antarmuka pengguna yang diharapkan.
- Analisis Data
- Tim pengembang menganalisis data historis untuk memahami pola dan tren pengguna.
- Data ini digunakan sebagai dasar untuk memberikan rekomendasi yang relevan.
- Desain Arsitektur
- Tim pengembang merancang arsitektur aplikasi berdasarkan persyaratan dan analisis data.
- Arsitektur harus scalable, efisien, dan mampu mengelola data besar.
- Pemilihan Teknologi
- Tim pengembang memilih teknologi yang tepat untuk implementasi aplikasi, seperti bahasa pemrograman (misalnya Python), kerangka kerja web (misalnya Flask atau Django), dan perpustakaan AI (misalnya TensorFlow atau PyTorch).
- Implementasi
- Tim pengembang mulai mengimplementasikan aplikasi berdasarkan desain dan spesifikasi yang telah ditentukan.
- Model AI diperkenalkan dalam aplikasi untuk memberikan rekomendasi yang relevan.
- Pengujian
- Aplikasi diuji untuk memastikan bahwa rekomendasi yang dihasilkan sesuai dengan harapan.
- Pengujian fungsional dan pengujian beban dilakukan untuk mengidentifikasi dan mengatasi bug dan masalah kinerja.
- Integrasi & Implementasi Kembali
- Setelah pengujian berhasil, aplikasi diintegrasikan ke dalam lingkungan produksi.
- Hasil akhir dirilis ke pengguna untuk penggunaan aktif.
- Pemantauan & Pemeliharaan
- Aplikasi diawasi secara berkala untuk memastikan kinerjanya yang baik dan melakukan perbaikan jika diperlukan.
- Pemeliharaan dilakukan secara teratur untuk menjaga keandalan dan keberlanjutan aplikasi.
Pengembangan aplikasi AI berbasis web dengan kaidah software engineering memastikan aplikasi yang baik dari segi kualitas, keandalan, dan keberlanjutan. Proses ini juga membantu tim pengembang dan tim bisnis berkolaborasi dengan lebih baik untuk mencapai tujuan aplikasi secara efektif.
Berikut adalah contoh langkah-langkah untuk membuat aplikasi machine learning dengan menggunakan Google Colab dan Flask:
Langkah 1: Membuat Model Machine Learning di Google Colab
- Buka Google Colab (https://colab.research.google.com/) dan buat notebook baru.
- Tuliskan kode untuk membuat model machine learning menggunakan perpustakaan seperti TensorFlow atau Scikit-learn.
- Latih model dengan menggunakan data yang sesuai dan evaluasi kinerjanya.
Contoh kode untuk membuat model regresi linear menggunakan Scikit-learn di Google Colab:
1 2 3 4 5 6 7 8 9 10 11 12 |
# Import library import pandas as pd from sklearn.linear_model import LinearRegression # Load data data = pd.read_csv('data.csv') X = data['feature'].values.reshape(-1, 1) y = data['target'].values # Create and train the model model = LinearRegression() model.fit(X, y) |
Langkah 2: Simpan Model dan Dataset
- Simpan model dan dataset dalam format yang sesuai, misalnya menggunakan pickle untuk menyimpan model dan CSV untuk dataset.
- Unduh model dan dataset ke perangkat lokal Anda.
Contoh kode untuk menyimpan model dalam format pickle:
1 2 3 4 5 |
import pickle # Save the model to disk with open('model.pkl', 'wb') as file: pickle.dump(model, file) |
Langkah 3: Membuat Aplikasi Flask
- Buat proyek Flask dengan struktur direktori yang tepat.
- Simpan model dan dataset dalam direktori yang sesuai.
- Buat file Flask untuk menangani permintaan dari pengguna dan menghasilkan prediksi berdasarkan model.
Contoh struktur direktori:
project_folder/ app.py model.pkl data.csv
Contoh kode untuk aplikasi Flask:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
from flask import Flask, render_template, request import pickle import pandas as pd app = Flask(__name__) # Load the model with open('model.pkl', 'rb') as file: model = pickle.load(file) # Load the dataset (optional) data = pd.read_csv('data.csv') @app.route('/') def index(): return render_template('index.html') @app.route('/predict', methods=['POST']) def predict(): feature = float(request.form['feature']) prediction = model.predict([[feature]])[0] return render_template('result.html', prediction=prediction) if __name__ == '__main__': app.run(debug=True) |
Langkah 4: Membuat Template HTML
Buat template HTML untuk tampilan aplikasi.
Template ini akan menampilkan form untuk memasukkan input dari pengguna dan menampilkan hasil prediksi.
Contoh kode untuk template HTML:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<!-- index.html --> <!DOCTYPE html> <html> <head> <title>Machine Learning App</title> </head> <body> <h1>Machine Learning App</h1> <form action="/predict" method="post"> <label for="feature">Input Feature:</label> <input type="number" name="feature" id="feature" required> <input type="submit" value="Predict"> </form> </body> </html> <!-- result.html --> <!DOCTYPE html> <html> <head> <title>Machine Learning App - Result</title> </head> <body> <h1>Machine Learning App - Result</h1> <p>Prediction: {{ prediction }}</p> </body> </html> |
Langkah 5: Jalankan Aplikasi Flask
Jalankan aplikasi Flask dengan perintah python app.py.
Buka aplikasi di browser dan gunakan untuk melakukan prediksi berdasarkan model machine learning yang telah dihasilkan.
Dengan mengikuti langkah-langkah di atas, Anda dapat membuat aplikasi machine learning dengan menggunakan Google Colab untuk melatih model dan Flask untuk menyajikan model dalam bentuk aplikasi web.
Multi Objective Genetic Algorithm Shoes Production Schedule Problem

Penerapan algoritma genetika multi-tujuan (MOGA) untuk masalah penjadwalan produksi sepatu akan melibatkan pengoptimalan beberapa tujuan yang saling bertentangan, seperti:
Meminimalkan waktu produksi: Untuk memastikan sepatu diproduksi secepat mungkin.
Memaksimalkan kualitas produk : Untuk memastikan bahwa sepatu yang diproduksi memiliki kualitas terbaik.
Meminimalkan biaya produksi: Untuk memastikan bahwa biaya produksi setiap pasang sepatu serendah mungkin.
Memaksimalkan kepuasan pelanggan: Untuk memastikan bahwa sepatu memenuhi permintaan dan preferensi pelanggan.
MOGA akan bekerja sebagai berikut:
Langkah 1: Enkodekan Jadwal Produksi
Setiap solusi potensial (yaitu, jadwal produksi sepatu) dikodekan sebagai “kromosom” – serangkaian angka atau simbol lainnya. Dalam hal ini, sebuah kromosom mungkin menentukan urutan jenis sepatu berbeda yang akan diproduksi, mesin atau pekerja yang akan digunakan untuk setiap pekerjaan, dan seterusnya.
Langkah 2: Populasi Awal
Satu set solusi potensial, atau “populasi”, dihasilkan secara acak. Setiap anggota populasi ini mewakili jadwal produksi yang mungkin.
Langkah 3: Fungsi Kebugaran
Kesesuaian setiap solusi dihitung menggunakan fungsi yang menggabungkan semua tujuan. Karena tujuannya bertentangan, beberapa bentuk kompromi atau jumlah tertimbang perlu digunakan. Misalnya, Anda dapat memutuskan bahwa biaya produksi dua kali lebih penting daripada tujuan lainnya, sehingga mendapat bobot 0,5, sedangkan yang lain masing-masing mendapat bobot 0,25. Ini akan menghasilkan nilai kebugaran tunggal untuk setiap solusi.
Langkah 4: Seleksi
Solusi dipilih secara acak untuk menjadi orang tua dari generasi berikutnya. Solusi dengan fitness yang lebih tinggi memiliki kesempatan yang lebih tinggi untuk dipilih.
Langkah 5: Crossover dan Mutasi
Pasangan solusi induk digabungkan untuk menghasilkan solusi anak, dengan menukar bagian kromosomnya. Ini adalah operasi silang. Selain itu, beberapa bagian kromosom dapat diubah secara acak. Ini adalah operasi mutasi.
Langkah 6: Penggantian
Beberapa atau semua populasi lama digantikan oleh solusi anak yang baru. Hal ini dapat dilakukan hanya dengan mengganti populasi lama dengan yang baru, atau dengan memilih solusi terbaik dari kedua populasi.
Langkah 7: Ulangi Langkah 3-6
Langkah 3-6 diulang untuk beberapa generasi. Harapannya adalah setiap generasi akan lebih baik (yaitu, memiliki kebugaran yang lebih tinggi) daripada generasi sebelumnya.
Ini adalah ikhtisar yang disederhanakan, dan dalam praktiknya, lebih banyak detail perlu dipertimbangkan. Misalnya, bagaimana menangani kendala (misalnya, kapasitas atau ketersediaan mesin), bagaimana memilih bobot dalam fungsi kebugaran, bagaimana memilih ukuran populasi dan jumlah generasi, dan sebagainya. Tapi mudah-mudahan, ini memberi Anda gambaran tentang bagaimana algoritma genetika multi-objektif dapat diterapkan pada masalah penjadwalan produksi sepatu.
Sebagai contoh, kita bisa menganggap ada 3 jenis sepatu (A, B, C) yang harus diproduksi dalam sebuah pabrik. Setiap jenis sepatu memiliki waktu produksi, biaya produksi, dan tingkat kepuasan pelanggan yang berbeda-beda. Data tersebut dapat kita simbolkan dalam bentuk tabel berikut:
| Jenis Sepatu | Waktu Produksi (jam) | Biaya Produksi (dolar) | Tingkat Kepuasan Pelanggan |
|---|---|---|---|
| A | 2 | 5 | 9 |
| B | 3 | 7 | 8 |
| C | 1 | 4 | 7 |
Tugas kita adalah mencari jadwal produksi yang optimal, di mana kita bisa memproduksi sepatu dengan waktu, biaya, dan tingkat kepuasan pelanggan yang seimbang.
Contoh sebuah solusi (jadwal produksi) mungkin adalah: [A, B, B, C, A, C, B, A], yang berarti kita memproduksi sepatu jenis A terlebih dahulu, diikuti oleh dua sepatu jenis B, dan seterusnya. Solusi ini bisa kita representasikan sebagai sebuah kromosom dalam algoritma genetik.
Jumlah solusi yang mungkin sangat banyak, tergantung pada jumlah sepatu yang perlu diproduksi dan jumlah mesin atau pekerja yang tersedia. Algoritma genetik akan mencoba berbagai solusi, dan berusaha mencari yang terbaik melalui proses seleksi, persilangan (crossover), dan mutasi.
Misalkan kita memiliki stok bahan baku untuk membuat 4 sepatu jenis A, 2 sepatu jenis B, dan 3 sepatu jenis C. Misalkan juga bahwa kita ingin memproduksi 5 sepatu secara total.
Pertama, kita perlu membuat populasi awal. Misalkan kita memilih ukuran populasi 4, maka kita mungkin mempunyai populasi awal seperti ini:
- [A, A, B, B, C]
- [B, B, A, C, C]
- [C, C, C, A, A]
- [B, C, A, A, B]
Kemudian, kita perlu menentukan fitness setiap individu dalam populasi. Misalkan kita menentukan fitness sebagai jumlah waktu produksi, biaya produksi, dan kepuasan pelanggan (semakin tinggi semakin baik).
- [A, A, B, B, C] -> (2+2+3+3+1, 5+5+7+7+4, 9+9+8+8+7) = (11 jam, 28 dolar, 41 skor)
- [B, B, A, C, C] -> (3+3+2+1+1, 7+7+5+4+4, 8+8+9+7+7) = (10 jam, 27 dolar, 39 skor)
- [C, C, C, A, A] -> (1+1+1+2+2, 4+4+4+5+5, 7+7+7+9+9) = (7 jam, 22 dolar, 39 skor)
- [B, C, A, A, B] -> (3+1+2+2+3, 7+4+5+5+7, 8+7+9+9+8) = (11 jam, 28 dolar, 41 skor)
Misalkan kita memilih dua individu dengan fitness terbaik (dalam hal ini, [A, A, B, B, C] dan [B, C, A, A, B]) untuk persilangan (crossover). Misalkan kita menggunakan crossover satu titik, di mana kita memilih titik acak di kromosom dan menukar semua elemen setelah titik tersebut. Misalkan kita memilih titik ke-3, maka kita mendapatkan dua anak baru:
- [A, A, B, A, B]
- [B, C, A, B, C]
Setelah itu, kita perlu melakukan mutasi. Misalkan kita memilih untuk mengubah jenis sepatu pertama dalam kromosom anak pertama dan jenis sepatu terakhir dalam kromosom anak kedua. Kita mendapatkan dua anak mutan:
- [B, A, B, A, B]
- [B, C, A, B, A]
Akhirnya, kita memilih individu terbaik dari populasi awal dan anak-anak untuk membentuk generasi baru. Misalkan kita memilih individu dengan fitness terbaik berdasarkan biaya produksi yang lebih rendah dan skor kepuasan pelanggan yang lebih tinggi:
- [A, A, B, B, C]
- [B, A, B, A, B]
- [B, C, A, B, A]
- [C, C, C, A, A]
Dan begitulah satu iterasi dari MOGA. Proses ini diulangi sebanyak yang diinginkan atau sampai kondisi berhenti terpenuhi (misalnya, jumlah generasi yang ditentukan atau ketika tidak ada peningkatan yang signifikan dalam fitness).
Perhatikan bahwa dalam contoh ini kita tidak memperhatikan batasan stok bahan baku. Untuk memasukkan batasan ini, kita bisa memodifikasi fungsi fitness kita untuk memberikan penalti kepada solusi yang melanggar batasan, atau kita bisa memastikan bahwa operasi crossover dan mutasi kita selalu menghasilkan solusi yang mematuhi batasan.
contoh Kode Program dalam Bahasa Python :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
import random # Data produk produk = { 'A': {'waktu': 2, 'biaya': 5, 'kepuasan': 9, 'stok': 100}, 'B': {'waktu': 3, 'biaya': 7, 'kepuasan': 8, 'stok': 150}, 'C': {'waktu': 1, 'biaya': 4, 'kepuasan': 7, 'stok': 200} } # Parameter algoritma ukuran_populasi = 20 panjang_kromosom = 5 jumlah_generasi = 100 probabilitas_crossover = 0.8 probabilitas_mutasi = 0.1 # Fungsi fitness def hitung_fitness(individu): total_waktu = 0 total_biaya = 0 total_kepuasan = 0 for i in individu: total_waktu += produk[i]['waktu'] total_biaya += produk[i]['biaya'] total_kepuasan += produk[i]['kepuasan'] return total_waktu, total_biaya, total_kepuasan # Membuat populasi awal populasi = [[random.choice(list(produk.keys())) for _ in range(panjang_kromosom)] for _ in range(ukuran_populasi)] for _ in range(jumlah_generasi): # Seleksi fitness = [hitung_fitness(individu) for individu in populasi] fitness = [sum(x) for x in fitness] # Menggabungkan tiga objektif menjadi satu total_fitness = sum(fitness) probabilitas_seleksi = [f/total_fitness for f in fitness] individu_terpilih = random.choices(populasi, weights=probabilitas_seleksi, k=ukuran_populasi) # Crossover anak = [] for i in range(0, ukuran_populasi, 2): individu1 = individu_terpilih[i] individu2 = individu_terpilih[i+1] if random.random() < probabilitas_crossover: titik_crossover = random.randint(1, panjang_kromosom-1) anak1 = individu1[:titik_crossover] + individu2[titik_crossover:] anak2 = individu2[:titik_crossover] + individu1[titik_crossover:] else: anak1 = individu1 anak2 = individu2 anak.append(anak1) anak.append(anak2) # Mutasi for individu in anak: for i in range(panjang_kromosom): if random.random() < probabilitas_mutasi: individu[i] = random.choice(list(produk.keys())) # Penggantian generasi populasi = anak # Cetak individu terbaik fitness = [hitung_fitness(individu) for individu in populasi] individu_terbaik = populasi[fitness.index(max(fitness))] print('Individu terbaik:', individu_terbaik) print('Fitness:', hitung_fitness(individu_terbaik)) |
Hasil Program :
1 2 |
Individu terbaik: ['A', 'B', 'B', 'B', 'B'] Fitness: (14, 33, 41) |