Senin, 13 Juni 2011

Program Operasi Jaringan Client - Server (2)

2. Pada Server
- Server.pro :
QT += core gui
TARGET = tugasNetworking-server
TEMPLATE = app
SOURCES += main.cpp\
mainwindow.cpp
HEADERS += mainwindow.h
FORMS += mainwindow.ui
QT += network
- mainwindow.h :
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include
#include
#include
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
QTcpServer* server;
QTcpSocket* client;
private slots:
void on_server_newConnection();
void on_client_readyRead();
};
#endif // MAINWINDOW_H

- mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include
#include
#include
#include
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
// inisialisasi server
server = new QTcpServer(this);
server->listen(QHostAddress::Any, 7777);
connect(server, SIGNAL(newConnection()), this, SLOT(on_server_newConnection()));
}
MainWindow::~MainWindow()
{
delete ui;
delete server;
}
void MainWindow::on_server_newConnection(){
client = server->nextPendingConnection();
connect(client, SIGNAL(readyRead()), this, SLOT(on_client_readyRead()));
}
void MainWindow::on_client_readyRead()
{
QString request = client->readAll();
ui->textEdit->append("Dari client : " + request);
if (request.indexOf("get ") >= 0)
{
// get E:\kontak.txt
QString filename = request.mid(4);
QFile file;
file.setFileName(filename);
file.open(QIODevice::ReadOnly);
QTextStream pembaca;
pembaca.setDevice(&file);
QString baris = pembaca.readLine();
while (!baris.isNull()){
client->write(baris.toLatin1());
baris = pembaca.readLine();
}
file.close();
}
else if (request.indexOf("set bgcolor ") >= 0) {// set bgcolor red
QString color = request.mid(12);
this->setStyleSheet("background-color: " + color);
}
else{
client->write("Hallo client,can I help you? :)");
}
}

TAMPILAN AKHIR DARI PROGRAM INI DITUNJUKKAN PADA GAMBAR DI BAWAH INI :
1. Tampilan saat set background colour
dengan perintah "set bgcolor(spasi)warna"

2. Tampilan saat mengambil informasi dari E:\kontak.txt
dengan perintah "get(spasi)E:\kontak.txt"

3. Tampilan saat mengirimkan hallo server
dengan perintah "hallo server"



Referensi :
Dosen Informatika dan Pemrograman

Penulis :
Frisma Kusuma Dwi Astiti
Mekatronika 2.2

Program Operasi Jaringan Client - Server (1)

Aplikasi ini merupakan aplikasi operasi jaringan Client dan Server dengan menggunakan Proxy dan Port..

Berikut ini merupakan algoritma dan kode dari program yang dibuat menggunakan Qt SDK :
1. Pada Client
- Client.pro :
    QT += core gui
  TARGET = tugasNetworking
  TEMPLATE = app
  SOURCES += main.cpp\
mainwindow.cpp
  HEADERS  += mainwindow.h
  FORMS    += mainwindow.ui
  QT += network

    - mainwindow.h :
    #ifndef MAINWINDOW_H
  #define MAINWINDOW_H
  #include <QMainWindow>
  #include <QtNetwork>
  #include <QDebug>
  namespace Ui {
      class MainWindow;
  }
  class MainWindow : public QMainWindow
  {
      Q_OBJECT
  public:
      explicit MainWindow(QWidget *parent = 0);
      ~MainWindow();
  private slots:
      void on_pushButton_2_clicked();
      void on_client_readyRead();
      void on_client_connected();
  private:
      Ui::MainWindow *ui;
      QTcpSocket *client;
  private slots:
      void on_pushButton_clicked();
  };
  #endif // MAINWINDOW_H

- mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
   //menghapus memori yang sudah terpakai
    delete ui;
}

