Laporan PKL

download Laporan PKL

of 70

description

Laporan PKL

Transcript of Laporan PKL

BAB 1

PENDAHULUAN1.1 Latar BelakangSMA Al Falah Surabaya berdiri sejak tahun 2001 dan berlokasi di jalan Ketintang Madya nomor 81 Surabaya. SMA Al Falah memiliki 12 kelas, yang terdiri dari 4 kelas X, 4 kelas XI, dan 4 kelas XII. Pada SMA Al Falah, jadwal mata pelajaran diselesaikan dengan membuat tabel jadwal secara manual. Cara ini membutuhkan waktu yang lama, karena pembuatan jadwal tersebut sangatlah kompleks yang terdiri dari beberapa komponen penyusun, seperti mata pelajaran, guru, kelas, dan waktu. Demikian pula dengan buku induk siswa pada SMA Al Falah masih ditulis secara manual.Pada setiap komponen penyusun penjadwalan banyak terdapat aturan dan batasan-batasan yang telah ditentukan. Misalnya, guru dapat mengajar lebih dari satu kelas, namun guru tidak diperbolehkan mengajar lebih dari 4 jam dalam satu hari. Selain itu guru juga tidak boleh mengajar lebih dari satu kali dalam waktu yang bersamaan. SMA Al Falah telah menetapkan bobot tiap mata pelajaran per kelas sesuai dengan kurikulum yang telah ada. Oleh karena itu diperlukan penjadwalan otomatis yang dapat membuat jadwal dengan cepat, mudah dan tetap harus memperhatikan aturan-aturan. Selain itu juga dibutuhkan suatu sistem yang berfungsi untuk menyimpan data siswa yang terdaftar sebagai siswa SMA Al Falah.Terdapat bermacam-macam metode dalam penjadwalan. Metode yang paling optimal adalah metode kombinatorial. Metode kombinatorial dilakukan dengan menguji semua kemungkinan yang ada dan mengambil solusi yang paling optimal. Karena metode kombinatorial membutuhkan waktu komputasi yang lama, maka muncul metode heuristik, salah satu contohnya adalah algoritma genetika.

Dengan demikian digunakan algoritma genetika untuk menyelesaikan permasalahan penjadwalan mata pelajaran Sekolah Menengah Atas. Dengan sistem informasi ini diharapkan agar terbentuk suatu sistem penjadwalan mata pelajaran secara otomatis yang memenuhi aturan-aturan yang telah ada.

1.2 Rumusan MasalahBagaimana membangun sistem informasi berbasis database untuk penyimpanan data buku induk siswa serta penjadwalan mata pelajaran SMA Al Falah Surabaya secara terkomputerisasi dengan menggunakan algoritma genetika?

1.3 Batasan Masalah

a. Sistem informasi ini dijalankan pada komputer berbasis sistem operasi Windows.b. Bobot tiap mata pelajaran pada masing-masing kelas telah ditetapkan sesuai kurikulum yang ada.c. Guru dapat mengajar lebih dari satu kelas, namun guru tidak diperbolehkan mengajar lebih dari 4 jam dalam satu hari.d. Guru juga tidak boleh mengajar lebih dari satu kali dalam waktu yang bersamaan.e. Mata pelajaran yang sama dalam satu hari tidak boleh dijadwalkan lebih dari dua kali.f. Dalam satu minggu suatu mata pelajaran tidak boleh dijadwalkan melebihi bobot yang telah di tetapkan.1.4 TujuanTujuannya adalah untuk membangun sistem informasi berbasis database untuk penyimpanan data buku induk siswa serta untuk penjadwalan mata pelajaran SMA Al Falah Surabaya secara terkomputerisasi dengan menggunakan algoritma genetika.

1.5 ManfaatMemberikan fasilitas kepada pihak sekolah yang berguna untuk penyimpanan data buku induk siswa serta penjadwalan mata pelajaran, agar hal tersebut dapat dilakukan secara sistematis.1.6 Metodologi

Metodologi yang digunakan dalam praktek kerja lapang ini adalah:

a. Studi Literatur

Penulis menggunakan literatur-literatur yang sesuai dengan topik pada praktek kerja lapang ini.b. WawancaraPenulis melakukan tanya jawab secara langsung dengan pembimbing lapang yang memberikan pengarahan tentang permasalahan pada praktek kerja lapang ini.

1.7 Sistematika Penulisan

Pada laporan PKL ini dijabarkan seluruh kegiatan pelaksanaan PKL. Laporan ini terdiri atas enam bab. Pembagian tersebut disusun secara sistematis untuk mengelompokkan pokok bahasan yang berbeda-beda. Adapun sistematika laporan sebagai berikut :

1. BAB I PENDAHULUAN

Bab ini membahas mengenai latar belakang, rumusan masalah, batasan masalah, tujuan, manfaat, metodologi, dan sistematika penulisan.2. BAB II STRUKTUR ORGANISASI

Menjelaskan secara singkat profil SMA Al Falah Surabaya, sejarah, visi, misi, tujuan, kebijakan mutu, serta struktur organisasi SMA Al Falah Surabaya.3. BAB III TINJAUAN PUSTAKA

Menjelaskan dasar teori yang digunakan dalam menyusun laporan, yaitu penjelasan mengenai konsep dasar sistem, konsep dasar data dan informasi, konsep dasar sistem informasi, permodelan sistem, konsep dasar algoritma genetika dan konsep dasar basis data.4. BAB IV PELAKSANAAN PKL

Membahas unit kerja, waktu pelaksanaan PKL, tugas-tugas yang diberikan oleh SMA Al Falah Surabaya dan tabel kegiatan mingguan dari pelaksanaan PKL.5. BAB V ANALISA DAN PEMBAHASAN

Berisi mengenai deskripsi sistem, event list, use case, diagram konteks, DFD, dan ERD dari sistem informasi dan implementasi program dengan Visual Studio C# 2008.

6. BAB VI KESIMPULAN DAN SARAN

Bab enam berisi kesimpulan dari pembahasan dan saran dari pelaksanaan PKL di SMA Al Falah Surabaya.

BAB II

STRUKTUR ORGANISASI2.1 Sejarah SMA Al Falah

SMA Al Falah Ketintang berdiri sejak tahun 2001. Sekolah Menengah Atas swasta berbasis Islam yang terletak di jalan Ketintang Madya nomor 81, kelurahan Ketintang, kecamatan Gayungan, kota Surabaya.2.2 Visi dan Misi SMA Al Falah2.2.1 VisiSekolah yang seluruh aspek kegiatannya mengacu pada nilai-nilai islam dengan dasar Al Qur'an dan Al Hadits2.2.2 Misi

1. Berdakwah melalui pendidikan

2. Membantu orang tua mewujudkan

a. Anak shalih-shalihah

b. Aqidah yang mantap dan berakhlaq mulia

c. Intelektual (akademis) yang tinggi

d. Ketrampilan dan kesamaptaan

e. Peduli dengan agama dan lingkungan sosialnya

f. Siap hidup menatap zamannya2.3 Target Yang Diharapkan

1. Tekun dan istiqomah dalam beribadah

2. Berbakti kepada orang tua dan hormat kepada guru

3. Sayang kepada yang lebih muda/sesama dan hormat kepada yang lebih tua

4. Senang membaca

5. Peduli

6. Disiplin

7. Percaya diri

8. Tuntas belajar

9. Hafal beberapa ayat Al Qur'an dan Hadits

10. Tartil membaca Al Qur'an

11. Mampu berkomunikasi efektif

12. Berketrampilan berkesamaptaan

13. Memiliki semangat juang yang tinggi2.4 Program Kegiatan SMA Al Falah Ketintang

2.4.1 Bidang Aqidah AkhlakSiswa mampu menjalankan rukun islam secara istiqomah, melaksanakan amalan-amalan sunnah, mampu berkomunikasi secara islami, tawadhuk pada orang tua, guru, dan mampu menjadi contoh dalam keluarga dan masyarakat.

Kegiatan :

1. Penegakan sholat fardhu dan sholat sunnah

2. Hafalan ayat-ayat Al Qur'an dan hadist tertentu

3. Membiasakan mengucapkan salam

4. Program MABIT

5. Pesantren Ramadhan2.4.2 Bidang AkademisSiswa hafal juz amma dan ayat Al Qur'an yang berhubungan dengan hidup dan kehidupan di masyarakat, memiliki kemampuan berbahasa inggris dan arab yang lebih baik, memiliki kemampuan akademis tinggi (penguasaan ilmu dan NEM tinggi) dan dapat melanjutkan ke perguruan tinggi yang diinginkan.

Kegiatan :

1. Quantum Learning dan MOS

2. Wisata Pendidikan

3. Program remidi (klinik bidang studi)

4. Kelompok ilmiah remaja

5. Praja muda karana

6. English debt

7. Kelompok kesenian

8. Kelompok pecinta informatika 2.4.3 Bidang Keterampilan dan KesamaptaanSiswa mampu menerapkan metodologi ilmiah, mengolah data sederhana dengan komputer, menulis karya ilmiah, memiliki ketrampilan pengarsipan, dan ketrampilan hidup.Kegiatan :

1. Penggunaan komputer dan mengolah data sederhana dalam penulisan karya ilmiah

2. Presentasi karya tulis

3. Training jurnalistik

4. Training leadership

5. Majalah dinding

