Di postingan sebelumnya saya pernah menjelaskan tentang LDAP. Kali ini saya mencoba memanfaatkan LDAP ke dalam project yang saya kembangkan. Saya menggunakan Spring LDAP sebagai frameworknya, Apache Directory Server sebagai server untuk LDAP dan Apache Directory Studio yang merupakan plugins di eclipse (IDE yang saya gunakan) untuk editor LDIF. Berikut ini file2 yang diperlukan.

Kelas LDAPAccessor berguna untuk menangani kerja LDAP.

public class LDAPAccessor {
 private LdapTemplate ldapTemplate;

public boolean authenticate(String username, String password) {
 LdapContextSource ctxSource = new LdapContextSource();
 ctxSource.setUrl(PropertyLooker.get("ldap.url"));
 ctxSource.setUserName(buildDn(username) + "," + PropertyLooker.get("ldap.base"));
 ctxSource.setPassword(password);
 ctxSource.setPooled(false);
 System.out.println(buildDn(username) + "," + PropertyLooker.get("ldap.base"));
 try {
 ctxSource.afterPropertiesSet();
 ctxSource.getReadWriteContext();
 return true;
 } catch (Exception e) {
 System.out.println(e);
 return false;
 }
 }

@Override
 public void update(User user) {
 super.update(user);

Attributes personAttributes = new BasicAttributes();
 BasicAttribute personBasicAttribute = new BasicAttribute("objectclass");
 personBasicAttribute.add("inetOrgPerson");
 personBasicAttribute.add("organizationalPerson");
 personBasicAttribute.add("person");
 personBasicAttribute.add("top");
 personAttributes.put(personBasicAttribute);
 personAttributes.put("cn", user.getUsername());
 personAttributes.put("uid", user.getUsername());
 personAttributes.put("givenname", user.getName().getFirst());
 personAttributes.put("sn", user.getName().getLast());
 personAttributes.put("userPassword", new StringUtils().decodeBase64(user.getPassword()));
 ldapTemplate.rebind(buildDn(userEdited), null, personAttributes);
 }

public String buildDn(String username){
 return PropertyLooker.get("ldap.bind.filter").replaceAll("%s", username);
 }

public String buildDn(User user){
 return buildDn(user.getUsername());
 }

public void setLdapTemplate(LdapTemplate ldapTemplate) {
 this.ldapTemplate = ldapTemplate;
 }

}

Method authenticate() akan bekerja pada saat melakukan autentikasi dalam halaman login. Sedangkan method update(User user) bekerja pada saat mengedit detail dari atribut dalam LDAP, misalnya yang saya gunakan disini adalah cn, uid, givername, sn, dan userPassword. Untuk atribut uid harus diisi sesuai dengan username di dalam database.

Konfigurasi pada applicationContext-LDAP.xml yang saya gunakan sebagai berikut.

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
 <bean id="contextSource">
 <property name="url" value="ldap://localhost:10389" />
 <property name="base" value="ou=users,ou=system" />
 <property name="userName" value="uid=admin,ou=system" />
 <property name="password" value="secret" />
 </bean>
 <bean id="ldapTemplate" class="org.springframework.ldap.LdapTemplate">
 <constructor-arg ref="contextSource" />
 </bean><bean id="userAccessor" class="org.myproject.accessor.LDAPAccessor" singleton="false">
 <property name="ldapTemplate" >
 <ref bean="ldapTemplate" />
 </property>
 <property name="persistenceManager">
 <ref bean="persistenceManager" />
 </property>
</bean>

Nb: Untuk cara penambahan user dalam Directory LDAP melalui Apache Directory Studio dapat dilihat di sini.

Salah satu contoh dari “substitution cipher” adalah Caesar Cipher yang digunakan oleh Julius Caesar. Pada prinsipnya sama saja seperti ROT13, hanya saja setiap huruf digantikan dengan huruf yang berada tiga (3) posisi dalam urutan alfabet. Sebagai contoh huruf “a” digantikan dengan huruf “D” dan seterusnya.
Transformasi yang digunakan adalah seperti ini :

plain : a b c d e f g h i j k l m n o p q r s t u v w x y z
cipher: D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

Disini saya akan mengimplentasikan Caesar Cipher menggunakan kode Java.


package caesarchiper;

/**
 *
 * @author fachiem
 */
public class CaesarChiper {

    private int asciiCode;

    public String convertToChipperText(String input) {
        StringBuffer sBuffer = new StringBuffer();
        for (int i = 0; i = 'A') && (asciiCode <= 'Z') ?
                ((asciiCode - 'A' + 3) % 26 +'A') : asciiCode);

