Selasa, 11 April 2017

Kisah Program Aplikasi Pencarian Peribahasa, Ungkapan, dan Kiasan Bahasa Indoensia Beserta Artinya

Alkisah ada seorang pengembara di dunia perkodingan, yang hari-hari dilaluinya selalu dihiasi dengan mimpi-mimpi. Baik itu mimpi indah, mimpi, buruk, mimpi masa lalu, mimpi masa depan, mimpi nggak jelas hingga mimpi sejelas film bioskop. Salah satu dari mimpinya adalah membuat program aplikasi komputer yang dapat bermanfaat buat manusia banyak, terutama manusia Indonesia.

Suatu hari yang panas dan terik, si pengembara duduk di tepian telaga sunyi yang sejuk, sekedar melepas lelah, mengeringkan peluh. Diiringi alunan syahdu lagu merdu mendayu dari MP3 playernya. Semilir angin AC hampir melenakannya. Sekonyong-konyong, jatuhlah buah nanas di atas kepalanya, dari pohon yang menjadi sandarannya. Setelah terhilang rasa kagetnya, si pengembara mengelus-elus kepalanya, terasa kulit kepalanya pedih dan perih... si pengembara tercenung sejenak... perih... ah yaa! perihbahasa!! .. eh peribahasa (nggak pake 'h').

Dan semenjak si pengembara kejatuhan buah nanas, ia banyak melamun, melamun, dan melamun. Bukan gara-gara karena kejatuhan nanas ya. Tapi karena memang dia suka melamun dan berkhayal. Sambil melamun dan makan bekalnya, dia membuka kitab berisi foto-foto saudara seperguruannya... tiiinggg! Secercah cahaya memasuki alam pikirannya. Si pengembara teringat, ia memiliki saudara eh saudari-saudari seperguruan yang memiliki ilmu tingkat tinggi tentang peribahasa di dunia perbahasaan. Langsung dengan ilmu telepatinya si pengembara menghubungi saudari-saudari seperguruannya untuk membantunya bahu-membahu mengisi database aplikasi pencarian peribahasa. Gayung pun bersambut. saudari-saudari seperguruan si pengembara menyanggupi permintaan bala bantuan.

Dengan semangat 45, si pengembara mulai banting tulang peras keringat putar otak membuat program aplikasi komputer untuk mencari peribahasa bahasa Indonesia berbasis web. Si pengembara menginginkan aplikasi komputer tersebut berbasis web agar dapat menjangkau area wilayah Indonesia yang lebih luas lagi, dari Sabang sampai Merauke.

Singkat cerita, berhasillah si pengembara mengembangkan program aplikasi komputer pencarian peribahasa Indonesia berserta artinya. Namun, lagi-lagi sifat dasar si pengembara, mengembara ke sana kemari sambil melamun, membentuk satu sifat lagi yaitu tidak merasa tenang. Alhasil, yang semula hanya ingin membuat program aplikasi komputer mengenai peribahasa, berubah, ditambahi dengan, tidak tanggung-tanggung, ungkapan dan kiasan bahasa Indonesia beserta artinya. Dan... banting tulang peras keringat putar otak dilakukan lagi oleh si pengembara selama 7 hari tujuh malam... sampai badan si pengembara berubah drastis tinggal kulit berbalut daging alias ndut brooo.

Hingga akhirnya, hari ini, di sini, di bangku ini, si pengembara berhasil menyelesaikan program aplikasi pencarian peribahasa, ungkapan, dan kiasan bahasa Indonesia... disertai isi-isinya, yang mengandung 2881 peribahasa, 107 ungkapan, dan 110 kiasan... bisa dipakai kapan saja, di mana saja, oleh siapa saja, di alamat situs web http://peribahasa.ilmubiner.web.id yang aktif full time selama 24 jam, 7 hari seminggu. Si pengembara pun sujud syukur ke hadirat Allah SWT lalu memohon agar program aplikasi yang dibuatnya dapat bermanfaat bagi bangsa Indonesia dan bangsa-bangsa lain, aamiin YRA

Senin, 28 November 2016

Source Code Program Java Animasi Frame Bitmap

Saya bagikan source code bahasa pemrograman Java yang diperoleh dari internet yang menganimasikan gambar-gambar bitmap (1 pose 1 file).

