Studi Penggunaan Algoritma Ant Colony Dalam Pengalokasian Kanal Dinamik Pada Komunikasi Seluler

(1)

STUDI PENGGUNAAN ALGORITMA ANT COLONY DALAM

PENGALOKASIAN KANAL DINAMIK PADA KOMUNIKASI

SELULER

TUGAS AKHIR

Diajukan untuk Memenuhi Salah Satu Persyaratan dalam Menyelesaikan Pendidikan Sarjana (S-1) pada Departemen Teknik Elektro

Oleh :

NIM : 110422028 BENI AFNORA GANDA

DEPARTEMEN TEKNIK ELEKTRO

PROGRAM PENDIDIKAN SARJANA EKSTENSI

FAKULTAS TEKNIK

UNIVERSITAS SUMATERA UTARA

MEDAN


(2)

(3)

ABSTRAK

Keterbatasan spektrum frekuensi atau kanal menjadi salah satu masalah pada komunikasi seluler pada saat ini. Untuk itu perlu dicari solusi untuk dapat meminimalkan panggilan yang tidak dapat dilayani atau diblok, yaitu dengan melakukan optimasi pengalokasian kanal.

Tugas Akhir ini membahas studi penggunaan algoritma ant colony dalam pengalokasian kanal dinamik pada komunikasi seluler sebagai metode penyelesaiannya. Dengan metode ini diharapkan persentase probailitas blocking

menjadi lebih kecil.

Hasil optimasi menggunakan metode Frequency Exhaustive Assignment

(FEA) dengan jumlah kanal yang tersedia 64 kanal memiliki rata-rata probabilitas

blocking yaitu 20.40 persen, sedangkan hasil optimasi algoritma ant colony

dengan parameter yang sama memiliki probabilitas blocking yaitu 14.40 persen. Ini menunjukan bahwa pengalokasian kanal menggunakan algoritma ant colony

mampu mengurangi probabilitas blocking.

Kata kunci :

Algoritma Ant Colony, Kanal Dinamis, Pengalokasian kanal pada komunikasi seluler


(4)

KATA PENGANTAR

Segala puji dan syukur penulis panjatkan ke hadirat Tuhan Yang Maha Esa atas berkah dan rahmatNya yang memberikan petunjuk, pengetahuan, pengalaman dan kesempatan kepada penulis untuk dapat menyelesaikan Tugas Akhir ini dengan baik.

Tugas Akhir ini berjudul ” STUDI PENGGUNAAN ALGORITMA

ANT COLONY DALAM PENGALOKASIAN KANAL DINAMIK PADA

KOMUNIKASI SELULER”. Tugas Akhir ini merupakan salah satu syarat untuk memperoleh gelar kesarjanaan pada Departemen Teknik Elektro Fakultas Teknik Universitas Sumatera Utara.

Penulis mempersembahkan Tugas Akhir ini kepada kedua orang tua tersayang yang telah mengasihi, menyayangi dan mendukung penulis setiap saat, Ayahanda W. Saragih dan Ibunda H. Manalu serta kepada adik-adik tercinta Dora, Anju dan Ariel.

Dalam kesempatan ini juga penulis menyampaikan rasa terimakasih yang sebesar – besarnya kepada :

1. Bapak Rahmad Fauzi, ST. MT selaku dosen pembimbing Tugas Akhir dan selaku Sekretaris Departemen Teknik Elektro Fakultas Teknik Universitas Sumatera Utara atas bimbingan, dukungan dan motivasi kepada penulis. 2. Bapak Ir. Surya Tarmizi Kasim, M.Si selaku Ketua Departemen Teknik

Elektro Fakultas Teknik Universitas Sumatera Utara.

3. Bapak Ir. Panusur SML. Tobing selaku Dosen Pembimbing Akademik selama mengikuti perkuliahan.


(5)

4. Bapak Suherman, ST.,M.Comp.,Ph.D selaku dosen pembanding yang sudah banyak membantu dan membimbing Tugas Akhir penulis.

5. Bapak Ir. Arman Sani, MT selaku dosen pembanding yang membantu dalam penyempurnaan Tugas Akhir ini.

6. Seluruh staf pengajar dan pegawai di Departemen Teknik Elektro Fakultas Teknik Universitas Sumatera Utara yang telah mengajar dan mendidik penulis.

7. Teman – teman Ekstensi Teknik Telekomunikasi angkatan 2011 Omri Situmeang, Bevan Sitepu, Agus Pangaribuan, Bang Sony Naibaho dan semua teman buat kebersamaan dalam mengikuti pendidikan. Serta untuk semua senior dan junior Ekstensi Teknik Telekomunikasi USU.

8. Semua pihak yang tidak dapat disebutkan satu persatu oleh penulis, yang selalu membantu dalam menyelesaikan Tugas Akhir ini.

Penulis menyadari bahwa Tugas Akhir ini masih sangat jauh dari sempurna, baik dari segi materi maupun cara penyajiannya. Oleh karena itu, penulis siap menerima saran dan kritik dari pembaca yang sifatnya membangun demi kesempurnaan Tugas Akhir ini. Akhir kata, penulis berharap agar Tugas Akhir ini dapat bermanfaat bagi pembaca dan penulis.

Medan, Juni 2014 Penulis,

NIM. 110422028 Beni Afnora Ganda


(6)

DAFTAR ISI

ABSTRAK ... i

KATA PENGANTAR ... ii

DAFTAR ISI ... iv

DAFTAR GAMBAR ... vi

DAFTAR TABEL ... vii

BAB I PENDAHULUAN ... 1

1.1 Latar Belakang ... 1

1.2 Rumusan Masalah ... 1

1.3 Tujuan Penulisan ... 2

1.4 Batasan Masalah ... 2

1.5 Metode Penulisan ... 2

1.6 Sistematika Penulisan ... 3

BAB II LANDASAN TEORI ... 5

2.1 Sistem Komunikasi Seluler ... 5

2.2 Konsep Seluler ... 5

2.3 Frekuensi Reuse ... 7

2.4 Alokasi Kanal ... 9

2.4.1 Fixed Channel Allocation (FCA) ... 10

2.4.2 Dynamic Channel Allocation (DCA) ... 11

2.5 Masalah Alokasi Kanal ... 12


(7)

BAB III ALGORITMA ANT COLONY DAN PENUGASAN KANAL ... 17

3.1 Umum ... 17

3.2 Penerapan Algoritma Ant Colony ... 19

3.3 Algoritma Ant Colony ... 19

3.4 Ant Colony Algorithm untuk Pengalokasian Kanal Dinamis ... 21

3.5 Pengaturan Dasar Parameter Terbaik yang Ditawarkan oleh Algoritma Ant Colony ... 22

3.5 Rancangan Simulasi Pengalokasian Kanal Dinamik ... 23

BAB IV ANALISA DATA HASIL OPTIMASI ALOKASI KANAL DINAMIK ... 28

4.1 Konfigurasi Jaringan ... 25

4.2 Metode Alokasi Kanal ... 25

4.2.1 FEA (Frequency Exaustive Assignment) ... 25

4.2.2 Algoritma Ant Colony ... 27

4.3 Hasil Alokasi Kanal Untuk Iterasi 1 ... 27

4.4 Perbandingan Kinerja FEA dan Ant Colony Untuk N Iterasi ... 30

4.5 Hasil N Iterasi Untuk Jumlah Kanal yang Berbeda ... 32

BAB V KESIMPULAN DAN SARAN ... 34

5.1 Kesimpulan ... 34

5.2 Saran ... 34

DAFTAR PUSTAKA ... 35

Lampiran 1 ... 36


(8)

DAFTAR GAMBAR

Gambar 2.1 Bentuk sel hexagonal dan lingkaran ... 6

Gambar 2.2 Jarak pengulangan frekuensi ... 7

Gambar 2.3 Frekuensi Reuse denan 3 dan 4 Kluster ... 8

Gambar 2.4 Kaidah Penentuan Nomor Sel ... 9

Gambar 2.5 Diagram blok proses penugasan frekuensi dalam jaringan seluler ... 12

Gambar 2.6 a. Bentuk Layout Sel dan b. Matrik ... 14

Gambar 2.7 Strategi frequency Exhautive Assignment ... 15

Gambar 2.8 Flowchart Struktur Dasar Strategi frequency Exhautive Assignment (FEA) ... 16

Gambar 3.1 Lintasan semut menuju ke sumber makanan ... 18

Gambar 3.2 Jumalh Sel yang Dipilih Pada Kota Medan Secara Umum... 23

Gambar 3.3 Flowchart Struktur Rancangan Simulasi ... 24

Gambar 4.1 Probabilitas Kemunculan Trafik ... 26

Gambar 4.2 Hasil Simulasi Pengalokasian Kanal Dinamik Dengan Metode FEA ... 28

Gambar 4.3 Hasil simulasi Dengan Algoritma Ant Colony ... 29

Gambar 4.4 Perbandingan Metode FEA dan Algoritma Ant Colony ... 31


(9)

DAFTAR TABEL

Tabel 3.1 Penerapan Algoritma Ant Colony ... 19

Tabel 4.1 Distribusi Trafik ... 26

Tabel 4.2 Probabilitas Blocking dengan jumlah kanal 64 ... 30

Tabel Lanjutan 4.2 ... 31

Tabel 4.3 Jumlah Probabilitas Blocking Tiap-Tiap Metode ... 32


(10)

ABSTRAK

Keterbatasan spektrum frekuensi atau kanal menjadi salah satu masalah pada komunikasi seluler pada saat ini. Untuk itu perlu dicari solusi untuk dapat meminimalkan panggilan yang tidak dapat dilayani atau diblok, yaitu dengan melakukan optimasi pengalokasian kanal.

Tugas Akhir ini membahas studi penggunaan algoritma ant colony dalam pengalokasian kanal dinamik pada komunikasi seluler sebagai metode penyelesaiannya. Dengan metode ini diharapkan persentase probailitas blocking

menjadi lebih kecil.

Hasil optimasi menggunakan metode Frequency Exhaustive Assignment

(FEA) dengan jumlah kanal yang tersedia 64 kanal memiliki rata-rata probabilitas

blocking yaitu 20.40 persen, sedangkan hasil optimasi algoritma ant colony

dengan parameter yang sama memiliki probabilitas blocking yaitu 14.40 persen. Ini menunjukan bahwa pengalokasian kanal menggunakan algoritma ant colony

mampu mengurangi probabilitas blocking.

Kata kunci :

Algoritma Ant Colony, Kanal Dinamis, Pengalokasian kanal pada komunikasi seluler


(11)

BAB I PENDAHULUAN

1.1 Latar Belakang

Mobile Stations (MS)mengirim dan menerima sinyal ke dan dari Base Transceiver Station (BTS) menggunakan skema multiple access. Dengan masalah keterbatasan bandwidth, maka sistem komunikasi seluler harus melakukan alokasi kanal sedemikian rupa sehingga dapat memaksimalkan kapasitas transmisi sekaligus mempertahankan kualitas sinyal yang baik

Permasalahannya terletak pada bagaimana mengalokasikan kanal secara tepat agar dapat memaksimalkan kapasitas tanpa mengorbankan kualitas sinyal. Beberapa strategi alokasi kanal diantarannya Fixed Channel Assigment (FCA) dan

Dinamic Channel Assigment (DCA). Dari masalah tersebut diperlukan sebuah algoritma untuk dapat mengoptimalkan pengalokasian kanal dinamis pada sistem komunikasi seluler.

