Form dan Event Handler di Java C# dan C++

Form dan Event Handler di Java C# dan C++

Form adalah tampilan user interface yang disediakan oleh bahasa pmrograman agar mudah untuk menjalankan sebuah program. Event handler adalah sebuah method yang dapat mendeteksi suatu kejadian yang terjadi pada sebuah form, contoh ketika sebuah button di Click maka program akan melakukan sebuah eksekusi  perintah yang ada pada event handlernya.

Pada contoh code program berikut adalah Event Handler yang ada pada sebuah button, jika button tersebut di Click maka akan memunculkan Messagebox.

C sharp


using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;

namespace OOP_praktikumForm
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}


//event Handler
void BtnLihatClick(object sender, EventArgs e)
{
MessageBox.Show("Nama Anda "+textBox1.Text+"\t\nAlamat Anda = "+textBox2.Text);
}
}
}



Java


//Event Handler
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
JOptionPane.showMessageDialog(mainPanel, "Nama anda "+this.jTextField1.getText()+", \t\nAlamat Anda "+this.jTextField2.getText(), "Form Java dan Event Handler", 1);
}

// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
private javax.swing.JPanel mainPanel;
private javax.swing.JProgressBar progressBar;
private javax.swing.JLabel statusAnimationLabel;
private javax.swing.JLabel statusMessageLabel;
private javax.swing.JPanel statusPanel;
// End of variables declaration

private final Timer messageTimer;
private final Timer busyIconTimer;
private final Icon idleIcon;
private final Icon[] busyIcons = new Icon[15];
private int busyIconIndex = 0;

private JDialog aboutBox;



C++

#pragma once

namespace formcpp_test {

using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;

/// <summary>
/// Summary for Form1
/// </summary>
public ref class Form1 : public System::Windows::Forms::Form
{
public:
Form1(void)
{
InitializeComponent();
//
//TODO: Add the constructor code here
//
}

protected:
/// <summary>
/// Clean up any resources being used.
/// </summary>
~Form1()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::Label^ label1;
private: System::Windows::Forms::TextBox^ textBox1;
private: System::Windows::Forms::TextBox^ textBox2;
private: System::Windows::Forms::Label^ label2;
private: System::Windows::Forms::Button^ button1;
protected:

private:
/// <summary>
/// Required designer variable.
/// </summary>
System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
void InitializeComponent(void)
{
this->label1 = (gcnew System::Windows::Forms::Label());
this->textBox1 = (gcnew System::Windows::Forms::TextBox());
this->textBox2 = (gcnew System::Windows::Forms::TextBox());
this->label2 = (gcnew System::Windows::Forms::Label());
this->button1 = (gcnew System::Windows::Forms::Button());
this->SuspendLayout();
//
// label1
//
this->label1->AutoSize = true;
this->label1->Location = System::Drawing::Point(33, 45);
this->label1->Name = L"label1";
this->label1->Size = System::Drawing::Size(55, 13);
this->label1->TabIndex = 0;
this->label1->Text = L"Username";
//
// textBox1
//
this->textBox1->Location = System::Drawing::Point(36, 85);
this->textBox1->Name = L"textBox1";
this->textBox1->Size = System::Drawing::Size(222, 20);
this->textBox1->TabIndex = 1;
//
// textBox2
//
this->textBox2->Location = System::Drawing::Point(36, 151);
this->textBox2->Name = L"textBox2";
this->textBox2->Size = System::Drawing::Size(222, 20);
this->textBox2->TabIndex = 3;
//
// label2
//
this->label2->AutoSize = true;
this->label2->Location = System::Drawing::Point(33, 111);
this->label2->Name = L"label2";
this->label2->Size = System::Drawing::Size(39, 13);
this->label2->TabIndex = 2;
this->label2->Text = L"Alamat";
//
// button1
//
this->button1->Location = System::Drawing::Point(182, 212);
this->button1->Name = L"button1";
this->button1->Size = System::Drawing::Size(75, 23);
this->button1->TabIndex = 4;
this->button1->Text = L"Lihat";
this->button1->UseVisualStyleBackColor = true;
this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
//
// Form1
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(288, 262);
this->Controls->Add(this->button1);
this->Controls->Add(this->textBox2);
this->Controls->Add(this->label2);
this->Controls->Add(this->textBox1);
this->Controls->Add(this->label1);
this->FormBorderStyle = System::Windows::Forms::FormBorderStyle::FixedSingle;
this->MaximizeBox = false;
this->Name = L"Form1";
this->StartPosition = System::Windows::Forms::FormStartPosition::CenterScreen;
this->Text = L"Praktikum OOP";
this->ResumeLayout(false);
this->PerformLayout();

}
#pragma endregion
//event handler
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
MessageBox::Show ("Nama anda "+textBox1->Text+"\nAlamat Anda"+textBox2->Text);
}
};
}




Read More

Mutlithreading di Java, C# dan C++

Mutlithreading di Java, C# dan C++
Multi threading adalah sebuah cara pengeksekuisian beberapa program secara bersamaan. saling berbagi sumber daya tetapi dapat dijalankan secara independen.

Keuntungan dari Multi threading adalah :
  • Aplikasi interaktif menjadi tetap responsif meskipun sebagian dari program sedang diblok atau melakukan operasi lain yang panjang.
  • Berbagi sumber daya. Beberapa thread yang melakukan proses yang sama akan berbagi sumber daya. Keuntungannya adalah mengizinkan sebuah aplikasi untuk mempunyai beberapa thread yang berbeda dalam lokasi memori yang sama.
  • Ekonomis, Pembuatan sebuah proses memerlukan pengalokasian memori dan sumber daya. Alternatifnya adalah dengan menggunakan thread, karena thread membagi memori dan sumber daya yang dimilikinya sehingga lebih ekonomis untuk membuat thread dan context switching thread. Akan susah mengukur perbedaan waktu antara thread dan switch, tetapi secara umum pembuatan dan pengaturan proses akan memakan waktu lebih lama dibandingkan dengan thread. Pada Solaris, pembuatan proses memakan waktu 30 kali lebih lama dibandingkan pembuatan thread sedangkan proses context switch 5 kali lebih lama dibandingkan context switching thread.
  • Utilisasi arsitektur multiprosesor. Keuntungan dari multithreading dapat sangat meningkat pada arsitektur multiprosesor, dimana setiap thread dapat berjalan secara paralel di atas procesor yang berbeda. Pada arsitektur processor tunggal, CPU menjalankan setiap thread secara bergantian tetapi hal ini berlangsung sangat cepat sehingga menciptakan ilusi paralel, tetapi pada kenyataanya hanya satu thread yang dijalankan CPU pada satu-satuan waktu.




