Rabu, 25 Mei 2011

Northwest Corner Aplication

Sekilas NorthWest Corner Method

Metode NorthWest Corner (NWC) adalah salah satu metode transportasi yang paling mudah dilakukan, tetapi hasilnya belum tentu optimal. Dalam NWC diasumsikan tiap lokasi sumber dan lokasi tujuan diurutkan dari sisi kiri ke kanan dan dari atas ke bawah dalam peta data matriks. Cara penghitungan biaya transportasi dengan menggunakan metode NWC sesuai dengan namanya dimulai dari sisi kiri atas, kemudian bergerak ke kiri atau ke bawah sesuai dengan kapasitas produksi sumber (supply) dan atau permintaan tujuan (demand).

Aturan yang berlaku pada metode NWC ini ialah sebagai berikut :

1. Menghabiskan persediaan di tiap baris sebelum bergerak menuju ke baris selanjutnya yang berada di bagian bawahnya.

2. Memenuhi syarat permintaan di tiap kolom sebelum bergerak menuju ke kolom selanjutnya yang berada di sebelah kanannya.

3. Melakukan cek agar semua persediaan dan permintaan sesuai jumlahnya.


Cara Pemakaian Aplikasi dan Tampilan

Aplikasi NWC ini dibuat dengan menggunakan bahasa java melalui Neatbeans 6.8 berbasis console sehingga diharapkan spesifikasi komputer yang akan dipakai bisa menjalankan program Neatbeans 6.8. Dan aplikasi NWC ini menggunakan 2 file java dimana terdapat satu class NorthWestCorner.java dengan class Main.java untuk menunjang jalannya program aplikasi pencarian biaya optimal minimum dalam pengiriman barang dari suatu lokasi ke lokasi yang lain.

Cara pemakaian aplikasi ini pindahkan folder TRO yang sudah disediakan ke dalam NetBeansProjects yang ada pada drive komputer berisi Neatbeans 6.8, kemudian jalankan aplikasi.



Kemudian kita masukkan nilai bobot/cost dari setiap lokasi matriks dan tampilannya akan seperti berikut.




Setelah itu kita masukkan juga nilai dari supply dan demand dimana jikalau terjadinya suatu dummy dalam kasus yang ada, maka input dummy tersebut secara manual.




Kemudian selanjutnya akan muncul tampilan dari matriks yang berisi data-data yang telah dimasukkan tadi beserta nilai pada setia supply dan demand.




Tampilan tersebut akan terus terlihat seiring dengan proses yang terdapat pada alokasi matriks hingga proses selesai dan ditemukan solusi biaya optimal minimum dari kasus yang diberikan.





Untuk source code sendiri bisa dilihat sebagai berikut :

NorthWestCorner.java

/*

* TRO - Kurniawan 0800427

* 22 Mei 2011

* NorthWest Corner

* Ilmu Komputer

* Universitas Pendidikan Indonesia

*/

package tro;

import java.io.*;

//import org.omg.PortableInterceptor.SYSTEM_EXCEPTION;

/**

*

* @author Kurniawan

*/

public class NorthWestCorner {


public static int size = 20;//besar matriks total

public static int bobot[][] = new int [size][size];//instansiasi matriks buat bobotnya

public static int solusi[][] = new int [size][size];//instansiasi matriks buat solusinya

public static int supply[] = new int [size];//instansiasi matriks supply

public static int demand[] = new int [size];//instansiasi matriks demand

public static int sumber, tujuan; //variable untuk menyimpan sumber dan tujuan

public static BufferedReader b=new BufferedReader(new InputStreamReader(System.in));


public NorthWestCorner(){

//konstruktor

}

public static void gambargaris(){//untuk memberikan garis batas

int i;

int end=(8*(sumber+2))+1;

System.out.printf("\n");

for(i=0;i<end;i++)

System.out.printf("-");

}

public static void tampil (int arr[][], int row, int col){

//menampilkan proses yang sedang berlangsung

int g,k;

System.out.printf("\n\t\tTujuan");

gambargaris();

System.out.printf("\nSumber\t|");


for (k=0;k<col;k++)

System.out.printf(" D%d\t|",k+1);

System.out.printf(" Supply");

gambargaris();

for (g=0;g<row;g++){

System.out.printf("\n S%d \t|",g+1);

for(k=0; k<col; k++)

System.out.printf(" %d\t|",arr[g][k]);

System.out.printf(" %d",supply[g]);

}

gambargaris();

System.out.printf("\nDemand\t|");

for(k=0; k<col; k++)

System.out.printf(" %d\t|",demand[k]);

gambargaris();

}

public static void masukan(int row,int col) throws IOException{

//untuk proses masukan data

int g, k;

for(g=0;g<row; g++)

{

for(k=0;k<col;k++)

{

System.out.printf("\nMasukan Bobot[%d][%d]: ",g+1,k+1);

bobot[g][k]=Integer.parseInt(b.readLine());

}

}

System.out.printf("\n\nMasukan Jumlah Supply: \n");

for(g=0; g<row; g++)

{

System.out.printf("\nSupply[%d]: ",g+1);

supply[g]=Integer.parseInt(b.readLine());

}

System.out.printf("\n\nMasukan Jumlah Demand: \n");

for(k=0; k<col; k++)

{

System.out.printf("\nDemand[%d]: ",k+1);

demand[k]=Integer.parseInt(b.readLine());

}

}

public static int alokasi(int sumber, int tujuan)throws IOException{

//untuk proses alokasi matriks data

int g=0;

int k=0;

int total_biaya=0;

while(g<sumber && k<tujuan){

if (supply[g] < demand[k]){

solusi[g][k] = supply[g];

demand[k] -= supply[g];

supply[g] = 0;

total_biaya += (bobot[g][k] * solusi[g][k]);

g++;

}else{

solusi[g][k]=demand[k];

supply[g] -= demand[k];

demand[k] = 0;

total_biaya += (bobot[g][k] * solusi[g][k]);

k++;

}

tampil(bobot,sumber,tujuan);

System.out.printf("\n\n\n\nAlokasi Matriks:\n\n");

tampil(solusi,sumber,tujuan);

b.readLine();

}

return total_biaya;

}

}