Tugas Akhir ini akan membahas penggunaan Algoritma Ant Colony dalam pengalokasi kanal. Dengan menggunakan Algoritma Ant Colony dalam pengalokasian kanal diharapkan dapat mengoptimalkan alokasi kanal.

1.2 Rumusan Masalah

Dari latar belakang di atas, maka dapat dirumuskan beberapa permasalahan, yaitu :


(12)

b. Bagaimana mengimplementasikan algoritma ant colony dalam pengalokasian kanal pada sistem komunikasi seluler ?

c. Bagaimana kinerja algoritma ant colony dalam meningkatkan kanal pada sistem komunikasi seluler ?

1.3 Tujuan Penulisan

Tujuan dari penulisan Tugas Akhir ini adalah untuk dapat mengalokasian kanal secara dinamis pada komunikasi seluler dengan menggunakan algoritma ant colony.

1.4 Batasan Masalah

Agar pembahasan lebih terarah maka dibuat batasan sebagai berikut : a. Menggunakan skema alokasi kanal dinamik.

b. Tidak memasukkan trafikhandoff.

c. Optimasi dilakukan pada teknologi Global System for Mobile (GSM). d. Hanya membahas pemanfaatan kanal sebagai kinerja utama algoritma.

1.5 Metodologi Penulisan

Metodologi penulisan yang dilakukan pada penulisan Tugas Akhir ini adalah :

1. Studi literatur

Berupa studi kepustakaan dan kajian dari buku-buku dan tulisan-tulisan lain yang terkait serta dari layanan internet berupa jurnal-jurnal penelitian.


(13)

2. Membuat pemodelan

Merupakan pembuatan pemodelan dari gambaran umum optimasi pengalokasian kanal dinamik.

3. Menghitung pemanfaatan pemanfaatan kanal

Merupakan analisis dari hasil yang diperoleh terhadap untilisasi pemanfaatan kanal. Dengan tahap-tahap sebagai berikut :

a. Menetapkan model

b. Menetapkan asumsi-asumsi (layout sel, jumlah sel, jumlah kanal, dll) c. Membuat layout sel

d. Membuat program pemodelan e. Mendapatkan hasil kinerja model f. Melakukan validasi

g. Melakukan analisa 4. Menarik kesimpulan

Menarik kesimpulan dari hasil analisis yang telah dilakukan

1.6 Sistematika Penulisan

Penulisan Tugas Akhir ini disajikan dengan sistematika penulisan sebagai berikut :

BAB I PENDAHULUAN

Bab ini menguraikan tentang latar belakang masalah, perumusan masalah, tujuan penulisan, batasan masalah, metodologi penulisan, serta sistematika penulisan.


(14)

BAB II SISTEM KOMUNIKASI SELULER

Bab ini berisi teori tentang sistem komunikasi seluler secara umum khususnya GSM dan penjelasan tentang masalah penugasan kanal.

BAB III ALGORITMA ANT COLONY DAN ALOKASI KANAL

Bab ini berisi teori tentang algoritma ant colony dan implementasi algoritma ant colony pada masalah alokasi kanal.

BAB IV ANALISA DATA HASIL OPTIMASI ALOKASI KANAL DINAMIK

Bab ini berisi tentang analisa data hasil optimasi dengan membandingkan metode FEA dengan algoritma ant colony.

BAB V KESIMPULAN DAN SARAN

Berisi kesimpulan dan saran dari hasil pembahasan-pembahasan sebelumnya.


(15)

BAB II

LANDASAN TEORI

2.1 Sistem Komunikasi Seluler

Global System for Mobile communication (GSM) adalah sebuah standar global untuk komunikasi bergerak digital. GSM adalah nama dari sebuah group standarisasi yang dibentuk di Eropa tahun 1982 untuk menciptakan sebuah standar bersama telepon bergerak seluler di Eropa yang beroperasi pada daerah frekuensi 900-1800 MHz. GSM merupakan teknologi infrasturktur untuk pelayanan telepon selular digital dimana bekerja berdasarkan Time Division Multiple Access (TDMA) dan Frequency Division Multiple Access (FDMA). Jaringan Global System for Mobile Communication (GSM) adalah jaringan telekomunikasi seluler yang mempunyai arsitektur yang mengikuti standar

European Telecommunication Standard Institute ETSI GSM 900 / GSM 1800. Arsitektur jaringan GSM tersebut terdiri atas tiga subsistem yaitu Base Station Subsystem (BSS), Network Switching Subsystem (NSS) dan Operation Subsystem

(OSS) serta perangkat yang digunakan oleh pelanggan untuk melakukan pembicaraan yang disebut Mobile System (MS).

2.2 Konsep Seluler

Hingga saat ini dapat dikatakan sebagai penyelesaian yang terbaik untuk mengatasi masalah terbatasnya sepektrum frekuensi dan kapasitas pelanggan. Pada konsep ini ditawarkan kapasitas yang sangat tinggi dalam alokasi sepektrum yang terbatas tanpa perubahan teknologi yang amat besar. Konsep dasarnya adalah


(16)

mengganti pengirim tunggal berdaya tinggi dengan beberapa pengirim berdaya lebih rendah yang masing-masing melayani daerah cakupan yang lebih kecil. Daerah pelayanan yang lebih kecil ini disebut sel. Pada tiap-tiap sel ini dialokasikan sejumlah kecil kanal dari keseluruhan kanal yang ada, sehingga keseluruhan kanal yang dimiliki sistem tersebut terbagi-bagi dalam sel-sel yang ada. Interferensi antar setasiun basis dapat diminimalkan jika setasiun basis yang berdekatan menggunakan grup kanal yang berbeda. Dengan memisahkan setasiun-setasiun basis dan grup-grup kanal dengan cara yang sistematis, kanal-kanal didistribusikan dan digunakan berulang kali. Dalam hal ini interferensi antar setasiun co-channel harus tetap rendah. Setasiun co-channel adalah setasiun-setasiun yang menggunakan frekuensi yang sama.

Bentuk jaringan sistem seluler berkaitan dengan luas cakupan daerah pelayanan. Bentuk sel yang terdapat pada sistem komunikasi bergerak seluler digambarkan dengan bentuk hexagonal dan lingkaran. Bentuk sel yang hexagonal lebih mewakili untuk dapat mencakup keseluruhan area. Berikut bentuk sel hexagonal dan lingkaran ditunjukan pada Gambar 2.1.


(17)

R

R

2.3 Frekuensi Reuse

Penggunaan frekuensi yang sama pada sel yang berbeda pada waktu yang bersamaan oleh beberapa pengguna merupakan inti dari komunikasi seluler. Pada konsep frequency reuse, suatu kanal frekuensi tertentu dapat melayani beberapa panggilan pada waktu yang bersamaan. Maka dapat dikatakan penggunaan sepektrum frekuensi yang efisien dapat dicapai. Semua frekuensi yang tersedia dapat digunakan oleh tiap-tiap sel, sehingga dapat mencapai kapasitas jumlah pemakai yang besar menggunakan pita frekuensi yang efektif.

Pada frequency reuse, penggunaan kanal tidak tergantung pada frequency carrier yang sama untuk beberapa wilayah cakupan. Pada Gambar 2.2 [1] dapat dilihat penggunaan ulang kanal frekuensi. Pada sel a yang menggunakan kanal radio f1 mempunyai radius R dapat digunakan ulang pada sel yang berbeda dengan jangkauan yang sama pada jarak D dari sel sebelumnya.

Sel a Sel b

Gambar 2.2 Jarak pengulangan frekuensi

Sedangkan jarak pemisah relatif terhadap radius sel dinyatakan dengan D/R. Dapat dilihat pada persamaan 2.1 [1]

(� �⁄ )�= �� (2.1) Dimana : D = jarak pengulangan (reuse distance)


(18)

R = jari–jari terjauh sel hexagonal (jarak terjauh dari pusat sel ke ujung sel)

K = cluster

Konsep frequency reuse dapat meningkatkan efisiensi pada penggunaan spektrum frekuensi, akan tetapi harus diikuti dengan pola tertentu dan teratur agar tidak terjadi interferensi kanal.

Cluster adalah sekelomkpok sel yang masing-masing selnya memiliki 1 set frekuensi yang berbeda dengan sel yang lain. Ukuran cluster (dilambangkan = K, sering juga dilambangkan = N) adalah jumlah sel yang terdapat dalam 1 cluster. Ukuran cluster tergantung dari syarat C/I (Carrier to Interference) sistem seluler. Beberapa cluster dapat disusun atau diulang-ulang menjadi suatu kelompok cluster dalam suatu sistem. Gambar 2.3 adalah gambar cluster 3 dan 4 dimana K=3 maka dalam satu cluster ada terdapat 3 sel demikian dengan K=4 tedapat 4 sel yang berbeda dalam satu cluster [1].

Gambar 2.3 Frekuensi Reuse dengan 3 dan 4 Kluster

Kaidah penentuan nomor sel atau kaidah parameter dengan cara lalui sejauh i sel dari sel referensi sepanjang rantai heksagonalnya (garis lurus yang menghubungkan dua pusat sel), lalu berputar 600 berlawanan dengan arah jarum


(19)

jam, kemudian lalui sepanjang j sel pada arah tersebut. Pada posisi akhir disitulah letak frekuensi reusenya. Gambar 2.4 adalah cara penentuan kaidah penomoran sel.

Gambar 2.4 Kaidah Penentuan Nomor Sel Dimana ukuran kluster dihitung dengan :

�= ��+��+�.� (2.2) Untuk : i = 1 dan j = 1  K = 3

i = 1 dan j = 2  K = 7 i = 0 dan j = 2  K = 4 i = 1 dan j =0  K = 4

2.4 Alokasi Kanal

Pada teknologi seluler perangkat telepon bergerak hanya dapat mengirimkan sinyal menuju base station melalui kanal dengan menggunakan salah satu dari skema multiple access. Karena adanya keterbatasan kanal maka sistem komunikasi seluler harus melakukan alokasi kanal. Ada beberapa strategi alokasi kanal diantarannya FCA (Fixed Channel Allocation) atau setrategi dimana jumlah kanal telah ditetapkan secara permanen dan DCA (Dynamic Channel


(20)

Allocation) atau jumlah kanal diberikan berdasarkan permintaan jumlah trafik. Strategi yang akan digunakan dalam Tugas Akhir ini adalah DCA (Dinamic Channel Allocation) yaitu sebagai berikut [2]:

1. Setiap sel yang membutuhkan kanal akan memintannya pada Mobile Switcing Center (MSC).

2. Kanal dialokasikan pada Base Transceiver Station (BTS) yang meminta, dengan memperhatikan probabilitas blocking, frequensi reuse dan faktor biaya.

3. Probabilitas blocking menurun dan kapasitas trunking meningkat.

2.4.1 Fixed Channel Allocation (FCA)

Merupakan teknik pengalokasisn kanal secara tetap, pada setiap sel dialokasikan kanal secara tetap. Karena setiap sel dialokasikan secara tetap maka dalam sistem ini diperlukan management kanal yang tetap. Bila seluruh kanal terduduki maka sel akan diblok dan kadang digunakan setrategi peminjaman kanal dari sel tetangga.

FCA memiliki kelebihan dibandingkan alokasi dinamis yaitu relatif lebih cepat untuk menangani panggilan yang terjadi dalam sel, lebih murah instalasi dan

investasi awal karena tidak dibutuhkan komputer switching yang super cepat untuk pengambilan keputusan saat adanya alokasi kanal baru.

Kelemahan dari FCA adalah:

