Fundamental Java Programming (Konsep OOP dengan Java)

 

Tujuan

Memberikan konsep pemrograman dengan menggunakan java, sehingga peserta dapat memahahami konsep Object Oriented Programming dengan java seperti konsep enkapsulasi, inheritance, polymorfisme, interface, dll.

Keterangan

  • Jumlah pertemuan : 12x
  • Total waktu training : 30 jam
  • Jumlah jam per pertemuan : 2,5 jam
  • Jadwal pertemuan dapat diatur kemudian bisa 2x atau 3x seminggu, hari dan jam disesuaikan dengan peserta kelas dan pengajar.
  • Alternatif lain adalah dengan workshop model yaitu memadatkan pertemuan menjadi 4x pertemuan, per petemuan 7,5 jam selama 2 minggu (hari sabtu dan minggu)
  • Peserta dapat membawa notebook sendiri atau menggunakan komputer yang disediakan.

 

Hands-On Modul

  • Setiap peserta akan mendapatkan modul pelatihan

 

Software Requirement

  • Windows XP SP2 atau Vista
  • J2SDK 1.6 
  • Netbeans 6.1

 

Materi Training

  • Getting Started with Java SE
    • Apa ituJava?
    • Bagaimana menggunakan Java
    • Program pertama dengan Java
    • JDK Directory Structure
  • Datatypes dan Variables
    • Primitive Datatypes
    • Declarations
    • Variable Names
    • Numeric Literals
    • Character Literals
    • String
    • String Literals
    • Arrays
    • Non-Primitive Datatypes
    • Dot Operator
  • Operators dan Expressions
    • Expressions
    • Assignment Operator
    • Arithmetic Operators
    • Relational Operators
    • Logical Operators
    • Increment dan Decrement Operators
    • Operate-Assign Operators (+=, etc.)
    • The Conditional Operator
    • Operator Precedence
    • Implicit Type Conversions
    • The Cast Operator
  • Control Flow
    • Statements
    • Conditional (if) Statements
    • Menambahkan else if
    • Conditional (switch) Statements
    • while dan do-while Loops
    • for Loops
    • A for Loop Diagram
    • continue Statement
    • break Statement
  • Methods
    • Methods
    • Memanggil Methods
    • Mendefinisikan Methods
    • Method Parameters
    • Scope
    • Mengapa menggunakan static?
  • Object-Oriented Programming
    • Pengenalan Object-Oriented Programming
    • Classes dan Objects
    • Fields dan Methods
    • Encapsulation
    • Access Control
    • Inheritance
    • Polymorphism
    • Best Practices
  • Objects dan Classes
    • Mendefinisikan Class
    • Membuat Object
    • Instance Data dan Class Data
    • Methods
    • Constructors
    • Access Modifiers
    • Encapsulation
  • Menggunakan Java Objects
    • Menampilkan dari Console
    • printf Format Strings
    • StringBuilder dan StringBuffer
    • Methods dan Messages
    • toString
    • Parameter Passing
    • Comparing dan Identifying Objects
    • Destroying Objects
    • Menggunakan Primitive-Type Wrapper Classes
    • Autoboxing
  • Inheritance pada Java
    • Inheritance
    • Inheritance in Java
    • Casting
    • Method Overriding
    • Polymorphism
    • super
    • Object Class
  • Advanced Inheritance dan Language Constructs
    • Enumerated Types – Java 5.0
    • Abstract Classes
    • Interfaces
    • Using Interfaces
    • Comparable
    • Collections
    • Generics
  • Packages
    • Packages
    • Import Statement
    • Static Imports
    • CLASSPATH dan Import
    • Defining Packages
    • Package Scope
  • Exception Handling
    • Sekilas Exceptions
    • Catching Exceptions
    • finally Block
    • Exception Methods
    • Declaring Exceptions
    • Defining dan Throwing Exceptions
    • Errors dan RuntimeExceptions
    • Assertions
  • Input/Output Streams
    • Sekilas Streams
    • Bytes vs. Characters
    • Converting Byte Streams ke Character Streams
    • File Object
    • Binary Input dan Output
    • PrintWriter Class
    • Reading and Writing Objects
    • Basic and Filtered Streams
  • Core Collection Classes
    • The Collections Framework
    • The Set Interface
    • Set Implementation Classes
    • List Interface
    • List Implementation Classes
    • Queue Interface
    • Queue Implementation Classes
    • Map Interface
    • Map Implementation Classes
  • Collection Sorting dan Tuning
    • Menggunakan Java 5.0 Features dengan Collections
    • Sorting dengan Comparable
    • Sorting dengan Comparator
    • Sorting Lists dan Arrays
    • Collections Utility Methods
    • Tuning ArrayList
    • Tuning HashMap dan HashSet
  • Inner Classes
    • Inner Classes
    • Member Classes
    • Local Classes
    • Anonymous Classes
    • Instance Initializers
    • Static Nested Classes