6. OSIS 2.4.4 Bidang Semangat JuangSiswa memiliki rasa bangga sebagai muslim, peduli terhadap islam, semangat untuk selalu berprestasi, dan peduli terhadap lingkungannya.

Kegiatan : 1. Perayaan hari-hari besar islam dan nasional

2. Program pembinaan prestasi

3. Da'i muda

4. Silaturrahim ke tokoh-tokoh masyarakat / agama2.4.5 Bidang EntrepreneurshipSiswa diharapkan mempunyai kemampuan melihat dan menilai kesempatan bisnis, mengumpulkan sumber daya yang dibutuhkan guna mengambil keuntungan dan tindakan yang cepat dalam memastikan kesuksesan.Ekstrakurikuler SMA Al Falah Ketintang:1. ANGGAR

2. PASKIBRA

3. BASKET

4. FUTSAL

5. KARATE DO

6. TAE KWON DO

2.5 Struktur Organisasi SMA Al Falah

Gambar 2.1 Struktur OrganisasiBAB III

TINJAUAN PUSTAKA3.1 Konsep Dasar SistemSuatu sistem adalah jaringan kerja dari prosedur-prosedur yang saling berhubungan, berkumpul bersama-sama untuk melakukan suatu kegiatan atau menyelesaikan suatu sasaran tertentu. Sistem juga merupakan kumpulan elemen-elemen yang saling terkait dan bekerja sama untuk memproses input (masukan) yang ditujukan kepada sistem tersebut dan mengolah input tersebut untuk menghasilkan output (keluaran) yang diinginkan.

Elemen-elemen yang terdapat dalam sistem meliputi: tujuan sistem, batasan sistem, kontrol, input, proses, output, dan umpan balik3.1.1 Tujuan Sistem

Tujuan sistem merupakan tujuan sistem tersebut dibuat. Tujuan sistem dapat berupa tujuan organisasi, kebutuhan organisasi, permasalahan yang ada dalam suatu organisasi, maupun urutan prosedur untuk mencapai tujuan organisasi.3.1.2 Batasan Sistem

Batasan sistem merupakan sesuatu yang membatasi sistem dalam mencapai tujuan sistem. Batasan sistem dapat berupa peraturan-peraturan yang ada dalam suatu organisasi, biaya-biaya yang dikeluarkan, orang-orang yang ada dalam organisasi, maupun fasilitas.3.1.3 Kontrol Sistem

Kontrol sistem merupakan pengawasan terhadap pelaksanaan pencapaian tujuan dari sistem. Kontrol sistem dapat berupa kontrol terhadap input, output, pengolahan data, maupun umpan balik.3.1.4 InputInput merupakan elemen dari sistem yang bertugas untuk menerima seluruh masukan data. Masukan data dapat berupa jenis data, maupun frekuensi pemasukan data. 3.1.5 Proses

Proses merupakan elemen dari sistem yang bertugas untuk mengolah atau memproses seluruh masukan data menjadi suatu informasi yang lebih berguna. Misalnya sistem produksi akan mengolah bahan baku yang berupa bahan mentah menjadi bahan jadi yang siap digunakan.3.1.6 Output

Output merupakan hasil dari input yang telah diproses oleh bagian pengolah dan merupakan tujuan akhir sistem. Output ini bisa berupa laporan grafik, maupun diagram batang.3.1.7 Umpan Balik

Umpan balik merupakan elemen sistem yang bertugas mengevaluasi bagian dari output yang dikeluarkan, di mana elemen ini sangat penting demi kemajuan sistem. Umpan balik dapat berupa perbaikan sistem dan pemeliharaan sistem.3.2 Konsep Dasar Informasi

Informasi dapat diibaratkan sebagai darah yang mengalir di dalam tubuh manusia, seperti halnya informasi di dalam sebuah perusahaan yang sangat penting untuk mendukung kelangsungan perkembangannya, sehingga terdapat alasan bahwa informasi sangat dibutuhkan bagi perusahaan. Menurut Raymond Mcleod, Informasi adalah data yang telah diolah menjadi bentuk yang memiliki arti bagi si penerima dan bermanfaat bagi pengambilan keputusan saat ini atau mendatang. Secara umum informasi dapat didefinisikan sebagai hasil dari pengolahan data dalam suatu bentuk yang lebih berguna dan lebih berarti bagi penerimanya yang menggambarkan suatu kejadian-kejadian yang nyata yang digunakan untuk pengambilan keputusan.Sumber informasi adalah data. Data menggambarkan suatu kejadian yang sedang terjadi, di mana data tersebut akan diolah dan diterapkan dalam sistem menjadi input yang berguna dalam suatu sistem.3.3 Konsep Dasar Sistem Informasi

Sistem informasi adalah bagian yang penting dalam setiap perusahaan, organisasi maupun instansi pemerintah sebagai pengolah data. Informasi yang sesuai dengan kebutuhan sangat diperlukan oleh pemakai sistem. Pengertian sistem informasi pada dasarnya dapat dijabarkan berdasarkan kata sistem dan informasi (McLeod, 2004).3.4 Kegunaan Sistem Informasi

Beberapa kegunaan/fungsi sistem informasi antara lain adalah sebagai berikut:

1. Meningkatkan aksesibilitas data yang tersaji secara tepat waktu dan akurat bagi para pemakai, tanpa mengharuskan adanya perantara sistem informasi.

2. Menjamin tersedianya kualitas dan keterampilan dalam memanfaatkan sistem informasi secara kritis.3. Mengembangkan proses perencanaan yang efektif.4. Mengidentifikasi kebutuhankebutuhan akan keterampilan pendukung sistem informasi.

5. Menetapkan investasi yang akan diarahkan pada sistem informasi.

6. Mengantisipasi dan memahami konsekuensi-konsekuensi ekonomis dari sistem informasi dan teknologi baru.

7. Memperbaiki produktivitas dalam aplikasi pengembangan dan pemeliharaan sistem.

8. Organisasi menggunakan sistem informasi untuk mengolah transaksi-transaksi, mengurangi biaya dan menghasilkan pendapatan sebagai salah satu produk atau pelayanan mereka.3.5 Pemodelan Sistem

Sistem terdiri dari elemen-elemen yang saling berhubungan dan terkait satu sama lain serta bekerja sama untuk mencapai tujuan tertentu. Dalam pemodelan sistem terdapat sejumlah cara untuk menggambarkan sistem melalui diagram misalnya Data flow diagram (DFD), Entity Relational Diagram (ERD) dan lain-lain. Pada dasarnya dapat digunakan model apa saja tergantung dari situasi. Pemakai yang berbeda mungkin akan membutuhkan pemodelan yang berbeda pula (Hoffer, 2002).3.5.1 Diagram Konteks

Pengertian Diagram Konteks menurut HM Jogiyanto (1999), adalah diagram alir data (DAD) yang menggambarkan sistem secara garis besar. Simbol yang digunakan pada diagram konteks sama dengan simbol yang digunakan pada diagram alir data atau data flow diagram (DFD).3.5.2 Data Flow Diagram (DFD)

Data flow diagram atau DFD adalah suatu gambaran grafis dari suatu sistem yang menggunakan sejumlah bentuk-bentuk simbol untuk menggambarkan bagaimana data mengalir melalui suatu proses yang saling berkaitan (McLeod, 2004).3.5.2.1 Komponen Data Flow Diagram

Data Flow Diagram dibentuk oleh beberapa komponen yang menggambarkan alur sebuah sistem. Komponen Data Flow Diagram meliputi :

1. Lingkaran digunakan menggambarkan proses dimana aliran data yang masuk ditransformasikan ke aliran data luar. Simbol proses dapat ditunjukkan pada gambar 3.1.

Gambar 3.1 Simbol Proses pada DFD2. Persegi panjang dengan sudut tumpul digunakan mengambarkan entitas data. Simbol Entitas dapat ditunjukkan pada gambar 3.2.

Gambar 3.2 Simbol Entitas pada DFD3. Arah dengan panah digunakan menggambarkan aliran data. Simbol aliran data dapat ditunjukkan pada gambar 3.3.

Gambar 3.3 Simbol Aliran Data pada DFD4. Persegi panjang dengan sudut lancip digunakan untuk menggambarkan asal dan tujuan data diluar sistem. Simbol asal atau tujuan data dapt ditunjukkan pada gambar 3.4.

Gambar 3.4 Simbol Asal atau Tujuan Data pada DFD

5. Tempat penyimpanan data digambarkan dalam bentuk seperti dibawah ini. Simbol penyimpanan data dapat ditunjukkan pada gambar 3.5. Atau

Gambar 3.5 Simbol Penyimpanan Data pada DFD3.5.3 Entity Relationship Diagram (ERD)

Entity Relationship Diagram (ERD) adalah alat pemodelan data yang digunakan sebagai suatu teknik untuk mengorganisasikan dan mendokumentasikan data-data sistem. ERD biasanya digunakan untuk menyusun sebuah database. Oleh karena itu ERD kadang-kadang juga disebut sebagai information modelling. (Whitten, 2004).Dengan demikian, ERD merupakan notasi grafis dalam pemodelan data yang mendeskripsikan hubungan antara entitas-entitas yang terdapat dalam sistem. ERD digunakan untuk memodelkan struktur data dan hubungan antar data. Dengan ERD dapat diketahui hubungan satu data dengan yang lain.ERD menggunakan sejumlah notasi dan simbol untuk menggambarkan struktur dan hubungan antar data. Pada dasarnya ada 3 macam simbol yang digunakan yaitu : 1. EntitasEntitas adalah suatu objek yang dapat diidentifikasi dan berisi data. Contoh, dalam sistem sekolah terdapat data-data yang menjelaskan suatu objek seperti guru, murid, kelas dan lain sebagainya. Dalam objek tersebeut, tidak sulit untuk membayangkan data-data yang menjelaskan objek yang dimaksud. Contoh data-data yang menjelaskan murid adalah nama, alamat, tanggal lahir, telepon dan data-data yang lain. Entitas digambarkan dalam bentuk persegi empat.