1. Butuh perencanaan alokasi kanal yang sangat matang saat instalasi 2. Butuh pengecekan berkala untuk melihat optimasi pembagian kanal


(21)

3. Operator harus sering mencek perkembangan pelanggan dalam tiap area, perkembangan pelanggan harus diikuti tersediamya kanal di area tersebut, sehingga harus meng-aranggement ulang pola kanal frekuensi.Operator harus mencek keadaan di lapangan apakah ada perkembangan beban trafik atau ada daerah yang banyak pelanggannya tetapi tidak tercover ataupun buruk performasinya.

Syarat-syarat fixed channel allocation (FCA) yaitu: a. Setiap sel memiliki kelompok kanal yang tetap b. Bila seluruh kanal terduduki, maka sel akan “block”.

c. Kadang digunakan setrategi “peminjaman” kanal dari sel tetangga.

2.4.2 Dynamic Channel Allocation (DCA)

Merupakan teknik dimana kanal yang dialokasikan secara tetap di dalam sel. Dengan demikian semua kanal yang dialokasikan dapat digunakan dalam seluruh sel. Pengaturan kanal dilakukan secara otomatis oleh pengontrol. Pada teknik DCA pemberian kanal dilakukan berdasarkan permintaan.

DCA merupakan salah satu setaregi untuk mengatasi penambahan beban

trafik dalam sistem seluler. Konsep dasar dari strategi DCA adalah bila beban

trafik tidak merata dalam tiap sel maka pemberian kanal frekuensi pada tiap sel akan sering tidak terpakai dalam sel yang kurang padat, dan terjadi bloking pada sel dengan beban trafik padat. Teknik DCA dapat mengalokasi kanal frekuensi bila hanya beban trafik meningkat dan melepaskan kanal frekuensi bila beban

trafik menurun. Beberapa teknik DCA tersebut adalah sebagai berikut[1]: 1. First Available (FA)


(22)

2. Nearest Neighbour (NN) 3. Hybrid Assigment Strategi

4. Borrowing with Channel Ordering Strategi (BCO) 5. Borrowing with Directional ChanneL Locking

Strategi alokasi kanal DCA inilah yang diangkat dalam Tugas Akhir ini, dimana trafik pada setiap sel berubah-ubah dalam kurun waktu tertentu. Diagram blok di bawah ini menggambarkan proses frequency assignment in celuler network

[Kotrotsos, 2001] ditunjukan pada Gambar 2.5.

Input Proses Output

Gambar 2.5 Diagram blok proses penugasan frekuensi dalam jaringan seluler

2.5 Masalah Alokasi Kanal

Tujuan penugasan kanal adalah untuk menempatkan beberapa resource

yang tepat. Dengan menempatkan beberapa kanal pada setiap sel tanpa melanggar batasan yang ditetapkan, maka dapat dinyatakan pada persamaan 2.3 [3].

�= ��+���� (2.3)

Layout Sel

Kendala Interferensi

Permintaan Kanal per Sel

Kanal yang Tersedia

Proses Optimasi Ant

Colony


(23)

Dimana :∆f = kanal bandwidth

f0 = frekuensi terendah dari pita frekuensi yang diberikan

n = bilangan bulat (n>0)

F = bervariasi dari F1 (n=1), F2 (n=2), F3(n=3),…,Fmak(n=maksimum) Untuk memenuhi persyaratan dalam penugasan kanal, kita harus mencari nilai terendah dari Fmak, atau rentang minimum sehingga kanal yang dialokasikan pada sel akan memenuhi trafik dan kualitas layanan. Kualitas layanan akan puas jika semua kendala interferensi diminimalkan.

Kendala kompatibilitas elektromagnetik dalam jaringan n cell diwakili oleh kompatibilitas matrik C, yang merupakan n x n matrik simetris. Nilai dari setiap elemen cij nondiagonal dari matrik kompabilitas c merupakan co-channel dan saluran kendala saluran yang berdekatan yang berarti pemisah jarak frekuensi minimum antar frekuensi ditugaskan untuk sel i dan sel j. Ada tiga kendala kompabilitas elektromagnetik (EMC) dengan 3 jenis gangguan, yaitu [3]:

a. Kendala Co-channel (CCC)cij - nilai = 0

yang mana kanal yang sama tidak dapat ditugaskan secara bersamaan pada sel yang berada dalam jarak yang ditetapkan secara bersamaan. b. Kendala Adjacent Channel (ACC) cij - nilai = 2

dimana kanal yang berdekatan tidak boleh ditugaskan ke sel yang berdekatan secara bersamaan.

c. Kendala Co-site (CSC)cii – nilai = α

dimana kanal setiap pasang kanal yang ditugaskan ke sel harus lebih

besar dari ambang batas minimum pemisah α. Nilai α merupakan nilai


(24)

setandar komunikasi yang digunakan. Pada umumnya nilai α dimulai dengan 5 dan menyatakan jarak antar kanal dalam satu sel.

Dari ketiga hal tersebut dapat dihitung jumlah kanal minimun yang dapat disediakan untuk penugasan kanal dengan rumus 2.4 [3]:

��������������������������= (���(�− �) + �)(2.4) Dimana : cii = nilai maksimum CSC pada matrik C

di = nilai maksimum demand (kanal tertinggi)

2.6 Frequency Exhaustive Assignment

Merupakan strategi penugasan kanal pada tiap-tiap sel dengan tetap memperhatikan aturan kendala kompabilitas elektromagnetik (EMC). Kendala co-site yaitu tiap kanal pada sel yang sama harus mempunyai rentang minimum yaitu 5, untuk kendala berdekatan sel rentang minimum 2 kanal, dan untuk kendala co-channel renang minimum ≥ 0. Ilustrasi berikut ini menunjukan strategi Frequency Exhaustive Assignment (FEA) ditunjuukan pada Gambar 2.6 [4].

a. Bentuk Layout Sel b. Matrik

Gambar

2.6 a. Bentuk Layout Sel dan b. Matrik

Matrik D adalah matrik call of demand, yaitu jumlah panggilan yang ada pada setial sel. Dari ilustrasi di atas dapat diperoleh jumlah kanal/frekuensi


(25)

minimum yang di butuhkan dengan menghitung persamaan (2.4) dengan melihat matrik demand dimana cii = 5, di = 3. Maka dapat dihitung jumlah kanal minimum, 5 (3-1) + 1 = 11 kanal. Gambar 2.7 adalah cara penentuan letak kanal pada tiap-tiap sel.

c44 = 5 c44 = 5 c43 = 3

c42 = 2 c24 = 3

sel

kanal/frekuensi

Gambar 2.7 Strategi Fequency Exhaustive Assignment

Untuk menugaskan kanal pada Gambar 2.7 langkah pertama adalah terlebih dahulu perlu dilihat pola layout sel bersamaan dengan memperhatikan kendala Electromagnetic Compabily (EMC) yaitu CCC, ACC, dan CSC. Alokasikan/tempatkan deman D terbesar yang ada. Pada ilustrasi Gambar 2.6 dimand D terbesar adalah 3 yaitu pada sel ke 4 dengan jarak antara cosite (CCC) adalah 5 yaitu menempati kanal (f1, f6, dan f11). Kemudian tempatkan call of dimand D berikutnya yaitu 1 pada sel ke 3 yang menempati kanal (f4). Selanjutnya pada demand yang sama yaitu 1 untuk sel 2 dan demand 1 untuk sel 1 yang menempati kanal (f3) untuk sel 2 dan kanal (f6) untuk sel 1[2].

Berikut ini flowchart struktur dasar untuk setrategi Frequency Exhaustive Assignment (FEA) ditunjukan pada Gambar 2.8[2].


(26)

Gambar 2.8Flowchart Struktur Dasar Strategi Frequency Exhaustive Assignment

(FEA)

Urutan Panggilan/Call

Menentukan Panggilan Pertama untuk Kanal “1”

Apakah Semua Panggilan Sudah

Ditempatkan ?

Memilih Panggilan Berikutnya

Memilih dan Menempatkan Sebuah

Kanal Mulai

Selesai

Tidak


(27)

BAB III

ALGORITMA ANT COLONY DAN ALOKASI KANAL

3.1 Umum

Algoritma ant colony secara meluas dikembangkan oleh Macro Dorigo, (1996), merupakan teknik probilitas untuk menyelesaikan masalah optimasi. Semut adalah serangga sosial, yakni serangga yang hidup secara koloni atau berkelompok dan mempunyai tingkah laku yang khas untuk lebih mempertahankan hidup koloni secara keseluruhan dari pada hidup sebagai individu. Sebuah tingkah laku penting dan menarik dari koloni semut adalah cara mereka mencari makanan, khususnya bagaimana semut dapat menemukan jalan yang paling singkat dari sarang mereka ke tempat sumber-sumber makanan.

Semut berjalan dari sumber-sumber makanan ke sarang mereka atau sebaliknya, semut meninggalkan sebuat zat di atas tanah yang disebut pheromone,

membentuk jalur pheromone pada jalan mereka. Semut dapat mencium bau

pheromone dan cenderung untuk memilih jalan yang ditandai oleh konsentrasi

pheromone yang tinggi. Jalur pheromone memungkinkan semut untuk menemukan jalan ketempat sumber makanan atau pulang ke sarang. Selain itu, jalur ini dapat digunakan oleh semut lain untuk menemukan lokasi sumber makanan yang ditemukan oleh semutnya. Hal ini dikemukakan bahwa tingkah laku untuk mengikuti jalur pheromone ini dapat memunculkan jalan yang paling singkat, yakni jika ada jalan dari sarang ke lokasi sumber makanan, sebuah koloni semut mungkin dapat memanfaatkan jalur pheromone yang ditinggalkan oleh


(28)

beberapa ekor semut untuk menemukan jalan yang paling singkat ke lokasi sumber makanan, kemudian pulang ke sarang.

Gambar 3.1 menunjukan contoh cara kerja algoritma ant colony. Pada algoritma ant colony , setiap semut ditempatkan di semua titik (dalam hal ini titik-titik yang dikunjungi) yang kemudian akan bergerak mengunjungi seluruh titik-titik. Setiap semut akan membuat jalur masing-masing sampai ke tempat tujuan yang telah ditentukan. Jika sudah mencapai tujuan ini, maka semut telah meyelesaikan sebuah siklus (tour). Solusi akhir adalah menemukan jalur terpendek yang dihasilkan oleh pencarian semut-semut tersebut. Gambar 3.1 adalah ilustrasi algoritma ant colony, titika A adalah tempat awal koloni (sarang) dan titik B adalah tujuan koloni (sumber makanan). Jalur 1 (garis bewarna biru) merupakan lintasan yang ditempuh oleh semut 1. Jalur 2 (garis bewarna hitam) adalah lintasan yang ditempuh oleh semut 2. Jalur optimal (garis bewarna merah) adalah jalur yang dilewati semut setelah beberapa iterasi atau jalur ini merupakan jalur terpendek dari keseluruhan jalur yang ada pada ilustrasi Gambar 3.1[4].

A

B

Jalur 1

Jalur 2 Jalur Optimal


(29)

3.2 Penerapan Algoritma Ant Colony

Penerapan algortima ant colony berbeda untuk aplikasi yang berbeda. Sebagai contoh aplikasi Pengalokasian Kanal Dinamis (PKD) dengan Travelling Salesmen Problem (TSP). Penerapan solusi algoritma ant colony ditunjukan pada Tabel 3.2[6].

Table 3.2 Contoh Penerapan algortima ant colony PKD danTSP