Csharp


using System;
using System.Threading;

namespace OOPpraktikum
{
class Program
{
public static void Main(string[] args)
{
TesThread tes1 = new TesThread("Rizal Thread");
TesThread tes2 = new TesThread("Cha Thread");

Thread thd1 = new Thread(new ThreadStart(tes1.Thred));
Thread thd2 = new Thread(new ThreadStart(tes2.Thred));

thd1.Start();
thd2.Start();

Console.ReadKey(true);
}
}

class TesThread
{
string nama;
public TesThread(string nm)
{
nama = nm;
}

public void Thred()
{
for (byte i = 0; i<50; i++)
{
Console.WriteLine(nama+" "+(i+1));
Thread.Sleep(1000);
}
}
}
}

Java


package OOPpraktikum;
import java.util.*;

public class MainClass
{
static Scanner input = new Scanner(System.in);

public static void main(String[] args)
{
TesThread thd1 = new TesThread("Rizal Thread");
TesThread thd2 = new TesThread("Cha Thread");

thd1.start();
thd2.start();

}

}

class TesThread extends Thread
{
String nama;
public TesThread(String a)
{
nama = a;
}
public void run()
{
try
{
for(byte i = 0; i<50; i++)
{
Thread.sleep(1000);
System.out.println(nama+" "+i);
}
}
catch (Exception e)
{
// TODO: handle exception
}

}
}



Khusus C++ untuk membuat Multi thread harus menggunakan header file, dalam contoh kode program berikut memanfaatkan header file buatan programmer lain. Referensinya ada pada http://www.codeproject.com/Articles/5218/Synchronized-multi-threading-in-C-No-MFC

C++

ou_thread.h

namespace openutils {
class ThreadException;
class Mutex;

/** class Thread
* Represents a thread of execution
* in the process. To create a new Thread
* write an inherited class ot Thread and
* override the run() function
**/
class Thread {

private:
// unsigned long* to the low-level thread object
unsigned long* m_hThread;
// a name to identify the thread
string m_strName;

public:
Thread();
Thread(const char* nm);
virtual ~Thread();
void setName(const char* nm);
string getName() const;
void start();
virtual void run();
void sleep(long ms);
void suspend();
void resume();
void stop();

void setPriority(int p);

bool wait(const char* m,long ms=5000);
void release(const char* m);

public:
// Thread priorities
static const int P_ABOVE_NORMAL;
static const int P_BELOW_NORMAL;
static const int P_HIGHEST;
static const int P_IDLE;
static const int P_LOWEST;
static const int P_NORMAL;
static const int P_CRITICAL;
private:
};// class Thread

/** class Mutex
* Represents a Mutex object to synchronize
* access to shaed resources.
**/
class Mutex {
private:
// unsigned long* to the low-level mutex object
unsigned long* m_hMutex;
// name to identify the mutex
string m_strName;
public:
Mutex();
Mutex(const char* nm);
void create(const char* nm);
unsigned long* getMutexHandle();
string getName();
void release();
~Mutex();
};

/** class ThreadException
* thrown by Thread and Mutex function
* calls
**/
class ThreadException {
private:
string msg;
public:
ThreadException(const char* m);
string getMessage() const;
};
} // namespace openutils

// global function called by the thread object.
// this in turn calls the overridden run()
extern "C" {
unsigned int _ou_thread_proc(void* param);
}




ou_thread.cpp

#include <string>
using namespace std;

#include <windows.h>

#include "ou_thread.h"
using namespace openutils;

const int Thread::P_ABOVE_NORMAL = THREAD_PRIORITY_ABOVE_NORMAL;
const int Thread::P_BELOW_NORMAL = THREAD_PRIORITY_BELOW_NORMAL;
const int Thread::P_HIGHEST = THREAD_PRIORITY_HIGHEST;
const int Thread::P_IDLE = THREAD_PRIORITY_IDLE;
const int Thread::P_LOWEST = THREAD_PRIORITY_LOWEST;
const int Thread::P_NORMAL = THREAD_PRIORITY_NORMAL;
const int Thread::P_CRITICAL = THREAD_PRIORITY_TIME_CRITICAL;

/**@ The Thread class implementation
**@/

/** Thread()
* default constructor
**/
Thread::Thread() {
m_hThread = NULL;
m_strName = "null";
}

/** Thread(const char* nm)
* overloaded constructor
* creates a Thread object identified by "nm"
**/
Thread::Thread(const char* nm) {
m_hThread = NULL;
m_strName = nm;
}

Thread::~Thread() {
if(m_hThread != NULL) {
stop();
}
}

/** setName(const char* nm)
* sets the Thread object's name to "nm"
**/
void Thread::setName(const char* nm) {
m_strName = nm;
}

/** getName()
* return the Thread object's name as a string
**/
string Thread::getName() const {
return m_strName;
}

/** run()
* called by the thread callback _ou_thread_proc()
* to be overridden by child classes of Thread
**/
void Thread::run() {
// Base run
}

/** sleep(long ms)
* holds back the thread's execution for
* "ms" milliseconds
**/
void Thread::sleep(long ms) {
Sleep(ms);
}

/** start()
* creates a low-level thread object and calls the
* run() function
**/
void Thread::start() {
DWORD tid = 0;
m_hThread = (unsigned long*)CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)_ou_thread_proc,(Thread*)this,0,&tid);
if(m_hThread == NULL) {
throw ThreadException("Failed to create thread");
}else {
setPriority(Thread::P_NORMAL);
}
}

/** stop()
* stops the running thread and frees the thread handle
**/
void Thread::stop() {
if(m_hThread == NULL) return;
WaitForSingleObject(m_hThread,INFINITE);
CloseHandle(m_hThread);
m_hThread = NULL;
}

