1. PENGERTIAN TDMA
TDMA memberikan satu pita frekuensi untuk dipakai beberapa pelanggan. Jadi kanal-kanal komunikasi dirupakan dalam bentuk slot-slot waktu. Slot waktu adalah berapa lama seorang pelanggan mendapat giliran untuk memakai pita frekuensi.
Satu slot waktu digunakan oleh satu pelanggan. Slot-slot waktu ini dibingkai dalam satu periode yang disebut satu frame. Jadi misalkan ada 10 pelanggan yang masing-masing adalah A, B, C, D, E, F, G, H, I, dan J, maka dalam satu frame terdapat 10 slot waktu yang merupakan giliran tiap pelanggan untuk menggunakan pita frekuensi yang sama.
Proses komunikasi multi-access dilakukan dengan menjalankan frame ini berulang- ulang sehingga akan muncul urutan giliran pemakaian saluran seperti: A-B-C-D-E-F-G-H-I-J-A-B-C-D- E-F-G-H-I-J-A-B-C dan seterusnya. Tentu saja harus ada pembatasan jumlah pelanggan yang menggunakan satu pita frekuensi ini. Jika tidak dibatasi, periode frame akan terlalu panjang dan akibatnya timbul komunikasi terputus-putus yang mengganggu pembicaraan.
Karena sifatnya yang tidak kontinyu (tidak terjadi pemakaian pita frekuensi terus menerus oleh satu pelanggan dalam satu periode pembicaraan), maka teknik TDMA hanya dapat mengakomodasi data digital atau modulasi digital. Sehingga sinyal-sinyal analog yang akan dikirim, harus diubah menjadi format digital dahulu.
2. CARA KERJA TDMA
Setiap daerah layanan dalam sistem telepon seluler dibagi menjadi beberapa kolom. Setiap kolomnya digunakan kurang lebih satu hingga tujuh kali dari kanal-kanal yang tersedia.
Kolom telepon digital merubah panggilan telepon menjadi digital sebelum berhubungan. Kolom ini menyediakan tempat yang besar dan dengan baik menaikkan kapasitas dari setiap kolom. TDMA mengambil setiap kanal dan membelahnya menjadi tiga kali celah.
Setiap pembicaraan di telepon mendapat sinyal radio untuk satu hingga tiga kali, dan sistem tersebut secara cepat merubah dari satu telepon ke telepon yang lain. Hal ini diserahkan ke time-division multiplexing. Karena sinyal digital sangat ditekan, pergantian diantara tiga pembicaraan yang berbeda di telepon disempurnakan dengan tidak menghilangkan informasi.
Hasilnya berupa sistem yang mempunyai tiga kali dari kapasitas sebuah sistem analog dan menggunakan kanal yang sama tanpa TDMA. Sebuah kolom yang menggunakan TDMA dapat menangani 168 penggilan yang tidak teratur secara menyeluruh. TDMA juga digunakan dalam GSM yang merupakan dasar dari PCS (Personal Communication Service).
Dengan PCS, kanalnya dibagi menjadi delapan bagian. Pengoperasian TDMA membutuhkan kontrol outlink semua bagian pengatur yang berisi beberapa informasi kontrol. Pembawa outlink ini juga memiliki struktur bingkai yang menyediakan informasi waktu akurat untuk semua bagian pengontrol.
Peralatan teleport sentral komputer VSAT mengatakan ke setiap situs slot waktu khusus untuk digunakan dalam struktur TDMA dan rencana informasi ini disiarkan ke semua bagian secara berkala.
Rencana waktu ledakan mungkin sudah ditetapkan, sehingga setiap bagian mengalokasikan proporsi tertentu dari keseluruhan struktur waktu TDMA atau mungkin bersifat dinamis, dimana slot waktu yang ditempatkan, disesuaikan sebagai tanggapan terhadap kebutuhan lalu lintas setiap bagian.
Sumber :
http://www.zikrillah.com/2013/02/pengertian-fdma-tdma-dan-cdma.html
http://alamsyah-informatika.blogspot.co.id/2011/05/perbedaan-fdma-cdma-dan-tdma.html
Pengertian TDMA (Time Division Multiple Access) dan Cara Kerja TDMA
Posted by RZDev: Belajar Programming! on Wednesday, October 25, 2017
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
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