fungsi split di delphi

function split(input: string; schar: Char; s: Integer): string;
var
  c: array of Integer;
  b, t: Integer;
begin
  Dec(s, 2);  // for compatibility with very old & slow split function
  t := 0;     // variable T needs to be initialized...
  setlength(c, Length(input));
  for b := 0 to pred(High(c)) do 
  begin
    c[b + 1] := posex(schar, input, succ(c[b]));
    // BREAK LOOP if posex looped (position before previous)
    // or wanted position reached..
    if (c[b + 1] < c[b]) or (s < t) then break 
    else 
      Inc(t);
  end;
  Result := Copy(input, succ(c[s]), pred(c[s + 1] - c[s]));
end;

penggunaan:
SPLIT(‘this is a test ‘,’ ‘,3) = ‘is’
SPLIT(‘data;another;yet;again;more;’,’;’,4) = ‘yet’

Check if a file is text or binary in Delphi?

function IsTextFile(const sFile: TFileName): boolean;
//thanks to Marcelo Castro - from Brazil

var
 oIn: TFileStream;
 iRead: Integer;
 iMaxRead: Integer;
 iData: Byte;
 dummy:string;
begin
 result:=true;
 dummy :='';
 oIn := TFileStream.Create(sFile, fmOpenRead or fmShareDenyNone);
 try
   iMaxRead := 1000;  //only text the first 1000 bytes
   if iMaxRead > oIn.Size then
     iMaxRead := oIn.Size;
   for iRead := 1 to iMaxRead do
   begin
     oIn.Read(iData, 1);
     if (idata) > 127 then result:=false;
   end;
 finally
   FreeAndNil(oIn);
 end;
end;

(* ----- Sample call ----- *)

procedure TForm1.Button1Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
  begin
  if IsTextFile(OpenDialog1.FileName) then
  showmessage('is ascii')
  else showmessage('is BinaryFile')
  end;

end;

Penggunaan TXMLDoc di Delphi

saya mencoba menulis kembali sebuah unit tersendiri sehingga dapat digunakan untuk mengelola TXMLDoc dan dapat digunakan untuk menggantikan file .INI

unit uPenggunaanXml;

interface

uses
  Forms, SysUtils, Windows, XmlIntf, XMLDoc;

type
  TXMLConfig = class
  private
    FModified: Boolean;
    FFileName: string;
    FXMLDoc: TXMLDocument;
    FBackup: Boolean;
    function GetVersion: string;
  public
    constructor Create(const FileName: string); overload;
    constructor Create; overload;
    destructor Destroy; override;
    procedure Save;
    function ReadString(const Section, Key, default: string): string;
    procedure WriteString(const Section, Key, Value: string);
    function ReadInteger(const Section, Key: string; default: Integer): Integer;
    procedure WriteInteger(const Section, Key: string; Value: Integer);
    function ReadBoolean(const Section, Key: string; default: Boolean): Boolean;
    procedure WriteBoolean(const Section, Key: string; Value: Boolean);
    property Backup: Boolean read FBackup write FBackup;
    property Version: string read GetVersion;
  end;

implementation

{ TXMLConfig }

constructor TXMLConfig.Create(const FileName: string);
begin
  inherited Create;
  FBackup         := True;
  FFileName       := FileName;
  FXMLDoc         := TXMLDocument.Create(Application);
  FXMLDoc.Options := [doNodeAutoIndent];
  if FileExists(FFileName) then
    FXMLDoc.LoadFromFile(FFileName)
  else
  begin
    FXMLDoc.Active := True;
    FXMLDoc.AddChild('Configuration');
  end;
end;

constructor TXMLConfig.Create;
begin
  Create(ChangeFileExt(Application.Exename, '_cfg.xml'));
end;

destructor TXMLConfig.Destroy;
begin
  Save;
  FXMLDoc.Destroy;
  inherited;
end;

function TXMLConfig.GetVersion: string;
begin
  Result := '1.00';
end;

