Model Algoritma Genetika ANALISIS DAN PERANCANGAN

diabetes mellitus. Contoh kasus dari pasien dengan data diri yang dapat dilihat pada Tabel 3.3 menunjukkan bahwa pasien tersebut berada pada kelompok jenis diet diabetes ketiga atau diet 1500 kkal. Dengan data tersebut maka total kalori 1500 kkal akan digunakan untuk dibangun model algoritma genetika.

3.5. Model Algoritma Genetika

3.5.1. Struktur Algoritma Genetika Algoritma genetika memiliki struktur umum sebagai berikut :  Individu Individu adalah istilah pada teknik pencarian yang dilakukan sekaligus juga dapat didefenisikan sebagai sejumlah solusi yang mungkin dihasilkan. Struktur individu yang akan dibangun pada penelitian ini d idefeniskan seperti Gambar 3.3. Gambar 3.3. Struktur Individu Pada penelitian ini satu individu yang dibangun akan terdiri dari 3 kromosom untuk kromosom makan pagi, kromosom makan siang, dan kromosom makan malam. Satu individu terdiri dari 15 gen yang akan menampung total kalori dari setiap jenis makanan, yaitu makanan pokok, lauk pauk, sayuran, buah- buahan, dan pelengkap.  Kromosom Dari satu individu yang dibangun tersebut akan dibagi menjadi 3 kromosom yaitu kromosom untuk makan pagi, siang, dan malam. Setiap kromosom akan berisi dua nilai, yaitu total kalori dan nilai fungsi fitness. Total kalori merupakan jumlah kalori dari seluruh jenis makanan dalam satu kromosom untuk jadwal menu makanan satu hari. Nilai dari total kalori sangat berpengaruh pada perhitungan Individu Universitas Sumatera Utara nilai fungsi fitness. Nilai fungsi fitness merupakan nilai untuk mengevaluasi optimal atau tidaknya algoritma genetika yang diimplementasikan. Pada penelitian ini fungsi fitness yang digunakan adalah fungsi fitness minimum. Oleh sebab itu, semakin rendah nilai fungsi fitness maka semakin optimal solusi menu makanan yang diperoleh. Struktur kromosom yang akan dibangun dapat dilihat seperti Gambar 3.4. Gambar 3.4. Struktur Kromosom  Genotype Gen Gen berisi sebuah nilai yang menyatakan satuan dasar yang membentuk suatu arti tertentu dalam satu kesatuan gen yang dinamakan kromosom. Nilai yang terdapat dalam satu gen disebut dengan allele. Pada penelitian ini terdiri dari 15 gen, dimana setiap gen akan berisi nilai kalori setiap jenis makanan makanan pokok, lauk pauk, sayuran, buah-buahan, dan pelengkap. Stuktur gen yang akan dibangun dapat dilihat pada Gambar 3.5. Gambar 3.5. Struktur Genotype Gen Individu Individu gen allele Universitas Sumatera Utara 3.5.2. Inisialisasi Individu Awal Tahap ini merupakan tahapan awal dalam proses algoritma genetika. Pada tahap inisialiasi dilakukan proses pembangkitan individu awal yaitu pembangkitan sejumlah individu secara acak. Ukuran untuk populasi tergantung pada masalah yang akan diselesaikan dan jenis operator genetika yang akan diimplementasikan. Pada penelitian ini, data populasi awal yang akan dibangkitkan merupakan data menu makanan yang diperoleh dari database makanan. Semakin besar ukuran populasi awal yang dibangkitkan, maka semakin besar p ula variasi menu makanan yang akan dihasilkan dengan menggunakan algoritma genetika. Flowchart dari tahap inisialisasi individu awal dapat dilihat pada Gambar 3.6. Gambar 3.6. Flowchart Tahapan Inisialisasi Individu Awal Adapun langkah- langkah dalam tahap inisialisasi individu awal adalah sebagai berikut : 1. Normalisasi Menu Makanan Sebelum menu makanan dibangkitkan sebagai individu awal dalam tahap inisialisasi individu awal, diperlukan proses normalisasi menu makanan terlebih start Normalisasi Menu Makanan Random Menu Makanan Masukkan nilai kalori menu makanan ke dalam kromosom stop Universitas Sumatera Utara dahulu. Hal ini dilakukan agar menu makanan yang terpilih pada saat proses random menu makanan sudah sesuai dengan kebutuhan sistem. Proses normalisasi makanan memiliki tiga tahapan, yaitu : a. Pembagian Total Kalori Pasien Total kalori pasien yang dihasilkan dari perhitungan kebutuhan kalori pasien sebelumnya akan dibagi 3 tiga yang disesuaikan dengan jumlah kromosom, yaitu kromosom untuk makan pagi, siang, dan malam. Hal ini dilakukan agar penjadwalan menu makanan yang dihasilkan tetap memperhatikan keseimbangan total kalori untuk menu makan pagi, siang, dan malam. Cara pembagian total kalori pasien dapat didefenisikan dengan persamaan 3.1. 3.1 Contoh kasus pasien bernama Novita dengan penyakit diabetes mellitus yang memiliki data seperti pada Tabel 3.3. Pasien tersebut memiliki total kebutuhan kalori yang masuk pada kelompok jenis diet ketiga tau jenis diet 1500 kkal untuk satu hari yang diperoleh dari perhitungan total kalori yang dilakukan sebelumnya. Nilai dari total kalori tersebut akan dibagi 3 tiga untuk setiap kromosom makan pagi, siang, dan malam. Sehingga untuk setiap jadwal makan, kebutuhan kalori yang diperlukan pasien tersebut adalah sebagai berikut : b. Menghitung jumlah kalori untuk setiap jenis makanan Setelah perhitungan total kalori pasien per kromosom dilakukan, maka proses selanjutnya adalah menghitung jumlah kalori setiap jenis makanan. Satu kromosom memiliki 5 lima gen yang berisikan kalori dari setiap jenis makanan, yaitu makanan pokok, lauk pauk, sayuran, buah-buahan, dan pelengkap. Setiap jenis makanan memiliki bobot masing- masing, yaitu untuk makanan pokok sebesar 45, lauk pauk sebesar 20, sayuran sebesar 15, Universitas Sumatera Utara buah-buahan sebesar 15, dan makanan pelengkap sebesar 20 untuk setiap satu kromosom jadwal makan. Cara perhitungan jumlah kalori tiap jenis makanan dapat didefenisikan dengan perhitungan sebagai berikut : Contoh kasus dari pasien bernama Novita, diperoleh total kalori pasien per kromosom adalah 500 kkal untuk setiap jawal makan pasien. Dari data tersebut maka akan dihitung bobot masing- masing jenis makanan seperti : Makanan pokok kkal = 45 x 500 kkal = 225 kkal Lauk pauk kkal = 20 x 500 kkal = 100 kkal Sayuran kkal = 15 x 500 kkal = 75 kkal Buah-buahan kkal = 15 x 500 kkal = 75 kkal Makanan pelengkap kkal = 20 x 500 kkal = 100 kkal c. Menghitung berat tiap makanan dalam satuan 100 gram. Setiap menu makanan yang terdapat dalam database makanan dinyatakan dalam satuan 100 gram. Di dalam database makanan juga terdapat sebagian Universitas Sumatera Utara menu makanan yang memiliki kalori yang melebihi jumlah kalori yang dibutuhkan untuk jenis makanan tersebut. Sehingga diperlukan suatu persamaan untuk mengatasi hal tersebut agar tetap memberikan jumlah kalori dan berat yang sesuai dengan total kalori kebutuhan pasien diabetes mellitus seperti pada persamaan 3.2. 3.2 Contoh kasus dari data pasien bernama Novita memiliki total kebutuhan kalori sebesar 1500 kkal dalam satu hari, total kebutuhan kalori untuk jadwal makan pagi, siang, dan malam untuk tiap jenis makanan adalah makanan pokok sebesar 225 kkal, lauk pauk sebesar 100 kkal, sayuran sebesar 75 kkal, buah-buahan sebesar 75 kkal, dan makanan pelengkap sebesar 100 kkal. Sebelum melakukan random menu makanan berdasarkan data kalori per jadwal makan, diperlukan perhitungan untuk menormalisasikan kalori dan berat dari tiap menu makanan di database makanan agar jumlah kalori dan berat sesuai dengan total kalori kebutuhan pasien. Contoh data menu makanan yang terdapat pada database dalam satuan 100 gram dapat dilihat pada Tabel 3.4. Tabel 3.4. Menu Makanan dari Database Kode makanan Nama makanan Tipe makanan Kalori Makanan ZIN0071 Nasi putih p 544 ZIN0585 Ikan goreng l 669 ZIN0407 Sayur sop s 435 ZIN0852 Jeruk b 577 ZIN0192 Jus tomat pl 92 Universitas Sumatera Utara Dari data tersebut, sistem akan melakukan perhitungan bagi menu makanan yang memiliki kalori yang lebih banyak dari kalori tiap jenis makanan yang diperlukan pasien untuk setiap jadwal makan. Pasien tersebut membutuhkan kalori untuk makanan pokok sebesar 225 kkal, lauk pauk sebesar 100 kkal, sayuran sebesar 75 kkal, buah-buahan sebesar 75 kkal, dan makanan pelengkap sebesar 100 kkal. Dari data tersebut dapat dilihat bahwa jenis makanan nasi putih, ikan goreng, sayur sop, jeruk memiliki jumlah kalori yang lebih tinggi dibandingkan jumlah kalori yang dibutuhkan pasien. Sedangkan untuk jenis makanan pelengkap yaitu jus tomat tidak memerlukan perhitungan ulang untuk menormalisasikan berat makanan. Perhitungan yang dilakukan untuk normalisasi kalori makanan tersebut adalah Makanan pokok nasi putih = x 100 gram = 41,36 gram Lauk pauk ikan goreng = x 100 gram = 14,3 gram Sayuran sop sayur = x 100 gram = 17,24 gram Buah-buahan jeruk = x 100 gram = 17,99 gram Berdasarkan perhitungan normalisasi berat makanan diatas, maka diperoleh data menu makanan dengan berat makanan yang baru seperti pada Tabel 3.5. Universitas Sumatera Utara Tabel 3.5. Hasil Normalisasi Berat Menu Makanan Baru 2. Random Menu Makanan Setelah proses normalisasi menu makanan di database makanan telah selesai dilakukan maka proses selanjutnya adalah memilih secara acak 15 lima belas menu makanan sebagai individu awal untuk tahap inisialisasi individu awal. Hasil dari proses random menu makanan adalah 15 lima belas menu makanan yang telah ternormalisasi yang sesuai dengan kebutuhan pasien. 3. Masukkan nilai kalori menu makanan ke dalam kromosom Setelah proses random menu makanan dilakukan, tahap akhir yang dilakukan adalah memasukkan 15 lima belas menu makanan yang terpilih ke dalam 3 tiga kromosom sesuai dengan pembagiannya yaitu kromosom untuk makan pagi, siang, dan malam. Masing- masing kromosom akan memiliki 5 lima gen yang berisi nilai kalori untuk makanan pokok, lauk pauk, sayuran, buah-buahan, dan makanan pelengkap. 3.5.3. Evaluasi Nilai Fungsi Fitness Setelah proses inisialisasi individu awal dilakukan, tahap selanjutnya yang dilakukan adalah mengevaluasi nilai fungsi fitness. Nilai fitness adalah nilai yang menyatakan baik atau tidaknya solusi individ u yang diperoleh. Nilai fitness dapat dijadikan sebagai acuan dalam mencapai nilai optimal dalam algoritma genetika. Pada Kode makanan Nama makanan Tipe makanan Kalori Makanan Berat Makanan baru ZIN0071 Nasi putih p 544 41,36 ZIN0585 Ikan goreng l 669 14,3 ZIN0407 Sayur sop s 435 17,24 ZIN0852 Jeruk b 577 17,99 ZIN0192 Jus tomat pl 92 100 Universitas Sumatera Utara penelitian ini, algoritma genetika yang digunakan bertujuan mencari individu dengan nilai fitness yang paling minimum. Untuk menghitung nilai fitness setiap individu dapat dilakukan dengan menggunakan persamaan 3.3. Fitness = |Total kalori pasien – Total kalori menu makanan satu hari| 3.3 Sedangkan untuk menghitung nilai fitness rata-rata setiap generasi dapat dilakukan dengan menggunakan persamaan 3.4. dimana : a k = nilai fitness setiap individu k = individu dalam satu minggu, dimulai dari 1 hingga 7 Contoh kasus pada pasien diabetes mellitus yang bernama Novita memiliki kebutuhan kalori sebesar 1500 kkal dalam satu hari. Pada saat tahap inisialisasi individu yang dilakukan menghasilkan menu makanan seperti Tab el 3.6. Tabel 3.6. Menu Makanan Hasil Inisialisasi Populasi Awal Tipe Makanan Sarapan Makan Siang Makan Malam Makanan pokok Lontong 225 kkal Ketupat 84 kkal Nasi tim wortel kentang 225 kkal Lauk pauk Daging kambing 100 kkal Daging kambing 100 kkal Tahu goreng 100 kkal 3.4 Universitas Sumatera Utara Tabel 3.6. Menu Makanan Hasil Inisialisasi Populasi Awal lanjutan Tipe Makanan Sarapan Makan Siang Makan Malam Sayuran Tumis bayam dan sawi 75 kkal Sayur daun kelor 75 kkal Sayur daun kelor 33 kkal Buah-buahan Jambu biji 75kkal Jambu biji 75 kkal Nenas 75 kkal Makanan pelengkap Roti moka 100 kkal Roti coklat 100 kkal Jus jeruk papaya 100 kkal Sebelum menghitung nilai fitness, pertama sekali yang dilakukan adalah menghitung total kalori menu makanan dalam satu hari dengan menjumlahkan jumlah kalori per menu makanan, yaitu 225 + 100 + 75 + +75 + 100 + 84 + 100 + 75 + 75 + 100 + 225 + 100 + 33 + 75 + 100 = 1542 kkal Dari perhitungan tersebut diperoleh bahwa total kalori menu makanan dalam satu hari adalah sebesar 1680 kkal. Dengan menggunakan data tersebut dapat dihitung nilai fitness menggunakan persamaan 2. Nilai fitness = | 1500 kkal – 1542 kkal | = 42 3.5.4. Seleksi Tahap seleksi berhubungan erat dengan nilai fitness yang diperoleh oleh setiap individu. Seleksi dilakukan untuk memilih individu mana saja yang akan dipilih untuk proses kawin silang dan mutasi. Tahap seleksi dilakukan untuk memperoleh calon parent yang baik. Semakin tinggi nilai fitness suatu individu, maka semakin tinggi kemungkinan terpilihnya individu tersebut. Penelitian ini menggunakan metode Rank Based Fitness Assignment untuk melakukan tahap seleksi individu yang akan terpilih pada saat kawin sila ng. Pada Rank Based Fitness Assignment, individu akan diurutkan menurut nilai fitness mulai Universitas Sumatera Utara dari yang terkecil hingga terbesar. Fungsi metode ini adalah untuk menyeragamkan skala untuk seluruh individu dalam populasi agar dapat memiliki peluang terpilih untuk proses kawin silang. Ilustrasi metode Rank Based Fitness Assignment dapat dilihat pada Gambar 3.7. Individu Nilai Fitness Individu Nilai Fitness 1 90 4 40 2 100 3 65 3 65 6 75 4 40 1 90 5 110 2 100 6 75 5 110 Gambar 3.7. Ilustrasi Menggunakan Rank Based Fitness Assignment 3.5.5. Crossover Setelah tahap seleksi dilakukan, maka tahap selanjutnya adalah melakukan proses crossover kawin silang antar individu atau parent yang terpilih. Untuk menentukan berapa banyak parent yang terpilih maka diperlukan nilai persentase crossover, dimana nilainya telah ditetapkan sebesar 0,1. Dengan menggunakan nilai tersebut, maka dapat dihitung berapa parent yang akan dilakukan crossover. Individu- individu yang terpilih merupakan individu- individu yang memiliki nilai fungsi fitness yang terbaik. Setelah menentukan berapa individu yang akan digunakan, proses selanjutnya adalah menentukan titik potong gen yang akan mengalami proses crossover antar individu terpilih. Titik potong gen ditentukan dengan cara melakukan random. Penelitian ini menggunakan metode two point crossover untuk melakukan proses crossover. Two point crossover hampir sama dengan one point crossover. Letak perbedaannya adalah terdapat 2 dua cut point yang dibangkitkan secara acak pada metode two point crossover Mendes, 2013. Universitas Sumatera Utara Adapun langkah- langkah dari metode two point crossover adalah sebagai berikut : 1. Masukkan parent atau individu yang terpilih untuk di crossover 2. Tentukan bilangan random sebanyak 2 dua cut point sebagai titik potong antara 0 sampai sepanjang kromosom pada masing- masing parent atau individu. 3. Untuk setiap gen pada kromosom parent, lakukan a. Untuk indeks awal yang lebih kecil dibandingkan dengan indeks akhir, lakukan  Untuk gen yang terletak sebelum indeks awal dan setelah indeks akhir, salin kembali nilai gen dari parent pertama untuk diberikan pada anakan offspring  Jika gen berada di antara indeks awal dan indeks akhir, maka gen pada offspring akan berisi gen dari parent kedua. b. Untuk indeks awal yang lebih besar dibandingkan dengan indeks akhir, lakukan  Proses crossover akan dimulai dari indeks awal ke indeks akhir.  Jika gen berada sebelum indeks awal dan setelah indeks akhir salin kembali nilai gen dari parent pertama untuk diberikan pada anakan offspring  Jika gen berada di antara indeks awal dan indeks akhir, maka gen pada offspring akan berisi gen dari parent kedua. Contoh kasus terdapat 20 jumlah individu awal yang telah ditentukan. Nilai persentase crossover untuk menentukan berapa jumlah kromosom yang akan dilakukan diberikan sebesar 0,1. Oleh sebab itu, banyak individu yang akan dilakukan crossover adalah Banyak individu parent = 0,1 x jumlah individu = 0,1 x 20 = 2 individu Dari perhitungan tersebut diperoleh banyak individu yang akan dikawin silang sebanyak 2 dua individu. Kemudian akan ditentukan letak titik potong gen yang Universitas Sumatera Utara akan dilakukan crossover antar individu sebanyak 2 dua cut point secara random. Ilustrasi 2 dua individu yang akan dilakukan crossover dengan menggunakan metode two point crossover dapat dilihat pada Gambar 3.8 dan Gambar 3.9. Kondisi : Jika indeks awal indeks akhir indeks awal : 5; indeks akhir :10, maka : Parent 1 : Parent 2 : Offspring : Gambar 3.8. Ilustrasi Proses Crossover Kondisi Pertama 23 12 7 76 10 22 7 12 10 21 7 12 7 7 10 22 13 7 75 10 21 7 12 10 24 7 12 7 7 10 Two point crossover 23 12 7 76 10 21 7 12 10 24 7 12 7 7 10 Hasil gen yang di-crossover Indeks awal Indeks akhir Universitas Sumatera Utara Indeks akhir Indeks awal Kondisi : Jika indeks awal indeks akhir indeks awal 13; indeks akhir 2 Parent 1: Parent 2 : Parent 1: Parent 2 : Offspring : Gambar 3.9. Ilustrasi Proses Crossover Kondisi Kedua 23 12 7 76 10 22 7 12 10 21 7 12 7 7 10 22 13 7 75 10 21 7 12 10 24 7 12 7 7 10 22 13 7 75 10 21 7 12 10 24 7 12 7 7 10 23 12 7 76 10 22 7 12 10 21 7 12 7 7 10 22 13 7 75 10 22 7 12 10 21 7 12 7 7 10 Two point crossover Indeks gen ya ng di -crossover akan berubah Universitas Sumatera Utara 3.5.6. Mutasi Proses mutasi dilakukan setelah proses crossover selesai. Proses mutasi bertujuan untuk mengubah anak offspring baru dengan mengubah 1 menjadi 0 atau 0 menjadi 1. Mutasi dimaksudkan untuk mencegah hasil pencarian yang mengarah pada keadaan local optima di dalam suatu area pencarian. Pada penelitian ini menggunakan metode random mutation untuk melakukan proses mutasi gen. Hal yang pertama dilakukan adalah menghitung berapa banyak jumlah gen yang akan dilakukan proses mutasi berdasarkan perhitungan nilai dari Probabilitas Mutasi Pm dan jumlah total gen. Perhitungan berapa banyak gen yang akan dilakukan mutasi dapat dihitung dengan menggunakan persamaan 3.5. Jumlah gen yang dimutasi = Pm x jumlah populasi x jumlah gen 3.5 Dari persamaan 3.4 akan diperoleh berapa jumlah gen yang akan dilakukan proses mutasi. Setelah itu akan dilakukan random posisi untuk menentukan posisi gen yang akan dimutasi. Gen yang terpilih akan dilakukan mutasi dengan tipe gen yang sama yang berada pada kromosom sebelahnya. Adapun langkah- langkah proses random mutation adalah sebagai berikut : 1. Tentukan banyak gen yang akan dilakukan mutasi 2. Tentukan bilangan random sebagai letak posisi gen yang akan dilakukan mutasi antara 0 sampai sepanjang kromosom invidu. 3. Lakukan mutasi dengan cara mengganti nilai gen pada indeks yang terpilih a. Jika indeks yang terpilih berada pada kromosom 1 satu atau 2 dua maka nilainya akan digantikan dengan gen yang memiliki tipe yang sama, yang berada pada kromosom disebelah kanannya. b. Jika indeks yang terpilih berada pada kromosom 3 tiga maka nilainya akan digantikan dengan gen yang memiliki tipe yang sama, yang berada pada kromosom sebelumnya. Contoh kasus input individu awal yang diberikan sebesar 20 individu dan nilai probabilitas mutasi ditentukan sebesar 0,1. Namun jumlah individu akan bertambah menjadi 21 karena sebelumnya telah dilakukan proses crossover pada generasi pertama. Berdasarkan persamaan 3.4 dapat dihitung jumlah gen yang akan dilakukan mutasi adalah Universitas Sumatera Utara Jumlah gen yang dimutasi = 0,1 x 21 x 15 = 31,5 = 31 gen Berdasarkan perhitungan data diatas maka akan dilakukan mutasi sebanyak 31 gen dimana posisi gen pada setiap proses akan ditentukan secara random. Misal posisi gen yang akan dimutasi pada proses pertama terdapat pada indeks 6 dari hasil random posisi gen. Gen pada indeks ke 6 enam akan dimutasi ke gen dengan tipe yang sama lauk pauk pada kromosom sebelahnya yaitu gen pada indeks ke 11 sebelas. Ilustrasi dari proses mutasi dapat dilihat pada Gambar 3.10. Proses I : Individu awal Individu akhir Gambar 3.10. Ilustrasi Proses Mutasi Proses algoritma genetika akan terus berulang sesuai dengan jumlah individu awal dan generasi yang diberikan. Hasil dari seluruh proses algoritma genetika adalah jadwal menu makanan yang merupakan tujuh individu terbaik dengan nilai fitness terendah. Menu makanan akan ditampilkan dalam satu minggu atau 7 tujuh hari untuk menu makan pagi, siang, dan malam. Setiap jadwal makan akan terdiri dari 5 jenis makanan, yaitu makanan pokok, lauk pauk, sayuran, buah-buahan, dan makanan pelengkap. 220 130 75 75 102 220 77 127 102 240 76 126 77 7 101 220 130 75 75 102 220 77 126 102 240 76 127 77 7 101 Gen indeks ke-6 akan dimutasi dengan gen indeks ke-11 Universitas Sumatera Utara

3.6. Perancangan Sistem