/** setPriority(int tp)
* sets the priority of the thread to "tp"
* "tp" must be a valid priority defined in the
* Thread class
**/
void Thread::setPriority(int tp) {
if(m_hThread == NULL) {
throw ThreadException("Thread object is null");
}else {
if(SetThreadPriority(m_hThread,tp) == 0) {
throw ThreadException("Failed to set priority");
}
}
}

/** suspend()
* suspends the thread
**/
void Thread::suspend() {
if(m_hThread == NULL) {
throw ThreadException("Thread object is null");
}else {
if(SuspendThread(m_hThread) < 0) {
throw ThreadException("Failed to suspend thread");
}
}
}

/** resume()
* resumes a suspended thread
**/
void Thread::resume() {
if(m_hThread == NULL) {
throw ThreadException("Thread object is null");
}else {
if(ResumeThread(m_hThread) < 0) {
throw ThreadException("Failed to resume thread");
}
}
}

/** wait(const char* m,long ms)
* makes the thread suspend execution until the
* mutex represented by "m" is released by another thread.
* "ms" specifies a time-out for the wait operation.
* "ms" defaults to 5000 milli-seconds
**/
bool Thread::wait(const char* m,long ms) {
HANDLE h = OpenMutex(MUTEX_ALL_ACCESS,FALSE,m);
if(h == NULL) {
throw ThreadException("Mutex not found");
}
DWORD d = WaitForSingleObject(h,ms);
switch(d) {
case WAIT_ABANDONED:
throw ThreadException("Mutex not signaled");
break;
case WAIT_OBJECT_0:
return true;
case WAIT_TIMEOUT:
throw ThreadException("Wait timed out");
break;
}
return false;
}

/** release(const char* m)
* releases the mutex "m" and makes it
* available for other threads
**/
void Thread::release(const char* m) {
HANDLE h = OpenMutex(MUTEX_ALL_ACCESS,FALSE,m);
if(h == NULL) {
throw ThreadException("Invalid mutex handle");
}
if(ReleaseMutex(h) == 0) {
throw ThreadException("Failed to release mutex");
}
}

/**@ The Mutex class implementation
**@/

/** Mutex()
* default constructor
**/
Mutex::Mutex() {
m_hMutex = NULL;
m_strName = "";
}

/** Mutex(const char* nm)
* overloaded constructor
* creates a Mutex object identified by "nm"
**/
Mutex::Mutex(const char* nm) {
m_strName = nm;
m_hMutex = (unsigned long*)CreateMutex(NULL,FALSE,nm);
if(m_hMutex == NULL) {
throw ThreadException("Failed to create mutex");
}
}

/** create(const char* nm)
* frees the current mutex handle.
* creates a Mutex object identified by "nm"
**/
void Mutex::create(const char* nm) {
if(m_hMutex != NULL) {
CloseHandle(m_hMutex);
m_hMutex = NULL;
}
m_strName = nm;
m_hMutex = (unsigned long*)CreateMutex(NULL,FALSE,nm);
if(m_hMutex == NULL) {
throw ThreadException("Failed to create mutex");
}
}
/** getMutexHandle()
* returns the handle of the low-level mutex object
**/
unsigned long* Mutex::getMutexHandle() {
return m_hMutex;
}

/** getName()
* returns the name of the mutex
**/
string Mutex::getName() {
return m_strName;
}

void Mutex::release() {
if(m_hMutex != NULL) {
CloseHandle(m_hMutex);
}
}

Mutex::~Mutex() {
/*if(m_hMutex != NULL) {
CloseHandle(m_hMutex);
}*/
}

// ThreadException
ThreadException::ThreadException(const char* m) {
msg = m;
}

string ThreadException::getMessage() const {
return msg;
}

// global thread caallback
unsigned int _ou_thread_proc(void* param) {
Thread* tp = (Thread*)param;
tp->run();
return 0;
}

Main Program
#include <cstdlib>
#include <iostream>
#include <STRING>

using namespace std;
#include "ou_thread.h"
using namespace openutils;

class MyThread : public Thread {
private:
int m_nCount;
public:
MyThread(int n,const char* nm) {
Thread::setName(nm);
m_nCount = n;
}
void run() {
for(int i=0;i<m_nCount;i++) {
cout << getName().c_str()<<" "<<i<< endl;
sleep(1000);
}
}
};

int main(int argc, char *argv[])
{
Thread *t1 = new MyThread(50,"Rizal Thread");
Thread *t2 = new MyThread(50,"Cha Thread");
try
{
t1->start();
t2->start();
t1->stop();
t2->stop();
}
catch(ThreadException ex)
{
printf("%s\n",ex.getMessage().c_str());
}
delete t1;
delete t2;

system("PAUSE");
return EXIT_SUCCESS;
}



Read More

Exception (error) Handling di Java, C# dan C++

Exception (error) Handling di Java, C# dan C++
Exception handling adalah penangan error yang terjadi pada sebuah program. Exception handling akan mendeteksi error yang terjadi secara otomatis. Exception handling dalam pemrograman Csharp, Java dan C++ menggunakan keyword “try-cactch”. Pada contoh kode program berikut Exception Handling akan mendeteksi input jika terjadi error.

Csharp


using System;

namespace OOPpraktikum
{
class Program
{
public static void Main(string[] args)
{
int angka;

try
{
Console.Write("Masukkan Angka = ");
angka = Convert.ToInt32(Console.ReadLine());
}
catch(Exception)
{
Console.WriteLine("Input Pake Angka . . bukan Huruf . . .");
}


Console.Write("\nPress any key to continue . . . ");
Console.ReadKey(true);
}
}
}


Java

package OOPpraktikum;
import java.util.*;

public class MainClass
{
static Scanner input = new Scanner(System.in);
public static void main(String[] args)
{
int angka;

try
{
System.out.print("Masukkan Angka = ");
angka = input.nextInt();
}
catch(Exception e)
{
System.out.println("Input Pake Angka . . bukan Huruf . . .");
}

System.out.println("\nPress any key to continue . . . ");
}

}

C++

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
try
{
int i;
cout<<"Masukkan Angka = ";
if(!(cin>>i))
{
throw i;
}

}
catch(int e)
{
cout<<"Input Pake Angka . . . Bukan Huruf . ."<<endl;
}

cout<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}


Read More

Interface di Java, C# dan C++

Interface di Java, C# dan C++