            sBuffer.append((char) asciiCode);
        }
        return sBuffer.toString();
    }

    public String convertToPlainText(String input) {
        StringBuffer sBuffer = new StringBuffer();
        for (int i = 0; i = 'A') && (asciiCode <= 'Z') ?
                ((asciiCode - 'Z' - 3) % 26 +'Z') : asciiCode);

            sBuffer.append((char) asciiCode);
        }
        return sBuffer.toString();
    }

    public static void main(String [] args){
        CaesarChiper caesarChiper = new CaesarChiper();
        System.out.println(caesarChiper.convertToChipperText("PESAN SANGAT RAHASIA"));
        System.out.println(caesarChiper.convertToPlainText("PHHW PH DIWHU WKH WRJD SDUWB"));
    }
}

Karena karakter spasi diabaikan (ketika menginputkan karakter spasi tidak perlu dirubah menjadi kode ascii), maka saya mengelompokkan sendiri karakter spasi dari karakter yang lain. Letak kodenya disini :

int cap = asciiCode & 32 ;
asciiCode &= ~cap;

ChiperText. Pada prinsipnya logika ChiperText untuk kode di atas adalah ketika kita menginputkan huruf, huruf tersebut di rubah menjadi kode ascii terlebih dahulu dan ditambahkan 3 dari posisi semulanya. Jumlah semua karakter huruf adalah 26 dan untuk ChiperText standard huruf yang dijadikan patokan adalah ‘A’, sehingga rumus yang dipakai seperti ini :

asciiCode = (asciiCode - 'A' + 3) % 26 +'A';

Rumus diatas juga berfungsi untuk mengubah huruf kecil menjadi huruf besar(UPPERCASE). Inputan hanya terbatas berupa huruf-huruf saja. Jika inputan bukan huruf , maka dianggap null (inputan kosong), sehingga kode yang dituliskan seperti ini :

asciiCode = ( (asciiCode >= 'A') && (asciiCode <= 'Z') ? ((asciiCode - 'A' + 3) % 26 +'A') : asciiCode);

PlainText. Logikanya sama seperti ChiperText, hanya saja untuk PlainText huruf yang diinputkan dikurangkan 3 dari posisi semula dan huruf yang jadi patokan adalah ‘Z’, sehingga rumus yang dipakai adalah seperti ini :

asciiCode = (asciiCode - 'Z' - 3) % 26 +'Z';

OUTPUT PROGRAM

Pada saat program dijalankan, maka yang tampil adalah seperti ini :

SHVDQ VDQJDW UDKDVLD
MEET ME AFTER THE TOGA PARTY

Pada saat mempelajari Pengamanan Sistem Jaringan, saya mendapatkan pengalaman bagaimana meng-enkripsi sebuah huruf. Sebenarnya ada banyak cara, rot13 ini merupakan salah satunya. Metode rot13 merupakan metode enkripsi yang mengubah suatu huruf menjadi huruf yang letaknya 13 posisi dari huruf semula. Misalnya ‘A’ akan berubah menjadi ‘N’ , ‘B’ berubah menjadi ‘O’, dst .Rumusnya seperti dibawah ini :

C = ROT13(input)

Jika kita ingin merubahnya ke huruf semula, yang harus dilakukan adalah melakukan proses ROT13 sebanyak 2x dari huruf awalnya.

M = ROT13(ROT13(input))

Disini saya akan menerapkan metode rot13 ke dalam sebuah program java.


package enkripsi;

/**
*
* @author fachiem
*/

public class Rot13 {

private int asciiCode;

public String convert(String input) {
StringBuffer sBuffer = new StringBuffer();
for (int i = 0; i = 'A') && (asciiCode <= 'Z') ?
((asciiCode - 'A' + 13) % 26 + 'A') : asciiCode) | cap;

sBuffer.append((char) asciiCode);
}
return sBuffer.toString();
}

    public static void main(String [] args){
        Rot13 rot13 = new Rot13();
        String input = "Kalau mau aman, pakai enkripsi bung";
        String C = rot13.convert(input);
        String M = rot13.convert(C);
        System.out.println("input = "+input);
        System.out.println("C = "+C);
        System.out.println("M = "+M);
    }

}

Symbol, tanda baca, dan spasi tidak dipertimbangkan dalam program tersebut sehingga tampilan program yang akan muncul adalah seperti ini :

untitled

1. Buatlah sebuah Project baru menggunakan Java Class Library

2. Berilah nama project tersebut TesHibernate

3. Buatlah Project baru lagi menggunakan UML kemudian pilihlah ReverseEngineered Java-Platform Model.

4. Buatlah Model Class Diagram seperti gambar berikut :

5. Blok semua Komponen Palette pada Model Diagram Class pada Project UML yang sudah kita buat, klik kanan kemudian pilihlah Generate Code.

Pilihlah untuk :

- Target Project = TesHibernate

- Source Root = Source Packages

6. Editlah Beberapa Class yang sudah di generate tersebut.

Faris.java


package   org.hibernate;

import   javax.persistence.Entity;

import   javax.persistence.Id;

import   javax.persistence.Table;

