Archive for March, 2014
TUGAS VIDEO SISTEM MULTIMEDIA
0COUNT ON ME (STOP MOTION)
Video yang mengandung lagu dan foto yang di padukan menjadi satu kesatuan, merupakan hal yang baru saja booming pada dunia anak muda, seperti untuk membuat video anniversary, video ulangtahun, dan masih banyak lagi. Dimana yang sering kita sebut stop motion. Awalnya stopmotion hanyalah di buat dalam pembuatan animasi, dan ya, stopmotion merupakan suatu teknik animasi untuk membuat objek yang di manipulasikan secara fisik agar terlihat bergerak dengan sendirinya. bahkan sekarang stopmotion sudah banyak variasi baru, dengan menambahkan video, dan beberapa hal unik lainnya.
Dan kami menyediakan sebuah stopmotion dengan mengangkat tema utama “PERSAHABATAN”, yang dilatar belakangi dengan lagu yang diciptakan dan dinyanyikan oleh Bruno Mars berjudul “Count On Me” yang baru saja rilis pada tahun 2010 lalu. Kami memilih lagu ini, karena arti dari lirik itu sendiri sangatlah menyentuh hati, bahkan dari arti lagu tersebut kita dapat mempelajari itulah arti dari sahabat, itulah sahabat yang seharusnya. Dan kami memilih tema persahabatan, karena persahabatan tidak ada batas umur maupun waktu, bahkan persahabatan tidak hanya dengan teman, tapi juga dengan Tuhan, orang tua, bahkan pasangan hidup pun dapat menjadi sahabat. dan kami memilih lirik lagu sebagai kumpulan foto di dalam nya, karena dengan membaca sebuah lirik lagu, setiap orang dapat lebih mudah mengerti apa makna dari lagu itu, daripada sudah hafal dan menyanyikannya.
Tidak ada arti pasti dari sahabat, sahabat ada saat kita menganggapnya lebih dari temanmu yang lain. Sahabat adalah seorang teman dimana kita dapat dengan leganya mengeluarkan apa yang ada di dalam pikiranmu bahkan hatimu, akankah itu senang atau sedih. Teman yang selalu ada saat kita butuh, teman yang ada ketika kita jatuh dan bahkan bangkit bersama. Teman yang benar benar peduli. Bahkan tanpa disadari sebagian hidupmu habis hanya dengan mereka, tersenyum, bercanda, tertawa, bahkan menangis bersama.
Sebelum anda memutarkan video yang kami sediakan, mari ajak sahabatmu bernyanyi bersama, tersenyum bersama, dan menyadari bersama, bahwa seseorang yang kamu ajak adalah seseorang yang sangat berarti bagi mu. Selamat menikmati keindahan persahabat, sebelum batu kecil merenggangkan kalian, bahkan waktu, tempat, ataupun kesibukan menjauhkan kalian. Dan ada satu masa kamu akan merasa sangat kehilangan.
Storyboard
Link video : Count on Me Stop Motion
Anggota Kelompok 2 :
TRIA NITA SITUMORANG (1601284384)
EVELINA LARISA (1601288331)
MONICA MARIA PRUDANCE (1601288722)
RAYMOND (1601223104)
Tugas OFF CLASS (GSLC) 13 Maret 2014
01. Apa yang dimaksud Adversarial Search & Constraint Satisfaction Problems? Berikan contoh!
Adversarial search adalah suatu pencarian dengan mencari berbagai kemungkinan atau solusi yang akan terjadi pada suatu masalah.
Contoh : catur, tic-tac-toe, othello.
Constraint Satisfaction Problems adalah suatu masalah yang diselesaikan dengan metode pencarian yang paling sesuai dengan keinginan oleh user dengan cara memberikan berbagai alternatif pilihan.
Contoh : cryptarithmetic, map coloring, backtracking search, forward checking.
2. Apa itu Propositional Logic? Berikan contoh!
Propositional logic merupakan salah satu bentuk (bahasa) representasi logika yang paling tua dan paling sederhana yang dapat menggambarkan dan memanipulasi fakta dengan menggunakan aturan-aturan aljabar Boolean
Propositional logic membentuk statement sederhana atau statement yang kompleks dengan menggunakan propositional connec-tive, dimana mekanisme ini menentukan kebenaran dari sebuah statement kompleks dari nilai kebenaran yang direpresentasikan oleh statement lain yang lebih sederhana.
Contoh :
– Paris adalah ibukota dari negara Perancis dan Paris mempunyai populasi lebih dari 2 juta jiwa.
– 2 + 2 = 4
3. Buat coding (Boleh C, C++ atau Java) untuk Algoritma A & Algoritma A* (A Star)!
a. Algoritma A
class Graph
{
protected $_len = 0;
protected $_g = array();
protected $_visited = array();
public function __construct()
{
$this->_g = array(
array(0, 2, 0, 0, 5, 1),
array(1, 0, 3, 0, 0, 0),
array(0, 2, 0, 8, 0, 0),
array(0, 0, 3, 0, 5, 0),
array(1, 0, 0, 8, 0, 1),
array(1, 0, 0, 0, 5, 0),
);
$this->_len = count($this->_g);
$this->_initVisited();
}
protected function _initVisited()
{
for ($i = 0; $i < $this->_len; $i++) {
$this->_visited[$i] = 0;
}
}
public function bestFirst($vertex)
{
$this->_visited[$vertex] = 1;
echo $vertex . “\n“;
asort($this->_g[$vertex]);
foreach ($this->_g[$vertex] as $key => $v) {
if ($v > 0 && !$this->_visited[$key]) {
$this->bestFirst($key);
}
}
}
}
$g = new Graph();
// 2 1 0 5 4 3
$g->bestFirst(2);
Algoritma A*
#include <iostream>
#include <iomanip>
#include <queue>
#include <string>
#include <math.h>
#include <ctime>
using namespace std;
const int n=60; // horizontal size of the map
const int m=60; // vertical size size of the map
static int map[n][m];
static int closed_nodes_map[n][m]; // map of closed (tried-out) nodes
static int open_nodes_map[n][m]; // map of open (not-yet-tried) nodes
static int dir_map[n][m]; // map of directions
const int dir=8; // number of possible directions to go at any position
// if dir==4
//static int dx[dir]={1, 0, -1, 0};
//static int dy[dir]={0, 1, 0, -1};
// if dir==8
static int dx[dir]={1, 1, 0, -1, -1, -1, 0, 1};
static int dy[dir]={0, 1, 1, 1, 0, -1, -1, -1};
class node
{
// current position
int xPos;
int yPos;
// total distance already travelled to reach the node
int level;
// priority=level+remaining distance estimate
int priority; // smaller: higher priority
public:
node(int xp, int yp, int d, int p)
{xPos=xp; yPos=yp; level=d; priority=p;}
int getxPos() const {return xPos;}
int getyPos() const {return yPos;}
int getLevel() const {return level;}
int getPriority() const {return priority;}
void updatePriority(const int & xDest, const int & yDest)
{
priority=level+estimate(xDest, yDest)*10; //A*
}
// give better priority to going strait instead of diagonally
void nextLevel(const int & i) // i: direction
{
level+=(dir==8?(i%2==0?10:14):10);
}
// Estimation function for the remaining distance to the goal.
const int & estimate(const int & xDest, const int & yDest) const
{
static int xd, yd, d;
xd=xDest-xPos;
yd=yDest-yPos;
// Euclidian Distance
d=static_cast<int>(sqrt(xd*xd+yd*yd));
// Manhattan distance
//d=abs(xd)+abs(yd);
// Chebyshev distance
//d=max(abs(xd), abs(yd));
return(d);
}
};
// Determine priority (in the priority queue)
bool operator<(const node & a, const node & b)
{
return a.getPriority() > b.getPriority();
}
// A-star algorithm.
// The route returned is a string of direction digits.
string pathFind( const int & xStart, const int & yStart,
const int & xFinish, const int & yFinish )
{
static priority_queue<node> pq[2]; // list of open (not-yet-tried) nodes
static int pqi; // pq index
static node* n0;
static node* m0;
static int i, j, x, y, xdx, ydy;
static char c;
pqi=0;
// reset the node maps
for(y=0;y<m;y++)
{
for(x=0;x<n;x++)
{
closed_nodes_map[x][y]=0;
open_nodes_map[x][y]=0;
}
}
// create the start node and push into list of open nodes
n0=new node(xStart, yStart, 0, 0);
n0->updatePriority(xFinish, yFinish);
pq[pqi].push(*n0);
open_nodes_map[x][y]=n0->getPriority(); // mark it on the open nodes map
// A* search
while(!pq[pqi].empty())
{
// get the current node w/ the highest priority
// from the list of open nodes
n0=new node( pq[pqi].top().getxPos(), pq[pqi].top().getyPos(),
pq[pqi].top().getLevel(), pq[pqi].top().getPriority());
x=n0->getxPos(); y=n0->getyPos();
pq[pqi].pop(); // remove the node from the open list
open_nodes_map[x][y]=0;
// mark it on the closed nodes map
closed_nodes_map[x][y]=1;
// quit searching when the goal state is reached
//if((*n0).estimate(xFinish, yFinish) == 0)
if(x==xFinish && y==yFinish)
{
// generate the path from finish to start
// by following the directions
string path=””;
while(!(x==xStart && y==yStart))
{
j=dir_map[x][y];
c=’0’+(j+dir/2)%dir;
path=c+path;
x+=dx[j];
y+=dy[j];
}
// garbage collection
delete n0;
// empty the leftover nodes
while(!pq[pqi].empty()) pq[pqi].pop();
return path;
}
// generate moves (child nodes) in all possible directions
for(i=0;i<dir;i++)
{
xdx=x+dx[i]; ydy=y+dy[i];
if(!(xdx<0 || xdx>n-1 || ydy<0 || ydy>m-1 || map[xdx][ydy]==1
|| closed_nodes_map[xdx][ydy]==1))
{
// generate a child node
m0=new node( xdx, ydy, n0->getLevel(),
n0->getPriority());
m0->nextLevel(i);
m0->updatePriority(xFinish, yFinish);
// if it is not in the open list then add into that
if(open_nodes_map[xdx][ydy]==0)
{
open_nodes_map[xdx][ydy]=m0->getPriority();
pq[pqi].push(*m0);
// mark its parent node direction
dir_map[xdx][ydy]=(i+dir/2)%dir;
}
else if(open_nodes_map[xdx][ydy]>m0->getPriority())
{
// update the priority info
open_nodes_map[xdx][ydy]=m0->getPriority();
// update the parent direction info
dir_map[xdx][ydy]=(i+dir/2)%dir;
// replace the node
// by emptying one pq to the other one
// except the node to be replaced will be ignored
// and the new node will be pushed in instead
while(!(pq[pqi].top().getxPos()==xdx &&
pq[pqi].top().getyPos()==ydy))
{
pq[1-pqi].push(pq[pqi].top());
pq[pqi].pop();
}
pq[pqi].pop(); // remove the wanted node
// empty the larger size pq to the smaller one
if(pq[pqi].size()>pq[1-pqi].size()) pqi=1-pqi;
while(!pq[pqi].empty())
{
pq[1-pqi].push(pq[pqi].top());
pq[pqi].pop();
}
pqi=1-pqi;
pq[pqi].push(*m0); // add the better node instead
}
else delete m0; // garbage collection
}
}
delete n0; // garbage collection
}
return “”; // no route found
}
int main()
{
srand(time(NULL));
// create empty map
for(int y=0;y<m;y++)
{
for(int x=0;x<n;x++) map[x][y]=0;
}
// fillout the map matrix with a ‘+’ pattern
for(int x=n/8;x<n*7/8;x++)
{
map[x][m/2]=1;
}
for(int y=m/8;y<m*7/8;y++)
{
map[n/2][y]=1;
}
// randomly select start and finish locations
int xA, yA, xB, yB;
switch(rand()%8)
{
case 0: xA=0;yA=0;xB=n-1;yB=m-1; break;
case 1: xA=0;yA=m-1;xB=n-1;yB=0; break;
case 2: xA=n/2-1;yA=m/2-1;xB=n/2+1;yB=m/2+1; break;
case 3: xA=n/2-1;yA=m/2+1;xB=n/2+1;yB=m/2-1; break;
case 4: xA=n/2-1;yA=0;xB=n/2+1;yB=m-1; break;
case 5: xA=n/2+1;yA=m-1;xB=n/2-1;yB=0; break;
case 6: xA=0;yA=m/2-1;xB=n-1;yB=m/2+1; break;
case 7: xA=n-1;yA=m/2+1;xB=0;yB=m/2-1; break;
}
cout<<“Map Size (X,Y): “<<n<<“,”<<m<<endl;
cout<<“Start: “<<xA<<“,”<<yA<<endl;
cout<<“Finish: “<<xB<<“,”<<yB<<endl;
// get the route
clock_t start = clock();
string route=pathFind(xA, yA, xB, yB);
if(route==””) cout<<“An empty route generated!”<<endl;
clock_t end = clock();
double time_elapsed = double(end – start);
cout<<“Time to calculate the route (ms): “<<time_elapsed<<endl;
cout<<“Route:”<<endl;
cout<<route<<endl<<endl;
// follow the route on the map and display it
if(route.length()>0)
{
int j; char c;
int x=xA;
int y=yA;
map[x][y]=2;
for(int i=0;i<route.length();i++)
{
c =route.at(i);
j=atoi(&c);
x=x+dx[j];
y=y+dy[j];
map[x][y]=3;
}
map[x][y]=4;
// display the map with the route
for(int y=0;y<m;y++)
{
for(int x=0;x<n;x++)
if(map[x][y]==0)
cout<<“.”;
else if(map[x][y]==1)
cout<<“O”; //obstacle
else if(map[x][y]==2)
cout<<“S”; //start
else if(map[x][y]==3)
cout<<“R”; //route
else if(map[x][y]==4)
cout<<“F”; //finish
cout<<endl;
}
}
getchar(); // wait for a (Enter) keypress
return(0);
}
Basa Basi dari Manusia Seksi
0Hai! Halo! Huy! Aloha! Chihuaha!
Hehehehehehehehehehe.
Jadi ceritanya saya bikin blog lagi nih. Pertama kali punya blog, saya lagi lucu-lucunya pakai seragam putih-biru. Pertama kali jatuh cinta juga sama. Waktu pakai seragam putih-biru juga. Hehe. Ini blog formal ya? Hehe. Maaf Pak Dosen dan Bu Dosen. Hehe.
Lanjut lagi… Saya sempat punya blog yang isinya tuh… HMM… BEEEH… GILAAA…. ISINYA TUH… Standar. Tentang masa-masa SMP yang begitu membahagiakan, tentang kelabilan saya, tentang aku-kamu-dia-kita-mereka, tentang goreng, “tentang-tentang dia kaya dia bisa seenaknya aja gitu? HELLOW?!”, “PAK ABSEN SAYA BELUM DITENTANG PAK! YANG NOMER TIGA PAK. IYA YANG ITU PAK! MAKASIH PAK!”. Uhuk uhuk. Maap, keselek.
Tapi, saya bangga banget punya blog itu. Soalnya ngehitz getoh dulu. Ya getoh… Gueh jadi merasa sebagai anggota anak gaol yang punya blog getoh. Uhuk uhuk. Maap, keselek lagi.
Saya sempat ngehapus blog saya, terus saya bikin lagi. Hapus , bikin lagi. Hapus, bikin lagi. Hapus, bikin lagi. Samalah kayak waktu saya sama dia. Udah putus, eh balikan lagi. Putus, balikan lagi. Putus… EH NGGAK BALIKAN LAGI. God, help me through all this. :'(
Pokoknya…
Selamat datang di Binusian Blog ya, Tria Nita Situmorang.
Iya. Makasih ya Tria Nita Situmorang.
Sama-sama. Hehe.
Hehe.
*percakapan dengan diri sendiri*
WOOHOOO! WELCOME TO MY BLOG! *sebar confetti*
Oh iya, dapat quotes dari Mas Anang di Jember.
“AKU SIH NO”
P.S: The real reason why I keep making blog/Why I keep writing is… because I’m better in writing than talking. :p
Hello world!
1Welcome to Binusian blog.
This is the first post of any blog.binusian.org member blog. Edit or delete it, then start blogging!
Happy Blogging 🙂
Recent Comments