Tampilkan postingan dengan label COMPUTER SCIENCE. Tampilkan semua postingan
Tampilkan postingan dengan label COMPUTER SCIENCE. Tampilkan semua postingan

Jumat, 20 September 2013

Tentang OpenGL

Sejarah dan Informasi Umum
OpenGL adalah API yang dikenalkan oleh SGI (Silicon Graphics Inc) kali pertama pada tahun 1980-an. Awalnya OpenGL diciptakan untuk mendukung proses rendering yang hanya mendukung proses rendering untuk komputer graphic produksi SGI. Namun akhirnya, OpenGL dijadikan standar oleh berbagai perusahaan software dan hardware. API singkatan dari Application Program Interface. API adalah interface yang digunakan oleh aplikasi-aplikasi 3D (tiga dimensi) [1].

OpenGL adalah suatu library grafis standar yang digunakan untuk keperluan-keperluan pemrograman grafis. Sebenarnya ada banyak library pemrograman grafis disini selain openGL, misalnya DirectX. OpenGL ini bersifat Open-Source, multi-platform dan multi-languange. Selain itu openGL mendukung semua bahasa pemrograman dan dapat bekerja di lingkungan Windows, Unix, SGI, Linux, freeBSD, dll. Library dasar dari openGL adalah GLUT [2]. GLUT disini ialah fasilitas library yang dapat dikembangkan. Untuk sistem operasi Windows, library ini terdiri dari 3 file, yaitu :
- glut.h
- glut32.lib
- glut32.dll


OpenGL menghilangkan kebutuhan untuk pemrogram untuk menulis ulang bagian grafis dari sistem operasi setiap kali sebuah bisnis akan diupgrade ke versi baru dari sistem. Fungsi dasar dari OpenGL adalah untuk mengeluarkan koleksi perintah khusus atau executable ke sistem operasi. Dengan demikian, program ini bekerja dengan perangkat keras grafis yang ada yang berada pada hard drive atau sumber day tertentu lainnya. Setiap perintah dirancang untuk melakukan tindakan tertentu, atau memulai efek khusus tertentu yang terkait dengan grafis.

Membuat perintah dalam OpenGL dapat terjadi dalam dua cara yang berbeda. Pertama, adalah mungkin bagi programmer untuk membuat dan menyimpan daftar perintah yang dapat dieksekusi secara berulang. Ini adalah salah satu cara yang lebih rutin untuk program interface yang digunakan. Seiring dengan berkembangnya perintah-perintah yang kurang lebih permanen, maka memungkinkan untuk membuat dan menjalankan salah satu perintah dalam batas-batas waktu dari komputer grafis. Seiring dengan kemampuan interface dari sistem operasi, OpenGL juga menyediakan beberapa built-in protokol yang mungkin berguna bagi pengguna akhir. Di antaranya fitur alat seperti alpha blending, pemetaan tekstur, dan efek atmosfer. Alat ini dapat berinteraksi dengan sistem operasi yang sedang digunakan.

Tutorial Singkat
Hello World pada OpenGL: Old Style
             Contoh sederhana di bawah ini adalah hasil dari penggunaan OpenGL pre-3.1: yaitu dengan menggambar sebuah persegi panjang putih pada background hitam menggunakan nilai default untuk kebanyakan variabel [3].


Topik Tambahan
Explorasi Perangkat Mobile vs.  Performa Desktop OpenGL[3]
Perkembangan platform mobile telah membuka pasar baru bagi aplikasi 3D dan games, dimana OpenGL adalah bahasa ibu untuk grafika komputer di dunia. Bagaimanapun platform mobile dan GPU memiliki performa dan karakter yang mungkin tidak familiar dengan para developer dekstop PC.  Para Developer yang melakukan transisi dari dekstop ke mobile perlu berhati-hati dan harus mempertimbangkan batasan dan kemampuan dari perangkat mobile untuk mengoptimalkan resource yang ada pada hardware mobile.OpenGL ES sebagai salah satu API berbasis OpenGL adalah sebuah komponen fundamental pada perangkat mobile modern untuk rendering dan komposisi UI dan memberikan pasar yang besar dan efek positif yang potensial untuk para developer OpenGL.

Dilain pihak ada problem nyata, terdorong secara eksplisit permintaan konsumen untuk baterai yang tahan lama dan perangkat yang ramping, nyaman digenggam dan lebar, dengan tampilan yang brilian dengan rendering yang lembut. Performa dari perangkat mobile haruslah dominan yang harus dipertimbangkan selama proses pengembangan perangkat. Banyaknya perangkat mobile di pasaran, yang berbeda-beda waktu rilisnya, resolusi, dan kemampuan perangkat tersebut,  membuat topik ini semakin sulit dicari jalan keluarnya. Permasalahan signifikan diantara performa mobile dengan dekstop GPUs akan terus berlanjut menjadi sebuah domain pertimbangan pada pengembangan aplikasi. Pertanyaan tentang kemajuan pengembangan semikonduktor dan peningkatan arsitekturalnya mengakibatkan ketidak-relevanan pada penyelesaian masalah ini.

