Tampilkan postingan dengan label Pemrograman. Tampilkan semua postingan
Tampilkan postingan dengan label Pemrograman. Tampilkan semua postingan

Kamis, 03 Maret 2011

Program Metode Simplex

Program METODE_SIMPLEX;

USES CRT;
TYPE
ARRAY_REAL = ARRAY [1..100] OF REAL;
ARRAY_INT = ARRAY [1..100] OF INTEGER;
VAR_REC = RECORD
Kolom : INTEGER;
Baris : INTEGER;
END;

VAR
Cj : ARRAY [1..100] OF REAL;
Var_Bas : ARRAY [1..100] OF ARRAY_REAL;
Zj : ARRAY [1..100] OF REAL;
Cj_Zj : ARRAY [1..100] OF REAL;
Temp : ARRAY [1..100] OF REAL;
Var_Koor : ARRAY [1..100] OF VAR_REC;
Keuntungan : ARRAY [1..100] OF REAL;
var_basic,var_nonbasic,fungsi_kendala : INTEGER;
brs,kol :INTEGER;
index_kuantitas : integer;
Index_var_koor : integer;
Z : REAL;
count_iterasi : INTEGER;

PROCEDURE BikinGaris(x,y,count:INTEGER;kar:CHAR);
VAR
i:integer;
BEGIN
FOR i:=0 TO count-1 DO
BEGIN
GOTOXY(x+i,y);
WRITE(kar);
END;
END;

PROCEDURE Cetak(ke:integer);
VAR i,j:INTEGER;
BEGIN
clrscr;
WRITELN('Iterasi Tabel Ke-',ke);
brs:=WHEREY;
BikinGaris(1,brs,79,'=');
GOTOXY(1,brs+1);WRITE('Cj');
FOR i:=1 TO var_basic DO
BEGIN
GOTOXY(8*i,brs+1);
WRITE(Cj[i]:1:2);
END;
GOTOXY(1,brs+2);WRITE('VarBsc');
kol:=0;
FOR i:=1 TO var_nonbasic DO
BEGIN
inc(kol,8);
GOTOXY(kol,brs+2);
WRITE('X',i);
END;
FOR i:=1 TO fungsi_kendala DO
BEGIN
inc(kol,8);
GOTOXY(kol,brs+2);
WRITE('S',i);
END;
inc(kol,8);
GOTOXY(kol,brs+2);WRITE('Kuantitas');
BikinGaris(1,brs+3,79,'-');

FOR i:=1 TO fungsi_kendala DO
BEGIN
GOTOXY(1,brs+i+3);WRITE('S',i);
kol:=0;
For j:=1 TO var_basic DO
BEGIN
inc(kol,8);
GOTOXY(kol,brs+i+3);WRITE(Var_Bas[i,j]:1:2);
END;
inc(kol,8);
GOTOXY(kol,brs+i+3);WRITE(Var_Bas[i,j+1]:1:2);
END;
brs:=brs+i+4;
BikinGaris(1,brs,79,'-');
GOTOXY(1,brs+1);WRITE('Zj');
GOTOXY(1,brs+2);WRITE('Cj-Zj');

FOR i:=1 TO var_basic DO
BEGIN
GOTOXY(8*i,brs+1);WRITE(Zj[i]:1:2);
GOTOXY(8*i,brs+2);WRITE(Cj_Zj[i]:1:2);
END;
BikinGaris(1,brs+3,79,'-');
GOTOXY(1,brs+4);WRITE('Z');
GOTOXY(8,brs+4);WRITE(Z:1:2);
BikinGaris(1,brs+5,79,'=');
WRITELN;WRITELN('Press Any keys to continues....!');
END;

FUNCTION FindMaxMinCj_Zj : INTEGER;
VAR
i,max:Integer;
temp:real;
BEGIN
i:=1;
temp:=0.0;
max:=0;
Repeat
if(Cj_Zj[i]>temp) then
Begin
temp:=Cj_Zj[i];
max:=i;
End;
inc(i);
Until i>=var_basic;
FindMaxMinCj_Zj:=max;
END;




FUNCTION FindMinBasic:INTEGER;
VAR
min,i:integer;
awal:real;
BEGIN
min:=1;
awal:=Temp[1];
FOR i:=2 TO fungsi_kendala DO
BEGIN
IF Temp[i]0) DO
BEGIN

FOR i:=1 TO fungsi_kendala DO
BEGIN
If Var_Bas[i,getKol]<>0 Then
Temp[i]:=Var_Bas[i,index_kuantitas]/Var_Bas[i,getKol]
else
Temp[i]:=1.7e38;
END;
getBrs:=FindMinBasic;
elemen:=Var_Bas[getBrs,getKol];