Dan untuk source code Main.java ialah sebagai berikut:

/*

* TRO - Kurniawan 0800427

* 22 Mei 2011

* NorthWest Corner

* Ilmu Komputer

* Universitas Pendidikan Indonesia

*/

package tro;

import java.io.*;

/**

*

* @author Kurniawan

*/

public class Main {

public static int sumber, tujuan;

public static int total_biaya;

static BufferedReader b=new BufferedReader(new InputStreamReader(System.in));


public Main()

{

header();

}

void header()

{

//header

System.out.printf("\n***************************************\n");

System.out.printf("\nTugas Besar TRO\n");

System.out.printf("Ilmu Komputer\n");

System.out.printf("Universitas Pendidikan Indonesia 2011\n");

System.out.printf("Aplikasi Transportasi NorthWest Corner\n");

System.out.printf("\n******************************************************\n");

System.out.printf("\nDisusun oleh:\n");

System.out.printf("\n***************************************\n");

System.out.printf("\nKurniawan 0800427\n");

System.out.printf("\n***************************************\n");

}


static void metode(int sumber,int tujuan)throws IOException{

System.out.println("\nMetode NorthWest Corner");


//proses

NorthWestCorner n=new NorthWestCorner();

NorthWestCorner.masukan(sumber,tujuan);

NorthWestCorner.tampil(NorthWestCorner.bobot,sumber,tujuan);

System.out.printf("\n\n\n\nAlokasi Matriks:\n\n");

NorthWestCorner.tampil(NorthWestCorner.solusi,sumber,tujuan);

b.readLine();

//biaya minimum

total_biaya=NorthWestCorner.alokasi(sumber,tujuan);

System.out.printf("\n\n\n\t\tBiaya Minimum: Rp.%d",total_biaya);

b.readLine();

}

public static void main(String[] args) throws IOException{

// TODO code application logic here

Main m=new Main();

//inputan

System.out.printf("\n\nMasukan Banyaknya Daerah Sumber: ");

sumber=Integer.parseInt(b.readLine());

System.out.printf("\n\nMasukan Banyaknya Daerah Tujuan: ");

tujuan=Integer.parseInt(b.readLine());

Main.metode(sumber,tujuan);

}

}

Kesimpulan

Setelah melalui beberapa proses dalam aplikasi NorthWest Corner ini kita dapat menemukan solusi dari biaya optimal minimum yang kita butuhkan dalam suatu transaksi pengiriman barang dari suatu lokasi ke lokasi lainnya. Namun hasil yang diberikan melalui NWC ini bukanlah hasil yang begitu sempurna, tergantung dari kebutuhan yang kita inginkan. Ada banyak metode yang dapat dipakai dalam media pemecahan masalah transportasi ini diantaranya least cost, vogel dan salah satunya NorthWest Corner ini.

Tentang Penyusun

Penyusun ialah seorang mahasiswa yang tenhttp://www.blogger.com/img/blank.gifgah menuntut ilmu di sebuah perguruan tinggi negeri di kota Bandung. Universitas Pendidikan Indonesia ialah tempat penyusun menuntut ilmu, dan di sanalah penyusun mendapatkan sebuat tugas aplikasi NorthWest Corner ini guna menunjang pembelajaran mata kuliah TRO.

