Jumat, 15 November 2013

Pemodelan Geometris


Transformasi dari suatu konsep (atau suatu benda nyata) ke suatu model geometris yang bisa ditampilkan pada suatu komputer :
  • Shape/bentuk
  • Posisi
  • Orientasi  (cara pandang)
  • Surface Properties/Ciri-ciri Permukaan (warna, tekstur)
  • Volumetric Properties/Ciri-ciri volumetric (ketebalan/pejal, penyebaran cahaya)
  • Lights/cahaya (tingkat terang, jenis warna)
      Pemodelan Geometris yang lebih rumit :
  •       Jala-jala segi banyak: suatu koleksi yang besar dari segi bersudut banyak, dihubungkan satu sama lain.
  •       Bentuk permukaan bebas: menggunakan fungsi polynomial tingkat rendah.
  •       CSG: membangun suatu bentuk dengan menerapkan operasi boolean pada bentuk yang primitif.
      

      Hardware Display Grafik : Vektor
  1.      Vetor (calligraphic, stroke, random-scan)
  2.      Arsitektur Vektor

      Hardware Display Grafik : Raster
  1.      Raster (TV, bitmap, pixmap), digunakan dalam layar dan laser printer
  2.      Arsitektur Raster

Image dan Display

Merupakan hasil akhir dari keseluruhan proses dari pemodelan. Biasanya obyek pemodelan yang menjadi output adalah berupa gambar untuk kebutuhan koreksi pewarnaan, pencahayaan, atau visual effect yang dimasukkan pada tahap teksturing pemodelan. Output images memiliki Resolusi tinggi berkisar Full 1280/Screen berupa file dengan JPEG,TIFF, dan lain-lain. Dalam tahap display, menampilkan sebuah bacth Render, yaitu pemodelan yang dibangun, dilihat, dijalankan dengan tool animasi. Selanjutnya dianalisa apakah model yang dibangun sudah sesuai tujuan. Output dari Display ini adalah berupa *.Avi, dengan Resolusi maksimal Full 1280/Screen dan file *.JPEG

Ada beberapa metode yang digunakan untuk pemodelan 3D. Metode pemodelan obyek disesuaikan dengan kebutuhannya seperti dengan nurbs dan polygon ataupun subdivision. Modeling polygon merupakan bentuk segitiga dan segiempat yang menentukan area dari permukaan sebuah karakter. Setiap polygon menentukan sebuah bidang datar dengan meletakkan sebuah jajaran polygon sehingga kita bisa menciptakan bentuk-bentuk permukaan. Untuk mendapatkan permukaan yang halus, dibutuhkan banyak bidang polygon. Bila hanya digunakan sedikit polygon, maka object yang didapatkan akan terbagi menjadi pecahan-pecahan polygon.
Sedangkan Modeling dengan Nurbs (Non-Uniform Rational Bezier Spline) adalah metode paling populer untuk membangun sebuah model organik. Hal ini dikarenakan kurva pada Nurbs dapat dibentuk dengan hanya tiga titik saja. Dibandingkan dengan kurva polygon yang membutuhkan banyak titik (verteks) metode ini lebih memudahkan untuk dikontrol. Satu titik CV (Control verteks) dapat mengendalikan satu area untuk proses tekstur.

Desain permodelan grafik sangat berkaitan dengan grafik komputer. Berikut adalah kegiatan yang berkaitan dengan grafik komputer :
  1. Pemodelan geometris : menciptakan model matematika dari objek-objek 2D dan 3D.
  2. Rendering : memproduksi citra yang lebih solid dari model yang telah dibentuk.
  3. Animasi : Menetapkan/menampilkan kembali tingkah laku/behaviour objek bergantung waktu.
  4. Graphics Library/package (contoh : OpenGL) adalah perantara aplikasi dan display hardware(Graphics System).
  5. Application program memetakan objek aplikasi ke tampilan/citra dengan memanggil graphics library.
  6. Hasil dari interaksi user menghasilkan/modifikasi citra.
  7. Citra merupakan hasil akhir dari sintesa, disain, manufaktur, visualisasi dll.

s


Kamis, 14 November 2013

Texturing