Gambar 3.6 Simbol Entitas2. AtributEntitas mempunyai elemen yang disebut atribut yang berfungsi mendeskripsikan karakter entitas. Misalnya atribut nama pekerja dari entitas pekerja. Setiap entitas bisa terdapat lebih dari satu atribut. Atribut digambarkan dalam bentuk ellips.

Gambar 3.7 Simbol Atribut3. Hubungan (Relationship)Relationship merupakan kesatuan di antara satu atau beberapa entitas yang merepresentasikan sebuah kejadian yang menghubungkan entitas-entitas tersebut. Sama halnya entitas maka dalam relasipun harus dibedakan antara hubungan atau bentuk hubungan antar entitas dengan isi dari hubungan itu sendiri. Misalnya dalam kasus hubungan antara entitas siswa dan entitas mata_kuliah adalah mengikuti, sedangkan isi hubungannya dapat berupa nilai_ujian. Relationship digambarkan dalam bentuk intan / diamonds.

Gambar 3.8 Simbol RelationshipRelasi memiliki jenis-jenis sebagai berikut:

Satu ke satu (one to one)Setiap entitas pada suatu himpunan entitas berhubungan paling banyak satu entitas pada himpunan entitas yang lain. Misalnya dalam suatu perusahaan mempunyai aturan satu supir hanya boleh menangani satu kendaraan karena alasan tertentu.

Gambar 3.9 Simbol Relasi one to one Satu ke banyak (one to many)Satu entitas berhubungan dengan banyak entitas pada himpunan entitas yang lain. Misalnya suatu sekolah selalu mempunyai asumsi bahwa satu kelas terdiri dari banyak siswa tetapi tidak sebaliknya, yaitu satu siswa tidak dapat belajar pada kelas yang berbeda.

Gambar 3.10 Simbol Relasi one to many Banyak ke banyak (many to many)Setiap entitas pada suatu entitas dapat berhubungan dengan banyak entitas pada himpunan entitas yang lain dan juga sebaliknya. Misalnya setiap guru mengajar beberapa pelajaran dan setiap pelajaran dapat diajarkan oleh beberapa guru.

M M

Gambar 3.11 Simbol Relasi many to many3.6 Sistem Manajemen Database

Sistem Manajemen Database atau Database Management System (DBMS) adalah sebuah sistem software yang digunakan untuk mengolah data pada database. Sistem Manajemen Database memungkinkan user untuk membuat dan mengelola data secara fleksibel sesuai kebutuhan. Sistem Manajemen Database sangat mendukung untuk data yang sangat banyak dan komplek.Database Management System adalah sistem software untuk memanipulasi database. DBMS didikung dengan logical view, physical view, Data Definition Language (DDL), Data Manipulation Language (DML) dan bebrapa peralatan penting seperti crash recovery, sistem keamanan serta manajemen transaksi (T.Teory, 2006).3.6.1 Data

Data adalah pusat informasi penting yang ada pada sistem manajemen database. Data berisikan informasi tentang fakta mengenai suatu hal. Data merupakan hal yang paling berharga pada suatu perusahaan. Ada dua macam data pada sistem manajemen database. Pertama adalah kumpulan informasi yang diperlukan oleh perusahaan. Jenis data yang kedua adalah metadata adalah informasi mengenai database. 3.6.2 Operasi pada Basis Data

Operasi yang dapat dilakukan pada database antara lain :

1. Create database, pembuatan basis data baru yang identik dengan pembuatan lemari arsip yang baru.

2. Drop database, penghapusan basis data yang identik dengan perusakan lemari arsip (sekaligus dengan datanya jika ada).

3. Create table, pembuatan file/tabel baru ke suatu basis data yang identik dengan penambahan map arsip baru ke sebuah lemari arsip yang telah ada.

4. Drop table, penghapusan sebuah file/tabel baru dari suatu basis data yang identik penghapusan map arsip lama yang ada di sebuah lemari arsip.

5. Insert, penambahan/pengisian data baru ke sebuah file/tabel di sebuah basis data yang identik dengan penambahan lembaran arsip ke sebuah map arsip.

6. Retrieve/search, pengambilan data dari sebuah file/tabel yang identik dengan pencarian lembaran arsip yang ada di sebuah map arsip.

7. Update, pengubahan data dari sebuah file/tabel yang identik dengan perbaikan isi lembaran arsip yang ada di sebuah map arsip.

8. Delete, penghapusan data dari sebuah file/tabel yang identik dengan penghapusan sebuah lembaran arsip yang ada di sebuah map arsip. Operasi yang sering dilakukan pada database adalah penambahan, pembaharuan dan penghapusan data.3.6.3 Tujuan Penggunaan Basis Data

Tujuan penggunaan Sistem Manajemen Database dalam mengolah data antara lain :

1. Kemudahan dalam mengkases data.

2. Kesatuan data lebih terjaga.

3. Keamanan data lebih terjamin.

4. Keakuratan data terjaga.

5. Efisiensi ruang penyimpanan data.

6. Meminimalkan redundansi data.3.6.4 Normalisasi

Dalam perancangan basis data relasional, normalisasi merupakan proses pengorganisasian data untuk meminimalisasi duplikasi. Normalisasi pada umumnya melibatkan pembagian-pembagian tabel yang terdapat dalam database ke dalam dua atau lebih tabel dan menentukan relationship antar tabel-tabel tersebut. Pembangunan desain dilakukan dengan menerapkan sejumlah aturan dan kriteria standar untuk menghasilkan struktur tabel yang normal dengan cara menempatkan item-item data yang siap dalam baris atau kolom pada tabel-tabel relasional. Dengan adanya normalisasi maka proses penambahan, penghapusan dan pengeditan data dari suatu field dapat dilakukan hanya pada satu tabel. (Fathansyah, 1999).3.7 Algoritma Genetika

3.7.1 Pengertian

Algoritma genetika adalah algoritma heuristik adaptif yang memiliki dasar pemikiran pada proses seleksi alam dan genetika. Konsep dasar dari algoritma genetika dirancang untuk menirukan proses di dalam sistem alami yang penting bagi evolusi makhluk hidup untuk dapat terus bertahan hidup. Konsep dasar algoritma genetika meniru teori yang dicetuskan oleh Charles Darwin yaitu Survival of the Fittest (Afandi, dkk. 2010). Algoritma genetika pertama kali diperkenalkan oleh John Holland dari Universitas Michigan pada dengan tulisannya berjudul Adapted in Natural and Artificial System yang cara kerjanya berdasarkan seleksi alam. John Holland menyatakan bahwa setiap masalah yang berbentuk adaptasi (alami maupun buatan) dapat diformulasikan dalam terminologi genetika. Aplikasi algoritma genetika yang pertama pada kontrol manufaktur dikemukakan oleh L. Davids dalam Proceedings of an International Conference on Genetic Algorithm and Their Application Hillsdade 1985 (Adhy, Satriyo. 2006).

Teknik pencarian pada algoritma genetika dilakukan sekaligus atas sejumlah solusi yang mungkin, dikenal dengan istilah populasi. Populasi awal akan dibangun secara acak. Setiap individu dalam populasi disebut kromosom yang merupakan representasi dari solusi. Kromosom digambarkan dengan urutan binary digits atau integer yang sesuai dengan kondisi yang dikehendaki. Kromosom tersusun dari gen-gen, dan setiap gen memiliki sifat tertentu (allele) dan posisi tertentu (locus). Kromosom-kromosom berevolusi dalam suatu proses iterasi yang berkelanjutan yang disebut generasi. Pada setiap generasi, kromosom dievaluasi berdasarkan suatu fungsi evaluasi. Setelah melalui beberapa generasi maka algoritma genetika akan konvergen pada kromosom terbaik, yang diharapkan merupakan solusi optimal. Berikut ini merupakan tabel daftar istilah dan gambar ilustrasi yang mewakili elemen-elemen dalam algoritma genetika:Tabel 3.1 Daftar istilah dalam algoritma genetika

IstilahPengertian

GenBagian dari kromosom.

Kromosom (Individu)Sekumpulan gen yang merepresentasikan sebuah solusi.

PopulasiKumpulan kromosom atau individu.

GenerasiSatuan dari proses iterasi evaluasi kromosom setelah mengalami operasi genetika, berkembang biak, dan menghasilkan keturunan.

ParentKromosom yang akan dikenai operasi genetik (kromosom induk).

OffspringKromosom yang merupakan hasil dari operasi genetik (kromosom anak).

SeleksiProses pemilihan individu-individu untuk dijadikan parent.

CrossoverProses pembentukan kromosom baru dengan mengkombinasikan dua atau lebih kromosom induk.

Crossover rate

(Pc)Probabilitas penentuan individu untuk dikenakan crossover.

MutasiProses perbaikan nilai fitness dengan cara merubah nilai gen secara acak agar dapat menambah variasi kromosom.