void MainWindow::on_pushButton_clicked()
{
    //membuat koneksi ke server
    client = new QTcpSocket(this);
    QString host = ui->lineEdit_2->text();
    int port = 7777;
    client->connectToHost(host,port);

    //menghubungkan sinyal readyRead dari client ke slot on_client_readyRead dari kelas ini
    connect(client, SIGNAL(readyRead()), this, SLOT(on_client_readyRead()));
    connect(client, SIGNAL(connected()), this, SLOT(on_client_connected()));
}

void MainWindow::on_pushButton_2_clicked()
{
    //mengirim request ke server
    client->write(ui->lineEdit->text().toLatin1());
}

//fungsi untuk membaca semua balasan dari server
void MainWindow::on_client_readyRead(){
    //membaca balasan dari server
    QString balasan = client->readAll();
    ui->textEdit->append("Dari server : " + balasan);
}

//fungsi untuk mengetahui status koneksi ke server
void MainWindow::on_client_connected(){
    //menampilkan status koneksi ke server
    ui->textEdit->append("Telah terhubung ke server");
}
 
berlanjut ke Program Operasi Jaringan Client - Server (2)

Sabtu, 16 April 2011

MENGGUNAKAN Qt^^ (2)

MEMBUAT PROGRAM SEDERHANA DENGAN Qt (2)
Program Bahasa SMS -> menghilangkan  semua huruf vokal


//line ke-20                    :        mengambil nilai di lineEdit yang di inputkan oleh user.
//line ke-22                    :        mendeklarasikan variabel e dengan tipe data string
//line ke 25-29             :        mengganti semua huruf vokal dengan “”,yang maksudnya menghilangkan semua huruf vokal
//line ke-46                    :        menampilkan hasil penjumlahan (e) di label



Sederhana bukan??

Cukup sekian dan tenkyu..^^

.FriZm.

MENGGUNAKAN Qt^^

MEMBUAT PROGRAM SEDERHANA DENGAN Qt (1)
Program aritmatik penjumlahan


    Dalam program ini hanya dibatasi pada penjumlahan angka 2 digit dengan operator  '+'.
//line ke-20           :   mengambil nilai di lineEdit yang di inputkan oleh user.
//line ke-23           :   mengecek keberadaan tanda + di data yang ada pada lineEdit
//line ke-24           :   mengecek hasil dari indexOf (-1 ato tidak)
//line ke-26           :   fungsi percabangan jika i tidak sama dengan -1
//line ke 29-30      :   mengambil angka yang akan di jumlahkan dengan operasi mid
//line ke 32-33      :   mendeklarasikan nilai m dan n dalam float
//line ke 36-37      :   mengganti tipe data a dan b dari string ke float dan disimpan di m dan n untuk kemudian dijumlahkan
//line ke-40           :   operasi penjumlahan dan disimpan dalam variabel o
//line ke-43           :   mengubah kembali tipe data o dari float menjadi string
//line ke-46           :   menampilkan hasil penjumlahan (p) di label


Cukup sekian dan tenkyu..^^

.FriZm.

Kamis, 24 Maret 2011

INFORMATIKA DAN PEMROGRAMAN

Artikel kali ini akan membahas lebih lanjut mengenai konsep pemrograman berorientasi objek dalam pemrograman visual. Sebelum membahas lebih dalam mengenai saling keterkaitan diantara keduanya, marilah kita ulas terlebih dahulu apa itu pemrograman visual, pemrograman berorientasi objek.

PEMROGRAMAN BERORIENTASI OBJEK
Definisi Pemrograman Berorientasi Objek

PEMROGRAMAN (PROGRAMMING)
Kegiatan menulis kode-kode program (coding) dan mengkompilasinya agar dapat dimengerti oleh
komputer dengan menggunakan suatu bahasa pemrograman (mis : Java, C ++, Pascal dll)

BERORIENTASI
Orientasi (e: Orientation) dalam kamus artinya “mengarahkan” atau “pendekatan”

OBJEK
sesuatu yang mempunyai identitas yang uniq dan nilai atribut tertentu, atau sesuatu yang bisa kita cirikan padanya suatu sifat tertentu. (ciri khas)