import java.awt.geom.AffineTransform;
import javax.imageio.ImageIO;
import java.net.URL;
import java.awt.*;
import javax.swing.*;
import java.io.*;

public class AnimatedFramesDemo extends JPanel {
   static final int CANVAS_WIDTH = 640;
   static final int CANVAS_HEIGHT = 480;
   public static final String TITLE = "Animated Frame Demo";
 
   private String[] imgFilenames = {
         "images/pacman_1.png", "images/pacman_2.png", "images/pacman_3.png"};
   private Image[] imgFrames;
   private int currentFrame = 0;
   private int frameRate = 5;
   private int imgWidth, imgHeight;
   private double x = 100.0, y = 80.0;
   private double speed = 8;          
   private double direction = 0;      
   private double rotationSpeed = 1;  
   private AffineTransform transform = new AffineTransform();
 
   public AnimatedFramesDemo() {
      loadImages(imgFilenames);
      Thread animationThread = new Thread () {
         public void run() {
            while (true) {
               update();
               repaint();
               try {
                  Thread.sleep(1000 / frameRate);
               } catch (InterruptedException ex) { }
            }
         }
      };
      animationThread.start();
      setPreferredSize(new Dimension(CANVAS_WIDTH, CANVAS_HEIGHT));
   }
 
   private void loadImages(String[] imgFileNames) {
      int numFrames = imgFileNames.length;
      imgFrames = new Image[numFrames];  
      URL imgUrl = null;
      for (int i = 0; i < numFrames; ++i) {
         imgUrl = getClass().getClassLoader().getResource(imgFileNames[i]);
         if (imgUrl == null) {
            System.err.println("Couldn't find file: " + imgFileNames[i]);
         } else {
            try {
               imgFrames[i] = ImageIO.read(imgUrl); 
            } catch (IOException ex) {
               ex.printStackTrace();
            }
         }
      }
      imgWidth = imgFrames[0].getWidth(null);
      imgHeight = imgFrames[0].getHeight(null);
   }
 
   public void update() {
      x += speed * Math.cos(Math.toRadians(direction));
      if (x >= CANVAS_WIDTH) {
         x -= CANVAS_WIDTH;
      } else if (x < 0) {
         x += CANVAS_WIDTH;
      }
      y += speed * Math.sin(Math.toRadians(direction));
      if (y >= CANVAS_HEIGHT) {
         y -= CANVAS_HEIGHT;
      } else if (y < 0) {
         y += CANVAS_HEIGHT;
      }
      direction += rotationSpeed;  
      if (direction >= 360) {
         direction -= 360;
      } else if (direction < 0) {
         direction += 360;
      }
      ++currentFrame; 
      if (currentFrame >= imgFrames.length) {
         currentFrame = 0;
      }
   }
 
   public void paintComponent(Graphics g) {
      super.paintComponent(g);
      setBackground(Color.WHITE);
      Graphics2D g2d = (Graphics2D) g;
      transform.setToIdentity();
      transform.translate(x - imgWidth / 2, y - imgHeight / 2);
      transform.rotate(Math.toRadians(direction),
            imgWidth / 2, imgHeight / 2);
      g2d.drawImage(imgFrames[currentFrame], transform, null);
   }
 
   public static void main(String[] args) {
      SwingUtilities.invokeLater(new Runnable() {
         public void run() {
            JFrame frame = new JFrame(TITLE);
            frame.setContentPane(new AnimatedFramesDemo());
            frame.pack();
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);
         }
      });
   }
}

Berikut ini file-file bitmap yang digunakan progam tersebut :



 [[ file tugas unduh di sini ]] selamat mengerjakan. Mata Kuliah Pemrograman Game, Kampus Universitas Respati Indonesia Jakarta Timur.

Sabtu, 26 November 2016

Tugas Sistem Manajemen Basis Data Sesi 8 #20161126

Unduh database Northwind untuk MySQL terlebih dahulu, untuk mengerjakan tugas. [[ Unduh database Northwind MySQL ]].

Buatlah rangkuman daftar fungsi-fungsi yang ada di MySQL, beserta penjelasan singkat, disertai dengan contoh-contoh penggunaan masing-masing fungsi pada database Northwind. Setelah itu publikasikan di blog masing-masing. Kirimkan alamat blog masing-masing ke alamat e-mail tugasilmubiner@gmail.com paling lambat hari Jumat minggu depan.