Data diri penyusun,

Nama : Kurniawan

NIM : 0800427

Jurusan : Ilmu Komputer C. UPI Bandung

Tempat, tanggal lahir : Bandung, 16 Oktober 1990


Untuk aplikasi dan document selengkapnya silahkan klik disini.

Sebagai tambahan saja, apabila kita ingin menjalankan aplikasi ini melaui cmd, silahkan lakukan perintah seperti berikut sesuai dengan apa yang diberitahukan oleh program neatbeans (misal):

To run this application from the command line without Ant, try:
java -jar "C:\Users\Kurniawan\Documents\NetBeansProjects\TRO\dist\TRO.jar"

Rabu, 08 Desember 2010

File System Pada Windows dan LINUX




Akhirnya nulis kembali nih di blog, pada edisi kali ini hal yang akan diusut-usut ialah mengenai beberapa file system yang sering kita jumpai dikala kita menggunakan komputer. Disini akan sedikit dijelaskan mengenai beberapa file system yang ada di sistem operasi windows dan linux.
Pada sistem operasi windows, kita akan disuguhi tiga file system yang sampai saat ini dimiliki oleh windows. File system tersebut ialah FAT 16, FAT 32, dan NTFS.

•FAT 16 (File Allocation Table 16)

Sebenarnya sebelum FAT16, telebih dahulu sistem file di MS-DOS FAT12, tapi karena banyak kekurangan makanya muncul FAT16, FAT16 sendiri sudah dikenalkan oleh MS-DOS pada tahun 1981. Awalnya, sistem ini didesain umtuk mengatur file fi floppy disk, dan sudah mengalami beberapa kali perubahan, sehingga digunakan untuk mengatur file harddisk. Keuntungan FAT16 adalah kompatibel hampir di semua sistem operasi, baik Windows 95/98/ME, OS/2, Linux dan bahkan Unix. Namun dibalik itu semua masalah paling besar dari FAT16 adalah mempunyai kapasitas tetap jumlah cluster dalam partisi, jadi semakin besar harddisk, maka ukuran cluster akan semakin besar. selain itu kekurangan FAT16 salah satunya tidak mendukung kompresi, enkripsi dan kontrol akses dalam partisi.

•FAT 32 (File Allocation Table 32)
Setelah FAT 16 dikenali oleh para pengguna sistem operasi, muncul kembali file system berikutnya yang diberi nama FAT 32. FAT32 mulai di kenal pada sistim Windows 95 SP2, dan merupakan pengembangan lebih dari FAT16. FAT32 menawarkan kemampuan menampung jumlat cluster yang lebih besar dalam partisi. Selain itu juga mengembangkan kemampuan harddisk menjadi lebih baik dibanding FAT16. Namun FAT32 memiliki kelemahan yang tidak di miliki FAT16 yaitu terbatasnya Operating System yang bisa mengenal FAT32. Tidak seperti FAT16 yang bisa di kenal oleh hampir semua system operasi, namun itu bukan masalah apabila anda menjalankan FAT32 di Windows XP karena Windows XP tidak peduli file sistim apa yang di gunakan pada partisi.

•NTFS (New Technology File System)
NTFS di kenalkan pertama pada Windows NT dan merupakan file system yang benar benar berbeda di banding teknologi FAT. NTFS menawarkan security yang jauh lebih baik , kompresi file , cluster dan bahkan support enkripsi data. NTFS merupakan file system standar untuk Windows Xp dan apabila anda melakukan upgrade Windows biasa anda akan di tanyakan apakah ingin mengupgrade ke NTFS atau tetap menggunakan FAT. Namun jika anda sudah melakukan upgrade pada Windows Xp dan tidak melakukan perubahan NTFS itu bukan masalah karena anda bisa mengkonversinya ke NTFS kapanpun. Namun ingat bahwa apabila anda sudah menggunakan NTFS akan muncul masalah jika ingin downgrade ke FAT tanpa kehilangan data.
Pada Umumnya NTFS tidak kompatibel dengan Operating System lain yang terinstall di komputer yang sama (Double OS) bahkan juga tidak terdetek apabila anda melakukan StartUp Boot menggunakan floopy. Untuk itu sangat disarankan kepada anda untuk menyediakan partisi yang kecil saja yang menggunakan file system FAT di awal partisi. Partisi ini dapat anda gunakan untuk menyimpan Recovery Tool apabila mendapat masalah.

