REVIEW MATERI INFORMATIKA

Caring Country by Caring Knowledge and Education

Entity Relationship Diagram

Posted by errissya rasywir on January 3, 2010

Apa yang dimaksud dengan model data? Sebutkan dua jenis data model yang  Anda ketahui!

Model data adalah sekumpulan cara / peralatan / tool untuk mendeskripsikan data-data, hubungannya satu sama lain, semantiknya, serta batasan konsistensi.

Ada dua model data, yaitu : Entity Relationship Diagram (ERD) dan model relasional. Keduanya menyediakan cara untuk mendeskripsikan perancangan basis data pada peringkat logika.

  • Model ERD atau Conceptual Data Model (CDM) : model yang dibuat berdasarkan anggapan bahwa dunia nyata terdiri dari koleksi obyek-obyek dasar yang dinamakan entitas (entity) serta hubungan (relationship) antara entitas-entitas itu.
  • Model Relasional atau Physical Data Model (PDM) : model yang menggunakan sejumlah tabel untuk menggambarkan data serta hubungan antara data-data tersebut. Setiap tabel mempunyai sejumlah kolom di mana setiap kolom memiliki nama yang unik.

Bangun sebuah ER-Diagram untuk perusahaan asuransi mobil yang costumer–costumernya masing-masing memiliki satu atau lebih mobil. Setiap mobil memiliki 0 sampai banyak catatan kecelakaan. Serta bangun tabel-tabel untuk ER-diagram!

ERD :

Contoh ERD

Tabel untuk ERD :

Contoh PDM

Jelaskan perbedaan antara weak entity dan strong entity!

  • Strong entity (entitas kuat) : entitas yang mandiri, yang keberadaannya tidak bergantung pada keberadaan entitas yang lainnya. Instansiasi entitas kuat selalu memiliki karakteristik yang unik disebut identifier (sebuah atribut tunggal atau gabungan atribut-atribut yang secara unik dapat digunakan untuk membedakannya dari entitas kuat yang lain).
  • Weak entity (entitas lemah) : entitas yang keberadaannya sangat bergantung pada keberadaan entitas yang lainnya. Entitas lemah tidak memiliki arti apa-apa dan tidak dikehendaki kehadirannya dalam diagram ER tanpa kehadiran entitas di mana mereka bergantung.

Entitas di mana entitas lemah bergantung dinamakan identifying owner. Entitas lemah tidak memiliki identifier sendiri. Secara umum, dalam diagram ER entitas lemah memiliki atribut yang berperan sebagai partial identifier (identifier yang berfungsi secara sebagian).

Jelaskan konsep dari agregasi dan berikan contoh yang memakai konsep ini!

Agregasi adalah suatu keadaan di mana suatu relasi hanya dapat direalisasikan setelah relasi yang lain ada terlebih dahulu. Relasi yang bertipe agregasi tidak dimungkinkan ada jika relasi yang menjadi prasyaratnya tidak terealisasi.

Contoh agregasi :

Sesungguhnya agregasi dapat dipandang sebagaimana relasi pada umumnya (yang menghubungkan 2 entitas). Karena relasi ini dibentuk dari relasi lain (relasi prasyarat) yang secara kronologis lebih dulu terbentuk, maka pengimplementasiannya juga harus dilakukan setelah relasi prasyarat tersebut terimplementasikan. Selanjutnya kita tinggal meninjau derajat relasi dari relasi agregasinya.

Jika terdapat kejadian sebagai berikut :

Bagaimana jika terdapat set entitas yang sama muncul beberapa kali dalam satu set ER-Diagram. Mengapa hal ini harus dihindari? Jelaskan!

  • Untuk menghindari redundancy
  • Menghemat penyimpanan (storage) data
  • Mengurangi efektifitas dan kecepatan akses
  • Untuk menghindari terjadinya asinkronisasi data pada saat diupdate

Desain sebuah generalisasi – spesialisasi hirarki untuk sebuah perusahaan kendaraan bermotor. Perusahaan menjual sepeda motor, passenger car, van, dan bis. Tentukan penempatan atribut Anda pada setiap level hirarki.

PBD Modul 1 - Generalisasi Spesialisasi

Jelaskan perbedaan antara total constraint dan partial constraint!

  • Total constraint adalah constraint yang mana data dalam entitas yang memiliki constraint tersebut terhubung secara penuh ke dalam entitas dari relasinya.
  • Constraint partial adalah constraint yang mana data dalam entitas yang memiliki constraint  tersebut terhubung ke dalam entitas dari relasinya.

Apa yang Anda ketahui dari relasi-relasi berikut? Serta buatlah contoh kasus dari relasi-relasi di atas!

PBD Modul 1 - Relasi 1

Relasi satu :

  • Entity 1 to entity 2 : kardinalitas : one to many dengan detail minimal 0 dan maksimalnya banyak. Dependensi : entitas 1 dan entitas 2 tidak saling ketergantungan.
  • Entity 2 to entity 1 : kardinalitas : many to one dengan detail minimal 1 dan maksimalnya 1. Dependensi : entitas 1 dan entitas 2 tidak saling ketergantungan.

Contoh kasus :

PBD Modul 1 - Contoh relasi 1

Keterangan : tabel Pembeli dan Mobil dengan relasi membeli. Pembeli boleh tidak membeli mobil, tetapi juga boleh membeli banyak mobil. Satu mobil boleh tidak ada yang membeli, tapi seandainya ada yang membeli, maksimal hanya ada satu orang pembeli.

PBD Modul 1 - Relasi 2

Relasi dua :

  • Entity 3 to entity 4 : kardinalitas : one to many dengan detail  minimal 0 maksimalnya banyak. Dependensi : entitas 3 dan entitas 4  tidak saling ketergantungan.
  • Entity 4 ke entity 3 : kardinalitas : many to one dengan detail minimal 1 maksimal 1. Dependensi : entitas 4 dan entitas 3 tidak saling ketergantungan.

Contoh kasus :

PBD Modul 1 - Contoh relasi 2

Keterangan : tabel Dosen dan Mahasiswa dengan relasi perwalian. Satu dosen bisa mempunyai banyak mahasiswa wali, bisa pula tidak punya. Satu mahasiswa harus mempunyai satu dosen wali.

PBD Modul 1 - Relasi 3

