GUNADARMA OF UNIVERSITY

TEKNIK INFORMATIKA'09

Selasa, 12 April 2011

web science

ILMU WEB
Internet saat ini bukan sekadar gaya hidup, melainkan sebuah kebutuhan. Salah satu yang ditawarkan dari teknologi ini adalah website. Adanya website tiada lain karena ditemukannya pemrogaman Web yang disebut HTML (Hyper Text Markup Language) yang merupakan kode semi pemrograman. Program ini ditemukan oleh salah seorang staf ahli dari CERN (Conseil Eropeen pour la Recherce Nucleaire), yang bernama Tim Barnens Lee.
Untuk menggunakanya, kita selayaknya memiliki pengetahuan mengenai dasar-dasar ilmu website. Mulai dari pengertiannya, jenis-jenisnya, keahlian yang diperlukan untuk perancangan serta perkembangannya. Dengan dasar-dasar ilmu tentang website ini diharapkan kita tidak hanya sekadar tahu menggunakannya saja, tetapi mengetahui ilmunya juga.
Berikut penjelasan mengenai dasar-dasar ilmu website.
Pengertian Website
Website adalah keseluruhan halaman-halaman web yang terdapat dalam sebuah domain yang memiliki isi berupa informasi. Sebetulnya tidak hanya informasi saja, melainkan bisa juga dalam bentuk kombinasi teks dengan gambar, musik, dan lain sebagainya.
Domain ini adalah nama yang unik dari suatu institusi sehingga website dapat diakses melalui internet. Sedangkan halaman awal sebuah domain dinamakan homepege. Jika Anda mengklik menu-menu yang ada di halaman homepage ini, berarti Anda menuju ke web page. Isi keseluruhan dari domain inilah yang saat ini kita sebut website.






Pengantar 
Bidang transdisciplinary ilmu Web adalah mengambil Web sebagai objek utama penelitian. Hal ini difokuskan pada interaksi yang signifikan antara interaksi sosial diaktifkan oleh desain Web, pengembangan aplikasi yang scalable dan terbuka mandat untuk mendukung mereka, dan kebutuhan arsitektur dan data aplikasi ini skala besar.Salah satu pertanyaan amplop Web Ilmu bisa menjadi apa perubahan teknologi dan lainnya perlu dilakukan dalam rangka untuk Web untuk bekerja lebih baik untuk jauh lebih banyak dari orang - orang?


Tujuan 

Untuk memahami berbagai aspek dan permasalahan yang timbul karena Web (teknologi, sosiologis, psikologis, ekonomis, biologis) di bawah kerangka analisis umum. 

Keahlian Membangun Website
Untuk membangun sebuah website yang baik. Seorang web master harus menguasai beberapa keahlian, yaitu:
  1. Skill dalam bahasa pemrograman. Misalnya bahasa pemrograman PHP, ASP, HTML, dan lain-lain.
  2. Skill dalam bidang design. Dengan menguasai software Photoshop, Paintshop Pro, dan lain-lain.
  3. Skill dalam bidang animasi. Misalnya menguasai Flash, Swift, Image Eaady, dan lain-lain.
Perkembangan Website
Hampir 80% layanan internet diisi oleh website. Pertumbuhannya sangat cepat sekali. Setiap hari bermunculan website-website baru. Hal ini disebabkan banyaknya tools yang tersedia untuk membuat website yang bisa didapatkan dengan gratis.
Faktor utamanya adalah karena penyebaran informasi melalui website yang cepat dan mencakup area yang sangat luas yaitu dunia. Akses yang tidak dibatasi oleh waktu maupun jarak. Sehingga berkembang pula website-website pribadi atau blogger selain e-banking, e-commerce, e-learning, dan lain sebagainya.
Saat ini website digunakan sebagai media yang tepat untuk memperkenalkan diri pada dunia. Website juga sebagai sarana yang tepat untuk mempromosikan barang atau jasa yang Anda jual. Anda dapat menghasilkan uang yang berlimpah hanya dengan duduk di depan komputer atau laptop saja.

My Web (chery'ninformatics.co.cc)

Chery’nInformatics
Merupakan situs website yang menjadikan seseorang paham dan mengerti arti dari dunia informatika. Berbagai fitur – fitur dari web ini memberikan inspirasi tersendiri bagi orang yang melihatnya. Sistem operasi sangat penting bagi para pengguna dunia komputerisasi karena, Sistem operasi adalah sekumpulam program-program yang dibuat oleh pabrik komputer untuk membantu para pengguna dalam mengoprasikan komputer. Dengan menggunakan sistem operasi, kita tidak lagi mengalami kesulitan untuk mengolah kerja program. Misalnya untuk menyalin atau mengganti nama file, memformat disket/hard disk, mengatur perangkat keras (hardware), melindungi data terhadap kemungkinan diakses oleh pengguna lain, atau mengaktifkan printer. Sistem operasi ini dibuat oleh sejumlah orang yang disebut pemrogram sistem (programmer)yang bekerja pada perusahaan pembuatan software.
Sistem operasi mengolah berbagai proses pengolahan data dikomputer seperti menjalankan program spreadsheet (contohnya Microsoft Excel), atau mengakses informasi dari memori komputer. Selain itu, sistem operasi menerjemahkan perintah berupa teks atau grafik yang memungkinkan kita untuk berkomunikasi dengan komputer.
Pada web ini memiliki 5 bar di antaranya:
1.      Beranda Info   : halaman awal
Tujuan :Agar dapat memahami dari pngertian dari dunia informatika
2.      Aplikasi           : halaman kedua
Tujuan :Agar dapat mengetahui jenis aplikasi JAVA dan sebagainya
3.      Koding            : halaman ketiga
Tujuan :Bersisikan kodding program yang dapat memeudahkan kita mencari aplikasi
4.      Komputer        : halaman keempat
Tujuan :Untuk mengetahui dari beberapa perkembangan komputer saat ini
5.      Contact           : kontak pemilik website
1.      Beranda Info :
a.      Informatika>>
b.      Ilmu komputer>>
c.       Bahasa Pemrograman>>


  Aplikasi

a.       Aplikasi Komputer>>
b.      Klasifikasi sistem operasi>>
c.       Aplikasi Warnet>>
d.      Macam-macam aplikasi Java>>


  Koding

a.       Kodding JAVA>>
 Komputer

a.       Generasi Komputer
1.  Info kontak
a.       Contact Info>>






Generasi Komputer

I. KOMPUTER GENERASI PERTAMA

Dengan terjadinya Perang Dunia Kedua,negara-negara yang terlibat dalam perang tersebut berusaha mengembangkan komputer untuk mengeksploitasi potensi strategis yang dimiliki komputer.Hal ini meningkatkan pendanaan pengembangan komputer serta mempercepat kemajuan teknik komputer. Pada tahun 1941,Konrad Zuse, seorang insinyur Jerman membangun sebuah komputer Z3,untuk mendisain pesawat terbang dan peluru kendali.

Pihak sekutu juga membuat kemajuan lain dalam pengembangan kekuatan komputer. Tahun 1943, pihak Inggris menyelesaikan komputer pemecah kode rahasia yang dinamakan Colossus untuk memecahkan kode-rahasia yang digunakan Jerman.Dampak pembuatan Colossus tidak terlalu mempengaruhi perkembangan industri komputer dikarenakan dua alasan.Pertama,colossus bukan merupakan komputer serbaguna general-purpose computer),ia hanya didisain untuk memecahkan kode rahasia.Kedua, keberadaan mesin ini dijaga kerahasiaannya hingga satu dekade setelah perang berakhir.