Mutation rate

(Pm)Probabilitas penentuan individu untuk dikenakan mutasi.

Nilai fitnessParameter penilaian bagus tidaknya suatu kromosom. Jika kromosom memiliki nilai fitness yang rendah, maka kromosom akan tersingkir.

Fungsi evaluasiSekumpulan kriteria tertentu dari permasalahan yang ingin diselesaikan yang digunakan untuk menentukan nilai fitness.

Gambar 3.12 Ilustrasi elemen-elemen dalam algoritma genetikaAlgoritma genetika ini banyak dipakai pada aplikasi bisnis, teknik maupun pada bidang keilmuan. Algoritma genetika banyak digunakan pada masalah praktis yang berfokus pada pencarian parameter-parameter optimal. Sebelum algoritma ini dijalankan, masalah yang ingin dicari solusi optimalnya harus dinyatakan dalam fungsi tujuan, yang dikenal dengan fungsi fitness. Nilai fitness dari suatu kromosom akan menunjukkan kualitas kromosom dalam populasi. Jika nilai fitness semakin besar, maka semakin besar kemungkinan kromosom tersebut akan terpilih. Sebagaimana halnya proses evolusi di alam, dalam siklus algoritma genetika yang sederhana umumnya terdiri dari tiga operator genetik yaitu: operator reproduksi (seleksi), operator persilangan (crossover), dan operator mutasi. Seleksi dilakukan untuk memilih individu induk pada suatu populasi berdasarkan nilai fitnessnya. Crossover dilakukan dengan menyilangkan kedua induk atau lebih sesuai dengan probabilitas crossover untuk menghasilkan individu baru. Sedangkan mutasi dilakukan untuk meningkatkan variasi gen dalam populasi atau mencegah konvergensi dini. Gambar 3.13 merupakan siklus algoritma genetika menurut Tamilarasi, A.

Gambar 3.13 Siklus algoritma genetika3.7.2 Seleksi

Seleksi adalah proses pemilihan individu-individu mana saja yang akan dipilih menjadi induk yang akan melakukan proses kawin silang dan mutasi. Langkah pertama yang dilakukan dalam seleksi adalah pencarian nilai fitness. Nilai fitness ini yang nantinya akan digunakan pada tahap-tahap seleksi berikutnya. Masing-masing individu dalam suatu wadah seleksi akan menerima probabilitas reproduksi yang tergantung pada nilai objektif dirinya sendiri terhadap nilai objektif dari semua individu dalam wadah seleksi tersebut (Kusumadewi, Sri. 2003). Terdapat beberapa metode seleksi. Pada skripsi ini digunakan metode seleksi roda Roulette.

Seleksi roda Roulette merupakan metode seleksi yang paling sederhana dan sering juga dikenal dengan nama stochastic sampling with replacement. Seleksi dilakukan dengan menggunakan prosentase setiap individu, dimana setiap individu mendapatkan luas bagian sesuai dengan prosentase nilai fitnessnya. Semakin besar nilai fitness maka akan semakin besar kemungkinannya untuk terpilih menjadi induk. Dimisalkan semua kromosom (individu) diletakkan pada sebuah roda Roulette, besarnya kemungkinan bagi setiap kromosom adalah tergantung dari nilai fitnessnya seperti pada Tabel 3.2 dan Gambar 3.14.

Tabel 3.2 Contoh populasi dengan 5 kromosom

KromosomFitness

A15

B5

C10

D5

E5

Gambar 3.14 Probabilitas suatu kromosom dengan roda Roulette.Langkah-langkah seleksi roda Roulette adalah sebagai berikut (Michalewicz. 1999):

1. Hitung fitness eval (vi) setiap individu pada suatu populasi (i=1,2,3,,n)

2. Hitung jumlah total fitness dari semua individu pada populasi (i=1,2,3,,n)

(3.1)

3. Hitung peluang dari setiap individu yang ada (i=1,2,3,n)

(3.2)

4. Hitung peluang kumulatif dari setiap individu (i=1,2,3,,n)

(3.3)

5. Dibangkitkan bilangan acak (r) agar diketahui individu mana yang terpilih dalam proses seleksi. Nilai bilangan acak antara 0 sampai 1.

6. Lakukan pencarian pada individu yang ada dengan menjumlahkan nilai peluang kumulatif (qi) tiap individu. Jika diperoleh nilai lebih besar dari r, maka hentikan penelusuran dan pilih individu tersebut.

Keterangan:

i

= individu ke-i

F

= total fitness

pi

= peluang individu ke-i

qi

= peluang kumulatif individu ke-i3.7.3 Crossover

Operator algoritma genetika yang paling utama adalah crossover, yang mensimulasikan proses reproduksi antara dua individu. Cara kerjanya adalah menggabungkan dua buah individu (yang disebut parent) untuk menghasilkan satu atau lebih individu baru (yang disebut offspring).

Jumlah individu yang mengalami proses crossover tergantung pada jumlah probabilitas crossover (Pc) yang ditentukan. Jika ditentukan nilai Pc adalah 20%, maka diharapkan akan ada 20% dari jumlah individu pada populasi yang akan mengalami crossover (Michalewicz. 1996). Pada tingkat probabilitas crossover yang cukup tinggi, proses pencarian solusi optimum dapat menjelajah ke ruang explorasi yang lebih luas sehingga kemungkinan terperangkap pada nilai optimum lokal yang salah dapat dihindari.

Salah satu cara menentukan individu yang akan mengalami crossover adalah dengan membangkitkan nilai r [0..1] sejumlah individu dalam populasi secara random. Jika nilai r < Pc, maka individu tersebut akan mengalami crossover (Michalewicz. 1996).

Salah satu metode crossover yang digunakan adalah metode 1-point crossover. Sebuah titik crossover dibangkitkan secara acak (random). Nilai titik tersebut barada antara 1 sampai dengan jumlah gen yang ada dalam kromosom, dengan catatan nilai titik crossover tidak boleh sama dengan 1 atau sama dengan jumlah gen pada kromosom. String pada posisi awal suatu kromosom akan disalin dari parent pertama, sedangkan sisanya (dari titik crossover sampai akhir) akan disalin dari perent yang lainnya (Cox, Earl. 2005).

Berikut ini adalah contoh dari proses crossover 1-point:

Gambar 3.15 Proses 1-point crossover(Sumber : Cox, Earl. 2005)3.7.4 Mutasi

Mutasi adalah proses penggantian gen yang hilang dari populasi akibat proses seleksi yang memungkinkan munculnya kembali gen yang tidak muncul pada inisialisasi populasi. Proses mutasi pada dasarnya akan mengubah secara acak nilai suatu bit pada posisi tertentu untuk menambah variasi kromosom. Untuk pengkodean biner, mutasi akan mengubah bit 0 menjadi bit 1 dan bit 1 menjadi bit 0 (Kusumadewi, Sri. 2003).

Terdapat satu parameter yang sangat penting dalam proses mutasi yaitu probabilitas mutasi (Pm). Tidak setiap gen selalu dimutasi, tetapi mutasi dikontrol dengan probabilitas mutasi. Probabilitas mutasi menujukkan prosentase jumlah total gen yang termutasi pada populasi tersebut. Jika ditentukan nilai Pm adalah 20%, maka dirahapkan akan terdapat 20% individu dari populasi yang akan mengalami mutasi. Salah satu cara untuk menentukan individu yang akan mengalami mutasi adalah dengan membangkitkan nilai ramdom r [0..1] sejumlah individu dalam populasi. Jika nilai r < Pm, maka individu tersebut akan mengalami mutasi.Pada skripsi ini akan digunakan mutasi dengan metode swap.

Cara kerja mutasi swap adalah dengan membangkitkan dua bilangan random (r) dari jumlah gen yang terdapat dalam kromosom, dengan catatan nilai dari kedua bilangan random tersebut tidak boleh sama. Kemudian setelah dibangkitkan dua bilangan random tersebut, maka dua gen yang berada pada posisi bilangan random akan bertukar tempat. Gambar 3.16 merupakan contoh dari proses mutasi swap:

Nilai ramdom mutasi (r) = 2 dan 5, maka akan terjadi pertukaran nilai pada gen 2 dan gen 5.

786921345

Parent 1 726981345

Offspring 1 Gambar 3.16 Contoh proses mutasi swapBAB IV

PELAKSANAAN PKL4.1 Unit Kerja/bagian Tempat Pelaksanaan PKL

Unit kerja pelaksanaan PKL ini adalah SMA Al Falah Surabaya, yang berlokasi di Jl. Ketintang no.81 kelurahan Ketintang, kecamatan Gayungan, kota Surabaya.4.2 Waktu Pelaksanaan PKL

Waktu pelaksanaan PKL dimulai pada tanggal 17 Januari 2011 sampai dengan tanggal 16 Februari 2011. Dari hari Senin sampai dengan hari Jumat, mulai dari pukul 07.30 WIB sampai dengan pukul 13.00 WIB. Sedangkan hari Jumat dimulai pukul 07.30 WIB hingga pukul 11.00 WIB.4.3 Tugas yang Diberikan Instansi

Tugas yang diberikan oleh pihak SMA Al Falah Surabaya pada saat pelaksanaan PKL adalah pembuatan sistem informasi buku induk siswa serta penjadwalan mata pelajaran.

4.4 Kegiatan PKL