Algoritma Algoritma Ant Colony untuk PKD Algoritma Ant Colony untuk TSP

Solusi untuk menemukan

Permintaan kanal. Kota tujuan. Pemilihan

rumus

probabilitas ���(�)

= �.���(�) + (1− �).���

��� [

�� α.τ��(t) + (1−α).η��]

���(�)

= [τ�� (�)]

. [ ��]�

��� [

�� [τ��(�)]

. [�� ]]

Dimana α dan β adalah parameter

yang menyatakan tingkat kualitas jejak.

Trail Level

τij(t)

Menyatakan intensitas dari pheromone

dalam sel i ke j dalam waktu t. Dimana

Menyatakan intensitas dari pheromone

dalam kota i ke j dalam waktu t. dimana

Visibility ηij Menyatakan rentang minimum frekuensi

didefenisikan dalam matrik C

Menyatakan jarak dari kota i ke j Mekanisme

Trail Update τij (t + n) = ρ . τij (t) + ∆τij ���� = �0. [1−

����� − ��

�̅ − �� ]

di mana z adalah rata-rata dari k solusi terakhir dan LB adalah batas bawah untuk masalah biaya solusi optimal. menghindari stagnasi

τij (t + n) = ρ . τij (t) + ∆τijk ∆���= ∑�=1∆���k, Δτijk=

Q L k

dimana Q adalah jumlah feromon, dan Lk adalah panjang tur k-th semut.

3.3 Algoritma Ant Colony

Secara umum algortima ant colony mempunyai bagian-bagian dasar yaitu, Langkah 1 Inialisasi adalah dimana pada tahap ini berisi input yang berupa


(30)

parameter algoritma ant colony dan parameter yang mendukung dari setiap kasus yang akan di temukan solusinya. Langkah 2 Membangun Solusi dengan menugaskan setiap k semut artinya adalah ada sebanyak k semut yang dimiliki oleh algoritma ant colony. Pada tahap ini solusi awal dicari dan kemudian ditemukan, pada tahap ini juga terdapat rumusan probabilitas yang dimiliki oleh algortima ant colony sebagai penentu langkah untuk menemukan solusi awal. Langkah 3 Update Jejak ditahap ini solusi yang paling terbaik akan ditemukan dengan membandingkan solusi awal dan solusi berikutnya, dengan menggunakan rumusan yang dimiliki oleh algortima ant colony untuk memperbaharui jejak langkah berikutnya. Dan yang terakhir adalah Langkah 4 Kondisi Penghentian ditahap ini adalah tahap untuk mengakhiri langkah menemukan solusi, dimana bila solusi yang ditemukan belum pada batas akhir yang terbaik, maka tahap ini akan mencari solusi terbaik dengan mengulang kembali pada Langkah 2 Membangun Solusi. Lankah 4 akan mengakhiri pencarian solusi jika tidak lagi ditemukan solusi yang paling terbaik dari semua solusi yang ada. Tahap-tahapan algortima ant colony adalah sebagai berikut [6].

Langkah 1. Inialisasi

Inialisasiτij

Langkah 2. Membangun Solusi k Semut melakukan pencarian Ulangi

Menghitung ηij

Memilih pergerakan berikutnya, diberikan oleh persamaan probabilitas 3.1

Pijk(t) = [τij (t)]

α.[η

ij]β