Pemrograman berorientasi objek (object-oriented programming disingkat OOP)
merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Bandingkan dengan logika pemrograman terstruktur , Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya. ilitas yang lebih, kemudahan mengubah program, dan digunakan luas dalam teknik piranti lunak

Model data berorientasi objek dikatakan dapat memberi fleksib skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan pendekatan OOP lebih mudah dikembangkan dan dirawat.

OOP (Object Oriented Programming) atau Pemprograman berorientasi objek adalah suatu cara baru dalam berfikir serta berlogika dalam menghadapi masalah-masalah yang akan dicoba diatasi dengan bantuan komputer.
OOP, tidak seperti pendahulunya (Pemprograman Terstruktur), mencoba melihat permasalahan lewat pengamatan dunia nyata dimana setiap objek adalah entitas tunggal yang memiliki kombinasi struktur data dan fungsi tertentu. Ini kontras dengan pemprograman terstruktur dimana struktur data dan fungsi didefinisikan secara terpisah dan tidak berhubungan secara erat.

Secara garis besar, suatu bahasa pemrograman dapat dikatakan sebagai bahasa pemrograman berorientasi objek (atau Object Oriented Programming / OOP) apabila ia mendukung (polymorphism), dan pewarisan (inheritance). Selain konsep-konsep ini, ada beberapa konsep fundamental lainnya, seperti kelas, objek, dan message.

Apa itu Kelas (Class)?

Kelas mendefinisikan karakteristik-karakteristik abstrak dari sesuatu (objek), termasuk karakteristik dan perilaku (behavior) dari “sesuatu” itu sendiri. Kelas dapat diilustrasikan sebagai sebuah cetak biru (blueprint), prototipe, atau pabrik (factory) yang berfungsi untuk menghasilkan objek-objek.

Kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu.
Sebagai contoh ‘class of dog’ adalah suatu unit yang terdiri atas definisi-definisi data dan fungsi-fungsi yang menunjuk pada berbagai macam perilaku/turunan dari anjing.

Sebuah class adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi object. Sebuah class secara tipikal sebaiknya dapat dikenali oleh seorang non-programmer sekalipun terkait dengan domain permasalahan yang ada, dan kode yang terdapat dalam sebuah class sebaiknya (relatif) bersifat mandiri dan independen (sebagaimana kode tersebut digunakan jika tidak menggunakan OOP).

Dengan modularitas, struktur dari sebuah program akan terkait dengan aspek-aspek dalam masalah yang akan diselesaikan melalui program tersebut.
Cara seperti ini akan menyederhanakan pemetaan dari masalah ke sebuah program ataupun sebaliknya.
Class dapat diartikan seperti sebuah cetakan atau template.
Apabila kita ingin membuat konsep abstraksi (abstraction), enkapsulasi (encapsulation), polimorfisme sebuah kue bolu, maka kita diharuskan mempunyai cetakan kue bolu. Dari cetakan kue bolu yang sudah ada, kita dapat mencetak berbagai macam jenis kue bolu. Berbagai macam jenis kue bolu ini yang dapat dikatakan sebagai objek, yaitu hasil dari class.

Apa yang disebut dengan Objek?

Objek dapat diartikan sebagai bagian dari sebuah aplikasi program (software) dimana didalamnya dihubungkannya variabel-variabel dan juga method-methodnya yang keduanya saling keterkaitan satu dengan lainnya. Objek membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah program komputer; objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek.

Dalam terminologi OOP, objek adalah instans (atau manifestasi) dari sebuah kelas. Dengan demikian, dalam konteks desain, kita berbicara mengenai kelas; saat run time, yang kita bicarakan adalah objek. Baik di dunia nyata maupun di dalam pemrograman, sebuah objek memiliki dua karakteristik utama, yaitu state (status) dan behavior (perilaku).
Sebagai contoh, kucing memiliki state (nama, warna, dan sebagainya) dan behavior (mengeong, melompat, dan sebagainya).

Pada dasarnya semua benda yang ada di dunia nyata dapat dianggap sebagai sebuah objek. Jika perhatikan lebih lanjut, pada dasarnya ada dua karakteristik yang utama pada sebuah objek , yaitu :