4.4.1 Minggu I

Kegiatan pada minggu pertama pelaksanaan PKL yaitu, perkenalan dengan pembimbing lapang, Bapak Fajar Alam S.T., M.M. Beliau menjabat sebagai guru mata pelajaran TIK serta perkenalan dengan beberapa guru komputer SMA Al Falah Surabaya. Kemudian dilanjutkan dengan penjelasan garis besar proyek yang akan kami kerjakan oleh pembimbing lapang. Selanjutnya dilakukan pengumpulan data yang dibutuhkan untuk membangun sistem informasi buku induk siswa dan penjadwalan mata pelajaran. Setelah pengumpulan data selesai dilakukan, maka kegiatan selanjutnya adalah perancangan sistem berupa perancangan DFD dan user interface.4.4.2 Minggu II

Pada minggu kedua pelaksanaan PKL kegiatan yang dilakukan yaitu pembuatan laporan awal mengenai proyek yang dikerjakan dan struktur organisasi SMA Al Falah Surabaya yang sudah didapat pada minggu pertama serta perancangan database sistem (ERD). Kemudian dilakukan pengerjaan sistem informasi buku induk siswa dan penjadwalan mata pelajaran pada Master Data, yaitu data siswa komponen penyusun penjadwalan. Selain itu juga dilakukan kegiatan konsultasi pada pembimbing lapang.

4.4.3 Minggu III

Kegiatan pada minggu ketiga pelaksanaan PKL adalah melanjutkan pengerjaan sistem informasi buku induk siswa dan penjadwalan mata pelajaran pada form Olah Data. Form olah data yang dibuat adalah form untuk pengolahan data dalam pembuatan jadwal pelajaran. Pada form Olah Data penjadwalan ini dilakukan proses-proses algoritma genetika, antara lain proses seleksi, crossover, mutasi, dan populasi baru.4.4.4 Minggu IV

Pada minggu keempat pelaksanaan PKL dilakukan pembuatan form Laporan pada sistem informasi ini. Form Laporan yang dibuat antara lain, laporan Buku Induk Siswa, laporan jadwal mengajar, dan laporan jadwal mata pelajaran. Kemudian dilakukan pengecekan dan penyempurnaan aplikasi yang dibuat, serta pengerjaan laporan PKL tahap selanjutnya.

Secara garis besar, kegiatan PKL di SMA Al Falah Surabaya dapat dilihat pada tabel 4.1 dan tabel 4.2.Tabel 4.1 Tabel Kegiatan MingguanNoKegiatanIIIIIIIVHasil

1.Pengenalan lingkungan kerja Al Falah SurabayaMengenal lingkungan kerja dan beberapa guru bidang keahlian teknik komputer jaringan.

2.Penjelasan proyek yang akan dikerjakanKonsultasi pembimbing lapang mengenai proyek pengerjaan yang dibutuhkan sekolah.

3.Pengumpulan dataMendapatkan data-data yang dibutuhkan.

Tabel 4.2 Tabel Lanjutan Kegiatan MingguanNoKegiatanIIIIIIIVHasil

4.Perancangan sistem (DFD dan user interface)Rancangan sistem informasi dan user interface program.

5.Pembuatan laporan tahap awalBab Pendahuluan dan Struktur organisasi SMA Al Falah Surabaya.

6.Perancangan database sistem (ERD)Rancangan database sistem.

7.Pengerjaan form Master Data (data siswa, administrator, dan data yang dibutuhkan dalam penyusunan jadwal)Form pengisian master data sekolah.

8.Konsultasi pembimbing Konsultasi prototype sistem.

9.Melanjutkan pengerjaan form Olah Data Form pengolahan data penjadwalan.

10.Mengerjakan proses algoritma genetikaTerselesaikannya proses seleksi, crossover, mutasi, dan populasi baru.

11.Melanjutkan pembuatan form Laporan (laporan buku induk, jadwal pelajaran, dan jadwal mengajar)Form laporan.

Tabel 4.3 Tabel Lanjutan Kegiatan MingguanNoKegiatanIIIIIIIVHasil

12.Penyempurnaan dan pengecekan program.Penyempurnaan dan pengecekan database dan program.

13.Pengerjaan laporan tahap selanjutnya Bab Tinjauan Pustaka dan Pembahasan.

4.5 Data yang Diperoleh

Data-data yang diperoleh dari SMA Al Falah Surabaya yang berkaitan dengan kegiatan yang dilaksanakan dalam praktek kerja lapang ini adalah sebagai berikut:4.5.1 Format Buku Induk Siswa

Format buku induk siswa menjelaskan tentang data diri siswa secara umum, yaitu terdiri dari keterangan data diri siswa, keterangan pendidikan siswa, keterangan kesehatan siswa, keterangan orang tua siswa.4.5.2 Komponen Penyusun Jadwal

Dalam penyusunan jadwal pelajaran, terdapat beberapa komponen penyusun jadwal seperti mata pelajaran, bobot, kelas, jurusan, slot, hari, guru, dan slot-slot khusus kegiatan lain.

Terdapat pula beberapa aturan dalam penyusunan jadwal pelajaran. Aturan-aturan tersebut antara lain adalah sebagai berikut:1. Bobot tiap mata pelajaran pada masing-masing kelas telah ditetapkan sesuai kurikulum yang ada.2. Guru dapat mengajar lebih dari satu kelas, namun guru tidak diperbolehkan mengajar lebih dari 4 jam dalam satu hari.3. Guru juga tidak boleh mengajar lebih dari satu kali dalam waktu yang bersamaan.4. Mata pelajaran yang sama dalam satu hari tidak boleh dijadwalkan lebih dari dua kali.5. Dalam satu minggu suatu mata pelajaran tidak boleh dijadwalkan melebihi bobot yang telah di tetapkan.BAB V

PEMBAHASAN5.1 Deskripsi Sistem

Sistem informasi buku induk siswa dan penjadwalan pelajaran SMA Al Falah Surabaya merupakan sebuah sistem informasi yang digunakan untuk menyimpan data siswa serta untuk pembuatan mata pelajaran secara otomatis. Sistem informasi ini dibangun dengan menggunakan aplikasi Visual Studio 2008 sebagai sistem interface, sedangkan untuk pengolahan database menggunakan Microsoft Office 2007.

Pada sistem ini terdapat dua jenis pengguna, yaitu pegawai tata usaha sebagai administrator, dan guru. Administrator dapat melakukan proses penginputan, penghapusan, pengeditan (update), serta penghapusan pegawai, jurusan, kelas, serta mata pelajaran. Selain itu administrator juga dapat melakukan proses pembuatan jadwal baru. Dengan sistem ini administrator dapat mengetahui dan mencetak laporan biodata siswa dan laporan jadwal pelajaran. Sedangkan pengguna sebagai guru hanya dapat melakukan cetak jadwal mengajar dan melihat jadwal pelajaran yang sudah ada. Guru juga dapat mengganti password yang akan digunakan untuk login.5.2 Use CaseBerikut ini merupakan use case yang digunakan pada sistem informasi siswa dan penjadwalan mata pelajaran di SMA Al Falah.

Gambar 5.1 Use Case Diagram5.3 Data Flow Diagram (DFD)5.3.1 Diagram Konteks

Diagram konteks dari sistem informasi buku induk siswa dan penjadwalan mata pelajaran ini dapat dilihat pada gambar 5.2.

Gambar 5.2 Diagram KonteksDiagram Konteks untuk Sistem Informasi Buku Induk Siswa dan Penjadwalan Mata Pelajaran ini memiliki 2 entitas yaitu Guru, dan Pegawai TU. Aliran data yang masuk pada Context Diagram (DFD level 0) untuk sistem informasi ini ada 2 aliran, yaitu:1. dt guru,2. dt administrator,Sedangkan aliran data yang keluar dari sistem ada 3 aliran, yaitu:

1. laporan jadwal guru,

2. laporan biodata siswa,3. laporan jadwal5.3.2 DFD Level 1

Data Flow Diagram (DFD) Level 1 pada Sistem Informasi Buku Induk Siswa dan Penjadwalan Mata Pelajaran ini dapat dilihat pada gambar 5.3.

Gambar 5.3 DFD Level 1Sistem informasi ini mempunyai empat proses, yaitu:

1. Proses Login,

2. Proses Master Data,

3. Proses Manipulasi Data, dan

4. Proses Laporan

Selain itu juga terdapat 12 data store yaitu:

1. Data Store Admin,

2. Data Store Guru,

3. Data Store Kelas,

4. Data Store Jurusan,

5. Data Store Bobot,6. Data Store Siswa,7. Data Store JumSlot,8. Data Store Matpel,9. Data Store Penugasan,10. Data Store SlotLarangan,11. Data Store Aturan dan12. Data Store Jadwal5.3.3 DFD Level 2 untuk proses Login

Proses login merupakan proses pertama yang harus dilakukan untuk dapat melakukan proses-proses selanjutnya. Proses ini berisi proses input login dan validasi login. Input login merupakan proses untuk memasukkan username dan password. Setelah penginputan selesai, dilanjutkan dengan proses validasi. Jika data yang diinputkan terdaftar atau valid maka proses dapat dilanjutkan. Proses ini bertujuan untuk keamanan data. DFD level 2 untuk proses Login dapat dilihat pada gambar 5.4.

Gambar 5.4 DFD Level 2 Proses Login

5.3.4 DFD Level 2 untuk proses Master Data