FOR i:=1 TO var_basic+1 DO
BEGIN
Var_Bas[getBrs,i]:=Var_Bas[getBrs,i]/elemen;
END;

FOR i:=1 TO fungsi_kendala DO
BEGIN
IF i=getBrs THEN Continue;
elemen:=Var_Bas[i,getKol];
FOR j:=1 TO var_basic+1 DO
Var_Bas[i,j]:=Var_Bas[i,j]-(elemen*Var_Bas[getBrs,j]);
END;
If getKol<>getKol_temp then INC(index_var_koor);
Var_Koor[index_var_koor].Kolom:=getKol;
Var_Koor[index_var_koor].Baris:=getBrs;
getKol_Temp:=getKol;
IsiKeuntunganVarBasic;

For i:=1 TO var_basic DO
BEGIN
Zj[i]:=0;
For j:=1 TO fungsi_kendala DO
Zj[i]:=Zj[i]+(Var_Bas[j,i]*Keuntungan[j]);
Cj_Zj[i]:=Cj[i]-Zj[i];
END;
Z:=0;

For i:=1 TO fungsi_kendala DO
Z:=Z+(Var_Bas[i,index_kuantitas]*Keuntungan[i]);
inc(count_iterasi);
Cetak(count_iterasi);
readln;
getKol:=FindMaxMinCj_Zj;
END;
WRITELN('Hasil Maksimasi Dari Iterasi Ini Adalah :');

For i:=1 To fungsi_kendala DO
Begin
For j:=1 to index_var_koor DO
begin
if i=Var_Koor[j].Baris Then
begin
WRITELN('HasilX',Var_Koor[j].Kolom,'=',Var_Bas[i,index_kuantitas]:1:2);
end;
End;
End;
WRITELN('Dengan Hasil Keuntungan Maksimal = ',Z:1:2);
WRITELN('Proses Maksimalisasi Selesai...................');
END;

PROCEDURE Input;
VAR
i,j:integer;
BEGIN
CLRSCR;
WRITELN;
WRITE('Masukan Jumlah Variabel Non Basic :');READLN(var_nonbasic);

FOR i:=1 TO var_nonbasic DO
BEGIN
WRITE('Input Nilai Variabel X',i,' = ');READLN(Cj[i]);
END;
WRITE('Masukan Jumlah Fungsi KENDALA : ');READLN(fungsi_kendala);
{Mengisi Cj dengan variabel non basic (S)}

FOR i:=1 TO fungsi_kendala DO
Cj[var_nonbasic+i]:=0;
var_basic:=fungsi_kendala+var_nonbasic;



FOR i:=1 TO fungsi_kendala DO
BEGIN
WRITELN('Mengisi Variabel S',i,':');
FOR j:=1 TO var_basic DO
BEGIN
WRITE('Input Nilai S',i,' kolom ke-',j,' = ');
READLN(Var_Bas[i,j]);
END;
WRITE('Input Nilai Kuantitasnya = ');READLN(Var_Bas[i,j+1]);
END;
index_kuantitas:=j+1;

FOR i:=1 To var_basic DO
BEGIN
Zj[i]:=0;
Cj_Zj[i]:=Cj[i];
END;
END;

var
tombol:char;
BEGIN
Repeat
index_var_koor:=0;
count_iterasi:=1;
INPUT;
Proses;
write('Anda ingin Input Lagi [Y/T] : ');
readln(tombol);
until tombol in ['T','t'];
End.




Lihat dari contoh soal no 1, untuk memasukkan variable, koefisien fungsi objektif, koefisien fungsi kendala. (Lihat tabel simpleks untuk pengisian)

Masukan Jumlah Variabel Non Basic : 3
Input Nilai Variabel X1 = 1
Input Nilai Variabel X2 = 9
Input Nilai Variabel X3 = 1
Masukan Jumlah Fungsi KENDALA : 2
Mengisi Variabel S1:
Input Nilai S1 kolom ke-1 = 1
Input Nilai S1 kolom ke-2 = 2
Input Nilai S1 kolom ke-3 = 3
Input Nilai S1 kolom ke-4 = 1
Input Nilai S1 kolom ke-5 = 0
Input Nilai Kuantitasnya = 9
Mengisi Variabel S2:
Input Nilai S2 kolom ke-1 = 3
Input Nilai S2 kolom ke-2 = 2
Input Nilai S2 kolom ke-3 = 2
Input Nilai S2 kolom ke-4 = 0
Input Nilai S2 kolom ke-5 = 1
Input Nilai Kuantitasnya = 15