Usaha yang dilakukan oleh pihak Amerika pada saat itu menghasilkan suatu kemajuan lain. 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.The Harvd-IBM Automatic Sequence Controlled Calculator,atau Mark I,merupakan komputer relai elektronik.Ia menggunakan sinyal elektromagnetik untuk menggerakkan komponen mekanik.Mesin tersebut beropreasi dengan lambat (ia membutuhkan 3-5 detik untuk setiap perhitungan) dan tidak fleksibel (urutan kalkulasi tidak dapat diubah).Kalkulator tersebut dapat melakukan perhitungan aritmatik dasar dan persamaan yang lebih kompleks.

Perkembangan komputer lain pada masa ini adalah 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.Komputer ini dirancang oleh John Presper Eckert (1919-1995) dan John W.Mauchly (1907-1980), ENIAC merupakan komputer serbaguna (general purpose computer) yang bekerja 1000 kali lebih cepat dibandingkan Mark I.Pada pertengahan 1940-an,John von Neumann(1903-1957) bergabung dengan tim University of Pennsylvania dalam usha membangun konsep desain komputer yang hingga 40 tahun mendatang masih dipakai dalam teknik komputer.

Von Neumann mendesain Electronic Discrete Variable Automatic Computer (EDVAC) pada tahun 1945 dengan sebuah memori untuk menampung baik program ataupun data.Teknik ini memungkinkan komputer untuk berhenti pada suatu saat dan kemudian melanjutkan pekerjaannya kembali.Kunci utama arsitektur von Neumann adalah unit pemrosesan sentral (CPU),yang memungkinkan seluruh fungsi komputer untuk dikoordinasikan melalui satu sumber tunggal. Tahun 1951, UNIVAC I (Universal Automatic Computer I) yang dibuat oleh Remington Rand, menjadi komputer komersial pertama yang memanfaatkan model arsitektur von Neumann tersebut. Baik Badan Sensus Amerika Serikat dan General Electric memiliki UNIVAC.Salah satu hasil mengesankan yang dicapai oleh UNIVAC dalah keberhasilannya dalam memprediksi kemenangan Dwilight D. Eisenhower dalam pemilihan presiden tahun 1952.

Komputer Generasi pertama dikarakteristik dengan fakta bahwa instruksi operasi dibuat secara spesifik untuk suatu tugas tertentu. Setiap komputer memiliki program kode-biner yang berbeda yang disebut "bahasa mesin" (machine language).Hal ini menyebabkan komputer sulit untuk diprogram dan membatasi kecepatannya.Ciri lain komputer generasi pertama adalah penggunaan tube vakum (yang membuat komputer pada masa tersebut berukuran sangat besar) dan silinder magnetik untuk penyimpanan data.

II. KOMPUTER GENERASI KEDUA

Pada tahun 1948, penemuan transistor sangat mempengaruhi perkembangan komputer. Transistor menggantikan tube vakum di televisi, radio, dan komputer. Akibatnya, ukuran mesin-mesin elektrik berkurang drastis. Transistor mulai digunakan di dalam komputer mulai pada tahun 1956. Penemuan lain yang berupa pengembangan memori inti-magnetik membantu pengembangan komputer generasi kedua yang lebih kecil,lebih cepat,lebih dapat diandalkan,dan lebih hemat energi dibanding para pendahulunya.Mesin pertama yang memanfaatkan teknologi baru ini adalah superkomputer. IBM membuat superkomputer bernama Stretch,dan Sprery-Rand membuat komputer bernama LARC.Komputer-komputer ini, yang dikembangkan untuk laboratorium energi atom,dapat menangani sejumlah besar data, sebuah kemampuan yang sangat dibutuhkan oleh peneliti atom.Mesin tersebut sangat mahal dan cenderung terlalu kompleks untuk kebutuhan komputasi bisnis, sehingga membatasi kepopulerannya. Hanya ada dua LARC yang pernah dipasang dan digunakan: satu di Lawrence Radiation Labs di Livermore, California, dan yang lainnya di US Navy Research and Development Center di Washington D.C.Komputer generasi kedua menggantikan bahasa mesin dengan bahasa assembly.Bahasa assembly adalah bahasa yang menggunakan singkatan-singkatan untuk menggantikan kode biner.

Pada awal 1960-an, mulai bermunculan komputer generasi kedua yang sukses di bidang bisnis, di universitas,dan di pemerintahan.Komputer-komputer generasi kedua ini merupakan komputer yang sepenuhnya menggunakan transistor.Mereka juga memiliki komponen-komponen yang dapat diasosiasikan dengan komputer pada saat ini: printer, penyimpanan dalam disket,memory,sistem operasi,dan program.Salah satu contoh penting komputer pada masa ini adalah IBM 1401 yang diterima secara luas di kalangan industri.Pada tahun 1965,hampir seluruh bisnis-bisnis besar menggunakan komputer generasi kedua untuk memproses informasi keuangan.

Program yang tersimpan di dalam komputer dan bahasa pemrograman yang ada di dalamnya memberikan fleksibilitas kepada komputer.Fleksibilitas ini meningkatkan kinerja dengan harga yang pantas bagi penggunaan bisnis.Dengan konsep ini,komputer dapat mencetak faktur pembelian konsumen dan kemudian menjalankan desain produk atau menghitung daftar gaji. Beberapa bahasa pemrograman mulai bermunculan pada saat itu. Bahasa pemrograman Common Business-Oriented Language (COBOL) dan Formula Translator (FORTRAN) mulai umum digunakan.Bahasa pemrograman ini menggantikan kode mesin yang rumit dengan kata-kata,kalimat,dan formula matematika yang lebih mudah dipahami oleh manusia.Hal ini memudahkan seseorang untuk memprogram dan mengatur komputer.Berbagai macam karir baru bermunculan (programmer,analyst,dan ahli sistem komputer).Industri piranti lunak juga mulai bermunculan dan berkembang pada masa komputer generasi kedua ini.

III. KOMPUTER GENERASI KETIGA

Walaupun transistor dalam banyak hal mengungguli tube vakum,namun transistor menghasilkan panas yang cukup besar,yang dapat berpotensi merusak bagian-bagian internal komputer.Batu kuarsa (quartz rock) menghilangkan masalah ini.Jack Kilby, seorang insinyur di Texas Instrument,mengembangkan sirkuit terintegrasi (IC: integrated circuit) di tahun 1958. IC mengkombinasikan tiga komponen elektronik dalam sebuah piringan silikon kecil yang terbuat dari pasir kuarsa.Para ilmuwan kemudian berhasil memasukkan lebih banyak komponen-komponen ke dalam suatu chip tunggal yang disebut semikonduktor.Hasilnya, komputer menjadi semakin kecil karena komponen-komponen dapat dipadatkan dalam chip. Kemajuan komputer generasi ketiga lainnya adalah penggunaan sistem operasi (operating system) yang memungkinkan mesin untuk menjalankan berbagai program yang berbeda secara serentak dengan sebuah program utama yang memonitor dan mengkoordinasi memori komputer.