Texture mapping adalah teknik shading untuk pengolahan gambar yang memetakan sebuah fungsi pada permukaan tiga dimensi dalam scene. Fungsi yang dipetakan mencakup satu dimensi, dua dimensi, dan tiga dimensi dan dapat digambarkan sebagai array atau fungsi matematika atau gambar.

Terdapat macam-macam texture mapping, yaitu :
  • Bump mapping untuk memperjelas karakteristik permukaan yang bergelombang
  • Transparency mapping untuk mengatur intensitas cahaya permukaan tembus pandang
  • Specularity mapping untuk mengubah kehalusan permukaan
  • Illumination maaping untuk memodelkan distribusi cahaya yang datang dari berbagai arah
Namun dari semua itu yang paling penting adalah Geometrical mapping, geometrical mapping secara keseluruhan ditentukan dengan dengan transformasi tiga dimensi terhadap kamera, tansformasi model yang menggambarkan geometri scene dan pemberian parameter pada permukaan dengan tujuan memetakan tekstur ke permukaan, ada 2 tahap yang harus dilakukan untuk memetakan teksture dari space ke screen space seperti :



Rendering

Rendering adalah suatu proses yang di lakukan untuk menghasilkan citra yang lebih solid dari model yang telah di bentuk.
Rendering merupakan salah satu sub topik utama dalam 3D computer graphics. Dan pada prakteknya selalu berhubungan dengan aspek-aspek yang lain. Seperti Graphic pipeline, yang merupakan tahapan terakhir, memberikan tampilan akhir pada model dan animasi.
Rendering tidak hanya digunakan pada game programming. Rendering juga sering digunakan untuk desain arsitektur, simulator, movie atau juga spesial effect pada tayangan televisi, dan design visualization. Setiap bidang tadi mempunyai perbedaan dalam keseimbangan antara features dan tehnik dalam rendering. Terkadang rendering juga diintegrasikan dengan model yang lebih besar, paket animasi, terkadang juga berdiri sendiri dan juga terkadang free open-source product.

Dalam bidang 3D Graphics sendiri rendering harus dilakukan secara cermat dan teliti. Maka dari itu terkadang dilakukan pre rendering sebelum rendering dilaksanakan. Per rendering sendiri adalah proses pengkomputeran secara intensif ,yang biasanya digunakan untuk pembuatan film, menggunakan graphics card dan 3D hardware accelerator untuk penggunaan real time rendering.
Rendering merupakan sebuah proses untuk menghasilkan sebuah citra 2D dari data 3D. Prose ini bertujuan untuk untuk memberikan visualisasi pada user mengenai data 3D tersebut melalui monitor atau pencetak yang hanya dapat menampilkan data 2D.

Metode Rendering

Metode rendering yang paling sederhana dalam grafika 3D :
  • Wireframe Rendering yaitu Objek 3D dideskripsikan sebagai objek tanpa permukaan. Pada wireframe rendering, sebuah objek dibentuk hanya terlihat garis-garis yang menggambarkan sisi-sisi edges dari sebuah objek. Metode ini dapat dilakukan oleh sebuah komputer dengan sangat cepat, hanya kelemahannya adalah tidak adanya permukaan, sehingga sebuah objek terlihat tranparent. Sehingga sering terjadi kesalahpahaman antara siss depan dan sisi belakang dari sebuah objek.
  • Hidden Line Rendering metode ini menggunakan fakta bahwa dalam sebuah objek, terdapat permukaan yang tidak terlihat atau permukaan yang tertutup oleh permukaan lainnya. Dengan metode ini, sebuah objek masih direpresentasikan dengan garis-garis yang mewakili sisi dari objek, tapi beberapa garis tidak terlihat karena adanya permukaan yang menghalanginya. Metode ini lebih lambat dari dari wireframe rendering, tapi masih dikatakan relatif cepat. Kelemahan metode ini adalah tidak terlihatnya karakteristik permukaan dari objek tersebut, seperti warna, kilauan (shininess), tekstur, pencahayaan, dll.
  • Shaded Rendering pada metode ini, komputer diharuskan untuk melakukan berbagai perhitungan baik pencahayaan, karakteristik permukaan, shadow casting, dll. Metode ini menghasilkan citra yang sangat realistik, tetapi kelemahannya adalah lama waktu rendering yang dibutuhkan.

