Rabu, 26 Juni 2013

Program hitung jalur terpendek

IGS (International GNSS Service) adalah suatu organisasi internasional yang merupakan kumpulan dari agensi di seluruh dunia yang mengumpulkan sumber dan data permanen dari stasion GNSS dan memelihara sistem GNSS. IGS menyediakan data dan produk berkualitas tinggi yang digunakan untuk kepentingan penelitian ilmiah, aplikasi multidisiplin, pendidikan, yang merupakan salah satu komponen kunci penghubung ke ITRF sebagai kerangka realisasi sistem koordinat referensi global. Setiap negara berkontribusi dalam IGS dengan membangun stasiun-stasiun IGS di seluruh dunia dan saat ini IGS menangani dua stasiun GNSS, yaitu GPS dan GLONASS.

CORS (Continuously Operating Reference Stations) adalah suatu teknologi berbasis GNSS yang berwujud sebagai suatu jaring kerangka geodetik yang pada setiap titiknya dilengkapi dengan receiver yang mampu menangkap sinyal dari satelit-satelit GNSS yang beroperasi secara kontinyu 24 jam per hari, 7 hari per minggu dengan mengumpulkan, merekam, mengirim data, dan memungkinkan para pengguna memanfaatkan data untuk penentuan posisi, baik secara post-processing maupun real-time.

CORS menyediakan data pengamatan kode (C/A, P1, dan P2) dan data fase (L1 dan L2), GPS ephemerides, dan koreksi untuk DGPS, model ionosfir, troposfer, dan lain-lain. Data yang diamati dapat diatur dan disesuaikan dengan keperluan. Data dapat disimpan per jam atau per hari, dengan selang waktu pengamatan per 1 detik, 5 detik, 10 detik, 15 detik, dan 30 detik, kemudian dikirim melalui jarring telekomunikasi berkecepatan tinggi ke pusat pengendali jaringan untuk selanjutnya disimpan, didistibusikan, atau diolah untuk kepentingan lainnya. Selain menyediakan data-data tersebut, CORS juga menyediakan layanan untuk pengolahan data GPS secara online, transformasi datum, sistem proyeksi, dan penentuan tinggi ortometrik, yang semuanya dapat diakses dalam waktu 15 menit sejak pengguna mengirimkan data yang ingin diolah sampai data selesai diolah dan dikirimkan langsung melalui email kepada pengguna.

Stasiun CORS dibangun permanen dan ditentukan koordinatnya yang diukur setiap hari, kemudian ditempatkan receiver diatasnya. Jaringan stasiun CORS dikontrol jarak jauh dan diawasi dengan menggunakan sistem jaminan kualitas yang diotomatisasi, serta dilakukan pemeliharaan secara ilmiah. Selain itu sistem CORS terintegrasi dengan International Earth Rotation and Reference System Service, sehingga memberikan posisi yang bereferensi global dan datanya dapat diakses lewat internet oleh pengguna.
Tujuan utama dibangun CORS adalah sebagai titik ikat yang memiliki radius cukup dekat dengan titik pengukuran untuk memperoleh kualitas data yang baik. Dalam hal titik ikat yang mengacu pada satu referensi global dengan cakupan luas dan jarak baseline panjang, tidak hanya kerangka CORS yang dapat dijadikan sebagai referensi dalam pengukuran bidang tanah di Indonesia. Keberadaan stasiun-stasiun IGS sebenarnya dapat juga dijadikan sebagai referensi dalam pengukuran batas bidang tanah di Indonesia. Cakupan IGS sangat luas dan bervariasi jika dibandingkan dengan cakupan dari kerangka CORS bisa mencapai beberapa ratus kilometer. Namun ada banyak kendala jika kita menggunakan IGS sebagai titik ikat langsung pengukuran bidang tanah. Selain akan mempengaruhi nilai ketelitian yang dihasilkan dikarenakan jarak yang jauh, pengolahan data dari pengukuran yang terikat pada IGS juga membutuhkan kemampuan perangkat lunak yang memadai dan tidak mudah dalam pengolahannya. Untuk itu diperlukan SDM (Sumber Daya Manusia) yang memadai dan berkualitas agar strategi pengolahan data yang diterapkan dapat menghasilkan data yang berkualitas.
Karena CORS digunakan sebagai titik acuan yang digunakan untuk berbagai aplikasi yang menuntut ketelitian tinggi, posisi CORS sendiri harus memiliki kualitas yang baik. Posisinya terus dipantau dan terus diperbaharui terutama jika terjadi pergerakan di bawah tanah tempat stasiun CORS berada, CORS mampu mengakomodir adanya pergerakan lempeng dalam skala lokal maupun global, dan ditentukan dengan mengolah data dari stasiun-stasiun CORS lain yang merupakan bagian dari jaringan CORS global yang sudah ada, dengan metode double-difference untuk mengeliminir kesalahan jam atom pada satelit GPS.