IV. KOMPUTER GENERASI KEEMPAT

Setelah IC, tujuan pengembangan menjadi lebih jelas yaitu mengecilkan ukuran sirkuit dan komponen-komponen elektrik.Large Scale Integration (LSI) dapat memuat ratusan komponen dalam sebuah chip.Pada tahun 1980-an, Very Large Scale Integration (VLSI) memuat ribuan komponen dalam sebuah chip tunggal.Ultra-Large Scale Integration (ULSI) meningkatkan jumlah tersebut menjadi jutaan.Kemampuan untuk memasang sedemikian banyak komponen dalam suatu keping yang berukuran setengah keping uang logam mendorong turunnya harga dan ukuran komputer.Hal tersebut juga meningkatkan daya kerja,efisiensi dan kehandalan komputer.Chip Intel 4004 yang dibuat pada tahun 1971 membawa kemajuan pada IC dengan meletakkan seluruh komponen dari sebuah komputer (central processing unit,memori,dan kendali input/output) dalam sebuah chip yangsangat kecil. Sebelumnya,IC dibuat untuk mengerjakan suatu tugas tertentu yang spesifik. Sekarang, sebuah mikroprosesor dapat diproduksi dan kemudian diprogram untuk memenuhi seluruh kebutuhan yang diinginkan.Tidak lama kemudian, setiap perangkat rumah tangga seperti microwave oven,televisi,dan mobil dengan electronic fuel injection dilengkapi dengan mikroprosesor.

Perkembangan yang demikian memungkinkan orang-orang biasa untuk menggunakan komputer biasa.Komputer tidak lagi menjadi dominasi perusahaan-perusahaan besar atau lembaga pemerintah.Pada pertengahan tahun 1970-an,perakit komputer menawarkan produk komputer mereka ke masyarakat umum.Komputer-komputer ini, yang disebut minikomputer, dijual dengan paket piranti lunak yang mudah digunakan oleh kalangan awam.Piranti lunak yang paling populer pada saat itu adalah program word processing dan spreadsheet.Pada awal 1980-an, video game seperti Atari 2600 menarik perhatian konsumen pada komputer rumahan yang lebih canggih dan dapat diprogram.Pada tahun 1981,IBM memperkenalkan penggunaan Personal Computer (PC) untuk penggunaan di rumah, kantor, dan sekolah. Jumlah PC yang digunakan melonjak dari 2 juta unit di tahun 1981 menjadi 5,5 juta unit di tahun 1982.Sepuluh tahun kemudian, 65 juta PC digunakan. Komputer melanjutkan evolusinya menuju ukuran yang lebih kecil,dari komputer yang berada di atas meja (desktop computer) menjadi komputer yang dapat dimasukkan ke dalam tas (laptop), atau bahkan komputer yang dapat digenggam (palmtop).

IBM PC bersaing dengan Apple Macintosh dalam memperebutkan pasar komputer. Apple Macintosh menjadi terkenal karena mempopulerkan sistem grafis pada komputernya, sementara saingannya masih menggunakan komputer yang berbasis teks.Macintosh juga mempopulerkan penggunaan piranti mouse.

Pada masa sekarang, kita mengenal perjalanan IBM compatible dengan pemakaian CPU: IBM PC/486,Pentium,Pentium II,Pentium III,Pentium IV (Serial dari CPU buatan Intel). Juga kita kenal AMD k6,Athlon,dsb.Ini semua masuk dalam golongan komputer generasi keempat.Seiring dengan menjamurnya penggunaan komputer di tempat kerja,cara-cara baru untuk menggali potensi terus dikembangkan.Seiring dengan bertambah kuatnya suatu komputer kecil,komputer-komputer tersebut dapat dihubungkan secara bersamaan dalam suatu jaringan untuk saling berbagi memori,piranti lunak,informasi, dan juga untuk dapat saling berkomunikasi satu dengan yang lainnya.Komputer jaringan memungkinkan komputer tunggal untuk membentuk kerjasama elektronik untuk menyelesaikan suatu proses tugas.Dengan menggunakan perkabelan langsung,disebut juga Local Area Network (LAN),atau kabel telepon,jaringan ini dapat berkembang menjadi sangat besar.

V. KOMPUTER GENERASI KELIMA

Mendefinisikan komputer generasi kelima menjadi cukup sulit karena tahap ini masih sangat muda.Contoh imajinatif komputer generasi kelima adalah komputer fiksi HAL9000 dari novel karya Arthur C. Clarke berjudul 2001:Space Odyssey.HAL menampilkan seluruh fungsi yang diinginkan dari sebuah komputer generasi kelima.Dengan kecerdasan buatan (artificial intelligence),HAL dapat cukup memiliki nalar untuk melakukan percapakan dengan manusia,menggunakan masukan visual,dan belajar dari pengalamannya sendiri.

Walaupun mungkin realisasi HAL9000 masih jauh dari kenyataan,banyak fungsi-fungsi yang dimilikinya sudah terwujud.Beberapa komputer dapat menerima instruksi secara lisan dan mampu meniru nalar manusia.Kemampuan untuk menterjemahkan bahasa asing juga menjadi mungkin.Fasilitas ini tampak sederhan. Namun fasilitas tersebut menjadi jauh lebih rumit dari yang diduga ketika programmer menyadari bahwa pengertian manusia sangat bergantung pada konteks dan pengertian daripada sekedar menterjemahkan kata-kata secara langsung.

Banyak kemajuan di bidang disain komputer dan teknologi semakin memungkinkan pembuatan komputer generasi kelima.Dua kemajuan rekayasa yang terutama adalah kemampuan pemrosesan paralel,yang akan menggantikan model von Neumann.Model von Neumann akan digantikan dengan sistem yang mampu mengkoordinasikan banyak CPU untuk bekerja secara serempak.Kemajuan lain adalah teknologi superkonduktor yang memungkinkan aliran elektrik tanpa ada hambatan apapun, yang nantinya dapat mempercepat kecepatan informasi.

Jepang adalah negara yang terkenal dalam sosialisasi jargon dan proyek komputer generasi kelima.Lembaga ICOT (Institute for new Computer Technology) juga dibentuk untuk merealisasikannya.Banyak kabar yang menyatakan bahwa proyek ini telah gagal,namun beberapa informasi lain bahwa keberhasilan proyek komputer generasi kelima ini akan membawa perubahan baru paradigma komputerisasi di dunia.Kita tunggu informasi mana yang lebih valid dan membuahkan hasil.

VI. KOMPUTER GENERASI KE ENAM ( Masa Depan)

Dengan Teknologi Komputer yang ada saat ini,agak sulit untuk dapat membayangkan bagaimana komputer masa depan.Dengan teknologi yang ada saat ini saja kita seakan sudah dapat “menggenggam dunia”.Dari sisi teknologi beberapa ilmuwan komputer meyakini suatu saat tercipta apa yang disebut dengan biochip yang dibuat dari bahan protein sitetis.Robot yang dibuat dengan bahan ini kelak akan menjadi manusia tiruan.Sedangkan teknologi yang sedang dalam tahap penelitian sekarang ini yaitu mikrooptik serta input-output audio yang mungkin digunakan oleh komputer yang akan datang.Ahli-ahli sains komputer sekarang juga sedang mencoba merancang komputer yang tidak memerlukan penulisan dan pembuatan program oleh pengguna.Komputer tanpa program (programless computer) ini mungkin membentuk ciri utama generasi komputer yang akan datang.