Minggu, 10 November 2013

Metode Modeling 3D

ada beberapa metode yang digunakan untuk pemodelan 3D. Ada jenis metode pemodelan obyek yang disesuaikan dengan kebutuhannya seperti dengan nurbs dan polygon ataupun subdivision. 

Modeling polygon  

merupakan bentuk segitiga dan segiempat yang menentukan area dari permukaan sebuah karakter. setiap polygon menentukan sebuah bidang datar dengan meletakan sebuah jajaran polygon sehingga kita bisa menciptakan bentuk-bentuk permukaan. Utuk mendapatkan permukaan yang halus, dibutuhkan banyak bidang polygon,maka object yang didapat akan terbagi sejumlah pecahan polygon.

Modeling NURBS (Non-Uniform Rational Bezier Spline) 

merupakan metode paling populer untuk membangun sebuah model organik.Kurva pada Nurbs dapat dibentuk dengan hanya tiga titik saja. dibandingkan dengan kurva polygon yang membutuhkan banyak titik CV (Control Verteks) dapat mengendalikan satu area utnuk proses tekstur.




Sabtu, 09 November 2013

Motion Capture


Motion capturemotion tracking, atau mocap adalah terminologi yang digunakan untuk mendeskripsikan proses dari perekaman gerakan dan pengartian gerakan tersebut menjadi model digital. Ini digunakan di militer, hiburan, olahraga, aplikasi medis, dan untuk calidasi cisi computer dan robot. Di dalam pembuatan film, mocap berarti merekam aksi dari actor manusia dan menggunakan informasi tersebut untuk menganimasi karakter digital ke model animasi computer dua dimensi atau tiga dimensi. Ketika itu termasuk wajah dan jari-jari atau penangkapan ekspresi yang halus, kegiatan ini biasa dikatakan sebagai performance capture.

Dalam sesi motion capture, gerakan-gerakan dari satu atau lebih aktor diambil sampelnya berkali-kali per detik, meskipun dengan teknik-teknik kebanyakan( perkembangan terbaru dari Weta menggunakan gambar untuk motion capture dua dimensi dan proyek menjadi tiga dimensi), motion capture hanya merekam gerakan-gerakan dari aktor, bukan merekam penampilan visualnya. Data animasi ini dipetakan menjadi model tiga dimensi agar model tersebut menunjukkan aksi yang sama seperti aktor. Ini bisa dibandingkan dengan teknik yang lebih tua yaitu rotoscope, seperti film animasi The Lord of the Rings, dimana penampilan visual dari gerakan seorang aktor difilmkan, lalu film itu digunakan sebagai gerakan frame-per-frame dari karakter animasi yang digambar tangan.

Gerakan kamera juga dapat di-motion capture sehingga kamera virtual dalam sebuah skema dapat berjalan, miring, atau dikerek mengelilingi panggung dikendalikan oleh operator kamera ketika aktor sedang melakukan pertunjukan, dan sistem motion capture bisa mendapatkan kamera dan properti sebaik pertunjukan dari aktor tersebut. Hal ini membuat karakter komputer, gambar, dan set memiliki perspektif yang sama dengan gambar video dari kamera. Sebuah komputer memproses data dan tampilan dari gerakan aktor, memberikan posisi kamera yang diinginkan dalam terminology objek dalam set. Secara surut mendapatkan data gerakan kamera dari tampilan yang diambil biasa diketahui sebagai match moving atau camera tracking.

Keunggulan Motion Capture

Motion capture menawarkan beberapa keuntungan dibandingkan animasi komputer tradisional dari model tiga dimensi:
  • Lebih cepat, bahkan hasil secara real time bisa didapatkan. Dalam aplikasi hiburan, hal ini dapat mengurangi biaya dari animasi berbasis keyframe. Contohnya: Hand Over.
  • Jumlah kerja tidak berubah dengan kompleksitas atau panjang pertunjukan dalam tingkatan yang sama ketika menggunakan teknik tradisional. Hal ini membuat banyak tes diselesaikan dengan gaya dan penyampaian yang berbeda.
  • Gerakan kompleks dan interaksi fisik yang realistis seperti gerakan sekunder, berat, dan pertukaran tekanan dapat dengan mudah dibuat kembali dalam cara akurat secara fisik.
  • Jumlah data animasi yang bisa diproduksi dalam waktu yang diberikan sangatlah besar saat dibandingkan dengan teknik animasi tradisional. Hal ini berkontribusi dalam keefektifan biaya dan mencapai deadline produksi.
  • Potensi software gratis dan solusi dari pihak luar dapat mengurangi biaya yang dikeluarkan.