function TXMLConfig.ReadBoolean(const Section, Key: string; default: Boolean): Boolean;
begin
  Result := Boolean(ReadInteger(Section, Key, Integer(default)));
end;

function TXMLConfig.ReadInteger(const Section, Key: string; default: Integer): Integer;
begin
  Result := StrToInt(ReadString(Section, Key, IntToStr(default)));
end;

function TXMLConfig.ReadString(const Section, Key, default: string): string;
var
  Node: IXMLNode;
begin
  Node := FXMLDoc.DocumentElement.ChildNodes.FindNode(Section);
  if Assigned(Node) and Node.HasAttribute(Key) then
    Result := Node.Attributes[Key]
  else
    Result := default;
end;

procedure TXMLConfig.Save;
begin
  if not FModified then
    Exit;
  if FBackup then

    CopyFile(PChar(FFileName), PChar(FFileName + '.bak'), False);
  FXMLDoc.SaveToFile(FFileName);
  FModified := False;
end;

procedure TXMLConfig.WriteBoolean(const Section, Key: string; Value: Boolean);
begin
  WriteInteger(Section, Key, Integer(Value));
end;

procedure TXMLConfig.WriteInteger(const Section, Key: string; Value: Integer);
begin
  WriteString(Section, Key, IntToStr(Value));
end;

procedure TXMLConfig.WriteString(const Section, Key, Value: string);
var
  Node: IXMLNode;
begin
  if ReadString(Section, Key, '') = Value then
    Exit;
  Node := FXMLDoc.DocumentElement.ChildNodes.FindNode(Section);
  if not Assigned(Node) then
    Node := FXMLDoc.DocumentElement.AddChild(Section);
  Node.Attributes[Key] := Value;
  FModified := True;
end;

end.

Semoga membantu…

Akses SQLite menggunakan JDBC (java)

import java.sql.*;

public class Main {
   public static void main(String[] args) throws Exception {
         Class.forName("org.sqlite.JDBC");
         Connection conn = DriverManager.getConnection("jdbc:sqlite:test.db");
         Statement stat = conn.createStatement();
         ResultSet rs = stat.executeQuery("SELECT Question, Answer, Type FROM Questions");
         while (rs.next()) {
            System.out.println(rs.getString("1"));
            System.out.println(rs.getString("2"));
            System.out.println(rs.getString("3"));
         }
         rs.close();
         conn.close();
  }
}

Fungsi Explode/Split pada String dengan bahasa C

Pernah tahu fungsi explode PHP atau split nya VB.NET? fungsi tersebut sangat berguna bagi kita yang hendak melakukan tokenisasi… nah, kita bisa mencobanya pada bahasa C:
#include
#include
#include

void explode(char str[100],char hasil[10][50],char dasar,int *counter1){
int i,counter2=0;
for(i=0;i<strlen(str);i++){
if(str[i] == dasar){
counter2=0;
*counter1=*counter1 + 1;
}
else{
hasil[*counter1][counter2]=str[i];
counter2++;
}
}
}

void main(){
char str[100],hasil[10][50];
int counter1=0;
printf(“masukkan kalimat : “);fflush(stdin);gets(str);
char dasar = ‘ ‘;
explode(str,hasil,dasar,&counter1);
for(int i=0;i<=counter1;i++){
printf(“%s\n”,hasil[i]);
}
}
Nah silahkan mencoba…

Penggunaan Struct

Bahan untuk Kelas Algo dan Strukdat C++

  • Struct adalah tipe data bentukan yang berisi kumpulan variabel-variabel
    yang bernaung dalam satu nama yang sama dan memiliki kaitan satu
    sama lain.
  • Berbeda dengan array hanya berupa kumpulan variabel yang bertipe data
    sama, struct bisa memiliki variabel-variabel yang bertipe data sama atau
    berbeda, bahkan bisa menyimpan variabel yang bertipe data array atau
    struct itu sendiri.
  • Variabel-variabel yang menjadi anggota struct disebut dengan elemen
    struct.

Bentuk umum dari struct:

typedef struct{
   tipe_data <nama_var>;
   tipe_data <nama_var>;
   .... }

Struct bisa diumpamakan sebagai sebuah obyek, misalnya: obyek Mahasiswa. Struct Mahasiswa memiliki property atau atribut atau variabel yang melekat padanya:

  • NIM misal karakter sejumlah 8
  • Nama yaitu karakter
  • IPK yaitu bilangan pecahan

Continue reading