Relasi tiga

  • Entity 5 to entity 6 dan Entity 6 to entity 5 : kardinalitas : one to one dengan detail  minimal 0 maksimalnya 1. Dependensi : entitas 5 dan entitas 6  tidak saling ketergantungan.

Contoh kasus :

PBD Modul 1 - Contoh relasi 3

Keterangan : tabel Cowok dan Cewek dengan relasi menikah. Cowok tidak harus menikah, tapi boleh menikah hanya dengan satu cewek. Cewek boleh tidak menikah, tapi boleh menikah hanya dengan satu cowok. Diasumsikan tidak diperbolehkan adanya poligami.

PBD Modul 1 - Relasi 4

Relasi empat

  • Entity 7 to entity 8 : kardinalitas : one to one dengan detail  minimal 0 maksimalnya 1. Dependensi : entitas 7 dan entitas 8  tidak saling ketergantungan.
  • Entity 8 ke entity 7 : kardinalitas : one to one dengan detail minimal 1 maksimal 1. Dependensi : entitas 8 dan entitas 7 tidak saling ketergantungan.

Contoh kasus :

PBD Modul 1 - Contoh relasi 4

Keterangan : tabel Pegawai dan Departemen dengan relasi mengepalai. Pegawai tidak harus mengepalai departemen, tetapi hanya boleh mengepalai satu departemen saja. Masing-masing departemen harus mempunyai satu orang atasan.

PBD Modul 1 - Relasi 5

Relasi lima

  • Entity 9 to entity 10 : kardinalitas : many to many dengan detail  minimal 0 maksimalnya banyak. Dependensi : entitas 9 dan entitas 10 tidak saling ketergantungan.
  • Entity 10 ke entity 9 : kardinalitas : many to many dengan detail minimal 1 maksimal banyak. Dependensi : entitas 10 dan entitas 9 tidak saling ketergantungan.

Contoh kasus :

PBD Modul 1 - Contoh relasi 5

Keterangan : tabel Mata Kuliah dan Mahasiswa dengan relasi diambil. Mata kuliah tidak harus diambil oleh mahasiswa, tapi boleh diambil oleh banyak mahasiswa. Satu mahasiswa minimal mengambil satu mata kuliah dan boleh mengambil banyak mata kuliah. Namun pada kenyataannya, relasi many to many akan dijadikan sebuah tabel baru.

PBD Modul 1 - Relasi 7

Relasi tujuh

  • Entity 13 to entity 14 : kardinalitas : one to many dengan detail  minimal 0 maksimalnya banyak. Dependensi : entitas 13  menjadi parent dari  entitas 14.
  • Entity14 ke entity 13 : kardinalitas : many to one dengan detail minimal 1 maksimal 1. Dependensi : entitas 14 tergantung kepada  entitas 13.

Contoh kasus :

PBD Modul 1 - Contoh relasi 7

Keterangan : tabel Customer dan Asuransi dengan relasi mempunyai. Customer boleh tidak mempunyai asuransi, dan boleh mempunyai banyak asuransi. Satu asuransi harus dimiliki oleh satu orang customer.

Sebutkan tahapan–tahapan normalisasi serta penjelasannya! Dan apa perbedaan  antara 1 NF dan BCNF?

Normalisasi adalah proses penyusunan data untuk mengurangi terjadinya duplikasi dan inkonsistensi.

  • First Normal Form (1NF) : tidak boleh ada kelompok yang berulang pada tabel, penguraian atribut multivalued dan composit.
  • Second Normal Form (2NF) : atribut bukan kunci tidak boleh bergantung pada sebagian primary key, artinya atribut bukan kunci harus bergantung pada semua atribut yang termasuk primary key –> functional dependency pada primary key.
  • Third Normal Form (3NF) : tidak boleh ada atribut bukan kunci yang bergantung pada atribut selain primary key.
  • Boyce-Codd Normal Form (BCNF) : atribut yang ditentukan bukan bagian dari key attribute.

Perbedaan antara tahap 1NF dengan tahap BCNF :

  • 1NF :  tahap normalisasi dasar, yang mana masih belum sampai pada tingkat efektifitas maksimal, masih banyak kemungkinan terjadinya redundancy data atau duplikasi data.
  • BCNF : tahap normalisasi setelah 3NF , yang mana efektifitas telah mencapai maksimal, kemungkinan terjadinya redundancy data dan duplikasi data lebih kecil daripada 1NF.

Posted in Software Engineering | Leave a Comment »

Evolusi Komputer

Posted by errissya rasywir on November 7, 2009

Komputer dari sejak awal dibuatnya hingga kini banyak mengalami perubahan dan penyempurnaan bentuk dan fungsinya.
Memahami evolusi teknologi komputer merupakan cara yang mudah dan menarik yang dipakai bagi memahami konsep dasar organisasi dan arsitektur komputer.Berikut tabel generasi komputer:
Generasi Komputer

 

Ciri Komputer Generasi pertama :
1.Instruksi operasi dibuat secara spesifik untuk suatu tugas tertentu
2.Setiap komputer memiliki program kode-biner yang berbeda yang disebut “bahasa mesin” (machine language)
3.Penggunaan tube vakum (yang membuat komputer pada masa tersebut berukuran sangat besar) dn silinder magnetik untuk penyimpanan data

 

Sejarah Tabung Vakum

 

1.1937 – Jhon v.Antanasoff merancang computer elektronik digital pertama
2.1939 – Atanasoff dan Clifford Berry mendemonstrasikan prototipe ABC pada bulan November
3.1945 – Jhon w.Mauchly dan J.presper Eckert membangun ENIAC Universitas Pensilvania untuk Angkatan Darat AS
4.1946 – Mauchly dan Eckert mendirikan perusahaan Electronic Control Co.,menerima dana dari National Bureau of Standards untunk membuat komputer seperti ENIAC dengan input /output magnetic tape,mengganti nama dengan UNIVAC pada 1947,tetapi bangkrut.Pada desember 1947 didirikan perusahaanbaru Eckert – Mauchly computer corporation (EMCC)
4.1948 – Howard Aiken mengembbangkan komputer elektronik Harvard Mark III dengan 5000 tabung

 

5.1949 – Mauchly dan Eckert pada bulan Maret berhasil mencoba BINAC yang merupakan komputer dengan program yang tersimpan.Ini dibuat untuk perusaaan Northrop,dengan Mercury delay line memory dan magneti tape drive yang masih primitif,Remington Rand membeli EMCC Februari 1950 dan menyediakan dana untuk menyelesaikan UNIVAC

 