Proses master data merupakan proses awal dalam melakukan pembentukan data awal. Pada proses ini dilakukan penginputan dan penyimpanan data-data mentah. DFD level 2 proses master dapat dilihat pada gambar 5.5.

Gambar 5.5 DFD Level 2 Proses Master Data5.3.5 DFD Level 2 untuk proses Laporan

Pada proses laporan dibagi dua tujuan, yaitu laporan yang ditujukan kepada guru yaitu berupa jadwal guru dan laporan yang ditujukan kepada petugas TU/admin yang berupa laporan biodata siswa dan jadwal pelajaran. DFD level 2 untuk proses laporan dapat dilihat pada gambar 5.6.

Gambar 5.6 DFD Level 2 Proses Laporan5.4 Tabel Pembentuk Sistem

Tabel-tabel yang digunakan dalam sistem ini antara lain:

a. Tabel Siswa Tabel Siswa merupakan tabel yang berfungsi untuk menyimpan data-data siswa. Tabel Siswa dapat dilihat pada tabel 5.1.Tabel 5.1 Tabel TSiswa

No.Nama FieldTipePanjang FieldKeterangan

1.NISText10Nomor Induk Siswa

2.NamaText20Nama lengkap siswa

3.ThnAjaranNumber4Tahun Masuk

4.Jns_KelaminText20Jenis Kelamin

5.Tmpt_LhrText20Tempat lahir siswa

6.Tgl_lhrDate/timeTanggal lahir siswa

7.AlamatText50Alamat siswa

8.AnakkeNumberNomer anak dari orang tua

9.AnakkeNumberNomer anak dari orang tua

10.Sdr_KandungNumberJumlah saudara kandung

11.Sdr_TiriNumberJumlah saudara tiri

12.Sdr_AngkatNumberJumlah saudara angkat

13.StatusText20Status anak siswa

14.Warga_NegaraText20Kewarganegaraan siswa

15.AgamaText15Agama Siswa

16.Gol_DarahText2Golongan darah siswa

17.PenyakitText20Penyakit yang diderita

18. KelainanText20Kelainan yang diderita siswa

19.TinggiNumberTinggi siswa

20BeratNumberBerat Siswa

21Tinggal_BrsmaText20Dengan siapa siswa tinggal

22BahasaText20Bahasa yang digunakan

23JarakNumberJarak rumah dengan Sekolah

24.TransportText20Transportasi menuju sekolah

25.Asal_SekolahText20Nama sekolah sebelumnya

26.Tgl_IjasahText40Tanggal dan nomor ijasah

27.Tgl_STLText40Tanggal dan nomor STL

28.Alm_SekolahText20Alamat Sekolah sebelumnya

29.PrestasiText100Prestasi siswa

30.GemarText100Kegemaran siswa

b. Tabel GuruTabel Guru merupakan tabel yang berfungsi untuk menyimpan data-data Guru. Tabel Guru dapat dilihat pada tabel 5.2.Tabel 5.2 Tabel TPegawaiNo.Nama FieldTipePanjang FieldKeterangan

1.Kode GuruNumberKodeGuru

2.NIPText20Nomor induk pegawai

3.NamaGuruText30Nama Guru

4.KodeMatpelNumberKode Mata Pelajaran yang diajar

5.PasswordText10Password untuk login

c. Tabel JurusanTabel Jurusan merupakan tabel yang berfungsi untuk menyimpan jurusan-jurusan yang terdapat pada SMA Al Falah Surabaya. Tabel jurusan dapat dilihat pada tabel 5.3.Tabel 5.3 Tabel TJurusanNo.Nama FieldTipePanjang FieldKeterangan

1.kode_jurusanAutonumberKode jurusan

2.nama_jurusanText20Nama jurusan

d. Tabel Mata Pelajaran Tabel Matpel merupakan tabel yang berfungsi untuk menyimpan data-data mata pelajaran. Tabel Matpel dapat dilihat pada tabel 5.4.Tabel 5.4 Tabel TMapelNo.Nama FieldTipePanjang FieldKeterangan

1.KodeMatpelAutonumberKode mata pelajaran

2.NamaMatpelText50Nama mata pelajaran

e. Tabel KelasTabel Kelas merupakan tabel yang berfungsi untuk menyimpan data-data yang terdapat dalam satu kelas. Data tersebut terdiri dari nama kelas dan jurusan. Tabel Kelas dapat dilihat pada tabel 5.5.Tabel 5.5 Tabel KelasNo.Nama FieldTipePanjang FiledKeterangan

1.KodeKelasAutoNumberKode ruangan kelas di setiap kelas

2.NamaKelasText10Nama kelas

3.KodeTingkatNumberKode tingkat kelas

4.KodeJurusanNumberKode urusan

f. Tabel JumlahSlotTabel JumlahSlot merupakan tabel yang berfungsi untuk menyimpan jumlah slot pada tiap kelas di hari tertentu. Tabel JumlahSlot dapat dilihat pada tabel 5.6.Tabel 5.6 Tabel JumlahSlotNo.Nama FieldTipePanjang FieldKeterangan

1.KodeSlotAutonumberKode Slot

2.KodeHariNumberKode Hari

3.JumlahSlotNumberJumlah jam pelajaran

g. Tabel BobotTabel Bobot merupakan tabel yang berfungsi untuk menyimpan jumlah bobot tiap mata pelajaran tiap minggu. Tabel TNilai dapat dilihat pada tabel 5.7.Tabel 5.7 Tabel BobotNo.Nama FieldTipePanjang FieldKeterangan

1.KodeBobotAutonumberKode Bobot

2.KodeMatpelNumberKode Matpel

3.KodeTingkatNumberKode Tingkat

4.KodeJurusanNumberKode Jurusan

5.BobotPermingguNumberBobot pelajaran perminggu

h. Tabel PenugasanTabel Penugasan merupakan tabel yang berfungsi untuk menyimpan data penugasan guru pengajar. Tabel Penugasan dapat dilihat pada tabel 5.8.Tabel 5.8 Tabel PenugasanNo.Nama FieldTipePanjang FieldKeterangan

1.KodeMengajarAutonumberKode mengajar

2.KodeGuruNumberKode guru yang mengajar

3.KodeKelasNumberKode kelas yang diajar

4.BobotNumberMaksimal jam guru mengajar perkelas dalam 1 hari

i. Tabel SlotLaranganTabel SlotLarangan merupakan tabel yang berfungsi untuk menyimpan slot-slot yang tidak boleh digunakan untuk mengajar seperti biasa. Tabel SlotLarangan dapat dilihat pada tabel 5.9.Tabel 5.9 Tabel SlotLaranganNo.Nama FieldTipePanjang FieldKeterangan

1.KodeSlotLaranganAutonumberKode Slot Larangan

2.KodeHariNumberKode Hari

3.KodeTingkatNumberNomor Induk Pegawai

4.KodeSlotNumberKode Slot yang dilarang

5.KeteranganText40Keterangan

j. Tabel JadwalTabel Jadwal merupakan tabel yang berfungsi untuk menyimpan data jadwal. Tabel Jadwal dapat dilihat pada tabel 5.10.Tabel 5.10 Tabel JadwalNo.Nama FieldTipePanjang FieldKeterangan

1.KodeJadwalAutonumberKode jadwal

2.KodeHariNumberKode Hari

3.KodeSlotNumberKode slot

4.KodeMengajarNumberKode mengajar

k. Tabel AturanTabel Aturan merupakan tabel yang berfungsi untuk menyimpan aturan-aturan dalam pembuatan jadwal. Tabel Aturan dapat dilihat pada tabel 5.11.Tabel 5.11 Tabel AturanNo.Nama FieldTipePanjang FieldKeterangan

1.KodeAturanAutonumberKode aturan

2.NamaText50Isi aturan

3.PinaltiNumberNilai pinalti

l. Tabel AdminTabel Admin merupakan tabel yang berfungsi untuk menyimpan data admin yaitu Pegawai TU. Tabel Admin dapat dilihat pada tabel 5.12.Tabel 5.12 Tabel AdminNo.Nama FieldTipePanjang FieldKeterangan

1.KodeAdminAutonumberKode jadwal

2.UsernameText10Username untuk login

3.PasswordText10Password untuk login

5.5 Entity Relationship Diagram (ERD)

ERD yang akan digunakan dalam Sistem Informasi Buku Induk Siswa dan Penjadwalan Mata Pelajaran ini dapat dilihat pada gambar 5.8.

Gambar 5.8 Entity Relational TableRelasi tabel pada gambar 5.8 menjelaskan hubungan antar entity dalam sistem informasi buku induk dan penjadwalan mata pelajaran. Relasi tersebut antara lain: Tabel Hari mempunyai hubungan one to many dengan tabel jumlahSLot, SlotLarangan, dan jadwal karena dalam 1 hari bisa terdapat beberapa slot, slot larangan dan jadwal. Tabel Penugasan mempunyai hubungan one to many dengan tabel Jadwal karena satu jadwal dapat berisi lebih dari satu kali kode mengajar. Tabel Guru dan tabel Kelas mempunyai hubungan one to many dengan tabel Penugasan karena di dalam tabel penugasan 1 guru bisa mengajar di kelas yang berbeda. Tabel Jurusan mempunyai hubungan one to many dengan tabel TKelas karena satu jurusan dapat dimiliki lebih dari satu kelas Tabel Matpel mempunyai hubungan one to many dengan tabel Guru karena untuk 1 mata pelajar dapat lebih dari 1 guru pengajarnya. Tabel Matpel dan Jurusan mempunyai hubungan one to many dengan tabel Bobot karena satu Matpel dan jurusan dapat memiliki bobot lebih dari 1.5.6 Perancangan Proses Penjadwalan Menggunakan Algoritma

