Author: Ahmad Dahlan

  • Praktikum Program Menghitung Jangkauan Peluru Meriam Dari Sebuah Gedung dalam Bahasa C

    Sebuah peluru yang ditembakkan dari sebuah meriam atau senjata, maka peluru akan mulai bergerak ke depan dengan lintasan membentuk parabola terbalik. Hal ini disebabkan oleh gaya tarik gravitasi yang membu peluru begerak dengan kecepatan lurus berubah beraturan pada sumbu y.

    Jangkauan Peluru Meriam

    A. Tujuan Percobaan

    1. Mengetahuan jangakuan meriam yang ditembakkan dari atas sebuah gedung berdasarkan kecepatan dan sudut awal tembakan.

    B. Landasan Teori

    Misalkan sebuah meriam diletakkan di atas sebuah gedung dengan ketinggian 100 m. Dari ketinggian ini, peluru memiliki dua skenario tembakan, yakni ketika memiliki sudut lebih tinggi dari horison meriam dan lebih rendah dari meriam.

    Ilustrasi Gerak Peluru pada Meriam yang ditemabkkan di atas Gedung

    1. Setengah Parabola

    Skenario pertama jika meriam ditembakan dengan sudut di bawah horison maka peluru akan membentuk gerak setengah parabola.

    t =\frac{v_{0y}^2+2gh-v_{0y}}{g}

    Jangkauan meriam yang ditambakkan pada posisi ini dapat ditentukan dengan persamaan :

    R = v_x.t

    dimana

    v_x= v_o \sin \theta 

    Dimana nilai dari t ditentukan oleh gerak peluruh ke arah sumbuh y tepat mencapai permukaan tanah. Nilai t dapat dihitung dengan persamaan

    v_y^2=v_{0y}^2+2gh

    dimana

    v_y=v_0+gt

    maka t adalah:

    t=\frac{v_y-v_{0y}}{g}

    Setelah memperoleh t, kita bisa dapatkan nilai R dengan memeasukkan ke persaman R = vxt

    R = v_0 \sin \theta \frac{v_0 \cos^2 \theta+2gh-v_0 \cos \theta}{g}

    C. Contoh Code

    #include <stdio.h>
    #include <math.h>
    
    #define GRAVITY 9.8
    
    float calculateDistance(float initialVelocity, float launchAngle, float height)
    {
        float horizontalDistance, verticalDistance;
        float timeOfFlight;
    
        // Sudut tembakan lebih rendah dari horison
        if (launchAngle < 0)
        {
            timeOfFlight = (-2 * initialVelocity * sin(launchAngle)) / GRAVITY;
            horizontalDistance = initialVelocity * cos(launchAngle) * timeOfFlight;
            verticalDistance = initialVelocity * sin(launchAngle) * timeOfFlight + (0.5 * GRAVITY * pow(timeOfFlight, 2));
        }
        // Sudut tembakan di atas horison (gerak parabola)
        else
        {
            timeOfFlight = (2 * initialVelocity * sin(launchAngle)) / GRAVITY;
            horizontalDistance = initialVelocity * cos(launchAngle) * timeOfFlight;
            verticalDistance = initialVelocity * sin(launchAngle) * timeOfFlight;
        }
    
        float adjustedHeight = height + verticalDistance;
    
        return sqrt(pow(horizontalDistance, 2) + pow(adjustedHeight, 2));
    }
    
    int main()
    {
        float initialVelocity, launchAngle, height, distance;
    
        printf("Masukkan kecepatan awal (m/s): ");
        scanf("%f", &initialVelocity);
    
        printf("Masukkan sudut lemparan (derajat): ");
        scanf("%f", &launchAngle);
    
        printf("Masukkan ketinggian gedung (m): ");
        scanf("%f", &height);
    
        // Mengkonversi sudut dari derajat menjadi radian
        launchAngle = launchAngle * M_PI / 180;
    
        distance = calculateDistance(initialVelocity, launchAngle, height);
    
        printf("Jarak tempuh tembakan: %.2f meter\n", distance);
    
        return 0;
    }
    
  • Praktikum Pembuatan Program Menghitung Volume Bangun Ruang dengan If dalam Bahasa C

    Fungsi If dan Else If pada bahasa pemrograman C dapat digunakan untuk memudahkan proses perhitungan berbagai macam bangun ruang dalam satu bahasa. If akan merujuk pada jenis bangun yang dimasukkan sehingga program akan berjalan sesuai dengan bangun ruang dipilih.

    Praktikum If Bangun Ruang

    A. Tujuan Praktikum

    1. Membuat program menghitung bangun ruang dengan fungsi IF.

    B. Landasan Teori

    Fungsi IF dalam bahasa Pemrograman adalah fungsi untuk membuat percabangan dengan syarat tertentu. Fungsi ini juga biasa disebut sebagai Conditional Function.

    Pada dasarnya, kondisi IF ELSE IF adalah sebuah struktur logika program yang di dapat dengan cara menyambung beberapa kondisi IF ELSE menjadi sebuah kesatuan.

    Jika kondisi pertama tidak terpenuhi atau bernilai false, maka kode program akan lanjut ke kondisi IF di bawahnya. Jika ternyata tidak juga terpenuhi, akan lanjut lagi ke kondisi IF di bawahnya, dst hingga blok ELSE terakhir atau terdapat kondisi IF yang bernilai true.

    Misalkan, seorang prgrammer ingin membuat program menghitung volume bangun ruang. Namun jumlah bangun ruang tentu saja tidak satu. Tanpa IF, maka program dibuat untuk setiap jenis bangun ruang, namun dengan fungsi IF kita bisa menggabungkan semua program tersebut dalam satu program. Program akan menghitung / menjalankan code sesuai dengan informasi berdasarkan code yang disampaikan.

    C. Sampel Code Program

    #include <stdio.h>
    
    int main() {
        int pilihan;
        float panjang, lebar, tinggi, jari_jari, volume;
    
        printf("Pilih bentu bangun ruang:\n");
        printf("1. Kubus\n");
        printf("2. Balok\n");
        printf("3. Silinder\n");
        printf("4. Bola\n");
        printf("5. Keluar\n");
        printf("Masukkan pilihan Anda (Masukkan Angka saja): ");
        scanf("%d", &pilihan);
    
        if (pilihan == 1) {
            printf("Masukkan panjang sisi: ");
            scanf("%f", &panjang);
    
            volume = panjang * panjang * panjang;
    
            printf("Volume kubus: %.2f\n", volume);
        } else if (pilihan == 2) {
            printf("Masukkan panjang: ");
            scanf("%f", &panjang);
            printf("Masukkan lebar: ");
            scanf("%f", &lebar);
            printf("Masukkan tinggi: ");
            scanf("%f", &tinggi);
    
            volume = panjang * lebar * tinggi;
    
            printf("Volume balok: %.2f\n", volume);
        } else if (pilihan == 3) {
            printf("Masukkan jari-jari: ");
            scanf("%f", &jari_jari);
            printf("Masukkan tinggi: ");
            scanf("%f", &tinggi);
    
            volume = 3.14 * jari_jari * jari_jari * tinggi;
    
            printf("Volume silinder: %.2f\n", volume);
        } else if (pilihan == 4) {
            printf("Masukkan jari-jari: ");
            scanf("%f", &jari_jari);
    
            volume = (4.0 / 3.0) * 3.14 * jari_jari * jari_jari * jari_jari;
    
            printf("Volume bola: %.2f\n", volume);
        } else if (pilihan == 5) {
            printf("Terima kasih! Program berakhir.\n");
            return 0;
        } else {
            printf("Pilihan tidak valid.\n");
        }
    
        return 0;
    }
    
  • Praktikum Pembuatan Program Gerak Lurus Berubah Beraturan dalam Bahasa C

    Praktikum Pembuatan Program Gerak Lurus Berubah Beraturan dalam Bahasa C

    Praktikum Pembuatan Program Gerak Lurus Berubah Beraturan digunakan untuk menghitung otomatis terkait jarak tempuh dan kecepatan benda pada saat t. Prakitkum ini disusun dalam bahasa C.

    Praktikum Program GLBB

    A. Tujuan Praktikum

    1. Membuat program menghitung jarak tempuh GLBB pada selang waktu (t) tertentu.
    2. Membuat program menghitung kecepatan sesaat (vt) GLBB pada selang waktu tertentu.

    B. Landasan Teori

    a. Persamaan Kecepatan terhadap Waktu

    Gerak lurus berubah beraturan adalah gerak yang memiliki perubahan kecepatan konstan setiap selang waktu tertentu. Persamaan gerak ini dapat diturunkan dari Hukum Newton II yakni

    a = \frac{1}{m}\Sigma F

    percepatan (a) adalah turunan pertama perubahan kecepatan terhadap waktu sehingga persamaan di atas dapat ditulis ulang dalam bentuk:

    \frac{dv}{dt} = \frac{1}{m}\Sigma F

    persamaan ini kemudian dimanupulasi dengan mengalikan kedua ruas dengan dt sehingga hasilnya

     dv=\frac{F}{m}dt

    Integralkan kedua sisi

     \int_{v_0}^{v_t} dv=\frac{F}{m}\int_{0}^{t}dt

    ganti nilai F/m = a, maka hasilnya adalah

    v_t-v_0=at

    Persamaan ini dapat ditulis membentuk persamaan v terhadap t

    v_t=v_0+at

    b. Persamaan Jarak terhadap waktu

    Misalkan vt) pada persamaan vt=v0+at dirubah menjadi dx/dt.

    \frac{dx}{dt}=v_0+at

    kedua ruas kemudian dikalikan dengan dt, lalu di integralkan

    \int_{s_0}^{s_t} dx=\int_{0}^{t} v_0.dt+\int_{0}^{t}at.dt

    hasilnya adalah

    s_t-s_0=v_0t+\frac{1}{2}at^2

    Persamaan ini kemudian ditulis ulang dalam bentuk

    s_t=s_0+v_0t+\frac{1}{2}at^2

    C. Sampel Code Program

    #include <stdio.h>
    
    int main() {
        float a, v0, t, s; // variabel percepatan, kecepatan awal, waktu, dan jarak
        printf("Masukkan percepatan (m/s^2): ");
        scanf("%f", &a);
        printf("Masukkan kecepatan awal (m/s): ");
        scanf("%f", &v0);
        printf("Masukkan waktu (s): ");
        scanf("%f", &t);
        s = v0 * t + 0.5 * a * t * t;
        printf("Jarak yang ditempuh adalah %.2f meter", s);
        return 0;
    }
  • Praktikum Pembuatan Program Gerak Parabola dalam Bahasa C

    Praktikum Pembuatan Program Gerak Parabola dalam Bahasa C

    Program Gerak Parabola dalam Bahasa C digunakan untuk menghitung besaran-besaran fisis pada gerak parabola. Beberapa variabel-variable yang terkait pada gerak parabola seperti:

    1. Jangkauan Peluru (x)
    2. Ketinggian Maksimum (h)
    3. Waktu Maksimum (s)

    Praktikum Program Gerak Parabola

    A. Tujuan Praktikum

    1. Membuat program menghitung waktu tempuh maksimum pada gerak parabola
    2. Membuat program menghitung ketinggian maksimum
    3. Membuat program menghitng jangkauan gerak peluru

    B. Landasan Teori

    Seorang pemain bola menendang bola menuju gawang secara naluri akan mengarahkan bola pada sudut tertentu. Tujuannya agar bola mencapai tujuan (gawang) dan terjadi gol. Selain gol (jarak) dalam permainan bola ada lawan yang harus dilewati oleh bolah agar tidak terhalangi oleh pemain lawan. Hal ini bisa dilakukan mengarahkan bola pada ketinggian yang lebih dari pemain lawan.

    Ilustrasi Gerak Parabola pada permainan Bola

    Dalam kajian fisika, Bola ini akan mengalami gerak parabola jika ditendang pada sudut (α) dan arah tertentu. Bola ini selanjutnya akan mengalami gerak yang bisa dianalisis secara terpisah berdasarkan sumbu x (jarak) dan sumbu y (tinggi).

    Hal serupa juga terjadi pada peluru yang ditembakkan pada sudut tertentu. Peluru akan mengalami gerak gabungan dengan lintasan menyerupai parabola terbalik. Hal ini membuat gerak ini disebut sebagai gerak parabola, namun dalam bahasa inggris gerak ini disebut sebagai gerak peluru (Projectile Motion)

    Analisis Gerak Peluru

    1. Waktu Tempu

    Ketika sebuah peluru ditembakkan dengan sudut tertentu maka gerak benda akan mengalami gerak peluru. Gerak ini jika diproyeksikan ke arah sumbu y maka peluru bergerak lurus berubah beraturan diperlambat, setelah mencapai puncak tepat pada saat kecepatan 0 ke arah y maka peluru akan mulai jatuh dengan gerak jatuh bebas.

    Berdasarkan hukum kekekalan energi, waktu yang dihabiskan peluru naik akan sama dengan waktu yang turun. Waktu naik ini dapat dihitung dengan persamaan:

    v_{y \ maks} = v_{0y}-gt

    masukkan nilai v0y = v0 sin α, dan nilai vy maks = 0 maka

    0 = v_0 \sin α - gt

    dengan demikian waktu yang dibutuhkan untuk naik adalah:

    t=\frac{v_0 \sin α}{g}

    dengan demikian waktu yang dibutuhkan peluru naik sampai turun sama dua kali waktu saat naik maka

    t=\frac{2\ v_0 \sin α}{g}

    2. Ketinggian maksimum

    Ketinggian maksimum di capai benda dengan persamaan GLBB yakni

    v_{y \ maks}^2=v_{0y}^2-2gh_{maks}

    masukkan nilai vy maks = 0 dan v0y = v0 sin α maka hasilnya sebagai berikut

    0=v_0^2 \sin^2 α-2gh_{maks}

    ketinggian maksimum adalah =

    h_{maks}=\frac{v_0^2 \sin^2 α}{2g}

    3. Gerak Sumbu X

    Pada sumbu x, peluru bergerak dengan gerak lurus beraturan (GLB) dengan demiki jarak tempuhnya adalah:

    x=v_{0x}t

    masukan nilai v0x = v0 cos α dan nilai t

    x=(v_0 \cos α)( \frac{2\ v_0 \sin α}{g})

    C. Sampel Code Praktikum

    Program Gerak Parabola sederhana dengan bahasa C memiliki input

    1. Kecepatan awal
    2. Sudut tembak
    3. Percepatan Gravitasi (Optional)

    Output yang diharapkan adalah :

    1. Lama terbang
    2. Ketinggingan Maksimum
    3. Jarak Maksimum.
    #include <stdio.h>
    #include <math.h>
    
    int main() {
        float v, g, theta, t_max, h_max, x;
        
        // Input data
        printf("Masukkan kecepatan awal (m/s): ");
        scanf("%f", &v);
        printf("Masukkan sudut lemparan (derajat): ");
        scanf("%f", &theta);
        printf("Masukkan percepatan gravitasi (m/s^2): ");
        scanf("%f", &g);
        
        // Mengubah sudut dari derajat ke radian
        theta = theta * M_PI / 180;
        
        // Menghitung waktu maksimum
        t_max = 2 * v * sin(theta) / g;
        
        // Menghitung ketinggian maksimum
        h_max = pow(v, 2) * pow(sin(theta), 2) / (2 * g);
        
        // Menghitung jarak horizontal
        x = v * cos(theta) * t_max;
        
        // Output hasil
        printf("\nWaktu maksimum: %.2f s\n", t_max);
        printf("Ketinggian maksimum: %.2f m\n", h_max);
        printf("Jarak horizontal: %.2f m\n", x);
        
        return 0;
    }
  • Contoh Program Menghitung Gerak Parabola

    Berikut ini adalah contoh gerak Parabola dengan bahasa C.

    #include <stdio.h>
    #include <math.h>
    
    int main() {
        float v, g, theta, t_max, h_max, x;
        
        // Input data
        printf("Masukkan kecepatan awal (m/s): ");
        scanf("%f", &v);
        printf("Masukkan sudut lemparan (derajat): ");
        scanf("%f", &theta);
        printf("Masukkan percepatan gravitasi (m/s^2): ");
        scanf("%f", &g);
        
        // Mengubah sudut dari derajat ke radian
        theta = theta * M_PI / 180;
        
        // Menghitung waktu maksimum
        t_max = 2 * v * sin(theta) / g;
        
        // Menghitung ketinggian maksimum
        h_max = pow(v, 2) * pow(sin(theta), 2) / (2 * g);
        
        // Menghitung jarak horizontal
        x = v * cos(theta) * t_max;
        
        // Output hasil
        printf("\nWaktu maksimum: %.2f s\n", t_max);
        printf("Ketinggian maksimum: %.2f m\n", h_max);
        printf("Jarak horizontal: %.2f m\n", x);
        
        return 0;
    }
  • Jika Tuhan Maha Segalanya Mengapa Malaikat Diciptakan Untuk Melakukan Tugas-Tugas Tertentu?

    Jika Tuhan Maha Segalanya Mengapa Malaikat Diciptakan Untuk Melakukan Tugas-Tugas Tertentu?

    Mengapa tuhan menciptakan malaikat padahal tuhan kan maha segalanya? Sebelum menjawab pertanyaan ini, mari kita buat dua disclaimer berdasarkan keyakinan saya.

    1. Tuhan yang saya referensikan dalam pertanyaan ini Allah SWT, karena saya seorang muslim yang memiliki kepercayaan tidak ada tuhan selain Allah.
    2. Jawaban saya selalu sama jika di tanya tentang konsep ketuhanan, Manusia tidak akan mampu menjawabnya. Jangankan tentang Tuhan, Nikmat Tuhan saja tidak bisa didefenisikan secara pasti keseluruhan jumlahnya, apalagi menanyakan tentang pencipta nikmatnya.

    Jadi jawaban yang saya berikan ini adalah jawaban berdasarkan kerangka acuan manusia dengan menggunakan Analogi.

    Tuhan Menciptakan Malaikat

    Baiklah jawaban pertama saya cukup sederhana jadi mohon jangan tersinggung dengan jawaban ini. Malaikat saja yang memiliki tugas jelas masih anda pertanyakan mengapa mereka diciptakan, tapi mengapa tidak bertanya kenapa anda sendiri diciptakan?

    Atau semoga anda memiliki dan melaksanakan tugas lebih mulia dari Malaikat sehingga tidak mempertanyakan mengapa diri anda diciptakan. Tapi kejadian prahar pertama dilangit yang diketahui manusia adalah pengusiran Iblis karena merasa lebih mulia dibandingkan mahluk ciptaan lainnya.

    Jawaban Kedua, saya ingin mencoba membuat analogi sederhana dari sudut pandang manusia, sebab tentu saja anda berharap jawaban dari manusia menganai pertanyaan ini. Jika bukan, sebaiknya anda menghadap tuhan sendiri untuk mendapatkan jawabannya secara langsung.

    Donal Trump dibukakan Pintu

    Foto di atas adalah Donald Trump ketika menjadi orang nomor I di US. Padahal Donald Trump juga mampu membuka pintu sendiri, tapi mengapa Amerika Serikat membayar gaji Pasukan Khusus untuk membuka Pintu Mobil Donald Trump?

    Bagi manusia, ini adalah bentuk untuk menunjukkan bahwa Amerika dan Donald Trump memiliki kekuasaan sehingga harus dilayani. Kisah tentang diciptakan Malaikat dikisahkan kepada manusia untuk menunjukkan bahwa Tuhan itu mulia.

    Sama seperti ketika Surat Al-Ihlas menggunakan kata Hu yang merujuk pada tuhan. Dalam bahasa Arab, Hu adalah kata ganti untuk pria, tapi seluruh Muslim sama-sama sepakat bahwa Tuhan bukanlah laki-laki dan perempuan. Bahwa di surah itu sendiri dijelaskan bahwa Dia tidak melahirkan dan tidak dilahirkan.

    Kata Hu ini digunakan sebagai represensi kata ganti sosok yang paling kuat yang dimiliki kosa kata manusia. Lagi-lagi karena Al-Qur’an diturunkan untuk manusia, jadi digunakan bahasa yang dipahami oleh manusia.

    Dalam sudut pandang manusia, sesuatu yang mulia itu pasti dilayani, bukan pelayan dan tidak mengerjakannya sendiri. Nah penjelasan ini untuk manusia tapi apakah tuhan segitu inginnya diagungkan sehingga menciptkan manusia seperti kasus Donald Trump yang memiliki pasukan khusus pembuka pintu mobil?

    Tentu saja tidak, karena Tuhan tidak sesederhana ini. Bahkan dijelaskan dengan defenisi paling kompleks sekalipun, Tuhan jauh lebih kompleks dari penjelasan tersebut.

    Tuhan itu sesuatu yang di luar nalar manusia, jika manusia mampu membuat defenisi tentang tuhan, maka tuhan itu jauh lebih kompleks dari penjelasan tersebut.

    Ketimbang ke bolak-balik, mari kita ke jawaban ketiga. Sebenarnya pertanyaan ini sangatlah keren karena membuktikan bahwa ada proses anda berfikir tentang siapa yang anda sembah.

    Rasa ingin tahu itu keren.

    Manusia bukanlah satu-satunya mahluk yang memiliki rasa ingin tahu, hewan saja punya insting yang sama. Bahkan Malaikat yang sangat taat juga punya rasa ingin tahu yang tinggi.

    وَاِذْ قَالَ رَبُّكَ لِلْمَلٰۤىِٕكَةِ ِانِّيْ جَاعِلٌ فِى الْاَرْضِ خَلِيْفَةً ۗ قَالُوْٓا اَتَجْعَلُ فِيْهَا مَنْ يُّفْسِدُ فِيْهَا وَيَسْفِكُ الدِّمَاۤءَۚ وَنَحْنُ نُسَبِّحُ بِحَمْدِكَ وَنُقَدِّسُ لَكَ ۗ قَالَ اِنِّيْٓ اَعْلَمُ مَا لَا تَعْلَمُوْنَ

    Artinya mungkin seperti ini :

    Dan (ingatlah) ketika Tuhanmu berfirman kepada para malaikat, “Aku hendak menjadikan khalifah di bumi.” Mereka berkata, “Apakah Engkau hendak menjadikan orang yang merusak dan menumpahkan darah di sana, sedangkan kami bertasbih memuji-Mu dan menyucikan nama-Mu?” Dia berfirman, “Sungguh, Aku mengetahui apa yang tidak kamu ketahui.”

    Dari Ayat ini jelas bahwa Allah SWT menciptakan sesuatu (manusia) yang jika ditinjju dari sudut pandang mahluknya (dalam konteks ini Malaikat) hanya akan bebuat kerusakan. Tapi dijawab oleh Allah SWT dengan jawaban tegas Yakni “Sengguhnya Allah SWT lebih mengetahui apa yang tidak engkau ketahui”.

    Dari sini bisa disimpulkan jika Allah SWT tidak menjelaskan alasan mengapa manusia diciptakan justru memberikan penjelasan yang seperti meminta tidak usah cari tahu jawaban sebenarnya karena Malaikat tidak bisa mengetahui semua yang Allah ketahui. Jadi bisa jadi jawaban dari pertanyaan tersebut jika dijelaskan Malaikat tidak akan paham.

    Tapi lagi-lagi jawaban ketiga ini juga dari perspektif manusia. Kesimpulannya cukup jelas jika pertanyaan ini tentu saja tidak bisa di jawab jika jawaban yang diminta dari perspektif Allah SWT.

  • Format Lembar Pengamatan Bulan Baru – Rukyatul Hilal

    Pengamatan munculnya bulan baru atau Rukyatul Hilal merupakan salah satu kegiatan yang penting dalam menentukan penanggalan sistem penanggalan Bulan Qamariah kalender Hijriah. Pengamatan ini menjadi hal yang menantan untuk dilakukan mengingat Bulan baru / Hilal adalah fenomena yang tidak berdiri sendiri.

    Hilal adalah fenomena yang merupakan kombinasi dari Revolusi Bulan, Revolusi Bumi, Rotasi Bumi dan Lokasi di mana Hilal Tersebut diamati. Perbedaan kemunculan hilal di tiap tempat di belahan dunia bisa jadi berbeda-beda dengan pola yang sangat berbeda dengan perbedaan siang dan malam akibat dari gerakan semu matahari.

    Selain menentukan Bulan Baru, Hilal ini menjadi penting bagi umat Islam dimana salah satu ibadah yang menjadi Rukun Islam, Puasa Ramadhan ditentukan dengan tampak atau tidak hilal.

    Format Laporan

    Silahkan Unduh Lembang Pengamatan Rukyatul Hilal di bawah ini!

  • Jika Memang Lengkap, Mengapa Tidak Ada Dinosaurus di Dalam Al-Qur’an?

    Jika Memang Lengkap, Mengapa Tidak Ada Dinosaurus di Dalam Al-Qur’an?

    Agak tergelitik rasanya ingin menjawab pertanyaan yang beberapa kali saya dapatkan ketikaa ditanyai oleh teman bahkan yang bertanya itu seorang muslim juga sama seperti saya. Pertanyaan modelnya mungkin seperti ini, Jika Al-qur’an lengkap, Mengapa tidak ada Dinosaurus di dalam Al-Qur’an?

    Baiklah, sebelum lebih jauh saya ingin membuat pengakuan terlebih dahulu jika saya bukanlah pakar agama Islam, hanya seorang Islam yang kadang tergelitik menjawab pertanyaan seputar sains dan Islam.

    Petunjuk Bagi Mukmin

    Sebelum menjawabnya, mungkin pertanyaan kurang seru. Jika Memang benar-benar lengkap seperti defenisi kata lengkap dari si penanya, maka pertanyaan yang lebih keren mungkin boleh jadi berbentuk begini

    1. Mengapa Validimir Putin tidak ada dalam Al-Qur’an?
    2. Mengapa tidak ada Pantai Indah Jaya Ancol?

    Atau berbagai jenis pertanyaan yang menyalah artikan kata “Lengkap”.

    Jawabannya yah Karena Vladimir Putin dan Pantai Jaya Ancol bukanlah orang Allah SWT pilih sebagai sosok yang dijadikan pelajaran di dalam Al-Qur’an. Putin, sekalipun terkenal, beliau bukanlah Nabi, Keluarga Nabi, Orang Soleh yang disucikan.

    Juga bukan contoh buruk yang dipilih sebagaimana nama Abu Lahab yang diabadikan di dalam Al-Qur’an sebagai contoh manusia buruk.

    Jadi jawabannya jelas, Karena tidak ada hikmah dalam hidup beragama yang dapat ditarik dari kisah Dinosaurus. Kalau pun mungkin ada, maka harusnya sudah ada kisah lain yang bisa dipetik hikmahnya.

    Misalnya saja, Ashabul Kahfi dulu Pelihara Anjing, jadilah Anjing dicertiakan dalam Al-Qur’an. Seandainya kita bisa berandai-andai Ashabul Kahfi memelihara T-Rex maka T-Rex mungkin saja akan diceritakan di dalam Al-Qur’an.

    Kalaupun kejadian, Kisah tersebut tetap saja bukan tentang T-Rex-nya tapi tentang keteladanan Ashabul Kahfi. Alasanya karena Al-Qur’an adalah Kitab yang dijadikan Petunjuk bukan kitab sains yang membahas sains secara detail dan operasional, sekalipun ada beberapa fakta sains didalamnya.

    Lebih jelasnya, Al-Qur’an itu adalah petunjuk bagi orang yang Mutaqin. Jangan di balik yah, karena anda bukan Muttaqin maka tidak ingin mentaati Al-Qur’an, tapi karena anda mentaati Al-Qur’an maka anda menjadi Muttaqin.

    Dinosaurus dalam Al-Qur’an

    Jadi apakah keberadaan Dinosaurus di sangkal oleh Al-Qur’an? Karena tidak pernah dikisahkan. Mari kita sedikit bercucok logi karena agak sulit membuktikannya dengan sains dengan asumsi tanpa bukti bukan berarti suatu kejadian tidak pernah terjadi. Asumsi yang kita gunakan, Bukti adalah alat untuk menolak kejadian yang berlawanan dengan asumsi yang dibangun jika tidak sesuai bukti yang dimaksud.

    Mari kita ambil salah satu Surah tentang peran manusia di muka Bumi

    وَاِذْ قَالَ رَبُّكَ لِلْمَلٰۤىِٕكَةِ اِنِّيْ جَاعِلٌ فِى الْاَرْضِ خَلِيْفَةً ۗ قَالُوْٓا اَتَجْعَلُ فِيْهَا مَنْ يُّفْسِدُ فِيْهَا وَيَسْفِكُ الدِّمَاۤءَ ۚ وَنَحْنُ نُسَبِّحُ بِحَمْدِكَ وَنُقَدِّسُ لَكَ ۗ قَالَ اِنِّيْٓ اَعْلَمُ مَا لَا تَعْلَمُوْنَ ﴿البقرة : ۳۰

    Dan (ingatlah) ketika Tuhanmu berfirman kepada para malaikat, “Aku hendak menjadikan khalifah di bumi.” Mereka berkata, “Apakah Engkau hendak menjadikan orang yang merusak dan menumpahkan darah di sana, sedangkan kami bertasbih memuji-Mu dan menyucikan nama-Mu?” Dia berfirman, “Sungguh, Aku mengetahui apa yang tidak kamu ketahui.”

    Kata Khalifah dalam bahasa arab dapat diartikan dalam dua hal yakni Pemimpin dan Pengganti. Dengan demikian jika Manusia pertama adalah Nabi Adam AS, maka kehadiran manusia, sebagaimana yang kita ketahui sekarang, sebagai ras mahluk hidup tertinggi adalah pengganti dari ras penguasa bumi sebelumnya.

    Sebelumnya Bumi di Pimpin oleh siapa? Untuk yang satu ini sepehaman saya belum ada penjelas. boleh jadi yang dimaksud ras tertinggi sebelumnya adalah Mahluk Gaib yang tidak bisa dirasakan oleh Indra, namun boleh jadi Mahluk yang ukuran dan kekuatan lebih besar dari spesies manusia.

    Dari sini kita mulai berandai-andai, mahluk yang dimaksud pemimpin, Determinasi-nya paling tinggi adalah Dinosaurus, dimana mereka praktis tidak bisa dikalahkan dari segi fisik. Lalu diturunkan Meteor untuk menghantam mereka agar ada tempat bagi Manusia sebagai Pemimpin, atau paling tidak mampu menggunakan akalnya untuk bertahan hidup dan melawan mahluk lain yang ukuran lebih besar seperti Mamoth, Gajah, Badak, Paus dan seterusnya.

    Dalam kasus ini, Asumsi ini tidak melanggar konsep manapun. Meskipun hanya sebatas kerangka pikir dan sulit untuk dilakukan pembuktikan secara empirik. Maksud dari pembuktian empirik ini, sulit untuk dibutikkan kebenarannya demikian juga dengan kesalahan teori ini. Tapi saya juga tidak menjamin teori ini benar.

    Balik lagi ke kata pemimpin dan Pengganti (Khalifah). Sebelum Tireks menurut Sains, Bumi ini dikuasi oleh mahluk Amphibia dan Reptile yang melata, lalu sebelumnya masa Amphibia, Mahluk penguasa adalah mahluk air sejenis ikan (jangan bayangkan Ikan Modern) yang kita sebut saja ikan Purba. Ikan Purba ini memakan hewan yang lebih kecil.

    Sebelum ikan purba, sains juga menyebutkan mahluk yang berkuasa di Bumi adalah Pito Planton yang bisa menghirup oksigen yang dihasilkan oleh Zoo Planton. Zoo Planton atau Ganggang Hijau Purba sendiri adalah mahluk hidup yang menjadi dominator di Bumi, sebelum masa Pito Planton.

    Hal yang jelas dari sini adalah akan selalu ada suksesor yang menggantikan spesies dominator sebelumnya, hingga pada akhirnya, saat ini Bumi di kuasai oleh Mahluk Perkakas yang kita sebut Homo sapiens atau ras manusia.

  • Bumi dan Gerak Benda Langit

    Bumi dan Gerak Benda Langit

    Dari sudut pandang manusia Bumi, Langit tampak seperti kubah raksasa yang menutup bumi yang menyerupai tempurung kelapa. Konsep ini membuat benda-benda langit seperti matahari, bintang-bintang dan bukan menempel pada kubah-kubah tersebut. Fenomena ini sebut gerak bandai langit.

    Jika kubah ini diteruskan, maka sudut pandang ini hanya melihat setengah dari bentuk yang diasumsikan seperti bola langit. Sisi bawah dari bola langit ini dibatasi oleh horison sehingga kita tidak mampu melihat bawahnya.

    Gerak Harian Benda Langit

    Gerak Benda Langit dari peta bumi

    Mari kita asumsikan bahwa benda-benda langit tersebut begerak diantara dinding-dinding kubah langit. Benda-benda tersebut bergerak dari timur ke barat dengan periode tetap yakni 24 jam. Gerakan ini selanjutnya disebut sebagai gerak harian benda langit.

    Gerak harian inilah yang “menyebabkan” matahari terlihat terbit dan tenggelam sehingga terjadi pergantian siang dan malam. Namun pada dasarnya sebenarnya matahari tidaklah bergerak terhadap bumi. Fenomean tersebut terjadi karena adanya gerak rotasi bumi dan membuat matahari seolah terlihat terbit dan terbenam. Gerak ini selanjunya disebut sebagai gerak semu matahari.

    Namun fenomena gerak semu matahari ini tidak terjadi sama di setiap bangian bumi. Sumbu rotasi bumi tidaklah tegak lurus dengan arah jatuhnya matahari sehingga membuat daerah bagian utara lebih condong ke Matahari. Hal ini membuat matahari tidak mengelilingi bumi namun hanya mengitari langit di bagian utara bumi.

    Langit Utara tidak pernah malam

    Revolosi Bumi

    Selain berotasi, bumi juga bergerak mengelilingi matahari atau disebut sebagai revolusi bumi. Bumi membutuhkan waktu 365,25 hari untuk menglilingi matahari satu putaran.Sumbu rotasi Bumi ini tidak sejajar terhadap sumbu revolusi, melainkan sedikit miring sebesar 23,5 derajat. Akibat dari miringnya sumbu rotasi Bumi itu, Matahari tidak selalu terlihat di atas khatulistiwa Bumi, Matahari akan terlihat berada di bagian utara dan selatan Bumi. Selama setengah tahun, Matahari lebih banyak menerangi Bumi bagian utara, dan setengah tahun berikutnya Matahari lebih banyak menerangi Bumi bagian selatan.

    Dalam gerak semunya, matahari akan tampak bergerak dari khatulistiwa (equator) antara 23,5 derajat lintang utara dan lintang selatan. Pada tanggal 21 maret, lintasan harian Matahari akan berimpit dengan ekuator sehingga matahari terbit tepat di timur dan terbenam tepat di barat (deklinasi Matahari = 0 derajat). Peristiwa ini disebut ekuinoks musim semi. Pada saat ekuinoks, lamanya siang dan malam hari sama 12 jam di seluruh tempat di Bumi.

    Pada tanggal 21 Juni, Matahari sampai pada deklinasinya paling utara, yakni 23,5 derajat sehingga menyebabkan musim panas di belahan bumi utara. Pada tanggal 23 September, lintasan harian Matahari akan berimpit kembali dengan ekuator. Peristiwa ini disebut ekuinoks musim gugur. Pada tanggal 22 Desember, Matahari sampai pada deklinasinya paling selatan, yakni -23,5 derajat sehingga menyebabkan musim dingin di belahan bumi utara.

  • Perulangan FOR Bahasa C

    Dalam bahasa C (dan juga bahasa turunan C seperti C++, PHP dan Java), terdapat 3 buah struktur perulangan atau looping, yakni perulangan forperulangan while dan perulangan do while.

    Dalam tutorial bahasa pemrograman C kali ini kita akan bahas perulangan for terlebih dahulu.

    Pengertian Struktur Perulangan For Bahasa C

    Struktur perulangan (atau dalam bahasa inggris disebut dengan loop) adalah instruksi kode program yang bertujuan untuk mengulang beberapa baris perintah.

    Dalam merancang perulangan, kita setidaknya harus mengetahui 3 komponen:

    1. Kondisi awal perulangan.
    2. Kondisi pada saat perulangan.
    3. Kondisi yang harus dipenuhi agar perulangan berhenti.

    Berikut format dasar struktur perulangan for dalam bahasa C:

    for (start; condition; increment) 
    {
       // kode program
       // kode program
    }

    Start adalah kondisi pada saat awal perulangan. Biasanya kondisi awal ini berisi perintah untuk memberikan nilai kepada variabel counterVariabel counter sendiri adalah sebuah variabel yang akan menentukan berapa banyak perulangan dilakukan. Kebanyakan programmer menggunakan variabel i sebagai variabel counter (ini tidak harus).

    Condition adalah kondisi yang harus dipenuhi agar perulangan berjalan. Selama kondisi ini terpenuhi, maka compiler bahasa C akan terus melakukan perulangan. Misalnya condition ini berisi perintah i < 5, maka selama variabel counter i berisi angka yang kurang dari 5, maka lakukan perulangan.

    Increment adalah bagian yang dipakai untuk memproses variabel counter agar bisa memenuhi kondisi akhir perulangan. Bagian ini akan selalu di eksekusi di setiap perulangan.

    Disebut increment karena biasanya berisi operasi increment seperti i++, yang sama dengan i = i + 1. Maksudnya, dalam setiap perulangan naikkan variabel i sebanyak 1 angka. Namun kita juga bisa memberikan nilai lain, misalnya i = i + 2, sehingga variabel counter akan naik 2 angka setiap perulangan

    Sebagai tambahan, terdapat istilah iterasi (iteration), yang berarti 1 kali perulangan. Istilah ini cukup sering dipakai ketika membahas tentang struktur perulangan.

    Baik, cukup dengan teorinya mari kita masuk ke contoh praktek.


    Contoh Kode Program Perulangan For Bahasa C

    Sebagai contoh pertama, saya ingin menampilkan teks  “Hello World” sebanyak 5 kali. Berikut kode programnya:

    #include <stdio.h>
     
    int main(void)
    {
      int i;
      for (i = 1; i < 5; i++) {
        printf("Hello World \n");
      }
      return 0;
    }

    Di baris 5 saya membuat sebuah variabel i yang di set dengan tipe data integer. Variabel ini nantinya akan saya pakai sebagai variabel counter, yakni variabel yang menentukan kondisi akhir perulangan.

    Perintah di baris 6, yakni for (i = 1; i < 5; i++), bisa dibaca:

    “Jalankan perulangan, mulai dari variabel i = 1 sampai i < 5. Dalam setiap iterasi, naikkan nilai variabel i sebanyak 1 angka menggunakan perintah i++“.

    Berikut hasilnya:

    Hello World
    Hello World
    Hello World
    Hello World

    Pertanyaannya, kenapa hanya tampil 4 baris “Hello World“? Padahal kita mengulang dari i = 1 sampai i < 5.

    Ini berkaitan dengan penggunaan tanda. Kondisi akhir perulangan adalah i < 5, yang artinya akan selalu bernilai true jika i kurang dari 5, tapi jika sudah sampai dengan 5 maka kondisi menjadi false dan perulangan berhenti.

    Agar teks “Hello World” bisa tampil sebanyak 5 kali, ada 2 alternatif, yakni mengubah kondisi awal menjadi i = 0, atau mengubah kondisi akhir menjadi i <=5. Pilihan kedua ini tambak lebih baik:

    Hasil kode program:

    Sekarang teks “Hello World” sudah tampil sebanyak 5 kali. Sekali lagi, hati-hati dengan menggunakan tanda perbandingan, terutama antara “<” dengan “<=“.

    #include <stdio.h>
     
    int main(void)
    {
      int i;
      for (i = 1; i <= 5; i++) {
        printf("Hello World \n");
      }
      return 0;
    }

    Di dalam perulangan, kita juga bisa mengakses variabel counter seperti contoh berikut:

    Hasil kode program:

    Hello World
    Hello World
    Hello World
    Hello World
    Hello World

    Sekarang setelah teks “Hello World“, tampil angka yang berasal dari nilai variabel i. Karena dalam setiap iterasi variabel counter i akan dinaikkan 1 angka (proses increment), maka nilainya juga akan naik 1 angka untuk setiap iterasi.

    Variabel counter i juga tidak haris di increment, tapi juga bisa di decrement untuk membuat perulangan menurun. Berikut contohnya:

    #include <stdio.h>
     
    int main(void)
    {
      int i;
      for (i = 1; i <= 5; i++) {
        printf("Hello World %i \n",i);
      }
      return 0;
    }

    Hasil kode program:

    Hello World 1
    Hello World 2
    Hello World 3
    Hello World 4
    Hello World 5

    Kode kita sangat mirip seperti sebelumnya, tapi perhatikan perintah for di baris 6: for (i = 5; i >= 1; i--). Ini bisa dibaca:

    “Jalankan perulangan, mulai dari variabel i = 5 sampai i >= 1. Dalam setiap iterasi, turunkan nilai variabel i sebanyak 1 angka menggunakan perintah i--“.

    #include <stdio.h>
     
    int main(void)
    {
      int i;
      for (i = 5; i >= 1; i--) {
        printf("Hello World %i \n",i);
      }
      return 0;
    }

    Hasilnya, nilai variabel counter i akan berkurang 1 angka dalam setiap iterasi.

    Hello World 5
    Hello World 4
    Hello World 3
    Hello World 2
    Hello World 1

    Sebagai contoh terakhir, bisakah anda membuat perulangan untuk menampilkan angka kelipatan 3 sebanyak 10 kali? Hasil akhir yang kita inginkan adalah sebagai berikut:

    3 6 9 12 15 18 21 24 27 30

    Terdapat beberapa cara untuk menghasilkan deret ini. Pertama, ubah di sisi block perintah yang akan dijalankan. Dimana variabel counter i tetap naik dari 1 sampai 10:

    #include <stdio.h>
     
    int main(void)
    {
      int i;
      for (i = 1; i <= 10; i++) {
        printf("%i ",i*3);
      }
      printf("\n");
      return 0;
    }

    Agar menghasilkan angka yang naik kelipatan 3, teknik yang dipakai adalah mengalikan nilai variabel counter i dengan angka 3 untuk setiap iterasi.

    Cara kedua adalah memodifikasi proses increment dari variabel counter:

    #include <stdio.h>
     
    int main(void)
    {
      int i;
      for (i = 3; i <= 30; i = i + 3) {
        printf("%i ",i);
      }
      printf("\n");
      return 0;
    }

    Perhatikan perintah perulangan for di baris 6. Perintah for (i = 3; i <= 30; i = i + 3) bisa dibaca:

    “Jalankan perulangan, mulai dari variabel i = 3 sampai i <= 30. Dalam setiap iterasi, naikkan nilai variabel i sebanyak 3 angka menggunakan perintah i = i + 3“.

    Teknik ini agak jarang dipakai, tapi itu bisa dilakukan.