6.1951 – Remington Rand berhasil menguji UNIVAC 30 maret 1951,dan mengumumkan ke publik tentang penjualannya ke Census Bureau pada 14 Juni 1951.UNIVAC merupakan komputer komersial pertama yang menggunakan sistem penyimpanan magnetik tape,yaitu delapan drive UNISERVO yang terpisah dari CPU.Masing-masing drive berukuran 6 feet kali 3 feet, menggunakan perunggu sepanjang 1200 feet  dan tebal ½ inci,merekam data pada delapan channel dengan kecepatan 100 inci per detik dengan laju transfer 7200 karakter per detik.Sisitem UNIVAC secara keseluruhan berbobot 29000 pound termasuk 5200 tabung hampa,dan UNIPRINTER dengan tape drive logam menempel .Setelah itu ,mesin punched card to tape ditambahkan untuk membaca IBM 80 column dan Remington Rand 90 column card

 

7.1952 – Remington Rand membeli ERA pada Desember 1951 dan menggabungkan product UNIVAC pada 1952,komputer ERA 1101 menjadi UNIVAC 1101.UNIVAC I digunakan pada November untunk menghitung pemilihan Presiden dan berhasil memperkirakan pemenangnya,meskipun tidak dipercaya oleh televisi yang menolak untuk menggunakan prediksi.

I.KOMPUTER GENERASI PERTAMA
-Pada tahun 1941, Konrad Zuse, seorang insinyur Jerman membangun sebuah komputer, Z3, untuk mendesain pesawat terbang dan peluru kendali.

 

-Howard H. Aiken (1900-1973), seorang insinyur Harvard yang bekerja dengan IBM, berhasil memproduksi kalkulator elektronik untuk US Navy. Kalkulator tersebut berukuran panjang setengah lapangan bola kaki dan memiliki rentang kabel sepanjang 500 mil
-Electronic Numerical Integrator and Computer (ENIAC), yang dibuat oleh kerjasama antara pemerintah Amerika Serikat dan University of Pennsylvania. Terdiri dari 18.000 tabung vakum, 70.000 resistor, dan 5 juta titik solder, komputer tersebut merupakan mesin yang sangat besar yang mengkonsumsi daya sebesar 160kW

 

-ENIAC merupakan komputer serbaguna (general purpose computer) yang bekerja 1000 kali lebih cepat dibandingkan Mark I dirancang oleh John Presper Eckert (1919-1995) dan John W. Mauchly (1907-1980)
Latar Belakang Eniac:

 

-Electronic Numerical Integrator And Computer
-Eckert and Mauchly
-University of Pennsylvania
-Pembuatan jarak dan tabel lintasan peluru
-kendali senjata baru
-Dimulai tahun 1943
-Selesai tahun 1946
-Too late for war effort
-Digunakan sampai tahun 1955
Detail Eniac:

 

-Decimal (not binary)
-20 akumulator masing-masing menampung 10digit desimal
-Diprogram secara manual dengan switch
-18,000 tabung vakum
-15,000 meter persegi / Kaki persegi
-140 kW konsumsi dayanya
-5,000 operasi penambahan / detik
-30 tons

Posted in Evolusi Komputer | Leave a Comment »

Pemilihan

Posted by errissya rasywir on November 7, 2009

Pemilihan digunakan untuk mengarahkan perjalanan suatu proses. Pemilihan dapat diibaratkan sebagai katup atau kran yang mengatur jalannya air. Bila katup terbuka maka air akan mengalir dan sebaliknya bila katup tertutup air tidak akan mengalir atau akan mengalir melalui tempat lain. Fungsi penyeleksian kondisi penting artinya dalam penyusunan bahasa C, terutama untuk program yang kompleks.

S T R U K T U R  D A S A R  P E M I L I H A N – IF
Struktur ini digunakan jika kondisinya hanya 1. Formatnya:

if (kondisi){
//aksi;
}

Contoh Kasus:

//Program Mencetak ” Program Diploma Komputer” bila diinputkan bilangan ganjil
#include<stdio.h>
void main ()
{
int x;
printf(“Masukkan sebuah bilangan: “);
scanf(“%d”,&x);
if(x%2!=0)
{
printf(“Program Diploma Komputer”);
}
}

S T R U K T U R  D A S A R  P E M I L I H A N – I F – E L SE
Struktur ini digunakan jika kondisinya hanya 2. Formatnya:

if(Kondisi){
//aksi1,jika kondisi terpenuhi;
}

else{
//aksi2,jika kondisi tidak terpenuhi;
}

Contoh Kasus:

//Program menentukan apakah bilangan yang diinput merupakan
bilangan ganjil atau genap, dengan asumsi bilangan 0 adalah genap.

#include<sttdio.h>

void main()
{
int x;
printf(“Masukkan sebuah bilangan: “);
scanf(“%d”,&x);
if( x%2=0)
{
printf(“Bilangan genap”);
}
else
{
printf(“Bilangan ganjil”);
}
}

S T R U K T U R  D A S A R  P E M I L I H A N I F – E L S E I F – E L SE
Struktur ini digunakan jika kondisinya lebih dari 2. Formatnya:

if(Kondisi 1)
{
//Aksi1, jika Kondisi1 terpenuhi;
}
else(Kondisi2)
{
//Aksi2, jika Kondisi1 tidak terpenuhi;
}
else
{
//Aksi3,jika kondisi2 tidak terpenuhi;
}

Contoh Kasus:

//Program menetukan bilangan terbesar dari 3 bilangan

#include<stdio.h>

void main()
{
int a,b,c;
printf(“Masukkan a:  “);scanf(“%d”,&a);
printf(“Masukkan b: “);scanf(“%d”,&b);
printf(“Masukkan c: “);scanf(%d”,&c);
if((a>=b)&&(a>=c))
{
printf(“Bilangan terbesar adalah a yakni:  %d”,a);
}
else((b>=a)&&(b>=c))
{
printf(“Bilangan terbesar adalah b yakni: %d”,b);
}
else
{
printf(“Bilangan terbesar adalah c yakni: %d “,c);
}
}

S T R U K T U R  D A S A R  P E M I L I H A N  S W I T C H – C A S E – D E F A U LT

