Tag: Pemograman

  • RPS Algoritma dan Pemrograman dengan Bahasa Pascal Untuk Jurusan Fisika

    RPS Algoritma dan Pemrograman dengan Bahasa Pascal Untuk Jurusan Fisika

    AhmadDahlan.NET – Berikut ini adalah Rencana Pembelajaran Semester – RPS Algoritma dan Pemograman dengan Bahasa Pascal untuk Mahasiswi Jurusan Fisika.

    A. Deskripsi Mata Kuliah

    Mata kuliah Algoritma dan Pemograman adalah Mata kuliah yang mempelaari tentang struktur dasar Algoritma, Notasi Algoritmik, tipe data, Value, Ekspresi, Struktur Kontrol, pemilihan penggunaan fungsi, prosedur pengulangan, pemropesan sekuensial dan operasi data dengan struktu array. Mata kuliah ini adalah mata kuliah pra syarat untuk mata kuliah Fisika Komputasi, Pengantar e-Learning, Elektronika Digital dan Instrumentasi.

    B. Materi Berdasarkan Pertemuan

    1. Pertemuan I : Pengantar Mata Kuliah
      1. Pengertian dan Peran Algoritma dan Pemograman
      2. Pemograman dengan Bahasa Pascal
    2. Pertemuan II :
      1. Elemen Pemrograman Bahasa Pascal
      2. Program Writeln
    3. Pertemuan III :
      1. Tehnik Penyajian Algoritma
      2. Konsep Dasar Pemograman Pascal
      3. Ekspresi
    4. Pertemuan IV : Pengulangan Menggunakan For To Do
    5. Pertemuan V : Pengulangan dengan For Downto Do
    6. Pertemuan VI :
      1. Operator Pada Pascal
      2. Percabangan Bersyarat dengan If Then Else
    7. Pertemuan VII :
      1. Percabangan dengan Case Of
      2. Percabangan dengan Case Else
    8. Pertemuan VIII : Mid Test Bagian I
    9. Pertemuan IX :
      1. Looping dengan FOR TO DO,
      2. Looping dengan WHILE DO,
      3. Pengulangan dengan REPEAT UNTIL
    10. Pertemuan X : Menyusun Array
    11. Pertemuan XI : Prosedur (Procedure) dan Function (Fungsi) dalam Program Pascal
    12. Pertemuan XII : Praktek dengan Case Methode
    13. Pertemuan XIII : Praktek dengan Case Methode
    14. Pertemuan XIV : Praktek dengan Case Methode
    15. Pertemuan XV : Praktek dengan Case Methode
    16. Pertemuan : Final Test
  • Belajar Matlab – Diferensial Numerik dengan Metode Euler

    Belajar Matlab – Diferensial Numerik dengan Metode Euler

    Ahmaddahlan.NET – Metode Euler adalah solusi numerik untuk persamaan Diferensial biasa orde I. Persamaan dari Deret Taylor adalah :

    y(t_i+1)=y(t_i)+(t_{i+1}-t_i)y'(t_i)+\frac{(t_{i+1}-t_i)^2}{2}y"(ξ_i)

    jika :

    h = (t_{i+1}-t_i)

    maka persamaan di atas dapat ditulis :

    y(t_i+1)=y(t_i)+hy'(t_i)+\frac{h^2}{2}y"(ξ_i)

    Asumsi yang diterapkan pada Metode Eular adalah suku terakhir adalah turunan ke dua yang dapat diabaikan sehingga :

    y_{i+1}=y_i+y'h

    dimana y’ = f(xi,yi)

    Nilai turunan dari y dengan metode Eular didapatkan dari mengekstrapolasi garis linier diinterval h, sehingga semakin banyak interval nilai h maka semakin besar error yang didapatkan.

    A. Studi Kasus

    Misalkan sebuah persamaaan diferensial orde I seperti berikut :

    \frac{dy}{dx}=-2x^3+12x^2-20x +8,5

    dimana x = 0 sampai x = 4 dengan lebar langkah 0.5 dengan syarat awal y(0) = 1.

    Langkah 1. Hitung terlebih dahulu solusi analitik dari persamaan tersebut !

    Langkah 2. Tentukan f(x) = -2x3+12x3-20x+8.5, kemudian subtitusi nilai x ke dalam persamaan tersebut!

    Langkah 3. Hitung nilai y menggunakan persamaan : yi+1=yi+y’h

    y

    xy’y
    08,51
    0,5
    1
    4

    Langkah 5. Buat Algoritma dengan Metode tersebut di Matlab.

    Contoh Algortima dan Scriptnya di Matlab!

    clear all
    clc
    format long
    
    b = 4; % batas atas
    a = 0; % batas bawah
    h = 0.5; % semakin nilai semakin detail hasil yang ditunjukkan
    N = (b-a)/h;
    y0 = 1; % nilai y awal
    x0 = 0; % nilai x awal
    
    % inisialisasi array x dan y
    x = zeros(1, N+1);
    y = zeros(1, N+1);
    w = zeros(1, N+1);
    
    %perubahan t per step
    for i = 1:N+1
        x(i) = a + (i-1)*h;
    end
    
    %solusi y menggunakan metode Euler
    y(1) = y0;
    for i = 2:N+1
        y(i) = y(i-1) + h*(-2*x(i-1)^3 + 12*x(i-1)^2 - 20*x(i-1) + 8.5);
    end
    
    %solusi analitik
    for i = 1:N+1
        w(i) = -0.5*x(i)^4 + 4*x(i)^3 - 10*x(i)^2 + 8.5*x(i) + 1;
    end
    
    % Plot hasil
    plot(x, y, 'b', x, w, 'r');
    xlabel('x');
    ylabel('y');
    legend('Numerik', 'Analitik');
    title('Perbandingan Solusi Numerik dan Analitik');
    

    Silahkan Run Script tersebut, disana akan terlihat perbedaan solusi antara Metode Euler dan Metode Analitik.

    Tugas Latihan !

    Gambarlah Grafik antara hasil Analitik dan Metode Euler untuk persamaan diberensial biasa berikut :

    f(x,y)=\frac{y}{2x+1}

  • Tipe Data dalam Bahasa Pemograman C

    Tipe Data dalam Bahasa Pemograman C

    AhmadDahlan.NET – Tipe data dalam Bahasa Pemograman C akan selalu diasosiasikan dengan Variabel yang digunakan. Tipe data ini mengacu pada sistem kestensi yang digunakan dalam mendeklarasikan sebuah variabel atau fungsi yang dibangun.

    Tipe Data

    Pada Bahasa C, Variable dan Tipe data yang digunakan akan menentukan seberapa besar memori yang akan digunakan untuk melakukan proses komputasi dari data.

    Jenis dna tipe data dalam bahasa C

    Tipe data dapat diklasifikasikan sebagai berikut :

    1. Basics – Tipe data aritmatika yang terbagi dalam dua kelompok yakni (1) integer dan (2) floating-point.
    2. Enumerated – Jenis tipe data yang isinya dapat didefenisikan dan berlawan dengan data aritmatika, Enumerated teridiri dari data-data yang berisfat diskrit.
    3. Void – Tipe data tidak bernilai yang menunjukan bahwa tidak nilai yang tersedia.
    4. Derived – Tipe data yang tidak berdiri sendiri dan merupakan jenis type data lain seperti
      1. Pointer
      2. Array
      3. Struktur
      4. Union
      5. Function

    Tipe data Array dan Struktur adalah jenis data kolektif yang berfungsi sebagai tipe agregat. Tipe fungsi adalah tipe data yang nilainya ditentukan oleh fungsi.

    TypeUkuran Memori (byte)Range Data
    Char1 -128 – 127 atau 0 – 255
    Int2 atau 4 -32,768 sampai 32,767

    -2,147,483,648 sampai 2,147,483,647
    unsigned Int2 atau 40 sampai 65,535

    0 sampai 4,294,967,295
    Short2-32,768 sampai 32,767
    unsigned Short20 to 65,535
    Float41.2E-38 — 3.4E+38
    Double42.3E-308 — 1.7E+308
    Long8-9223372036854775808 sampai 9223372036854775807

    A. Data Integer

    Tipe Data Integer adalah data yang berisi angka yang mewakili bilangan bulat. Bilangan Bulat ini adalah bilangan yang tidak memiliki koma dan pada Data Sains, Bilangan Integer ini adalah bilangan Diskrit.

    Contoh BIlangan Bulat ini adalah 1, 2, 3, … dan seterusnya. Pada Bahasa C, tipe data Integer terdiri dari banyak tipe seperti yang tertera pada tabel di atas. Ada tipe int yang hanya mengakomodiasi bilangan dari -32,768 sampai 32,767.

    Jadi jika misalnya kita ingin menjumlahkan angka 34000 + 2000, maka programer tidak boleh menggunakan data Integer. Lebih khususnya sebenarnya tipe data integer lebih dugunakan untuk mencacah jumlah data saja, tidak pas untuk operasi matematis.

    b. Data Float atau Double

    Pada tipe data Float atau Double yang menyediakan penulisan data desimal, pemisahnya menggunakna standar titik bukan kome, jadi penulsi 2,3 tidak dikenali tetapi ditulis dengan 2.3.

    Penulisan tipe data karakter (Char) harus diapit dengan tanda petik satu agar bisa dikenali batas Char yang dimaksud. Sebagai contoh berikut ini contoh penulisan sederhana di Bahasa C.

    #include <stdio.h>
    
    int main(){
        int usia = 30;
        float berat = 60.3;
        double tinggi = 171.00;
    
        printf("Nama saya %s\n", "Ahmad Dahlan");   
        printf("Usia: %i tahun\n", usia);
        printf("Tinggi: %.2f cm\n", tinggi);
        printf("Berat: %.2f Kg\n", berat);
        printf("\n");
        printf("Sekian dan terima kasih \n");
        // tanda miring ini membuat tulisan akan diabaikan pada 
        //bagian hasil dan hanya dijadikan sebagai penjelasn dari 
        //program
    
        return 0;
    }

    Hasilnya jika dijalankan :

    Nama: Ahmad Dahlan
    Usia: 30 tahun
    Tinggi: 171.00 cm
    Berat: 60.30 Kg
    
    Sekian dan terima kasih

    Perhatikan tanda %.2f pada bagian program, sintak ini adalah perintah untuk menunjukkan 2 angka di belakang koma, jika hanya ditulis %f, maka tipa data float dan double secara otomatis akan menuliskan 6 angka di belakang koma.

    Nama: Ahmad Dahlan
    Usia: 30 tahun
    Tinggi: 171.000000 cm
    Berat: 60.299999 Kg
    
    Sekian dan terima kasih
    Conoth Bahasa C dan TIpe Data variable
    Cuplikan penulisan code di Bahasa C

    B. Tipe Data Void

    Tipe data Void adalah defenisi khusus untuk memberikan informasi tidak ada data yang eksis. Tidak ada data yang eksis ini berbeda dengan 0. Dalam bahasa program, 0 ini sudah terdefenisi dan memiliki data meskipun nilainya 0, sehingga bisa dioperasikan, sedangkan Void atau null tidak bisa dioperasikan.

    Dalam bahasa program hal ini sangat penting untuk menentukan proses komputasi dari data yang dikelola. Bahkan pada bahasa program yang lebih tinggi (librarinya) seperti Javascript ada tipe data Undifined atau data belum didefenisikan dalam memory.

    C. Konversi Type Data

    Keunikan dari bahasa C adalah semua tipe data harus didefenisikan di awal pada saat data ingin dituliskan, misalkan kita menulis perintah :

    float a = (float) 26;

    Angak 26 disini sekalipun bilangan bulan akan dikenal dengan tipe data float. Hal ini jika terjadi kekeliruan tipe data misalnya menyusun program seperti berikut ini.

    #include <stdio.h>
    
    void main(){
        int x = 7;
        int y = 3;
    
        float c = x / y;
    
        printf("Jawaban = %.2f\n", c);
    }

    Ketika program ini di jalankan akan menghasilkan

    Jawaban a / b = 2.00

    Padahal seharusnya hasil pembagian 7/3 harusnya 2,333333. Hal ini disebabkan oleh tipe data yang dibagi adalah bilangan bulat (int) sehingga hasilnya akan selalu dibulatkan.

    Untuk menkonversi tipe data x dan y ini ke float maka, program harus diberikan instruksi untuk melakukan proses kalkulasi x dan y sebagai float sekalipun sumber asal dari x dan y tersebut adalah integer.

    #include <stdio.h>
    
    void main(){
        int x = 7;
        int y = 3;
    
        float c = (float) x / (float) y;
    
        printf("Jawaban a / b = %.2f\n", c);
    }

    Maka hasilnya akan menunjukkan 2 angka di belakang koma sesuai perintah print-nya

    Jawaban a / b = 2.33

    Misalkan ganti perintah %.2f dengan %.28f, maka akan muncul 28 angka di belakang koma, sayangnya hasilnya tidak sama dengan perhitungan asli dimana yakni 2,33333333333333333333 tapi 2.33333325386047363281.

    Hasil ini tidak presisi dalam menganalisis angka detail membuat Bahasa C tidak begitu cocok digunakna untuk keperluan komputasi pada ilmu-ilmu eksak, sekalipun ada beberapa layanan yang bisa digunakan untuk melakukan operasi matematis.