Interface adalah sebuah fitur OOP yang menampung method-method kosong. Interface harus diturunkan pada sebuah Class jika ingin di implementasikan. Tidak jauh berbeda dengan Abstract Class kegunaan dari interface, hanya saja interface tidak bisa menampung method default dan tidak mempunyai modifier.

Penggunaan interface dalam bahasa pmrograman Csharp, Java dan C++ berbeda. Jika pada bahasa pmrograman Csharp dan Java, penggunaan interface menggunakan keyword “interface”, tetapi dalam C++ menggunakan fitur Hider File.


Csharp


using System;

namespace OOPpraktikum
{
class Program : KTP,MHS
{
public void ShowKTP(string nama,string alamat,string tlp)
{
Console.WriteLine("KTP");
Console.WriteLine();
Console.WriteLine("Nama anda : {0}",nama);
Console.WriteLine("Alamat : {0}",alamat);
Console.WriteLine("No Telp : {0}",tlp);
Console.WriteLine();
Console.WriteLine();
}

public void ShowMHS(string nama,string nim,string prodi,string tlp)
{
Console.WriteLine("MHS");
Console.WriteLine();
Console.WriteLine("Nama anda : {0}",nama);
Console.WriteLine("NIM : {0}",nim);
Console.WriteLine("Prodi : {0}",prodi);
Console.WriteLine("No Telp : {0}",tlp);
Console.WriteLine();
Console.WriteLine();
}

static Program pro = new Program();

public static void Main(string[] args)
{
string nama = "Muhammad Rizal Afani";
string alamat = "Banyuwangi";
string telp = "303058";
string NIM = "1110100601";
string Jurusan = "Tehnik Informatika";

pro.ShowKTP(nama,alamat,telp);
pro.ShowMHS(nama,NIM,Jurusan,telp);

Console.Write("\nPress any key to continue . . . ");
Console.ReadKey(true);
}
}

interface KTP
{
void ShowKTP(string nama,string alamat,string tlp);
}

interface MHS
{
void ShowMHS(string nama,string nim,string prodi,string tlp);
}
}

Java


package OOPpraktikum;
import java.util.*;

public class MainClass implements KTP,MHS
{

public void ShowKTP(String nama,String alamat,String tlp)
{
System.out.println("KTP");
System.out.println();
System.out.println("Nama anda : "+nama);
System.out.println("Alamat : "+alamat);
System.out.println("No Telp : "+tlp);
System.out.println();
System.out.println();
}

public void ShowMHS(String nama,String nim,String prodi,String tlp)
{
System.out.println("MHS");
System.out.println();
System.out.println("Nama anda : "+nama);
System.out.println("NIM : "+nim);
System.out.println("Prodi : "+prodi);
System.out.println("No Telp : "+tlp);
System.out.println();
System.out.println();
}

private static Scanner input = new Scanner(System.in);
static MainClass pro = new MainClass();

public static void main(String[] args)
{
String nama = "Muhammad Rizal Afani";
String alamat = "Banyuwangi";
String telp = "303058";
String NIM = "1110100601";
String Jurusan = "Tehnik Informatika";

pro.ShowKTP(nama,alamat,telp);
pro.ShowMHS(nama,NIM,Jurusan,telp);

System.out.println("\nPress any key to continue . . . ");
}

}

interface KTP
{
void ShowKTP(String nama,String alamat,String tlp);
}

interface MHS
{
void ShowMHS(String nama,String nim,String prodi,String tlp);
}


C++

KTP.h
Class KTP
{
public : virtual void ShowKTP() = 0;
}



MHS.h
Class MHS
{
public : virtual void ShowMHS() = 0;
}

Main


#include <cstdlib>
#include <iostream>

using namespace std;

#include "MHS.h"
#include "KTP.h"

class Implementasi : public MHS,KTP
{
public : void ShowKTP(string nama, string alamat, string tlp)
{
cout<<"KTP"<<endl;
cout<<endl;
cout<<"Nama anda : "<<nama<<endl;
cout<<"Alamat : "<<alamat<<endl;
cout<<"No Telp : "<<tlp<<endl;
cout<<endl;
cout<<endl;
}

public : void ShowMHS(string nama,string nim,string prodi,string tlp)
{
cout<<"MHS"<<endl;
cout<<endl;
cout<<"Nama anda : "<<nama<<endl;
cout<<"NIM : "<<nim<<endl;
cout<<"Prodi : "<<prodi<<endl;
cout<<"No Telp : "<<tlp<<endl;
cout<<endl;
cout<<endl;
}
};

int main(int argc, char *argv[])
{
Implementasi imp;


string nama = "Muhammad Rizal Afani";
string alamat = "Banyuwangi";
string telp = "303058";
string NIM = "1110100601";
string Jurusan = "Tehnik Informatika";

imp.ShowKTP(nama,alamat,telp);
imp.ShowMHS(nama,NIM,Jurusan,telp);


cout<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}

Read More

Abstract Class di Java, C# dan C++

Abstract Class di Java, C# dan C++
Abstract class adalah class yang tidak bisa dibuat secara instan sebagaimana class pada umumnya. Abstract class harus di implementasikan pada class turunan dari class Abstract tersebut. Abstract class berisi berisi sebuah method abstract dan method default yang bisa di override pada class turunan. Tidak semua bahasa pemrograman yang mendukung OOP mempunyai abstract class dan abstract method Seperti halnya c++. Maka dalam contoh code program Abstract class c++ harus menggunakan Class biasa dan virtual method agar bisa di override pada class turunannya.



Csharp


using System;

namespace OOPpraktikum
{
class Program
{
static Implementasi imp = new Implementasi();
public static void Main(string[] args)
{
string nama = "Muhammad Rizal Afani";
string alamat = "Banyuwangi";
string telp = "303058";
string NIM = "1110100601";
string Jurusan = "Tehnik Informatika";

imp.ShowKTP(nama,alamat,telp);
imp.ShowMHS(nama,NIM,Jurusan,telp);

Console.Write("\nPress any key to continue . . . ");
Console.ReadKey(true);
}
}

abstract class Abs // --- >Abstrak Class
{
public abstract void ShowKTP(string nama,string alamat,string tlp); // ---> Abstrak method
public void ShowMHS(string nama,string nim,string prodi,string tlp)
{
Console.WriteLine("MHS");
Console.WriteLine();
Console.WriteLine("Nama anda : {0}",nama);
Console.WriteLine("NIM : {0}",nim);
Console.WriteLine("Prodi : {0}",prodi);
Console.WriteLine("No Telp : {0}",tlp);
Console.WriteLine();
Console.WriteLine();
}
}

class Implementasi : Abs
{
public override void ShowKTP(string nama, string alamat, string tlp)
{
Console.WriteLine("KTP");
Console.WriteLine();
Console.WriteLine("Nama anda : {0}",nama);
Console.WriteLine("Alamat : {0}",alamat);
Console.WriteLine("No Telp : {0}",tlp);
Console.WriteLine();
Console.WriteLine();
}
}
}