Struktur kondisi switch….case….default digunakan untuk penyeleksian kondisi dengan kemungkinan yang terjadi cukup banyak. Struktur ini akan melaksanakan salah satu dari beberapa pernyataan ‘case’ tergantung nilai kondisi yang ada di
dalam switch. Selanjutnya proses diteruskan hingga ditemukan pernyataan ‘break’. Jika tidak ada nilai pada case yang sesuai dengan nilai kondisi, maka proses akan diteruskan kepada pernyataan yang ada di bawah ‘default’. Formatnya:

switch(variabel)
{
case 1:        //Pernyataan-1;
break;
case 2:         //Pernyataan-2;
break;
case 3:        //Pernyataan-3;
break;
case n:        //Pernyataan-n;
break;
default;      //Pernyataan-m;
}

Contoh Kasus:

//Program menentukan nama hari berdasarkan nomor

#include<stdio.h>
void main()
{
int hari;
printf(“Kode hari nya:   \n “);
printf(“1.senin     2.selasa    3.rabu     4.kamis     5.jumat     6.sabtu   7.minggu\n”)
printf(“Masukkan kode harinya:    “);scanf(“%d”,&hari);
switch(hari)
{
case 1:    printf(“Hari senin”);
break;
case 2:    printf(“Hari selasa”);
break;
case 3:    printf(“Hari rabu”);
break;
case 4:    printf(“Hari Kamis”);
break;
case 5:    printf(“Hari jumat”);
break;
case 6:    printf(“Hari sabtu”);
break;
case 7:    printf(“Hari minggu”);
break;
default:    printf(“kode hari salah”);
}

Posted in Pemilihan | Leave a Comment »

PreProcessor, Tipe Data, Variabel dan Operator

Posted by errissya rasywir on November 7, 2009

P R E P R O C E S S O R
#include
PreProcessor – #include digunakan untuk memanggil atau menambahkan file header (file unit) yang telah dibuat ebelumnya. File header berisikan perintah-perintah ataufungsi-fungsi yang telah didefinisikan. Beberapa file header , secara default telah ada didalam Borland C++ Builder 6, namun bisa dibuat sendiri sesuai dengan kebutuhan.
PreProcessor ini berada pada bagian paling atas dari pemrograman. Berikut contoh penulisannya:
#include “iostream.h”
#include “File1.h”
atau
#include <iostream.h>
#include <File1.h>
#define
PreProcessor – #define digunakan untuk mendefiniskan sebuah identifier (pengenal)untuk menggantikan beberapa pernyataan (statement) yang ada di header file. Berikut contoh penulisannya:
#define RI “Republik Indonesia”
#define PLG “Palembang”
artinya, pengenal RI dapat menggantikan posisi pernyataan “Republik Indonesia” dan PLG menggantikan “Palembang”.
#define pi 3.14
#define g 10
Artinya, pi bernilai konstan 3.14 dan g bernilai konstan 10.

Contoh Lainnya:

#define RI “Republik Indonesia”
#define PLG “Palembang”
#define Eol “\n”
#define pi 3.14
#define g 10

T I P E  D A T A
Tipe data merupakan bagian program yang paling penting karena tipe datamempengaruhi setiap instruksi yang akan dilaksanakan oleh computer. Misalnya saja 5 dibagi 2 bisa saja menghasilkan hasil yang berbeda tergantung tipe datanya.  Jika 5 dan 2 bertipe integer maka akan menghasilkan nilai 2, namun jika keduanya bertipe float maka akan
menghasilkan nilai 2.5000000. Pemilihan tipe data yang tepat akan membuat proses operasi data menjadi lebih efisien dan efektif. Dalam bahasa C terdapat lima tipe data dasar, yaitu :

1. char berukuran 1 byte  dengan range 128 s/d 127 ,formatnya  %c sebagai Karakter/string
2. int berukuran 2 byte  dengan range  32768 s/d 32767 , formatnya %i atau %d  sebagai Integer/bilangan bulat

3 .float berukuran 4 byte dengan range 3.4E-38 s/d 3.4E+38 ,formatnya %f  sebagai Float/bilangan pecahan

4.double berukuran 8 byte dengan range 1.7E-308 s/d  1.7+308 ,formatnya %lf  sebagai Pecahan presisi ganda
5 void berukuran 0 byte dan tidak ada range serta  Tidak bertipe
6 String berformat  %s sebagai  String

K O N S T A N T A

Konstanta merupakan suatu nilai yang tidak dapat diubah selama proses program berlangsung. Konstanta nilainya selalu tetap. Konstanta harus didefinisikan terlebih dahulu di awal program. Konstanta dapat bernilai
integer, pecahan, karakter dan string. Contoh konstanta : 50; 13; 3.14; 4.50005; ‘A’; ‘Bahasa C’. Selain itu, bahasa C juga menyediakan beberapa karakter khusus yang disebut karakter escape, antara lain :
\a : untuk bunyi bell (alert)
\b : mundur satu spasi (backspace)
\f : ganti halaman (form feed)
\n : ganti baris baru (new line)
\r : ke kolom pertama, baris yang sama (carriage return)
\v : tabulasi vertical
: nilai kosong (null)
\’ : karakter petik tunggal
\” : karakter petik ganda
\\ : karakter garis miring.

V A R I A B EL

Variabel adalah suatu pengenal (identifier) yang digunakan untuk mewakili suatu nilai tertentu di dalam proses program. Berbeda dengan konstantayang nilainya selalu tetap, nilai dari suatu variable bisa diubah-ubah sesuai
kebutuhan. Nama dari suatu variable dapat ditentukan sendiri oleh pemrogram dengan aturan sebagai berikut :
· Terdiri dari gabungan huruf dan angka dengan karakter pertama harus berupa huruf. Bahasa C bersifat case-sensitive artinya huruf besar dan kecil dianggap berbeda. Jadi antara nim, NIM dan Nim dianggap berbeda.
· Tidak boleh mengandung spasi.
· Tidak boleh mengandung symbol-simbol khusus, kecuali garis bawah (underscore). Yang termasuk symbol khusus yang tidak diperbolehkan antara lain : $, ?, %, #, !, &, *, (, ), -, +, = dsb
· Panjangnya bebas, tetapi hanya 32 karakter pertama yang terpakai.Contoh penamaan variabel yang benar :
NIM, a, x, nama_mhs, f3098, f4, nilai, budi, dsb.
Contoh penamaan variable yang salah :
%nilai_mahasiswa, 80mahasiswa, rata-rata, ada spasi, penting!, dsb.

O P E R A T O R  A R I T M A T I KA
Bahasa C menyediakan lima operator aritmatika, yaitu :
* : untuk perkalian
/ : untuk pembagian
% : untuk sisa pembagian (modulus)
+ : untuk pertambahan
– : untuk pengurangan.

O P E R A T O R  P E R B A N D I NG A N
< Kurang dari
<= Kurang dari sama dengan
> Lebih dari
>= Lebih dari sama dengan
== Sama dengan
!= Tidah sama dengan .

O P E R A T O R  L O G I KA
&& : Logika AND (DAN)
|| : Logika OR (ATAU)
! : Logika NOT (INGKARAN).

K O D E  P E N E N T U  F O R MA T
. %c : Membaca sebuah karakter
. %s : Membaca sebuah string
. %i, %d : Membaca sebuah bilangan bulat (integer)
. %f, %e : Membaca sebuah bilangan pecahan (real)
. %o : membaca sebuah bilangan octal
. %x : Membaca sebuah bilangan heksadesimal
. %u : Membaca sebuah bilangan tak bertanda.

Posted in Pendeklarasian | Leave a Comment »

Real Time Software

Posted by errissya rasywir on November 5, 2009

Program-program yang memonitor, menganalisis, mengontrol kejadian dunia nyatapada saat terjadinya dalam rentang waktu yang tetap melalui jangkauan I milidetik sampai 1 menit.

Elemen dari Real Time Software:

• Komponen pengumpulan data, yang mengumpulkan dan menformatinformasi dari lingkungan ekternal.

• Komponen analisa, yang mentransformasikan informasi yang diperlukan atau aplikasi tersebut.

• Komponen kontrol/output, yang memberikan respon terhadap lingkungan eksternal.

• Komponen monitoring, yang mengkoordinasi komponen-komponen lainnya ,sehingga bisa memberikan respon yang Real Time (biasanya antara 1 milidetik/1 menit)

 

Komponen Sistem Waktu-Nyata :

  1. Perangkat keras
  2. Sistem operasi waktu-nyata
  3. Bahasa pemrograman waktu-nyata
  4. Sistem komunikasi Perangkat keras komputer

Tiga karakteristik yang membedakan antara pengembangan perangkat lunak real-time dari kerja rekayasa perangkat lunak yang lain:

  • Desain system real-time dibatasi oleh sumber daya, sumber utama dari real-time adalah waktu. Untuk tambahan, sumber daya system ysng lsin, seperti ukuran memori, dapat dipertukarkan dengan waktu untuk mencapai sasaran dari system.
  • System real-time padat, tetapi kompleks. Sebenarnya system  real-time yang memiliki persentase kode yang kecil inilah yang paling kompleks(dari suatu titik pandang algoritmik).
  • System real-time sering bekerja tanpa kehadiran pemakai manusia. Sistem real-time harus dapat mendeteksi masalah-masalah yang menyebabkan kegagalan dan secara otomatis mengatasi masalah-masalah tersebut sebelum terjadi kerusakan.

 

SISTEM REAL-TIME

Sistem resl-time memunculkan beberapa aksi sebagai respon terhadap kejadian-kejadian eksternal. Unutk melakukan fungsi tersebut , sistem melakukan akuisisi data dengan kecepatan tinggi dan kontrol dibawah batasan waktu dan reliabilitas ysng ketat.

Kinerja real-time ditentukan terutama oleh :

  1. waktu respon.

Waktu respon sistem adalah waktu dimana sebuah sistem harus mendeteksi sebuah kejadian eksternal atau internal dan merespon dengan sebuah aksi. Kejadian yang menentukan respon adalah pemrosesan informasi yang melibatkan algoritma yang kompleks.

 

  1. Laju transfer

Laju transfer data menunjukkan seberapa cepat data serial atau paralel, dan data analog dan digital harus digerakkan masuk atau keluar dari sistem.

 

PENANGANAN INTERUPSI

Karakterisitik untuk membedakan sistem reak-time dari tipe yang lain adalah penanganan interupsi. Sistem real-time harus merespon ke stimulus eksternal – interupsi- denagn waktu yang telah ditentukan oleh dunia eksternal. Karena ada banyak stimulus(interupsi) maka prioritas dan interupsi prioritas harus dibangun. Jadi, tugas yang paling penting harus dilayani dalam batasan waktu yang telah ditentukan tanpa memperhatikan kejadian yang lain.

 

 

Karakteristik Sistem Waktu Nyata

Timeliness – sistem waktu nyata merupakan fungsi dari waktu. Berkaitan dengan data transfer rate dan throughput. Terdiri antara lain dari :

  • waktu service – waktu netto yang dipergunakan  untuk merespons satu masukan yang diberikan
  • Waktu latency – interval antara waktu    kemunculan    input dengan waktu mulai diberikan   service      terhadap input tersebut.
  • Dynamic internal structure – kebanyakan sistem          waktu nyata dibutuhkan untuk memantau      lingkungan yang tergantung pada waktu. Ini mengakibatkan komponen sistem waktu nyata

harus dapat melakukan-rekonfigurasi dinamis    untuk menyesuaikan dengan kondisi ekstemal      lingkungan (yang dinamis juga). Dengan keterbatasan-:sumber (kapasitas prosesor, memori)      maka biasanya diperlukan pembentukan  dan pemusnahani komponen-komponen perangkat lunak secara: dinamis pula (otomatis)

  • Reactiveness – kondisi yang secara terus menerus       dapat berespons terhadap kejadian yang beragam   dimana urutan dan waktu kedatangannya tidak      selalu dapat diprediksi
  • Concurrency – pada setiap saat, multiple simultaneous kegiatan harus dapat dilaksanakan dalam sistem      waktu nyata. Aspek synchronous , asynchronous   ,communication, interrupt handling dan locking menjadi    bagian penting dalam menyelesaikan masalah konkurensi ini.
  • Distrbution – kondisi yang memungkinkan untuk  melakukan multiple computing sites cooperatively untuk        menyelesaikan satu fungsi yang umum

 

 

 

Posted in Real Time Software | Leave a Comment »

LINKED LIST

Posted by errissya rasywir on November 4, 2009

Sebagai mahasiswa informatika tentu pasti  telah belajar mengenai variabel array yang bersifat statis (ukuran dan urutannya sudah pasti). Selain itu, ruang memori yang dipakai olehnya tidak dapat dihapus bila array tersebut sudah tidak digunakan lagi pada saat program dijalankan. Untuk memecahkan masalah di atas, kita dapat menggunakan variabel pointer. Tipe data pointer bersifat dinamis, variabel akan dialokasikan hanya pada saat dibutuhkan dan sesudah tidak dibutuhkan dapat direlokasikan kembali.
Jadi,bila kita ingin menambahkan data, harus selalu menggunakan variabel pointer yang baru, akibatnya Anda akan membutuhkan banyak sekali pointer. Oleh karena itu, adabaiknya jika Anda hanya menggunakan satu variabel pointer saja untuk menyimpan banyak data dengan metode yang kita sebut Linked List. Linked list adalah sekumpulan
elemen bertipe sama, yang mempunyai keterurutan tertentu
, yang setiap elemennya
terdiri dari dua bagian.
Bentuk Umum :

typedef struct telmtlist

{

infotype info;

address next;

}elmtlist;


infotype sebuah tipe terdefinisi yang menyimpan informasi sebuah elemen list
next address dari elemen berikutnya (suksesor)

Jika L adalah list, dan P adalah address, maka alamat elemen pertama list L dapat diacu
dengan notasi :

first(L);

Seperti biasa sebelum kita menggunakan notasi tersebut, perlu dideklarasikan diheader program dengan

#define first(L)       (L)

Elemen yang nak diacu oleh P akan dikonsultasikan terlebih dahulu dengan cara:

info(P) dideklarasikan di header dengan cara #define info(P)    (P)->info

next(P) dideklarasikan diheader dengan cara  #define next(P)   (P)->next

Beberapa Definisi :
1. List l adalah list kosong, jika First(L) = Nil
2. Elemen terakhir dikenali, dengan salah satu cara adalah karena Next(Last) = Nil
Nil adalah pengganti Null, perubahan ini dituliskan dengan #define Nil Null

Single Linked List

Pada gambar di atas tampak bahwa sebuah data terletak pada sebuah lokasi memori
area. Tempat yang disediakan pada satu area memori tertentu untuk menyimpan data
dikenal dengan sebutan node/simpul. Setiap node memiliki pointer yang menunjuk ke
simpul berikutnya sehingga terbentuk satu untaian, dengan demikian hanya diperlukan
sebuah variabel pointer. Susunan berupa untaian semacam ini disebut Single Linked
List (NULL memilik nilai khusus yang artinya tidak menunjuk ke mana-mana. Biasanya
Linked List pada titik akhirnya akan menunjuk ke NULL).

Pembuatan Single Linked List dapat menggunakan 2 metode:
· LIFO (Last In First Out), aplikasinya : Stack (Tumpukan)
· FIFO (First In First Out), aplikasinya : Queue (Antrean)
LIFO ( Last In First Out)
Lifo adalah suatu metode pembuatan Linked List di mana data yang masuk paling akhir
adalah data yang keluar paling awal. Hal ini dapat dianalogikan (dalam kehidupan
sehari-hari) dengan saat Anda menumpuk barang seperti digambarkan dibawah ini.
Pembuatan sebuah simpul dalam suatu linked list seperti digambarkan dibawah ini.
Jika linked list dibuat dengan metode LIFO, terjadi penambahan / Insert simpul di
belakang, dikenal dengan istilah INSERT.

Posted in Linked LIST | Leave a Comment »

Awal Bahasa C

Posted by errissya rasywir on November 4, 2009

Seiring dengan perkembangan zaman, sebuah sistem informasi terus menerus menjadi sorotan dan kajian publik dunia. Dalam kurun waktu 20 tahun terakhir, sistem informasi terus dikembangkan guna memenuhi kebutuhan akan sebuah
kemudahan dan efektivitas dalam kehidupan. Sering manusia menghadapi kejenuhan terhadap pekerjaannya, membuat mereka menjadi kurang efektif dalam mengatur waktu hidupnya, sehingga banyak kalangan saintis terus berfikir apakah
kehidupan akan selalu monoton seperti itu. Akibatnya tercipta sebuah pemikiran untuk membuat sesuatu yang mampu membantu manusia dalam mengerjakan beberapa pekerjaannya. Bahasa pemrograman dikenalkan pada tahun 1967 oleh Martin Richards, yaitu BCPL yang merupakan akar bahasa C sekarang ini. Kemudian berdasar pada bahasa BCPL ini Ken Thompson yang bekerja di Bell Telephone Laboratories (Bell Labs) mengembangkan bahasa B pada tahun 1970. Saat itu bahasa B telah berhasil diimplementasikan di komputer DEC PDP-7 dengan operating system (OS) UNIX. Pada tahun 1972, peneliti lain di Bell Labs bernama Dennis Ritchie menyempurnakannya menjadi bahasa C. Pada tahun 1978, Dennis Ritchie bersama dengan Brian Kernighan mempublikasikan buku yang kemudian menjadi legenda dalam sejarah perkembangan bahasa C, yang berjudul The C Programming Language. Buku ini diterbitkan oleh Prentice Hall, dan pada saat ini telah diterjemahkan dalam berbagai bahasa di dunia. Boleh dikatakan bahwa buku ini adalah buku yang paling banyak direfer orang dan dijadikan buku panduan tentang pemrograman bahasa C sampai saat ini. Teknik dan gaya penulisan bahasa C yang merefer kepada buku ini kemudian terkenal dengan sebutan K&R C atau Classic C atau Common C. Seiring dengan berkembang pesatnya bahasa C, banyak vendor mengembangkan kompiler C menurut versi masing-masing. Hal ini menggerakkan ANSI (American National Standards Institute) pada tahun 1983 untuk membuat suatu komite yang kemudian diberi nama X3J11, yang betujuan untuk membuat definisi standar bahasa C yang lebih modern dan komprehensif, dengan memperbaiki syntax dan grammar bahasa C. Usaha ini berhasil diselesaikan 5 tahun
kemudian, yaitu ditandai dengan lahirnya standard ANSI untuk bahasa C yang kemudian terkenal dengan sebutan ANSI C pada tahun 1988.

M E N G A P A  P A K A I  B A H A S A C + +?
Sampai saat ini, bahasa C telah berhasil digunakan untuk mengembangkan berbagai jenis permasalahan pemrograman, dari level operating system (unix, linux, ms dos,dsb), aplikasi perkantoran (text editor, word processor, spreadsheet, dsb), bahkan sampai pengembangan sistem pakar (expert system). Kompiler C juga telah tersedia di semua jenis platform komputer, mulai dari Macintosh, UNIX, PC, Micro PC, sampai super komputer. C bisa disebut bahasa pemrograman tingkat menengah (middle level programming language). Arti tingkat (level) disini adalah kemampuan
mengakses fungsi-fungsi dan perintah-perintah dasar bahasa mesin/hardware (machine basic instruction set). Semakin tinggi tingkat bahasa pemrograman (misalnya: java), semakin mudahlah bahasa pemrograman dipahami manusia,
namun membawa pengaruh semakin berkurang kemampuan untuk mengakses langsung instruksi dasar bahasa mesin. Demikian juga sebaliknya dengan bahasa pemrograman tingkat rendah (misalnya: assembler), yang semakin sulit dipahami manusia dan hanya berisi perintah untuk mengakses bahasa mesin. Dalam perspektif mudahnya dipahami manusia, C bisa digolongkan dalam bahasa tingkat tinggi, namun C juga menyediakan kemampuan yang ada pada bahasa tingkat rendah, misalnya operasi bit, operasi byte, pengaksesan memori, dsb.
Beberapa alasan mengapa memakai bahasa C adalah terangkum dibawah.

1. C adalah bahasa pemrograman yang paling populer saat ini

Dengan banyaknya programmer bahasa C, membawa pengaruh semakin mudahnya kita menemukan pemecahan masalah yang kita dapatkan ketika menulis program dalam bahasa C. Pengaruh positif lain adalah semakin
banyaknya kompiler yang dikembangkan untuk berbagai platform (berpengaruh ke portabilitas).

2. C adalah bahasa pemrograman yang memiliki portabilitas tinggi

Program C yang kita tulis untuk satu jenis platform, bisa kita kompile dan jalankan di platform lain dengan tanpa ataupun hanya sedikit perubahan. Ini bisa diwujudkan dengan adanya standarisasi ANSI untuk C.

3. C adalah bahasa pemrograman dengan kata kunci (keyword) sedikit

Kata kunci disini adalah merupakan fungsi ataupun kata dasar yang disediakan oleh kompiler suatu bahasa  emrograman. Hal ini membawa pengaruh semakin mudahnya kita menulis program dengan C. Pengaruh
lain dari sedikitnya kata kunci ini adalah proses eksekusi program C yang sangat cepat. C hanya menyediakan 32 kata kunci .

4. C adalah bahasa pemrograman yang fleksibel

Dengan menguasai bahasa C, kita bisa menulis dan mengembangkan berbagai jenis program mulai dari operating system, word processor, graphic processor, spreadsheets, ataupun kompiler untuk suatu bahasa
pemrograman.

5. C adalah bahasa pemrograman yang bersifat moduler

Program C ditulis dalam routine yang biasa dipanggil dengan fungsi. Fungsifungsi yang telah kita buat, bisa kita gunakan kembali (reuse) dalam program ataupun aplikasi lain.

Posted in bahasa C | Leave a Comment »

Software Development Life Cycle

Posted by errissya rasywir on November 4, 2009

Pengembangan perangkat lunak (PL) dapat dianggap sebagai lingkaran pemecahan masalah. Untuk menyelesaikan masalah besar, dipecah menjadi kecil terus-menerus sampai paling kecil, kemudian diselesaikan (recursive). Daur hidup PL adalah model proses untuk Rekayasa Perangkat Lunak (RPL) yang dipilih berdasarkan sifat aplikasi dan proyeknya, metode dan tool yang  digunakan, serta kontrol dan deliverable yang diinginkan. Beberapa model Pengembangan PL sebagai berikut:

Terdiri dari bebrapa model sekaligus kelebihan dan kekurangannya

1. Linear sequential model (classic life cycle / model cycle)

Kelebihan model:

  1. Merupakan model yang paling tua dan paling familiar dipakai. Jadi mudah dipahami.
  2. Tidak banyak orang yang dilibatkan jadi menekan gaji pegawai.
  3. Proses terurut dengan jelas sehingga model pengembangan mudah dibaca.

Kelemahan model :

  1. Meskipun mengakomodasi iterasi, model linier melakukannya secara tidak langsung sehingga perubahan-perubahan dapat menyebabkan keraguan saat tim proyek berjalan
  2. Jika user sulit menyatakan semua kebutuhannya secara explisit, model ini sulit mengakomodasi ketidakpastian itu
  3. User harus bersabar karena hasil baru bisa dinikmati setelah testing (akhir waktu). Jika ada kesalahan besar yang tidak terdeteksi sampai program yang bekerja tersebut dikaji ulang, bisa menjadi petaka.
  4. Pengembang sering melakukan penundaan yang tidak perlu. Anggota tim  harus menunggu anggota tim lain selesai mengerjakan tugasnya yang mempunyai keterkaitan dan ketergantungan tinggi.

2. Prototyping Model

Kelebihan  :

  1. Perulangan ketiga proses ini terus berlangsung hingga semua kebutuhan terpenuhi.
  2. Prototype-prototype dibuat untuk memuaskan kebutuhan klien dan untuk memahami kebutuhan klien lebih baik.
  3. Prototype yang dibuat dapat dimanfaatkan kembali untuk membangun software lebih cepat, namun tidak semua prototype bisa dimanfaatkan.
  4. Sekalipun prototype memudahkan komunikasi antar developer dan klien, membuat klien mendapat gambaran awal dari prototype , membantu mendapatkan kebutuhan detil lebih baik namun demikian prototype juga menimbulkan masalah.
  5. user dapat langsung melihat wujud PL yang akan dibangun meskipun sederhana dan dari sana dapat digali kebutuhan yang lebih dalam sebagai bahan penyusunan PL berikutnya.

Kelemahan :

  1. User merasa prototipe merupakan PL yang sesungguhnya, padahal ketika membuat prototipe belum disertakan kualitas PL secara keseluruhan / kemampuan pemeliharaan untuk jangka panjang
  2. .Developer sering membuat kompromi-kompromi implementasi untuk membuat prototipe bekerja dengan cepat sehingga akan ditemui ketidakcocokan pada prototipe ketika prototipe dibangun dengan bahasa yang sederhana
  3. Program dibuat ulang / prototipe selalu baru

3.Rapid Application Development (RAD) Model

Kelebihan  :

  1. RAD adalah model proses pembangunan PL yang incremental.
  2. RAD menekankan pada siklus pembangunan yang pendek/singkat.
  3. RAD mengadopsi model waterfall dan pembangunan dalam waktu singkat dicapai dengan menerapkan component based construction.
  4. Waktu yang singkat adalah batasan yang penting untuk model ini.
  5. Jika kebutuhan lengkap dan jelas maka waktu yang dibutuhkan untuk menyelesaikan secara komplit software yang dibuat adalah misalnya 60 sampai 90 hari.

Kelemahan :

  1. Untuk proyek dengan skala besar, RAD membutuhkan sumber daya manusia yang cukup untuk membentuk sejumlah tim RAD.
  2. RAD membutuhkan pengembang dan pemakai yang mempunyai komitmen untuk melaksanakan aktivitas melengkapi sistem dalam kerangka waktu yang singkat.
  3. Akan menimbulkan masalah jika sistem tidak dapat dibuat secara modular.
  4. RAD tidak cocok digunakan untuk sistem yang mempunyai resiko teknik yang tinggi.

4. The Incremental Model

Kelebihan :

  1. Nilai penggunan dapat ditentukan pada setiap increament sehingga fungsionalitas sistem disediakan lebih awal,
  2. Increment awal berupa prototype untuk membantu memahami kebutuhan pada increment berikutnya,
  3. Memiliki risiko lebih rendah terhadap keseluruhan pengembagan sistem,
  4. Prioritas tertinggi pada pelayanan sistem adalah yang paling
  5. Cocok untuk produksi masal.

Kelemahan :

  1. Tidak bisa digunakan untuk implementasi lengkap misalnya pada proses bisnis disebabkan batas waktu yang telah disepakati oleh proyek tersebut.
  2. Perkembangan waktu  sistem inti dapat diterima dengan baik tetapi tidak dengan perkembangan  mayor  sedang yang waktu penyampainnya  tidak pasti.
  3. Mungkin tiba-tiba saja dibutuhkan perangkat yang baru.

5. An Evolutionary (Spiral) Model

Kelebihan:

  1. Batasan-batasan pada proses dan produk sudah diketahui. Perencanaan sudah disiapkan. Resiko dari proyek sudah diketahui. Alternatif strategi sudah disiapkan berdasarkan resiko-resiko yang diketahui, dan sudah direncanakan.
  2. Setiap resiko dianalisis secara detil. Langkah-langkah penanganan dilakukan, misalnya membuat prototype untuk mengetahui ketidakcocokan kebutuhan.
  3. Pada model spiral, resiko sangat dipertimbangkan.
  4. Model spiral merupakan pendekatan yang realistik untuk PL berskala besar.
  5. Pengguna dan pembangun (Perekayasa) bisa  memahami dengan baik software yang dibangun karena setiap kemajuan yang dicapai selama proses dapat diamati dengan baik.

Kelemahan:

  1. Sulit untuk meyakinkan pemakai (saat situasi kontrak) bahwa penggunaan pendekatan ini akan dapat dikendalikan.
  2. Memerlukan tenaga ahli untuk memperkirakan resiko, dan harus mengandalkannya supaya sukses.
  3. Belum terbukti apakah metode ini cukup efisien karena usianya relatif baru.


Posted in SW Life Cycle | Leave a Comment »

Konsep Dasar IP

Posted by errissya rasywir on November 4, 2009

Alamat IP adalah Kombinasi angka unik yang ditetapkan untuk mengindentifikasi / mengenali suatu host di suatu jaringan / internet agar bisa berkomunikasi satu sama lain. Angka ini dibutuhkan oleh software-software internet untuk mengakses informasi dari dan ke host tersebut.

Seorang tukang pos akan mudah dalam mengirimkan surat kepada tujuannya ketika alamat rumah penerima lengkap dan jelas. Begitu juga didunia networking / internet, setiap computer yang ingin terhubung ke jaringan / internet maka computer tsb harus memiliki alamat yang jelas agar bisa berkomunikasi satu sama lain. Pengguna internet umumnya hanya mengenal nama domain dari alamat website yang akan dikunjungi, seperti: detik.com, ilmukomputer.com, e-dukasi.net, yahoo.com, gmail.com, dll. Tapi sebenarnya alamat-alamat tersebut merupakan konversi dari alamat computer / jaringan berbasiskan angka yang unik. Konsep dasarnya pengalamatan pada komputer menggunakan sekumpulan angka sebanyak 32 bit (IPv4) atau 128 bit (IPv6) yang dikenal sebagai IP address (Alamat IP).

Adanya IP Address merupakan konsekuensi dari penerapan Internet Protocol untuk mengintegrasikan jaringan komputer Internet di dunia. Seluruh host (komputer) yang terhubung ke Internet dan ingin berkomunikasi memakai TCP/IP harus memiliki IP Address sebagai alat pengenal host pada network. Secara logika, Internet merupakan suatu network besar yang terdiri dari berbagai sub network yang terintegrasi. Oleh karena itu, suatu IP Address harus bersifat unik. Tidak boleh ada satu IP Address yang sama dipakai oleh dua host yang berbeda.

Contoh IP Address : 66.249.89.99 (www.google.com) , 203.130.198.131 (www.e-dukasi.net) , 192.168.0.1, dll

Untuk itu, penggunaan IP Address di seluruh dunia dikoordinasi oleh lembaga sentral Internet yang di kenal dengan IANA (Internet Assigned Numbers Authority). Badan-badan yang mengawal IP dibawah IANA adalah:

  1. APNIC (Asia Pacific Network Information Centre) – kawasan Asia / Pacific
  2. ARIN (American Registry for Internet Numbers) – kawasan Amerika Utara dan Afrika
  3. LACNIC (Regional Latin-American and Caribbean IP Address Registry) – kawasan Amerika Latin dan beberapa kepulauan Karibia
  4. RIPE NCC (Réseaux IP Européens) – kawasan Eropa, Asia tengah, and Afrika utara.

IP Address berdasarkan perkembangannya dibagi kepada dua jenis :

  1. IPv4 ( Internet Protocol versi 4 ) Merupakan Alamat IP yang terdiri dari 32 bit yang dibagi menjadi 4 segmen berukuran 8 bit. ditetapkan oleh IANA
  2. IPv6 ( Internet Protocol versi 6 ) Merupakan alamat ip yang terdiri dari 128 bit ditetapkan oleh IANA untuk mengatasi permintaan IP Address yang semakin meningkat.

Posted in Ip Address | Leave a Comment »