Tampilan Pemakaian Bandwidth dari CC - Cutter Berbasis Web
Evan Satria Indrawila 0122112
Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha Jalan Prof. Drg. Suria Sumantri 65
Bandung 40164, Indonesia Email: satriaevan@yahoo.com
ABSTRAK
Penggunaan akses internet secara massal seperti di perkantoran, warnet dan tempat lainnya akan mengakibatkan turunnya performansi jaringan seiring dengan peningkatan jumlah penggunanya. Apalagi jika bandwidth yang ada tidak dikelola sebaik mungkin.
CC-Cutter atau Cyber Cost Cutter merupakan alat untuk mengontrol
penggunaan bandwidth internet, sehingga pemakaian bandwidthnya tidak akan melebihi jatah akses yang sudah ditentukan.
Dalam Tugas Akhir ini, akan direalisasikan perangkat lunak untuk menampilkan data rata-rata pemakaian bandwidth dari CC-Cutter dalam bentuk halaman web, agar users dapat dengan mudah memonitor pemakaian bandwidth. CC- Cutter yang digunakan adalah CCT – 063 (kapasitas 63 users). Konfigurasi sistemnya adalah menghubungkan modul CC – Cutter ke PC Server melalui port serial. Modul CC – Cutter akan mengirimkan data bandwidth setiap 5 menit sekali. Program aplikasi menggunakan bahasa C yang berfungsi untuk mengubah dan menyimpan data serial ke database dalam MySQL. Aplikasi web dibuat menggunakan Php berfungsi mengambil data dari database MySQL dan menampilkannya dalam halaman web.
Dari hasil percobaan aplikasi berbasis web untuk menampilkan data bandwidth berjalan dengan baik. Pengujian yang dilakukan sebanyak 10 kali menunjukkan tingkat keberhasilan 100 %, sesuai dengan rancangan.
Web Based Display of Bandwidth Usage from CC-Cutter
Evan Satria Indrawila 0122112
Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha Jalan Prof. Drg. Suria Sumantri 65
Bandung 40164, Indonesia Email: satriaevan@yahoo.com
ABSTRACT
Internet acces in offices, cybercafes and other facilities causes the decrease of network performance in line with the increase network of users. Moreover, if the bandwidth is not managed as best as possible.
CC-Cutter or Cyber Cost Cutter is a tool to control a bandwidth usage of the internet, so that the usage of a bandwidth does not exceed the limit deter-mined.
In this Final Project, will be realized a software to display the usage aver-age bandwidth data of CC-Cutter in the form of a web paver-age, so users can easily monitor the bandwidth usage. CC-Cutter that used is CCT - 063 (capacity of 63 users). The configuration system is connecting the CC – Cutter module to the PC Server via serial port. Module CC - Cutter will send the data bandwidth every 5 minutes. The program application used is the C language, will change and save the serial data into a database in MySQL. Web application use Php will retrieve data from MySQL database and display it in a web page.
From the results of experiment web-based application to display the bandwidth data is running well. Testing was done as many as 10 times and it showed a 100% results as per the hypotheses.
DAFTAR ISI
LEMBAR PENGESAHAN SURAT PERNYATAAN
ABSTRAK... i
ABSTRACT...ii
KATA PENGANTAR……… iii
DAFTAR ISI... v
LAMPIRAN...vii
DAFTAR TABEL...viii
DAFTAR GAMBAR ...ix
BAB I PENDAHULUAN ...1
I.1 Latar Belakang ...1
I.2 Identifikasi Masalah...2
I.3 Tujuan ...2
I.4 Pembatasan Masalah ...2
I.5 Sistematika Pembahasan...3
BAB II LANDASAN TEORI ...4
II.1 Sistem Operasi Linux ...4
II.2 Cyber Cost Cutter (CC-Cutter) ...5
II.3 Komunikasi Data ...8
II.3.1 Komunikasi Data Serial Asinkron ...9
II.3.2 Metoda Hubungan Komunikasi...10
II.4 Antarmuka RS 232 ...10
II.5 OSI Layer ...13
II.6 Pemrograman C ...15
II.7 HTML...16
II.8 PHP...17
II.10 MySQL ...19
BAB III PERANCANGAN DAN REALISASI ...20
III.1 Antarmuka CC - Cutter dengan PC Server ...21
III.2 Blok CC - Cutter ...24
III.3 Blok Dalam Halaman Web ...28
BAB IV UJI COBA DAN ANALISA DATA ...29
IV.1 Pengiriman Data Serial ...29
IV.2 Tampilan Pada Database ...29
IV.2.1 Database Master Data ...30
IV.2.2 Database Detail Data ...31
IV.3 Tampilan Pada Web ...32
BAB V KESIMPULAN DAN SARAN ………...35
V.1 Kesimpulan ...35
V.2 Saran...35
LAMPIRAN LAMPIRAN A
Data Pengamatan... A-1 LAMPIRAN B
Listing Program pada Linux... B-1 LAMPIRAN C
DAFTAR TABEL
Tabel III.1 Master Data ...26
Tabel III.2 Detail Data ...27
Tabel IV.1 Master Data Hasil Pengujian...30
DAFTAR GAMBAR
Gambar II.1 Alat CC - Cutter...5
Gambar II.2 Aplikasi Penggunaan CC - Cutter...8
Gambar II.3 Format Data Serial Asinkron... 9
Gambar II.4 Hubungan DTE-DTE Zero Modem Link ...11
Gambar II.5 Four Wire DTE-DTE 1 Link... 12
Gambar II.6 Model Layer 7 OSI... 14
Gambar II.7 Alur Data melewati OSI 7 Layer... 15
Gambar III.1 Aplikasi penggunaan CC - Cutter yang dihubungkan dengan PC Server... 20
Gambar III.2 Diagram Alir Antarmuka Serial... 22
Gambar III.3 Diagram Alir Web... 23
Gambar III.4 Tampilan Web... 28
Gambar IV.1 Database Master Data MySQL... 30
Gambar IV.2 Database Detail Data MySQL... 31
Gambar IV.3 Tampilan Web ...33
LAMPIRAN A
Lampiran
Data Pengamatan untuk Master Data
Kode Tanggal Up_User Dn_User Up_Inter Dn_Inter
1 2008-12-16 10:52:20 56 45 12 15
2 2008-12-16 10:57:20 53 32 27 47
3 2008-12-17 09:20:13 43 34 38 34
4 2008-12-17 14:06:29 51 33 31 49
5 2008-12-18 10:11:29 40 13 11 38
6 2008-12-18 13:20:22 37 19 16 35
7 2008-12-18 13:25:22 38 22 16 30
8 2008-12-18 13:30:22 41 15 14 36
9 2008-12-18 13:35:22 31 11 6 20
Lampiran
Data Pengamatan untuk Detail Data
Lampiran
Lampiran
Lampiran
Tampilan web untuk data pengamatan ke 4
Lampiran
Lampiran
Tampilan web untuk data pengamatan ke 7
Lampiran
Tampilan web untuk data pengamatan ke 9
LAMPIRAN B
Listing Program
Lampiran
Listing Program pada Linux
Pemrograman C
#define BAUDRATE B115200
#define MODEMDEVICE "/dev/ttyS0"
#define _POSIX_SOURCE 1 /* POSIX compliant source */ #define FALSE 0
#define TRUE 1
volatile int STOP=FALSE;
void signal_handler_IO(int status); int wait_flag=TRUE;
struct termios oldtio,newtio; struct sigaction saio;
int get_serial_data(); char buf[255];
struct cldata { char nama[17];
unsigned long oedl,oeul,uedl,ueul;
int get_serial_data(); int sqlconvert();
int get_serial_data()
{
Lampiran
fd=open(MODEMDEVICE, O_RDWR | O_NOCTTY | O_NONBLOCK);
if (fd<0) {
perror(MODEMDEVICE);
exit (-1);
newtio.c_cflag = BAUDRATE | CS8 | CLOCAL | CREAD; newtio.c_iflag = IGNPAR | ICRNL;
tcsetattr(fd,TCSANOW,&newtio);
while (STOP==FALSE) { usleep{5000);
if (ccdata[0]==#00 && ccdata[1]==#cc) {
/* restore old port settings */ tcsetattr(fd,TCSANOW,&oldtio);
return 0;
Lampiran
void signal_handler_IO (int status) {
wait_flag = FALSE; }
int sqlconvert() {
MYSQL *mysql;char query[1000];int i;
char ip[16];
mysql=mysql_init(NULL);i=0; if(mysql==NULL)
{
fprintf(stderr,"\n Koneksi MySQL error");
return -1;
fprintf(stderr,"\n Koneksi ke database error");
return -1;
}
query="INSERT INTO t_mdata VALUES
(0,"+tanggal+","+oedl+","+oeul+","+uedl+","ueul+")";
if(!mysql_query(mysql,query)==0) {
printf( "Failed to add records: Error: %s\n",
query="INSERT INTO t_ddata VALUES
(0+",i+","+cldata[i].nama+","+ip+","+cldata.intraul+"," +cldata.intradl+","+cldata.interul+","cldata.interdl+") ";
if(!mysql_query(mysql,query)==0) {
Lampiran
<title> Quasar CC Cutter</title>
<link href="./images/style.css" rel="stylesheet" type="text/css">
<script src="./images/functions.js"
language="javascript" type="text/javascript"></script> </head>
<body onload ="auto_reload()"><form name="dataform" method="post">
<div id="banner"><img src="./images/logo.jpg" height="100"></div>
<div id="dated"> <?php echo date("l j-m-Y G:i A") ?></div>
<div id="headers"> <?php
require_once ("functions.php"); $db=db_connect();
$id=mysql_escape_string($_GET['id']);
if ($id)
$query_str = "SELECT * FROM t_mdata WHERE kode=$id ORDER BY kode DESC LIMIT 1";
else
$query_str = "SELECT * FROM t_mdata ORDER BY kode DESC LIMIT 1";
$queries = mysql_query ($query_str) or die (mysql_error());
$data_head = mysql_fetch_array ($queries); ?>
<table width="700" border="1"> <tr>
<th class="whitehdr"> </th>
<th class="whitehdr">Average Uplink</th> <th class="whitehdr">Average Downlink</th> </tr>
<tr>
<td>Outside</td>
Lampiran
<tr>
<td>User</td>
<td align="right"><?php echo $data_head['up_user'];?></td> <td align="right"><?php echo $data_head['dn_user'];?> </td> </tr>
<input type="hidden" name="check" value="<?php echo $data_head['kode'];?>">
</table> </div>
<H3>Log date : <?php echo $data_head['tanggal']; ?></H3>
<BR>
<input type="button" name="SearchMaster" value="Search Log" onClick="goto_Master()">
<div id="content">
<table width="750" border="1"> <tr bgcolor="#CCCCCC">
<th width="20%" class="whitehdr">Name</th> <th width="20%" class="whitehdr">IP</th>
<th width="15%" class="whitehdr">Internet Avg Downlink </th>
<th width="15%" class="whitehdr">Internet Avg Uplink</th>
<th width="15%" class="whitehdr">Intranet Avg Downlink</th>
<th width="15%" class="whitehdr">Intranet Avg Uplink</th>
</tr> <?php
$kode=$data_head['kode'];
$query_str = "SELECT * FROM t_ddata WHERE kode=$kode";
$sorts=mysql_escape_string($_POST['Sort']); switch (trim($sorts)) {
case 'namauser':$query_str.=' ORDER BY nama';
break;
case 'ip':$query_str.=' ORDER BY ip';
break;
case 'interdn':$query_str.=' ORDER BY dn_inter DESC';
break;
case 'interup':$query_str.=' ORDER BY up_inter DESC';
break;
case 'intradn':$query_str.=' ORDER BY dn_intra DESC';
Lampiran
case 'intraup':$query_str.=' ORDER BY up_intra DESC';
}
$nmsearch=mysql_escape_string($_POST['searchname'] );
if ($nmsearch) {
$query_str= "SELECT * FROM t_ddata WHERE kode=$kode AND nama LIKE'%$nmsearch"."%'";
}
$ipsearch=mysql_escape_string($_POST['searchip']); if ($ipsearch) {
$query_str= "SELECT * FROM t_ddata WHERE kode=$kode AND ip LIKE'$ipsearch"."%'";
}
$queries = mysql_query ($query_str) or die (mysql_error());
while ($content = mysql_fetch_array ($queries)) { echo '<tr class="boldtype">'."\n";
echo "<td>".$content['nama']."</td>\n"; echo "<td>".$content['ip']."</td>\n";
echo "<td>".$content['dn_inter']."</td>\n"; echo "<td>".$content['up_inter']."</td>\n"; echo "<td>".$content['dn_intra']."</td>\n"; echo "<td>".$content['up_intra']."</td>\n"; echo "</tr>\n";
<table width="600" border="0"> <tr>
<td><H2>Search</H2></td> <td>User:</td>
<td><input type="text" name="searchname"></td> <td> IP:</td>
<td><input type="text" name="searchip"></td> <td><input type="submit" name="Search"
value="Search"></td> </tr>
</table> </div>
Lampiran
Lampiran
font-family: Arial, Helvetica, sans-serif;
font-size: medium;
padding-left: 50px;
margin-bottom :20px;
}
#content {
background-color: #800000;
color: #FFFFFF;
background-color: #FF9900;
color: #FFFFFF;
padding-left: 50px;
Lampiran
body {
background-color: #99CCCC;
}
Listing hist.php
<html><head>
<title> Quasar CC Cutter</title>
<link href="./images/style.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="banner"><img src="./images/logo.jpg" height="100"></div>
<div id="dated"> <?php echo date("l j-m-Y G:i A") ?></div>
<div id="headers"><form name="dataform" method="post"> <?php $dtanggal='0'.$dtanggal;
$tanggal.="<option value=\"$dtanggal\" "; if ($dtanggal==date("j"))
$tanggal.='selected="selected"'; $tanggal.=">$dtanggal</option>\n"; }
$bulan[$i]='selected="selected"'; break;
} }
$tahunini = date('Y', time());
for ($i=$tahunini-90;$i<=$tahunini;$i++) {
$tahun.="<option value=\"$i\" "; if ($i==$tahunini) {
Lampiran
}
$tahun.=">$i</option>\n"; }
?>
Tanggal Pencarian : <select name="tgl" id="tgl"> <?php echo $tanggal ?>
</select>
- <span class="row2">
<select name="bln" id="bln">
<option label="Jan" value="01" <?php echo $bulan[1] ?>>01</option>
<option label="Feb" value="02" <?php echo $bulan[2] ?>>02</option>
<option label="Mar" value="03" <?php echo $bulan[3] ?>>03</option>
<option label="Apr" value="04" <?php echo $bulan[4] ?>>04</option>
<option label="Mei" value="05" <?php echo $bulan[5] ?>>05</option>
<option label="Jun" value="06" <?php echo $bulan[6] ?>>06</option>
<option label="Jul" value="07" <?php echo $bulan[7] ?>>07</option>
<option label="Aug" value="08" <?php echo $bulan[8] ?>>08</option>
<option label="Sep" value="09" <?php echo $bulan[9] ?>>09</option>
<option label="Okt" value="10" <?php echo $bulan[10] ?>>10</option>
<option label="Nov" value="11" <?php echo $bulan[11] ?>>11</option>
<option label="Des" value="12" <?php echo $bulan[12] ?>>12</option>
</select>
-</span><span class="row2"> <select name="thn" id="thn">
<?php echo $tahun ?>
</select> <input type="submit" name="SearchBtn" value="Cari"></form>
<table width="500" border="1"> <tr>
<th class="whitehdr">Kode</th> <th class="whitehdr">Tanggal</th> </tr>
<?php
Lampiran
$query_str = "SELECT kode,tanggal FROM t_mdata WHERE tanggal BETWEEN '$tanggalsr1' AND '$tanggalsr2' ORDER BY kode";
$queries = mysql_query ($query_str) or die (mysql_error());
while ($content = mysql_fetch_array ($queries)) { echo "<tr>\n";
$database = "cccutter"; $host = "127.0.0.1"; $username = "root"; $pass = "";
$result = mysql_connect($host,$username,$pass);
try {
if (!$result) {
$exceptss = "Error connecting to MySQL database";
throw new exception ($exceptss);
} else {
Lampiran
} ?>
Listing functions.js
function auto_reload() {
window.setTimeout("goto_Index",5*60*1000); }
function goto_Master() {
location.href="hist.php"; }
function goto_Index() {
location.href="index.php"; }
Listing program database.sql
CREATE TABLE `t_ddata` ( `kode` int(11) NOT NULL, `nomer` tinyint(4) NOT NULL,`nama` varchar(25) collate latin1_general_ci NOT NULL,
`ip` varchar(15) collate latin1_general_ci NOT NULL, `up_intra` float NOT NULL,
`dn_intra` float NOT NULL, `up_inter` float NOT NULL, `dn_inter` float NOT NULL, PRIMARY KEY (`kode`,`nomer`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
CREATE TABLE `t_mdata` (
`kode` int(11) NOT NULL auto_increment, `tanggal` datetime NOT NULL,
`up_user` float NOT NULL, `dn_user` float NOT NULL, `up_inter` float NOT NULL, `dn_inter` float NOT NULL, PRIMARY KEY (`kode`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
LAMPIRAN C
BAB I
PENDAHULUAN
I.1 Latar Belakang
Layanan komunikasi data telah menjadi sangat penting dalam kehidupan sehari-hari. Hampir di setiap bidang kehidupan telah mengadopsi layanan ini. Layanan ini pun tidak hanya digunakan secara individual tetapi juga digunakan secara masal.
Banyak sekali organisasi atau lembaga yang menggunakan akses internetnya secara masal. Lembaga pendidikan, perkantoran, warnet, dan masih banyak lagi lembaga-lembaga lainnya yang menggunakan akses internetnya secara masal. Penggunaan akses internet secara masal ini akan mengakibatkan turunnya performansi jaringan seiring dengan peningkatan jumlah penggunanya. Apalagi jika bandwidth yang ada tidak dikelola sebaik mungkin.
CC-Cutter atau Cyber Cost Cutter merupakan alat untuk mengontrol
Bab I Pendahuluan 2
Dengan CC-Cutter, tidak ada satupun terminal dan aplikasi-aplikasi di dalam perusahaan yang pemakaian bandwidthnya melebihi jatah akses yang sudah ditentukan.
I.2 Identifikasi Masalah
Bagaimana menampilkan data rata-rata pemakaian bandwidth dari modul CC- Cutter ke dalam bentuk halaman web?
I.3 Tujuan
Tujuan dari tugas akhir ini adalah membuat program berbasis web untuk menampilkan data bandwidth dari CC – Cutter.
I.4 Pembatasan Masalah
Pembatasan masalah dalam tugas akhir ini adalah :
• Alat yang digunakan adalah CC-Cutter dengan kapasitas 63 users
(CCT-063).
• Desain dan testing aplikasi hanya untuk monitoring dan reporting
bandwidth internet total dan per user.
• Hasil pengolahan data ditampilkan dalam halaman web.
• Modul interface dioperasikan dalam sistem operasi Linux dan database
Bab I Pendahuluan 3
I.5 Sistematika Pembahasan
Sistematika pembahasan laporan tugas akhir ini disusun menjadi lima bab, yaitu sebagai berikut :
BAB 1 PENDAHULUAN
Bab ini berisi latar belakang permasalahan, identifikasi masalah, tujuan masalah, pembatasan masalah dan sistematika pembahasan dari Tugas Akhir ini. BAB 2 TEORI DASAR
Bab ini membahas mengenai teori-teori dasar yang menunjang pembuatan Tugas Akhir ini.
BAB 3 PERANCANGAN SISTEM
Bab ini berisi perancangan dan realisasi dari program interface yang kemudian dikonversikan ke database dan datanya ditampilkan dalam bentuk halaman web.
BAB 4 DATA PENGAMATAN
Bab ini berisi hasil pengamatan dari program yang ditampilkan dalam halaman web.
BAB 5 KESIMPULAN DAN SARAN
BAB V
KESIMPULAN DAN SARAN
V.1 Kesimpulan
Berdasarkan hasil pengujian pada Tugas Akhir ini maka dapat disimpulkan beberapa hal sebagai berikut:
1. Program aplikasi dalam bahasa C yang beroperasi dalam Linux sebagai interface dari CC – Cutter berhasil direalisasikan dengan baik.
2. Aplikasi berbasis web dengan menggunakan Php berjalan dengan baik. 3. Pengujian yang dilakukan sebanyak 10 kali menunjukkan tingkat
keberhasilan 100 %, sesuai dengan rancangan. V.2 Saran
Setelah mengevaluasi Tugas Akhir ini, penulis berharap Tugas Akhir ini dapat dikembangkan lebih lanjut dengan beberapa saran sebagai berikut:
1. Untuk aplikasi program bahasa C dalam linux dapat dikembangkan menjadi lebih interaktif.
DAFTAR PUSTAKA
1. Sulaeman, Widiyanto (0122141), “Program Akademik Untuk Keperluan Praktikum Berbasis Web”, Tugas Akhir Fakultas Teknik Elektro Universitas Kristen Maranatha, 2006.
2. Cogswell, Jeffrey, “Apache, MySQL, and PHP Web Development”, by Wiley Publishing Inc, Indianapolis, Indiana, 2004.