Java


package OOPpraktikum;
import java.util.*;

public class MainClass
{
private static Scanner input = new Scanner(System.in);
static Implementasi imp = new Implementasi();

public static void main(String[] args)
{
String nama = "Muhammad Rizal Afani";
String alamat = "Banyuwangi";
String telp = "303058";
String NIM = "1110100601";
String Jurusan = "Tehnik Informatika";

imp.ShowKTP(nama,alamat,telp);
imp.ShowMHS(nama,NIM,Jurusan,telp);

System.out.println("\nPress any key to continue . . . ");

}

}

abstract class Abs // --- >Abstrak Class
{
public abstract void ShowKTP(String nama,String alamat,String tlp); // ---> Abstrak method
public void ShowMHS(String nama,String nim,String prodi,String tlp)
{
System.out.println("MHS");
System.out.println();
System.out.println("Nama anda : "+nama);
System.out.println("NIM : "+nim);
System.out.println("Prodi : "+prodi);
System.out.println("No Telp : "+tlp);
System.out.println();
System.out.println();
}
}

class Implementasi extends Abs
{
@Override
public void ShowKTP(String nama, String alamat, String tlp)
{
System.out.println("KTP");
System.out.println();
System.out.println("Nama anda : "+nama);
System.out.println("Alamat : "+alamat);
System.out.println("No Telp : "+tlp);
System.out.println();
System.out.println();
}
}


C++


#include <cstdlib>
#include <iostream>

using namespace std;

class Abs
{
public : virtual void ShowKTP(string nama,string alamat,string tlp) = 0; // ---> Abstrak method
public : void ShowMHS(string nama,string nim,string prodi,string tlp)
{
cout<<"MHS"<<endl;
cout<<endl;
cout<<"Nama anda : "<<nama<<endl;
cout<<"NIM : "<<nim<<endl;
cout<<"Prodi : "<<prodi<<endl;
cout<<"No Telp : "<<tlp<<endl;
cout<<endl;
cout<<endl;
}
};

class Implementasi : public Abs
{
public : void ShowKTP(string nama, string alamat, string tlp)
{
cout<<"KTP"<<endl;
cout<<endl;
cout<<"Nama anda : "<<nama<<endl;
cout<<"Alamat : "<<alamat<<endl;
cout<<"No Telp : "<<tlp<<endl;
cout<<endl;
cout<<endl;
}
};

int main(int argc, char *argv[])
{
Implementasi imp;


string nama = "Muhammad Rizal Afani";
string alamat = "Banyuwangi";
string telp = "303058";
string NIM = "1110100601";
string Jurusan = "Tehnik Informatika";

imp.ShowKTP(nama,alamat,telp);
imp.ShowMHS(nama,NIM,Jurusan,telp);

cout<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}



Read More

Inner Class Java, C# dan C++

Inner Class Java, C# dan C++
Inner class adalah sebuah class yang di buat didalam sebuah class dan mempunyai karakteristik seperti class – class pada umumnya. Salah satunya bisa menjadi class turunan. Untuk pemanggilan inner class harus terlebih dahulu memanggil class luarnya. Manfaat penggunaan fitur inner class ini adalah untuk melakukan pengelompokan kode program.



Csharp


using System;

namespace NestedClass
{
class Program
{
public static void Main(string[] args)
{
satu s = new satu();
satu.dua sd = new NestedClass.satu.dua();

//persegi
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Menghitung Luas Persegi");
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine();
Console.Write("Masukkan sisi persegi = ");
s.A = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Luas Persegi = {0}",s.Persegi());
Console.WriteLine("\n\n");

//persegi panjang

Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Menghitung Luas Persegi Panjang");
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine();
Console.Write("Masukkan Panjang = ");
sd.A = Convert.ToInt32(Console.ReadLine());
Console.Write("Masukkan Lebar = ");
sd.B = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Luas Persegi Panjang = {0}",sd.PersegiPanjang());

Console.Write("\n\nPress any key to continue . . . ");
Console.ReadKey(true);
}
}

class satu
{
protected int a;
protected int b;

public int A
{
get { return a; }
set { a = value; }
}

public int B
{
get { return b; }
set { b = value; }
}

public int Persegi()
{
return A*4;
}

public class dua : satu
{
public int PersegiPanjang()
{
return A*B;
}
}
}
}

Java


package NestedClass;

import NestedClass.Satu.Dua;
import java.util.Scanner;

public class MainClass
{

private static Scanner baca = new Scanner(System.in);
public static void main(String[] args)
{
Satu s = new Satu();
Satu.Dua sd = s.new Dua();
int a,b;

//persegi
System.out.println("Menghitung Luas Persegi");
System.out.println();
System.out.print("Masukkan sisi persegi = ");
a = baca.nextInt();
s.setA(a);
System.out.println("Luas Persegi = "+s.Persegi());
System.out.println("\n\n");

//persegi panjang

System.out.println("Menghitung Luas Persegi Panjang");
System.out.println();
System.out.print("Masukkan Panjang = ");
a = baca.nextInt();
System.out.print("Masukkan Lebar = ");
b = baca.nextInt();
sd.setA(a);
sd.setB(b);
System.out.println("Luas Persegi Panjang = "+sd.PersegiPanjang());

System.out.print("\n\nPress any key to continue . . . ");

}
}

class Satu
{
protected int a,b;

public void setA(int x)
{
this.a = x;
}

public int GetA()
{
return a;
}

public void setB(int y)
{
this.b = y;
}

public int GetB()
{
return b;
}

public int Persegi()
{
return GetA()*4;
}

class Dua extends Satu
{
public int PersegiPanjang()
{
return GetA()*GetB();
}
}
}