@Entity

@Table(name="fachiem")

public   class Faris{

private String kode;

private String keren;

private String ganteng;

public String getGanteng () {

return ganteng;

}

public void setGanteng (String faris) {

this.ganteng = faris;

}

public String getKeren () {

return keren;

}

public void setKeren (String faris) {

this.keren = faris;

}

@Id

public String getKode () {

return kode;

}

public void setKode (String kode) {

this.kode = kode;

}

}

Input.java


package   org.hibernate.acions;

import   org.hibernate.Faris;

import   org.hibernate.Session;

import   org.hibernate.SessionFactory;

import   org.hibernate.Transaction;

import   org.hibernate.cfg.AnnotationConfiguration;

public   class Input {

public static void main(String [] arg){

AnnotationConfiguration cfg = new   AnnotationConfiguration();

cfg.configure("Hibernate.cfg.xml");

SessionFactory sf =   cfg.buildSessionFactory();

Session sess = sf.openSession();

Transaction transaksi =   sess.beginTransaction();

Faris faris = new Faris();

faris.setKode("HSJDK");

faris.setGanteng("Yaeyalah.....");

faris.setKeren("Hohhoho... Trus   Nape??? Ngiri???");

sess.save(faris);

transaksi.commit();

sess.close();

sf.close();

}

}


Delete.java


package   org.hibernate.acions;

import   org.hibernate.Faris;

import   org.hibernate.Session;

import   org.hibernate.SessionFactory;

import   org.hibernate.Transaction;

import   org.hibernate.cfg.AnnotationConfiguration;

public   class Delete {

public static void main(String [] args){

AnnotationConfiguration cfg = new   AnnotationConfiguration();

cfg.configure("Hibernate.cfg.xml");

SessionFactory sf =   cfg.buildSessionFactory();

Session sess = sf.openSession();

Transaction transaksi =   sess.beginTransaction();

Faris faris = new Faris();

faris.setKode("HSJDK");

sess.delete(faris);

}

}


Cari.java


package   org.hibernate.acions;

import   org.hibernate.Faris;

import   java.util.ArrayList;

import   java.util.List;

import   org.hibernate.Session;

import   org.hibernate.SessionFactory;

import   org.hibernate.cfg.AnnotationConfiguration;

public   class Cari {

public static void main(String[] args)   {

AnnotationConfiguration cfg = new   AnnotationConfiguration();

cfg.configure("Hibernate.cfg.xml");

SessionFactory sf =   cfg.buildSessionFactory();

Session sess = sf.openSession();

List faris = new   ArrayList();

faris = sess.createQuery("select   f from " + Faris.class.getName() + " f").list();

for(Faris f : faris){

System.out.println(f.getGanteng()+"\t\t"+f.getKeren());

}

sess.close();

sf.close();

}

}

7. Buatlah Konfigurasi Hibernate dengan nama Hibernate.cfg.xml dan letakkan pada .

8. Buatlah database dengan nama hibernate di mysql.

9. Klik Run/Run Main Project. Bila berhasil maka tabel fachiem pada database hibernate akan terisi.

ini DFD level1 Project Pedimedi saya yang saya buat, masih bersifat sementara karena Aplikasi Pedimedi sendiri belum dilengkapi sempurna.


Gambar DFD Level 1

Module
• KRS (Order Management)
• Kuliah Online (eLearning)
• Billing System
• Scheduling
• Content Management System

Master
• Mata Kuliah
• Jurusan
• Fakultas
• Pendidikan
• Pemilihan UMPTN
• Beasiswa
• Hubungan dengan Penanggung Biaya
• Pekerjaan
• Jabatan
• Penghasilan Orang Tua
• Lokasi
• Warga Negara


Gambaran Perancangan System dalam PediMedi :

Download File

Untuk menjalankan Cimande , mula-mula kita harus menginstall eclipse terlebih dahulu.
kemudian ikuti langkah-langkah berikut ini :
1. Download Cimande SDK, kemudian extract .
2. Buka eclipse, kemudian pilih
file->import->import from workspace, akan muncul tampilan berikut ini .
cimeng merupakan nama project cimande.

3. buat database dengan nama cimande pada mysql
4
. Gunakan username/password mysql root/tulalit untuk mengakses cimande. username dan password dapat diganti pada file cimande.properties yang terletak di /src/config dan juga db.properties yang terletak di /build.
5. jalankan ant create-schema dbimport untuk membuat skema dari database cimande kemudian isikan database dengan content tersebut.
6. jalankan project
cimeng (klik kanan pada nama project kemudian pilih Run the Project As Server). tetapi sebelumnya jangan lupa untuk menginstall tomcat6.0 sebagai servernya.
——- SELAMAT MENCOBA ——–

Sumber : http://www.blueoxygen.org/wiki/index.php/Cimande:Running_from_Eclipse

Follow

Get every new post delivered to your Inbox.