Kemungkinan Komputer Masa Depan

Secara prinsip ciri-ciri komputer masa mendatang adalah lebih canggih dan lebih murah dan memiliki kemampuan diantaranya melihat, mendengar, berbicara, dan berpikir serta mampu membuat kesimpulan seperti manusia.Ini berarti komputer memiliki kecerdasan buatan yang mendekati kemampuan dan prilaku manusia. Kelebihan lainnya lagi, kecerdasan untuk memprediksi sebuah kejadian yang akan terjadi,bisa berkomunikasi langsung dengan manusia,dan bentuknya semakin kecil. Yang jelas komputer masa depan akan lebih menakjubkan.

Sabtu, 09 April 2011

MAKALAH


APLIKASI BILLING WARNET

BAB I

1.      Pendahuluan

Bab ini membahas tentang latar belakang masalah yang menjadi alasan pembuatan penulisan dengan disertai batasan masalah, tujuan pembuatan, pengertian dan fitur – fitur yang tersedia.

1.1  Latar Belakang

Teknologi informasi sampai dengan saat ini telah berkembang sangat pesat seiring dengan penemuan dan pengembangan ilmu pengetahuan dalam bidang informasi dan komunikasi, khususnya dalam perkembangan dunia komputer. Karena hal itu banyak sekali kemudahan-kemudahan yang tercipta dari peningkatan layanan teknologi.
Dahulunya komputer digunakan hanya sebagai alat hitung saja, tetapi karena perkembangannya yang sangat pesat komputer menjadi alat yang multiguna. Komputer banyak dipakai sebagai alat belajar, bisnis, hiburan, dan masih banyak lagi fungsinya. Perkembangan komputer juga mempengaruhi berkembangnya dunia internet. Internet menjadi pasangan yang yang tak bisa dipisahkan oleh komputer.
Layanan internet adalah salah satu kemajuan dari ilmu pengetahuan dalam bidang informasi dan komunikasi tersebut. Internet sudah menjadi suatu kebutuhan bagi hampir semua orang, dari yang masih kecil sampai orang tua, dari yang tua sampai yang muda semuanya menggunakan internet. Sekarang internet tidak hanya dapat diakses melalui komputer, handphone pun sekarang dapat mengakses internet.
Perkembangan internet di Indonesia juga semakin meningkat. Seiring dengan perkembangannya, maka banyak pula orang yang memanfaatkannya sebagai peluang bisnis. Salah satu dari peluang bisnis tersebut adalah warnet Namun untuk menjalankan bisnis ini memerlukan modal yang tidak sedikit, selain perangkat keras (hardware), perangkat lunak (software) pun sangat diperlukan untuk menjalankan bisnis ini. Dalam sebuah warnet pun memiliki kendala dalam penjualan jasanya. Awalnya warnet hanya memiliki sistem pembayaran yang manual. Pegawai warnet mencatat pada buku tulis jam berapa user mulai mengunakan komputer dan jam berapa user selesai menggunakan computer dan apa saja yang sudah dipesan oleh user, misalnya minuman. Kemudian pegawai atau operator warnet menghitung total biaya dengan mengalikan tarif awal dengan durasi dan menambahkannya dengan harga minuman yang dipesan. 
Namun cara tersebut menyebabkan banyak sekali kesalahan yang terjadi pada perhitungan. Terkadang buku catatan tersebut hilang atau mungkin rusak sehingga. Karena itu warnet memerlukan sebuah aplikasi pembayaran.
Contohnya dalam warnet XXX. Warnet ini belum memiliki sebuah aplikasi billing. Di warnet tersebut hanya menggunakan penghitungan secara manual. Cara tesebut ternyata tidak efektif karena banyak transaksi yang tidak tercatat dalam buku sehingga warnet tersebut mengalami kerugian materi. Oleh karena itu penulis membuat PI yang berjudul “Membuat Aplikasi Billing Warnet menggunakan C". 


Ketika sedang browsing untuk mencari informasi mengenai sistem billing untuk warnet linux (sebelumnya saya mengunjungi sebuah situs aplikasi billing komersil yang ternyata sekarang bisa run di linux, yang sering saya lihat bajakannya di warnet-warnet yang OS nya juga bajakan, he) saya menemukan sebuah situs aplikasi billing warnet gratis dan open source tentunya. Dari situs tersebut saya tidak hanya melihat sebuah sistem aplikasi billing warnet yang powerfull tetapi juga sebuah tujuan yang mulia banget apalagi kalo bukan untuk bermanfaat bagi orang lain, terutama untuk bangsa ini (pengembang aplikasi ini merupakan orang Indonesia dan mengharapkan aplikasi ini dikembangkan juga oleh orang Indonesia).

1.2  Batasan Masalah

Permasalahan dibatasi pada tidak dibuatnya print out dari bukti transaksi, atau struk pembayaran dari server. Aplikasi ini hanya menampilkan total biaya dan durasi penggunaan dalam aplikasi billing.

1.3  Tujuan Pembuatan dan Penulisan

Membuat aplikasi billing dengan menampilkan form yang terdiri dari durasi yang telah dipakai dan biaya yang harus dikeluarkan oleh klien. Dan juga memudahkan pemilik untuk mengontrol kegiatan pada warnet atau rental komputer khususnya dalam penghitungan biaya.
Kata orang, mengembangkan free software atau software bebas di negara ini tidak ada gunanya, berbeda dengan di luar sana, yang mana orang lain akan sangat tertarik untuk melakukan kontribusi seperti menjadi developer, melaporkan bug, menulis dokumentasi, donasi, dan sebagainya. Orang-orang di negara ini hanya tertarik untuk memakai saja. Kata-kata ini ada benarnya, karena saya sudah merasakannya ;p. Tapi kita tidak bisa begitu saja menyalahkan ini, ada unsur politik (i hate politics!). Di negara ini sudah biasa disuap dengan software bajakan, pendidikan yang mono-sistem (hanya tergantung pada satu sistem), dan sebagainya. Bagaimana bisa berkreasi jika pembajakan di sana-sini, bagaimana bisa berkontribusi jika di mata kuliah hanya diajarkan WindowsVisual Basic, dan Microsoft Offices. Saya sebenarnya tidak peduli dengan kata-kata di atas, saya hanya cinta menulis program dan menikmatinya, saya bisa saja mengajak teman-teman developer di luar sana untuk mengembangkan gBilling, tapi tentu saja gBilling bukan buatan orang Indonesia lagi, harapan saya adalah gBilling 100% buatan orang-orang Indonesia.

1.4  Pengertian Billing