Prediksi IGS Ultra rapid berdasarkan dari data 25 sampai 40 jaringan stasiun. Dengan 2 kali sehari pembaruan data (di internet setiap selang 3 jam). Mempunyai Ephemeris 24 jam ERD kurang dari 10 cm dan kesalahan prediksi selama 2 jam kurang dari 20 cm.
IGS Ultra Rapid termasuk pesan NAV yang sesuai dengan data kesalahan  dalam bentuk SP-3 format secara dual presisi, dan bila menunjukkan kesalahan maka tidak akan menunjukkan tanda orbit. Berapa kelebihan yang didapatkan bila IGS Ultra Rapid digunakan secara bersamaan dengan GPS generasi 3 (yang memiliki L1, L2, dan L5) antara lain:
1.      Kalibrasi kesalahan waktu ( < 1 ns dengan pengolahan data yang baik )
2.      Pengkoreksian kesalahan ynag disebabkan Ionosfer menggunakan Model Broadcast  ( << 1 ns, Pengukuran Dual or Three Frequency)
3.      Pengkoreksian GPS Broadcast Clock ( < 1 ns, AOD rendah)
4.      Pengkoreksian GPS Broadcast Orbit ( < 1 ns, AOD rendah)
5.      Koreksi kesalahan jumlah pesan navigasi GPS  ( < 0.1 ns )
6.      Mampu mengurangi kesalahan multipath  ( << 1 – ns, dengan sedikit bantuan antena serta penerima sinyal yang baik )
7.      Dapat mengurangi kesalahan estimasi dari pengukuran yang disebabkan oleh Troposfer.  ( < 1 ns)
8.      Mampu mengkoreksi efek kesalahan yang ada di bumi akibat posisi pengguna atau receiver GPS.  ( < 0.1 ns,  menggunakan Earth Tide Models)
9.      Multi-channel Receiver Noise ( << 1 ns )
Utilitas dari IGS adalah sedemikian rupa sehingga sangat penting untuk definisi dan pemeliharaan Internasional Terestrial Reference System (dan "realisasi bingkai" berbagai ITRF92, ITRF94, ITRF96, dll).

Daftar pustaka:
http://titikcerah.wordpress.com/2011/03/26/igs-ultra-rapid-rapid-final-orbit/

PERATAAN HITUNGAN BUNDLE ADJUSTMENT

#include<iostream.h>
#include<conio.h>
#include<math.h>