∑ [

lϵNlk [τij(t)]α.[ηij ]β


(31)

Menambahkan langkah yang dipilih ke daftar tabu semut k Sampai k semut menemukan solusinya

Menjadikan solusi awal untuk langkah berikutnya akhir

Langkah 3. (Update Jejak) Untuk pergerakan semut (ij) do

Menghitung Δτij

Perbaharui jejak dengan persamaan 3.2 dan 3.3 τij (t + n) = ρ . τij (t) + ∆τij (3.2)

dimana

���� = �0. [1−

�����−��

�̅−�� ] (3.3) Langkah 4. Kondisi Penghentian

Jika iterasi belum terpenuhi kembali ke langkah 2, jika sudah maka optimasi selesai.

3.4 Ant Colony Algorithm untuk Pengalokasian Kanal Dinamis

Dalam meyelesaikan pengalokasian kanal dinammis dengan algoritma ant colony maka dilakukan langkah – langkah sebagai berikut [4]:

Langkah 1 : Inialisasi

1. Masukan compatibility matrik C dan demand vector D 2. Membangun sebuah daftar nomor panggilan.

3. Inialisasi parameter (m : jumlah semut, α : importance of trail vs. visibility, ρ :

sisa koefisient dari pheromone, Q : jumlah dari pheromone.). Langkah 2 : Membangun Solusi


(32)

1. Untuk setiap k semut, langkah pencarian tunggal dimulai dengan pemilihan acak dari panggilan pertama, katakanlah s1, dari daftar panggilan L0, dan menugaskan 1 frekuensi ke panggilan ini.

2. Membuat daftar panggilang baru yang tersedia Li.

3. Memilih jumlah panggilan berikutnya s2 dari L1 untuk pindah ke, probabilitas pemiliahan jalur yang akan dipilih, diberikan oleh Persamaan 3.1.

4. Untuk semua frekuensi ( diurutkan dalam urutan dari yang meningkat),terapkan strategi Frequency Exhaustive Assignment (FEA) (jika penugasan ini tidak menyebabkan interferensi dengan penugasan sebelumnya dengan memeriksa C. 5. Sampai semut k telah meyelesaikan solusinya.

Langkah 3 : Update Jejak

1. Untuk setiap langkah semut (i, j) menghitung ∆ τ ij , i.e., jumlah kontribusi dari semua semut yang begerak (i, j) untuk membangun solusi.

2. Update nilai jejak dengan cara memakai aturan update jejak yaitu menggunakan persamaan 3.2 dan 3.3.

Langkah 4 : Penghentian

1. Algoritma berakhir ketika jumlah tertentu iterasi tercapai. Jika jumlah iterasi tidak tercapai, maka lanjutkan ke langkah kedua.

3.5 Pengaturan Dasar Parameter Terbaik yang Ditawarkan oleh Algoritma Ant Colony

Algortima ant colony mempunyai parameter untuk menemukan solusi. Untuk tugas akhir ini, solusi yang dicari adalah untuk menghasilkan


(33)

probabilitasblocking yang terkecil, sehingga parameter probabilitas blocking

digunakan sebagai parameter penemu solusi.

3.6 Rancangan Simulasi Pengalokasian Kanal Dinamik

Simulasi direalisasikan menggunakan bahasa pemograman berorientasi objek java. Adapun rancangan simulasi adalah sebagai berikut :

- Layout sel adalah tetap untuk setiap iterasi dengan mengacu Gambar 3.2. Gambar 3.2 adalah rancangan layout sel untuk kota Medan, Sumatera Utara.

Gambar 3.2 Jumlah Sel yang Dipilih Pada Kota Medan Secara Umum Gambar 3.2 adalah asumsi penulis untuk pembagian jumlah sel. Kota Medan diasumsikan terbagi menjadi 17 sel.

- Jumlah kanal yang dibutuhkan tiap sel pada setiap iterasi dibangkitkan secara acak


(34)

- Trafik yang dibangkitkan untuk setiap sel adalah acak yang dipilih dari salah satu model trafik video, voice dan data

- Simulasi akan menghitung parameter algoritma dan probabilitas blocking

disetiap iterasi.

Gambar 3.3 menunjukan simulasi, inialisasi parameter global meliputi jumlah sel, jumlah pelanggan dan banyak kanal dilakukan sebelum proses simulasi. Selanjutnya pada setiap iterasi, metode FEA dieksekusi untuk setiap kemungkinan urutan alokasi. Solusi terbaik dipilih berdasarkan nilai probabilitas

blocking yang terkecil. Berikut ini flowchart struktur dasar rancangan simulasi yang akan dibuat ditunjukan pada Gambar 3.3. Program alokasi kanal untuk FEA dan ant colony dapat dilihat pada lampiran 1 dan lampiran 2.

Gambar 3.3Flowchart Struktur Rancangan Simulasi Mulai

Inialisasi

FEA

Hitung Parameter Pheromone

Semua Solusi Semut Sudah

Dicoba ?

Cari Solusi Terbaik

Hitung Parameter Solusi

Iterasi Selesai ?

Laporkan

Selesai Ya

Tidak

Tidak


(35)

BAB IV

ANALISA DATA HASIL OPTIMASI ALOKASI KANAL DINAMIK

4.1 Konfigurasi Jaringan

Jaringan diasumsikan berbentuk kumpulan sel hexagonal, seperti pada

layout Gambar 3.2 terhubung ke Mobile Switching Center (MSC). Alokasi kanal dilakukan pada MSC.

Untuk mengetahui sejauh apa pengaruh metode yang diuji terhadap probabilitas blocking panggilan. Besarnya kanal akan diuji dari kapasitas terkecil hingga kapasitas yang cukup besar. Dalam hal ini jumlah kanal yang tersedia untuk diuji adalah 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60, 64 kanal. Kanal diasumsikan sebagai kombinasi frekuensi, time slot, uplink, dan downlink.

4.2 Metode Alokasi Kanal

Pada Tugas Akhir ini terdapat dua metode alokasi kanal yaitu metode FEA dan Algoritma Ant Colony. Dari kedua metode tersebut kemudian dibandingkan untuk melihat perbandingan kinerja masing-masing metode alokasi frekuensi.

4.2.1 FEA (Frequency Exhaustive Assignment)

Metode alokasi frekuensi FEA memiliki pola sebagai berikut :

- Inialisasi trafik dalam hal ini trafik diasumsikan terdistribusi diskrit dengan nilai distribusi ditunjukkan pada Tabel 4.1.


(36)

Tabel 4.1 Distribusi Trafik Data Probabilitas

1 1/21

2 1/21

3 1/21

4 1/21

5 2/21

6 2/21

7 1/21

9 1/21

10 2/21

11 1/21

12 1/21

13 1/21

15 1/21

16 1/21

17 1/21

19 1/21

20 1/21

22 1/21

23 1/21

Asumsi distribusi diskrit pada Tabel 4.1 didesain berdasarkan jumlah trafik tipikal.Gambar 4.1 menunjukkan distribusi trafik dalam diagram batang.

Gambar 4.1 Probabilitas Kemunculan Trafik - Aturan Frekuensi Reuse

0 1 2

1 2 3 4 5 6 7 9 10 11 15 16 17 18 20 22 23

Peluang Kemunculan


(37)

Inti dari konsep selular adalah frequency reuse. Walaupun ada ratusan kanal yang tersedia, bila setiap frekuensi hanya digunakan oleh satu sel, maka total kapasitas sistem akan sama dengan total jumlah kanal. Dalam penggunaan kembali kanal frekuensi diusahakan agar daya pemancar masing-masing Base Station (BS) tidak terlalu besar, hal ini untuk menghindari adanya interferensi akibat pemakaian kanal yang sama Interferensi Co-Channel.

Jarak minimum frequency reuse yang diperbolehkan, ditentukan oleh beberapa faktor, yaitu jumlah sel yang melakukan reuse frekuensi, bentuk geografi suatu wilayah, tinggi antena dan besarnya daya pemancar masing-masing base station. Gambar 4.2 menunjukan sususan ulang frekuensi untuk 17 sel. Pada tugas akhir ini penulis member nilai untuk Co-channel (CCC) dengan nilai 0. Untuk Adjecent Channel (ACC) dengan nilai 2 dan Co-site dengan nilai 6.

- Alokasi kanal dimulai dari dari sel dengan jumlah trafik tebesar.

4.2.2 Algoritma Ant Colony

Metode ant colony menggunakan pendekatan FEA tetapi dengan mengubah urutan sel yang akan dialokasikan. Nilai pheromone ditentukam oleh probabilitas blocking terkecil. Nilai probabilitas blocking terkecil adalah menjadi solusi paling terbaik dari algoritma ant colony.

4.3 Hasil Alokasi Kanal Untuk Iterasi 1

Pada bagian ini itersi dilakukan sebanyak 1 kali dan jumlah kanal tersedia sebanyak 64 kanal. Dengan bilangan acak dibangkitkan menggunakan kode :


(38)

cell_user [i] = new Allocation ();

Random r = new Random (); //Membangkitkan nilai pseudorandom int index = r.nextInt(16); //Mengacak index sel

cell_user[i].setTraffic(traffics [index]); //Alokasi trafik acak

Metode FEA, dimana pada saat trafik dibangkitkan nilai terbesar pada sel 16 yaitu 20 kanal menjadi titik awal pengalokasiaan kanal. Seperti dapat dilihat pada Gambar 4.2.

Gambar 4.2 Hasil Simulasi Pengalokasian Kanal Dinamik Dengan Metode FEA

Sel adalah tempat dimana kanal akan dialokasian, jumlah kanal adalah banyaknya jumlah permintaan kanal pada tiap sel. Nomor kanal adalah nomor-nomor kanal yang diduduki oleh tiap sel. Blocking rata adalah jumlah rata-rata dari seluruh probabilitas blocking yang dimiliki oleh ke 17 sel.


(39)

Algortima ant colony mencoba semua sel sebagai titik awal pengalokasian kanal. Sehingga diperoleh banyak nilai FEA. FEA dengan nilai probabilitas

blocking terkecil dipilih sebagai solusi seperti dapat ditunjukkan pada Gambar 4.3

Gambar 4.3 Hasil Simulasi Dengan Algoritma Ant Colony

Sel awal diasumsikan adalah sel dengan jumlah kanal paling besar. Dari Gambar 4.3, sel 4 ditugaskan sebagai sel awal disebabkan memiliki jumlah kanal 20 yaitu jumlah kanal paling besar dari seluruh sel. Nomor kanal adalah nomor-nomor kanal yang dipilih untuk menghindari interferensi sesama sel. Jika ada sel yang tidak dapat menduduki nomor kanal sebagaian atau seluruhnya maka akan di hitung persen probabilitas blokingnya terhadap kanal yang tersedia.


(40)

4.4 Perbandingan Kinerja FEA dan Ant Colony Untuk N Iterasi

Iterasi dilakukan sebanyak 100 kali dan jumlah kanal yang tersedia sebanyak 64 kanal, kemudian tiap iterasi pada kedua metodedibandingkan untuk melihat perbedaan persentase probabilitas blocking. Tabel 4.2 adalah hasil persen probabilitas blocking ditiap iterasinya.

Tabel 4.2 Probabilitas blockingdengan jumlah kanal 64

Iterasi FEA Ant Colony Iterasi FEA Ant Colony 0 7.37024221 21.33986928 30 9.509803922 5.294117647 1 15.2287582 8.431372549 31 39.9231065 26.61860823 2 14.8158051 6.503267974 32 32.87581699 19.43291042 3 7.35294118 18.23529412 33 27.59900038 13.32179931 4 37.9277201 18.5467128 34 11.16301423 16.99346405 5 21.5686275 20.44405998 35 29.83695082 9.509803922 6 10.7208766 15.94963476 36 17.40292195 11.73394848 7 37.0226486 7.581699346 37 21.8627451 21.39334522 8 25.1752822 17.10880431 38 28.21449792 16.6839677 9 6.56862745 18.88539373 39 16.14379085 27.63168012 10 20.9714795 9.657823914 40 12.02806613 19.93656286 11 33.4724407 3.137254902 41 13.35063437 9.411764706 12 10.2287582 9.657823914 42 18.28527489 14.40826955 13 7.48366013 10.31141869 43 12.61630142 10.83079934 14 18.9869281 8.906189927 44 25.04998078 18.1218762 15 24.9673203 6.291810842 45 26.56862745 11.04225647 16 15.8016148 17.16070742 46 32.78966132 17.53364091 17 30.4094579 5.784313725 47 13.01038062 12.63168012 18 20.2906225 10.31141869 48 21.07843137 23.05651672 19 13.9542484 10.86697424 49 35.07304883 4.934640523 20 12.3702422 13.48135333 50 18.49865436 15.60396351 21 17.5836217 15.05033029 51 20.19607843 18.8892384 22 20.7208766 22.50480584 52 24.83660131 15.32871972 23 16.8800461 17.95306001 53 6.291810842 8.958093041 24 12.5201845 16.73202614 54 9.657823914 4.215686275 25 19.3156478 13.83733529 55 8.760092272 25.69815805 26 7.58169935 11.11111111 56 18.15106078 15.80161476 27 7.37024221 16.03037293 57 15.29411765 24.5751634 28 37.7374087 20.14801999 58 21.2745098 10 29 10.3267974 13.93886967 59 14.533571 19.42906574


(41)

Tabel Lanjutan 4.2

Iterasi FEA Ant Colony Iterasi FEA Ant Colony 60 7.860438293 5.424836601 80 31.0784314 6.14379085 61 35.01188354 18.02575932 81 33.6393345 4.93464052 62 20.91503268 18.30449827 82 19.9157667 11.7973856 63 31.89542484 18.96001538 83 33.0449827 19.8212226 64 17.99307958 16.67243368 84 32.4240677 26.9211143 65 11.4225298 23.5620915 85 28.10108 19.9519416 66 21.89734717 9.509803922 86 11.2264514 23.7427912 67 22.66435986 24.9846213 87 18.2698962 14.8385236 68 8.662053057 27.01460977 88 18.2352941 16.6993464 69 17.17416378 7.222222222 89 22.402922 9.65782391 70 19.29292929 13.86809269 90 27.1261053 12.254902 71 16.8627451 13.07189542 91 21.1437908 14.5790081 72 25.33064206 10.58823529 92 15.1633987 21.0630527 73 16.07493621 15.62283737 93 7.01076509 9.86928105 74 8.515955402 22.01076509 94 29.8177274 8.57939254 75 8.039215686 7.218727063 95 24.9519416 14.5309496 76 8.971549404 22.45098039 96 27.9411765 9.95194156 77 23.02383699 9.577085736 97 20.1826221 18.3490615 78 25.06728181 23.1164587 98 25.2787389 11.8473664 79 34.57900807 12.12418301 99 14.9965048 14.5751634

Dari Tabel 4.2 dapat dibuat dalam bentuk grafik yaitu ditunjukan pada Gambar 4.4. 0 5 10 15 20 25 30 35 40 45

0 10 20 30 40 50 60 70 80 90 100 FEA Ant Colony % P roba bi lita s B loc k ing Jumlah Iterasi


(42)

Gambar 4.4 adalah grafik hasil iterasi sebanyak 100 kali versus probabilitas blocking. Dari Gambar 4.4 dapat dilihat bahwa metode FEA menghasilkan probabilitas blocking yang lebih besar dibandingkan algoritma ant colony.

Dari data yang diperoleh dapat disimpulkan bahwa Algoritma Ant Colony

mengoptimasi alokasi kanal lebih baik jika dibandingkan dengan metode optimasi

Frequency Exhaustive Assignment (FEA).

4.5 Hasil N Iterasi Untuk Jumlah Kanal yang Berbeda

Analisa dilakukan dengan membandingkan hasil rata-rata persen probabilitas blocking tiap metode dengan mengubah jumlah kanal yang tersedia yaitu dimulai pada jumlah kanal empat sampai pada jumlah kanal 64 dengan tiap tingkatan berkelipatan empat. Tabel 4.3 menunjukan jumlah probabilitas blocking

dalam persen pada tiap-tiap metode optimasi.

Tabel 4.3 Jumlah Probabilitas Blocking Tiap-Tiap Metode Jumlah Kanal FEA Ant Colony

4 92.98 90.26 8 85.45 80.86 12 77.46 72.61

16 71 64.49

20 65.21 57.86 24 58.41 51.11 28 53.77 46.1 32 48.5 40.52 36 43.82 36.49 40 40.33 32.9 44 36.05 29.12 48 32.92 25.49 52 29.2 22.36 56 25.56 19.39


(43)

Dari Tabel 4.3 dapat dibuat dalam bentuk grafik yaitu ditunjukan pada Gambar 4.5.

Gambar 4.5 Optimasi Metode FEA dan Algoritma Ant Colony.

Gambar 4.5 adalah grafik probabilitas blocking versus jumlah kanal. Data hasil simulasi menunjukan perbedaan yang cukupsignifikan. Probabilitas blocking

algoritma ant colony lebih kecil dibandingkan probabilitas blocking yang dihasilkan oleh metode FEA.

0 10 20 30 40 50 60 70 80 90 100

0 5 10 15 20 25 30 35 40 45 50 55 60 65 FEA

Ant Colony

%

P

roba

bi

li

ta

s B

loc

ki

ng

Jumlah Kanal Jumlah Kanal FEA Ant Colony

60 22.99 17.01 64 20.4 14.4


(44)

BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Dari hasil analisis yang dilakukan, diperoleh kesimpulan sebagai berikut :

1. Algoritma ant colony melakukan optimasi pengalokasian kanal adalah dengan mencoba seluruh sel menjadi sel awal dengan urutan dimulai dari permintaan kanal terbesar hingga terkecil.

2. Dalam optimasi algoritma ant colonyuntuk pengalokasian kanal dinamik, solusi terbaik adalah dengan melihat kualitas pheromone dengan probabilitas

blocking terkecil.

3. Optimasi pengalokasian kanal algoritma ant colonymemiliki kinerja lebih baik bila dibandingkan dengan metode Frequency Exhaustive Assignment (FEA).

5.2 Saran

1. Alokasi kanal dinamis menggunakan algoritma ant colony terbukti lebih efektif, namun memiliki proses yang lebih panjang. Sehingga perlu diteliti waktu tunda yang dihasilkan.


(45)

DAFTAR PUSTAKA

[1] Baharuddin. 2008. ”Perencanaan Alokasi Kanal Dinamik Pada GSM”. akses : 18 September 2013.

[2] K.N Sivarajan and R.J McEliece. 1989. ”Channel Assignment in Cellular Radio Proceedings”. IEEE Vehicular Technology Conference. 846-850. [3] G.Chakraborty. 2001. “An Efficient Heuristic Algorithm for Channel

Assignment Problem in Cellular Radio Networks”. IEEE Trans on Veh Technology. vol. 50. no. 6 .pp. 1528-1539.

[4] D.Beckmann and U.Killat. 1999. “A New Startegy for the Application of Genetic Algorithms to the Channel-Assignment Problem.

IEEETransactions on Vehicular Technology, vol.48, no. 4.

[5] wordpress.com. 2010. “Algoritma Semut (Ant Colony Optimization)”. wordpress. pukul 21.00 WIB.

[6] A. Colorni and M. Dorigro, and V. Maniezzo. 1991. “Distributed optimization by ant colonies”. Proceedings of ECAL91 – European Conference on Artifical Life. Paris. France.


(46)

Lampiran 1 Program Ant Colony

import java.text.NumberFormat; import java.util.Random;

import java.util.Vector; /*

* To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates

* and open the template in the editor. */

/** *

* @author beny saragih */

public class AntColony{

public static void main (String args []){ int space =6;

Vector vect=null; int jumlah_kanal=64; int number_cell = 17;

double []traf = new double [number_cell]; int [][] distance = new int [17][17];

distance [0] [0] = 6 ; distance [0] [1] = 2 ; distance [0] [2] = 1 ; distance [0] [3] = 2 ; distance [0] [4] = 2 ; distance [0] [5] = 1 ; distance [0] [6] = 0 ; distance [0] [7] = 0 ; distance [0] [8] = 0 ; distance [0] [9] = 0 ; distance [0] [10] = 0 ; distance [0] [11] = 0 ; distance [0] [12] = 0 ; distance [0] [13] = 0 ; distance [0] [14] = 0 ; distance [0] [15] = 0 ; distance [0] [16] = 0 ; distance [1] [0] = 2 ; distance [1] [1] = 6 ; distance [1] [2] = 2 ; distance [1] [3] = 1 ; distance [1] [4] = 2 ; distance [1] [5] = 2 ; distance [1] [6] = 1 ;


(47)

distance [1] [7] = 0 ; distance [1] [8] = 0 ; distance [1] [9] = 0 ; distance [1] [10] = 0 ; distance [1] [11] = 0 ; distance [1] [12] = 0 ; distance [1] [13] = 0 ; distance [1] [14] = 0 ; distance [1] [15] = 0 ; distance [1] [16] = 0 ; distance [2] [0] = 1 ; distance [2] [1] = 2 ; distance [2] [2] = 6 ; distance [2] [3] = 0 ; distance [2] [4] = 1 ; distance [2] [5] = 2 ; distance [2] [6] = 2 ; distance [2] [7] = 1 ; distance [2] [8] = 0 ; distance [2] [9] = 0 ; distance [2] [10] = 0 ; distance [2] [11] = 0 ; distance [2] [12] = 0 ; distance [2] [13] = 0 ; distance [2] [14] = 0 ; distance [2] [15] = 0 ; distance [2] [16] = 0 ; distance [3] [0] = 2 ; distance [3] [1] = 1 ; distance [3] [2] = 0 ; distance [3] [3] = 6 ; distance [3] [4] = 2 ; distance [3] [5] = 1 ; distance [3] [6] = 0 ; distance [3] [7] = 0 ; distance [3] [8] = 0 ; distance [3] [9] = 2 ; distance [3] [10] = 1 ; distance [3] [11] = 0 ; distance [3] [12] = 0 ; distance [3] [13] = 0 ; distance [3] [14] = 0 ; distance [3] [15] = 0 ; distance [3] [16] = 0 ; distance [4] [0] = 2 ; distance [4] [1] = 2 ; distance [4] [2] = 1 ; distance [4] [3] = 2 ;


(48)

distance [4] [4] = 6 ; distance [4] [5] = 1 ; distance [4] [6] = 0 ; distance [4] [7] = 0 ; distance [4] [8] = 2 ; distance [4] [9] = 2 ; distance [4] [10] = 1 ; distance [4] [11] = 0 ; distance [4] [12] = 0 ; distance [4] [13] = 0 ; distance [4] [14] = 0 ; distance [4] [15] = 0 ; distance [4] [16] = 0 ; distance [5] [0] = 1 ; distance [5] [1] = 2 ; distance [5] [2] = 2 ; distance [5] [3] = 1 ; distance [5] [4] = 2 ; distance [5] [5] = 6 ; distance [5] [6] = 2 ; distance [5] [7] = 1 ; distance [5] [8] = 0 ; distance [5] [9] = 1 ; distance [5] [10] = 2 ; distance [5] [11] = 2 ; distance [5] [12] = 1 ; distance [5] [13] = 0 ; distance [5] [14] = 0 ; distance [5] [15] = 0 ; distance [5] [16] = 0 ; distance [6] [0] = 0 ; distance [6] [1] = 1 ; distance [6] [2] = 2 ; distance [6] [3] = 0 ; distance [6] [4] = 1 ; distance [6] [5] = 2 ; distance [6] [6] = 6 ; distance [6] [7] = 2 ; distance [6] [8] = 1 ; distance [6] [9] = 0 ; distance [6] [10] = 0 ; distance [6] [11] = 2 ; distance [6] [12] = 2 ; distance [6] [13] = 1 ; distance [6] [14] = 0 ; distance [6] [15] = 0 ; distance [6] [16] = 0 ; distance [7] [0] = 0 ;


(49)

distance [7] [1] = 0 ; distance [7] [2] = 1 ; distance [7] [3] = 0 ; distance [7] [4] = 0 ; distance [7] [5] = 1 ; distance [7] [6] = 2 ; distance [7] [7] = 6 ; distance [7] [8] = 2 ; distance [7] [9] = 0 ; distance [7] [10] = 0 ; distance [7] [11] = 1 ; distance [7] [12] = 2 ; distance [7] [13] = 2 ; distance [7] [14] = 1 ; distance [7] [15] = 0 ; distance [7] [16] = 0 ; distance [8] [0] = 0 ; distance [8] [1] = 0 ; distance [8] [2] = 0 ; distance [8] [3] = 0 ; distance [8] [4] = 0 ; distance [8] [5] = 0 ; distance [8] [6] = 1 ; distance [8] [7] = 2 ; distance [8] [8] = 6 ; distance [8] [9] = 0 ; distance [8] [10] = 0 ; distance [8] [11] = 0 ; distance [8] [12] = 1 ; distance [8] [13] = 2 ; distance [8] [14] = 2 ; distance [8] [15] = 0 ; distance [8] [16] = 0 ; distance [9] [0] = 0 ; distance [9] [1] = 0 ; distance [9] [2] = 0 ; distance [9] [3] = 2 ; distance [9] [4] = 2 ; distance [9] [5] = 1 ; distance [9] [6] = 0 ; distance [9] [7] = 0 ; distance [9] [8] = 0 ; distance [9] [9] = 6 ; distance [9] [10] = 2 ; distance [9] [11] = 1 ; distance [9] [12] = 0 ; distance [9] [13] = 0 ; distance [9] [14] = 0 ;


(50)

distance [9] [15] = 2 ; distance [9] [16] = 1 ; distance [10] [0] = 0 ; distance [10] [1] = 0 ; distance [10] [2] = 0 ; distance [10] [3] = 1 ; distance [10] [4] = 2 ; distance [10] [5] = 2 ; distance [10] [6] = 1 ; distance [10] [7] = 0 ; distance [10] [8] = 0 ; distance [10] [9] = 2 ; distance [10] [10] = 6 ; distance [10] [11] = 2 ; distance [10] [12] = 1 ; distance [10] [13] = 0 ; distance [10] [14] = 0 ; distance [10] [15] = 2 ; distance [10] [16] = 2 ; distance [11] [0] = 0 ; distance [11] [1] = 0 ; distance [11] [2] = 0 ; distance [11] [3] = 0 ; distance [11] [4] = 1 ; distance [11] [5] = 2 ; distance [11] [6] = 2 ; distance [11] [7] = 1 ; distance [11] [8] = 0 ; distance [11] [9] = 1 ; distance [11] [10] = 2 ; distance [11] [11] = 6 ; distance [11] [12] = 2 ; distance [11] [13] = 1 ; distance [11] [14] = 0 ; distance [11] [15] = 1 ; distance [11] [16] = 2 ; distance [12] [0] = 0 ; distance [12] [1] = 0 ; distance [12] [2] = 0 ; distance [12] [3] = 0 ; distance [12] [4] = 0 ; distance [12] [5] = 1 ; distance [12] [6] = 2 ; distance [12] [7] = 2 ; distance [12] [8] = 1 ; distance [12] [9] = 0 ; distance [12] [10] = 1 ; distance [12] [11] = 2 ;


(51)

distance [12] [12] = 6 ; distance [12] [13] = 2 ; distance [12] [14] = 1 ; distance [12] [15] = 0 ; distance [12] [16] = 1 ; distance [13] [0] = 0 ; distance [13] [1] = 0 ; distance [13] [2] = 0 ; distance [13] [3] = 0 ; distance [13] [4] = 0 ; distance [13] [5] = 0 ; distance [13] [6] = 1 ; distance [13] [7] = 2 ; distance [13] [8] = 2 ; distance [13] [9] = 0 ; distance [13] [10] = 0 ; distance [13] [11] = 1 ; distance [13] [12] = 2 ; distance [13] [13] = 6 ; distance [13] [14] = 2 ; distance [13] [15] = 0 ; distance [13] [16] = 0 ; distance [14] [0] = 0 ; distance [14] [1] = 0 ; distance [14] [2] = 0 ; distance [14] [3] = 0 ; distance [14] [4] = 0 ; distance [14] [5] = 0 ; distance [14] [6] = 0 ; distance [14] [7] = 1 ; distance [14] [8] = 2 ; distance [14] [9] = 0 ; distance [14] [10] = 0 ; distance [14] [11] = 0 ; distance [14] [12] = 1 ; distance [14] [13] = 1 ; distance [14] [14] = 6 ; distance [14] [15] = 0 ; distance [14] [16] = 0 ; distance [15] [0] = 0 ; distance [15] [1] = 0 ; distance [15] [2] = 0 ; distance [15] [3] = 0 ; distance [15] [4] = 0 ; distance [15] [5] = 0 ; distance [15] [6] = 0 ; distance [15] [7] = 0 ; distance [15] [8] = 0 ;


(52)

distance [15] [9] = 2 ; distance [15] [10] = 2 ; distance [15] [11] = 1 ; distance [15] [12] = 0 ; distance [15] [13] = 0 ; distance [15] [14] = 0 ; distance [15] [15] = 6 ; distance [15] [16] = 2 ; distance [16] [0] = 0 ; distance [16] [1] = 0 ; distance [16] [2] = 0 ; distance [16] [3] = 0 ; distance [16] [4] = 0 ; distance [16] [5] = 0 ; distance [16] [6] = 0 ; distance [16] [7] = 0 ; distance [16] [8] = 0 ; distance [16] [9] = 1 ; distance [16] [10] = 2 ; distance [16] [11] = 2 ; distance [16] [12] = 1 ; distance [16] [13] = 0 ; distance [16] [14] = 0 ; distance [16] [15] = 2 ; distance [16] [16] = 6 ;

vect = new Vector(); for(int aa=0;aa<1;aa++){

double[] traffics = { 5, 10, 15, 20, 17, 18, 20, 6, 9, 11, 4, 6, 5, 2, 10, 3, 1, 7, 8, 23, 22, 16};

Allocation [] cell_user = new Allocation [number_cell]; //initialisasi

for (int i=0; i <number_cell ; i ++) { cell_user [i] = new Allocation (); Random r = new Random (); int index = r.nextInt(16);

cell_user[i].setTraffic(traffics [index]); // Set which cell user belongs to. cell_user[i].setCell(i);

cell_user[i].setAllocation(false); cell_user[i].setBeginner(false); if(i==0){

cell_user[i].addAdj(1);cell_user[i].addAdj(3);cell_user[i].addAdj(4); }else if(i==1){


(53)

cell_user[i].addAdj(0);cell_user[i].addAdj(2);cell_user[i].addAdj(4);cell_user[i].a ddAdj(5); }else if(i==2){ cell_user[i].addAdj(1);cell_user[i].addAdj(6);cell_user[i].addAdj(7); }else if(i==3){ cell_user[i].addAdj(1);cell_user[i].addAdj(4);cell_user[i].addAdj(10); }else if(i==4){ cell_user[i].addAdj(0);cell_user[i].addAdj(1);cell_user[i].addAdj(5);cell_user[i].a ddAdj(11);cell_user[i].addAdj(10); }else if(i==5){ cell_user[i].addAdj(1);cell_user[i].addAdj(2);cell_user[i].addAdj(6);cell_user[i].a ddAdj(11);cell_user[i].addAdj(10);cell_user[i].addAdj(4); }else if(i==6){ cell_user[i].addAdj(2);cell_user[i].addAdj(7);cell_user[i].addAdj(12);cell_user[i]. addAdj(11);cell_user[i].addAdj(5); }else if(i==7){ cell_user[i].addAdj(6);cell_user[i].addAdj(8);cell_user[i].addAdj(13);cell_user[i]. addAdj(12); }else if(i==8){ cell_user[i].addAdj(7);cell_user[i].addAdj(14);cell_user[i].addAdj(13); }else if(i==9){ cell_user[i].addAdj(3);cell_user[i].addAdj(4);cell_user[i].addAdj(10);cell_user[i]. addAdj(15); }else if(i==10){ cell_user[i].addAdj(4);cell_user[i].addAdj(5);cell_user[i].addAdj(11);cell_user[i]. addAdj(16);cell_user[i].addAdj(15);cell_user[i].addAdj(9); }else if(i==11){ cell_user[i].addAdj(5);cell_user[i].addAdj(6);cell_user[i].addAdj(12);cell_user[i]. addAdj(16);cell_user[i].addAdj(10); }else if(i==12){ cell_user[i].addAdj(6);cell_user[i].addAdj(7);cell_user[i].addAdj(13);cell_user[i]. addAdj(11); }else if(i==13){ cell_user[i].addAdj(7);cell_user[i].addAdj(8);cell_user[i].addAdj(14);cell_user[i]. addAdj(12); }else if(i==14){ cell_user[i].addAdj(8);cell_user[i].addAdj(13);


(54)

}else if(i==15){ cell_user[i].addAdj(9);cell_user[i].addAdj(10);cell_user[i].addAdj(16); }else if(i==16){ cell_user[i].addAdj(10);cell_user[i].addAdj(11);cell_user[i].addAdj(15); } } //alokasi

//Initial allocation, the biggest pheromon

//cek sorting, s menyimpan urutan besar ke kecil int s[]=Sort(cell_user);

// for(int u=0;u<s.length;u++){

// System.out.println(cell_user[s[u]].getTraffic()); // }

Vector bloking =new Vector(); for(int a=1;a<number_cell;a++){ int awal =s[0];

s[0]=s[a]; s[a]=awal;

for (int i=0;i<number_cell;i++){ int newch=0;

int count=0; int x=s[i];

//mencari chanel awal

for(int y=0;y<jumlah_kanal;y++){ //cek interferensi if(checkInterference(cell_user,x,newch)){ newch++; }else{ break; } } int z=jumlah_kanal/space+1; for(int y=0;y<jumlah_kanal;y++){ //cek interferensi

if(count<cell_user[x].getTraffic() && newch<jumlah_kanal){ cell_user[x].addChannel(newch); count++; newch=newch+space; }else{ cell_user[x].setBlocking(((cell_user[x].getTraffic()-count)/cell_user[x].getTraffic())*100); break; } }


(55)

}

/* if(checkInterference(cell_user, 1, 6)){ System.out.println("Interference"); }else{

System.out.println("Tidak Interference"); }*/

// boolean solution =false;

// int n = largestNumbers(cell_user); /*while(solution==false){

n = largestNumbers(cell_user); //alokasi sel awal

cell_user[n].getTraffic(); for(int i=0;i<number_cell;i++){ }

}*/

//Cek kanal sel n

for(int i=0;i<number_cell;i++){

System.out.print( "Awal: "+s[a]+" Sel :"+i + " jumlah kanal: "+cell_user[i].getTraffic()+" nomor kanal :");

for(int c=0;c<cell_user[i].getChannel().size();c++){

System.out.print(" " +(int)cell_user[i].getChannel().get(c)); }

System.out.println("---"+cell_user[i].getBlocking()+"%"); }

double avBlock=0;

for(int i=0;i<number_cell;i++){

avBlock=avBlock+cell_user[i].getBlocking(); cell_user[i].kanal=new Vector();

}

System.out.println("Blocking rata-rata:---"+avBlock/number_cell+"%");

bloking.add(avBlock/number_cell); /*

//cek status user

for (int i=0; i <number_cell;i++){

System.out.print ("Sel no :"+cell_user[i].getCell()+" jumlah Traffic:"+

cell_user[i].getTraffic());

if (cell_user[i].getAllocation()==false){ System.out.println (" belum teralokasi"); }else{


(56)

System.out.println (" telah teralokasikan"); }

}*/ }

double[] d = new double[bloking.size()]; for(int ss=0;ss<bloking.size();ss++){ d[ss]=(double)bloking.get(ss); }

double dd= smallestNumbers(d);

// System.out.println (" Nilai terkecil: "+d[(int)dd]); vect.add(d[(int)dd]);

}

for(int ii=0;ii<vect.size();ii++){

//System.out.println("Iterasi: "+ii+" blocking: "+(double)vect.get(ii)); }

}

private static int smallestNumbers(double[] traf) { int in=0;

double smallNumber = traf[0]; for (int i = 0; i < traf.length; i++) { if (traf[i] < smallNumber) { smallNumber = traf[i]; }

}

boolean c=false;

for (int j = 0; j < traf.length; j++) {

if(smallNumber == traf[j] && c==false){ in=j;

c=true;

//System.out.println("largest number index "+j); }

}

return in; }

//Sorting

private static int[] Sort(Allocation[] v1){ double[] num=new double[v1.length]; int[] num1=new int[v1.length];

for(int x=0;x<v1.length;x++){ num[x]=v1[x].getTraffic(); num1[x]=x;

}

int n = v1.length; int k;

for (int m = n; m >= 0; m--) { for (int i = 0; i < n - 1; i++) {


(57)

k = i + 1;

if (num[i] < num[k]) { double temp = num[i]; num[i] = num[k];

num[k] = temp; int temp1 = num1[i];

num1[i] = num1[k]; num1[k] = temp1; }

} }

return num1; }

// metode chek interferensi kanal

private static Boolean checkInterference (Allocation []a, int in_cell,int kanal){ Boolean interference = false;

Vector adj = a [in_cell].getAdj(); for (int i=0;i<adj.size();i++){

Vector ch=a[(int)adj.get(i)].getChannel(); if (ch.size()>0){

for (int j=0;j<ch.size();j++){

// System.out.println(kanal+":"+(int)ch.get(j)); if(Math.abs(kanal-(int)ch.get(j))<2){

interference = true; }

} } }

return interference; }


(58)

Lampiran 2 Program FEA import java.text.NumberFormat; import java.util.Random; import java.util.Vector; /*

* To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates

* and open the template in the editor. */

/** *

* @author beny saragih */

public class FEA{

public static void main (String args []){ int space =6;

int jumlah_kanal=64; int number_cell = 17;

double []traf = new double [number_cell]; Vector vect = new Vector();

int [][] distance = new int [17][17]; distance [0] [0] = 6 ; distance [0] [1] = 2 ; distance [0] [2] = 1 ; distance [0] [3] = 2 ; distance [0] [4] = 2 ; distance [0] [5] = 1 ; distance [0] [6] = 0 ; distance [0] [7] = 0 ; distance [0] [8] = 0 ; distance [0] [9] = 0 ; distance [0] [10] = 0 ; distance [0] [11] = 0 ; distance [0] [12] = 0 ; distance [0] [13] = 0 ; distance [0] [14] = 0 ; distance [0] [15] = 0 ; distance [0] [16] = 0 ; distance [1] [0] = 2 ; distance [1] [1] = 6 ; distance [1] [2] = 2 ; distance [1] [3] = 1 ; distance [1] [4] = 2 ; distance [1] [5] = 2 ; distance [1] [6] = 1 ;


(59)

distance [1] [7] = 0 ; distance [1] [8] = 0 ; distance [1] [9] = 0 ; distance [1] [10] = 0 ; distance [1] [11] = 0 ; distance [1] [12] = 0 ; distance [1] [13] = 0 ; distance [1] [14] = 0 ; distance [1] [15] = 0 ; distance [1] [16] = 0 ; distance [2] [0] = 1 ; distance [2] [1] = 2 ; distance [2] [2] = 6 ; distance [2] [3] = 0 ; distance [2] [4] = 1 ; distance [2] [5] = 2 ; distance [2] [6] = 2 ; distance [2] [7] = 1 ; distance [2] [8] = 0 ; distance [2] [9] = 0 ; distance [2] [10] = 0 ; distance [2] [11] = 0 ; distance [2] [12] = 0 ; distance [2] [13] = 0 ; distance [2] [14] = 0 ; distance [2] [15] = 0 ; distance [2] [16] = 0 ; distance [3] [0] = 2 ; distance [3] [1] = 1 ; distance [3] [2] = 0 ; distance [3] [3] = 6 ; distance [3] [4] = 2 ; distance [3] [5] = 1 ; distance [3] [6] = 0 ; distance [3] [7] = 0 ; distance [3] [8] = 0 ; distance [3] [9] = 2 ; distance [3] [10] = 1 ; distance [3] [11] = 0 ; distance [3] [12] = 0 ; distance [3] [13] = 0 ; distance [3] [14] = 0 ; distance [3] [15] = 0 ; distance [3] [16] = 0 ; distance [4] [0] = 2 ; distance [4] [1] = 2 ; distance [4] [2] = 1 ; distance [4] [3] = 2 ;


(60)

distance [4] [4] = 6 ; distance [4] [5] = 1 ; distance [4] [6] = 0 ; distance [4] [7] = 0 ; distance [4] [8] = 2 ; distance [4] [9] = 2 ; distance [4] [10] = 1 ; distance [4] [11] = 0 ; distance [4] [12] = 0 ; distance [4] [13] = 0 ; distance [4] [14] = 0 ; distance [4] [15] = 0 ; distance [4] [16] = 0 ; distance [5] [0] = 1 ; distance [5] [1] = 2 ; distance [5] [2] = 2 ; distance [5] [3] = 1 ; distance [5] [4] = 2 ; distance [5] [5] = 6 ; distance [5] [6] = 2 ; distance [5] [7] = 1 ; distance [5] [8] = 0 ; distance [5] [9] = 1 ; distance [5] [10] = 2 ; distance [5] [11] = 2 ; distance [5] [12] = 1 ; distance [5] [13] = 0 ; distance [5] [14] = 0 ; distance [5] [15] = 0 ; distance [5] [16] = 0 ; distance [6] [0] = 0 ; distance [6] [1] = 1 ; distance [6] [2] = 2 ; distance [6] [3] = 0 ; distance [6] [4] = 1 ; distance [6] [5] = 2 ; distance [6] [6] = 6 ; distance [6] [7] = 2 ; distance [6] [8] = 1 ; distance [6] [9] = 0 ; distance [6] [10] = 0 ; distance [6] [11] = 2 ; distance [6] [12] = 2 ; distance [6] [13] = 1 ; distance [6] [14] = 0 ; distance [6] [15] = 0 ; distance [6] [16] = 0 ; distance [7] [0] = 0 ;


(61)

distance [7] [1] = 0 ; distance [7] [2] = 1 ; distance [7] [3] = 0 ; distance [7] [4] = 0 ; distance [7] [5] = 1 ; distance [7] [6] = 2 ; distance [7] [7] = 6 ; distance [7] [8] = 2 ; distance [7] [9] = 0 ; distance [7] [10] = 0 ; distance [7] [11] = 1 ; distance [7] [12] = 2 ; distance [7] [13] = 2 ; distance [7] [14] = 1 ; distance [7] [15] = 0 ; distance [7] [16] = 0 ; distance [8] [0] = 0 ; distance [8] [1] = 0 ; distance [8] [2] = 0 ; distance [8] [3] = 0 ; distance [8] [4] = 0 ; distance [8] [5] = 0 ; distance [8] [6] = 1 ; distance [8] [7] = 2 ; distance [8] [8] = 6 ; distance [8] [9] = 0 ; distance [8] [10] = 0 ; distance [8] [11] = 0 ; distance [8] [12] = 1 ; distance [8] [13] = 2 ; distance [8] [14] = 2 ; distance [8] [15] = 0 ; distance [8] [16] = 0 ; distance [9] [0] = 0 ; distance [9] [1] = 0 ; distance [9] [2] = 0 ; distance [9] [3] = 2 ; distance [9] [4] = 2 ; distance [9] [5] = 1 ; distance [9] [6] = 0 ; distance [9] [7] = 0 ; distance [9] [8] = 0 ; distance [9] [9] = 6 ; distance [9] [10] = 2 ; distance [9] [11] = 1 ; distance [9] [12] = 0 ; distance [9] [13] = 0 ; distance [9] [14] = 0 ;


(62)

distance [9] [15] = 2 ; distance [9] [16] = 1 ; distance [10] [0] = 0 ; distance [10] [1] = 0 ; distance [10] [2] = 0 ; distance [10] [3] = 1 ; distance [10] [4] = 2 ; distance [10] [5] = 2 ; distance [10] [6] = 1 ; distance [10] [7] = 0 ; distance [10] [8] = 0 ; distance [10] [9] = 2 ; distance [10] [10] = 6 ; distance [10] [11] = 2 ; distance [10] [12] = 1 ; distance [10] [13] = 0 ; distance [10] [14] = 0 ; distance [10] [15] = 2 ; distance [10] [16] = 2 ; distance [11] [0] = 0 ; distance [11] [1] = 0 ; distance [11] [2] = 0 ; distance [11] [3] = 0 ; distance [11] [4] = 1 ; distance [11] [5] = 2 ; distance [11] [6] = 2 ; distance [11] [7] = 1 ; distance [11] [8] = 0 ; distance [11] [9] = 1 ; distance [11] [10] = 2 ; distance [11] [11] = 6 ; distance [11] [12] = 2 ; distance [11] [13] = 1 ; distance [11] [14] = 0 ; distance [11] [15] = 1 ; distance [11] [16] = 2 ; distance [12] [0] = 0 ; distance [12] [1] = 0 ; distance [12] [2] = 0 ; distance [12] [3] = 0 ; distance [12] [4] = 0 ; distance [12] [5] = 1 ; distance [12] [6] = 2 ; distance [12] [7] = 2 ; distance [12] [8] = 1 ; distance [12] [9] = 0 ; distance [12] [10] = 1 ; distance [12] [11] = 2 ;


(1)

distance [15] [9] = 2 ; distance [15] [10] = 2 ; distance [15] [11] = 1 ; distance [15] [12] = 0 ; distance [15] [13] = 0 ; distance [15] [14] = 0 ; distance [15] [15] = 6 ; distance [15] [16] = 2 ; distance [16] [0] = 0 ; distance [16] [1] = 0 ; distance [16] [2] = 0 ; distance [16] [3] = 0 ; distance [16] [4] = 0 ; distance [16] [5] = 0 ; distance [16] [6] = 0 ; distance [16] [7] = 0 ; distance [16] [8] = 0 ; distance [16] [9] = 1 ; distance [16] [10] = 2 ; distance [16] [11] = 2 ; distance [16] [12] = 1 ; distance [16] [13] = 0 ; distance [16] [14] = 0 ; distance [16] [15] = 2 ; distance [16] [16] = 6 ; for(int aa=0;aa<1;aa++){

double[] traffics = { 5, 10, 15, 20, 17, 18, 20, 6, 9, 11, 4, 6, 5, 2, 10, 3, 1, 7, 23, 22, 16};

Allocation [] cell_user = new Allocation [number_cell]; //initialisasi

for (int i=0; i <number_cell ; i ++) { cell_user [i] = new Allocation (); Random r = new Random (); int index = r.nextInt(16);

cell_user[i].setTraffic(traffics [index]); // Set which cell user belongs to. cell_user[i].setCell(i);

cell_user[i].setAllocation(false); cell_user[i].setBeginner(false); if(i==0){

cell_user[i].addAdj(1);cell_user[i].addAdj(3);cell_user[i].addAdj(4); }else if(i==1){

cell_user[i].addAdj(0);cell_user[i].addAdj(2);cell_user[i].addAdj(4);cell_user[i].a ddAdj(5);


(2)

cell_user[i].addAdj(1);cell_user[i].addAdj(6);cell_user[i].addAdj(7); }else if(i==3){

cell_user[i].addAdj(1);cell_user[i].addAdj(4);cell_user[i].addAdj(10); }else if(i==4){

cell_user[i].addAdj(0);cell_user[i].addAdj(1);cell_user[i].addAdj(5);cell_user[i].a ddAdj(11);cell_user[i].addAdj(10);

}else if(i==5){

cell_user[i].addAdj(1);cell_user[i].addAdj(2);cell_user[i].addAdj(6);cell_user[i].a ddAdj(11);cell_user[i].addAdj(10);cell_user[i].addAdj(4);

}else if(i==6){

cell_user[i].addAdj(2);cell_user[i].addAdj(7);cell_user[i].addAdj(12);cell_user[i]. addAdj(11);cell_user[i].addAdj(5);

}else if(i==7){

cell_user[i].addAdj(6);cell_user[i].addAdj(8);cell_user[i].addAdj(13);cell_user[i]. addAdj(12);

}else if(i==8){

cell_user[i].addAdj(7);cell_user[i].addAdj(14);cell_user[i].addAdj(13); }else if(i==9){

cell_user[i].addAdj(3);cell_user[i].addAdj(4);cell_user[i].addAdj(10);cell_user[i]. addAdj(15);

}else if(i==10){

cell_user[i].addAdj(4);cell_user[i].addAdj(5);cell_user[i].addAdj(11);cell_user[i]. addAdj(16);cell_user[i].addAdj(15);cell_user[i].addAdj(9);

}else if(i==11){

cell_user[i].addAdj(5);cell_user[i].addAdj(6);cell_user[i].addAdj(12);cell_user[i]. addAdj(16);cell_user[i].addAdj(10);

}else if(i==12){

cell_user[i].addAdj(6);cell_user[i].addAdj(7);cell_user[i].addAdj(13);cell_user[i]. addAdj(11);

}else if(i==13){

cell_user[i].addAdj(7);cell_user[i].addAdj(8);cell_user[i].addAdj(14);cell_user[i]. addAdj(12);

}else if(i==14){

cell_user[i].addAdj(8);cell_user[i].addAdj(13); }else if(i==15){

cell_user[i].addAdj(9);cell_user[i].addAdj(10);cell_user[i].addAdj(16); }else if(i==16){


(3)

cell_user[i].addAdj(10);cell_user[i].addAdj(11);cell_user[i].addAdj(15); }

}

//alokasi

//Initial allocation, the biggest pheromon

//cek sorting, s menyimpan urutan besar ke kecil int s[]=Sort(cell_user);

// for(int u=0;u<s.length;u++){

// System.out.println(cell_user[s[u]].getTraffic()); // }

for (int i=0;i<number_cell;i++){ int newch=0;

int count=0; int x=s[i];

//mencari chanel awal

for(int y=0;y<jumlah_kanal;y++){ //cek interferensi

if(checkInterference(cell_user,x,newch)){ newch++;

}else{ break; }

}

int z=jumlah_kanal/space+1; for(int y=0;y<jumlah_kanal;y++){ //cek interferensi

if(count<cell_user[x].getTraffic() && newch<jumlah_kanal){ cell_user[x].addChannel(newch);

count++;

newch=newch+space; }else{

cell_user[x].setBlocking(((cell_user[x].getTraffic()-count)/cell_user[x].getTraffic())*100);

break; }

} }

/* if(checkInterference(cell_user, 1, 6)){ System.out.println("Interference"); }else{

System.out.println("Tidak Interference"); }*/


(4)

// boolean solution =false;

// int n = largestNumbers(cell_user); /*while(solution==false){

n = largestNumbers(cell_user); //alokasi sel awal

cell_user[n].getTraffic(); for(int i=0;i<number_cell;i++){ }

}*/

//Cek kanal sel n

for(int i=0;i<number_cell;i++){

System.out.print( "Sel :"+i + " jumlah kanal: "+cell_user[i].getTraffic()+" nomor kanal :");

for(int c=0;c<cell_user[i].getChannel().size();c++){

System.out.print(" " +(int)cell_user[i].getChannel().get(c)); }

System.out.println("---"+cell_user[i].getBlocking()+"%"); }

double avBlock=0;

for(int i=0;i<number_cell;i++){

avBlock=avBlock+cell_user[i].getBlocking(); }

System.out.println("Blocking rata-rata:---"+avBlock/number_cell+"%");

/*

//cek status user

for (int i=0; i <number_cell;i++){

System.out.print ("Sel no :"+cell_user[i].getCell()+" jumlah Traffic:"+ cell_user[i].getTraffic());

if (cell_user[i].getAllocation()==false){ System.out.println (" belum teralokasi"); }else{

System.out.println (" telah teralokasikan"); }

}*/

vect.add(avBlock/number_cell); }

for(int ii=0;ii<vect.size();ii++){

//System.out.println("Iterasi: "+ii+" blocking: "+(double)vect.get(ii)); }

}

private static int largestNumbers(Allocation[] cell_user) { double [] traf = new double[cell_user.length];


(5)

if(cell_user[i].getBenginner()==true); traf [i] = 0;

traf [i] = cell_user[i].getTraffic(); }

int in=0;

double largeNumber = traf[0]; for (int i = 0; i < traf.length; i++) { if (traf[i] > largeNumber) { largeNumber = traf[i]; }

}

boolean c=false;

for (int j = 0; j < traf.length; j++) {

if(largeNumber == traf[j] && c==false){ in=j;

c=true;

//System.out.println("largest number index "+j); }

}

return in; }

//Sorting

private static int[] Sort(Allocation[] v1){ double[] num=new double[v1.length]; int[] num1=new int[v1.length];

for(int x=0;x<v1.length;x++){ num[x]=v1[x].getTraffic(); num1[x]=x;

}

int n = v1.length; int k;

for (int m = n; m >= 0; m--) { for (int i = 0; i < n - 1; i++) { k = i + 1;

if (num[i] < num[k]) { double temp = num[i]; num[i] = num[k];

num[k] = temp; int temp1 = num1[i];

num1[i] = num1[k]; num1[k] = temp1; }

} }

return num1; }


(6)

// metode chek interferensi kanal

private static Boolean checkInterference (Allocation []a, int in_cell,int kanal){ Boolean interference = false;

Vector adj = a [in_cell].getAdj(); for (int i=0;i<adj.size();i++){

Vector ch=a[(int)adj.get(i)].getChannel(); if (ch.size()>0){

for (int j=0;j<ch.size();j++){

// System.out.println(kanal+":"+(int)ch.get(j)); if(Math.abs(kanal-(int)ch.get(j))<2){

interference = true; }

} } }

return interference; }