Animasi
POSTED ON Minggu, 11 September 2016 AT 14.49 \\
Animasi adalah hasil dari pengolahan gambar tangan, sehingga menjadi Gambar yang bergerak yang sangat atraktif saat ditampilkan secara berurutan untuk mensimulasi gerakan yang hidup. Pada dasarnya animasi adalah transformasi objek dimana semua titik pada sembarang objek akan diubah, sementara koordinatnya tetap. Objek tersebut didefinisi berupa gambar manusia, hewan, maupun tulisan Atau juga Animasi merupakan suatu teknik menampilkan gambar berurut sedemikian rupa sehingga penonton merasakan adanya ilusi gerakan (motion) pada gambar yang ditampilkan.
Film-film animasi terdahulu menggunakan ratusan sampai ribuan gambar sketsa tangan untuk membuat sebuah animasi pergerakan satu-persatu. Tiap gambar bergerak tersebut dikenal dengan frame. Untuk membuat animasi yang halus pergerakannya maka dibutuhkan makin banyak gambar.
Setelah era komputer grafik seperti sekarang, proses animasi tidak lagi merupakan suatu proses yang terlalu rumit. Seorang animator 2D atau 3D cukup menganimasikan frame awal dan akhir dari suatu pergerakan animasi, selebihnya komputer akan mengkalkulasi gerakan di antaranya (dikenal dengan istilah In-Between). Informasi pergerakan sebuah objek dicatat komputer dengan informasi berupa keyframe. Jumlah keyframe dan frame di antaranya inilah yang menentukan halus atau tidaknya sebuah pergerakan animasi.
Animasi sendiri berasal dari bahasa latin yaitu “anima” yang berarti jiwa, hidup, semangat. Sedangkan karakter adalah orang, hewan maupun objek nyata lainnya yang dituangkan dalam bentuk gambar 2D maupun 3D. shingga karakter animasi secara dapat diartikan sebagai gambar yang memuat objek yang seolah-olah hidup, disebabkan oleh kumpulan gambar itu berubah beraturan dan bergantian ditampilkan.
Perkembangan animasi sebenarnya telah meluas di Indonesia, bahkan ada beberapa studio yang telah membuat animasi lisensi luar dikerjakan oleh tenaga ahli lokal atau dengan kalimat lain, Indonesia sudah lama terkenal hanya sebagai tempat produksi industri film animasi Jepang dan Amerika Serikat.
Pengertian Animasi Menurut Ibiz Fernandes dalam bukunya Macromedia Flash Animation & Cartooning: A creative Guide, animasi definisikan sebagai berikut :
“Animation is the process of recording and playing back a sequence of stills to achieve the illusion of continues motion” ( Ibiz Fernandez McGraw- Hill/Osborn, California, 2002)
Yang artinya kurang lebih adalah :
“Animasi adalah sebuah proses merekam dan memainkan kembali serangkaian gambar statis untuk mendapatkan sebuah ilusi pergerakan.” Berdasarkan arti harfiah, Animasi adalah menghidupkan. Yaitu usaha untuk menggerakkan sesuatu yang tidak bisa bergerak sendiri.

Secara garis besar, animasi computer dibagi menjadi dua kategori, yaitu:

  • Computer Assisted Animation, animasi pada kategori ini biasanya menunjuk pada system animasi 2 dimensi, yaitu mengkomputerisasi proses animasi tradisional yang menggunakan gambaran tangan. Computer digunakan untuk pewarnaan, penerapan virtual kamera dan penataan data yang digunakan dalam sebuah animasi.
  • Computer Generated Animation, pada kategori ini biasanya digunakan untuk animasi 3 dimensi dengan program 3D seperti 3D Studio Max, Maya, Autocad dll.
Jenis-jenis Animasi
Karakter animasi sekarang telah berkembang dimana awal mula mempunyai prinsip yang sederhana, sekarang telah terbagi menjadi beberapa jenis animasi, yaitu :
  • Animasi 2D, Aniamsi 2D bisa juga disebut dengan film kartun. Dimana kartun telah memiliki karakter yang memiliki sifat lucu da  menghibur.
  • Aniamsi 3D
Dampak dari adanya perkembangan teknologi dan komputer membuat teknik pembuatan animasi 3D semakin berkenmbang, dimana animasi 3D merupakan pengembangan dari animasi 2D. Adnya animasi 3Dkarakter yang diperlihatkansemakin hidup dan nyata, mendekati wujud manusia aslinya.
  • Stop Motion Animation
Animasi ini juga dikenali sebagai claymation kerana animasi ini menggunakan clay (tanah liat) sebagai objek yang di gerakkan. Teknik ini pertama kali di perkenalkan oleh Stuart Blakton pada tahun 1906. Teknik ini seringkali digunakan dalam menghasilkan visual effect bagi filem-filem era tahun 50-an dan 60-an. Film Animasi Clay Pertama dirilis bulan Februari 1908 berjudul, A Sculptors Welsh Rarebit Nightmare. Untuk beberapa waktu yang lalu juga,  beredar film clay yang berjudul Chicken Run.
Jenis ini yang paling jarang kita dengar dan temukan diantara jenis lainnya. Meski namanya clay (tanah liat), yang dipakai bukanlah tanah liat biasa. Animasi ini memakai plasticin, bahan lentur seperti permen karet yang ditemukan pada tahun 1897. Tokoh-tokoh dalam animasi Clay dibuat dengan memakai rangka khusus untuk kerangka tubuhnya, lalu kerangka tersebut ditutup dengan plasficine sesuai bentuk tokoh yang ingin dibuat. Bagian-bagian tubuh kerangka ini, seperti kepala, tangan, kaki, disa dilepas dan dipasang lagi. Setelah tokoh-tokohnya siap, lalu difoto gerakan per gerakan. Foto-foto tersebut lalu digabung menjadi gambar yang bisa bergerak seperti yang kita tonton di film. Animasi ini agak sukar untuk dihasilkan dan memerlukan kos yang tinggi.
  • Animasi jepang (Anime)
Anime merupakan sebutan tersendiri untuk film animasi di Jepang. Dalam hal pembuatan animasi Jepang tidak kalah dibandingkan buatan Eropa. Dimana Anime memiliki karakter yang berbeda dibandingkan dengan animasi buatan eropa. Salah satu film yang terkenal adalah Final Fantasy Advent Children dan Jepang sudah banyak memproduksi anime. Berbeda dengan animasi Amerika, anime Jepang tidak semua diperuntukkan untuk anak-anak,  bahkan ada yang khusus dewasa.
Selain itu berdasarkan teknik pembuatannya animasi dibedakan menjadi 10 jenis, yaitu:
  • Animasi Cel
Animasi cel berasal dari kata “celluloid”, yaitu bahan dasar dalam pembuatan animasi jenis ini ketika tahun-tahun awal adanya animasi. Animasi cel merupakan lembaran-lembaran yang membentuk animasi tunggal, masing-masing cel merupakan bagian yang terpisah sebagai  objek animasi. misalnya ada tiga buah animasi cel, cel pertama berisi satu animasi karakter, cel kedua berisi animasi karakter lain, dan cel terakhir berisi latar animasi. Ketiga animasi cel ini akan disusun berjajar, sehingga ketika dijalankan animasinya secara bersamaan, terlihat seperti satu kesatuan. Contoh animasi jenis ini adalah film kartun seperti Tom and Jerry, Mickey Mouse dan Detectif Conan.
  • Animasi Frame
Animasi frame merupakan animasi yang paling sederhana, dimana animasinya didapatkan dari rangkaian gambar yang bergantian ditunjukan, pergantian gambar ini diukur dalam satuan fps (frame per second). Contoh animasi ini adalah ketika kita membuat rangkaian gambar yang berbeda pada tepian sebuah buku, kemudian kita buka buku tersebut sedemikian rupa menggunakan jempol, maka gambar akan terlihat bergerak. Dalam Macromedia Flash, animasi ini dibuat dengan teknik animasi keyframe, teknik ini sering digunakan untuk mendapatkan animasi objek yang tidak bisa didapatkan dengan teknik animasi tween, teknik animasi path dan teknik animasi script. 
*Animasi Sprite
Pada animasi ini setiap objek bergerak secara mandiri dengan latar belakang yang diam, setiap objek animasi disebut “sprite”. Tidak seperti animasi cel dan animasi frame, setiap objek dalam animasi sprite bergerak tidak dalam waktu bersamaan, memiliki besar fps yang berbeda dan pengeditan hanya dapat dilakukan pada masing-masing objek sprite. Contoh animasi ini adalah animasi rotasi planet, burung terbang dan bola yang memantul. Penggunaan animasi jenis ini sering digunakan dalam Macromedia Director. 
  • Animasi Path
Animasi path adalah animasi dari objek yang gerakannya mengikuti garis lintasan yang sudah ditentukan. Contoh animasi jenis ini adalah animasi kereta api yang bergerak mengikuti lintasan rel. Biasanya dalam animasi path diberi perulangan animasi, sehingga animasi terus berulang hingga mencapai kondisi tertentu. Dalam Macromedia Flash, animasi jenis ini didapatkan dengan teknik animasi path, teknik ini menggunakan layer tersendiri yang  didefinisikan sebagai lintasan gerakan objek.
  • Animasi Spline