Senin, 31 Oktober 2016

Source Code Balon (Bakal Calon) Game Balap Mobil

Berikut source code program Java untuk bakal calon game balap mobil.

import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;

public class AnimasiGrafik extends JFrame {
    final int LEBAR = 900, TINGGI = 650;
    double kecepatan = .5;
    final int UP = 0, RIGHT = 1, DOWN = 2, LEFT = 3;
    int arah = UP;

    //menentukan koordinat kotak area hijau sekeliling window
    Rectangle kiri = new Rectangle(0, 0, LEBAR / 9, TINGGI);
    Rectangle kanan = new Rectangle((LEBAR / 9) * 8, 0, LEBAR / 9, TINGGI);
    Rectangle atas = new Rectangle(0, 0, LEBAR, TINGGI / 9);
    Rectangle bawah = new Rectangle(0, (TINGGI / 9) * 8, LEBAR, TINGGI / 9);
    Rectangle tengah = new Rectangle((int) ((LEBAR / 9) * 2.5), 
                                     (int) ((TINGGI / 9) * 2.5),
                                     (int) ((LEBAR / 9) * 5), (TINGGI / 9) * 4);

    //menentukan koordinat kotak penghalang
    Rectangle rintangan1 = new Rectangle(LEBAR / 2, (int) ((TINGGI / 9) * 7), 
                                         LEBAR / 10, TINGGI / 9);
    Rectangle rintangan2 = new Rectangle(LEBAR / 3, (int) ((TINGGI / 9) * 5), 
                                         LEBAR / 10, TINGGI / 4);
    Rectangle rintangan3 = new Rectangle(2 * (LEBAR / 3),
                                         (int) ((TINGGI / 9) * 5), 
                                         LEBAR / 10, TINGGI / 4);
    Rectangle rintangan4 = new Rectangle(LEBAR / 3, TINGGI / 9, 
                                         LEBAR / 30, TINGGI / 9);
    Rectangle rintangan5 = new Rectangle(LEBAR / 2, (int) ((TINGGI / 9) * 1.5), 
                                         LEBAR / 30, TINGGI / 4);
    Rectangle finish = new Rectangle(LEBAR / 9, (TINGGI / 2) - TINGGI / 9, 
                                     (int) ((LEBAR / 9) * 1.5), TINGGI / 70);
    Rectangle pemain1 = new Rectangle(LEBAR / 9, TINGGI / 2, LEBAR / 30, 
                                      LEBAR / 30);

    public AnimasiGrafik() {
        super("Balap Mobil Kotak");
        setSize(LEBAR, TINGGI);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);

