LAPORAN TUGAS BESAR PENGENALAN ILMU KOMPUTASI PROGRAM PENGENALAN OPTIK DOSEN PEMBIMBING : ADE AGUNG HARNAWAN, S.Si, M.Sc NIP: 19791214 200501 1 107 OLEH : MUHAMMAD JUMI’AT MOKHTAR NIM: 1711014210011 KEMENTERIAN RISET TEKNOLOGI DAN PENDIDIKAN TINGGI UNIVERSITAS LAMBUNG MANGKURAT FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM PROGRAM STUDI S-1 FISIKA BANJARBARU 2019 LEMBAR PENGESAHAN LAPORAN TUGAS BESAR PENGENALAN ILMU KOMPUTASI Nama : Muhammad Jumi’at Mokhtar NIM : 1711014210011 Judul Tugas Besar : Program Pengenalan Optik Tanggal Tugas Besar : 3 Januari 2018 Fakultas : Matematika dan Ilmu Pengetahuan Alam Program Studi : S-1 Fisika Banjarbaru, 2019 Koordinator Asisten (Rama Pharamahaesta Hanggarbenny) I. PENDAHULUAN A. Latar Belakang Fisika merupakan salah satu cabang dari ilmu sains. Fisika merupakan hasil kegiatan manusia berupa pengetahuan, gagasan, dan konsep yang terorganisasi tentang alam sekitar yang diperoleh dari serangkaian pengalaman melalui proses ilmiah. Pelajaran fisika tidak cukup hanya mempelajari produk tetapi menekankan bagaimana produk itu diperoleh, baik sebagai proses ilmiah maupun pengembangan sikap ilmiah siswa. Untuk itu hasil belajar tidak hanya terbatas pada ranah kognitif, tetapi juga ranah psikomotor dan ranah afektif. Keterampilan psikomotor sangat penting untuk diajarkan karena dari keterampilan ini, siswa akan lebih mengetahui dan memahami apa yang telah mereka pelajari ( Prihatiningtyas, 2013). Cahaya termasuk gelombang elektromagnetik, maka cahaya dapat merambat baik melalui medium ataupun tanpa medium (vakum). Ilmu fisika yang mempelajari tentang cahaya adalah Optika. Optika itu sendiri dibagi menjadi dua: optika geometris dan optika fisis. Optika gemetris mempelajari tentang pemantulan (reflection) dan pembiasan (refraction), sedangkan optika fisis mempelajari tentang polarisasi, interferensi, dan difraksi cahaya (Sari, 2007). CodeBlocks merupakan sarana atau aplikasi untuk bahasa C++. Jadi dicoba menggunakan console application dalam menu CodeBlocks. Karena itu bisa dikatakan sudah sering digunakan untuk penggunaan CodeBlocks. Dan headerheader dengan bahasa mudah dibaca. Code block merupakan sebuah software yang sangat bermanfaat. Banyak yang bisa dilakukan dalam code block. Salah satunya adalah pembuatan program. misalnya program untuk perhitungan kasir dan lain-lain. Selain code block juga ada apliaksi yang sejenis yaitu dev c++. B. Tujuan Adapun tujuan dari pembuatan tugas besar ini, antara lain : 1. Untuk mengaplikasikan bahasa pemrograman C/C++ dalam program sederhana. 2. Membuat program yang bisa untuk membantu orang dalam memahami optik melalui perhitungan dan gambar serta video. II. TINJAUAN PUSTAKA Bahasa C++ merupakan bahasa C dengan tambahan fasilitas pemrograman berbasis objek. Sebenarnya tidak hanya itu bahasa C++ merupakan penyempurnaan bahasa C dengan fasilitas-fasilitas baru yang mempermudah pemrograman. Ini sangat berguna untuk pembuatan program-program besar lainnya. Kemudian pada pemrograman Instrumentasi. Bahasa pemrograman C dan C++ merupakan “High Level Language” yaitu bahasa tingkat tinggi yang berarti bahasa yang lebih bisa di mengerti oleh “pengguna” di bandingkan dengan bahasa seperti asymbly yang tingkat rendah yang lebih mudah di mengerti oleh mesin komputer. Bahasa high level harus di terjemahkan ke bahasa mesin atau dikompilasi, sehingga dapat di laksanakan oleh komputer. Oleh karena itu biasanya bahasa high level memiliki ukuran yang besar dan kompleks, pemrograman dengan low level. Untuk aplikasi program yang besar dan kompleks, pemrograman dengan level rendah akan mengalami kesulitan dalam pembuatannya (Schildt, 1988). Bahasa C bisa digunakan untuk merekayasa program untuk segala kebutuhan, baik untuk aplikasi bisnis, matematis atau bahkan game. Bahasa C mendukung banyak sekali operator untuk keperluan pemrograman. Berikut beberapa operator yang tersedia. Kategori Arithmetic Logical Relational Assignment Increment Decrement Operator +-*/% & | ^ ! && true false || == != < > <= >= = += -= *= /= %= &= ++ -- Tabel 2.1 Kategori-Operator Dalam Bahasa C (Raharjo, 2006). Visual C++ merupakan perangkat pengembangan aplikasi yang menggunakan C++ sebagai bahasa pemrograman dan dapat digunakan untuk membuat aplikasi berbasis windows maupun berbasis teks (aplikasi konsul). Perangkat ini menyediakan lingkungan yang dinamakan IDE (Integral Depelovet Emperionment) yang memungkinkan pemakaian membuat, mengaplikasikan, menggabungkan, dan memanggil program dengan cepat dan mudah (kadir, 2004). File biner adalah suatu file yang pola penyimpanannya adalah dengan menuliskan data secara biner. Sebagai contoh, jika data yang disimpan ke file tersebut bertipe int (2 byte) dengan isi variabel 10000, maka akan disimpan sebagai sebesar 2 byte dengan isi : 27. Tipe jenis ini sangat cocok untuk penyimpanan data dalam bentuk struct. Pembacaan file biner dilakukan perblock. Untuk membaca file biner mode operasi filenya adalah ”rb” (read binery). Pembacaan data untuk tipe biner dilakukan perblock, sehingga kita harus tahu berapa besar data yang akan dibaca. Ada kalanya kita ingin mengambil data dari posisi tengah file. Untuk itu ada suatu fungsi fseek, yang gunanya untuk memindahkan kursor file ke posisi tertentu (stroustup, 1997). Operasi bersyarat merupakan sebuah operasi yang berguna untuk menyelesaikan persoalan tertentudengan syarat atau beberapa persyaratan tertentu. Struktur kondisi “IF...” Struktur if digunakan untuk menyeleksi suatu kondisi tunggal.Bila proses yang diseleksi terpenuhi atau bernilai benar,maka pernyataan yang terdapat di dalam blok if akan diproses dan dikerjakan.bentuk umumstrukturkondisi if adalah: if(kondisi) { pernyataan; } (kadir, 2004). Struktur kondisi”IF....ELSE....” Struktur kondisi if....else minimal terdapat dua pernyataan. Jika kondisi yang diperiksa bernilai benar atau terpenuhi maka pernyataan pertama yang dilaksanakan dilaksanakan.Bentuk umumnya adalah sebagai berikut: if(kondisi) { pernyataan 1; } else { Pernyataan 2; } Struktur kondisi “SWITCH....CASE....DEFAULT...” Struktur kondisi switch....case....default digunakan untuk penyeleksian kondisi dengan kemungkinan yang terjadi cukup banyak. Struktur ini akan melaksanakan salah satu dari beberapa pernyataan ‘case’ tergantung nilai kondisi yang ada di dalam switch.Selanjutnya proses diteruskan hingga ditemukan pernyataan ‘break’.Jika tidak ada nilai kondisi,maka proses akan diteruskan kepada pernyataan yang ada di bawah ‘default’.Bentuk umum dari struktur kondisi ini adalah: switch(kondisi) { case 1 : pernyataan-1; break; case 2: pernyataan-2; break; .... .... case n : pernyataan –n; break; default : pernyataan –m } Operator Berulang Dalam bahasa C/C++ tersedia suatu fasilitas yang digunakan untuk melakukan proses yang berulang-ulang sebanyak keinginan kita. Struktur perulangan “WHILE” Perulangan WHILE banyak digunakan pada program yang terstruktur.Perulangan ini digunakan jika jumlah perulangannya belum diketahui.Proses perulangan akan terus berlanjut selama kondisinya bernilai benar(true) dan akan berhenti bila kondisinya bernilai salah. Struktur perulangan “DO....WHILE...” Struktur perulangan do....while sama saja dengan struktur while, tetapi pada proses perulangan dengan while, seleksi berada di while yang letakknya di awal proses sementara pada perulangan do....while, seleksi while berada di bawah batas perulangan.Jadi dengan menggunakan struktur do...while sekurang-kurangnyaakan terjadi satu kali perulangan. Struktur perulangan “FOR” Struktur perulangan for biasa digunakan untuk mengulang proses yang telah diketahui jumlah perulangannya.Dari segi penulisannya , struktur perulangan for tampaknyalebih efesien karena susunannyalebih simple dan sederhana.Bentuk umum perulangan for adalah sebagai berikut: for (inisialisai; syarat; penmabahan) pernyataan; keterangan : Isnisialisasi : pernyataan untuk menyatakan keadaan awal dari variabel kontrol. Syarat : ekspresi relasi yang menyatakan kondisi untuk keluar dari perulangan. Penambahan : pengaturan perubahan nilai variabel kontrol. III. PERMASALAHAN Bagaimana menampilkan hasil perhitungan, video dan gambar ? Bagaimana menampilkan pemprograman C++ ? data praktikum dengan menggunakan IV. ANALISIS PERMASALAHAN DAN PENYELESAIAN Dalam program ini melibatkan tiga file header, yakni <iostream> yang berfungsi untuk menampilkan input atau output yang akan digunakan pada perintah cout , <Windows> berfungsi untuk menampilkan perintah system, dan <time.h> berfungsi untuk mendefinisikan fungsi tanggal dan waktu penanganan. Kemudian dari program ini pula ada fungsi while, for, char, system, if ... else, . Serta penambahan listing listing lainnya untuk mendukung menjalankan program ini. V. ALGORITMA DAN FLOWCHART A. Algoritma Program 1. Memulai program; 2. Memasukkan pilihan(1=Biodata, 2=memulai program); 3. Jika pilihan =1; 4. Menampilkan biodata ; 5. Jika pilihan =2; 6. Menampilkan program sebenarnya; 7. Masukan Pilihan(1=Pengertian, 2=Teori, 3=Hasil Pengamatan); 8. Jika Pilihan =1; Menampilkan definisi optik; 9. Jika Pilihan = 2; a. Menampilkan jenis sifat cahaya(1=Pemantulan Cahaya, 2=Pembiasan Cahaya, 3=Peralatan Optik 9=Kembali kemenu sebelumnya 0=Kembali Kemenu utama); Jika Pilihan =1 ; Menampilkan pilihan (1=Hukum Pemantulan, 2=Cermin datar, 3= Cermin Lengkung sebelumnya 0=Kembali Kemenu utama); - Pilihan =1; - Menampilkan Teori; - Pilihan =2; - Menampilkan Teori; - Pilihan=3; 9=Kembali kemenu - Menampilkan Pilihan (1=Cermin Cekung, 2=Cermin Cembung); + Pilihan =1; Menampilkan Teori, soal dan hasil ; + Pilihan =2 ; Menampilkan Teori, soal dan hasil ; Jika pada menu sifat cahaya memilih pilihan =2; - Menampilkan Pilihan(1=Hukum Snellius,2=Lensa); + Jika pilihan =1; Menampilkan teori soal dan perhitungan ; + Jika pilihan =2 ; Menampilkan rumus kuat lensa dan soal ; Jika Pilihan =3; - Menampilkan Pilihan(1=Miopi, 2=Hiperbiopi, 3=Lup,4 = Mikroskop, Teropong Bintang); + Jika pilihan =1; Menampilkan teori soal dan perhitungan ; + Jika pilihan =2 ; Menampilkan teori soal dan perhitungan ; + Jika pilihan =3; Menampilkan teori soal dan perhitungan ; + Jika pilihan =4 ; Menampilkan teori soal dan perhitungan ; + Jika pilihan = 5; Menampilkan teori soal dan perhitungan ; 10. Pilihan =3 11. Masukkan Pilihan untuk menampilkan gambar dan video (1-8) 12. Mengakhiri program B. Flowchart Program VI. HASIL DAN PEMBAHASAN A. Hasil Gambar 1. Kondisi Awal Gambar 2 Biodata Gambar 3. Menu pilihan Gambar 4 output video Gambar 5 Output foto B. Pembahasan Dari hasil yang diperoleh didapatkan bahwa pada code::block bisa dilakukan pemanggilan file yang berupa video maupun word,dengan menggunakan fungsi #include <stdlib.h>, yang merupakan fungsi dalam pemanggilan word dan video dalam program ini,namun harus disimpan dulu dalam suatu file dengan format, struktur kondisi “If.....else” adalah suatu struktur kondisi yang memiliki minimal dua pernyataan. VII. PENUTUP a. Kesimpulan 1. Kesimpulan yang dapat diperoleh antara lain : Telah dibuat sebuah program yang menyatakan sebuah kondisi pilihan dalam pilihan 2. Telah dibuat sebuah program yang mampu memanggil file dari komputer Program dapat dijalankan secara berulang DAFTAR PUSTAKA Kadir, A. 2004. Pemrograman Visual C++. Yogyakarta : Andi. Prihatiningtyas, S., Prastowo,T., & Jatmiko, B.(2013). Imlementasi Simulasi Phet Dan Kit Sederhana Untuk Mengajarkan Keterampilan Psikomotor Siswa Pada Pokok Bahasan Alat Optik.. JPII 2 (1) (2013) 18-22 Raharjo, B. 2006. Pemrograman C++: Mudah dan Cepat Menjadi Master C++. Bandung: Informatika. Sari,R Yosi A. 2007. Peningkatan Pemahaman Materi Lensa – Cermin Pada Mata Pelajaran Fisika Dengan Menggunakan Strategi Belajar Contextual Teaching And Learning (CTL).Yogyakarta : UNY Schildt, H. 1998. Programing Language. New York : The Comple Mc Grovo Hill. Stroustup, B. 1997. Programing Language. New York : Addison – Wesley LISTING PROGRAM #include <iostream> #include <stdio.h> #include <conio.h> #include <windows.h> #include <math.h> #include <time.h> #include <stdlib.h> #define Sn 25 using namespace std; void delay(unsigned int mseconds) { clock_t goal = mseconds + clock(); while (goal > clock()); } void input_data() { system("cls"); int a; int main(); int optik_1(); int optik_2(); void optik_3(); system("cls"); Kembali: printf("\n\n\n\t\t\t PENGENALAN OPTIKA :\n\n"); printf(" 1. Pengertian\n"); printf(" 2. Sifat Cahaya\n"); printf(" 3. Hasil Pengamatan\n"); printf("\n\n\t 0. Kembali kemenu utama:"); printf("\n\n masukkan pilihan anda : "); scanf("%i",&a); if(a==1) optik_1(); else if(a==2) optik_2(); else if(a==3) optik_3(); else if(a==0) main(); else printf("yang anda masukan salah\n"); } void lihat() { system("cls"); printf(" \t\t\t\tBiodata \n"); printf(" ============================================================ ============ \n"); printf(" Nama : Muhammad Jumi'at Mokhtar \n"); printf(" NIM : 1711014210011\n"); printf(" Program Studi : Fisika\n"); printf(" TTL : Puruk Cahu, 2 April 1999\n"); printf(" ============================================================ ============ \n"); } int main() { int menu; char ulang, kembali; do { system("cls"); printf(" ============================================================ ============"); printf("\n PENGENALAN OPTIKA \n"); printf(" ============================================================ ============ \n"); printf("\n 1. Lihat Data Diri Pembuat\n"); printf("\n 2. Mulai Program\n"); printf("\n Pilih menu : "); scanf("%i",&menu); if (menu==1) lihat();else if (menu==2) input_data();else printf("yang anda masukan salah\n"); printf("\n\nUlangi Program? [y/t]:"); scanf("%c%c",&ulang,&ulang); } while(ulang=='y'||ulang=='Y'); } int optik_1() { int a; system("cls"); printf(" 1.Pengertian\n\n"); printf("\t printf("\t Optik adalah ilmu yang mempelajari tentang cahaya.\n"); Optik terbagi menjadi dua yaitu Optik Geomerti dan fisis\n"); printf("\t disini saya mempersempit pembahsaan menjadi optika geometris\n"); printf("\t yaitu mempelajari tentang pemantulan dan pembiasan \n\n\n"); printf("\n\n\t 0. Kembali kemenu utama:"); printf("\n\n\t masukkan pilihan anda : "); scanf("%i",&a); if(a==0)input_data();else printf("Pilihan tidak ada\n"); } int optik_2() { int a; void Pemantulan_cahaya(); void Pembiasan_Cahaya(); void Peralatan_Optik(); void input_data(); int main(); system("cls"); printf("\n SIFAT CAHAYA :\n"); printf(" 1. Pemantulan Cahaya\n"); printf(" 2. Pembiasan Cahaya\n"); printf(" 3. Peralatan Optik\n\n"); printf(" 9. Menu sebelumnya\n"); printf(" 0. Menu Utama\n\n"); printf(" Masukan Kode pilihan ada : ",a); scanf("%i",&a); if(a==1) Pemantulan_cahaya() ; else if(a==2) Pembiasan_Cahaya() ; else if(a==3) Peralatan_Optik () ; else if(a==9) input_data();else if(a==0) main();else printf("\n\nPilihan Tidak Ada"); } void optik_3() { int a; system("cls"); printf(" \n Hasil Pengamatan \n"); printf(" 1. Pemantulan Cahaya\n"); printf(" 2. Pemantulan Cahaya pada Bidang Lengkung\n"); printf(" 3. Pembiasan pada Kaca Planparalel\n"); printf(" 4. Pembiasan pada Prisma\n"); printf(" 5. Bayangan pada Lensa\n"); printf(" 6. Bayangan oleh Lensa Cembung\n"); printf(" 7. Jarak Benda, Jarak Bayangan dan Jarak Titik Api\n"); printf(" 8. Penguraian Cahaya\n"); printf("\n Masukan Kode pilihan ada : ",a); scanf("%i",&a); if(a==1) { system("1.mp4"); } else if(a==2) { system("2.jpg"); system("3.jpg"); } else if(a==3) { system("10.jpg"); system("11.jpg"); system("12.jpg"); system("13.jpg"); system("14.jpg"); printf("Data\n"); } else if(a==4) { } else if(a==5) { system("bikonveks.jpg"); system("bikonkaf.jpg"); system("gabungan"); } else if(a==6) { system("100.mp4"); system("101.mp4"); system("103.mp4"); system("104.mp4"); } else if(a==7) { } else if(a==8) { system("pembiasan.jpg"); system("pembiasan1.jpg"); } else { printf("Pilihan tidak ada\n"); } } void Pemantulan_cahaya() { int a; void Hukum_Pemantulan(); void Cermin_Datar (); void Cermin_Lengkung(); system("cls"); printf(" Pemantulan Cahaya\n"); printf(" 1. Hukum Pemantulan \n"); printf(" 2. Cermin Datar \n"); printf(" 3. Cermin Lengkung \n\n"); printf(" 9. Menu sebelumnya\n"); printf(" 0. Menu Utama\n\n"); printf(" Masukan Kode pilihan ada : ",a); scanf("%i",&a); if (a==1) Hukum_Pemantulan(); else if (a==2) Cermin_Datar(); else if (a==3) Cermin_Lengkung();else if (a==9) optik_2();else if (a==0) input_data();else printf("Pilihan tidak ada\n"); } void Hukum_Pemantulan() { int a,b; system("cls"); printf("\n\nHukum Pemantulan\n"); printf("sudut datang = sudut pantul\n\n\n"); int sudut_datang, sudut_pantul; printf("sudut datang i :\n"); scanf("%i",&sudut_pantul); if (sudut_datang=sudut_pantul) { printf("sudut pantul r :\n"); printf("%i",sudut_pantul ); printf("\n\n9. Kembali kemenu sebelumnuya ",b); printf("\n\n0. Kembali kemenu utama ",b); printf("\n masukkan pilihan anda : "); scanf("%i",&b); if(b==9) { optik_2(); } else if(b==0) { input_data(); } else { printf("Pilihan tidak ada\n"); } } system(""); } void Cermin_Datar() { printf("\n\nCermin Datar\n"); printf("sifat :\n"); printf("1. Maya\n"); printf("2. Perbesaran M=1\n"); printf("3. Tegak dan menghadap berlawanan arah terhadap benda\n"); printf("4. Jarak Benda ke cermin sama dengan jarak bayangan dari cermin\n"); system("pause"); } void Cermin_Lengkung() { int a,d; system("cls"); printf("\t\tCermin Lengkung\n\n"); printf("\t\t 1. Cermin cekung\n"); printf("\t\t 2. Cermin cembung\n"); printf("\t\t 3. Soal 1\n"); printf("\t\t 4. Soal 2\n"); printf("\n Masukan Kode pilihan ada : ",a); scanf("%i",&a); if(a==1) { system("cls"); printf("\n\t\tCermin cekung adalah cermin yang berbentuk lengkung,") ; printf("\ndimana permukaan cermin cekung yang memantulkan cahaya melengkung ke belakang."); printf("\nGaris normal cermin cekung adalah garis yang melewati pusat kelengkungan,"); printf("\nyaitu di titik R atau 2F.\n"); printf("Sinar yang melewati titik ini akan dipantulkan ke titik itu juga.\n"); printf("\n\n Rumus jarak fokus \t f = s.s'/s+s' "); system(""); } else if(a==2) { system("cls"); printf("\n\t\tCermin cembung adalah cermin yang berbentuk lengkung,") ; printf("\ndimana permukaan cermin cekung yang memantulkan cahaya melengkung ke luar."); printf("\ncermin cembung memiliki sifat divergen (menyebarkan cahaya)"); printf("\nkarena berkas cahaya yang datang dan,"); printf("mengenai permukaan cermin cembung akan dipantulkan kembali dari satu titik dan menyebar\n"); printf("\n\n Rumus jarak fokus \t f = s.s'/s-s' "); } else if(a==3) { system("cls"); int a,b,c; int k,l,m,n,o; printf("Sebuah benda yang tingginya "); scanf("%i",&a); printf(" berada "); scanf("%i",&b); printf(" di depan sebuah cermin cekung. Jika panjang fokus kelengkungan cermin cekung ",c); scanf("%i",&c); printf("tentukan (satuan dalam cm): \n"); printf("\njarak bayangan "); k=b*c; l=b-c; m=k/l; printf("%i",m,k,l); printf("\nperbesaran bayangan "); n=m/b; printf("%i",n,m,b); printf("\ntinggi bayangan "); o=a*n; printf("%i",o,a,n); } else if(a==4) { system("cls"); int a,b; int k,l,m,n,o; printf("Sebuah benda diletakkan di depan sebuah cermin cembung sejauh "); scanf("%i",&a); printf(" yang jarak fokusnya "); scanf("%i",&b); printf(" Letak bayangan yang dibentuk cermin tersebut adalah "); k=a*-b; l=a-(-b); m=k/l; printf("%i",m,k,l); } else printf("\n\nPilihan Tidak Ada"); } void Pembiasan_Cahaya() { int a; system("cls"); printf("Pembiasan Cahaya\n"); printf(" 1. Hukum Snellius I dan II\n"); printf(" 2. Lensa \n"); printf("\n Masukan Kode pilihan ada : ",a); scanf("%i",&a); if(a==1) { system("cls"); float a,b,c,d,e,k; printf("Hukum Snellius \n"); printf("n1/v1=n2/v1=sin i/ sin r \n\n"); printf("Soal : Cahaya datang dari udara menuju medium yang berindeks bias "); scanf("%f",&e); printf(" \nTentukan kecepatan cahaya dalam medium tersebut!"); a=1; c=300000000; d=a*c; k=d/e; printf("\n\nkecepatannya adalah "); printf("%.2f",k,e,d); } else if(a==2) { system("cls"); int a,b,c,d,e; printf("\t\nKuat Lensa\n"); printf("\tP = 100/s + 100/s' \n\n"); printf("Di depan sebuah lensa diletakkan benda pada jarak "); scanf("%i",&(a)); printf(" cm bayangan yang terbentuk bersifat maya sejauh "); scanf("%i",&(b)); printf(" cm dari lensa \n"); printf("Tentukan besar kuat lensa tadi!"); d=100/(a); e=100/(b); c=(d)+(e); printf("\n\nkuat lensa adalah "); printf("%i",c); } else { printf("Pilihan tidak ada\n"); } } void Peralatan_Optik() { int a; system("cls"); printf("Peralatan Optik\n"); printf(" 1. Miopi (Rabun Jauh)\n"); printf(" 2. Hipermetropi (Rabun Dekat)\n"); printf(" 3. Lup\n"); printf(" 4. Mikroskop\n"); printf(" 5. Teleskop\n"); printf("\n Masukan Kode pilihan ada : ",a); scanf("%i",&a); if(a==1) { system("cls"); float a,b,c; printf("\n\t\t Miopi \n\n"); printf("Rumus fokus pada Mata Miopi\n"); printf(" f = - PR \n\n"); printf("Rumus kuat lensa untuk kacamata"); printf(" P = 1/f \n\n"); printf(" Soal : Seorang penderita rabun jauh memiliki titik jauhnya "); scanf("%f",&a); printf(" m. Berapakah kekuatan lensa kacamatanya? "); b=(-a); printf("\nfokus lensa "); printf("%.2f",b); c=1/b; printf("\nKekuatan lensa "); printf("%.2f",c); } else if(a==2) { system("cls"); float a,b,x,y,z; printf("\n\t\t Hipermetropi \n\n"); printf("Rumus fokus pada Mata Hipermetropi\n"); printf("\n\n Rumus jarak fokus lensa \n"); printf(" f = PP.Sn / PP-Sn \n"); printf("Rumus kuat lensa untuk kacamata"); printf(" P = 1/f \n\n"); printf("Soal : Seseorang menderita rabun dekat mempunyai titik dekat "); scanf("%f",&b); printf("cm Jika ingin membaca dengan jarak normal (25 cm),\n"); printf("maka berapa kekuatan lensa kacamata yang harus dipakai i?\n"); x=b*Sn; y=b-Sn; z=x/y; printf("\nCari fokus lensa "); printf("%.2f",z); a=1/z; printf("\nmaka kekuatab lensa "); printf("%.2f",a); } else if(a==3) { system("cls"); float a,b,x,y,z; printf("\n\t\t Lup\n"); printf(" Rumus Perbesaran Lup \n\n"); printf("M = Sn/f printf("M = Sn/f + 1 \t\t tidak berakomondasi\n"); \t berakomondasi maksimum\n"); printf("M = Sn/f + Sn/X \t berakomondasi pada titik tertentu\n"); printf("Sn = 25 cm \n\n"); printf("Soal : Sebuah lup dengan panjang fokus lensa "); scanf("%f",&a); printf("cm digunakan untuk melihat sebuah benda kecil.\n"); printf(" Dengan asumsi titik dekat normal adalah 25 cm, \n"); printf(" tentukan perbesaran lup untuk mata pengamat: \n"); x = Sn/a; printf("\na) mata tidak berakomodasi "); printf("%.2f",x); y = (Sn/a) + 1; printf("\nb) mata berakomodasi maksimum "); printf("%.2f",y); printf("\nc) mata berakomodasi pada jarak X "); scanf("%f",&b); printf("cm\n"); z = (Sn/a) + (Sn/b); printf("c) mata berakomodasi pada jarak X cm "); printf("%.2f",z); } else if(a==4) { system("cls"); float a,b,c,d,e,i,j,k,l,x,y,z; printf(" \n\t\t Mikroskop \n\n"); printf("\t 1.Rumus Perbesaran Mikroskop Tak Berakomondasi \n"); printf("M = Mob * Mok\n\n"); printf("Rumus Perbesaran lensa obyektif mikroskop \n"); printf("Mob = Sob' / Sob\n\n"); printf("Rumus Perbesaran lensa okuler mikroskop\n"); printf("Mok = PP / fok\n\n"); printf("\t 2.Rumus Perbesaran Mikroskop berakomondasi Maksimum \n"); printf("M = Mob * Mok\n\n"); printf("Rumus Perbesaran lensa obyektif mikroskop \n"); printf("Mob = Sob' / Sob\n\n"); printf("Rumus Perbesaran lensa okuler mikroskop\n"); printf("Mok = (PP / fok) +1 \n\n"); system("pause"); system("cls"); printf("\nMasukkan Nilai fob : "); scanf("%f",&b); printf("\nMasukkan Nilai Sob : "); scanf("%f",&c); x=b*c; y=c-b; z=x/y; printf("\nMasukan Nilai fok : "); scanf("%f",&d); printf("\nmasukan Nilai PP : "); scanf("%f",&e); a=z/c; printf("\nNilai Bayangan objek Sob' : "); printf("%.2f\n",z); printf("\nNilai Perbesaran lensa objektif (Mob): "); printf("%.2f\n",a); i=e/d; j=i+1; printf("\nNilai Perbesaran Lensa okuler\n"); printf("\n a. untuk tak berakomondasi : "); printf("%.2f\n",i); printf("\n b. untuk Berakomondasi Maksimum : "); printf("%.2f\n",j); k=a*i; l=a*j; printf("\nPerbesaran Mikroskop tak berakomondasi : "); printf("%.2f\n",k); printf("\nPerbesaran Mikroskop berakomondasi Maksimum : "); printf("%.2f\n",l); system("pause"); } else if(a==5) { system("cls"); int a,b,c,d; printf("\n\t\t Teleskop \n\n"); printf(" Rumus Perbesaran Teleskop \n"); printf(" M = fob/fok \n"); printf(" Rumus Panjang Teropong untuk penggunaan Normal \n"); printf(" d = fob + fok \n\n"); printf("Soal : Sebuah teropong bintang memiliki panjang fokus lensa okuler "); scanf("%i",&b); printf(" m, dan memiliki lensa obyektif sebesar "); scanf("%i",&c); printf(" m, maka perbesaran anguler dan panjang teropong adalah \n\n"); a=b/c; printf("\nPerbesaran anguler "); printf("%i",a); d=b+c; printf("\nPanjang Teropong "); printf("%i",d); } else { printf("Pilihan tidak ada\n"); } }