C++


#include <cstdlib>
#include <iostream>

using namespace std;

class Satu
{
protected : int a,b;

public :
void setA(int x)
{
a = x;
//cout<<a;
}

int GetA()
{
return a;
}

void setB(int y)
{
b = y;
}

int GetB()
{
return b;
}

int Persegi()
{
return GetA()*4;
}

class Dua;
};

class Satu::Dua : public Satu
{
public : void Show()
{
cout<<"Halo"<<endl;
}
public:
int PersegiPanjang()
{
return GetA()*GetB();
}
};

int main(int argc, char *argv[])
{
Satu s;
Satu::Dua sd;

int a,b;

//persegi
cout<<"Menghitung Luas Persegi"<<endl<<endl;
cout<<"Masukkan sisi persegi = ";
cin>>a;
s.setA(a);
cout<<"Luas Persegi = "<<s.Persegi()<<endl;
cout<<endl<<endl<<endl;

//persegi panjang

cout<<"Menghitung Luas Persegi Panjang"<<endl<<endl;
cout<<"Masukkan Panjang = ";
cin>>a;
cout<<"Masukkan Lebar = ";
cin>>b;
sd.setA(a);
sd.setB(b);
cout<<"Luas Persegi Panjang = "<<sd.PersegiPanjang()<<endl<<endl<<endl;

system("PAUSE");
return EXIT_SUCCESS;
}


Read More

Inheritance (penurunan) di Java, C# dan C++ || OOP

Inheritance (penurunan) di Java, C# dan C++ || OOP
Inheritance adalah salah satu fitur OOP yang sangat penting, Inheritance adalah penurunan sifat dari suatu Class ke kelas yang lain. Tidak semua sifat bisa diturunkan ke Class turunan tetapi hanya filed dan method yang punya modifier public dan protected yang bisa di turunkan.


Manfaat Inheritance :

  • Inheritance memungkinkan untuk menciptakan sebuah class dari class yang sudah ada.
  • Ketika sebuah class diturunkan dari class yang sudah ada maka class tersebut mewarisi semua method dan field dari class orangtuanya.
  • Class turunan juga mewarisi bentuk dari class orang tua. Artinya objek dari class anak dapat dikenali sebagai objek dari class orang tua.



Csharp


class Program
{
public static void Main(string[] args)
{
string nama = "Ahmad Rizal Afani";
string alamat = "Banyuwangi";
string telp = "01234567";
string prodi = "tehnik informatika";
string NIM = "1110100601";

MHS m = new MHS();
m.ShowKTP(nama,alamat,telp);
m.ShowMHS(nama,NIM,prodi,telp);


Console.WriteLine();
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
}
}
class KTP
{

public KTP()
{
Console.WriteLine(" ==================================");
Console.WriteLine(" = Inheritance =");
Console.WriteLine(" ==================================");
Console.WriteLine();
Console.WriteLine();
Console.WriteLine();
}

public void ShowKTP(string nama,string alamat,string tlp)
{
Console.WriteLine("KTP");
Console.WriteLine();
Console.WriteLine("Nama anda : {0}",nama);
Console.WriteLine("Alamat : {0}",alamat);
Console.WriteLine("No Telp : {0}",tlp);
Console.WriteLine();
Console.WriteLine();
}
}
class MHS : KTP
{
public MHS()
{

}
public void ShowMHS(string nama,string nim,string prodi,string tlp)
{
Console.WriteLine("MHS");
Console.WriteLine();
Console.WriteLine("Nama anda : {0}",nama);
Console.WriteLine("NIM : {0}",nim);
Console.WriteLine("Prodi : {0}",prodi);
Console.WriteLine("No Telp : {0}",tlp);
Console.WriteLine();
Console.WriteLine();
}
}

Java


package Inheritance;

public class MainClass
{
public static void main(String[] args)
{
String nama = "Ahmad Rizal Afani";
String alamat = "Banyuwangi";
String telp = "01234567";
String prodi = "tehnik informatika";
String NIM = "1110100601";

MHS m = new MHS();

m.ShowKTP(nama,alamat,telp);
m.ShowMHS(nama,NIM,prodi,telp);

}
}
class KTP
{

public KTP()
{
System.out.println(" ==================================");
System.out.println(" = Inheritance =");
System.out.println(" ==================================");
System.out.println();
System.out.println();
System.out.println();
}

public void ShowKTP(String nama,String alamat,String tlp)
{
System.out.println("KTP");
System.out.println();
System.out.println("Nama anda : "+nama);
System.out.println("Alamat : "+alamat);
System.out.println("No Telp : "+tlp);
System.out.println();
System.out.println();
}
}
class MHS extends KTP
{
public MHS()
{

}
public void ShowMHS(String nama,String nim,String prodi,String tlp)
{
System.out.println("MHS");
System.out.println();
System.out.println("Nama anda : "+nama);
System.out.println("NIM : "+nim);
System.out.println("Prodi : "+prodi);
System.out.println("No Telp : "+tlp);
System.out.println();
System.out.println();
}
}


C++


#include <cstdlib>
#include <iostream>

using namespace std;

class KTP
{
public : KTP()
{
cout<<" =================================="<<endl;
cout<<" = Inheritance ="<<endl;
cout<<" =================================="<<endl;
cout<<endl;
cout<<endl;
cout<<endl;
}

public : void ShowKTP(string nama,string alamat,string tlp)
{
cout<<"KTP"<<endl;
cout<<endl;
cout<<"Nama anda : "<<nama<<endl;
cout<<"Alamat : "<<alamat<<endl;
cout<<"No Telp : "<<tlp<<endl;
cout<<endl;
cout<<endl;
}
};
class MHS : public KTP
{
public : MHS()
{

}
public : void ShowMHS(string nama,string nim,string prodi,string tlp)
{
cout<<"MHS"<<endl;
cout<<endl;
cout<<"Nama anda : "<<nama<<endl;
cout<<"NIM : "<<nim<<endl;
cout<<"Prodi : "<<prodi<<endl;
cout<<"No Telp : "<<tlp<<endl;
cout<<endl;
cout<<endl;
}
};