void main()
{
int ba1=100; ba2=150; ba3=110; ba4=120; ba5= 130; bb1= 90; bb2=130; bb3=100; bb4=110; bb5=120; A=100; HA=100; d1=45; d1=40; d3=50; d4=55; d5=60; m1=30; m2=35; m3=40; m4=45; m5=50;
float ti=1.5; s1=10.0; s2=15.2; s3=20.5; s4=25.0; s5=25.5; bt1; bt2; bt3; bt4; bt5; h1; h2; h3; h4; h5;

clrscr();
bt1=(ba1+bb1)/2/1000;
bt2=(ba2+bb2)/2/1000;
bt3=(ba3+bb3)/2/1000;
bt4=(ba4+bb4)/2/1000;
bt5=(ba5+bb5)/2/1000;

h1=d1+m1/60.0+s1/3600;
h2=d2+m2/60.0+s2/3600;
h3=d3+m3/60.0+s3/3600;
h4=d4+m4/60.0+s4/3600;
h5=d5+m5/60.0+s5/3600;

D1=A*(ba1-bb1)/1000*h1;
D2=A*(ba2-bb2)/1000*h2;
D3=A*(ba3-bb3)/1000*h3;
D4=A*(ba4-bb4)/1000*h4;
D5=A*(ba5-bb5)/1000*h5;

cout<<"program untuk menghitung jarak optis"<<endl;
cout<<"\n masukkan tinggi alat (m)=";
cin>> ti;
for (int i=1; i<=5, i++)
{
cout<<"\n untuk hitungan ke 1"<<(i+1)<<endl;
cout<<"masukkan nilai ba=";
cin>>ba[i];
cout<<"masukkan nilai bt =";
cin>>bt[i];
cout<<"masukkan nilai bb=";
cin>>bb[i];
cout<<"masukkan nilai h=";
cin>>h[i];
cout<<"baca skala (dms)=";
cin>> d[i]>>m[i]>>s[i];
pi=atan(1)*4.0;

d[i]=A*((ba[i]/1000.0)-(bb[i]/1000.0))*pow(cos(h[i]),2);
bda[i]=d[i]*tan(h[i])+ti-(bt[i]/1000.0);
}

All about Fuzzy


Pengertian Fuzzy
1.     Logika Fuzzy adalah peningkatan dari logika Boolean yang berhadapan dengan konsep kebenaran sebagian. Di mana logika klasikmenyatakan bahwa segala hal dapat diekspresikan dalam istilah binary (0 atau 1, hitam atau putih, ya atau tidak), logika fuzzy menggantikan kebenaran boolean dengan tingkat kebenaran. Logika Fuzzy memungkinkan nilai keanggotaan antara 0 dan 1, tingkat keabuan dan juga hitam dan putih, dan dalam bentuk linguistik, konsep tidak pasti seperti "sedikit", "lumayan", dan "sangat". Dia berhubungan dengan set fuzzy dan teori kemungkinan. Dia diperkenalkan oleh Dr. Lotfi Zadeh dari Universitas California, Berkeley pada 1965.
2.       Fuzzy Logic (Logika Fuzzy) atau biasa juga disebut dengan Logika Samar merupakan suatu cara yang tepat untuk memetakan suatu ruang input ke dalam suatu ruang output didasari oleh konsep himpunan fuzzy.
Logika fuzzy sebagai komponen utama pembangun softcomputing, terbukti telah memiliki kinerja yang sangat baik untuk menyelesaikan masalah-masalah yang mengandung ketidakpastian. Implementasinya luas, baik di bidang engineering, psikologi, social, dan juga bidang ekonomi.
ALASAN MENGGUNAKAN LOGIKA FUZZY
Ada beberapa alasan mengapa orang menggunakan logika fuzzy, antara lain:
1.     Konsep logika fuzzy mudah dimengerti. Konsep matematis yang mendasari penalaran fuzzy sangat sederhana dan mudah dimengerti.
2.     Logika fuzzy sangat fleksibel.
3.     Logika fuzzy memiliki toleransi terhadap data-data yang tidak tepat.
4.     Logika fuzzy mampu memodelkan fungsi-fungsi non linier yang sangat kompleks.
5.     Logika fuzzy dapat membangun dan mengaplikasikan pengalaman-pengalaman para pakar secara langsung tanpa harus melalui proses pelatihan.
6.     Logika fuzzy dapat bekerjasama dengan teknik-teknik kendali secara konvensional.
7.     Logika fuzzy didasarkan pada bahasa alami

HIMPUNAN FUZZY
Tahun 1965, Profesor L.A. Zadeh memperkenalkan teori himpunan fuzzy, yang secara tidak langsung mengisyaratkan bahwa tidak hanya teori probabilitas saja yang dapat merepresentasikan ketidakpastian. Teori himpunan fuzzy adalah merupakan perluasan dari teori logika Boolean yang menyatakan tingkat angka 1 atau 0 atau pernyataan benar atau salah, sedang pada teori logika fuzzy terdapat tingkat nilai, yaitu :
1.     satu (1), yang berarti bahwa suatu item menjadi anggota dalam suatu himpunan, atau
2.     nol (0), yang berarti bahwa suatu item tidak menjadi anggota dalam suatu himpunan.

Ada beberapa hal yang perlu diketahui dalam memahami sistem fuzzy, yaitu:
a. Variabel Fuzzy
Variabel fuzzy merupakan variabel yang hendak dibahas dalam suatu sistem fuzzy.
b. Himpunan Fuzzy
Himpunan fuzzy merupakan suatu grup yang mewakili suatu kondisi atau keadaan
tertentu dalam suatu variabel. c. Semesta Pembicaraan
Semesta pembicaraan adalah keseluruhan nilai yang diperbolehkan untuk
dioperasikan dalam suatu variabel fuzzy. Semesta pembicaraan merupakan
himpunan bilangan real yang senantiasa naik (bertambah) secara monoton dari kiri
ke kanan. Nilai semesta pembicaraan dapat berupa bilangan positif maupun
negatif. Adakalanya nilai semesta pembicaraan ini tidak dibatasi batas atasnya.
d. Domain
Domain himpunan fuzzy adalah keseluruhan nilai yang diijinkan dalam semesta
pembicaraan dan boleh dioperasikan dalam suatu himpunan fuzzy. Seperti halnya
semesta pembicaraan, domain merupakan himpunan bilangan real yang senantiasa
naik (bertambah) secara monoton dari kiri ke kanan. Nilai domain dapat berupa
bilangan positif maupun negatif.

Sumber: 
http://id.shvoong.com/social-sciences/economics/2236313-teori-fuzzy/#ixzz26uDMq2mJ

Program

Buatlah program pembuatan jalur terpendek antar kota dengan nama kota A, B, C, D, dan E dengan rincian jarak antar kota sebagai berikut :
A ke B = 200km
B ke C = 100km
C ke D = 150km
D ke E = 120km

E ke A = 95km

Analisis matriks

HUB
A
B
C
D
E
A
0
1
2
2
1
B
1
0
1
2
2
C
2
1
0
1
2
D
2
2
1
0
1
E
1
2
2
1
0

Jarak
A
B
C
D
E
A
0
200
0
0
95
B
200
0
100
0
0
C
0
100
0
150
0
D
0
0
150
0
120
E
95
0
0
120
0

tetangga
A
B
C
D
E
A
0
1
0
0
1
B
1
0
1
0
0
C
0
1
0
1
0
D
0
0
1
0
1
E
1
0
0
1
0

HUB JARAK ALTERNATIF
A
B
C
D
E
A
0
dab
dac
dad
dae
B
dab
0
dbc
dbd
dbe
C
dac
dbc
0
dcd
dce
D
dad
dbd
dcd
0
dde
E
dae
dbe
dce
dde
0

Matriks H.J.A
A
B
C
D
E
A
0
1
1
1
1
B
1
0
1
1
1
C
1
1
0
1
1
D
1
1
1
0
1
E
1
1
1
1
0

Program hubungan jalur jalan

#include <conio.h>
#include <stdio.h>
#include <iostream.h>
#include <iomanip.h>

main()
{
      char jalur,awal,akhir,jawab;

 //input awal dan akhir
   atas:
   clrscr();
   cout<<"daftar titik = A, B, C, D, E \n";
   cout<<"awal jalur : ";
   cin>>awal;
   cout<<" , akhir jalur : ";
   cin>>akhir;
   cout<<endl;

 //deklarasi jalur
   if((awal=='A'||awal=='a')&&(akhir=='B'||akhir=='b'))
      cout<<"jalur 1";
   else
   if((awal=='A'||awal=='a')&&(akhir=='C'||akhir=='c'))
      cout<<"jalur 2";
   else
   if((awal=='A'||awal=='a')&&(akhir=='D'||akhir=='d'))
      cout<<"jalur 3";
   else
   if((awal=='A'||awal=='a')&&(akhir=='E'||akhir=='e'))
      cout<<"jalur 4";
   else
   if((awal=='B'||awal=='b')&&(akhir=='A'||akhir=='a'))
      cout<<"jalur 5";
   else
   if((awal=='B'||awal=='b')&&(akhir=='C'||akhir=='c'))
      cout<<"jalur 6";
   else
   if((awal=='B'||awal=='b')&&(akhir=='D'||akhir=='d'))
      cout<<"jalur 7";
   else
   if((awal=='B'||awal=='b')&&(akhir=='E'||akhir=='e'))
      cout<<"jalur 8";
      else
   if((awal=='C'||awal=='c')&&(akhir=='A'||akhir=='a'))
      cout<<"jalur 9";
   else
   if((awal=='C'||awal=='c')&&(akhir=='B'||akhir=='b'))
      cout<<"jalur 10";
   else
   if((awal=='C'||awal=='c')&&(akhir=='D'||akhir=='d'))
      cout<<"jalur 11";
   else
   if((awal=='C'||awal=='c')&&(akhir=='E'||akhir=='e'))
      cout<<"jalur 12";
      else
   if((awal=='D'||awal=='d')&&(akhir=='A'||akhir=='a'))
      cout<<"jalur 13";
   else
   if((awal=='D'||awal=='d')&&(akhir=='B'||akhir=='b'))
      cout<<"jalur 14";
   else
   if((awal=='D'||awal=='d')&&(akhir=='C'||akhir=='c'))
      cout<<"jalur 15";
   else
   if((awal=='D'||awal=='d')&&(akhir=='E'||akhir=='e'))
      cout<<"jalur 16";
      else
   if((awal=='E'||awal=='e')&&(akhir=='A'||akhir=='a'))
      cout<<"jalur 17";
   else
   if((awal=='E'||awal=='e')&&(akhir=='B'||akhir=='b'))
      cout<<"jalur 18";
   else
   if((awal=='E'||awal=='e')&&(akhir=='C'||akhir=='c'))
      cout<<"jalur 19";
   else
      cout<<"jalur 20";

      cout<<endl;
      cout<<"selesai?[y/n]";
jawab=getche();
   if(jawab=='n'||jawab=='N')
   goto atas;
   getch();
}

Program hitungan jarak

#include <iostream.h>
#include <conio.h>
#include <string.h>
int main()
{
    char kataA,kataB,kataC,kataD,kataE;
    int hasilA,hasilB,hasilC,hasilD,hasilE,hasilF,x;
    cout<<"\t\t menentukan jarak alternatif antar kota\n";
    cout<<"\t\t ===========================\n";
    cout<<"Graf 5 simpul\n";
    cout<<"Simpul Pertama:";
    cin>>kataA;
    cout<<"Simpul Kedua:;
    cin>>kataB;
    cout<<"Simpul Ketiga:";
    cin>>kataC;
    cout<<"Simpul Keempat:";
    cin>>kataD;
    cout<<"Simpul Kelima:";
    cin>>kataE;
    cout<<"Sisi-sisnya adalah:";
    cout<<kataA<<kataB<<",";
    cout<<kataA<<kataC<<",";
    cout<<kataA<<kataD<<",";
    cout<<kataA<<kataE<<",";
    cout<<kataB<<kataC<<",";
    cout<<kataB<<kataD<<",";
    cout<<kataB<<kataE<<",";
    cout<<kataC<<kataD<<",";
    cout<<kataC<<kataE<<",";
    cout<<kataC<<kataD<<kataE<<endl<<endl;
    cout<<"Jarak"<<kataA<<"ke"<<kataB<<":";cin>>hasilA;
    cout<<"Jarak"<<kataA<<"ke"<<kataC<<":";cin>>hasilB;
    cout<<"Jarak"<<kataA<<"ke"<<kataD<<":";cin>>hasilC;
    cout<<"Jarak"<<kataA<<"ke"<<kataE<<":";cin>>hasilD;
    cout<<"Jarak"<<kataB<<"ke"<<kataC<<":";cin>>hasilE;
    cout<<"Jarak"<<kataB<<"ke"<<kataD<<":";cin>>hasilF;
    cout<<"Jarak"<<kataB<<"ke"<<kataE<<":";cin>>hasilG;
    cout<<"Jarak"<<kataC<<"ke"<<kataD<<":";cin>>hasilH;
    cout<<"Jarak"<<kataC<<"ke"<<kataE<<":";cin>>hasilI;
    cout<<endl<<endl;
    float d =hasilA+hasilB+hasilC+hasilD+hasilE+hasilF+hasilG+hasilH+hasilI;
    cout<<"panjang jarak pada graf totalnya ="<<d<<endl<<endl;
    cout<<"Mau cari alternatif : \n";
    cout<<"1.AD 2.CB\n";
    cout<<"pilihan =";;cin>>x;
    float a =hasilA+hasilB;
    float b =hasilA+hasilC;
    float c =hasilA+hasilD;
    float d =hasilA+hasilE;
    float e =hasilB+hasilC;
    float f =hasilD+hasilD;
    float g =hasilB+hasilE;
    float h =hasilC+hasilD;
    float i=hasilC+hasilE;
    if(x==1)
{
cout<<"Alternatif ke-1:"<<kataA<<kataB<<kataC<<kataD<<kataE<<"="<<e<<endl;
cout<<"Alternatif ke-2:"<<kataA<<kataB<<kataD<<kataE<<"="<<f<<endl;
cout<<"Alternatif ke-3:"<<kataA<<kataC<<kataD<<kataE<<"="<<g<<endl;
cout<<"Alternatif ke-4:"<<kataA<<kataC<<kataB<<kataD<<"="<<h<<endl;
cout<<"Alternatif ke-5:"<<kataA<<kataB<<kataC<<kataE<<"="<<h<<endl;
int array[]={a,b,c,d,e};
int terkecil=array[1];
for(int i=1;i<array[0];i++)
{
if(terkecil>array[i]) terkecil = array[i];
}
cout<<"Alternatif ke-6:"<<kataA<<kataE<<"="<<i<< endl;
cout<<"jadi jarak terpendeknya sepanjang="<<terkecil<<endl<<endl;
}
else if(x==2)
{
cout<<"Alternatif ke-1:"<<kataC<<kataD<<kataE<<kataA<<kataB<<"="<<j<<endl;
cout<<"Alternatif ke-2:"<<kataC<<kataE<<kataA<<kataB<<"="<<k<<endl;
cout<<"Alternatif ke-3:"<<kataC<<kataD<<kataE<<kataB<<"="<<l<<endl;
cout<<"Alternatif ke-4:"<<kataC<<kataA<<kataD<<kataE<<kataB<<"="<<m<<endl;
cout<<"Alternatif ke-5:"<<kataC<<kataB<<"="<<n<<endl;
int array2[] = {f,g,h,i};
int terkecil2=array2[1];
for(int i=1; i<array2[0]; i++)
{
 if(terkecil2>array2[i]) terkecil2 = array2[i];
}
   cout<<"jadi jarak terpendeknya sepanjang = "<<terkecil2<<endl<<endl;
}
    getch();
    return 0;

}