1. Setiap objek memiliki atribut sebagai status yang kemudian akan disebut sebagai state.
2. Setiap objek memiliki tingkah laku yang kemudian akan disebut sebagai behaviour.
3. Contoh sederhananya adalah : objek sepeda
4. Sepeda memiliki atribut ( state ) : pedal, roda, jeruji, dan warna.
5. Sepeda memiliki tingkah laku ( behaviour ) : kecepatannya menaik, kecepatannya menurun, dan perpindahan gigi sepeda.

Dalam pengembangan perangkat lunak berorientasi objek, objek dalam perangkat lunak akan menyimpan state-nya dalam variabel dan menyimpan informasi tingkah laku ( behaviour ) dalam method-method atau fungsi-fungsi/ prosedur.


Apa pula Abstraksi itu?

Abtraksi ialah kemampuan sebuah program untuk melewati aspek informasi yang diproses olehnya, yaitu kemampuan untuk memfokus pada inti. Setiap objek dalam sistem melayani sebagai model dari “pelaku” abstrak yang dapat melakukan kerja, laporan dan perubahan keadaannya, dan berkomunikasi dengan objek lainnya dalam sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan.
Proses, fungsi atau metode dapat juga dibuat abstrak, dan beberapa teknik digunakan untuk mengembangkan sebuah pengabstrakan.

Bagaimana dengan Enkapsulasi?

Memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak; hanya metode dalam objek tersebut yang diberi ijin untuk mengakses keadaannya. Setiap objek mengakses interface yang menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnya tidak akan mengetahui dan tergantung kepada representasi dalam objek tersebut.

Enkapsulasi biasa disebut dengan istilah membungkus atau mengemas sebuah informasi yang akan menghasilkan sebuah objek. Tujuannya agar informasi yang dihasilkan tidak menyebar keluar dari aturan yang ada.
Dalam sebuah objek yang mengandung variabel-variabel dan method-method, dapat ditentukan hak akses pada sebuah variabel atau method dari objek. Pembungkusan variabel dan method dalam sebuah objek dalam bagian yang terlindungi inilah yang disebut dengan enkapsulasi.

Jadi, enkapsulasi dapat diartikan sebagai bungkusan ( wrapper ) pelindung program dan data yang sedang diolah. Pembungkus ini mendefinisikan perilaku dan melindungi program dan data yang sedang diolah agar tidak diakses sembarangan oleh program lain.

Dan adapun manfaat dari proses enkapsulasi adalah :
  • Modularitas, kode sumber dari sebuah objek dapat dikelola secara independen dari kode sumber objek yang lain.
  • Information Hiding, karena kita dapat menentukan hak akses sebuah variabel/method dari objek, dengan demikian kita bisa menyembunyikan informasi yang tidak perlu diketahui objek lain.

Pernah dengar Polimorfisme?

Metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesa tersebut dikirim. Contohnya, bila sebuah burung menerima pesan “gerak cepat”, dia akan menggerakan sayapnya dan terbang. Bila seekor singa menerima pesan yang sama, dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah pesan yang sama, namun yang sesuai dengan kemampuan hewan tersebut. Ini disebut polimorfisme karena sebuah variabel tungal dalam program dapat memegang berbagai jenis objek yang berbeda selagi program berjalan, dan teks program yang sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa fungsional yang mencapai polimorfisme melalui penggunaan fungsi kelas-pertama.


Dan yang terakhir, Inheritas.

Mengatur polimorfisme dan enkapsulasi dengan mengijinkan objek didefinisikan dan diciptakan dengan jenis khusus dari objek yang sudah ada - objek-objek ini dapat membagi (dan memperluas) perilaku mereka tanpa haru mengimplementasi ulang perilaku tersebut (bahasa berbasis-objek tidak selalu memiliki inheritas.)

PEMROGRAMAN VISUAL