Pada animasi spline, animasi dari objek bergerak mengikuti garis lintasan yang berbentuk kurva, kurva ini didapatkan dari representasi perhitungan matematis. Hasil gerakan animasi ini lebih halus dibandingkan dengan animasi path. Contoh animasi jenis ini adalah animasi kupu-kupu yang terbang dengan kecepatan yang tidak tetap dan lintasan yang berubah-ubah. Dalam Macromedia Flash, animasi jenis ini didapatkan dengan teknik animasi script, teknik ini menggunakan action script yang membangkitkan sebuah lintasan berbentuk kurva dari persamaan matematis. 
  • Animasi Vektor
Animasi vektor mirip dengan animasi sprite, perbedaannya hanya terletak pada gambar yang digunakan dalam objek sprite-nya. Pada animasi sprite, gambar yang digunakan adalah gambar bitmap, sedangkan animasi vektor menggunakan gambar vektor dalam objek sprite-nya. Penggunaan vektor ini juga mengakibatkan ukuran file animasi vektor menjadi lebih kecil dibandingkan dengan file animasi sprite. 
  • Animasi Clay
Animasi ini sering disebut juga animasi doll (boneka). Animasi ini dibuat menggunakan boneka-boneka tanah liat atau material lain yang digerakkan perlahan-lahan, kemudian setiap gerakan boneka-boneka tersebut difoto secara beruntun, setelah proses pemotretan selesai, rangkaian foto dijalankan dalam kecepatan tertentu sehingga dihasilkan gerakan animasi yang unik. Contoh penerapan animasi ini adalah pada film Shaun the Sheep. Teknik animasi inilah yang menjadi cikal bakal animasi 3 Dimensi yang pembuatannya menggunakan alat bantu komputer.
  • Morphing
Morphing adalah mengubah satu bentuk menjadi bentuk yang lain. Morphing memperlihatkan serangkaian frame yang menciptakan gerakan halus dari bentuk pertama yang kemudian mengubah dirinya menjadi bentuk yang lain. Dalam Macromedia Flash animasi jenis ini dilakukan dengan teknik tweening shape. 
  • Animasi Digital
Animasi digital adalah penggabungan teknik animasi cell (Hand Drawn) yang dibantu dengan komputer. Gambar yang sudah dibuat dengan tangan kemudian dipindai, diwarnai, diberi animasi, dan diberi efek di komputer, sehingga animasi yang didapatkan lebih hidup tetapi tetap tidak meninggalkan identitasnya sebagai animasi 2 dimensi. Contoh animasi jenis ini adalah film Inuyasha dan Lion King.
  • Animasi Karakter
Animasi karakter biasanya digunakan dalam film kartun berbasis 3 dimensi, oleh karena itu ada juga yang menyebutnya sebagai animasi 3D. Pada animasi ini setiap karakter memiliki ciri dan gerakan yang berbeda tetapi bergerak secara bersamaan. Dalam pengerjaannya, animasi jenis ini sangat mengandalkan komputer, hanya pada permulaan saja menggunakan teknik manual, yaitu pada saat pembuatan sketsa model atau model patung yang nantinya di-scan dengan scanner biasa atau 3D Scanner. Setelah itu proses pembuatan objek dilakukan di komputer menggunakan perangkat lunak 3D modelling and animation, seperti Maya Unlimited, 3ds max dan lain sebagainya. Setelah itu dilakukan editting video, penambahan spesial efek dan sulih suara menggunakan perangkat lunak terpisah. Bahkan ada beberapa animasi dengan teknik ini yang menggunakan alam nyata sebagai latar cerita animasi tersebut. Contoh animasi dengan teknik ini adalah Film yang berjudul Finding Nemo, Toy Story dan Moster Inc. 

Peran Animasi
Adapun dampak dari adanya animasi di berbagai bidang, diantaranya bidang pendidikan, politik, ekonomi, sosial dan budaya. Dalam dunia pendidikan sendiri gambar animasi dianggap sangatlah penting. Karena dengan adanya gambar animasi  bisa memperlancar proses belajar dan lebih meningkatkan ketertarikan untuk mengikuti pelajaran, selain itu animasi bisa mempermudah penggambaran dari suatu materi pelajaran tertentu.
Software Animasi
Saat ini terdapat banyak jenis software animasi yang beredar di pasaran, dari software yang mempunyai kemampuan yang sederhana hingga yang komplek, dari yang gratis hingga puluhan juta rupiah.
Dari sisi fungsi penggunaan software animasi dapat dikelompokkan menjadi Software Animasi 2 Dimensi dan Software Animasi 3 Dimensi.
  • Software Animasi 2 Dimensi.
Software animasi 2D adalah software yang digunakan untuk membuat animasi tradisional (flat animation), umumnya mempunyai kemampuan untuk menggambar, mengatur gerak, mengatur waktu, beberapa dapat mengimpor suara. Dari sisi penggunaan umumnya tidak sulit. 
Contoh dari Software Animasi 2D ini antara lain:
*Macromedia Flash
*Adobe Flash
*Macromedia Director
*ToonBoom Studio
*Adobe ImageReady
*Corel RaVe
*Swish Max
*Adobe After Effect
  • Software Animasi 3 Dimensi
Software animasi 3D mempunyai fasilitas dan kemampuan yang canggih untuk membuat animasi 3 dimensi. Fasilitas dan kemampuan tersebut antara lain, membuat obyek 3D, pengaturan gerak kamera, pemberian efek, import video dan suara, serta masih banyak lagi. Beberapa software animasi 3D mempunyai kemampuan khusus, misalnya untuk animasi figure(manusia), animasi landscape (pemandangan), animasi title (judul), dll. Karena kemampuannya yang canggih, dalam penggunaannya diperlukan pengetahuan yang cukup tinggi dan terkadang rumit.
Contoh dari Software Animasi 3D ini antara lain:
*3D Studio Max
*Maya
*Poser (figure animation)
*Bryce (landscape animation)
*Vue (landscape animation)
*Cinema 4D
*Blender (gratis)
*Daz3D (gratis)
Apabila kita perhatikan pada penjelasan diatas, maka dapat disimpulkan bahwa terdapat dua hal penting yang harus diperhatikan dalam pembuatan animasi, yaitu Objek/ gambar dan alur gerak.

Sumber Refrensi :
http://sarahanimasi-mahanaim.blogspot.co.id/2015/11/artikel-tentang-animasi.html
http://www.animasi.tk/2015/11/artikel-animasi.html
http://www.mandalamaya.com/pengertian-animasi-dan-jenis-jenis-animasi/

Distribusi Frekuensi & Contoh Soalnya.
POSTED ON Selasa, 06 Oktober 2015 AT 22.26 \\
Definisi Distribusi Frekuensi
  • Merupakan penyusunan data ke dalam kelas – kelas tertentu dimana setiap individu/item hanya termasuk kedalam salah satu kelas tertentu
  • Pengelompokan data ke dalam beberapa kategori yang menunjukan banyaknya data dalam setiap kategori dan setiap data tidak dapat dimasukan ke dalam dua atau lebih kategori
  • Distribusi Frekuensi adalah penyusunan data dalam kelas-kelas interval. (Kuswanto,2006).
  • Distribusi Frekuensi adalah membuat uraian dari suatu hasil penelitian dan menyajikan hasil penelitian tersebut dalam bentuk yang baik, yakni bentuk stastistik popular yang sederhana sehingga kita dapat lebih mudah mendapat gambaran tentang situasi hasil penelitian. (Djarwanto,1982). 
  • Distribusi Frekuensi atau Tabel Frekuensi adalah suatu tabel yang banyaknya kejadian atau frekuensi (cases) didistribusikan ke dalam kelompok-kelompok (kelas-kelas) yang berbeda. (Budiyuwono,1987)
Jenis Distribusi Frekuensi
  • Tujuan Distribusi Frekuensi : untuk mengatur data mentah (belum dikelompokan) ke dalam bentuk yang rapi tanpa mengurangi inti informasi yang ada, Data menjadi informatif dan mudah dipahami.
  • Ditinjau dari jenisnya : Numerik : pengelompokan data berdasarkan angka – angka tertentu, biasanya sajikan dengan grafik histogram. Kategorikal : pengelompokan data berdasarkan kategori – kategori tertentu, biasanya disajikan dengan grafik batang, lingkaran dan gambar.
  • Ditinjau dari nyata tidaknya frekuensi : Absolut, jumlah bilangan yang menyatakan banyaknya data pada suatu kelompok tertentu. Relatif, juga dinamakan tabel persentase.
  • Ditinjau dari kesatuannya : Satuan, Kumulatif.
  • Data yang diolah merupakan suatu deret hitung yang berdiri sendiri.
Jenis Tabel Distribusi Frekuensi
  1. Tabel distribusi frekuensi data tunggal, menyajikan frekuensi data yang tidak dikelompokkan.
  2. Tabel distribusi frekuensi data kelompok, menyajikan pencaran frekuensi data yang dikelompokkan.
  3. Tabel distribusi frekuensi kumulatif, menyajikan frekuensi yang datanya selalu ditambahkan. 
  4. Tabel distribusi frekuensi relative, menyajikan data frekuensi yang bukan sebenarnya, misalnya dalam bentuk persen.