int main(int argc, char *argv[])
{
string nama = "Ahmad Rizal Afani";
string alamat = "Banyuwangi";
string telp = "01234567";
string prodi = "tehnik informatika";
string NIM = "1110100601";

MHS m;

m.ShowKTP(nama,alamat,telp);
m.ShowMHS(nama,NIM,prodi,telp);

cout<<endl;
cout<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}

Program diatas mencontohkan Class KTP menjadi Class induk yang mewariskan Method dan Filednya pada Class MHS, jadi Class MHS tu Class turunan dari Class KTP, Jadi kalo Class MHS butuh method yang isi programnya sama atau field gak perlu nulis lagi :D
Read More

Polymorphisme Overload Override Java, C# dan C++ || OOP

Polymorphisme Overload Override Java, C# dan C++ || OOP

Overloading adalah suatu cara untuk memberikan nama yang sama kepada dua method yang berbeda meski dua method tersebut berada dalam class yang sama. Hal ini dapat dilakukan dengan cara membedakan tipe parameter, jumlah parameter dan susunan parameter, Manfaat penggunaan overloading adalah agar method yang mempunyai tingkah yang hampir sama mudah diingat oleh developer software.

Overriding digunakan oleh Class Turunan yang berusaha memodifikasi tingkah laku yang diwarisi dari Class Induk. Tujuannya adalah supaya  Class turunan memiliki tingkah laku yang lebih spesifik. Ini dilakukan dengan  cara mendeklarasikan kembali method milik parent class di Class turunan.


Csharp


class Program
{
public static void Main(string[] args)
{
Satu s = new Satu();

s.Tes();
s.Tes("Csharp");
s.Tes("Csharp",2);
s.Tes2();
s = new Dua();
s.Tes2();

Console.Write("\nPress any key to continue . . . ");
Console.ReadKey(true);
}
}

class Satu
{
public void Tes() //---> overload method
{
Console.WriteLine("Testing");
}

public void Tes(string a) //---> overload method
{
Console.WriteLine("Testing {0}",a);
}

public void Tes(string a,int b) //---> overload method
{
Console.WriteLine("Testing {0} ke {1}",a,b);
}

public virtual void Tes2()
{
Console.WriteLine("Override 1");
}
}

class Dua : Satu
{
public override void Tes2() //---> override
{
Console.WriteLine("Override 2");
}
}

Java


package OOPpraktikum;
import java.util.*;

public class MainClass
{
private static Scanner input = new Scanner(System.in);
public static void main(String[] args)
{
Satu s = new Satu();

s.Tes();
s.Tes("Csharp");
s.Tes("Csharp",2);
s.Tes2();
s = new Dua();
s.Tes2();

System.out.println("\nPress any key to continue . . . ");

}

}

class Satu
{
public void Tes() //---> overload method
{
System.out.println("Testing");
}

public void Tes(String a) //---> overload method
{
System.out.println("Testing "+a);
}

public void Tes(String a,int b) //---> overload method
{
System.out.println("Testing "+a+" ke "+b);
}

public void Tes2()
{
System.out.println("Override 1");
}
}

class Dua extends Satu
{
@Override
public void Tes2() //---> override
{
System.out.println("Override 2");
}
}

C++

#include <cstdlib>
#include <iostream>

using namespace std;

class Satu //--->Class
{
public :
void Tes() //---> overload method
{
cout<<"Testing"<<endl;
}

void Tes(string a) //---> overload method
{
cout<<"Testing "<<a<<endl;
}

void Tes(string a,int b) //---> overload method
{
cout<<"Testing "<<a<<" ke "<<b<<endl;
}
virtual void Tes2()
{
cout<<"Override 1"<<endl;
}
};

class Dua : public Satu
{
public :
void Tes2() //--->override
{
cout<<"Override 2"<<endl;
}
};

int main(int argc, char *argv[])
{
Satu s;
Dua d;
Satu *c;

s.Tes();
s.Tes("Csharp");
s.Tes("Csharp",2);

s.Tes2();
c = &d;
c->Tes2();

cout<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}


Contoh program diatas punya 2 kelas selain class main, pada class Satu ada beberapa method yang sama namanya tapi pada parameternya berbeda . . itu contoh method overloadnya, trus pada class Dua itu contoh method overridenya,, method itu menulis ulang method virtual yang d turunkan oleh Class Satu,, perintah pada method override boleh berbeda dari method aslinya, ya sebernya si memang gunanya override untuk memodifikasi isi dari method asalnya . . .
smoga bisa dicopy n dipahami contoh kode program di atass . .
hehehehehehe

Read More

Information Hidding dan Encapsulation di Java, C# dan C++ || OOP

Information Hidding dan Encapsulation di Java, C# dan C++ || OOP

Information hidding adalah Penyembunyian sebuah Filed dari kelas lain agar tidak bisa di akses secara langsung. Information Hidding di lakukan dengan cara memberikan modifier private pada filed yang di sembunyikan dari kelas lain.

Encapsulation adalah proses pengelompokan Filed dan method dengan memberikan hak akses kepada Filed dan method sehingga Filed hanya dapat di akses melalui method accessor.

Berikut ini keuntungan dari prinsip encapsulation :
  • Bersifat independen. Suatu modul yang terenkapsulasi dengan baik akan bersifat independen dari yang lain. Sehingga dapat digunakan pada bagian manapun dari program.
  • Bersifat transparan. Jika Anda melakukan modifikasi pada suatu modul, maka perubahan tersebut akan dirasakan oleh semua bagian yang menggunakan modul tersebut.
  • Menghindari dari efek yang diluar perencanaan. Modul yang terenkapsulasi dengan baik hanya akan berinteraksi dengan bagian program melalui variable input dan output yang telah didefinisikan sebelumnya. Sehingga dapat mengurangi kemungkinan bug.


Csharp

class Program
{
public static void Main(string[] args)
{
Satu s = new Satu();

Console.Write("Input satu = ");
s.A = Convert.ToInt32(Console.ReadLine());
Console.Write("Input dua = ");
s.B = Convert.ToInt32(Console.ReadLine());

Console.WriteLine("Hasil Penjumlahan = {0}",s.HasilJumlah());
Console.WriteLine("Hasil Pengurangan = {0}",s.HasilKurang());

Console.Write("\nPress any key to continue . . . ");
Console.ReadKey(true);
}
}

