1. PENGERTIAN CDMA
CDMA (Code Division Multiple Access) adalah penggunaan secara bersama-sama sebuah band frekuensi transpender satelit oleh beberapa sinyal carrier dimana setiap carrier akan menduduki frekuensi yang sama pada waktu yang bersamaan (paralel), setiap sinyal akan mempunyai karakteristik identifikasi/kode yang berlainan.
CDMA sendiri adalah yang paling baru dibandingkan FDMA dan TDMA. CDMA berawal tahun 1949 C.Shannon dan R.Pierce menyampaikan ide dasar CDMA.
CDMA merupakan teknik temuan yang paling luar biasa karena kanal yang satu dengan lainnya tidak dibedakan dari frekuensi/FDMA atau waktu/TDMA yang secara awam lebih mudah dipahami, melainkan dengan perbedaan kode. Jadi CDMA seluruh pelanggan menggunakan frekuensi yang sama pada waktu yang sama juga.
Ada yang menyebutkan CDMA itu DSSS atau direct sequence spread spectrum merupakan salah satu dari dua jenis teknik murni spread spectrum multiple access SSMA. Jenis lainnya adalah FHMA frequency hopping spread spectrum. Keduanya tergolong SSMA karena sinyalnya tersebar pada spektrum pita frekuensi yang lebar.
CDMA proses penyebaran sinyal diperoleh akibat perkalian data input dengna kode PN.
Walau pita frekuensi lebar, tegangan sinyal terbilang kecil, menerupai noise yang selalu menyertai gelombang radio. Sehingga apabila dimonitor oleh penerima lain, sinyal yang dipancarkan oleh pengirim berbasis CDMA hanya berupa noise yang tidak mengganggu.
Kemampuan CDMA untuk tahan terhadap jamming pada pita frekuensi sempit. Karena jamming pada pita sempit itu tidak akan mengganggu sinyal - sinyal CDMA yang tersebar di frekuensi lain.
2. CARA KERJA CDMA
CDMA menggunakan kode-kode tertentu yang unik untuk mengatur setiap panggilan yang berlangsung. Kode yang unik ini juga akan mengeliminir kemungkinan terjadinya komunikasi silang atau bocor.
CDMA tidak menggunakan satuan waktu seperti layaknya GSM/TDMA. ini menjadikan CDMA memiliki kapasitas jaringan yang lebih besar dibandingkan dengan jaringan GSM. Namun, hal ini tidak berarti jaringan CDMA akan lebih baik daripada jaringan GSM karena tetap ada batasan-batasan tertentu untuk kapasitas jaringan yang dimiliki oleh CDMA.
Seperti jaringan GSM, analogi yang sederhana untuk memudahkan Anda memahami prinsip kerja jaringan CDMA.
Analoginya seperti ini: jika jaringan GSM diumpamakan sebagai armada taksi, maka jaringan CDMA bisa diumpamakan sebagai sebuah bus. Sebuah bus (diumpamakan sebagai frekuensi) bisa menangani banyak penumpang bus (pengguna yang melakukan panggilan). Hal ini dimungkinkan karena setiap penumpang menggunakan kode tertentu yang unik. Hal ini juga yang memungkinkan tidak terjadinya komunikasi silang atau bocor.
Setiap penumpang bisa berbicara dan menentukan tujuannya tanpa takut terganggu ataupun mengganggu penumpang lain. Bus ini juga tidak akan dimonopoli oleh satu orang saja, sehingga setiap orang bisa menggunakan bus tersebut untuk mengantarkan mereka ke tempat tujuannya masing-masing.
Namun, seperti layaknya sebuah bus, jika sudah terlalu banyak penumpang maka jalannya semakin berat dan kenyamanan penumpang akan terganggu (isi dalam bus akan semakin sesak). Hal yang sama juga terjadi di jaringan CDMA yaitu jika jaringan sudah terlalu penuh, maka yang terjadi adalah penyusutan coverage area (ruang lingkup atau jangkauan) dan jaringan CDMA itu sendiri. Jika diumpamakan, semakin sesak isi bus maka ruang gerak setiap penumpang juga akan menyempit. Tidak jarang pula kualitas suara menjadi korban dan penuhnya jaringan CDMA.
Sistem telepon selular berbasis digital, baik itu GSM maupun CDMA memiliki kelebihan dan kekurangannya masing-masing. Untuk area yang lebih padat penggunaannya, teknologi CDMA tampaknya lebih unggul untuk melayani banyak sambungan secara bersamaan. Hal ini disebabkan oleh karakteristik dan jaringan CDMA itu sendiri. Dengan menggunakan jaringan CDMA, sebuah daerah yang padat penggunaannya akan memiliki kemungkinan koneksi yang lebih tinggi, walaupun bisa jadi terjadi penurunan coverage area dan kualitas suara jika beban jaringan terlalu tinggi.
Teknologi GSM pada intinya lebih sesuai untuk daerah yang tidak terlalu padat, namun sangat membutuhkan coverage area yang konstan. Selain itu, area perkotaan sekarang memiliki banyak gedung bertingkat. Karakter geografis seperti ini sangat berpotensi memperlemah sinyal sehingga coverage area semakin kecil.
Sumber :
http://www.zikrillah.com/2013/02/pengertian-fdma-tdma-dan-cdma.html
http://ujangfalahpurnama.blogspot.co.id/2014/02/cara-kerja-gsm-dan-cdma.html
Pengertian CDMA (Code Division Multiple Access) dan Cara Kerja CDMA
Posted by RZDev: Belajar Programming! on Wednesday, October 25, 2017
Berikut adalah tugas slide presentasi powerpoin, Pengelompokkan media transmisi, Wired and Wireless Communication, Radio Communication, Fiber Optic. Semoga bermanfaat & terima kasih!
Berikut contoh program menghitung dengan Regula Falsi metode numerik.
#include<iostream>
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<string.h>
#include<process.h>
using namespace std;
// Deklarasi Formulanya
#define EPS 0.00001
#define f(x) (pow(2.718,-x)-x)
int n;
void FAL_POS();
int main()
{
cout <<"Metode Regula-Falsi "<< endl;
cout <<"Equation is -> f(x)=(e^-x)-x "<< endl;
cout <<"Masukkan Iterasi Maximum : "; cin >> n;
FAL_POS();
getch();
}
void FAL_POS()
{
float x1,x2,x0;
float f1,f2,f0;
int itr=n,i;
for(x1=0.0;;)
{
f1=f(x1);
if(f1>0)
break;
else
x1=x1+0.1;
}
x0=x1-0.1;
f0=f(x0);
printf("\n----------------------------------------------------");
printf("\n ITERATION\t x2\t\t\t F(X)\n");
printf("\n----------------------------------------------------\n");
for(i=0;i<itr;i++)
{
x2=x0-((x1-x0)/(f1-f0))*f0;
f2=f(x2);
if(f0*f2>0)
{
x1=x2;
f1=f2;
}
else
{
x0=x2;
f0=f2;
}
if(fabs(f(2))>EPS)
printf("\n %d \t %.7f \t %.7f ",i+1,x2,f2);
}
printf("\n----------------------------------------------------");
printf("\n Result = %.10f ",x2);
printf("\n----------------------------------------------------");
}
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<string.h>
#include<process.h>
using namespace std;
// Deklarasi Formulanya
#define EPS 0.00001
#define f(x) (pow(2.718,-x)-x)
int n;
void FAL_POS();
int main()
{
cout <<"Metode Regula-Falsi "<< endl;
cout <<"Equation is -> f(x)=(e^-x)-x "<< endl;
cout <<"Masukkan Iterasi Maximum : "; cin >> n;
FAL_POS();
getch();
}
void FAL_POS()
{
float x1,x2,x0;
float f1,f2,f0;
int itr=n,i;
for(x1=0.0;;)
{
f1=f(x1);
if(f1>0)
break;
else
x1=x1+0.1;
}
x0=x1-0.1;
f0=f(x0);
printf("\n----------------------------------------------------");
printf("\n ITERATION\t x2\t\t\t F(X)\n");
printf("\n----------------------------------------------------\n");
for(i=0;i<itr;i++)
{
x2=x0-((x1-x0)/(f1-f0))*f0;
f2=f(x2);
if(f0*f2>0)
{
x1=x2;
f1=f2;
}
else
{
x0=x2;
f0=f2;
}
if(fabs(f(2))>EPS)
printf("\n %d \t %.7f \t %.7f ",i+1,x2,f2);
}
printf("\n----------------------------------------------------");
printf("\n Result = %.10f ",x2);
printf("\n----------------------------------------------------");
}
Sekian script C++ untuk Regula-Falsi Method, jika ada yang ingin ditanyakan bisa melaui komentar dibawah ini atau langsung menghubungi saya melalui contact person yang ada. Terima Kasih & Semoga Bermanfaat
Program C++ Regula Falsi Method (Metode Regula-Falsi)
Posted by RZDev: Belajar Programming! on Saturday, October 21, 2017
Berikut ini merupakan program metode numerik yaitu Bisection Method atau metode bagidua.
#define cek 17
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <cmath>
#include <iomanip>
using namespace std;
float f(float x);
int main()
{
float a,b,c,lebar;
float epsilon;
int i=0;
cout << "METODE BAGI DUA " <<endl;
cout << endl;
cout <<"BATAS PERTAMA (a) : ";
cin >>a;
cout <<"BATAS KEDUA (b) : ";
cin >>b;
cout <<"EPSILON : ";
cin >>epsilon;
cout <<endl <<endl;
if (f(a)*f(b)>0){
return 0;
}
else{
cout <<"i"<<setw(cek)<<"a"<<setw(cek)<<"c"<<setw(cek)<<"b"<<setw(cek)<<"f(a)";
cout <<setw(cek)<<"f(c)"<<setw(cek)<<"f(b)"<<setw(cek)<<"Selang Baru"<<setw(cek)<<"Lebarnya"<<endl;
do
{
c=(a+b)/2;
f(c);
if(c<epsilon || i>40){
return 0;
}
else{
if(f(a)*f(c)<0){
cout <<i<<setw(cek)<<a<<setw(cek)<<c<<setw(cek)<<b<<setw(cek)<<f(a)<<setw(cek);
cout <<f(c)<<setw(cek)<<f(b)<<setw(cek)<<"[A,C]";
b=c;
lebar= abs(b-a);
cout<<setw(cek)<<lebar<<endl;
cout<<endl;
}
else{
cout<<i<<setw(cek)<<a<<setw(cek)<<c<<setw(cek)<<b<<setw(cek)<<f(a)<<setw(cek);
cout<<f(c)<<setw(cek)<<f(b)<<setw(cek)<<"[C,B]";
a=c;
lebar= abs(b-a);
cout<<setw(cek)<<lebar<<endl;
cout<<endl;
}
i++;
}
}
while( (lebar > epsilon) );
cout<<"Hampiran Akarnya = "<<c<<endl;
cout<<"Banyaknya Iterasi : "<<i;
}
getch();
return 0;
}
float f(float x)
{
float e=2.71828182845904523536;
float hasil,hasil2,hasil3,hasil4;
hasil = x*(-1);
hasil3 = pow(e,hasil);
hasil4=hasil3-x;
return (hasil4);
}
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <cmath>
#include <iomanip>
using namespace std;
float f(float x);
int main()
{
float a,b,c,lebar;
float epsilon;
int i=0;
cout << "METODE BAGI DUA " <<endl;
cout << endl;
cout <<"BATAS PERTAMA (a) : ";
cin >>a;
cout <<"BATAS KEDUA (b) : ";
cin >>b;
cout <<"EPSILON : ";
cin >>epsilon;
cout <<endl <<endl;
if (f(a)*f(b)>0){
return 0;
}
else{
cout <<"i"<<setw(cek)<<"a"<<setw(cek)<<"c"<<setw(cek)<<"b"<<setw(cek)<<"f(a)";
cout <<setw(cek)<<"f(c)"<<setw(cek)<<"f(b)"<<setw(cek)<<"Selang Baru"<<setw(cek)<<"Lebarnya"<<endl;
do
{
c=(a+b)/2;
f(c);
if(c<epsilon || i>40){
return 0;
}
else{
if(f(a)*f(c)<0){
cout <<i<<setw(cek)<<a<<setw(cek)<<c<<setw(cek)<<b<<setw(cek)<<f(a)<<setw(cek);
cout <<f(c)<<setw(cek)<<f(b)<<setw(cek)<<"[A,C]";
b=c;
lebar= abs(b-a);
cout<<setw(cek)<<lebar<<endl;
cout<<endl;
}
else{
cout<<i<<setw(cek)<<a<<setw(cek)<<c<<setw(cek)<<b<<setw(cek)<<f(a)<<setw(cek);
cout<<f(c)<<setw(cek)<<f(b)<<setw(cek)<<"[C,B]";
a=c;
lebar= abs(b-a);
cout<<setw(cek)<<lebar<<endl;
cout<<endl;
}
i++;
}
}
while( (lebar > epsilon) );
cout<<"Hampiran Akarnya = "<<c<<endl;
cout<<"Banyaknya Iterasi : "<<i;
}
getch();
return 0;
}
float f(float x)
{
float e=2.71828182845904523536;
float hasil,hasil2,hasil3,hasil4;
hasil = x*(-1);
hasil3 = pow(e,hasil);
hasil4=hasil3-x;
return (hasil4);
}
Sekian script C++ untuk Bisection Method, jika ada yang ingin ditanyakan bisa melaui komentar dibawah ini atau langsung menghubungi saya melalui contact person yang ada. Terima Kasih & Semoga Bermanfaat
Pengertian, Parameter & Faktor Penyebab Menurunnya QoS (Quality of Service)
Posted by RZDev: Belajar Programming! on Tuesday, October 17, 2017
Logic Gate atau Gerbang Logika merupakan dasar pembentukan Sistem Elektronika Digital yang berfungsi untuk mengubah satu atau beberapa Input (masukan) menjadi sebuah sinyal Output (Keluaran) Logis.
Gerbang Logika beroperasi berdasarkan sistem bilangan biner yaitu bilangan yang hanya memiliki 2 kode simbol yakni 0 dan 1 dengan menggunakan Teori Aljabar Boolean.
Gerbang Logika yang diterapkan dalam Sistem Elektronika Digital pada dasarnya menggunakan Komponen-komponen Elektronika seperti Integrated Circuit (IC), Dioda, Transistor, Relay, Optik maupun Elemen Mekanikal.
Post kali ini saya mau berbagi Program Konversi Bilangan Biner, Desimal, Oktal & Hexadesimal. Untuk script dapat di lihat dibawah ini semoga bermanfaat & terbantu ...
Silahkan tanyakan jika ada syntax yang kurang paham, bisa hubungi saya langsung atau beri komentar dibawah ini
#include <stdio.h>
#include <string.h>
void welcome() {
printf("PROGRAM KONVERSI BILANGAN");
}
void cls() {
int i;
for (i=0;i<100;i++) {
printf("\n");
}
}
void biner(int n) {
if (n > 0) {
biner(n/2);
printf("%d",n%2);
}
}
int pangkat(int n,int x) {
int nilai=1,i;
for (i=0;i<x;i++) {
nilai=nilai*n;
}
return nilai;
}
int cekdesimal(int x) {
//checking
if (x < 0) { //no minus
return 1;
}
//end of checking, all is right
return 0;
}
int cekbiner(char str[],int *x) {
int i,dec = 0;
//checking
for (i = 0; i < strlen(str); i++)
{
if ((str[i] - '0' != 1 ) && (str[i] - '0' != 0))
{
return 1;
}
}
//end of checking, all is right
for (i =0; i < strlen(str) ; i++)
{
if (str[i] - '0' == 1) {
dec = dec + pangkat(2,strlen(str)-1-i);
}
}
*x = dec;
return 0;
}
int cekoktal(char str[],int *x) {
int i,dec=0;
//checking
if ((strlen(str) >= 6) && (str[0] > 49)) {
return 1;
}
for (i = 0; i < strlen(str); i++)
{
if (!((str[i] > 47 ) && (str[i] < 56)))
{
return 1;
}
}
//end of checking, all is right
for (i =0; i < strlen(str) ; i++)
{
dec = dec + (str[i] - '0') * pangkat(8,strlen(str)-1-i);
}
*x = dec;
return 0;
}
int cekhexa(char str[],int *x) {
int i,dec=0;
//checking
for (i = 0; i < strlen(str); i++)
{
if (! ( ((str[i] > 47 ) && (str[i] < 58)) || ((str[i] > 96 ) && (str[i] < 103)) || ((str[i] > 64 ) && (str[i] < 71)) ))
{
return 1;
}
}
//end of checking, all is right
for (i =0; i < strlen(str) ; i++)
{
if ((str[i] >= '0' ) && (str[i] <= '9')) {
dec = dec + (str[i] - '0') * pangkat(16,strlen(str)-1-i);
}
else if ((str[i] > '@' ) && (str[i] < 'G')) {
dec = dec + (str[i] - 55) * pangkat(16,strlen(str)-1-i);
}
else if ((str[i] > 96 ) && (str[i] < 'g')) {
dec = dec + (str[i] - 87) * pangkat(16,strlen(str)-1-i);
}
}
*x = dec;
return 0;
}
int main() {
int x,dec;
char oct[6],bin[16],hex[4];
welcome();
while(1) {
printf("\n\n===============================\nBasis Angka Masukan\n1. Desimal\n2. Biner\n3. Oktal\n4. Heksadesimal\nChoose: ");
scanf("%d",&x);
switch(x) {
case 1:
printf("Masukan angka desimal (Maksimal 65535): ");
scanf("%d",&dec);
if(cekdesimal(dec) != 0) {
printf("Input salah");
break;
}
printf("Biner: ");
biner(dec);
printf("\nOktal: %o",dec);
printf("\nHexa: %X",dec);
break;
case 2:
printf("Masukan angka biner (Maksimal 16 bit): ");
scanf("%s",bin);
if(cekbiner(bin,&dec) != 0) {
printf("Input salah");
break;
}
printf("\nDesimal: %d",dec);
printf("\nOktal: %o",dec);
printf("\nHexa: %X",dec);
break;
case 3:
printf("Masukan angka Oktal (Maksimal 177777): ");
scanf("%s",oct);
if(cekoktal(oct,&dec) != 0) {
printf("Input salah");
break;
}
printf("Desimal: %d",dec);
printf("\nBiner: ");
biner(dec);
printf("\nHexa: %X",dec);
break;
case 4:
printf("Masukan angka hexa (Maksimal FFFF): ");
scanf("%s",hex);
if(cekhexa(hex,&dec) != 0) {
printf("Input salah");
break;
}
printf("Desimal: %d",dec);
printf("\nBiner: ");
biner(dec);
printf("\nOktal: %o",dec);
break;
default: printf("Not Present");
} //end case
} //end loop
return 0;
} //end main
#include <string.h>
void welcome() {
printf("PROGRAM KONVERSI BILANGAN");
}
void cls() {
int i;
for (i=0;i<100;i++) {
printf("\n");
}
}
void biner(int n) {
if (n > 0) {
biner(n/2);
printf("%d",n%2);
}
}
int pangkat(int n,int x) {
int nilai=1,i;
for (i=0;i<x;i++) {
nilai=nilai*n;
}
return nilai;
}
int cekdesimal(int x) {
//checking
if (x < 0) { //no minus
return 1;
}
//end of checking, all is right
return 0;
}
int cekbiner(char str[],int *x) {
int i,dec = 0;
//checking
for (i = 0; i < strlen(str); i++)
{
if ((str[i] - '0' != 1 ) && (str[i] - '0' != 0))
{
return 1;
}
}
//end of checking, all is right
for (i =0; i < strlen(str) ; i++)
{
if (str[i] - '0' == 1) {
dec = dec + pangkat(2,strlen(str)-1-i);
}
}
*x = dec;
return 0;
}
int cekoktal(char str[],int *x) {
int i,dec=0;
//checking
if ((strlen(str) >= 6) && (str[0] > 49)) {
return 1;
}
for (i = 0; i < strlen(str); i++)
{
if (!((str[i] > 47 ) && (str[i] < 56)))
{
return 1;
}
}
//end of checking, all is right
for (i =0; i < strlen(str) ; i++)
{
dec = dec + (str[i] - '0') * pangkat(8,strlen(str)-1-i);
}
*x = dec;
return 0;
}
int cekhexa(char str[],int *x) {
int i,dec=0;
//checking
for (i = 0; i < strlen(str); i++)
{
if (! ( ((str[i] > 47 ) && (str[i] < 58)) || ((str[i] > 96 ) && (str[i] < 103)) || ((str[i] > 64 ) && (str[i] < 71)) ))
{
return 1;
}
}
//end of checking, all is right
for (i =0; i < strlen(str) ; i++)
{
if ((str[i] >= '0' ) && (str[i] <= '9')) {
dec = dec + (str[i] - '0') * pangkat(16,strlen(str)-1-i);
}
else if ((str[i] > '@' ) && (str[i] < 'G')) {
dec = dec + (str[i] - 55) * pangkat(16,strlen(str)-1-i);
}
else if ((str[i] > 96 ) && (str[i] < 'g')) {
dec = dec + (str[i] - 87) * pangkat(16,strlen(str)-1-i);
}
}
*x = dec;
return 0;
}
int main() {
int x,dec;
char oct[6],bin[16],hex[4];
welcome();
while(1) {
printf("\n\n===============================\nBasis Angka Masukan\n1. Desimal\n2. Biner\n3. Oktal\n4. Heksadesimal\nChoose: ");
scanf("%d",&x);
switch(x) {
case 1:
printf("Masukan angka desimal (Maksimal 65535): ");
scanf("%d",&dec);
if(cekdesimal(dec) != 0) {
printf("Input salah");
break;
}
printf("Biner: ");
biner(dec);
printf("\nOktal: %o",dec);
printf("\nHexa: %X",dec);
break;
case 2:
printf("Masukan angka biner (Maksimal 16 bit): ");
scanf("%s",bin);
if(cekbiner(bin,&dec) != 0) {
printf("Input salah");
break;
}
printf("\nDesimal: %d",dec);
printf("\nOktal: %o",dec);
printf("\nHexa: %X",dec);
break;
case 3:
printf("Masukan angka Oktal (Maksimal 177777): ");
scanf("%s",oct);
if(cekoktal(oct,&dec) != 0) {
printf("Input salah");
break;
}
printf("Desimal: %d",dec);
printf("\nBiner: ");
biner(dec);
printf("\nHexa: %X",dec);
break;
case 4:
printf("Masukan angka hexa (Maksimal FFFF): ");
scanf("%s",hex);
if(cekhexa(hex,&dec) != 0) {
printf("Input salah");
break;
}
printf("Desimal: %d",dec);
printf("\nBiner: ");
biner(dec);
printf("\nOktal: %o",dec);
break;
default: printf("Not Present");
} //end case
} //end loop
return 0;
} //end main
Program Konversi Bilangan Biner, Desimal, Oktal dan Hexadesimal
Posted by RZDev: Belajar Programming! on Sunday, October 8, 2017
Berikut syntax C++ untuk penjumlahan 2 matriks dengan ordo BEBAS ...
Script ini tidak merupakan gabungan dari program yang menggunakan prosedur, jadi deklarasi silahkan di buat sendiri. Semoga dapat membantu !
void tambah ()
{
system("cls");
cout << "PENJUMLAHAN
MATRIKS " << endl;
do
{
cout << "Jumlah Baris
: "; cin >> baris;
cout << "Jumlah Kolom
: "; cin >> kolom;
}
while
((baris>10)||(kolom>10));
cout << "Matrix
A" << endl;
for(i=0;i<baris;i++)
for(j=0;j<kolom;j++)
{
cout << "data ["
<< i << "," << j << "] = "; cin
>> mA[i][j];
}
cout << "Matrix
B" << endl;
for(i=0;i<baris;i++)
for(j=0;j<kolom;j++)
{
cout << "data ["
<< i << "," << j << "] = "; cin
>> mB[i][j];
}
for(i=0;i<baris;i++)
for(j=0;j<kolom;j++)
hasil[i][j] =
mA[i][j] + mB[i][j];
cout <<
"\nHasilnya ..." << endl;
cout <<
"Matrix A + Matrix B
= Matrix C";
for(i=0;
i<baris; i++)
{
cout<<'\n';
for(j=0;
j<kolom; j++)
cout <<
setw(4) << mA[i][j];
cout <<
" ";
for(j=0;
j<kolom; j++)
cout <<
setw(4) << mB[i][j];
cout <<
" ";
for(j=0;
j<kolom; j++)
cout <<
setw(4) << hasil[i][j];
cout <<
endl;
}
}