Genetika

Dari flowchart pada gambar 5.9 dapat dijelaskan langkah-langkah proses penjadwalan adalah sebagai berikut:1. Generate populasi awal sebanyak jumlah populasi yang telah ditentukan.2. Menghitung fitness dari setiap individu.3. Membuat populasi baru dengan melakukan langkah-langkah berikut sebanyak jumlah generasi yang telah ditentukan.a. Seleksi dengan metode Roulette Wheel untuk menentukan induk pada proses berikutnya.b. Melakukan proses crossover pada induk yang terpilih berdasarkan pC ang telah ditentukan.c. Melakukan proses mutasi pada anak hasil crossover berdasarkan pada pM yang telah ditentukan.d. Proses populasi baru yaitu dengan memilih individu sebanyak jumlah populasi awal setelah menggabungkan individu induk dan anak yang akan menjadi populasi baru untuk generasi selanjutnya.4. Jika kondisi akhir terpenuhi, berhenti dan hasilnya adalah solusi terbaik dari populasi saat itu.

Gambar 5.9 Flowchart algoritma genetika pada pencarian rute tercepat

Secara lebih rinci, langkah-langkah algoritma genetika dapat dijelaskan sebagai berikut :

5.6.1 PengkodeanPada penelitian ini, metode pengkodean yang digunakan adalah pengkodean nilai. Panjang kromosom tiap individu adalah berdasarkan banyaknya slot untuk masing masing kelas dalam 5 hari. Tiap slot direpresentasikan dengan kode mengajar yang didapat dari tabel penugasan. Contoh ilustrasi kromosom dapat dilihat pada gambar 5.10. Kelas 1 Kelas 2 Kelas 3

123231123

321213321

123321123

321123231

213321132