Iterasi Tabel Ke-1
=============================================================
Cj 1.00 9.00 1.00 0.00 0.00
VarBsc X1 X2 X3 S1 S2 Kuantitas
-------------------------------------------------------------------------------
S1 1.00 2.00 3.00 1.00 0.00 9.00
S2 3.00 2.00 2.00 0.00 1.00 15.00
-------------------------------------------------------------------------------
Zj 0.00 0.00 0.00 0.00 0.00
Cj-Zj 1.00 9.00 1.00 0.00 0.00
-------------------------------------------------------------------------------
Z 0.00
=============================================================
Press Any keys to continues....!


Iterasi Tabel Ke-2
=============================================================
Cj 1.00 9.00 1.00 0.00 0.00
VarBsc X1 X2 X3 S1 S2 Kuantitas
------------------------------------------------------------------------
S1 0.50 1.00 1.50 0.50 0.00 4.50
S2 2.00 0.00 -1.00 -1.00 1.00 6.00
------------------------------------------------------------------------
Zj 4.50 9.00 13.50 4.50 0.00
Cj-Zj -3.50 0.00 -12.50 -4.50 0.00
------------------------------------------------------------------------
Z 40.50
=============================================================
Press Any keys to continues....!

Hasil Maksimasi Dari Iterasi Ini Adalah :
Hasil X2 = 4.50
Dengan Hasil Keuntungan Maksimal = 40.50
Proses Maksimalisasi Selesai...................
Anda ingin Input Lagi [Y/T] :


Download selengkapnya materi SIMPLEX

Rabu, 09 Juni 2010

Bahasa Delphi

Delphi merupakan bahasa pemrograman yang sering digunakan dikalangan kampus, sebagai penunjang matakuliah pemrograman walaupun sekarang ini sudah hampir kurang diminati dengan adannya beberapa bahasa pemrograman dengan menggunakan metoda dan cara yang lebih simple dalam penggunaannya. Namun kekuatan delphi masih bisa diungulkan dengan adanya versi-versi terbaru yang telah berbasis .net.

Bahasa pemrograman delphi ini sintak dasarnya menggunakan bahasa Pascal (Object Pascal Oriented). Apabila kita sudah banyak mengenal bahasa Pascal kita tidak akan susah untuk mempelajari bahasa pemrograman delphi ini.

Basis Object Oriented Programming(OOP)dalam Delphi dapat mempermudah pengembang aplikasi dalam mebangun project yang dikelolanya.

Beberapa kelebihan bahasa programan Delphi:
1. Komponen dapat dipakai ulang dan dapat dikembangkan
Delphi mempermudah pembuatan program bagi komponen-komponen Windows seperti label, button dan bahkan dialog dan lainnya. Komponen ini dapat diatur sesuai dengan kebutuhan kita si pembuat program.

2. Dapat mengakses VBX.
Dengan Delphi kita dapat langsung mengakses komponen VBX yang sudah merupakan satu kesatuan dan dapat langsung digunakan .

3. Template Aplikasi dan template Form
Dalam Delphi telah didefinisikan template aplikasi dan template Form yang dapat dipakai untuk membuat semua form aplikasi dengan lebih cepat.

4. Lingkungan pengembang Delphi
Lingkungan yang disedia pada Delphi sangat mudah untuk digunakan dalam pengembangan aplikasi yang produktif.

5. Program terkompilasi.
Kebanyakan lingkungan pengembang visual pada windows menyatakan dapat mengkompilasi program. Namun sebenarnya mereka hanya dapat mengkompilasi sebagian program dan kemudian mengabungkan interpreter dan pcode dalam sebuah file. Dengan cara ini akan menghasilkan aplikasi dengan eksekusi yang lambat. Namun dengan pemrograman delphi output yang dihasilkannya merupakan file yang benar-benar terkompilasi tanpa interpreter dan pcode sehinga dapat berjalan lebih cepat. Program Delphi yang kecil dapat diserahkan dalam bentuk sebuah file EXE tanpa harus menyertakan file DLL.

6. Kemampuan mengakses data dalam bermacam format.
Dalam Delphi terdapat BDE ( Borland Database Engine) yang digunakan untuk mengakses format file data yang ada. BDE telah melalui beberapa tahap pengembangan, yang sebelumnyaBDE dikenal dengan ODAPI , kemudian IDAPI. Sekarang BDE sudah menjadi standar untuk akses semua jenis data yang ada saat ini. BDE juga dapat mengakses Database Client / Server seperti Sybase, SQL Server, Oracle dan Borland Interbase. Bila dibandingkan dengan microsoft ODBC , BDE lebih unggul dalam hal unjuk kerjannya, hal ini karena BDE memiliki bentuk yang lebih mendekati format database tujuannya.

