Anda di halaman 1dari 6

TUGAS MOBILE COMPUTING

NEAREST NEIGHBOUR ALGORITHM

Dosen: Prof. Dr. Ir. Teddy Mantoro, MSc

Nama :Agus Riyanto


Nim :1511601252
Kelas :TI
Program Pasca Sarjana Magister Komputer
Universitas Budi Luhur
2017
Diasumsikan data pada sinyal strength dan signal quality didapat dari table berikut iini:

ALGORITMA

1. Input Data dan tampilkan data hasil input

input data signal strength pada ruang A

input data signal strenght pada ruang B

input data signal quality pada ruang A

input data signal quality pada ruang B

tampilkan data signal strength pada ruang A

tampilkan data signal strenght pada ruang B

tampilkan data signal quality pada ruang A

tampilkan data signal quality pada ruang B

2. Hitung Rata-rata

hitung rata-rata signal strength pada ruang A

hitung rata-rata signal strength pada ruang B

hitung rata-rata signal quality pada ruang A

hitung rata-rata signal quality pada ruang B

3. Hitung Standar Deviasi

hitung standar deviasi signal strength pada ruang A

hitung standar deviasi signal strength pada ruang B

hitung standar deviasi signal quality pada ruang A

hitung standar deviasi signal quality pada ruang B


Signal Strength Signal Quality Room

AP1 AP2 AP3 AP4 AP5 AP6 AP1 AP2 AP3 AP4 AP5 AP6 Name

50 64 32 35 24 13 32 35 38 44 31 45 A

40 34 12 10 8 6 24 34 32 36 45 43 A

32 40 44 34 22 15 40 35 37 32 46 44 B

20 55 45 43 32 14 36 20 25 29 35 37 B

4. Normalisasi

lakukan normalisasi tiap data signal strength pada ruang A

lakukan normalisasi tiap data signal strength pada ruang B

lakukan normalisasi tiap data signal quality pada ruang A

lakukan normalisasi tiap data signal quality pada ruang B

5. Euclidean Distance dan bandingkan

hitung euclidean distance pada ruang A

hitung euclidean distance pada ruang B

bandingkan euclidean distance pada ruang A dan B

jika euclidean distance A < euclidean distance B maka user ada di ruang A

jika euclidean distance A > euclidean distance B maka user ada di ruang B