Oke langsung saja, biar lebih jelasnya lagi kita mulai dengan menjawab contoh soal berikut.
Berikut ini adalah Tugas Mata Kuliah saya tentang Distribusi Frekuensi :

Diperoleh data pengunjung taman Edupark UMS selama 80 hari terakhir sebagai berikut (sumber: data rekaan): Buat tabel distribusi frekuensi dalam bentuk :Kategorikal, Relatif, dan Kumulatif (kurang dan lebih dari)Buat grafik histogram, polygon, dan ogif

79 80 70 68 90 92 80 70 63 76
49 84 71 72 35 93 91 74 60 63
48 90 92 85 83 75 61 99 83 88
74 70 38 51 73 71 72 95 82 70
81 91 56 65 74 90 97 80 60 66
98 93 81 93 43 72 91 59 67 88
87 82 74 83 86 87 88 71 89 79
81 78 73 86 68 75 81 77 63 75


Langkah-langkah menjawab soal di atas seperti ini,
Langkah 1 : Urutkan dari yang terkecil hingga yang terbesar guna memudahkan dalam melakukan pernghitungan.
Data yang telah di urutkan :
35 38 43 48 49 51 56 59 60 60 61 63 63 63 65 66 67 68 68 70 70 70 70 71 71 71 72 72 72 73 73 74 74 74 74 75 75 75 76 77 78 79 79 80 80 80 81 81 81 81 82 82 83 83 83 84 85 86 86 87 87 88 88 88 89 90 90 90 91 91 91 92 92 93 93 93 95 97 98 99
Kemudian tentukan Nilai Max & Nilai Min, guna membuat jangkauan (Range).

Min = 35
Max = 99
Range = 99-35 = 64

Langkah 2 : Sebenarnya tidak ada aturan pasti, namun untuk memudahkan bisa menggunakan aturan Sturges.

Aturan Sturges K = 1 + 3,322 log n atau K = 1+3,3 log n
K =  banyaknya kelas
n = banyaknya jumlah data observasi

Banyaknya data atau n = 80 maka...

K  = 1 + 3,3 log 80
 = 1 + 3,3 (1,903) = 1 + 6,279 = 7,279 ≈ 7

Langkah 3 : Panjang/Lebar Kelas (Interval). Interval adalah selisih batas atas dan batas bawah dari suatu kategori.

Panjang Kelas P = J/K = Xn-X1/K
K = banyaknya kelas
Xn = nilai observasi terbesar
X1 = nilai observasi terkecil
Maka : P = 99-35/7 =64/7 = 9,143 ≈ 9

Langkah 4 : Tabulasi dan Tabel Frekuensi.


Batas kelas : Nilai terendah dan tertinggi

Batas kelas dalam suatu interval kelas terdiri dari dua macam :
  • Batas kelas bawah – lower class limit, Nilai teredah dalam suati interval kelas.
  • Batas kelas atas – upper class limit, Nilai teringgi dalam suatu interval kelas.
Pada tabel di atas, 44 merupakan nilai tertinggi kelas ke 1, dan 45 merupakan nilai terendah kelas ke 2. Begitupun seterusnya.

Nilai tengah : Tanda atau perinci dari suatu interval kelas dan merupakan suatu angka yang dapat dianggap mewakili suatu interval kelas. Nilai tengah kelas, kelasnya berada di tengah-tengah pada setiap interval kelas.

Nilai tengah kelas 1 : (35+44)/2 = 39,5
Nilai tengah kelas 2 : (45+54)/2 = 49,5
Nilai tengah kelas 3 : (55+64)/2 = 59,5
Dst.

Nilai tepi kelas : Nilai batas antara kelas yang memisahkan nilai antara kelas satu dengan kelas lainnya. Penjumlahan nilai atas kelas dengan nilai bawah kelas diantaranya dan di bagi dua.

Nilai tepi kelas 2 : (44+45)/2 = 44,5
Nilai tepi kelas 3 : (54+55)/2 = 54,5
Nilai tepi kelas 4 : (64+65)/2 = 64,5
Dst.

Distribusi Frekuensi Absolut & Relatif :

Absolut : Jumlah bilangan yang menyatakan banyaknya data pada suatu kelompok tertentu.

Relatif : Jumlah persentase yang menyatakan banyaknya data pada suatu kelompok tertentu. Frekuensi setiap kelas dibandingkan dengan frekuensi total. Tujuannya adalah untuk memudahkan membaca data secara tepat dan tidak kehilangan makna dari kandungan data.

Frekuensi Relatif = Frekuensi Kelas/Jumlah Kelas x 100

Pada tabel diatas,
Frek. Relatif kelas 1 : (3/80)x100 = 3,75
Frek. Relatif kelas 2 : (3/80)x100 = 3,75
Frek. Relatif kelas 3 : (8/80)x100 = 10
Frek. Relatif kelas 4 : (21/80)x100 = 26,25
Dst


Distribusi Frekuensi Satuan & Kumulatif
  • Distribusi frekuensi satuan : frekuensi yang menunjukkan berapa banyak data pada kelompok tertentu. 
  • Distribusi frekuensi kumulatif : distribusi frekuensi yang menunjukkan jumlah frekuensi pada sekelompok nilai tertentu, mulai dari kelompok sebelumnya sampai dengan kelompok tersebut.
  • Frekuensi kumulatif kurang dari : penjumlahan dari mulai frekuensi terendah sampai kelas tertinggi dan jumlah akhirnya merupakan jumlah data (n).
  • Frekuensi kumulatif lebih dari : pengurangan dari jumlah data (n) dengan frekuensi setiap kelas dimulai dari kelas terendah dan jumlah akhirnya adalah nol.

Oke, setelah semuanya selesai, sekarang mari kita membuat Grafik dari jawaban soal diatas.

Grafik Histogram :
Histogram merupakan diagram balok. Histogram menghubungkan antara tepi kelas interval dengan pada sumbu horizontal (X) dan frekuensi setiap kelas pada sumbu vertikal (Y).



Grafik Polygon :
Menggunakan garis yang mengubungkan titik – titik  yang merupakan koordinat antara nilai tengah kelas dengan jumlah frekuensi pada kelas tersebut.

 
Kurva Ogif / Ogive :
Merupkan diagram garis yang menunjukan kombinasi antara interval kelas dengan frekuensi kumulatif.



Nah, Seperti itulah langkah-langkah untuk mengerjakan soal Distribusi Frekuensi berikut dengan grafik-grafiknya.

Semoga bermanfaat,
Surakarta, 05/10/2015.
Pendidikan Teknik Informatika.
Universitas Muhammadiyah Surakarta.

Program Dalam Algoritma (Sorting)
POSTED ON Senin, 13 April 2015 AT 15.12 \\
1.     INSERTION SORT
a.      Script :
#include
using namespace std;
int main()
{
    int a[10], i, j, k, temp;
    cout<<"masukan angka:\n";
    for (i = 0; i < 16; i++)
    {
        cin>>a[i];
    }
    for (i = 1; i < 10; i++)
    {
        for (j = i; j >= 1; j--)
        {
            if (a[j] < a[j-1])
            {
                temp = a[j];
                a[j] = a[j-1];
                a[j-1] = temp;
            }
            else
                break;
        }
    }
    cout<<"sorted array\n"<    for (k = 0; k < 16; k++)
    {
          cout<    }
    getch();
}
b.     Gambar :


2.     TREE SORT
a.      Script :
#include
using namespace std;
struct tree{
    int info;
    tree *Left, *Right;
};
tree *root;
class TreeSort{
    public:
        int no_of_elements;
        int elements[10];
    public:
        void getarray();
        void sortit();
        void insert1(int);
        tree *insert2(tree *, tree *);
        void display(tree *);
};
void TreeSort::getarray(){
    cout<<"Berapa banyak elmen yang anda inginkan? ";
    cin>>no_of_elements;
    cout<<"masukan angka: ";
    for(int i=0;i        cin>>elements[i];
    }
}
void TreeSort::sortit(){
    for(int i = 0; i  < no_of_elements; i++){
        insert1(elements[i]);
    }
}
tree* TreeSort::insert2(tree *temp,tree *newnode){
    if(temp==NULL){
        temp=newnode;
    }
    else if(temp->info < newnode->info){
        insert2(temp->Right,newnode);
        if(temp->Right==NULL)
            temp->Right=newnode;
    }
    else{a
        insert2(temp->Left,newnode);
        if(temp->Left==NULL)
            temp->Left=newnode;
    }
    return temp;
}
void TreeSort::insert1(int n){
    tree *temp=root,*newnode;
    newnode=new tree;
    newnode->Left=NULL;
    newnode->Right=NULL;
    newnode->info=n;
    root=insert2(temp,newnode);
}
/* Inorder traversal */
void TreeSort::display(tree *t = root){
    if(root==NULL){
        cout<<"Nothing to display";
    }else
    if(t!=NULL){
        display(t->Left);
        cout<info<<" ";
        display(t->Right);
    }
}
int main(){
    TreeSort TS;
    TS.getarray();
    TS.sortit();
    TS.display();
    return 0;
}
b.     Gambar :