Selamat... menggunakan Delphi....

Rabu, 07 April 2010

Game Suit Gajah Semut Orang pada Java

Java merupakan perangkat lunak yang di dalamnya berisi pemrograman. buat orang awam seperti saya, menggunakan pemrograman java cukup bikin otak muter” dan harus kerja mati”an dalam mengerjakan suatu program. seperti dalam hal berikut, seorang dosen yang memberi tugas “membuat game sederhana menggunakan java”,, saya aja belum paham benar bagaimana cara membuat suatu program, malah udah di suruh bikin game.
GAME SUIT namanya,,
seperti inilah bentuk rupa listingnya..
..........listening program.........

package MainSuit;
import java.io.*;
public class MainSuit {
public static void main(String[] args) {
System.out.println(”Permainan suit”);
System.out.println(”==============”);
System.out.println(”Masukkan salah satu dari 3 kemungkinan :”);
System.out.println(”J untuk Jempol”);
System.out.println(”T untuk Telunjuk”);
System.out.println(”K untuk Kelingking”);
System.out.println(” “);
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = null;
boolean inputvalid = false;
int suitKomputer = 0;
int suitUser = 0;
while (!inputvalid) {
System.out.print(”Masukkan suit Anda “);
try {
input = br.readLine();
} catch (IOException ioe) {
System.out.println(”Kesalahan IO, program berhenti”);
System.exit(1);
}
if (input.length() > 0) {
switch (input.charAt(0)) {
case ‘j’ :
case ‘J’ :
suitUser = 0;
inputvalid = true;
break;
case ‘t’ :
case ‘T’ :
suitUser = 1;
inputvalid = true;
break;
case ‘k’ :
case ‘K’ :
suitUser = 2;
inputvalid = true;
break;
}
}
}
suitKomputer = (int)(Math.random()*3);
if (suitKomputer == 3) {
suitKomputer = 2;
}
switch (suitKomputer) {
case 0:
System.out.println(”Suit komputer = Jempol”);
switch (suitUser) {
case 0:
System.out.println(”Seri”);
break;
case 1:
System.out.println(”Anda kalah”);
break;
case 2:
System.out.println(”Anda menang”);
break;
}
break;
case 1:
System.out.println(”Suit komputer = Telunjuk”);
switch (suitUser) {
case 0:
System.out.println(”Anda menang”);
break;
case 1:
System.out.println(”Seri”);
break;
case 2:
System.out.println(”Anda kalah”);
break;
}
break;
case 2:
System.out.println(”Suit komputer = Kelingking”);
switch (suitUser) {
case 0:
System.out.println(”Anda kalah”);
break;
case 1:
System.out.println(”Anda menang”);
break;
case 2:
System.out.println(”Seri”);
break;
}
break;
}
}
}
..........akhir listening........

Minggu, 01 November 2009

LA GIMP

1. Apa yang anda ketahui tentang GIMP?

Gimp merupakan singkatan dari GNU Image Manipulation Program -- Gimp adalah editor foto dan grafis berbasis opensource yang paling populer, Gimp awalnya dibuat berbasis Linux -- saat ini Gimp tersedia untuk platform lain seperti Windows dan Machintosh. Gimp merupakan image editor alternatif selain Adobe Photoshop. Gimp menggunakan X server, basis dari antarmuka grafis yang tersedia hanya pada Linux, dan menggunakan GTK yang merupakan akronim GIMP Toolkit. Terima kasih untuk gtk yang berjalan di KDE, GNOME dan banyak desktop lainnya.

2. Sebutkan elemen-elemen pada GIMP!

• Jendela dialog the GIMP
• Jendela tool option
• Jendela Layers, Chanels, Paths
• Jendela brush selection
• Jendela Pattern dan Gradient Selection
• Jendela dialog Tip of the day

Rabu, 21 Oktober 2009

Pemrograman Bahasa C dengan Turbo C

Bahasa C merupakan salah satu bahasa pemrograman yang sangat populer di mata para pakar dunia komputer, terutama di kalangan pendidikan, karena bahasa C dianggap sebagai bahasa yang memiliki banyak keunnggulan dibanding bahasa yang lain. Dilihat dari sisi sintaksnya Bahasa C sangat mudah dipelajari baik bagi kalangan pelajar/mahasiswa maupun kalangan masyarakat umum, dan dari segi kecepatan [...]