Melihat roadmap proyek dari vendor mobile GPU, kebutuhan sumber daya listrik dari mobile GPUs menunjukkan kenaikan beberapa tahun ke depan. Batasan lain, meliputi bandwidth dan konsumsi sumber daya listrik, adalah lebih mendasar dan tidak dapat diselesaikan dengan mudah mengingat semakin membludaknya kebutuhan listrik manusia. Dilain pihak, sistem dari PC Desktop dan bahkan laptop  saat ini sedikit lebih rapat dimensinya dibandingkan dengan perangkat mobile modern. Kinerja yang diharapkan dari perangkat mobile selalu berubah. Games jadul berbasis sprite dan game 2D masih memiliki tempat yang penting. Tapi beberapa publisher telah memproduksi port-port mobile yang menerapkan mesin game dekstop, game konsol  atau level dekstop dari game-game mahal dengan kualitas visual yang tinggi. Game-game ini menaikkan persaingan sistem mobile terutama pada unsur geometri, assets, dan efek visual.


Daftar Pustaka
   3. Cozzi, Patrick., Riccio, Christophe and Friends. 2012. OpenGL Insights. New York: Taylor & Francis Group


Minggu, 04 Maret 2012

ALGORITMA

Dasar Dasar Algoritma — Presentation Transcript

  • 1. STRUKTUR DASAR ALGORITMA Algoritma berisi langkah2 proses penyelesaian mslh Langkah2 proses penyelesaian masalah tersebut dpt membentk konstruksi suatu algoritma, langkah2 tersbt adalah : 1. runtunan aksi 2. pemilihan aksi 3. pengulangan aksi
  • 2. RUNTUNAN AKSI Sebuah runtunan terdpt satu atau lebih pernytaan,setiap pernyataan dikerjakan secara berurutan sesuai penulisannya Sebuah instruksi dikerjakan setelah instruksi sebelumnya telah dilaksanakan Urutan instruksi menentukan keadaan akhir suatu algoritma Bila urutan algoritma dirubah,maka hasil akhir mungkin juga berubah Runtunan yg mempunyai satu/lebih pernyaaan disbt penytaan gabungan
  • 3. Contoh: Program tukar_isi Diberikan 2 buah ember A & B berisi air berwarna merah, ember B berisi air berwarna biru.pertukarkan kedua isi ember tersbt shg ember A berisi air berwrna biru & ember B berisi air berwana merah Algoritma : Tuangkan air dari ember A kedlm ember C Tuangkan air dari ember B kedlm ember A Tuangkan air dari ember C kedlm ember B
  • 4. Algoritma tukar_isi menjadi inspirasi untuk mempertukarkan nilai dr 2 buah nilai dr 2 peubah Misal A=8 dan B=5, pertukarkan nilai A & B, sehingga A=5 dan B=8,maka algoritmanya : isikan nilai A ke dlm B isikan nilai B ke dlm A maka hasilnya:A=8 & B=8, maka algoritma pertkarannya salah.Agar algirtmanya benar,maka perlu digunakan peubah bantu,misal C, sehinggga algoritmanya adalah:
  • 5. Isikan nilai A ke dlm C Isikan nilai B ke dlm A Isikan nilai C ke dlm B
  • 6. 2. PEMILIHAN Adaklanya sebuah aksi dikerjakan jika kondisi dipenuhi Misal:jika lampu traffic light berwarna merah,maka kendaraan harus berhenti,maka pernyataan adalah: jika lampu traffic light berwarna merah,maka berhenti Pernytn tersbt disbt penyt.pemilihan ( selection-stantement )atau perny.kondisional
  • 7. Bentuk umum selection statement: Kondisi:pernsyartn yg dpt bernilai benar-salah,aksi setelah then dilakukan hanya jika kondisi benar If & then ad/ kaca kunci (keyword) u/ struktur pemilihan Contoh : if x habis dibagi 2 then tulis x ad/ bilangan genap If kondisi then aksi
  • 8. Bentuk lain statent condisional a. else “kalau tdk”. Bila kondisi benar,maka aksi1 yg dikerjakan,kalau tdk aksi2 dikerjakan.contoh: if lampu A nyala then tekan tombol merah else tekan tombol biru if kondisi then aksi1 Else aksi2
  • 9. b. nested-if =pemilihan bersarang ad/ apabila pemilihan aksi yg dilakukan lebih dr 2 buah,maka struktur pemilihanya menjdi rumit. if kondisi1 then aksi1 Else if kondisi2 then aksi2 else aksi3
  • 10. Contoh : if lampu traffic light berwarna merah then berhenti else if lampu traffic light berwarna kuning then jalan hati-hati else jalan terus Dlm state.kondisi dikenal adanya ‘indentasi’ yaitu: pengg.rongga kosong yg membuat algoritma menjd mudah dibaca.
  • 11. Contoh:tanpa indentasi if lampu traffic light berwarna merah then berhenti Else if lampu traffic light berwarna kuning then jalan hati-hati else jalan terus Penulisan algoritma sangat dianjurkan u/ membuat indentasi,agar algoritma mudah dbaca. Kelebihan struktur pemilihan terltk pd kemampuannya yg memungkinkan pemroses mengikuti jalur aksi yg berbeda berdsrkan kondisi yg ada.
  • 12. 3.PENGULANGAN Salah kelebihan komputer ad/ kemampuannya u/ melakukan perkerjaan secara berulang-ulang Contoh: program menulis_kalimat_500_kali menuliskan kalimat ‘algoritma adalah langkah logis penyelesaian masalah’ sebanyak 500 kali Algoritma: 1. tulis ‘algoritma adalah langkah logis penyelesaian masalah’ 2. tulis ‘algoritma adalah langkah logis penyelesaian masalah 3. tulis ‘algoritma adalah langkah logis penyelesaian masalah . . . 500
  • 13. u/ mengtasi hal tersbt dpt digunakan stukrutr pengulangan for-do , sehingga algoritmya: program menulis_kalimat_500_kali menuliskan kalimat ‘algoritma adalah langkah logis penyelesaian masalah’ sebanyak 500 kali Algoritma: for i dari 1 sampai 50 do tulis ‘algoritma adalah langkah logis penyelesaian masalah’ i ad/ pencacah pengulangan yg mencacah 1 s/d 500
  • 14. Bentuk2 pengulangan: For pencacah pengulangan dr 1 s/d N do aksi repeat-until=ulangi-sampai: proses pengulanganakan berhenti jika kondisi terpenuhi 3 While-do=selama-lakukan= prose pengulangan akan berhenti jika kondisi salah Repeat Aksi Unti l kondisi While kondisi do Aksi
  • 15. STRUKTUR TEKS ALGORITMA Ada 3 bagian struktur suatu algoritma, yaitu : Bagian Judul (header) Bagian Deklarasi Bagian Algoritma
  • 16. Struktur teks Agoritma : PROGRAM nama_program { penjelasan tentang algoritma yg beisi uraian singkat mengenai masalah yg akan diselesaikan } DEKLARASI { Semua nama yg dipakai, nama tipe,konstanta,var,prosedur,dan fungsi diumumkan disini } ALGORITMA { Semua langkah/aksi algoritma dituliskan disini }
  • 17. Contoh: PROGRAM luas_lingkaran { menghitung luas lingkaran apabila jari-jari lingkaran sudah diberikan } DEKLARASI { Nama Konstanta } const N =10 const phi=3.14 {nilai phi} { Nama variabel } jari_jari, luas:real ALGORITMA: READ (jari_jari) LUAS Phi *jari_jari*jari_jari Write (luas)
  • 18. 1. Bagian judul / header Memuat nama program dan penjelasan(spesifkasi) tentang program Nama program ditulis singkat,tetapi hrs menggambarkan apa yg dilakukan algoritma Algoritma yg dibuat harus sesuai dgn spesifikasi masalah yang diberikan Contoh: PROGRAM helloWord { program untuk mencetak “hello word” } PROGRAM luas_lingkaran { program untuk menghitung luas lingkaran” }
  • 19. 2. Bagian Deklarasi Mengumumkan semua nama yg akan dipakai, termasuk nama tipenya Nama tersbut berupa:konstanta,variabel,tipe, prosedur dan fungsi Semua nama tersbt harus dideklarasikan sebelum digunakan
  • 20. Contoh: DEKLARASI { nama konstanta } const N=10 {jumlah data} const phi=3.14 {nilai phi} { nama variabel } jari_jari,luas:real { nama tipe } type titik:record {koord.titik dibidang kartesian} < x:integer, {absis} y:integer> {ordinat}
  • 21. FUNCTION apakah_A(input c:char) boolean { mengembalikan nilai true bila c adalah karakter ‘A’ atau false bila sebaliknya } PROSEDURE tukar(input/output A:integer, input/output B:integer) { mempertukarkan nilai A & B,parameter A & B sudah terdefinisi nilainya.setelah pertukaran A berisi nilai B semula, B berisi nilai A semula }
  • 22. Aturan pemberian ‘nama’ dalam notasi algoritmik: tidak boleh mengandung spasi, tanda baca dan operasi matematika Karakter garis bawah (“_”) dpt digunakan untuk menggantikan spasi Tidak membedakan huruf kecil dan huruf besar ( bahasa pemrograman case sensitif seperti bahasa C menganggap huruf kecil dan besar adalah 2 karakter yang berbeda)
  • 23. 3. Bagian Algortima Bagian ini merupakan inti dari suatu program Berisi deskripsi langkah2 penyelesain masalah berupa pernyataan, yg ditulis dalam suatu notasi Misal write untuk mencetak data/informasi, read untuk membaca data,dsb Setiap pernyataan dlm algoritma dibaca dari atas ke bawah Algoritma dieksekusi berdasarkan urutan pernyataan
  • 24. Contoh : Algoritma : Read (panjang,lebar) Luas ← panjang*lebar Write (luas)
  • 25. Translasi teks algoritma kedlm teks program pascal & C Teks algoritma merupakan hasil pemikiran konseptual, agar dpt dilaksanakan o/komputer maka harus ditranslasi kedlm bahasa bahasa pemrograman apapun Bahasa pascal merupakan bahasa pendidikan krn paling banyak digunakan dilingkungan universitas Bahasa C krn memiliki lingkungan yg luas dlm industri perangkat lunak
  • 26. Contoh2 translasi Algoritmik Program luas_segiempat { membaca panjang & lebar yg berbentuk empat persegi panjang, menghitung luasnya, lalu mencetak luas tersebut ke piranti keluaran } DEKLARASI {nama variabel} panjang :real {panjang segiempat dlm cm} lebar :real {lebar segiempat dlm cm} luas :real {luas segiempat dlm cm} ALGORITMA: Read (panjang,lebar) luas ←panjang*lebar Write (luas)
  • 27. Translasi dlm bahasa pascal Program luas_segiempat; Uses wincrt; Var panjang,lebar,luas:real; Begin write (panjang=‘);readln (panjang); write (lebar =‘);readln (lebar); luas:=panjang*lebar; writeln (luas segiempat=‘,luas:5:2); End.
  • 28. Translasi dlm bahasa C /* program luas_segiempat */ /* program untuk menghitung luas segiempat */ # include <stdio.h> Main () { /* deklarasi*/ Float panjang; {panjang segiempat dlm cm} Float lebar; {lebar segiempat dlm cm} Float luas; {luas segiempat dlm cm} /*algoritma*/ Printf (“panjang =“);scanf (“%f”, &panjang); Printf (“lebar =“);scanf (“%f”, &lebar); Luas=panjang*lebar; Printf (“luas segi empat=“ %f “,luas); }
  • 29. Contoh1: menghitung komisi salesman Tulislah agoritma untuk menghitung komisi yg diterima salesman berdasarkan nilai penjualan yg dicapainya. Salesman mendapat komisi 5% dari hasil pejualannya.algoritma menerima data nama salesman dan nila penjualan yg dicapainya. Menghitung komisi lalu mencetak nama dan besar komisi yg diperolehnya
  • 30. penyelesain Program komisi { menghitung komisi yg diterima salesman berdasarkan nilai penjualan yg dicapainya. Salesman mendapat komisi 5% dari hasil pejualannya } Deklarasi nama_salesman : string nilai_penjualan : real komisi : real Algoritma: Read(nama_salesman,nilai_penjualan) komisi ←0.05 *nilai_penjualan Write (nama_salemsman,komisi)
  • 31. Program komisi_salesman; Uses wincrt; Var nama_salesman :string; nilai_penjualan :real; komisi :real; Begin write (‘nama salesman:‘);readln (nama_salesman); write (‘nilai penjualan :‘);readln (nilai_penjualan); komisi :=0.05 * nilai_penjualan; writeln (‘komisi penjualan =‘,komisi:7:2); End.
  • 32. /* program komisi_salesman */ /* program untuk menghitung komisi salesman */ # include <stdio.h> Main () { /* deklarasi*/ String nama_saleman; Float nilai_penjualan; Float komisi; *algoritma*/ Printf (“nama salesman =“);scanf (“%s”, &nama_salesman); Printf (“nilai penjualan =“);scanf (“%f”’, &nilai_penjualan); Komisi=0.05 * nilai_penjualan; Printf (“komisi penjualan=“ %f “,komisi); }
  • 33. TUGAS 2 : Tulislah algoritma yg membaca nama karyawan dan gaji pokok bulanannya serta menghitung gaji bersihnya. Gaji bersih yg diterima pegawai adalah : gaji bersih = gaji pokok + tunjangan-pajak tunjangan karyawan dihitung 20% dari gaji pokok, sedangkan pajak adalah 15%dari gaji pokok ditambah tunjangan.nama karyawan dan gaji bersihnya dicetak kepiranti keluaran