Kekurangan Motion Capture
  • Hardware yang spesifik dan program yang special dibutuhkan untuk mendapatkan dan memproses data.
  • Biaya software, perlengkapan, dan personel yang dibutuhkan dapat berpotensi menjadi penghalang bagi produksi-produksi kecil.
  • Sistem pengambilan gerakan mungkin memiliki kebutuhan yang spesifik untuk ruangan operasi, tergantung dari pandangan kamera atau distorsi magnetik.
  • Ketika masalah terjadi, lebih mudah untuk mengambil ulang skema daripada mencoba untuk memanipulasi data. Hanya beberapa sistem yang memungkinkan penampilan data yang real time untuk memilih apakah gambar yang diambil butuh diambil ulang.
  • Hasil yang penting itu terbatas untuk apa yang bisa ditunjukkan dalam volume pengambilan tanpa editing tambahan dari data tersebut.
  • Gerakan yang tidak mengikuti hokum fisika secara umum tidak bisa diambil.
  • Teknik animasi tradisional, seperti menambahkan tekanan dari antisipasi dan kelanjutannya, gerakan kedua atau memanipulasi bentuk dari karakter, seperti dengan melumatkan dan memperpanjang teknik animasi, harus ditambahkan nanti.
  • Jika model komputer memiliki proporsoi yang berbeda dari subjek yang diambil, artifak mungkin terjadi. Contohnya, jika seorang karakter kartun mempunyai tangan yang berukuran terlalu besar, hal ini dapat memotong badan karakter jika orang yang melakukaknnya tidak berhati-hati dengan gerakan fisiknya.
Metode dan Sistem

Penanda reflektif ditancapkan pada kulit untuk mengidentifikasi letak tulang dan gerakan tiga dimensi dari tubuh. Motion Capture dimulasi sebagai alat analisis photogrammetric dalam penelitian biomechanics pada tahun 1970-an dan 1980-an, serta meluas ke ranah edukasi, latihan, olahraga, dan baru saja ke ranah animasi komputer untuk televise, sinema, dan video games seiring dengan dewasanya teknologi ini. Seorang yang dipilih menggunakan penanda di dekat setiap sendi tulang untuk mengidentifikasi gerakan dari posisi atau sudut antar penanda tersebut.

Selasa, 16 April 2013

Web Science


A. Definisi Web Science

Web Science merupakan salah satu penjabaran dari dua arti yang berbeda, yaitu web dan science. Website atau situs diartikan sebagai kumpulan halaman yang menampilkan informasi data teks, data gambar diam atau gerak, data animasi, suara, video dan atau gabungan dari semuanya, baik yang bersifat statis maupun dinamis yang membentuk satu rangkaian bangunan yang saling terkait dimana masing-masing dihubungkan dengan jaringan-jaringan halaman (hyperlink).
Science adalah segala sesuatu yang berhubungan dengan sumber ilmu pengetahuan yang memberikan manfaat bagi kehidupan manusia dan seluruh isinya. Dengan kata lain, science itu sendiri merupakan kumpulan ilmu pasti yang memberikan makna tersendiri bagi yang mempelajarinya.
Web Science dapat disimpulkan yaitu segala sesuatu yang berkaitan dengan ilmu pengetahuan yang diperoleh dari sumer yang akurat dan dapat di unduh dari dunia maya tanpa kita harus menuju ke sumber informasi yang ada di informasi yang ingin kita cari, sehingga memudahkan kita untuk memperoleh informasi.

B. Sejarah Web