Billing adalah aplikasi sistem pembayaran warnet (warnet billing system) yang terdiri dari server dan client, Billing diharapkan bisa berjalan di multi-platform (Linux, BSD, MacOS, atau Microsoft Windows). Billing di tulis dalam bahasa C, dengan GUI toolkit GTK2 (The GIMP Toolkit), dan menggunakan SQLite sebagai sistem database dan penyimpanan data. Billing akan selalu berada di bawah lisensi GNU Public License (GPL) versi 2.
Penulis membuat aplikasi ini pertama kalinya ketika sedang menulis aplikasi network untuk server FreeBSD (Maret, 2008) yang kira-kira hampir sama dengan cara kerja aplikasi billing warnet, dan pada waktu proyek aplikasi network itu selesai, penulis tertarik untuk menulis aplikasi billing warnet yang sesungguhnya. Penulis memilih porting ke GNU/Linux (Linux) karena Linux adalah sistem yang sangat ideal untuk Warnet. Walaupun dengan waktu luang yang tidak banyak (suka nongkrong dan banyak dengar lagu ;p) gBilling pun mulai ditulis dari awal. Karena socket programming pada setiap sistem kompatibel, dan library-libraryyang dipakai bisa berjalan di semua sistem tersebut, gBilling juga seharusnya bisa berjalan di setiap sistem dengan tanpa atau sedikit modifikasi, ini seperti Winsock di Windows yang menggunakan fungsi-fungsi khusus (tapi tetap menyediakan kompabilitas dengan socket UNIX/BSD) dan kode error yang tidak seperti UNIX. Pertama kali gBilling ditulis denganPython, seiring perkembangan aplikasi ini seperti system call, API library-library yang digunakan, bahasa scripting dianggap tidak cocok lagi dan gBilling ditulis ulang ke C sampai saat ini dengan GLib untuk fungsi-fungsi wrapper POSIX dan API Windows.
gBilling menggunakan model concurrent TCP/IP server model, artinya server dapat malayani request client secara bersamaan (concurrent) tanpa menunggu request dari client lainnya selesai. Concurrent ini dicapai dengan menggunakan thread pada setiap request client seperti schedulingtimeout atau operasi socket (I/O). gBilling telah diprogram dengan baik untuk memenuhi kondisi thread-safe, tapi gBilling tidak dapat dijamin thread-safe, kerena untuk itu pemeriksaan program harus dilakukan dengan debugging atau menggunakan aplikasi pendeteksi thread-safetyDebugging pada aplikasi yang kompleks dan multi-thread sangat tidak mudah, kita harus punya kesabaran, skill, dan banyak waktu (ya, kita harus punya banyak waktu ;p). gBilling ditulis dalam bahasa C untuk kecepatan dan portabilitas, tidak seperti bahasa high-level seperti Java, PHP atau Python yang mengaksessystem call dan API melalui runtime-nya (yang juga merupakan system-level programming). C akan mengajarkan kita bagaimana mengakses system call dan API langsung dari library-library yang disediakan oleh sistem.

1.5  Kelebihan

Karena Billing adalah software bebas (free software), anda dapat mengambil keuntungan dari aplikasi ini. Anda bisa memodifikasi sesuai keperluan anda, anda bisa mempelajari cara kerja Billing dan membuat aplikasi billing anda sendiri, anda bisa berpartisipasi mengembangkan program ini, dan lain-lain. Billing akan selalu ditulis dengan mangacu pada portabilitas, Billing tidak akan mengacu hanya pada satu sistem yang mana akan membuang-buang waktu saja.
Billing tidak dibuat untuk mendapat keuntungan atau penghargaan, Billing dibuat untuk mendukung sistem operasi yang bebas seperti Linux agar bisa digunakan dengan baik untuk warnet. Sekali lagi Billing adalah software bebas yang berada di bawah lisensi GNU General Public License versi 2, bukan OSI Open Source, lisensi BSD dan sebagainya.


Melalui berbagai metode penelitian yang kami jalani selama penulisan makalah ini.
Metode yang dipakai dalam pembuatan penulisan ilmiah ini adalah observasi, yaitu dengan mengumpulkan data dan informasi dari beberapa warnet. Tahapan rancangnnya sebagai berikut :
-           Membuat form yang terdiri dari beberapa button dan list.
-           Memasukan coding pada button.


Diantanya terdapat :

·         Multiplatform (UNIX: Linux, MacOS, BSD, dan Microsoft Windows) untuk arsitektur 32 bit dan 64 bit
·         Concurrent TCP/IP server model (IPv4)
·         Orientasi penyimpanan database (SQLite embedding)
·         Kontrol penuh dari server (logout, shutdown, restart, tutup/buka login client)
·         Mendeteksi client yang tidak aktif (program client yang tidak aktif atau komputer client)
·         Sistem logging dan export log ke format CSV
·         Sistem paket
·         Sistem Item (Item-item yang dijual di warnet ditampilkan di client)
·         Kostumisasi sesuai dengan warnet anda (nama warnet, slogan, alamat)
·         Free software
Fitur-fitur lainnya seperti sistem member (anggota), voucher, screen capture dan lain-lain akan dikembangkan pada versi selanjutnya.

1.7  Cara Penggunaan
:-) 
Silahkan baca lisensi di situs resminya sebelum penggunaan, distribusi dan modifikasi Billing. Dukung pengembangan Billing dengan ikut serta dalam penulisan kode program, menulis dokumentasi, laporan bug atau melakukan donasi. Donasi yang masuk akan sangat membantu pengembangan Billing seperti untuk membeli distro-distro Linux, membeli sistem operasi yang belum di uji coba seperti Windows Vista (jangan pernah pikir bajakan ;p), dan keperluan lainnya. Untuk melakukan donasi, silahkan hubungi penulis.
Perhatian: Anda tetap selalu bisa mendapatkan gBilling dengan bebas dan tanpamelakukan donasi terlebih dahulu, jika ada pihak yang menjual atau meminta donasi untuk mendapatkan gBilling, silahkan hubungi penulis.










BAB II