        GerakPemain1 m1 = new GerakPemain1();
        m1.start();
    }
    
    public void paint(Graphics g) {
        super.paint(g);
        //gambar kotak latar
        g.setColor(Color.DARK_GRAY);
        g.fillRect(0, 0, LEBAR, TINGGI);
        //gambar garis
        g.setColor(Color.GREEN);
        Rectangle lineO = new Rectangle(LEBAR / 9, TINGGI / 2, 
                                        (int) ((LEBAR / 9) * 1.5) / 2, 
                                        TINGGI / 140);
        Rectangle lineI = new Rectangle(((LEBAR / 9) + 
                                        ((int) ((LEBAR / 9) * 1.5) / 2)),
                                        (TINGGI / 2) + (TINGGI / 10), 
                                        (int) ((LEBAR / 9) * 1.5) / 2, 
                                        TINGGI / 140);

        g.fillRect(kiri.x, kiri.y, kiri.width, kiri.height);
        g.fillRect(kanan.x, kanan.y, kanan.width, kanan.height);
        g.fillRect(atas.x, atas.y, atas.width, atas.height);
        g.fillRect(bawah.x, bawah.y, bawah.width, bawah.height);
        g.fillRect(tengah.x, tengah.y, tengah.width, tengah.height);
        g.fillRect(rintangan1.x, rintangan1.y, rintangan1.width, 
                   rintangan1.height);
        g.fillRect(rintangan2.x, rintangan2.y, rintangan2.width, 
                   rintangan2.height);
        g.fillRect(rintangan3.x, rintangan3.y, rintangan3.width, 
                   rintangan3.height);
        g.fillRect(rintangan4.x, rintangan4.y, rintangan3.width, 
                   rintangan4.height);
        g.fillRect(rintangan5.x, rintangan5.y, rintangan5.width, 
                   rintangan5.height);

        //gambar garis start
        g.setColor(Color.WHITE);
        g.fillRect(lineO.x, lineO.y, lineO.width, lineO.height);
        g.fillRect(lineI.x, lineI.y, lineI.width, lineI.height);

        //gambar garis finish
        g.setColor(Color.YELLOW);
        g.fillRect(finish.x, finish.y, finish.width, finish.height);

        //gambar mobil
        g.setColor(Color.BLUE);
        g.fill3DRect(pemain1.x, pemain1.y, pemain1.width, pemain1.height, true);
    }

    private class GerakPemain1 extends Thread implements KeyListener {
        public void run() {
            addKeyListener(this);
            while (true) {
                try {
                    repaint();
                    if (pemain1.intersects(kiri)
                        || pemain1.intersects(kanan)
                        || pemain1.intersects(atas)
                        || pemain1.intersects(bawah)
                        || pemain1.intersects(rintangan1)
                        || pemain1.intersects(rintangan2)
                        || pemain1.intersects(rintangan4) 
                        || pemain1.intersects(rintangan5)) {
                        kecepatan = -4;
                    }

                    if (pemain1.intersects(tengah)) {
                        kecepatan = -2.5;
                    }

                    if (kecepatan <= 5) {
                        kecepatan += .2;
                    }

                    if (arah == UP) {
                        pemain1.y -= (int) kecepatan;
                    }

                    if (arah == DOWN) {
                        pemain1.y += (int) kecepatan;
                    }

                    if (arah == LEFT) {
                        pemain1.x -= (int) kecepatan;
                    }

                    if (arah == RIGHT) {
                        pemain1.x += (int) kecepatan;
                    }

                    Thread.sleep(75);
                } catch (Exception e) {
                    break;
                }
            }
        }

        public void keyPressed(KeyEvent event) {
        }

        public void keyReleased(KeyEvent event) {
        }

        public void keyTyped(KeyEvent event) {
            if (event.getKeyChar() == 'a') {
                arah = LEFT;
            }
            if (event.getKeyChar() == 's') {
                arah = DOWN;
            }
            if (event.getKeyChar() == 'd') {
                arah = RIGHT;
            }
            if (event.getKeyChar() == 'w') {
                arah = UP;
            }
        }
    }

    public static void main(String[] args) {
        new AnimasiGrafik();
    }
}

Sabtu, 29 Oktober 2016

Tugas Mata Kuliah Pemrograman Grafis Sesi 6 #20161009

Berikut tugas mata kuliah Pemrograman Grafis buat mahasiswa Fakultas Teknologi Informasi, Universitas Respati Indonesia (URINDO), Kampus A Bambu Apus, Jakarta Timur.

Buatlah program untuk menggambar seperti berikut ini (klik gambar untuk memperbesar) :

Tugas dikumpulkan sebelum batas waktu yang telah ditentukan, yaitu sehari sebelum hari kuliah mata kuliah ini. Selamat mengerjakan!

Kamis, 27 Oktober 2016

Tugas KKPI (Ms-Word)

Buatlah sebuah dokumen dengan seperti pada file contoh yang dapat diunduh dengan mengklik link berikut ini : { unduh file contoh }

Tugas Mata Kuliah Pemrograman Dasar II Sesi 6 #20161027

Buatlah flowchart, sekaligus program komputer yang menampilkan tampilan sebagai berikut. Gunakan perintah pengulangan while atau for.

  1.    10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
  2.    1, 1, 2, 3, 5, 8, 13, 21, 34, ... dst. sampai 25 suku
  3.    1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 = ... (titik-titik harus menampilkan hasilnya)
  4.    1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x 10 = ... (titik-titik harus menampilkan hasilnya)
Tugas tidak perlu dikirim via e-mail. Bawalah pada saat anda kuliah mata kuliah ini di kampus A, Universitas Respati Indonesia (URINDO), Bambu Apus, Jakarta Timur. Terima kasih.

Kisah Program Aplikasi Pencarian Peribahasa, Ungkapan, dan Kiasan Bahasa Indoensia Beserta Artinya

Alkisah ada seorang pengembara di dunia perkodingan, yang hari-hari dilaluinya selalu dihiasi dengan mimpi-mimpi. Baik itu mimpi indah, mimp...