( hari 1

Slot 1

Gambar 5.10 Ilustrasi representasi kromosom

Panjang kolom dari kromosom adalah perkalian dari banyaknya kelas dikali banyaknya slot pada hari tertentu. Panjang kromosom dapat berbeda pada hari yang berbeda, tergantung banyaknya slot yang telah ditentukan. Pada gambar 5.10 terdapat 5 hari dan juga terdapat 3 kelas yang masing masing memiliki 3 slot per hari. Nilai yang terdapat pada kromosom merupakan kode mengajar yang diambil dari tabel Penugasan.

5.6.2 Generate Populasi Awal

Proses generate populasi awal adalah proses pembentukan kromosom sebanyak jumlah populasi awal yang telah ditentukan. Langkah langkah dari proses generate populasi awal adalah sebagai berikut:

1. Telah ditentukan jumlah populasi.

2. Hitung Panjang kromosom berdasarkan hari.

3. Loop i sebanyak jumlah hari.

4. Loop j sebanyak panjang kromosom pada hari i

5. Generate random KodeMengajar pada tabel penugasan berdasarkan kelas dan hari i.

6. End loop j.

7. End loop i.

8. Cek bobot masing-masing mata pelajaran yang keluar.

9. Repair mata pelajaran yang melebihi atau kurang dari bobot yang telah ditentukan.

5.6.3 Hitung FitnessFungsi tujuan dari penjadwalan mata pelajaran adalah untuk meminimalkan pinalti yang ada. Besar pinalty sesuai dengan aturan aturan yang telah ditentukan sebelumnya. Aturan aturan yang ada dapat dilihat pada tabel 5.13.

Tabel 5.13 Tabel AturanAturanNilai Pinalti

Guru tidak diperbolehkan mengajar lebih dari 4 jam dalam 1 hari1

Mata pelajaran yang sama dalam satu hari tidak boleh dijadwalkan lebih dari 2 kali2

Dalam satu minggu, suatu mata pelajaran tidak boleh dijadwalkan melebihi bobot yang telah ditetapkan3

Guru juga tidak boleh mengajar lebih dari satu kali dalam waktu yang bersamaan.4

Langkah-langkah dalam proses hitung fitness adalah sebagai berikut:

1. Telah ditentukan populasi awal.

2. Hitung nilai fitness dari tiap individu dengan persamaan sebagai berikut.

fitness =

5.6.4 SeleksiMetode seleksi yang digunakan adalah roulette wheel. Langkah-langkah dari metode roulette wheel adalah sebagai berikut :1. Menghitung probabilitas setiap individu

2. Menghitung probabilitas kumulatif setiap individu (Pk)

3. Membangkitkan nilai random r [0..1] sejumlah individu induk yaitu sejumlah populasi awal/2.

4. Apabila r < Pk, maka individu yang akan dijadikan induk.5.6.5 CrossoverDari proses seleksi telah didapat individu yang akan dijadikan induk pada proses crossover. Peluang individu mengalami crossover berdasarkan pada probabilitas crossover yang telah ditentukan.

Metode crossover yang digunakan adalah 1 cut point crossover. Langkah-langkah dari metode crossover yang digunakan adalah sebagai berikut:1. Generate bilangan random 0-1 sebanyak jumlah induk.2. Jika bilangan random < probabilitas crossover, lanjutkan langkah 4

3. Jika bilangan random > probabilitas crossover, lanjutkan ke induk berikutnya.4. Menentukan titik crossover yaitu dengan generate random pada parent 15. Dimulai dari titik crossover, tukar gen-gen antara 2 kromosom.6. Cek hasil offspring, jika ada yang melebihi bobot, maka repair.5.6.6 Mutasi

Dari proses crossover telah didapat individu anak yang akan menjalani proses mutasi. Metode mutasi yang digunakan adalah swap mutation. Peluang individu mengalami mutasi berdasarkan pada probabilitas mutasi yang telah ditentukan. Langkah-langkah dari metode mutasi yang digunakan adalah sebagai berikut:1. Generate bilangan random 0-1 sebanyak jumlah offspring.2. Jika bilangan random < probabilitas mutasi, lanjutkan langkah 4.3. Jika bilangan random > probabilitas mutasi, lanjutkan ke loop berikutnya.4. Generate random (randHari1 dan randHari2) untuk menentukan hari yang akan di swap.5. Pilih random gen untuk dijadikan titik mutasi.6. Tukar gen pada titik mutasi antara hari yang telah ditentukan.7. Cek hasil mutasi, jika ada yang melebihi bobot, maka repair.5.6.7 Populasi BaruProses ini digunakan untuk memperoleh populasi baru yang akan digunakan untuk proses evolusi berikutnya. Yaitu dengan cara menambahkan individu anak kedalam individu awal. Kemudian di sorting berdasarkan fitnessnya.5.7 Implementasi SistemSesuai dengan rancangan sistem yang sudah dibuat, sistem informasi ini diimplementasikan dengan menggunakan bahasa pemrograman Microsoft Visual C# dan database Microsoft Office Access. Untuk lebih jelasnya akan ditampilkan form-form yang digunakan serta fungsi dari masing-masing form tersebut.

5.7.1 Form Log InForm ini merupakan form yang akan tampil ketika aplikasi dijalankan. Form ini digunakan untuk membatasi hak akses terhadap aplikasi tersebut, sehingga keamanan data dapat terjaga. Tampilan form login dapat dilihat pada gambar 5.11.

Gambar 5.11 Form LoginDalam sistem informasi ini ada dua user yang dapat mengakses aplikasi, yaitu user yang bertindak sebagai admin dan user yang bertindak sebagai guru. Setiap user yang ingin mengakses aplikasi harus memasukkan username dan password. Jika username dan password yang diinputkan valid maka user dapat menggunakan fitur-fitur yang terdapat pada aplikasi. Sourcecode untuk mengecek proses Log In apakah user valid atau tidak dapat dilihat pada tabel 5.14.Tabel 5.14 Sourcecode Pengecekan Admin Valid

1

2

3

4

5

6

7

8private void button1_Click(object sender, EventArgs e){ string sql = "select Username, Password, Status

WHERE Username = '" + userTxt.Text + "' AND

Password = '" + passTxt.Text + "'";

aConnection.runCommand(sql);}

Form UtamaForm ini merupakan tampilan utama aplikasi. Dalam form ini berisi menu siswa, data penjadwalan, dan olah jadwal. Tampilan form utama dapat dilihat pada gambar 5.12.

Gambar 5.12 Form Utama5.7.2 Form Buku Induk SiswaMenu buku induk siswa digunakan untuk melakukan penyimpanan dan pengeditan data buku induk siswa. Tampilan form dari buku induk siswa dapat dilihat pada gambar 5.13.

Gambar 5.13 Form Buku Induk SiswaPada menu ini dapat dilakukan penyimpanan, pengeditan, penghapusan, serta pencarian data siswa. Sourcecode untuk penyimpanan data siswa dapat dilihat pada tabel 5.15.

Tabel 5.15 Sourcecode Penyimpanan Data Siswa

1

2

3

4

5

6

7

89

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

43private void saveBtn_Click(object sender, EventArgs e)

{

check();

if(status == true)

{

string sql = "insert into SISWA values ('" +

NISTxt.Text + "','" + NamaTxt.Text + "','" +

Convert.ToInt32(thnTxt.Text) + "','" +

jnsTxt.Text + "','" + tmptTxt.Text + "','" +

tglDate.Text + "','" +

Convert.ToInt32(telpnTxt.Text) + "','" +

almtTxt.Text + "','" +

Convert.ToInt32(anakKeTxt.Text) + "','" +

Convert.ToInt32(sdrKandungTxt.Text) + "','" +

Convert.ToInt32(sdrTiriTxt.Text) + "','" +

Convert.ToInt32(sdrAngkatTxt.Text) + "','" +

statTxt.Text + "','" + warga + "','" +

agmTxt.Text + "','" + golCB.Text + "','" +

pnyktTxt.Text + "','" + kelainanTxt.Text +

"','" + Convert.ToInt32(tinggiTxt.Text) + "','" + Convert.ToInt32(BeratTxt.Text) + "','" +

tinggal + "','" + bhsTxt.Text + "','" +

Convert.ToInt32(jrkTxt.Text) + "','" +

transTxt.Text + "','" + asalTxt.Text + "','" +

ijazahTxt.Text + "','" + stlTxt.Text + "','" +

namaAyahTxt.Text + "','" + NamaIbuTxt.Text +

"','" + krjAyahtxt.Text + "','" +

krjIbuTxt.Text + "','" + alamatOrtuTxt.Text +

"','" + Convert.ToInt32(tlpnOrtuTxt.Text) +

"')";

if (MessageBox.Show("Are you sure you want to

save?", "WARNING", MessageBoxButtons.OKCancel)

== DialogResult.OK)

{

aConnection.runCommand(sql);

MessageBox.Show("Data Telah tersimpan",

"Informasi", MessageBoxButtons.OK);

Close();

}

}

status = true;

}

Sourcecode untuk pengeditan data siswa dapat dilihat pada tabel 5.16.Tabel 5.16 Sourcecode Pengeditan Data Siswa

1

2

3

4

5

6

7

89

10private void edtBtn_Click(object sender, EventArgs e){

stat = false;

Siswa_Frm editSiswa = new Siswa_Frm (stat,dataGridView1.SelectedRows[0].Cells[1]. Value.ToString());

editSiswa.ShowDialog();

stat = true;}

Sourcecode untuk penghapusan data siswa dapat dilihat pada tabel 5.17.Tabel 5.17 Sourcecode Penghapusan Data Siswa1

2

3

4

5

6

7

89

10

11

12

13

14

15

16

17

18private void delBtn_Click(object sender, EventArgs e)

{

if (MessageBox.Show("Are you sure you want

to delete this record?", "WARNING",

MessageBoxButtons.OKCancel) ==

DialogResult.OK)

{

string sql = " DELETE from SISWA WHERE NIS

='" +dataGridView1.SelectedRows[0].Cells[0].Value.ToString() + "'";

aConnection.runCommand(sql);

MessageBox.Show("Data Telah terhapus", "Informasi", MessageBoxButtons.OK);

}

setDataGrid();

}

Sourcecode untuk pencarian data siswa dapat dilihat pada tabel 5.18.Tabel 5.18 Sourcecode Pencarian Data Siswa1

2

3

4

5

6

7

89

10

11

12

13

14

15

16

17

18

19

20

21private void cariBtn_Click(object sender, EventArgs e)

{

string sql = "";

sql = "SELECT COUNT (NIS) from SISWA WHERE " + cbBerdasarkan.Text + " = '" + keyText.Text + "'";

Console.WriteLine(cbBerdasarkan.Text);

if (aConnection.get(sql) != 0)

{

dataGridView1.DataSource = aConnection.setDataGrid("select NIS, NAMA, ThnAjaran, Alamat, TLPN from SISWA where " + cbBerdasarkan.Text + " LIKE '%" + keyText.Text + "%'");

}

else

{

MessageBox.Show("Data tidak ditemukan ", "INFORMATION", MessageBoxButtons.OK);

}

}

Sourcecode penyimpanan, pengeditan, penghapusan, dan pencarian data pada tabel di atas juga digunakan pada form Data Penjadwalan Guru, Mata Pelajaran, Kelas, Jumlah Slot, Bobot, Slot Larangan, dan Penugasan.5.7.3 Form Data PenjadwalanPada menu Data Penjadwalan terdapat beberapa submenu, yaitu submenu Guru, Mata Pelajaran, Kelas, Jumlah Slot, Bobot, Slot Larangan, dan Penugasan.5.7.3.1Form Data Penjadwalan - Guru

Form Guru ini berfungsi untuk menyimpan semua data guru yang mengajar suatu mata pelajaran. Tampilan form data guru dapat dilihat pada gambar 5.14.

Gambar 5.14 Form Data Penjadwalan GuruPada submenu ini dapat dilakukan penyimpanan, pengeditan, penghapusan, serta pencarian data guru. 5.7.3.2Form Data Penjadwalan Jumlah SlotForm Jumlah Slot ini berfungsi untuk menyimpan banyaknya slot jadwal mengajar dalam satu hari. Tampilan form data jumlah slot dapat dilihat pada gambar 5.15.

Gambar 5.15 Form Data Jumlah Slot5.7.3.3Form Data Penjadwalan Bobot

Form Bobot ini berfungsi untuk menyimpan banyaknya bobot untuk tiap mata pelajaran masing masing kelas dalam 1 minggu. Tampilan form Bobot dapat dilihat pada gambar 5.16.

Gambar 5.16 Form Data Bobot

5.7.3.4Form Data Penjadwalan Slot Larangan

Form Slot Larangan ini berfungsi untuk menyimpan slot slot yang tidak boleh dipakai sebagai waktu mengajar. Tampilan form data jumlah slot dapat dilihat pada gambar 5.17.

Gambar 5.17 Form Data Slot Larangan5.7.3.5Form Data Penjadwalan Penugasan

Form Penugasan ini berfungsi untuk menyimpan data penugasan guru. Pada form ini dimasukkan data guru yang akan mengajar suatu mata pelajaran di kelas tertentu. Form data penugasan dapat dilihat pada gambar 5.18.

Gambar 5.18 Form Data Penugasan5.7.3.6 Form Data Penjadwalan Kelas

Form data Kelas ini berfungsi untuk menyimpan data kelas. Pada form ini dimasukkan banyaknya kelas yang ada. Form data Kelas dapat dilihat pada gambar 5.19.

Gambar 5.19 Form Data Kelas

5.7.3.7 Form Data Penjadwalan Mata Pelajaran

Form data Mata Pelajaran ini berfungsi untuk menyimpan data mata pelajaran. Pada form ini dimasukkan nama pelajaran yang diajarkan. Form data Mata Pelajaran dapat dilihat pada gambar 5.20.

Gambar 5.20 Form Data Mata Pelajaran

5.7.4 Form Olah Jadwal

Pada menu Olah Data Jadwal terdapat beberapa submenu, yaitu submenu Generate Jadwal dan Cetak Laporan. 5.7.4.1 Form Olah Jadwal - Generate Jadwal

Form Generate Jadwal ini berfungsi untuk membuat jadwal baru berdasarkan data data penjadwalan yang ada. Form Generate Jadwal dapat dilihat pada gambar 5.21.

Gambar 5.21 Form Penugasan5.7.4.2 Form Data Olah Jadwal Lihat Jadwal

Form Lihat Jadwal ini berfungsi untuk melihat jadwal yang sudah disimpan. Di dalam Form ini juga terdapat fungsi cetak jadwal mengajar guru dan cetak jadwal pelajaran. Fungsi cetak jadwal pelajaran dapat dilihat pada gambar 5.22.

Gambar 5.22 Form Lihat Jadwal(Jadwal Mata Pelajaran)

Dan apabila tombol cetak ditekan, maka akan keluar laporan yang dapat dilihat pada gambar 5.23.

Gambar 5.23 Laporan Jawal Mata Pelajaran

Untuk fungsi cetak jadwal mengajar dapat dillihat pada gambar 5.24.

Gambar 5.24 Form Lihat Jadwal (Jadwal Mengajar)

Dan apabila tombol cetak ditekan, maka akan keluar laporan yang dapat dilihat pada gambar 5.25.

Gambar 5.25 Laporan Jadwal Mengajar5.7.4.3 Form Olah Jadwal Cetak Biodata

Form Cetak Biodata ini berfungsi untuk mencetak biodata siswa siswa berdasarkan NIS atau mencetak semua data siswa. Form Cetak Biodata dapat dilihat pada gambar 5.26.

Gambar 5.26 Form Cetak Biodata

5.7.5 Proses Algoritma GenetikaSeperti yang telah dijelaskan pada sub Bab5.7.5.1 Generate Populasi AwalPada prosedur Generate Populasi Awal, dibentuk kromosom sebanyak jumlah populasi yang telah ditentukan sebelumnya. Pengisian kromosom dilakukan dengan pengambilan kode mengajar sesuai dengan loop hari dan kelas. Sourcecode Generate populasi awal dapat dilihat pada tabel 5.19.

Tabel 5.19 Sourcecode Generate Populasi Awal

1

2

3

4

5

6

7

89

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

5051

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

7273

74

75

76

77

78

79

808182

83

84

85

86

87

88

89

90

91

92

93

94

95

96public void generatePopAwal()

{ bool kondisi = true;

int kodeSebelum = 0;

int counter = 0;

int rand;

int genStart;

int indeks = 0; for (int i = 0; i