Setelah membuat dan meneliti berbagai macam eksperimen yang kita lakukan, maka tiba saat nya mencoba listing program billing di bawah ini.
Listing Program :
#nclude <stdio.h>
#include <string.h>
#include <conio.h>
#include <time.h>
enum boolean {false, true};   /*membuat tipe data boolean*/
int main()
{
enum boolean loopPass = true, loopMenu = true;
int pilMenu = 0, pilClient;
int mntPakai1, jamPakai1, bayar1, per15Mnt1;
int mntPakai2, jamPakai2, bayar2, per15Mnt2;
int mntPakai3, jamPakai3, bayar3, per15Mnt3;
int mntPakai4, jamPakai4, bayar4, per15Mnt4;
char userAdmin[5], passAdmin[5], inUserAdmin[5], inPassAdmin[5];
char userClient1[20], userClient2[20], userClient3[20], userClient4[20];
strcpy(userAdmin, "2IA05");          /*memasukkan nilai ke variabel userAdmin*/
strcpy(passAdmin, "2IA05");
strcpy(userClient1, "");
strcpy(userClient2, "");
strcpy(userClient3, "");
strcpy(userClient4, "");

do  /*tampilan layar awal*/
{
printf("***********************\n");
printf("*                     *\n");
printf("* 2IA05 Internet Cafe *\n");
printf("*                     *\n");
printf("***********************\n\n");
printf("ADMINISTRATOR LOGIN\n");
printf("USERNAME\t: ");
scanf("%s", &inUserAdmin);
printf("PASSWORD\t: ");
scanf("%s", &inPassAdmin);
if((strcmp(userAdmin,inUserAdmin) == 0) && (strcmp(passAdmin,inPassAdmin) == 0))   /*membandingkan nilai dua buah string*/
{
loopPass = false;
printf("\nAnda telah berhasil login\n");
printf("Tekan sembarang tombol untuk melanjutkan. :)\n");
getch();
clrscr();
}
else
{
loopPass = true;
printf("\nUsername dan/atau Password anda salah!\n");
printf("Tekan sembarang tombol untuk mengulangi!\n");
getch();
clrscr();
}
}
while (loopPass == true);
do   /*tampilan layar utama*/
{
time_t start_time1 ; time_t start_time2 ; time_t start_time3 ;time_t start_time4 ;
time_t stop_time1 ; time_t stop_time2 ; time_t stop_time3 ; time_t stop_time4 ;
int dtkPakai1 ; int dtkPakai2 ; int dtkPakai3 ; int dtkPakai4 ;
pilClient = 0;
printf("***** 2IA05 Internet Cafe *****\n\n");
printf("MENU :\n");
printf("[1] User Masuk\n");
printf("[2] User Keluar\n");
printf("[3] Tampilkan Daftar Klien Yang Aktif\n\n");
printf("Pilihan Menu : ");
scanf("%d/n", &pilMenu);
switch (pilMenu)
{
case 1 :
{
printf("Komputer Client yang tersedia adalah : ");
if (strcmp(userClient1, "") == 0) printf("[1] ");
if (strcmp(userClient2, "") == 0) printf("[2] ");
if (strcmp(userClient3, "") == 0) printf("[3] ");
if (strcmp(userClient4, "") == 0) printf("[4] ");
printf("\nPilih client yang akan digunakan : ");
scanf("%d", &pilClient);
switch (pilClient)
{
case 1 :
{
if (strcmp(userClient1, "") == 0)
{                                                                                                                     
printf("User\t\t: ");
scanf("%s", &userClient1);
start_time1 = time( NULL ) ;
printf("Tekan sembarang tombol untuk melanjutkan!\n");
}
else
{                                                                                                                                                                                                                                                                                 
printf("Komputer client ini sudah ada yang menggunakan!\n");
printf("Tekan sembarang tombol untuk melanjutkan!\n");
}
break;
}
case 2:
{
if (strcmp(userClient2, "") == 0)
{
printf("User\t\t: ");
scanf("%s", &userClient2);
start_time2 = time( NULL ) ;
printf("Tekan sembarang tombol untuk melanjutkan!\n");
}
else
{                                                                                                                                                          printf("Komputer client ini sudah ada yang menggunakan!\n");
printf("Tekan sembarang tombol untuk melanjutkan!\n");
}
break;
}
case 3 :
{
if (strcmp(userClient3, "") == 0)
{
printf("User\t\t: ");
scanf("%s", &userClient3);
start_time3 = time( NULL ) ;
printf("Tekan sembarang tombol untuk    melanjutkan!\n");
}
else
{                                                                                                                     
\printf("Komputer client ini sudah ada yang menggunakan!\n");
printf("Tekan sembarang tombol untuk melanjutkan!\n");
}
break;
}
case 4 :
{
if (strcmp(userClient4, "") == 0)
{
printf("User\t\t: ");
scanf("%s", &userClient4);
start_time4 = time( NULL ) ;                                                                                    
printf("Tekan sembarang tombol untuk    melanjutkan!\n");
}
else
{
printf("Komputer client ini sudah ada yang menggunakan!\n");
printf("Tekan sembarang tombol untuk melanjutkan!\n");
}
break;
}
default :
{
printf("Pilihan tidak tersedia!");
break;
}
}
break;
}
case 2:
{
printf("Komputer Client yang sedang dipakai adalah : ");
if (strcmp(userClient1, "") != 0) printf("[1] ");
if (strcmp(userClient2, "") != 0) printf("[2] ");
if (strcmp(userClient3, "") != 0) printf("[3] ");
if (strcmp(userClient4, "") != 0) printf("[4] ");
printf("\nPilih client yang ingin keluar : ");
scanf("%d", &pilClient);
switch (pilClient)
{
case 1 :
{
if (strcmp(userClient1, "") != 0)
{
printf("User\t\t: %s\n", userClient1);
stop_time1 = time( NULL ) ;
dtkPakai1 = difftime( stop_time1 , start_time1 );
mntPakai1 = (dtkPakai1 % 3600)/60;
per15Mnt1 = mntPakai1/15;
jamPakai1 = dtkPakai1 / 3600;
bayar1 = (jamPakai1*4000) + (per15Mnt1*1000);
if (bayar1 == 0) bayar1 = 500;
printf("Pemakaian\t: %d jam %d menit\n", jamPakai1, mntPakai1);
printf("Total Bayar\t: Rp. %d,-\n", bayar1);
strcpy(userClient1, "");
printf("Tekan sembarang tombol untuk melanjutkan!\n");
}
else
{
printf("Komputer client tidak ada yang menggunakan!\n");
printf("Tekan sembarang tombol untuk melanjutkan!\n");
}
break;
}
case 2 :
{
if (strcmp(userClient2, "") != 0)
{
printf("User\t\t: %s\n", userClient2);
stop_time2 = time( NULL ) ;
dtkPakai2 = difftime( stop_time2 , start_time2 ) ;
mntPakai2 = (dtkPakai2 % 3600)/60;
per15Mnt2 = mntPakai2/15;
jamPakai2 = dtkPakai2 / 3600;
bayar2 = (jamPakai2*4000) + (per15Mnt2*1000);
if (bayar2 == 0) bayar2 = 500;
printf("Pemakaian\t: %d jam %d menit\n", jamPakai2, mntPakai2);
printf("Total Bayar\t: Rp. %d,-\n", bayar2);
strcpy(userClient2, "");
printf("Tekan sembarang tombol untuk melanjutkan!\n");
}
else
{
printf("Komputer client tidak ada yang menggunakan!\n");
printf("Tekan sembarang tombol untuk melanjutkan!\n");
}
break;
}
case 3 :
{
if (strcmp(userClient3, "") != 0)
{
printf("User\t\t: %s\n", userClient3);
stop_time3 = time( NULL ) ;
dtkPakai3 = difftime( stop_time3 , start_time3 ) ;
mntPakai3 = (dtkPakai3 % 3600)/60;
per15Mnt3 = mntPakai3/15;
jamPakai3 = dtkPakai3 / 3600;
bayar3 = (jamPakai3*4000) + (per15Mnt3*1000);
if (bayar3 == 0) bayar3 = 500;
printf("Pemakaian\t: %d jam %d menit\n", jamPakai3, mntPakai3);
printf("Total Bayar\t: Rp. %d,-\n", bayar3);
strcpy(userClient3, "");
printf("Tekan sembarang tombol untuk melanjutkan!\n");
}
else
{
printf("Komputer client tidak ada yang menggunakan!\n");
printf("Tekan sembarang tombol untuk melanjutkan!\n");
}
break;
}
case 4 :
{
if (strcmp(userClient4, "") != 0)
{
printf("User\t\t: %s\n", userClient4);
stop_time4 = time( NULL ) ;
dtkPakai4 = difftime( stop_time4 , start_time4 ) ;
mntPakai4 = (dtkPakai4 % 3600)/60;
per15Mnt4 = mntPakai4/15;
jamPakai4 = dtkPakai4 / 3600;
bayar4 = (jamPakai4*4000) + (per15Mnt4*1000);
if (bayar4 == 0) bayar4 = 500;
printf("Pemakaian\t: %d jam %d menit\n", jamPakai4, mntPakai4);
printf("Total Bayar\t: Rp. %d,-\n", bayar4);
strcpy(userClient4, "");
printf("Tekan sembarang tombol untuk melanjutkan!\n");
}
else
{
printf("Komputer client tidak ada yang menggunakan!\n");
printf("Tekan sembarang tombol untuk melanjutkan!\n");
}
break;
}
default :
{
printf("Pilihan tidak tersedia!");
break;
}
}
break;
}
case 3 :
{
printf("No. Client\tUser\n");
printf("----------------------------\n");
printf("Client [1]\t%s\n", userClient1);
printf("Client [2]\t%s\n", userClient2);
printf("Client [3]\t%s\n", userClient3);
printf("Client [4]\t%s\n\n", userClient4);
printf("Tekan sembarang tombol untuk melanjutkan!\n");
break;
}
default :
{
printf("Pilihan tidak tersedia, ulangi lagi!\n");
printf("Tekan sembarang tombol untuk mengulangi!\n");
break;
}
}
getch();
clrscr();
}
while (loopMenu == true);

return 0;
}