3.     BUBBLE SORT
a.      Script :
#include
using namespace std;

int main(){
     //declaring array
      int array[5];
      cout<<"masukan 5 angka random : "<
      for(int i=0; i<5 i="" o:p="">
      {
     //Taking input in array 
       cin>>array[i];       
      } 
      cout<
      cout<<"Input array : "<
     
      for(int j=0; j<5 j="" o:p="">
      {
       //Displaying Array
       cout<<"\t\t\tValue at "<
      }  
      cout<
    // Bubble Sort Starts Here
     int temp;
     for(int i2=0; i2<=4; i2++)
   {
     for(int j=0; j<4 j="" o:p="">
     {
        //Swapping element in if statement   
           if(array[j]>array[j+1])
       {
        temp=array[j];
        array[j]=array[j+1];
        array[j+1]=temp;       
       }
     }        
   }
   // Displaying Sorted array
      cout<<"  Sorted Array : "<
     for(int i3=0; i3<5 i3="" o:p="">
   {
    cout<<"\t\t\tValue at "<
   }  
return 0;
}
b.     Gambar :



4.     EXCHANGE SORT
a.      Script :
using namespace std;
#include
int main(void)
{
          int array[5];           // An array of integers.
          int length = 5;                 // Lenght of the array.
          int i, j;
          int temp;

        //Some input
          for (i = 0; i < 5; i++)
          {
                   cout << "masukan angka: ";
                   cin >> array[i];
          }

          //Algorithm
          for(i = 0; i < (length -1); i++)
          {
                   for (j=(i + 1); j < length; j++)
                   {
                             if (array[i] < array[j])
                             {
                                      temp = array[i];
                                      array[i] = array[j];
                                      array[j] = temp;
                             }
                   }
          }
          //Some output
          for (i = 0; i < 5; i++)
          {
                   cout << array[i] << endl;
          }
}

b.     Gambar :



5.     SELECTION SORT
a.      Script :
#include
#include

using namespace std;


template
void s_sort(T a[],int n)
{
     int i,j,t;
     for(i=0;i
     {
                     for(j=i+1;j
                     {
                                       if(a[j]a[i])
                                       {
                                                    t=a[i];
                                                    a[i]=a[j];
                                                    a[j]=t;
                                       }
                     }
     }
}


int main()
{
    int a[100],i,n;
    cout<<"Masukan jumlah elmen:\n";
    cin>>n;
    cout<<"\nmasukan angka:\n";
    for(i=0;i
    {

                      cout<<"\nmasukan:";
                    cin>>a[i];
    }
    s_sort(a,n);
    cout<<"\nAfter Sorting\n";
    for(i=0;i
    {
                    cout<
    }
    getch();
    return 0;
}
b.     Gambar :



6.     HEAP SORT
a.      Script :
#include
#include
using namespace std;
void max_heapify(int *a, int i, int n)
{
    int j, temp;
    temp = a[i];
    j = 2*i;
    while (j <= n)
    {
        if (j < n && a[j+1] > a[j])
            j = j+1;
        if (temp > a[j])
            break;
        else if (temp <= a[j])
        {
            a[j/2] = a[j];
            j = 2*j;
        }
    }
    a[j/2] = temp;
    return;
}
void heapsort(int *a, int n)
{
    int i, temp;
    for (i = n; i >= 2; i--)
    {
        temp = a[i];
        a[i] = a[1];
        a[1] = temp;
        max_heapify(a, 1, i - 1);
    }
}
void build_maxheap(int *a, int n)
{
    int i;
    for(i = n/2; i >= 1; i--)
    {
        max_heapify(a, i, n);
    }
}
int main()
{
    int n, i, x;
    cout<<"Masukan jumlah elmen:\n";
    cin>>n;
    int a[20];
    for (i = 1; i <= n; i++)
    {
        cout<<"masukan angka:"<<(i)<
        cin>>a[i];
    }
    build_maxheap(a,n);
    heapsort(a, n);
    cout<<"sorted output\n";
    for (i = 1; i <= n; i++)
    {
        cout<
    }
    getch();
}
b.     Gambar :



7.     QUICK SORT
a.      Script :
#include

void quickSort(int a[], int first, int last);
int pivot(int a[], int first, int last);
void swap(int& a, int& b);
void swapNoTemp(int& a, int& b);
void print(int array[], const int& N);

using namespace std;

int main()
{
    int test[] = { 7, -13, 1, 3, 10, 5, 2, 4 };
    int N = sizeof(test)/sizeof(int);

    cout << "Size of test array :"  << N << endl;

    cout << "Before sorting : " << endl;
    print(test, N);

    quickSort(test, 0, N-1);

    cout << endl << endl << "After sorting : " << endl;
    print(test, N);
    
    return 0;
}

/**
 * Quicksort.
 * @param a - The array to be sorted.
 * @param first - The start of the sequence to be sorted.
 * @param last - The end of the sequence to be sorted.
*/
void quickSort( int a[], int first, int last )
{
    int pivotElement;

    if(first < last)
    {
        pivotElement = pivot(a, first, last);
        quickSort(a, first, pivotElement-1);
        quickSort(a, pivotElement+1, last);
    }
}

/**
 * Find and return the index of pivot element.
 * @param a - The array.
 * @param first - The start of the sequence.
 * @param last - The end of the sequence.
 * @return - the pivot element
*/
int pivot(int a[], int first, int last)
{
    int  p = first;
    int pivotElement = a[first];

    for(int i = first+1 ; i <= last ; i++)
    {
        /* If you want to sort the list in the other order, change "<=" to ">" */
        if(a[i] <= pivotElement)
        {
            p++;
            swap(a[i], a[p]);
        }
    }

    swap(a[p], a[first]);

    return p;
}


/**
 * Swap the parameters.
 * @param a - The first parameter.
 * @param b - The second parameter.
*/
void swap(int& a, int& b)
{
    int temp = a;
    a = b;
    b = temp;
}

/**
 * Swap the parameters without a temp variable.
 * Warning! Prone to overflow/underflow.
 * @param a - The first parameter.
 * @param b - The second parameter.
*/
void swapNoTemp(int& a, int& b)
{
    a -= b;
    b += a;// b gets the original value of a
    a = (b - a);// a gets the original value of b
}

/**
 * Print an array.
 * @param a - The array.
 * @param N - The size of the array.
*/
void print(int a[], const int& N)
{
    for(int i = 0 ; i < N ; i++)
        cout << "array[" << i << "] = " << a[i] << endl;
}
b.     Gambar :



8.     MERGE SORT
a.      Script :
using namespace std;
#include
#include
void merge(int *,int, int , int );
void mergesort(int *a, int low, int high)
{
    int mid;
    if (low < high)
    {
        mid=(low+high)/2;
        mergesort(a,low,mid);
        mergesort(a,mid+1,high);
        merge(a,low,high,mid);
    }
    return;
}
void merge(int *a, int low, int high, int mid)
{
    int i, j, k, c[50];
    i = low;
    k = low;
    j = mid + 1;
    while (i <= mid && j <= high)
    {
        if (a[i] < a[j])
        {
            c[k] = a[i];
            k++;
            i++;
        }
        else
        {
            c[k] = a[j];
            k++;
            j++;
        }
    }
    while (i <= mid)
    {
        c[k] = a[i];
        k++;
        i++;
    }
    while (j <= high)
    {
        c[k] = a[j];
        k++;
        j++;
    }
    for (i = low; i < k; i++)
    {
        a[i] = c[i];
    }
}
int main()
{
    int a[20], i, b[20];
    cout<<"enter  the elements\n";
    for (i = 0; i < 5; i++)
    {
        cin>>a[i];
    }
    mergesort(a, 0, 4);
    cout<<"sorted array\n";
    for (i = 0; i < 5; i++)
    {
        cout<
    }
    cout<<"\nenter  the elements\n";
    for (i = 0; i < 5; i++)
    {
        cin>>b[i];
    }
    mergesort(b, 0, 4);
    cout<<"sorted array\n";
    for (i = 0; i < 5; i++)
    {
        cout<
    }
    getch();
}
b.     Gambar :



9.     SHELLSORT
a.      Srcipt :
using namespace std;
#include
#include
void read(int a[10], int n){
          cout<<"Reading\n";
          for(int i = 0; i < n; i++)
                   cin>>a[i];
}
void display(int a[10], int n){
          for(int i = 0; i < n; i++)
                   cout<
}
void shell(int a[10], int n){
          int gap = n/2;
          do{
                   int swap;
                   do{
                             swap = 0;
                             for(int i = 0; i < n - gap; i++)
                                      if(a[i] > a[i+gap])
                                      {
                                                int t = a[i];
                                                a[i] = a[i+gap];
                                                a[i+gap] = t;
                                                swap = 1;
                                      }
                   }
                   while(swap);
          }
          while(gap = gap / 2);
}
int main(){
          int a[10];
          int n;
          cout<<"enter n\n";
          cin>>n;
          read(a,n);
          cout<<"before sorting\n";
          display(a,n);
          shell(a,n);
          cout<<"\nafter sorting\n";
          display(a,n);
          getch();
}
b.     Gambar :



Sumber : dari berbagai sumber lalu disadur dan diselesaikan dengan baik.

Welcome Our Dream Of Daru
Animasi
POSTED ON Minggu, 11 September 2016 AT 14.49 \\
Animasi adalah hasil dari pengolahan gambar tangan, sehingga menjadi Gambar yang bergerak yang sangat atraktif saat ditampilkan secara berurutan untuk mensimulasi gerakan yang hidup. Pada dasarnya animasi adalah transformasi objek dimana semua titik pada sembarang objek akan diubah, sementara koordinatnya tetap. Objek tersebut didefinisi berupa gambar manusia, hewan, maupun tulisan Atau juga Animasi merupakan suatu teknik menampilkan gambar berurut sedemikian rupa sehingga penonton merasakan adanya ilusi gerakan (motion) pada gambar yang ditampilkan.
Film-film animasi terdahulu menggunakan ratusan sampai ribuan gambar sketsa tangan untuk membuat sebuah animasi pergerakan satu-persatu. Tiap gambar bergerak tersebut dikenal dengan frame. Untuk membuat animasi yang halus pergerakannya maka dibutuhkan makin banyak gambar.
Setelah era komputer grafik seperti sekarang, proses animasi tidak lagi merupakan suatu proses yang terlalu rumit. Seorang animator 2D atau 3D cukup menganimasikan frame awal dan akhir dari suatu pergerakan animasi, selebihnya komputer akan mengkalkulasi gerakan di antaranya (dikenal dengan istilah In-Between). Informasi pergerakan sebuah objek dicatat komputer dengan informasi berupa keyframe. Jumlah keyframe dan frame di antaranya inilah yang menentukan halus atau tidaknya sebuah pergerakan animasi.
Animasi sendiri berasal dari bahasa latin yaitu “anima” yang berarti jiwa, hidup, semangat. Sedangkan karakter adalah orang, hewan maupun objek nyata lainnya yang dituangkan dalam bentuk gambar 2D maupun 3D. shingga karakter animasi secara dapat diartikan sebagai gambar yang memuat objek yang seolah-olah hidup, disebabkan oleh kumpulan gambar itu berubah beraturan dan bergantian ditampilkan.
Perkembangan animasi sebenarnya telah meluas di Indonesia, bahkan ada beberapa studio yang telah membuat animasi lisensi luar dikerjakan oleh tenaga ahli lokal atau dengan kalimat lain, Indonesia sudah lama terkenal hanya sebagai tempat produksi industri film animasi Jepang dan Amerika Serikat.
Pengertian Animasi Menurut Ibiz Fernandes dalam bukunya Macromedia Flash Animation & Cartooning: A creative Guide, animasi definisikan sebagai berikut :
“Animation is the process of recording and playing back a sequence of stills to achieve the illusion of continues motion” ( Ibiz Fernandez McGraw- Hill/Osborn, California, 2002)
Yang artinya kurang lebih adalah :
“Animasi adalah sebuah proses merekam dan memainkan kembali serangkaian gambar statis untuk mendapatkan sebuah ilusi pergerakan.” Berdasarkan arti harfiah, Animasi adalah menghidupkan. Yaitu usaha untuk menggerakkan sesuatu yang tidak bisa bergerak sendiri.

Secara garis besar, animasi computer dibagi menjadi dua kategori, yaitu:

  • Computer Assisted Animation, animasi pada kategori ini biasanya menunjuk pada system animasi 2 dimensi, yaitu mengkomputerisasi proses animasi tradisional yang menggunakan gambaran tangan. Computer digunakan untuk pewarnaan, penerapan virtual kamera dan penataan data yang digunakan dalam sebuah animasi.
  • Computer Generated Animation, pada kategori ini biasanya digunakan untuk animasi 3 dimensi dengan program 3D seperti 3D Studio Max, Maya, Autocad dll.
Jenis-jenis Animasi
Karakter animasi sekarang telah berkembang dimana awal mula mempunyai prinsip yang sederhana, sekarang telah terbagi menjadi beberapa jenis animasi, yaitu :
  • Animasi 2D, Aniamsi 2D bisa juga disebut dengan film kartun. Dimana kartun telah memiliki karakter yang memiliki sifat lucu da  menghibur.
  • Aniamsi 3D
Dampak dari adanya perkembangan teknologi dan komputer membuat teknik pembuatan animasi 3D semakin berkenmbang, dimana animasi 3D merupakan pengembangan dari animasi 2D. Adnya animasi 3Dkarakter yang diperlihatkansemakin hidup dan nyata, mendekati wujud manusia aslinya.
  • Stop Motion Animation
Animasi ini juga dikenali sebagai claymation kerana animasi ini menggunakan clay (tanah liat) sebagai objek yang di gerakkan. Teknik ini pertama kali di perkenalkan oleh Stuart Blakton pada tahun 1906. Teknik ini seringkali digunakan dalam menghasilkan visual effect bagi filem-filem era tahun 50-an dan 60-an. Film Animasi Clay Pertama dirilis bulan Februari 1908 berjudul, A Sculptors Welsh Rarebit Nightmare. Untuk beberapa waktu yang lalu juga,  beredar film clay yang berjudul Chicken Run.
Jenis ini yang paling jarang kita dengar dan temukan diantara jenis lainnya. Meski namanya clay (tanah liat), yang dipakai bukanlah tanah liat biasa. Animasi ini memakai plasticin, bahan lentur seperti permen karet yang ditemukan pada tahun 1897. Tokoh-tokoh dalam animasi Clay dibuat dengan memakai rangka khusus untuk kerangka tubuhnya, lalu kerangka tersebut ditutup dengan plasficine sesuai bentuk tokoh yang ingin dibuat. Bagian-bagian tubuh kerangka ini, seperti kepala, tangan, kaki, disa dilepas dan dipasang lagi. Setelah tokoh-tokohnya siap, lalu difoto gerakan per gerakan. Foto-foto tersebut lalu digabung menjadi gambar yang bisa bergerak seperti yang kita tonton di film. Animasi ini agak sukar untuk dihasilkan dan memerlukan kos yang tinggi.
  • Animasi jepang (Anime)
Anime merupakan sebutan tersendiri untuk film animasi di Jepang. Dalam hal pembuatan animasi Jepang tidak kalah dibandingkan buatan Eropa. Dimana Anime memiliki karakter yang berbeda dibandingkan dengan animasi buatan eropa. Salah satu film yang terkenal adalah Final Fantasy Advent Children dan Jepang sudah banyak memproduksi anime. Berbeda dengan animasi Amerika, anime Jepang tidak semua diperuntukkan untuk anak-anak,  bahkan ada yang khusus dewasa.
Selain itu berdasarkan teknik pembuatannya animasi dibedakan menjadi 10 jenis, yaitu:
  • Animasi Cel
Animasi cel berasal dari kata “celluloid”, yaitu bahan dasar dalam pembuatan animasi jenis ini ketika tahun-tahun awal adanya animasi. Animasi cel merupakan lembaran-lembaran yang membentuk animasi tunggal, masing-masing cel merupakan bagian yang terpisah sebagai  objek animasi. misalnya ada tiga buah animasi cel, cel pertama berisi satu animasi karakter, cel kedua berisi animasi karakter lain, dan cel terakhir berisi latar animasi. Ketiga animasi cel ini akan disusun berjajar, sehingga ketika dijalankan animasinya secara bersamaan, terlihat seperti satu kesatuan. Contoh animasi jenis ini adalah film kartun seperti Tom and Jerry, Mickey Mouse dan Detectif Conan.
  • Animasi Frame
Animasi frame merupakan animasi yang paling sederhana, dimana animasinya didapatkan dari rangkaian gambar yang bergantian ditunjukan, pergantian gambar ini diukur dalam satuan fps (frame per second). Contoh animasi ini adalah ketika kita membuat rangkaian gambar yang berbeda pada tepian sebuah buku, kemudian kita buka buku tersebut sedemikian rupa menggunakan jempol, maka gambar akan terlihat bergerak. Dalam Macromedia Flash, animasi ini dibuat dengan teknik animasi keyframe, teknik ini sering digunakan untuk mendapatkan animasi objek yang tidak bisa didapatkan dengan teknik animasi tween, teknik animasi path dan teknik animasi script. 
*Animasi Sprite
Pada animasi ini setiap objek bergerak secara mandiri dengan latar belakang yang diam, setiap objek animasi disebut “sprite”. Tidak seperti animasi cel dan animasi frame, setiap objek dalam animasi sprite bergerak tidak dalam waktu bersamaan, memiliki besar fps yang berbeda dan pengeditan hanya dapat dilakukan pada masing-masing objek sprite. Contoh animasi ini adalah animasi rotasi planet, burung terbang dan bola yang memantul. Penggunaan animasi jenis ini sering digunakan dalam Macromedia Director. 
  • Animasi Path
Animasi path adalah animasi dari objek yang gerakannya mengikuti garis lintasan yang sudah ditentukan. Contoh animasi jenis ini adalah animasi kereta api yang bergerak mengikuti lintasan rel. Biasanya dalam animasi path diberi perulangan animasi, sehingga animasi terus berulang hingga mencapai kondisi tertentu. Dalam Macromedia Flash, animasi jenis ini didapatkan dengan teknik animasi path, teknik ini menggunakan layer tersendiri yang  didefinisikan sebagai lintasan gerakan objek.
  • Animasi Spline
Pada animasi spline, animasi dari objek bergerak mengikuti garis lintasan yang berbentuk kurva, kurva ini didapatkan dari representasi perhitungan matematis. Hasil gerakan animasi ini lebih halus dibandingkan dengan animasi path. Contoh animasi jenis ini adalah animasi kupu-kupu yang terbang dengan kecepatan yang tidak tetap dan lintasan yang berubah-ubah. Dalam Macromedia Flash, animasi jenis ini didapatkan dengan teknik animasi script, teknik ini menggunakan action script yang membangkitkan sebuah lintasan berbentuk kurva dari persamaan matematis. 
  • Animasi Vektor
Animasi vektor mirip dengan animasi sprite, perbedaannya hanya terletak pada gambar yang digunakan dalam objek sprite-nya. Pada animasi sprite, gambar yang digunakan adalah gambar bitmap, sedangkan animasi vektor menggunakan gambar vektor dalam objek sprite-nya. Penggunaan vektor ini juga mengakibatkan ukuran file animasi vektor menjadi lebih kecil dibandingkan dengan file animasi sprite. 
  • Animasi Clay
Animasi ini sering disebut juga animasi doll (boneka). Animasi ini dibuat menggunakan boneka-boneka tanah liat atau material lain yang digerakkan perlahan-lahan, kemudian setiap gerakan boneka-boneka tersebut difoto secara beruntun, setelah proses pemotretan selesai, rangkaian foto dijalankan dalam kecepatan tertentu sehingga dihasilkan gerakan animasi yang unik. Contoh penerapan animasi ini adalah pada film Shaun the Sheep. Teknik animasi inilah yang menjadi cikal bakal animasi 3 Dimensi yang pembuatannya menggunakan alat bantu komputer.
  • Morphing
Morphing adalah mengubah satu bentuk menjadi bentuk yang lain. Morphing memperlihatkan serangkaian frame yang menciptakan gerakan halus dari bentuk pertama yang kemudian mengubah dirinya menjadi bentuk yang lain. Dalam Macromedia Flash animasi jenis ini dilakukan dengan teknik tweening shape. 
  • Animasi Digital
Animasi digital adalah penggabungan teknik animasi cell (Hand Drawn) yang dibantu dengan komputer. Gambar yang sudah dibuat dengan tangan kemudian dipindai, diwarnai, diberi animasi, dan diberi efek di komputer, sehingga animasi yang didapatkan lebih hidup tetapi tetap tidak meninggalkan identitasnya sebagai animasi 2 dimensi. Contoh animasi jenis ini adalah film Inuyasha dan Lion King.
  • Animasi Karakter
Animasi karakter biasanya digunakan dalam film kartun berbasis 3 dimensi, oleh karena itu ada juga yang menyebutnya sebagai animasi 3D. Pada animasi ini setiap karakter memiliki ciri dan gerakan yang berbeda tetapi bergerak secara bersamaan. Dalam pengerjaannya, animasi jenis ini sangat mengandalkan komputer, hanya pada permulaan saja menggunakan teknik manual, yaitu pada saat pembuatan sketsa model atau model patung yang nantinya di-scan dengan scanner biasa atau 3D Scanner. Setelah itu proses pembuatan objek dilakukan di komputer menggunakan perangkat lunak 3D modelling and animation, seperti Maya Unlimited, 3ds max dan lain sebagainya. Setelah itu dilakukan editting video, penambahan spesial efek dan sulih suara menggunakan perangkat lunak terpisah. Bahkan ada beberapa animasi dengan teknik ini yang menggunakan alam nyata sebagai latar cerita animasi tersebut. Contoh animasi dengan teknik ini adalah Film yang berjudul Finding Nemo, Toy Story dan Moster Inc. 

Peran Animasi
Adapun dampak dari adanya animasi di berbagai bidang, diantaranya bidang pendidikan, politik, ekonomi, sosial dan budaya. Dalam dunia pendidikan sendiri gambar animasi dianggap sangatlah penting. Karena dengan adanya gambar animasi  bisa memperlancar proses belajar dan lebih meningkatkan ketertarikan untuk mengikuti pelajaran, selain itu animasi bisa mempermudah penggambaran dari suatu materi pelajaran tertentu.
Software Animasi
Saat ini terdapat banyak jenis software animasi yang beredar di pasaran, dari software yang mempunyai kemampuan yang sederhana hingga yang komplek, dari yang gratis hingga puluhan juta rupiah.
Dari sisi fungsi penggunaan software animasi dapat dikelompokkan menjadi Software Animasi 2 Dimensi dan Software Animasi 3 Dimensi.
  • Software Animasi 2 Dimensi.
Software animasi 2D adalah software yang digunakan untuk membuat animasi tradisional (flat animation), umumnya mempunyai kemampuan untuk menggambar, mengatur gerak, mengatur waktu, beberapa dapat mengimpor suara. Dari sisi penggunaan umumnya tidak sulit. 
Contoh dari Software Animasi 2D ini antara lain:
*Macromedia Flash
*Adobe Flash
*Macromedia Director
*ToonBoom Studio
*Adobe ImageReady
*Corel RaVe
*Swish Max
*Adobe After Effect
  • Software Animasi 3 Dimensi
Software animasi 3D mempunyai fasilitas dan kemampuan yang canggih untuk membuat animasi 3 dimensi. Fasilitas dan kemampuan tersebut antara lain, membuat obyek 3D, pengaturan gerak kamera, pemberian efek, import video dan suara, serta masih banyak lagi. Beberapa software animasi 3D mempunyai kemampuan khusus, misalnya untuk animasi figure(manusia), animasi landscape (pemandangan), animasi title (judul), dll. Karena kemampuannya yang canggih, dalam penggunaannya diperlukan pengetahuan yang cukup tinggi dan terkadang rumit.
Contoh dari Software Animasi 3D ini antara lain:
*3D Studio Max
*Maya
*Poser (figure animation)
*Bryce (landscape animation)
*Vue (landscape animation)
*Cinema 4D
*Blender (gratis)
*Daz3D (gratis)
Apabila kita perhatikan pada penjelasan diatas, maka dapat disimpulkan bahwa terdapat dua hal penting yang harus diperhatikan dalam pembuatan animasi, yaitu Objek/ gambar dan alur gerak.

Sumber Refrensi :
http://sarahanimasi-mahanaim.blogspot.co.id/2015/11/artikel-tentang-animasi.html
http://www.animasi.tk/2015/11/artikel-animasi.html
http://www.mandalamaya.com/pengertian-animasi-dan-jenis-jenis-animasi/

Distribusi Frekuensi & Contoh Soalnya.
POSTED ON Selasa, 06 Oktober 2015 AT 22.26 \\
Definisi Distribusi Frekuensi
  • Merupakan penyusunan data ke dalam kelas – kelas tertentu dimana setiap individu/item hanya termasuk kedalam salah satu kelas tertentu
  • Pengelompokan data ke dalam beberapa kategori yang menunjukan banyaknya data dalam setiap kategori dan setiap data tidak dapat dimasukan ke dalam dua atau lebih kategori
  • Distribusi Frekuensi adalah penyusunan data dalam kelas-kelas interval. (Kuswanto,2006).
  • Distribusi Frekuensi adalah membuat uraian dari suatu hasil penelitian dan menyajikan hasil penelitian tersebut dalam bentuk yang baik, yakni bentuk stastistik popular yang sederhana sehingga kita dapat lebih mudah mendapat gambaran tentang situasi hasil penelitian. (Djarwanto,1982). 
  • Distribusi Frekuensi atau Tabel Frekuensi adalah suatu tabel yang banyaknya kejadian atau frekuensi (cases) didistribusikan ke dalam kelompok-kelompok (kelas-kelas) yang berbeda. (Budiyuwono,1987)
Jenis Distribusi Frekuensi
  • Tujuan Distribusi Frekuensi : untuk mengatur data mentah (belum dikelompokan) ke dalam bentuk yang rapi tanpa mengurangi inti informasi yang ada, Data menjadi informatif dan mudah dipahami.
  • Ditinjau dari jenisnya : Numerik : pengelompokan data berdasarkan angka – angka tertentu, biasanya sajikan dengan grafik histogram. Kategorikal : pengelompokan data berdasarkan kategori – kategori tertentu, biasanya disajikan dengan grafik batang, lingkaran dan gambar.
  • Ditinjau dari nyata tidaknya frekuensi : Absolut, jumlah bilangan yang menyatakan banyaknya data pada suatu kelompok tertentu. Relatif, juga dinamakan tabel persentase.
  • Ditinjau dari kesatuannya : Satuan, Kumulatif.
  • Data yang diolah merupakan suatu deret hitung yang berdiri sendiri.
Jenis Tabel Distribusi Frekuensi
  1. Tabel distribusi frekuensi data tunggal, menyajikan frekuensi data yang tidak dikelompokkan.
  2. Tabel distribusi frekuensi data kelompok, menyajikan pencaran frekuensi data yang dikelompokkan.
  3. Tabel distribusi frekuensi kumulatif, menyajikan frekuensi yang datanya selalu ditambahkan. 
  4. Tabel distribusi frekuensi relative, menyajikan data frekuensi yang bukan sebenarnya, misalnya dalam bentuk persen.

Oke langsung saja, biar lebih jelasnya lagi kita mulai dengan menjawab contoh soal berikut.
Berikut ini adalah Tugas Mata Kuliah saya tentang Distribusi Frekuensi :

Diperoleh data pengunjung taman Edupark UMS selama 80 hari terakhir sebagai berikut (sumber: data rekaan): Buat tabel distribusi frekuensi dalam bentuk :Kategorikal, Relatif, dan Kumulatif (kurang dan lebih dari)Buat grafik histogram, polygon, dan ogif

79 80 70 68 90 92 80 70 63 76
49 84 71 72 35 93 91 74 60 63
48 90 92 85 83 75 61 99 83 88
74 70 38 51 73 71 72 95 82 70
81 91 56 65 74 90 97 80 60 66
98 93 81 93 43 72 91 59 67 88
87 82 74 83 86 87 88 71 89 79
81 78 73 86 68 75 81 77 63 75


Langkah-langkah menjawab soal di atas seperti ini,
Langkah 1 : Urutkan dari yang terkecil hingga yang terbesar guna memudahkan dalam melakukan pernghitungan.
Data yang telah di urutkan :
35 38 43 48 49 51 56 59 60 60 61 63 63 63 65 66 67 68 68 70 70 70 70 71 71 71 72 72 72 73 73 74 74 74 74 75 75 75 76 77 78 79 79 80 80 80 81 81 81 81 82 82 83 83 83 84 85 86 86 87 87 88 88 88 89 90 90 90 91 91 91 92 92 93 93 93 95 97 98 99
Kemudian tentukan Nilai Max & Nilai Min, guna membuat jangkauan (Range).

Min = 35
Max = 99
Range = 99-35 = 64

Langkah 2 : Sebenarnya tidak ada aturan pasti, namun untuk memudahkan bisa menggunakan aturan Sturges.

Aturan Sturges K = 1 + 3,322 log n atau K = 1+3,3 log n
K =  banyaknya kelas
n = banyaknya jumlah data observasi

Banyaknya data atau n = 80 maka...

K  = 1 + 3,3 log 80
 = 1 + 3,3 (1,903) = 1 + 6,279 = 7,279 ≈ 7

Langkah 3 : Panjang/Lebar Kelas (Interval). Interval adalah selisih batas atas dan batas bawah dari suatu kategori.

Panjang Kelas P = J/K = Xn-X1/K
K = banyaknya kelas
Xn = nilai observasi terbesar
X1 = nilai observasi terkecil
Maka : P = 99-35/7 =64/7 = 9,143 ≈ 9

Langkah 4 : Tabulasi dan Tabel Frekuensi.


Batas kelas : Nilai terendah dan tertinggi

Batas kelas dalam suatu interval kelas terdiri dari dua macam :
  • Batas kelas bawah – lower class limit, Nilai teredah dalam suati interval kelas.
  • Batas kelas atas – upper class limit, Nilai teringgi dalam suatu interval kelas.
Pada tabel di atas, 44 merupakan nilai tertinggi kelas ke 1, dan 45 merupakan nilai terendah kelas ke 2. Begitupun seterusnya.

Nilai tengah : Tanda atau perinci dari suatu interval kelas dan merupakan suatu angka yang dapat dianggap mewakili suatu interval kelas. Nilai tengah kelas, kelasnya berada di tengah-tengah pada setiap interval kelas.

Nilai tengah kelas 1 : (35+44)/2 = 39,5
Nilai tengah kelas 2 : (45+54)/2 = 49,5
Nilai tengah kelas 3 : (55+64)/2 = 59,5
Dst.

Nilai tepi kelas : Nilai batas antara kelas yang memisahkan nilai antara kelas satu dengan kelas lainnya. Penjumlahan nilai atas kelas dengan nilai bawah kelas diantaranya dan di bagi dua.

Nilai tepi kelas 2 : (44+45)/2 = 44,5
Nilai tepi kelas 3 : (54+55)/2 = 54,5
Nilai tepi kelas 4 : (64+65)/2 = 64,5
Dst.

Distribusi Frekuensi Absolut & Relatif :

Absolut : Jumlah bilangan yang menyatakan banyaknya data pada suatu kelompok tertentu.

Relatif : Jumlah persentase yang menyatakan banyaknya data pada suatu kelompok tertentu. Frekuensi setiap kelas dibandingkan dengan frekuensi total. Tujuannya adalah untuk memudahkan membaca data secara tepat dan tidak kehilangan makna dari kandungan data.

Frekuensi Relatif = Frekuensi Kelas/Jumlah Kelas x 100

Pada tabel diatas,
Frek. Relatif kelas 1 : (3/80)x100 = 3,75
Frek. Relatif kelas 2 : (3/80)x100 = 3,75
Frek. Relatif kelas 3 : (8/80)x100 = 10
Frek. Relatif kelas 4 : (21/80)x100 = 26,25
Dst


Distribusi Frekuensi Satuan & Kumulatif
  • Distribusi frekuensi satuan : frekuensi yang menunjukkan berapa banyak data pada kelompok tertentu. 
  • Distribusi frekuensi kumulatif : distribusi frekuensi yang menunjukkan jumlah frekuensi pada sekelompok nilai tertentu, mulai dari kelompok sebelumnya sampai dengan kelompok tersebut.
  • Frekuensi kumulatif kurang dari : penjumlahan dari mulai frekuensi terendah sampai kelas tertinggi dan jumlah akhirnya merupakan jumlah data (n).
  • Frekuensi kumulatif lebih dari : pengurangan dari jumlah data (n) dengan frekuensi setiap kelas dimulai dari kelas terendah dan jumlah akhirnya adalah nol.

Oke, setelah semuanya selesai, sekarang mari kita membuat Grafik dari jawaban soal diatas.

Grafik Histogram :
Histogram merupakan diagram balok. Histogram menghubungkan antara tepi kelas interval dengan pada sumbu horizontal (X) dan frekuensi setiap kelas pada sumbu vertikal (Y).



Grafik Polygon :
Menggunakan garis yang mengubungkan titik – titik  yang merupakan koordinat antara nilai tengah kelas dengan jumlah frekuensi pada kelas tersebut.

 
Kurva Ogif / Ogive :
Merupkan diagram garis yang menunjukan kombinasi antara interval kelas dengan frekuensi kumulatif.



Nah, Seperti itulah langkah-langkah untuk mengerjakan soal Distribusi Frekuensi berikut dengan grafik-grafiknya.

Semoga bermanfaat,
Surakarta, 05/10/2015.
Pendidikan Teknik Informatika.
Universitas Muhammadiyah Surakarta.

Program Dalam Algoritma (Sorting)
POSTED ON Senin, 13 April 2015 AT 15.12 \\
1.     INSERTION SORT
a.      Script :
#include
using namespace std;
int main()
{
    int a[10], i, j, k, temp;
    cout<<"masukan angka:\n";
    for (i = 0; i < 16; i++)
    {
        cin>>a[i];
    }
    for (i = 1; i < 10; i++)
    {
        for (j = i; j >= 1; j--)
        {
            if (a[j] < a[j-1])
            {
                temp = a[j];
                a[j] = a[j-1];
                a[j-1] = temp;
            }
            else
                break;
        }
    }
    cout<<"sorted array\n"<    for (k = 0; k < 16; k++)
    {
          cout<    }
    getch();
}
b.     Gambar :


2.     TREE SORT
a.      Script :
#include
using namespace std;
struct tree{
    int info;
    tree *Left, *Right;
};
tree *root;
class TreeSort{
    public:
        int no_of_elements;
        int elements[10];
    public:
        void getarray();
        void sortit();
        void insert1(int);
        tree *insert2(tree *, tree *);
        void display(tree *);
};
void TreeSort::getarray(){
    cout<<"Berapa banyak elmen yang anda inginkan? ";
    cin>>no_of_elements;
    cout<<"masukan angka: ";
    for(int i=0;i        cin>>elements[i];
    }
}
void TreeSort::sortit(){
    for(int i = 0; i  < no_of_elements; i++){
        insert1(elements[i]);
    }
}
tree* TreeSort::insert2(tree *temp,tree *newnode){
    if(temp==NULL){
        temp=newnode;
    }
    else if(temp->info < newnode->info){
        insert2(temp->Right,newnode);
        if(temp->Right==NULL)
            temp->Right=newnode;
    }
    else{a
        insert2(temp->Left,newnode);
        if(temp->Left==NULL)
            temp->Left=newnode;
    }
    return temp;
}
void TreeSort::insert1(int n){
    tree *temp=root,*newnode;
    newnode=new tree;
    newnode->Left=NULL;
    newnode->Right=NULL;
    newnode->info=n;
    root=insert2(temp,newnode);
}
/* Inorder traversal */
void TreeSort::display(tree *t = root){
    if(root==NULL){
        cout<<"Nothing to display";
    }else
    if(t!=NULL){
        display(t->Left);
        cout<info<<" ";
        display(t->Right);
    }
}
int main(){
    TreeSort TS;
    TS.getarray();
    TS.sortit();
    TS.display();
    return 0;
}
b.     Gambar :



3.     BUBBLE SORT
a.      Script :
#include
using namespace std;

int main(){
     //declaring array
      int array[5];
      cout<<"masukan 5 angka random : "<
      for(int i=0; i<5 i="" o:p="">
      {
     //Taking input in array 
       cin>>array[i];       
      } 
      cout<
      cout<<"Input array : "<
     
      for(int j=0; j<5 j="" o:p="">
      {
       //Displaying Array
       cout<<"\t\t\tValue at "<
      }  
      cout<
    // Bubble Sort Starts Here
     int temp;
     for(int i2=0; i2<=4; i2++)
   {
     for(int j=0; j<4 j="" o:p="">
     {
        //Swapping element in if statement   
           if(array[j]>array[j+1])
       {
        temp=array[j];
        array[j]=array[j+1];
        array[j+1]=temp;       
       }
     }        
   }
   // Displaying Sorted array
      cout<<"  Sorted Array : "<
     for(int i3=0; i3<5 i3="" o:p="">
   {
    cout<<"\t\t\tValue at "<
   }  
return 0;
}
b.     Gambar :



4.     EXCHANGE SORT
a.      Script :
using namespace std;
#include
int main(void)
{
          int array[5];           // An array of integers.
          int length = 5;                 // Lenght of the array.
          int i, j;
          int temp;

        //Some input
          for (i = 0; i < 5; i++)
          {
                   cout << "masukan angka: ";
                   cin >> array[i];
          }

          //Algorithm
          for(i = 0; i < (length -1); i++)
          {
                   for (j=(i + 1); j < length; j++)
                   {
                             if (array[i] < array[j])
                             {
                                      temp = array[i];
                                      array[i] = array[j];
                                      array[j] = temp;
                             }
                   }
          }
          //Some output
          for (i = 0; i < 5; i++)
          {
                   cout << array[i] << endl;
          }
}

b.     Gambar :



5.     SELECTION SORT
a.      Script :
#include
#include

using namespace std;


template
void s_sort(T a[],int n)
{
     int i,j,t;
     for(i=0;i
     {
                     for(j=i+1;j
                     {
                                       if(a[j]a[i])
                                       {
                                                    t=a[i];
                                                    a[i]=a[j];
                                                    a[j]=t;
                                       }
                     }
     }
}


int main()
{
    int a[100],i,n;
    cout<<"Masukan jumlah elmen:\n";
    cin>>n;
    cout<<"\nmasukan angka:\n";
    for(i=0;i
    {

                      cout<<"\nmasukan:";
                    cin>>a[i];
    }
    s_sort(a,n);
    cout<<"\nAfter Sorting\n";
    for(i=0;i
    {
                    cout<
    }
    getch();
    return 0;
}
b.     Gambar :



6.     HEAP SORT
a.      Script :
#include
#include
using namespace std;
void max_heapify(int *a, int i, int n)
{
    int j, temp;
    temp = a[i];
    j = 2*i;
    while (j <= n)
    {
        if (j < n && a[j+1] > a[j])
            j = j+1;
        if (temp > a[j])
            break;
        else if (temp <= a[j])
        {
            a[j/2] = a[j];
            j = 2*j;
        }
    }
    a[j/2] = temp;
    return;
}
void heapsort(int *a, int n)
{
    int i, temp;
    for (i = n; i >= 2; i--)
    {
        temp = a[i];
        a[i] = a[1];
        a[1] = temp;
        max_heapify(a, 1, i - 1);
    }
}
void build_maxheap(int *a, int n)
{
    int i;
    for(i = n/2; i >= 1; i--)
    {
        max_heapify(a, i, n);
    }
}
int main()
{
    int n, i, x;
    cout<<"Masukan jumlah elmen:\n";
    cin>>n;
    int a[20];
    for (i = 1; i <= n; i++)
    {
        cout<<"masukan angka:"<<(i)<
        cin>>a[i];
    }
    build_maxheap(a,n);
    heapsort(a, n);
    cout<<"sorted output\n";
    for (i = 1; i <= n; i++)
    {
        cout<
    }
    getch();
}
b.     Gambar :



7.     QUICK SORT
a.      Script :
#include

void quickSort(int a[], int first, int last);
int pivot(int a[], int first, int last);
void swap(int& a, int& b);
void swapNoTemp(int& a, int& b);
void print(int array[], const int& N);

using namespace std;

int main()
{
    int test[] = { 7, -13, 1, 3, 10, 5, 2, 4 };
    int N = sizeof(test)/sizeof(int);

    cout << "Size of test array :"  << N << endl;

    cout << "Before sorting : " << endl;
    print(test, N);

    quickSort(test, 0, N-1);

    cout << endl << endl << "After sorting : " << endl;
    print(test, N);
    
    return 0;
}

/**
 * Quicksort.
 * @param a - The array to be sorted.
 * @param first - The start of the sequence to be sorted.
 * @param last - The end of the sequence to be sorted.
*/
void quickSort( int a[], int first, int last )
{
    int pivotElement;

    if(first < last)
    {
        pivotElement = pivot(a, first, last);
        quickSort(a, first, pivotElement-1);
        quickSort(a, pivotElement+1, last);
    }
}

/**
 * Find and return the index of pivot element.
 * @param a - The array.
 * @param first - The start of the sequence.
 * @param last - The end of the sequence.
 * @return - the pivot element
*/
int pivot(int a[], int first, int last)
{
    int  p = first;
    int pivotElement = a[first];

    for(int i = first+1 ; i <= last ; i++)
    {
        /* If you want to sort the list in the other order, change "<=" to ">" */
        if(a[i] <= pivotElement)
        {
            p++;
            swap(a[i], a[p]);
        }
    }

    swap(a[p], a[first]);

    return p;
}


/**
 * Swap the parameters.
 * @param a - The first parameter.
 * @param b - The second parameter.
*/
void swap(int& a, int& b)
{
    int temp = a;
    a = b;
    b = temp;
}

/**
 * Swap the parameters without a temp variable.
 * Warning! Prone to overflow/underflow.
 * @param a - The first parameter.
 * @param b - The second parameter.
*/
void swapNoTemp(int& a, int& b)
{
    a -= b;
    b += a;// b gets the original value of a
    a = (b - a);// a gets the original value of b
}

/**
 * Print an array.
 * @param a - The array.
 * @param N - The size of the array.
*/
void print(int a[], const int& N)
{
    for(int i = 0 ; i < N ; i++)
        cout << "array[" << i << "] = " << a[i] << endl;
}
b.     Gambar :



8.     MERGE SORT
a.      Script :
using namespace std;
#include
#include
void merge(int *,int, int , int );
void mergesort(int *a, int low, int high)
{
    int mid;
    if (low < high)
    {
        mid=(low+high)/2;
        mergesort(a,low,mid);
        mergesort(a,mid+1,high);
        merge(a,low,high,mid);
    }
    return;
}
void merge(int *a, int low, int high, int mid)
{
    int i, j, k, c[50];
    i = low;
    k = low;
    j = mid + 1;
    while (i <= mid && j <= high)
    {
        if (a[i] < a[j])
        {
            c[k] = a[i];
            k++;
            i++;
        }
        else
        {
            c[k] = a[j];
            k++;
            j++;
        }
    }
    while (i <= mid)
    {
        c[k] = a[i];
        k++;
        i++;
    }
    while (j <= high)
    {
        c[k] = a[j];
        k++;
        j++;
    }
    for (i = low; i < k; i++)
    {
        a[i] = c[i];
    }
}
int main()
{
    int a[20], i, b[20];
    cout<<"enter  the elements\n";
    for (i = 0; i < 5; i++)
    {
        cin>>a[i];
    }
    mergesort(a, 0, 4);
    cout<<"sorted array\n";
    for (i = 0; i < 5; i++)
    {
        cout<
    }
    cout<<"\nenter  the elements\n";
    for (i = 0; i < 5; i++)
    {
        cin>>b[i];
    }
    mergesort(b, 0, 4);
    cout<<"sorted array\n";
    for (i = 0; i < 5; i++)
    {
        cout<
    }
    getch();
}
b.     Gambar :



9.     SHELLSORT
a.      Srcipt :
using namespace std;
#include
#include
void read(int a[10], int n){
          cout<<"Reading\n";
          for(int i = 0; i < n; i++)
                   cin>>a[i];
}
void display(int a[10], int n){
          for(int i = 0; i < n; i++)
                   cout<
}
void shell(int a[10], int n){
          int gap = n/2;
          do{
                   int swap;
                   do{
                             swap = 0;
                             for(int i = 0; i < n - gap; i++)
                                      if(a[i] > a[i+gap])
                                      {
                                                int t = a[i];
                                                a[i] = a[i+gap];
                                                a[i+gap] = t;
                                                swap = 1;
                                      }
                   }
                   while(swap);
          }
          while(gap = gap / 2);
}
int main(){
          int a[10];
          int n;
          cout<<"enter n\n";
          cin>>n;
          read(a,n);
          cout<<"before sorting\n";
          display(a,n);
          shell(a,n);
          cout<<"\nafter sorting\n";
          display(a,n);
          getch();
}
b.     Gambar :



Sumber : dari berbagai sumber lalu disadur dan diselesaikan dengan baik.