class Satu
{
private int a; //information hidding
private int b;

public int A // ---> encapsulation
{
get { return a; }
set { a = value; }
}

public int B
{
get { return b; }
set { b = value; }
}

public int HasilJumlah()
{
return A+B;
}

public int HasilKurang()
{
return A-B;
}
}



Java


package OOPpraktikum;
import java.util.*;

public class MainClass
{
private static Scanner input = new Scanner(System.in);
public static void main(String[] args)
{
Satu s = new Satu();

int a,b;
System.out.print("Input satu = ");
a = input.nextInt();
s.setA(a);
System.out.print("Input dua = ");
b = input.nextInt();
s.setB(b);

System.out.println("Hasil Penjumlahan = "+s.HasilJumlah());
System.out.println("Hasil Pengurangan = "+s.HasilKurang());

System.out.println("\nPress any key to continue . . . ");

}

}

class Satu
{
private int a; //information hidding
private int b;

public void setA(int a) //--->encapsulation
{
this.a = a;
}

public int getA() //--->encapsulation
{
return this.a;
}

public void setB(int b)
{
this.b = b;
}

public int getB()
{
return this.b;
}

public int HasilJumlah()
{
return getA()+getB();
}

public int HasilKurang()
{
return getA()-getB();
}
}


C++


#include <cstdlib>
#include <iostream>

using namespace std;

class Satu //--->Class
{
private : int a; //information hidding
private : int b;

public : void setA(int c) //--->encapsulation
{
a = c;
}

public : int getA() //--->encapsulation
{
return a;
}

public : void setB(int d)
{
b = d;
}

public : int getB()
{
return b;
}

public : int HasilJumlah()
{
return getA()+getB();
}

public : int HasilKurang()
{
return getA()-getB();
}
};

int main(int argc, char *argv[])
{
Satu s;

int a,b;
cout<<"Input satu = ";
cin>>a;
s.setA(a);
cout<<"Input dua = ";
cin>>b;
s.setB(b);

cout<<"Hasil Penjumlahan = "<<s.HasilJumlah()<<endl;
cout<<"Hasil Pengurangan = "<<s.HasilKurang()<<endl;

system("PAUSE");
return EXIT_SUCCESS;
}
Read More

Class, Method dan Modifier di Java, C# dan C++ || OOP

Class, Method dan Modifier di Java, C# dan C++ || OOP
Class adalah kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Sebuah class adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi object. 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.

Method adalah sarana bagi programmer untuk memodularisasi, artinya membreak atau memecah program kompleks menjadi bagian yang kecil-kecil. Setiap method yang menghasilkan suatu nilai dengan tipe data tertentu yang dinamai Return Type. Apabila terdapat suatu fungsi yang tidak menghasilkan suatu nilai apapun maka bagian return type ini diganti dengan void.Penamaan method mengikuti kaidah penamaan seperti pada penamaan variabel.

Bagian parameter pada method diisi dengan parameter-parameter fungsi yang diperlukan. Passing Parameter  dilakukan dengan cara pass by value dan pass by reference.Dengan analogi tersebut, otomatis beberapa hal umum seperti local variable,pemanggilan method, pendefinisian return value type, dsb adalah sama.

Modifier adalah ruang lingkup aksesibilitas dari sebuah Obyek dan anggotanya. Kita dapat mengontrol ruang lingkup objek anggota kelas menggunakan access modifier. Kita menggunakan access modifier untuk menyediakan keamanan Code yang kita Buat.


Gan,, ane bosen nerangin tentang ini,, soalnya pada postingan yang lalu udah ane jelasin :D
Langsung aja pada Contoh Programnya yak . . .

Csharp


class Program
{
public static void Main(string[] args)
{
Satu s = new Satu(); //--->bikin object s

Console.Write("Masukkan nilai = ");
s.d = Convert.ToByte(Console.ReadLine());
s.Tes4(s.d);


Console.Write("\nPress any key to continue . . . ");
Console.ReadKey(true);
}
}

class Satu //--->Class
{
byte a = 10; //field modifier default
private byte b; //field modifier private
protected byte c; //field modifier protected
public byte d; //field modifier public

void Tes() //---> method modifier default
{
Console.WriteLine("Testing 1");
}

private void Tes2() //---> method modifier private
{
Console.WriteLine("Testing 2");
}

protected void Tes3() //---> method modifier protected
{
Console.WriteLine("Testing 3");
}

public void Tes4(byte i) //---> method modifier public
{
Console.WriteLine("nilai = {0}",i);
}
}

Java


package OOPpraktikum;
import java.util.*;

public class MainClass
{
private static Scanner input = new Scanner(System.in);
public static void main(String[] args)
{
Satu s = new Satu(); //--->bikin object s

System.out.print("Masukkan nilai = ");
s.d = input.nextByte();
s.Tes4(s.d);

System.out.println("\nPress any key to continue . . . ");

}

}

public class Satu //--->Class
{
byte a = 10; //field modifier default
private byte b; //field modifier private
protected byte c; //field modifier protected
public byte d; //field modifier public

void Tes() //---> method modifier default
{
System.out.println("Testing 1");
}

private void Tes2() //---> method modifier private
{
System.out.println("Testing 2");
}

protected void Tes3() //---> method modifier protected
{
System.out.println("Testing 3");
}

public void Tes4(byte i) //---> method modifier public
{
System.out.println("nilai = "+i);
}
}

C++




  

#include <cstdlib>
#include <iostream>

using namespace std;

class Satu //--->Class
{
int a; //field modifier default
private : int b; //field modifier private
protected : int c; //field modifier protected
public : int d; //field modifier public

void Tes() //---> method modifier default
{
cout<<"Testing 1"<<endl;
}

private : void Tes2() //---> method modifier private
{
cout<<"Testing 2"<<endl;
}

protected : void Tes3() //---> method modifier protected
{
cout<<"Testing 3"<<endl;
}

public : void Tes4(int i) //---> method modifier public
{
cout<<"nilai = "<<i<<endl;
}
};

int main(int argc, char *argv[])
{
Satu s; //--->bikin object
cout<<"masukan nilai = ";
cin>>s.d;
s.Tes4(s.d);

system("PAUSE");
return EXIT_SUCCESS;
}

Read More