Pemrograman visual adalah metode pembuatan program dimana programmer membuat koneksi antara objek-objek dengan cara menggambar, menunjuk,, dan mengklik pada diagram dan ikon dan dengan berinteraksi dengan diagram alur. Jadi, programmer bisa menciptakan program dengan cara mengklik pada ikon yang mewakili rutin-rutin pemrograman secara umum.

Contoh pemrograman visual adalah Visual BASIC, bahasa pemrograman berorientasi objek yang berbasis Windows dari Microsoft yang mengizinkan pengguna mengembangkan aplikasi Windows dan Office dengan (1) membuat tombol perintah, kotak teks, jendela dan toolbar, (2) selanjutnya akan di-link ke program BASIC yang kecil yang melakukan tindakan tertentu. Visual BASIC merupakan even-driven, artinya program menunggu pengguna melakukan sesuatu (“event”), seperti klik pada ikon, dan kemudian program akan merespons.

Misalnya , pada permulaan pengguna dapat menggunakan piranti geser dan turunkan (drag-and-drop) untuk mengembangkan antar muka pengguna grafis yang dibuaat secara otomatis oleh program.
Karena penggunaanya mudah, Visual BASIC memungkinkan programmer pemula untuk mencipatakan aplikasi-aplikasi berbasis windows yang menarik. Sejak diluncurkan pada 1990, pendekatan Visual Basic menjadi norma untuk bahasa pemrograman. Sekarang ada banyak lingkungan visual untuk banyak bahasa pemrograman termasuk C, C++, Pascal, dan Java.
Visual BASIC terkadang disebut rapid application development (RAD) karena memungkinkan programmer membuat aplikasi prototype dengan cepat.

KONSEP OOP DALAM PEMROGRAMAN VISUAL

OOP dan Pemrogaman visual?
Coba anda pikirkan bagaiman bahasa mesin atau bahasa asembli dapat dipahami oleh pionir komputer. Mereka yang terbiasa dengan bahasa progam BASIC atau C akan mengalami kesulitan dalam mengikuti program yang dikembangkan pada Era komputer awal. Bahkan beberapa generasi ketiga yang lebih sederhana pun tetap ada tantanganya karena bahasa tersebut berorientasi pada prosedur, yang memaksa programmer untuk mengikuti alur yang telah ditentukan sebelumnya.
Untunglah dua pengembangan selanjutnya mempermudah segala sesuatunya yaitu pemrogaman berorientasi objek dan pemrogaman visual. Menggunakan kembali blok kode program setelah anda menuliskan satu blok kode program, kode tersebut dapat digunakan kembali pada program-program lain.  Jadi, dengan OOP-tidak seperti pemrograman tradisional-anda tidak perlu memulai dari awal. Dibandingkan dengan pemrogaman tradisional, mempelajar pemrogaman berorintasi objek memakan waktu yang lebih lama karena seperti berpikir dengan cara yang baru. Sekalipun demikian, OOP memilliki keunggulan yaitu objek bisa digunakan berulang-ulang pada aplikasi yang berbeda dan oleh programmer yang berbeda, karena itu waktu pengembanganya pun lebih cepat dan biaya pun bisa berkurang.

Pada intinya, pemrograman visual membawa OOP ke level berikutnya. Tujuan pemrograman visual adalah agar pemrograman menjadi lebih mudah bagi para programmer dan lebih mudah diakses oleh kalangan nonprogrammer dengan meminjam bahasa OOP, dan mempraktikanya secara grafis atau visual. Pemrograman visual memungkinkan pengguana untuk lebih fokus pada pemecahan masalah ketimbang cara menangani bahasa pemrograman. Di sini
Anda tidak perlu mempelajari sintaks atau menulis kode. Pemrograman visual adalah metode pemrograman dimana programmer untuk membuah hubungan antara objek dengan menggambar, menunjuk dan mengklik icon dan diagram dan berinteraksi dengan alur.

Disadur dari:
http://docs.google.com/konsepoop
http://id.wikipedia.org/
http://blog.uad.ac.id/alitarmuji