Penemu situs web adalah Sir Timothy John ¨Tim¨ Berners-Lee, sedangkan situs web yang tersambung dengan jaringan pertamakali muncul pada tahun 1991. Maksud dari Tim ketika merancang situs web adalah untuk memudahkan tukar menukar dan memperbarui informasi pada sesama peneliti di tempat ia bekerja. Pada tanggal 30 April 1993, CERN (tempat dimana Tim bekerja) mengumumkan bahwa WWW dapat digunakan secara gratis oleh publik.
Sebuah situs web bisa berupa hasil kerja dari perorangan atau individu, atau menunjukkan kepemilikan dari suatu organisasi, perusahaan. biasanya pembahasan dalam sebuah situs web merujuk pada sebuah ataupun beberapa topik khusus, atau kepentingan tertentu. Sebuah situs web bisa berisi pranala yang menghubungkan ke situs web lain, demikian pula dengan situs web lainnya. Hal ini terkadang membuat perbedaan antara situs web yang dibuat oleh individu ataupun perseorangan dengan situs web yang dibuat oleh organisasi bisnis menjadi tidak begitu jelas.
Situs web biasanya ditempatkan pada server web. Sebuah server web umumnya telah dilengkapi dengan perangkat-perangkat lunak khusus untuk menangani pengaturan nama ranah, serta menangani layanan atas protokol HTTP yang disebut sebagai Server HTTP (bahasa Inggris: HTTP Server) seperti Apache HTTP Server, atau Internet Information Services (IIS).

Web 1.0
Web 1.0 merupakan teknologi awal dari website, dimana pembuat sebagai pemberi informasi dan pengguna hanya sebagai pembaca (seperti membaca koran lewat computer, aktifitasnya hanya searching saja). Bahasa yang digunakan pada web ini masih berupa HTML saja.

Web 2.0
Web 2.0 muncul sekitar tahun 2003 atau 2004, dimana para pengguna website-pun dapat berkomunikasi 2 arah dan memiliki berbagai kelebihan lainnya.

Kelebihan dari web ini adalah sebagai berikut :

  • The Web as Platform (Pengerjaan suatu aplikasi/tulisan dapat langsung dikerjakan di media internet tanpa harus mengerjakannya terlebih dahulu di windows desktop)
  • Harnessing Collective Intelligence (Web 2.0 memiliki kinerja untuk memanfaatkan tulisan orang lain untuk mengisi konten web secara kolektif (tidak hanya webmaster yang mengisi konten sendiri), contohnya seperti youtube)
  • Data is the Next Intel Inside (merupakan suatu garansi kepercayaan dari para pemberi data kepada pemilik website bahwa pada era web 2.0 data sangatlah penting dan harus di update setiap waktu)
  • End of the Software Release Cycle (pada web 2.0 aplikasi software dapat langsung digunakan lewat internet/internet menjadi platform menjalankan program)
  • Lightweight Programming Models (pembuatan web 2.0 menggunakan bahasa yang ringan dan mendukung pengembagan program)

Web 3.0
Web ini diperkirakan akan berkembang pada tahun 2010-2020 dan saat ini masih dalam tahap pengembangan. Karakteristik dari web 3.0 adalah :
  • Semantic Web (web dengan kemampuan membaca situs semudah manusia membacanya sehingga informasi dapat disajikan dengan cepat dan tepat)
  • The 3D Web (web dengan kemampuan visual 3D dan interaksi secara realtime)
  • The Media-Centric Web (Photo, audio, dan video akan menjadi cara lain untuk mencari informasi yang kita inginkan selain keyword)
  • The Pervasive Web (Web yang mudah diakses dengan berbagai cara dan alat berbeda kapan saja dan dimana saja)
C. Pertumbuhan Sosial dan Ekonomi

Dengan berkembangnya teknologi secara pesat juga berpengaruh pada pertumbuhan kehidupan sosial dan ekonomi. Adapun dampak yang ditimbulkan dari pesatnya perkembangan teknologi adalah sebagai berikut :

Efek Positif
  • Pertumbuhan ekonomi  yang semakin tinggi
  • Produktifitas dunia industri semakin meningkat
  • Terjadinya industrialisasi
  • Meningkatnya rasa percaya diri. Kemajuan ekonomi di negara-negara Asia melahirkan fenomena yang menarik. Perkembangan dan kemajuan ekonomi telah meningkatkan rasa percaya diri dan ketahanan diri sebagai suatu bangsa akan semakin kokoh. Bangsa-bangsa Barat tidak lagi dapat melecehkan bangsa-bangsa Asia.