PSEUDOCODE (PASCAL)
procedure Generate;
var i: integer;
ssa, ssb, sqa, sqb : integer;
begin
//-----inisialisasi
lbSSA.Clear;
lbSSB.Clear;
//----- generate data signal strength di room a
for i := 1 to 10 do
begin
ssa := random(100);
lbSSA.Items.Add(inttostr(ssa));
end;
//----- generate data signal strength di room b
for i := 1 to 10 do
begin
ssb := random(100);
lbSSB.Items.Add(inttostr(ssb));
end;
//----- generate data signal quality di room a
lbSQA.Clear;
for i := 1 to 10 do
begin
sqa := random(100);
lbSQA.Items.Add(inttostr(sqa));
end;
//----- generate data signal quality di room b
lbSQB.Clear;
for i := 1 to 10 do
begin
sqb := random(100);
lbSQB.Items.Add(inttostr(sqb));
end;
end;
procedure Calculate;
var i : integer ;
totssa, totssb, totsqa, totsqb : integer;
avgssa, avgssb, avgsqa, avgsqb : real;
stdssa, stdssb, stdsqa, stdsqb : real;
ssna, ssnb, sqna, sqnb : real ;
distancea, distanceb : real;
begin
//------ inisialisasi
totssa:=0; totssb:=0; totsqa:=0; totsqb:=0;
avgssa:=0; avgssb:=0; avgsqa:=0; avgsqb:=0;
stdssa:=0; stdssb:=0; stdsqa:=0; stdsqb:=0;
ssna:=0; ssnb:=0; sqna:=0; sqnb:=0;
distancea:=0; distanceb:=0;
//----- hitung total
for i := 0 to lbssa.Items.Count-1 do
begin
totssa:=totssa+strtoint(lbssa.Items[i]);
end;
for i := 0 to lbssb.Items.Count-1 do
begin
totssb:=totssb+strtoint(lbssb.Items[i]);
end;
for i := 0 to lbsqa.Items.Count-1 do
begin
totsqa:=totsqa+strtoint(lbsqa.Items[i]);
end;
for i := 0 to lbsqb.Items.Count-1 do
begin
totsqb:=totsqb+strtoint(lbsqb.Items[i]);
end;
edtotssa.Text:=inttostr(totssa);
edtotssb.Text:=inttostr(totssb);
edtotsqa.Text:=inttostr(totsqa);
edtotsqb.Text:=inttostr(totsqb);
//------hitung rata-rata
avgssa:=totssa/10;
edavgssa.Text:=floattostr(avgssa);
avgssb:=totssb/10;
edavgssb.Text:=floattostr(avgssb);
avgsqa:=totsqa/10;
edavgsqa.Text:=floattostr(avgsqa);
avgsqb:=totsqb/10;
edavgsqb.Text:=floattostr(avgsqb);
//----- hitung standar deviasi
for i := 0 to lbssa.Items.Count-1 do
begin
stdssa:=(stdssa+sqr((strtofloat(lbssa.Items[i])-avgssa)))/9;
end;
for i := 0 to lbssb.Items.Count-1 do
begin
stdssb:=(stdssb+sqr((strtofloat(lbssb.Items[i])-avgssb)))/9;
end;
for i := 0 to lbsqa.Items.Count-1 do
begin
stdsqa:=(stdsqa+sqr((strtofloat(lbsqa.Items[i])-avgsqa)))/9;
end;
for i := 0 to lbsqb.Items.Count-1 do
begin
stdsqb:=(stdsqb+sqr((strtofloat(lbsqb.Items[i])-avgsqb)))/9;
end;
edstdssa.Text:=floattostr(sqrt(stdssa));
edstdssb.Text:=floattostr(sqrt(stdssb));
edstdsqa.Text:=floattostr(sqrt(stdsqa));
edstdsqb.Text:=floattostr(sqrt(stdsqb));
//-----hitung normalisasi
for i := 0 to lbssa.Items.Count-1 do
begin
ssna:=(strtofloat(lbssa.Items[i])-avgssa)/stdssa;
lbSSNA.Items.Add(floattostr(ssna)) ;
end;
for i := 0 to lbssb.Items.Count-1 do
begin
ssnb:=(strtofloat(lbssb.Items[i])-avgssb)/stdssb;
lbSSNB.Items.Add(floattostr(ssnb)) ;
end;
for i := 0 to lbsqa.Items.Count-1 do
begin
sqna:=(strtofloat(lbsqa.Items[i])-avgsqa)/stdsqa;
lbSQNA.Items.Add(floattostr(sqna)) ;
end;
for i := 0 to lbsqb.Items.Count-1 do
begin
sqnb:=(strtofloat(lbsqb.Items[i])-avgsqb)/stdsqb;
lbSQNB.Items.Add(floattostr(sqnb)) ;
end;
//----- hitung euclidean distance
for i:=0 to lbssna.Items.Count-1 do
begin
distancea:=distancea+sqr(strtofloat(lbssna.Items[i])-
strtofloat(lbsqna.items[i]));
end;
for i:=0 to lbssnb.Items.Count-1 do
begin
distanceb:=distanceb+sqr(strtofloat(lbssnb.Items[i])-
strtofloat(lbsqnb.items[i]));
end;
eddistancea.Text:=floattostr(sqrt(distancea));
eddistanceb.Text:=floattostr(sqrt(distanceb));
//-----kesimpulan
if distancea<distanceb then
edconclusion.Text:='User is in Room A'
else if distancea>distanceb then
edconclusion.Text:='User is in Room B'
else
edconclusion.Text:='Not Defined';
end;

Anda mungkin juga menyukai