BAB III
Mempelajari tak semudah mempelajari ilmu pengetahuan umum. Tapi perlu pembuktian dari berbagai fungsi dan tipe data yang di pergunakan. Menempatkan sebuah statement, dan memilih variable yang tepat merupakan modal utama, sebab program merupakan ilmu pasti dan bukan ilmu pertaruhan batin.
Logika program
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <time.h>
Logika : fungsi include adalah fungsi yang berhubungan langsung dengan fungsi pustaka, terdapat berbagai macam fungsi include,yang membedakan adalah setiap perintah atau kata yang berada di dalam kurung. Misalnya stdio.h berhubungan dengan perintah printf, string.h berhubungan dengan perintah srtcpy,jika conio.h berhubungan dengan perintah getch, sedangkan time.h berhubungan dengan perintah time untuk menjalankan waktu.
enum boolean {false, true};   /*membuat tipe data boolean*/ perintah untuk membuat tipe data menjadi tipe data Boolean yang bernilai 1 jika benar dan bernilai 0 jika salah.
int main() fungsi utama bertipe data integer.
{ ini menandakan awal dari suatu statement
enum boolean loopPass = true, loopMenu = true;  menu ini adalah menu yang berbungan dengan menu Boolean yang pertama, looping password dan looping menu akan dijalankan jika bernilai benar.
int pilMenu = 0, pilClient; jika pilihan menu bernilai benar maka akan ke perintah selanjutnya yaitu pilihan client
int mntPakai1, jamPakai1, bayar1, per15Mnt1; 
int mntPakai2, jamPakai2, bayar2, per15Mnt2;
int mntPakai3, jamPakai3, bayar3, per15Mnt3;
int mntPakai4, jamPakai4, bayar4, per15Mnt4;
logika: mendeklarasikan tipe data menit pakai,jam pakai,bayar,nilai akan di hitung jika dalam watu per 15 menit
char userAdmin[5], passAdmin[5], inUserAdmin[5], inPassAdmin[5];
char userClient1[20], userClient2[20], userClient3[20], userClient4[20];
logika: mendeklarasikan tipe data char untuk user admindan user  client
strcpy(userAdmin, "2IA05");          /*memasukkan nilai ke variabel userAdmin*/ mengubah tipe data char menjadi string dan memasukan nilai 2IA05 ke dalam variable user admin.
strcpy(passAdmin, "2IA05"); ");          /*memasukkan nilai ke variabel passAdmin*/ mengubah tipe data char menjadi string dan memasukan nilai 2IA05 ke dalam variable pass admin.
Keterangan: nilai yang dimasukkan harus sesuai dengan nilai awal yang telah diinput kedalam variable awal.
strcpy(userClient1, "");
strcpy(userClient2, "");
strcpy(userClient3, "");
strcpy(userClient4, "");
keterangan: memasukkan nilai kedalam variable userClient, jadi jika kita ingin login  maka user atau nama komputer yang kita pakai akan kita input di dalam perintah ini.

do  /*tampilan layar awal*/ mencetak atau menampilkan tampilan awal di layar,yang mana tampilan awalnya akan dijelaskan pada perintah selanjutnya.
{ menandai awalan statement
printf("***********************\n"); mencetak suatu string yang berada di dalam tanda (“) yaitu  garis pembatas dengan symbol bintang
printf("*                     *\n"); mencetak suatu string yang berada di dalam tanda (")
printf("* 2IA05 Internet Cafe *\n"); mencetak suatu string yang berada di dalam tanda (“) yaitu 2IA05 Internet cafe
printf("*                     *\n");
printf("***********************\n\n");
printf("ADMINISTRATOR LOGIN\n");
printf("USERNAME\t: ");
logika: perintah printf yaitu untuk mencetak nilai atau suatu string yang berdaa dalam tanda (“)
scanf("%s", &inUserAdmin);  perintah ini berhubungan ke perintah UserAdmin, perintah ini untuk penjalankan  perintah selanjutnya.
printf("PASSWORD\t: "); perintah ini untuk mencetak suatu string yang berada di dalam tanda(“) yang mana isi inputannya harus sesusai dengan inputan di dalam username yang nilainya sudah diiinput dari awal. Yaitu 2IA05
scanf("%s", &inPassAdmin); menginput nilai , atau memasukkan nilai dengan  yang sudah ada dalam PassAdmin
if((strcmp(userAdmin,inUserAdmin) == 0) && (strcmp(passAdmin,inPassAdmin) == 0))   /*membandingkan nilai dua buah string*/
{
loopPass = false;
printf("\nAnda telah berhasil login\n");
printf("Tekan sembarang tombol untuk melanjutkan. :)\n");
getch();
clrscr();
}
Else
{
loopPass = true;
printf("\nUsername dan/atau Password anda salah!\n");
printf("Tekan sembarang tombol untuk mengulangi!\n");
getch();
clrscr();
}
}
while (loopPass == true);
do   /*tampilan layar utama*/
{
time_t start_time1 ; time_t start_time2 ; time_t start_time3 ;time_t start_time4 ;
time_t stop_time1 ; time_t stop_time2 ; time_t stop_time3 ; time_t stop_time4 ;
int dtkPakai1 ; int dtkPakai2 ; int dtkPakai3 ; int dtkPakai4 ;
pilClient = 0;
printf("***** 2IA05 Internet Cafe *****\n\n");
printf("MENU :\n");
printf("[1] User Masuk\n");
printf("[2] User Keluar\n");
printf("[3] Tampilkan Daftar Klien Yang Aktif\n\n");
printf("Pilihan Menu : ");
scanf("%d/n", &pilMenu);
switch (pilMenu)
{
case 1 :
{
printf("Komputer Client yang tersedia adalah : ");
if (strcmp(userClient1, "") == 0) printf("[1] ");
if (strcmp(userClient2, "") == 0) printf("[2] ");
if (strcmp(userClient3, "") == 0) printf("[3] ");
if (strcmp(userClient4, "") == 0) printf("[4] ");
printf("\nPilih client yang akan digunakan : ");
scanf("%d", &pilClient);
switch (pilClient)
{
case 1 :
{
if (strcmp(userClient1, "") == 0)
{
printf("User\t\t: ");
scanf("%s", &userClient1);
start_time1 = time( NULL ) ;
printf("Tekan sembarang tombol untuk melanjutkan!\n");
}
else
{
printf("Komputer client ini sudah ada yang menggunakan!\n");
printf("Tekan sembarang tombol untuk melanjutkan!\n");
}
break;
}
case 2:
{
if (strcmp(userClient2, "") == 0)
{
printf("User\t\t: ");
scanf("%s", &userClient2);
start_time2 = time( NULL ) ;
printf("Tekan sembarang tombol untuk melanjutkan!\n");
}
else
{
printf("Komputer client ini sudah ada yang menggunakan!\n");
printf("Tekan sembarang tombol untuk melanjutkan!\n");
}
break;
}
case 3 :
{
if (strcmp(userClient3, "") == 0)
{
printf("User\t\t: ");
scanf("%s", &userClient3);
start_time3 = time( NULL ) ;
printf("Tekan sembarang tombol untuk melanjutkan!\n");
}
else
{
printf("Komputer client ini sudah ada yang menggunakan!\n");
printf("Tekan sembarang tombol untuk melanjutkan!\n");
}
break;
}
case 4 :
{
if (strcmp(userClient4, "") == 0)
{
printf("User\t\t: ");
scanf("%s", &userClient4);
start_time4 = time( NULL ) ;
printf("Tekan sembarang tombol untuk melanjutkan!\n");
}
else
{
printf("Komputer client ini sudah ada yang menggunakan!\n");
printf("Tekan sembarang tombol untuk melanjutkan!\n");
}
break;
}
default :
{
printf("Pilihan tidak tersedia!");
break;
}
}
break;
}
case 2:
{
printf("Komputer Client yang sedang dipakai adalah : ");
if (strcmp(userClient1, "") != 0) printf("[1] ");
if (strcmp(userClient2, "") != 0) printf("[2] ");
if (strcmp(userClient3, "") != 0) printf("[3] ");
if (strcmp(userClient4, "") != 0) printf("[4] ");
printf("\nPilih client yang ingin keluar : ");
scanf("%d", &pilClient);
switch (pilClient)
{
case 1 :
{
if (strcmp(userClient1, "") != 0)
{
printf("User\t\t: %s\n", userClient1);
stop_time1 = time( NULL ) ;
dtkPakai1 = difftime( stop_time1 , start_time1 );
mntPakai1 = (dtkPakai1 % 3600)/60;
per15Mnt1 = mntPakai1/15;
jamPakai1 = dtkPakai1 / 3600;
bayar1 = (jamPakai1*4000) + (per15Mnt1*1000);
if (bayar1 == 0) bayar1 = 500;
printf("Pemakaian\t: %d jam %d menit\n", jamPakai1, mntPakai1);
printf("Total Bayar\t: Rp. %d,-\n", bayar1);
strcpy(userClient1, "");
printf("Tekan sembarang tombol untuk melanjutkan!\n");
}
else
{
printf("Komputer client tidak ada yang menggunakan!\n");
printf("Tekan sembarang tombol untuk melanjutkan!\n");
}
break;
}
case 2 :
{
if (strcmp(userClient2, "") != 0)
{
printf("User\t\t: %s\n", userClient2);
stop_time2 = time( NULL ) ;
dtkPakai2 = difftime( stop_time2 , start_time2 ) ;
mntPakai2 = (dtkPakai2 % 3600)/60;
per15Mnt2 = mntPakai2/15;
jamPakai2 = dtkPakai2 / 3600;
bayar2 = (jamPakai2*4000) + (per15Mnt2*1000);
if (bayar2 == 0) bayar2 = 500;
printf("Pemakaian\t: %d jam %d menit\n", jamPakai2, mntPakai2);
printf("Total Bayar\t: Rp. %d,-\n", bayar2);
strcpy(userClient2, "");
printf("Tekan sembarang tombol untuk melanjutkan!\n");
}
else
{
printf("Komputer client tidak ada yang menggunakan!\n");
printf("Tekan sembarang tombol untuk melanjutkan!\n");
}
break;
}
case 3 :
{
if (strcmp(userClient3, "") != 0)
{
printf("User\t\t: %s\n", userClient3);
stop_time3 = time( NULL ) ;
dtkPakai3 = difftime( stop_time3 , start_time3 ) ;
mntPakai3 = (dtkPakai3 % 3600)/60;
per15Mnt3 = mntPakai3/15;
jamPakai3 = dtkPakai3 / 3600;
bayar3 = (jamPakai3*4000) + (per15Mnt3*1000);
if (bayar3 == 0) bayar3 = 500;
printf("Pemakaian\t: %d jam %d menit\n", jamPakai3, mntPakai3);
printf("Total Bayar\t: Rp. %d,-\n", bayar3);
strcpy(userClient3, "");
printf("Tekan sembarang tombol untuk melanjutkan!\n");
}
else
{
printf("Komputer client tidak ada yang menggunakan!\n");
printf("Tekan sembarang tombol untuk melanjutkan!\n");
}
break;
}
case 4 :
{
if (strcmp(userClient4, "") != 0)
{
printf("User\t\t: %s\n", userClient4);
stop_time4 = time( NULL ) ;
dtkPakai4 = difftime( stop_time4 , start_time4 ) ;
mntPakai4 = (dtkPakai4 % 3600)/60;
per15Mnt4 = mntPakai4/15;
jamPakai4 = dtkPakai4 / 3600;
bayar4 = (jamPakai4*4000) + (per15Mnt4*1000);
if (bayar4 == 0) bayar4 = 500;
printf("Pemakaian\t: %d jam %d menit\n", jamPakai4, mntPakai4);
printf("Total Bayar\t: Rp. %d,-\n", bayar4);
strcpy(userClient4, "");
printf("Tekan sembarang tombol untuk melanjutkan!\n");
}
else
{
printf("Komputer client tidak ada yang menggunakan!\n");
printf("Tekan sembarang tombol untuk melanjutkan!\n");
}
break;
}
default :
{
printf("Pilihan tidak tersedia!");
break;
}
}
break;
}
case 3 :
{
printf("No. Client\tUser\n");
printf("----------------------------\n");
printf("Client [1]\t%s\n", userClient1);
printf("Client [2]\t%s\n", userClient2);
printf("Client [3]\t%s\n", userClient3);
printf("Client [4]\t%s\n\n", userClient4);
printf("Tekan sembarang tombol untuk melanjutkan!\n");
break;
}
default :
{
printf("Pilihan tidak tersedia, ulangi lagi!\n");
printf("Tekan sembarang tombol untuk mengulangi!\n");
break;
}
}
getch();
clrscr();
}
while (loopMenu == true);

return 0;
}