Jumat, 28 Juni 2013

tugas PKG 5 : Pembuatan 4 Kubus Dengan Fungsi Translasi Rotasi & Transformasi (TRT) Yang Dapat Bergerak

Postingan kali ini tentang Tugas 5 PKG Pembuatan 4 Kubus Dengan Fungsi Translasi Rotasi & Transformasi (TRT) Yang Dapat Bergerak, tetapi dalam tugas kami kali ini kami membuatnya melalui aplikasi Basic4GL, Berikut Dibawah ini untuk selengkapnya :



dim tx#: tx#=0
dim ty#: ty#=0
dim rb#: rb#=0 
dim x#: x#=0
dim y#: y#=0
dim z#: z#=0
dim r#: r#=0 
dim key$
    
    sub kotak (l1#)
        glbegin(GL_QUADS) 
        'depan  
        glcolor3f(0,1,0.4)
        glvertex3f(0,0,0) 
        glvertex3f(l1#,0,0)
        glvertex3f(l1#,l1#,0)
        glvertex3f(0,l1#,0)
          
        'bawah
    glcolor3f(0.1,1,1)
    glvertex3f(0,0,0) 'A
    glvertex3f(l1#,0,0) 'B
    glvertex3f(l1#,0,-l1#)  'F
    glvertex3f(0,0,-l1#) 'E

    'belakang
    glcolor3f(1,1,1)
    glvertex3f(l1#,0,-l1#)  'F
    glvertex3f(0,0,-l1#) 'E
    glvertex3f(0,l1#,-l1#) 'H
    glvertex3f(l1#,l1#,-l1#) 'G
  
    'atas
    glcolor3f(1,0.1,1)
    glvertex3f(0,l1#,-l1#) 'H
    glvertex3f(l1#,l1#,-l1#) 'G
    glvertex3f(l1#,l1#,0)  'C
    glvertex3f(0,l1#/2,0) 'D

    'kanan
    glcolor3f(0.1,0.1,1)
    glvertex3f(l1#,0,0) 'B
    glvertex3f(l1#,0,-l1#/2)  'F
    glvertex3f(l1#,l1#,-l1#) 'G
    glvertex3f(l1#,l1#,0)  'C
   
    'kiri
    glcolor3f(0.1,0.5,0.1)
    glvertex3f(0,0,0) 'A
    glvertex3f(0,0,-l1#/2) 'E
    glvertex3f(0,l1#,-l1#) 'H
    glvertex3f(0,l1#,0) 'D

        
        
         glEnd()
  end sub
   
    dim d1#
    d1#=0

           while true 
     glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT)    ' Clear screen and depth buffer
     'Matrix View Point
     glLoadIdentity()                               ' Reset the current modelview matrix
     glTranslatef(0,0.0,-250.0)             ' Move left 1.5 units and into the screen 6.0
     rb# = rb# + 2      
     glrotatef(r#,x#,y#,z#)

    gltranslatef(tx#,ty#,0)
    
    if tx# > 230 then
        tx# = -230
    elseif tx# < -230 then
        tx# = 230    
    elseif ty# > 120 then
        ty# = -120 
    elseif ty# < -120 then
        ty# = 120
    endif

          glpushmatrix()
        d1#=d1#-0.1
        glrotatef(-d1#,0,0,1)
        'glTranslatef()
        kotak  (10)
      glpopmatrix()
     glTranslatef(-40,0.0,0.0)             
     'glrotatef(d1#,0,0,1)
     kotak (20)   
     
     glTranslatef(-50,0.0,0.0)             
     'glrotatef(d1#,0,0,1)
     kotak (30)   
     
     glTranslatef(-60,0.0,0.0)             
     glrotatef(d1#,0,0,1)
     kotak (40)
        
        SwapBuffers ()
        key$ = Inkey$ () 
    if key$ = "R" or key$ = "r" then 
        tx#=0: ty#=0: rb#=0: x#=0: y#=0: z#=0: r#=0
    endif
    if key$ = "X" or key$ = "x" then 
        if x# = 0 then
            x#=1
        else
            x#=0
        endif
    endif 
    if key$ = "Y" or key$ = "y" then 
        if y# = 0 then
            y#=1
        else
            y#=0
        endif
    endif 
    if key$ = "Z" or key$ = "z" then 
        if z# = 0 then
            z#=1
        else
            z#=0
        endif
    endif
    
    if ScanKeyDown (VK_PRIOR) then
        r# = r# - 0.1
    endif
    if ScanKeyDown (VK_NEXT) then
        r# = r# + 0.1
    endif
    if ScanKeyDown (VK_UP) then                           
        ty# = ty# + 0.1
    endif
    if ScanKeyDown (VK_DOWN) then
        ty# = ty# - 0.1
    endif
    if ScanKeyDown (VK_RIGHT) then
        tx# = tx# + 0.1
    endif
    if ScanKeyDown (VK_LEFT) then
        tx# = tx# - 0.1
    endif

              wend



Nah seperti itulah project yang kami buat, dan sekiranya ada yang kurang sempurna ataupun salah kami harap dapat dimaklumi, karena kami sendiri juga masih dalam tahap pembelajaran , dan jika anda mau mendownload file source code project diatas sebagai bahan referensi pembelajaran, anda dapat mendownloadnya dengan link di bawah ini :


ini source codenya : Download





Tugas PKG 2 : membuat garis sret titik,dan garis sret yang di buat di buat dari pixel (GL_poin) dengan mengunakan algoritma bresenham

Postingan kali ini tentang tugas 2 PKG Membuat Garis > Sret Titik, dan Garis Sret Yang Dibuat Dari Pixel Titik (GL_POINTS) Dengan Menggunakan Algoritma Bresenham, tetapi dalam tugas kami kali ini kami membuatnya melalui aplikasi C++, Berikut Dibawah ini untuk selengkapnya :


#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <glut.h>
#include <math.h>

void layar(void)
{
glClearColor (0.0 ,0.0, 0.0, 0.0);
glMatrixMode (GL_PROJECTION);
gluOrtho2D (0.0, 300.0, 0.0, 300.0);
}

void titik (int x, int y)
{
glBegin(GL_POINTS);
glVertex2f (x, y);
glEnd();
glFlush();
}

void bresenham(int x1, int y1, int x2, int y2)
{
 int dy = y2 - y1;
 int dx = x2 - x1;
 int stepx, stepy;

 if(dy < 0) {
 dy = -dy; stepy = -1;
 }
 else {
 stepy = 1;
 }

 if(dx < 0) {
 dx = -dx;
 stepx = -1;
 }
 else {
 stepx = 1;
 }
 dy <<= 1;
 dx <<= 1;

 titik(x1,y1);
 if (dx > dy){
 int fraction = dy - (dx >> 1);
 while (x1 != x2){
 if(fraction >= 0){
 y1 += stepy;
 fraction -= dx;
 }
 x1 += stepx;
 fraction += dy;
 titik(x1,y1);
 }
 }
 else {
 int fraction = dx - (dy >> 1);
 while (y1 != y2){
 if(fraction >= 0){
 x1 += stepx;
 fraction -= dy;
 }
 y1 += stepy;
 fraction += dx;
 titik(x1,y1);
 }
 }
}

void Garisku(void)
{
glClear (GL_COLOR_BUFFER_BIT);

glColor3f (1.0, 1.0, 1.0);
glPointSize (2.0);
//Garis Lurus
bresenham (10, 10, 165, 10);
//Garis Titik Sret Bawah
bresenham (10, 20, 20, 20);
bresenham (25, 20, 25, 20);
bresenham (30, 20, 40, 20);
bresenham (45, 20, 45, 20);
bresenham (50, 20, 60, 20);
bresenham (65, 20, 65, 20);
bresenham (70, 20, 80, 20);
bresenham (85, 20, 85, 20);
bresenham (90, 20, 100, 20);
bresenham (105, 20, 105, 20);
bresenham (110, 20, 120, 20);
bresenham (125, 20, 125, 20);
bresenham (130, 20, 140, 20);
bresenham (145, 20, 145, 20);
bresenham (150, 20, 160, 20);
//Garis Titik Sret Atas
bresenham (10, 100, 20, 95);
bresenham (25, 92, 25, 92);
bresenham (30, 90, 40, 85);
bresenham (45, 82, 45, 82);
bresenham (50, 80, 60, 75);
bresenham (65, 72, 65, 72);
bresenham (70, 70, 80, 65);
bresenham (85, 62, 85, 62);
bresenham (90, 60, 100, 55);
bresenham (105, 52, 105, 52);
bresenham (110, 50, 120, 45);
bresenham (125, 42, 125, 42);
bresenham (130, 40, 140, 35);
bresenham (145, 32, 145, 32);
bresenham (150, 30, 160, 25);
bresenham (165, 20, 165, 20);
}

int main (int argc, char** argv)
{
glutInit (&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (640, 420);
glutInitWindowPosition (0, 0);
glutCreateWindow ("Tugas Algoritma Bresenham");
layar();
glutDisplayFunc (Garisku);
glutMainLoop();
return 0;
}






 Nah seperti itulah project yang kami buat, dan sekiranya ada yang kurang sempurna ataupun salah kami harap dapat dimaklumi, karena kami sendiri juga masih dalam tahap pembelajaran , dan jika anda mau mendownload file source code project diatas sebagai bahan referensi pembelajaran, anda dapat mendownloadnya dengan link di bawah ini :

ini source codenya : download





Tugas PKG 4 :membuat lingkaran yang berawal dari pixel titik (GL_POIN)

di sini kami kelompok 3 akan memposttingkan tugas pkg 4 dimana membuat lingkara yang berawal dari pixel titik (GL_POIN) dimana dengan menggunakan basic4GL




                                  Berikut Untuk Source Codenya dengan mengunakan basic4GL






glMatrixMode(gl_Projection)
glPushMatrix()
glLoadIdentity()
glOrtho(0,WindowWidth(),WindowHeight(),0,-1,1)
glMatrixMode(gl_ModelView)
glPushMatrix()
glLoadIdentity()
glDisable(gl_depth_test)

dim Angle#
dim Radius#
dim CircleX#
dim CircleY#
dim X#
dim Y#

CircleX#=300
CircleY#=250
Radius#=100

for Angle# = 1 to 380
X# = CircleX# + CosD(Angle#) * Radius#
Y# = CircleY# + SinD(Angle#) * Radius#

glBegin(GL_POINTS)
glVertex2f(X#, Y#)
glEnd()
next
SwapBuffers()





code lingkara dengan basic4gl : Disini

Minggu, 12 Mei 2013

Objeck ellips degan java ~ Sholichin ' blog

Objeck ellips degan java


Shob tolong bantuanya klw ada yang salah mohon kasih kritik dan saran, ini tugas pemograman grafis
Source codenya seperti berikut :

    Pertama kita membuat class untuk garis.
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Tugas2;

import Pbo 1.*;
import java.awt.Graphics;

/**
 *
 * @author JC
 */
public class Garis {
 
    public void Garisku (Graphics g, int x0, int y0, int x1, int y1){
        int dx,dy,steps;
        int x_tambah,y_tambah,x,y;
                           
        dx= x1-x0;
        dy= y1-y0;    
               
        if (Math.abs(dx) > Math.abs(dy)){
            steps = Math.abs(dx);
        }
        else{
            steps = Math.abs(dy);  
        }
        x_tambah = dx / steps;
        y_tambah = dy / steps;
                x=x0;
                y=y0;
                       
                g.fillRect(x, y, 1, 1);
        for (int k=10; k< steps ;k++){
            x += x_tambah;
            y += y_tambah;
         
                        g.fillRect(x, y, 1, 1);
        }            
       
    }
   
}


Lalu Kemudian membuat class ellips
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Pbo 2;

import java.awt.Graphics;

/**
 *
 * @author JC
 */
public class Ellips {
    private int Rx2, Ry2, x, y, twoRx2, twoRy2, px, py, p;
    private int rx, ry;
    private int X, Y;
    Garis baru = new Garis();
   
   
    public void Ellipsku(Graphics g, int X, int Y, int rx, int ry){
        Rx2 =rx*rx;
        Ry2 =ry*ry;
        x =0;
        y =ry;
        twoRx2 =2*Rx2;
        twoRy2 =2*Ry2;
        px =0;
        py =twoRx2*y;
        int x1 = 0;
        int y1 = 0;
        p =(int) Math.round(Ry2-(Rx2*ry)+(0.25*Rx2));
//      
       
        while (px < py){
           
            x = x+1;
            px += twoRy2;
           
            if(p < 0){
//              
             
                p += Ry2 + px;
//              
               
            }else{
                y -= 1;
                py = py-twoRx2;
               
             
                   p += Ry2 + px - py;
               
//              
//              
            }
            baru.Garisku(g, Math.round(X+x), Math.round(Y+y),Math.round(X+x+1),Math.round(Y+y));
            proy4(g, X, Y, x,y);
            proy5(g, X, Y, x,y);
            proy8(g, X, Y, x,y);
           
               
           
           
           
        }
//      
        baru.Garisku(g, Math.round(X+x), Math.round(Y+y),Math.round(X+x+1),Math.round(Y+y));
       
//      
         p=(int) (ry*ry*(x+0.5)*(x+0.5)+rx*rx*(y-1)*(y-1)-rx*rx*ry*ry);
//      
     
        while( y > 0 ){
           
            y = y-1;
            py=py-twoRx2;
////          
           
            if (p < 0){
               
                x=x+1;
                px=px+2*ry*ry;
                p= p+Rx2+px-py;
               
            }else {
                  p=p+rx*rx-py;
               
//              
            }
           
           
            baru.Garisku(g, Math.round(X+x), Math.round(Y+y), Math.round(X+x+1), Math.round(Y+y));
            proy4(g, X, Y, x,y);
            proy5(g, X, Y, x,y);
            proy8(g, X, Y, x,y);
//          
           
        }
    }
    public void proy2(Graphics g, int X, int Y, int x, int y){
        int a;
        a=y;
        y=x;
        x=a;
        baru.Garisku(g, Math.round(x+X), Math.round(Y+y),Math.round(X+x+1), Math.round(Y+y));
    }
    public void proy3(Graphics g, int X, int Y, int x, int y){
        int a;
        a=y;
        y=-x;
        x=a;
        baru.Garisku(g, Math.round(x+X), Math.round(Y+y),Math.round(X+x+1), Math.round(Y+y));
    }
    public void proy4(Graphics g, int X, int Y, int x, int y){
        y=-y;
        x=x;
        baru.Garisku(g, Math.round(X+x), Math.round(Y+y),Math.round(X+x+1), Math.round(Y+y));
    }

    public void proy5(Graphics g, int X, int Y, int x, int y){
        x=-x;
        y=-y;
        baru.Garisku(g, Math.round(X+x), Math.round(Y+y),Math.round(X+x+1), Math.round(Y+y));
    }
    public void proy6(Graphics g, int X, int Y, int x, int y){
        int a;
        a=y;
        y=-x;
        x=-a;
        baru.Garisku(g, Math.round(X+x), Math.round(Y+y),Math.round(X+x+1), Math.round(Y+y));
    }

    public void proy7(Graphics g, int X, int Y, int x, int y){
        int a;
        a=y;
        y=x;
        x=-a;
        baru.Garisku(g, Math.round(X+x), Math.round(Y+y),Math.round(X+x+1), Math.round(Y+y));
    }

    public void proy8(Graphics g, int X, int Y, int x, int y){
        x=-x;
        y=y;
        baru.Garisku(g, Math.round(X+x), Math.round(Y+y),Math.round(X+x+1), Math.round(Y+y));
    }
   
}


Dan terakhir kita membuat class PanggilEllips untuk memanggil class Ellips dan Garis.

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Pbo 2;

import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;

/**
 *
 * @author JC
 */
public class PanggilEllips extends JPanel{

   
    @Override
    public void paintComponent(Graphics g){
       
        Ellips bru = new Ellips();
        Lingkaran br = new Lingkaran();
        g.setColor(Color.BLACK);
        bru.Ellipsku(g, 300, 150, 250, 100);
        br.Lingkaranku(g, 300, 150, 50);
       
       
    }
   
    public static void main(String[] args) {
        JFrame frame = new JFrame("Gambar Ellips");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(new PanggilEllips());
        frame.setSize(600, 600);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
       
    }
}

Sabtu, 11 Mei 2013

Array Adalah


Array adalah kumpulan data bertipe sama yang menggunakan nama sama.
 Dengan menggunakan array, sejumlah variabel dapat memakai nama yang sama. Antara satu variabel dengan variabel lain di dalam array dibedakan berdasarkan subscript. Sebuah subscript berupa bilangan di dalam kurung siku.

Array dapat dibedakan menjadi :
1. Array berdimensi satu
2. Array berdimensi dua
3. Array berdimensi tiga

Array Berdimensi Satu

      Contoh array berdimensi satu, misalnya menginputkan 5 buah data temperatur. Dan kelima data tersebut disimpan pada array bernama suhu.

Contoh 1 :
#include
#include

void main()
{
float suhu[5];
// array dengan 5 elemen bertipe float
// Membaca data dari keyboard dan meletakkan ke array
cout << "Masukkan 5 buah data suhu" << endl;
for (int i=0; i<5; i++)
{
cout << i + 1 << " : "; cin >> suhu[i];
}

// Menampilkan isi array ke layar
cout << "Data suhu yang dimasukkan : " << endl;
for (i=0; i<5; i++)
cout << suhu[i] << endl;
}
Mendefinisikan array
Float suhu[5]; float : Tipe elemen array suhu : Nama array [5] : Jumlah elemen array Maka array suhu dapat menyimpan data sebanyak 5 buah.  Subscript dari array selalu dimulai dari nol. Misal, jika jumlah elemen array [5], maka index dari array tersebut yaitu 0, 1, 2, 3, 4.  Mengakses elemen array Setelah suatu array didefinisikan, elemen array dapat diakses dengan bentuk : suhu[i] menyatakan “elemen suhu dengan subscript sama dengan i” Perintah seperti cin >> suhu[i]; berarti “membaca data dari keyboard dan meletakkan ke elemen nomor i pada array suhu”.
Perintah seperti cout >> suhu[i]; berarti “menampilkan elemen bernomor i pada array suhu”.


Contoh 2 :
#include
#include

const int jum_data = 5;
void main()
{
float suhu[jum_data]; // array suhu
float total; // untuk menampung total suhu

// Membaca data dari keyboard dan meletakkan ke array
cout << "Masukkan 5 buah data suhu" << endl; for (int i=0; i<5; i++) { cout << i + 1 << " : "; cin >> suhu[i];
}
// Menghitung nilai rata-rata
total = 0; // Mula-mula diisi dengan nol
for(i=0; i<< "Suhu rata-rata= " << total/jum_data << endl; }  Memberikan nilai awal terhadap array Seperti halnya variabel biasa, array juga dapat diberi nilai awal (diinisialisasikan) pada saat didefinisikan. Misalnya: int jum_hari[12]={ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; Catatan: C++ secara otomatis akan memberikan nilai awal nol terhadap array yang bersifat global. Jika bersifat lokal, maka harus diatur terlebih dahulu. Contoh 3 : #include
#include
#include

void main()
{
// Pendefinisian array jum_hari dan pemberian nilai awal
int jum_hari[12]={ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
// Tampilkan isi jum_hari
cout << "Masukkan 5 buah data suhu" << endl; for (int i=0; i<12; i++) { cout << "jum_hari[" << i << "] =" << jum_hari[i] << endl; } } Array Berdimensi Dua Sebagai gambaran, data kelulusan dari jurusan Teknik Informatika, Manajemen Informatika, dan Teknik Komputer dari tahun 1992 hingga 1995. Nama 1992 1993 1994 1995 Teknik Informatika 35 45 80 120 Manajemen Informatika 100 110 70 101 Teknik Komputer 10 15 20 17  Mendefinisikan array berdimensi dua Bentuk diatas dapat dibentuk dalam array berdimensi dua, pendefinisiannya : int nilai[3][4]; Pada pendefinisian di atas :  3 menyatakan jumlah baris (mewakili nama)  4 menyatakan jumlah kolom (mewakili nilai)  Mengakses array berdimensi dua Masing-masing elemen di dalam array berdimensi dua dapat diakses dengan bentuk : Baris dan kolom dimulai dari 0. Contoh pengaksesan elemen array berdimensi dua : 1. data_lulus[1][2] = 5; Merupakan instruksi untuk memberikan nilai 5 ke baris 1 kolom 2. 2. cout << data_lulus[1][2]; Merupakan perintah untuk menampilkan elemen data_lulus dengan subscript pertama (baris) berupa 1 dan subscript kedua (kolom) bernilai 2. Contoh 4 : #include
#include

void main()
{
int data_lulus[3][4]; // Array berdimensi dua
int tahun, jurusan;

// Memberikan data ke elemen array data_lulus
data_lulus[0][0] = 35; // TI - 1992
data_lulus[0][1] = 45; // TI - 1993
data_lulus[0][2] = 90; // TI - 1994
data_lulus[0][3] = 120; // TI - 1995
data_lulus[1][0] = 100; // MI - 1992
data_lulus[1][1] = 110; // MI - 1993
data_lulus[1][2] = 70; // MI - 1994
data_lulus[1][3] = 101; // MI - 1995
data_lulus[2][0] = 10; // TK - 1992
data_lulus[2][1] = 15; // TK - 1993
data_lulus[2][2] = 20; // TK - 1994
data_lulus[2][3] = 17; // TK - 1995

// Proses untuk memperoleh informasi kelulusan
while(1)
{
cout << "Jurusan (0 = TI, 1 = MI, 2 = TK): "; cin >> jurusan;
if ((jurusan==0) || (jurusan==1) || (jurusan==2))
break; // keluar dari while
}
while(1)
{
cout << "Tahun (1992 - 1995): "; cin >> tahun;

if ((tahun >= 1992) && (tahun <= 1995)) { tahun -= 1992; // konversi ke 0, 1, 2 atau 3 break; // keluar dari while } } cout << "Jumlah yang lulus = " << data_lulus[jurusan][tahun] << endl; } Melewatkan Array Sebagai Argumen Fungsi  Array juga dapat berkedudukan sebagai parameter di dalam fungsi. Misalnya : const int MAKS = 5 int data[MAKS]; Dari data di atas, fungsi yang menerima array di atas dapat dibuat prototipe-nya sebagai berikut : void inisialisasi_data(data[MAKS]); Dan deklarasi fungsi sebagai berikut : void inisialisasi_data(data[], int & jumlah); Pada contoh kedua, tanda di dalam tanda [ ] tidak terdapat apa-apa dan parameter kedua digunakan untuk menyatakan jumlah elemen array serta berkedudukan sebagai referensi (bisa diubah dari dalam fungsi inisialisasi_data()). Contoh 5 : #include
#include
#include
#include

const int MAKS = 100;
void inisialisasi_data(int data[], int &jumlah);
void main()
{
int data_acak[MAKS]; // array berdimensi satu
int jumlah;
inisialisasi_data(data_acak, jumlah);

// Tampilkan elemen-elemen array
cout << "Isi array : " << endl; for(int i=0; i<< data_acak[i] << endl; } // Definisi fungsi void inisialisasi_data(int data[], int &jumlah) { while(1) { cout << "Berapa jumlah data yang ingin" << endl; cout << "dibangkitkan secara acak (5 - 100) ? "; cin >> jumlah;

if ((jumlah >= 5) && (jumlah<=100)) break; } randomize(); // Menyetel pembangkit bilangan acak for(int i=0; i
#include
#include

const int BARIS = 5;
const int KOLOM = 5;
void isi_matriks(float mat[][KOLOM], int &brs, int &kol);

void main()
{
float matriks[BARIS][KOLOM];
int jum_baris, jum_kolom;
int i,j;

isi_matriks(matriks, jum_baris, jum_kolom);
cout << "\nMatriks yang terbentuk: " << endl; cout << setiosflags(ios::fixed); // ios::fixed --> mengatur angka yg dimasukkan dalam bentuk angka biasa
// bukan dalam bentuk eksponen
for (i=0; i<< setw(12) << setprecision(5) << matriks[i][j]; // setprecision(5) --> mengatur banyak angka dibelakang koma
cout << endl; } } // Definisi Fungsi void isi_matriks(float mat[][KOLOM], int &brs, int &kol) { int i,j; cout << "Pastikan jumlah baris dan kolom" << endl; cout << "tidak melebihi 5" << endl; cout << "Jumlah baris = "; cin >> brs;
cout << "Jumlah kolom = "; cin >> kol;
for (i=0; i< brs; i++) for (j=0; j<< "Elemen " << i << ", " << j << " = "; cin >> mat[i][j];
}
}

Mengurutkan Data
Salah satu mengurutkan data adalah dengan menggunakan bubble sort. Pengurutan dilakukan dengan membandingkan setiap elemen dengan seluruh elemen yang terletak sesudah posisinya.

Contoh 7 :
#include
#include
#include

void main()
{
int i, j, tmp, jumdata;
int data[] = {5, 100, 20, 31, 77, 88, 99, 20, 55, 1};
jumdata = sizeof(data)/sizeof(int);

// Menampilkan data
cout << "Data semula: " << endl; for(i=0; i<< setw(4) << data[i]; cout << endl; // Pindah baris // Mengurutkan data for(i=0; i data[j])
{
tmp = data[i];
data[i] = data[j];
data[j] = tmp;
}

// Menampilkan data
cout << "Data setelah diurutkan: " << endl;
for (i=0; i
cout << setw(4) << data[i];
cout << endl; // Pindah baris
}

Hidup sehat

Mental yang sehat merupakan satu dari sekian juta kebutuhan manusia. Dalam kehidupan sehari hari kita sering mendengar ungkapan dari para istri yang bertanya, 'kenapa hanya istri yang selalu minta pertanggungjawaban?'. Istri diminta ketekunannya dalam mengurus rumah tangga, sedangkan para suami jarang dibicarakan. Seringkali menempatkan dirinya sebagai orang yang selalu harus dilayani oleh istri. Istrilah yang harus mengurus. Setiap pasangan yang melangsungkan pernikahan tentu berharap perkawinan yang mereka bina akan menjadikan sebuah rumah tangga yang bahagia. Namun mewujudkan perkawinan yang bahagia tidaklah mudah karena akan ada banyak faktor yang mempengaruhinya.

Oleh karena itu diperlukan suatu pengetahuan dan sikap mental yang baik sehingga mampu membina suatu hubungan suami istri yang harmonis. Untuk itu suami istri harus memiliki ketrampilan baru dalam menjalani kehidupan berumah tangganya. Berikut ini beberapa tips untuk menggapai kebahagiaan dalam perkawinan:
Pertama, Berpikir Positif, - berpikir positif akan memberikan suatu pandangan hidup yang lebih konstruktif, sehingga mampu mewujudkan suatu tata komunikasi yang sehat antara suami dan istri. Kebanyakan pasangan suami istri yang mengalami kesukaran dalam perkawinanya hanya mencatat dan melihat hal hal yang buruk saja.

Oleh karena itu mulai detik ini carilah hal hal yang baik dari pasangan anda, dan ungkapkan dengan kata kata manis atau pujian yang tulus kepadanya. Dengan berpikir positif dan memperhatikan hal hal yang baik akan memberikan suasana yang baik dalam hubungan perkawinan, sehingga banyak hal yang bisa dipahami secara lebih baik dan akan berjalan lebih harmonis dari sebelumnya. Kedua, Menerima Kenyataan dengan Sabar, -setiap orang tentu memiliki kelebihan dan kekurangan yang mungkin dulu belum diketahui. Sementara ketika anda telah hidup bersama pasangan apa yang dulu jadi rahasia kini terungkap semua.

Disinilah sikap arif dan kesabaran anda akan teruji, anda harus belajar menerima segala kekurangan yang terdapat pada pasangan, janganlah mengeluh tentang pasangan anda, tetapi terimalah kenyataan dan berusahalah untuk mengatasi masalah yang muncul dengan pikiran positif. Namanya manusia dimanapun tak ada yang sempurna, dibalik keunggulan biasanya terselip kelemahan, kini sudah jadi tugas anda untuk melengkapi kelemahan tersebut dengan keunggulan yang anda miliki. Dan yang terakhir berpikirlah dan berbuatlah dengan ide yang lebih maju dari sebelumnya. Go..!!

Minggu, 13 Januari 2013

Dasar-dasar Algoritma

selamat siang shabat-shabatq...

 pada postingan kali ini saya akan sedikit membahas tentang Algoritma dasar. Semoga pembahasan saya ini berguna bagi rekan-rekan mahasiswa dan netter yang tertarik mendalami pemograman. Notasi Penulisan Algoritma Penulisan algoritma tidak tergantung dari spesifikasi bahasa pemograman dan komputer yang mengeksekusinya. Notasi algoritma bukan notasi bahasa pemograman, tetapi dapat diterjemahkan ke dalam berbagai bahasa pemograman. Berikut adalah contoh notasi algoritma Notasi yang dinyatakan dalam kalimat deskriptif Dengan otasi ini , deskriptif setiap langkah dijelaskan dengan bahasa yang jelas. Notasi ini cocok untuk algoritma yang pendek. Tapi untuk masalah algoritma yang panjang, notasi ini jelas kurang effektif. Selain itu pengkonversian notasi algoritma ke notasi bahasa program cendrung agak susah. Contoh: Algoritma mencari luas persegi panjang ; Diketahui panjang dan lebar sebuah persegi panjang. Carilah luas dan keliling persegi panjang

. Deskripsi :
1. Input panjang persegi panjang.
2. Input lebar persegi panjang.
3. Cari luas persegi panjang dengan rumus; panjang kali lebar.
4. Cari keliling persegi panjang dengan rumus; dua kali sisi panjang ditambah dua kali sisi lebar.
5. Keluarkan luas dan keliling sebagai output..
6. Penghitungan selesai. Flow chart Flow chart atau bagan alir merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar proses beserta instruksinya. Gambaran ini dinyatakan dengan simbol. Dengan demikian setiap simbol menggambarkan proses tertentu. Sedangkan hubungan antar proses digambarkan dengan garis penghubung. Flowchart ini merupakan langkah awal pembuatan program. Dengan adanya flowchart urutan poses kegiatan menjadi lebih jelas. Jika ada penambahan proses maka dapat dilakukan lebih mudah. Setelah flowchart selesai disusun, selanjutnya pemrogram (programmer) menerjemahkannya ke bentuk program dengan bahasa pemrograman. Notasi penulisan algoritma dengan flow chart cocoknya untuk algoritma yang pendek. Sementara untuk masalah algoritma yang panjang, notasi ini kurang effektif dan penkorversian notasi algoritma ke notasi bahasa pemograman cendrung agak sukar. Sekian dulu postingan saya kali ini, pada kesempatan berikut saya akan melanjutkan pembahasan tentang notasi penulisan algoritma(flowchar & pseudo code): Simbol-simbol flowchart Contoh flow chart program sederhana Contoh penulisan yang dinyatakan dengan Pseudo code. Terima kasih atas kunjungannya. Mohon masukan dan saran untuk perbaikan pembahasan ini.
 Wasalam Penulis.

Sabtu, 12 Januari 2013

Pertemuan Pertama mata Kuliah Aorkom


pelajaran yang mempelajari tentang isi didalam komputer dan instruksi ( cara ) bagaimana komputer tersebut bekerja, dan bagaimana cara sistem didalam komputer tersebut membacanya 

Materi yang kemarin di berikan meliputi
  1. Sistem biner
  2. Orkom

        * Sejarah
        * CPU
        * Ram
        * Storage media

    3.Arkom

        * Microprocessor
        * Register
        * Teknologi arsitektur komputer
        * Setting dan instruksi
Untuk itulah saya yang awam ini, pada hal tersebut menjadi semakin tertarik untuk tahu lebih dalam lagi.

Rabu, 09 November 2011

Pengertian Moore Law dan Pengertian RISC dan CISC



Moore’s Law adalah hukum yang menggambarkan tren perkembangan hardware komputer dalam jangka waktu panjang. Menurut Moore’s Law : Perkembangan Teknologi Informasi di bidang hardware komputer meningkat dua kali lipat setiap 18 bulan atau 1,5 tahun (dari wikipedia).
Sesuai dengan moore’s law berarti dalam 30 tahun, terjadi 20 kali peningkatan kapasitas memory komputer. Dengan demikian, kita dapatkan 2 pangkat 20 = 2 pangkat 10 x 2 pangkat 10 = 1024 x 1024 = + 1 juta. Terbukti pada tahun 1998, kita dapatkan memory yang berkapasitas 1 juta kali dibandingkan dengan kapasitas memory pada tahun 1968.
Moore’s Law memang terbukti tepat meramalkan tren perkembangan hardware komputer. Namun Moore’s Law tidak bisa mengukur berapa kali lipat kegunaan dari komputer pada tahun 2029 nanti dibandingkan dengan tahun 2011 sekarang.
Complex Instruction Set Computing (CISC) atau kumpulan instruksi komputasi kompleks. Adalah suatu arsitektur komputer dimana setiap instruksi akan menjalankan beberapa operasi tingkat rendah, seperti pengambilan dari memori (load), operasi aritmatika, dan penyimpanan ke dalam memori (store) yang saling bekerja sama.
Tujuan utama dari arsitektur CISC adalah melaksanakan suatu instruksi cukup dengan beberapa baris bahasa mesin yang relatif pendek sehingga implikasinya hanya sedikit saja RAM yang digunakan untuk menyimpan instruksi-instruksi tersebut. Arsitektur CISC menekankan pada perangkat keras karena filosofi dari arsitektur CISC yaitu bagaimana memindahkan kerumitan perangkat lunak ke dalam perangkat keras.
B. RISC (Reduced Instruction Set Computer)
RISC singkatan dari Reduced Instruction Set Computer. Merupakan bagian dari arsitektur mikroprosessor, berbentuk kecil dan berfungsi untuk negeset istruksi dalam komunikasi diantara arsitektur yang lainnya.
Sejarah RISC
Proyek RISC pertama dibuat oleh IBM, stanford dan UC –Berkeley pada akhir tahun 70 dan awal tahun 80an. IBM 801, Stanford MIPS, dan Barkeley RISC 1 dan 2 dibuat dengan konsep yang sama sehingga dikenal sebagai RISC. RISC mempunyai karakteristik :
• one cycle execution time : satu putaran eksekusi. Prosessor RISC mempunyai CPI (clock per instruction)
atau waktu per instruksi untuk setiap putaran. Hal ini dimaksud untuk mengoptimalkan setiap instruksi pada
CPU.
• pipelining:adalah sebuah teknik yang memungkinkan dapat melakukan eksekusi secara simultan.Sehingga proses instruksi lebih     efiisien
• large number of registers: Jumlah register yang sangat banyak. RISC di Desain dimaksudkan untuk dapat menampung jumlah register yang sangat banyak untuk mengantisipasi agar tidak terjadi interaksi yang berlebih dengan memory.

CISC
RISC
Penekanan pada
perangkat keras
Penekanan pada
perangkat lunak
Termasuk instruksi
kompleks multi-clock
Single-clock, hanya
sejumlah kecil instruksi
Memori-ke-memori:
“LOAD” dan “STORE”
saling bekerjasama
Register ke register:
“LOAD” dan “STORE”
adalah instruksi2 terpisah
Ukuran kode kecil,
kecepatan rendah
Ukuran kode besar,
kecepatan (relatif) tinggi
Transistor digunakan untuk
menyimpan instruksi2
kompleks
Transistor banyak dipakai
untuk register memori
Bagaimanapun juga, strategi pada RISC memberikan beberapa kelebihan. Karena masing-masing instruksi hanya membuthukan satu siklus detak untuk eksekusi, maka seluruh program (yang sudah dijelaskan sebelumnya) dapat dikerjakan setara dengan kecepatan dari eksekusi instruksi “MULT”. Secara perangkat keras, prosesor RISC tidak terlalu banyak membutuhkan transistor dibandingkan dengan CISC, sehingga menyisakan ruangan untuk register-register serbaguna (general purpose registers). Selain itu, karena semua instruksi dikerjakan dalam waktu yang sama (yaitu satu detak), maka dimungkinkan untuk melakukan pipelining.
Memisahkan instruksi “LOAD” dan “STORE” sesungguhnya mengurangi kerja yang harus dilakukan oleh prosesor. Pada CISC, setelah instruksi “MULT” dieksekusi, prosesor akan secara otomatis menghapus isi register, jika ada operan yang dibutuhkan lagi untuk operasi berikutnya, maka prosesor harus menyimpan-ulang data tersebut dari memori ke register. Sedangkan pada RISC, operan tetap berada dalam register hingga ada data lain yang disimpan ke dalam register yang bersangkutan.
Persamaan Unjuk-kerja (Performance)
Persamaan berikut biasa digunakan sebagai ukuran unjuk-kerja suatu komputer:
http://agfi.staff.ugm.ac.id/blog/wp-content/uploads/performanceeq-300x38.gif
Pendekatan CISC bertujuan untuk meminimalkan jumlah instruksi per program, dengan cara mengorbankan kecepatan eksekusi sekian silus/detik. Sedangkan RISC bertolak belakang, tujuannya mengurangi jumlah siklus/detik setiap instruksi dibayar dengan bertambahnya jumlah instruksi per program