Sedangkan pada sistem operasi LINUX kita akan menjumpai tipe file system seperti Ext 2, Ext 3, Ext 4. Sekarang kita akan bahas mengenai file system pada LINUX seperti yang sudah dijabarkan tadi. Ok kita lanjutkan membahas file system pada LINUX ini, untuk lebih jelasnya kita baca-baca aja keterangan dibawah ini.

•Ext 2 (2rd Extended)
EXT2 adalah file sistem yang ampuh di linux. EXT2 juga merupakan salah satu file sistem yang paling ampuh dan menjadi dasar dari segala distribusi linux. Pada EXT2 file sistem, file data disimpan sebagai data blok. Data blok ini mempunyai panjang yang sama dan meskipun panjangnya bervariasi diantara EXT2 file sistem, besar blok tersebut ditentukan pada saat file sistem dibuat dengan perintah mk2fs. Jika besar blok adalah 1024 bytes, maka file dengan besar 1025 bytes akan memakai 2 blok. Ini berarti kita membuang setengah blok per file.
EXT2 mendefinisikan topologi file sistem dengan memberikan arti bahwa setiap file pada sistem diasosiasiakan dengan struktur data inode. Sebuah inode menunjukkan blok mana dalam suatu file tentang hak akses setiap file, waktu modifikasi file, dan tipe file. Setiap file dalam EXT2 file sistem terdiri dari inode tunggal dan setiap inode mempunyai nomor identifikasi yang unik. Inode-inode file sistem disimpan dalam tabel inode. Direktori dalam EXT2 file sistem adalah file khusus yang mengandung pointer ke inode masing-masing isi direktori tersebut.

•Ext 3 (3rd Extended)
EXT3 adalah peningkatan dari EXT2 file sistem. Peningkatan ini memiliki beberapa keuntungan, diantaranya:

1.Setelah kegagalan sumber daya, “unclean shutdown”, atau kerusakan sistem,
EXT2 file sistem harus melalui proses pengecekan dengan program e2fsck.
Proses ini dapat membuang waktu sehingga proses booting menjadi sangat lama,
khususnya untuk disk besar yang mengandung banyak sekali data. Dalam proses
ini, semua data tidak dapat diakses.

Jurnal yang disediakan oleh EXT3 menyebabkan tidak perlu lagi dilakukan
pengecekan data setelah kegagalan sistem. EXT3 hanya dicek bila ada kerusakan
hardware seperti kerusakan hard disk, tetapi kejadian ini sangat jarang.
Waktu yang diperlukan EXT3 file sistem setelah terjadi “unclean shutdown”
tidak tergantung dari ukuran file sistem atau banyaknya file, tetapi
tergantung dari besarnya jurnal yang digunakan untuk menjaga konsistensi.
Besar jurnal default memerlukan waktu kira-kira sedetik untuk pulih,
tergantung kecepatan hardware.

2.Integritas data
EXT3 menjamin adanya integritas data setelah terjadi kerusakan atau “unclean
shutdown”. EXT3 memungkinkan kita memilih jenis dan tipe proteksi dari data.
3.Kecepatan
Daripada menulis data lebih dari sekali, EXT3 mempunyai throughput yang lebih
besar daripada EXT2 karena EXT3 memaksimalkan pergerakan head hard disk. Kita
bisa memilih tiga jurnal mode untuk memaksimalkan kecepatan, tetapi
integritas data tidak terjamin.
4.Mudah dilakukan migrasi
Kita dapat berpindah dari Ext2 ke sistem Ext3 tanpa melakukan format ulang.

•Ext 4 (4rd Extended)
Ext4 dirilis secara komplit dan stabil berawal dari kernel 2.6.28 jadi apabila distro anda yang secara default memiliki versi kernel tersebuat atau di atas nya otomatis system anda sudah support ext4 (dengan catatan sudah di include kedalam kernelnya) selain itu versi e2fsprogs harus mengunakan versi 1.41.5 atau lebih.
Apabila anda masih menggunakan fs ext3 dapat mengkonversi ke ext4 dengan beberapa langkah yang tidak terlalu rumit.
Keuntungan yang bisa didapat dengan mengupgrade filesystem ke ext4 dibanding ext3 adalah mempunyai pengalamatan 48-bit block yang artinya dia akan mempunyai 1EB = 1,048,576 TB ukuran maksimum filesystem dengan 16 TB untuk maksimum file size nya,Fast fsck,Journal checksumming,Defragmentation support.

Segitu aja dulu deh yang ditulis pada kesempatan kali ini, terimakasih atas perhatian dan partisipasi serta apresiasi.

referensi : http://firstiawan.student.fkip.uns.ac.id/2010/08/28/file-format-sistem-windows/

powered by : keykaka.blogspot.com