Efek Negatif
  • Berkurangnya sosialisasi karena kurang proses tatap muka atau face to face karena pesatnya perkembangan alat komunikasi, hal ini dapat menyebabkan komunikasi menjadi hampa
  • Terjadinya pengangguran bagi tenaga kerja yang tidak mempunyai kualifikasi yang sesuai dengan yang dibutuhkan
  • Kemajuan TIK juga pasti akan semakin memperparah kesenjangan sosial yang terjadi di masyarakat antara orang kaya dan orang miskin
  • Adanya aksi tipu menipu dalam proses jual beli online yang dapat merugikan beberapa pihak

D. Web Science & Metodologi Web Science

Web Science merupakan kajian sains dari Web. Ketika Web telah bergerak ke ranah ilmu, maka pertanyaan mendasar adalah bagaimana keilmuan ini melakukan metodologi. Bagaimana peneliti atau engineer melakukan pendekatan terhadap Web untuk pemahaman dan relasinya dengan domain sosial secara luas dan inovasi apa yang dapat dilakukan.
Berbagai penelitian yang berlangsung saat ini melakukan pengembangan pada metodologi pemetaan (mapping) dan graph pada struktur Web dengan sampling sebagai kunci utamanya [Leung, 2001]. Sebagai contoh laporan riset [Fetterly, 2004] menyatakan bahwa 27% dari web di Jerman (.de) melakukan perubahan setiap minggu. Model lain adalah metodologi model analisis yang mengkombinasikan data empiris yang digunakan untuk melakukan determinasi probabilitas. Metodologi pada Web Science akan dipengaruhi oleh perekayasaan yang berlatar belakang industri maupun peneliti akademisi.

Sumber : 




Minggu, 27 Januari 2013

Array Pada C

Array (Larik) adalah kumpulan nilai-nilai data bertipe sama dalam urutan tertentu yang menggunakan sebuah nama yang sama. Nilai-nilai data di suatu larik disebut dengan elemen larik yang letak urutannya ditunjukkan oleh suatu subscript atau suatu index yang dimulai dengan index nol.
Larik dapat berdimensi satu (one dimensional array) yang mewakili suatu vektor, larik berdimensi dua (two dimensional array) mewakili bentuk suatu matrik atau tabel, larik berdimensi tiga (three dimensional array) mewakili suatu bentuk ruang atau berdimensi lebih dari tiga.
 
Array Dimensi 1
Suatu larik dapat dideklarasikan dengan menyebutkan jumlah dari elemennya yang dituliskan diantara tanda ‘[ ]’. 
Contoh :
                        Int X[5];

Contoh array berdimensi Satu :
#include
main()
{
    float X[3] = {5,3,7}, Total = 0;
    int I;
    for(I=0;I<=2;I++) Total = Total + X[I];
        printf(‘Total = %f \n”,Total);
}

Output :
Total = 15.000000

Array Dimensi 2
Pendeklarasian array dimensi dua :
       int X[3][4];  -->  berarti akan membentuk matrik dengan ukuran 3 baris X 4 kolom
       int X[2][3]={1,2,3,4,5,6} --> matrik 2X3
       atau array tidak berukuran seperti :
             int X[ ][4] ={1,2,3,4,5,6,7,8} --> matrik 2X4

Contoh array dimensi dua :
#include
#include
int main(){
    int I,J;
    float X[3][4] = { 12.34, 34.56, 56.78, 78.90, 23.45, 45.67, 67.89, 

                            89.01, 34.56, 56.78, 78.90, 90.12};
    for(I=0;I<3 br="">        for(J=0;J<3 br="">            printf("%8.2f", X[I][J]);
    printf("\n");
    }
printf("\n");
return 0;
}

Output Program :









Array String
Hubungan antara nilai array string dengan nilai larik karakter







Contoh 1 :
#include
#include
int main(){
    int I,J;
    float X[3][4] = { 12.34, 34.56, 56.78, 78.90, 23.45, 45.67, 67.89, 89.01, 34.56, 56.78, 78.90, 90.12};
    clrscr();
    for(I=0;I<3 br="">    for(J=0;J<3 br="">    printf("%8.2f", X[I][J]);
    printf("\n");
    }
printf("\n");
return 0;
}

Output Program :













 
Contoh 2 :
#include
#include
main(){
    int I,J;
    char Hari[7][10] = {"Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jum’at", "Sabtu" };
    clrscr();
    for(I=0;I<7 br="">    {
        printf("%s\n", Hari[I]);
    }
    getch();
    return 0;
}

Output Program :















Kamis, 24 Januari 2013

Perulangan Pada C

a. Statement for
    Sintaks :
                  for ( inisialisasi; terminasi; iterasi ) statement;

    inisialisasi adalah pemberian nilai awal variable untuk perulangan, terminasi adalah pemberian nilai akhir atau batas perulangan, iterasi adalah perubahan variable kontrol (counter). 
Contoh Program :
#include
#include
int main()
{
   int a;
   clrscr();
   for( a = 1; a<=10; a++)
    printf("%d ",a);
   getch();
   return 0;
}


Output :















b. Statement While
    Sintaks :
                   while (kondisi ) statement;
    Statement dapat berupa statement kosong, statement tunggal maupun blok statement. Proses perulangan akan terus dilaksanakan jika kondisi dalam while masih bernilai benar.
Contoh Program :
#include
#include
int main()
{
    int a=1;
    clrscr();
    while(a<=10)
    {
        printf("%d ",a);
        a++;
    }
    getch();
    return 0;

Output Program :















c. Statement Do..While
    Sintaks :
                   do
                            statement
                   while ( kondisi )
    Sedikitnya statement akan diproses sebanyak 1 kali karena seleksi kondisi dilaksanakan diakhir statement.
Contoh Program :
#include
#include
int main()
{
    int a=1;
    clrscr();
    do
    {
        printf("%d ",a);
        a++;
    }
    while(a<=10);
    getch();
    return 0;
}  

Output Program :















d. Statement continue
Statement continue akan menyebabkan proses perulangan kembali ke awal perulangan dengan mengabaikan statement setelah statement continue.
Contoh Program :
#include
#include
int main()
{
    int a;
    clrscr();
    for( a = 1; a<=10; a++)
    {
        if (a==5) continue;
        printf("%d ",a);
    }
    getch();
    return 0;

Output Program :















e. Statement break
Statement break akan menyebabkan proses keluar dari blok looping atau blok statement pada case.
Contoh Program :
#include
#include
int main()
{
    int a;
    clrscr();
    for( a = 1; a<=10; a++)
    {
        if (a==5) break;
        printf("%d ",a);
    }
    getch();
    return 0;
}  


Output :












f. Statement goto label
   Digunakan untuk melompat dari satu proses ke proses tertentu didalam program.
   Sintaks :
                    goto label;
   Proses lain yang ditunjuk sebagai lompatan akan ditulis
                    label :

Percabangan Pada C

1. Statement If
 
a. Bentuk If tunggal sederhana
    Sintaks :
                      if ( kondisi ) statement ;
    Bentuk ini menunjukkan jika kondisi bernilai benar, maka statement yang mngikutinya akan dieksekusi Jika tidak maka statement selanjutnya yang akan diproses. 
 
b. Bentuk If tunggal blok statement
    Sintaks :
                      if ( kondisi ) {
                          blok statement;
                          } 
    Perbedaan dengan bentuk sebelumnya statement yang akan dilaksanakan ada dalam satu blok kurung kurawal. 
 
c. Bentuk If..Else
    sintaks :
                     if ( kondisi )
                         statement1;
                     else
                         statement2;
 
Statement setelah kondisi atau statement sesudah else dapat berupa statement kosong, statement tunggal maupun blok statement. statement1 akan dijalankan jika kondisi benar, jika salah maka statement2 yang akan diproses. 
Contoh Program :
//Program menentukan ganjil atau genap
#include
int main()
{
  int Bilangan;
  char Lagi;
    printf("Mencari Bilangan Ganjil atau Genap\n\n");
    printf("Input Bilangan : ");
    scanf("%d", &Bilangan);
    if(Bilangan %2 == 1)
        printf("\n\nIni Bilangan Ganjil");
    else
        printf("\n\nIni Bilangan Genap");
    return 0; 
 
Output :     Mencari Bilangan Ganjil atau Genap
                 Input Bilangan : 15
                 Ini Bilangan Ganjil

d. Bentuk If..else if…else
    Sintaks :
                       if ( kondisi 1)
                           statement1;
                       else if ( kondisi 2 )
                           statement2;
                       else if ( kondisi 3)
                           statement3;
                           .
                       else
                           statement default;
Proses akan mulai dari penyeleksian kondisi 1, jika benar maka statement yang mengikutinya akan dieksekusi, jika salah maka akan masuk proses seleksi kondisi 2, begitu seterusnya. Jika semua kondisi tidak ada yang terpenuhi, maka program akan menjalankan statement default.
Contoh Program :
#include
int main()
{
    int Nilai; char Mutu;
    printf("Mencari Mutu Nilai\n\n");
    printf("Input Nilai Mahasiswa : ");
    scanf("%d", &Nilai);
    if (Nilai<50 font="" mutu="E">
    else if(Nilai<65 font="" mutu="D">
    else if(Nilai<75 font="" mutu="C" nbsp="">
    else if (Nilai<85 font="" mutu="B">
    else Mutu = 'A';
    printf("\n\nNilai Mahasiswa yang diinput = %d", Nilai);
    printf("\nMutu Nilai = %c", Mutu);
return 0; 

Output :    Mencari Mutu Nilai
                Input Nilai Mahasiswa : 78
                Nilai Mahasiswa yang diinput = 78
                Mutu Nilai = B

e. Bentuk If bersarang ( nested if )
    Sintaks :
                     if ( kondisi 1)
                          if ( kondisi 2)
                              .
                              .
                              if (kondisi n)
                                 statement;
                             else
                                 statement;
                               .
                               .
                             else
                                 statement
                           else statement;
Kondisi yang akan diseleksi pertama kali adalah kondisi yang paling luar (kondisi 1). Jika bernilai tidak benar maka statement setelah else yang terluar ( pasangan dari if yang bersangkutan ) yang akan diproses.

f. Bentuk If dengan kondisi berupa variable
   Contoh :
                    if ( D == 0 )
                        printf (“Nilai D sama dengan Nol \n”);
                   else
                        printf (“Nilai D tidak sama dengan Nol \n”);

g. Bentuk If dengan kondisi Jamak
    Beberapa kondisi dapat diseleksi sekaligus dalam statement if dengan menggunakan operator
    logika AND ( && ), OR ( || ), atau NOT ( ! )

h. Operator ?
    Dapat digunakan untuk menggantikan statement if..else..
    sintaks :
                    ( kondisi ) ? statement1 : statement2;
    jika benar statement1 akan diproses, jika salah statement2 yang akan diproses.
 
2. Statement Switch 
 
a. Statement Switch tunggal
    Sintaks :
                   switch ( kondisi ) {
                   case konstanta1 :
                           statement-statement;
                           break;
                   case konstanta2 :
                           statement-statement;
                           break;
                     .
                     .
                   default :
                           statement-statement;
                    } 
 
Contoh Program :
 
//Program dengan switch Case
#include
int main(){
int Pilih;
printf("----MENU BUAH----\n");
printf("\n1. APEL");
printf("\n2. MANGGA");
printf("\n3. JERUK");
printf("\n4. KELUAR");
printf("\n\nPilihan Anda [1-4] : ");
scanf("%d",&Pilih);
switch(Pilih){
   case 1 : printf("\n\nANDA PILIH APEL"); break;
   case 2 : printf("\n\nANDA PILIH MANGGA"); break;
   case 3 : printf("\n\nANDA PILIH JERUK"); break;
   case 4 : exit(0);
   default : printf("\n\nANDA SALAH INPUT...");
}
return 0; 
 
b. Statement nested switch 
    Yaitu statement switch yang berada didalam switch lainnya 
    Sintaks : 
                      switch ( kondisi ) {
                      case konstanta 1 :
                              statement-statement ;
                              switch ( kondisi x ) {
                              case konstanta 1a :
                                      statement-statement ;
                                      break;
                              case konstanta 1b :
                                      statement-statement ;
                                      break;
                              }
                              break;
                       case konstanta 2 :
                               statement-statement;
                               break;
                        }