Artikel Informatika – HIMTIKA https://himtika.cs.unsika.ac.id Himpunan Mahasiswa Informatika UNSIKA Mon, 11 Nov 2024 06:12:09 +0000 en-US hourly 1 https://himtika.cs.unsika.ac.id/wp-content/uploads/2024/04/cropped-Logo-New-Himtika-32x32.png Artikel Informatika – HIMTIKA https://himtika.cs.unsika.ac.id 32 32 Pilih Belajar C++ #8 : Fungsi https://himtika.cs.unsika.ac.id/pilih-belajar-c-8-fungsi/ https://himtika.cs.unsika.ac.id/pilih-belajar-c-8-fungsi/#respond Mon, 11 Mar 2024 01:31:44 +0000 https://himtika.cs.unsika.ac.id/?p=12214 Halo sobat informatics! Selamat datang dalam perjalanan baru kita ke dalam dunia fungsionalitas dalam pemrograman. Hari ini, kita akan menggali lebih dalam konsep yang sangat penting, yaitu “function” atau fungsi. Fungsi memberikan kemampuan kepada kita untuk mengorganisir dan merapikan kode, serta membuatnya lebih mudah dimengerti dan dapat digunakan kembali.

Bersiaplah untuk memahami berbagai aspek menarik, mulai dari contoh fungsi yang sederhana, penggunaan function overloading untuk kelas fungsi yang lebih kompleks, hingga konsep default parameter, variabel lokal dan global, serta merambah ke dalam keajaiban rekursi. Mari kita mulai petualangan kita dalam memahami kekuatan dan fleksibilitas fungsi dalam pemrograman!

a) Fungsi

Dalam merancang kode program, terkadang kita sering membuat kode untuk melakukan tugas yang sama secara berulang-ulang. Tugas yang sama ini akan jauh lebih efektif jika dipecah dari program utama dan dijadikan sebuah function.

Function atau fungsi merupakan kode program yang dirancang untuk menyelesaikan sebuah tugas tertentu dan merupakan bagian dari program utama. Function diperlukan untuk memecah alur program yang besar menjadi beberapa kode program kecil agar mudah untuk dikelola.

Deklarasi fungsi:

Copied!
returnType nama_fungsi(parameter1, parameter2, ...) { // body }

Parameter dan Argumen:

Parameter adalah sebutan untuk inputan fungsi pada saat pendefinisian fungsi tersebut. Sedangkan argument adalah sebutan untuk inputan fungsi pada saat pemanggilan fungsi.

Return:

Agar lebih fleksibel, sebuah function seharusnya mengembalikan nilai, bukan langsung menampilkan nilai dengan menggunakan perintah cout. Perintah return berfungsi untuk mengembalikan nilai yang ada di dalam function dan jangan lupa ketika kita menggunakan return kita harus menentukan tipe data apa yang akan dikembalikan oleh function tersebut.

Contoh 1:

#include <iostream>
using namespace std;

void salam()
{
    cout << "Selamat Pagi!";
}

int main()
{
    salam();
    return 0;
}

Output:

Copied!
Selamat Pagi!

Contoh 2:

#include <iostream>
using namespace std;

void cekBilangan(int bilangan)
{
    if ((bilangan % 2) == 0)
    {
        cout << bilangan << " Merupakan bilangan genap";
    }
    else
    {
        cout << bilangan << " Merupakan bilangan ganjil";
    }
}

int main()
{
    int bil;

    cout << "Masukkan bilangan: ";
    cin >> bil;

    cekBilangan(bil);
    return 0;
}

Output:

Copied!
Masukkan bilangan: 3 3 Merupakan bilangan ganjil

Contoh 3:

#include <iostream>
using namespace std;

int penjumlahan(int bil1, int bil2)
{
    return (bil1 + bil2);
}

int pengurangan(int bil1, int bil2)
{
    return (bil1 - bil2);
}

int perkalian(int bil1, int bil2)
{
    return (bil1 * bil2);
}

int pembagian(int bil1, int bil2)
{
    return (bil1 / bil2);
}

int main()
{
    int bil1, bil2;

    cout << "Masukkan 2 bilangan: ";
    cin >> bil1 >> bil2;

    cout << "Hasil penjumlahan: " << penjumlahan(bil1, bil2) << endl;
    cout << "Hasil pengurangan: " << pengurangan(bil1, bil2) << endl;
    cout << "Hasil perkalian: " << perkalian(bil1, bil2) << endl;
    cout << "Hasil pembagian: " << pembagian(bil1, bil2) << endl;
    return 0;
}

Output:

Copied!
Masukkan 2 bilangan: 8 4 Hasil penjumlahan: 12 Hasil pengurangan: 4 Hasil perkalian: 32 Hasil pembagian: 2

b) Function Overloading

Function overloading adalah function yang memiliki nama yang sama tetapi memiliki parameter yang berbeda. Function dapat memiliki nama yang sama jika jumlah atau jenis parameter yang dibuat berbeda.

Contoh 4:

#include <iostream>
using namespace std;

int penjumlahan(int, int);
int penjumlahan(int, int, int);
double penjumlahan(double, double);

int main()
{
    cout << "Hasil penjumlahan: " << penjumlahan(2, 4) << endl;
    cout << "Hasil penjumlahan: " << penjumlahan(2, 4, 6) << endl;
    cout << "Hasil penjumlahan: " << penjumlahan(5.5, 2.4) << endl;
    return 0;
}

int penjumlahan(int bil1, int bil2)
{
    return (bil1 + bil2);
}
int penjumlahan(int bil1, int bil2, int bil3)
{
    return (bil1 + bil2 + bil3);
}
double penjumlahan(double bil1, double bil2)
{
    return (bil1 + bil2);
}

Output:

Copied!
Hasil penjumlahan: 6 Hasil penjumlahan: 12 Hasil penjumlahan: 7.9

c) Default Parameter

Dalam membuat sebuah function yang memiliki parameter kita bisa memberikan nilai default untuk parameter. Jika sebuah function yang dibuat dengan argument default dipanggil tanpa meneruskan argument, maka parameter default akan digunakan.

Contoh 5:

#include <iostream>
using namespace std;

void display(char = '*', int = 3);

int main()
{
    int count = 5;
    cout << "Tidak ada argumen: ";
    display();

    cout << "Hanya argumen pertama: ";
    display('#');

    cout << "Dua argumen diisi: ";
    display('$', count);

    return 0;
}

void display(char c, int count)
{
    for (int i = 1; i <= count; ++i)
    {
        cout << c;
    }
    cout << endl;
}

Output:

Copied!
Tidak ada argumen: *** Hanya argumen pertama: ### Dua argumen diisi: $$$$$

d) Variabel Lokal dan Global

Variabel yang didefinisikan didalam function disebut sebagai variabel local. Cakupannya hanya terbatas pada function dimana ia didefinisikan. Sederhananya, variabel local ada dan hanya dapat diakses di dalam suatu function. Sedangkan variabel global adalah jika suatu variabel didefinisikan diluar function, ruang lingkup global adalah keseluruhan program artinya ia dapat digunakan dan diubah di bagian mana pun dari program setelah deklarasi.

Contoh 6:

#include <iostream>
using namespace std;
void test();

int main()
{
    int var = 5;
    test();
    var1 = 9;
}

void test()
{
    int var1;
    var1 = 6;
    cout << var;
}

Contoh 7:

#include <iostream>
using namespace std;
int c = 5;

void test();

int main()
{
    c++;
    cout << c << endl;
    test();
    return 0;
}

void test()
{
    c++;
    cout << c;
}

Output:

Copied!
6 7

Variabel statis hanya ada di dalam function yang dideklarasikan (mirip dengan variabel local) tetapi masa penggunaanya dimulai saat function dipanggil dan berakhir hanya saat program berakhir. Perbedaan utama antara variabel lokal dan variabel statis adalah, nilai variabel statis tetap ada di akhir program.

Contoh 8:

#include <iostream>
using namespace std;

void test()
{
    static int a = 0;
    a += 1;
    cout << "Ini adalah pemanggilan fungsi ke-" << a << endl;
}

int main()
{

    test();
    test();

    return 0;
}

Output:

Copied!
Ini adalah pemanggilan fungsi ke-1 Ini adalah pemanggilan fungsi ke-2

e) Fungsi Rekursi

Sebuah function yang memanggil dirinya sendiri dikenal sebagai fungsi rekursif. Dan, teknik ini dikenal sebagai rekursi.

Contoh 9:

#include <iostream>
using namespace std;

int factorial(int);

int main()
{
    int bil, hasil;
    cout << "Masukkan bilangan: ";
    cin >> bil;
    hasil = factorial(bil);
    cout << "Faktorial dari " << bil << " = " << hasil;
    return 0;
}

int factorial(int bil)
{
    if (bil > 1)
    {
        return bil * factorial(bil - 1);
    }
    else
    {
        return 1;
    }
}

Output:

Copied!
Masukkan bilangan: 5 Faktorial dari 5 = 120


Jadi itu yang bisa kita bahas pada artikel kali ini, dengan ini, kita menutup bab menarik kita mengenai fungsi dalam pemrograman. Telah kita bahas berbagai aspek menarik, mulai dari contoh fungsi sederhana yang merapikan kode, hingga konsep lebih lanjut seperti function overloading, default parameter, dan perbedaan antara variabel lokal dan global. Kita juga menjelajahi keindahan rekursi, di mana sebuah fungsi dapat memanggil dirinya sendiri untuk menyelesaikan tugas yang lebih kompleks.

Semoga perjalanan kita dalam menggali konsep fungsi membawa pemahaman yang lebih mendalam, serta membuka pintu untuk pengembangan program yang lebih terstruktur dan efisien. Teruslah berlatih dan eksplorasi, karena dunia pemrograman senantiasa menawarkan peluang baru untuk dipelajari. Sampai jumpa di bab berikutnya, sobat informatics!

]]>
https://himtika.cs.unsika.ac.id/pilih-belajar-c-8-fungsi/feed/ 0
Belajar C++ #7 : Perulangan https://himtika.cs.unsika.ac.id/__trashed-4/ https://himtika.cs.unsika.ac.id/__trashed-4/#respond Sun, 10 Mar 2024 23:43:36 +0000 https://himtika.cs.unsika.ac.id/?p=12201 Halo sobat informatics! Kali ini, kita akan memasuki wilayah baru dalam pemrograman, yaitu pembahasan mengenai perulangan. Dalam dunia coding, kemampuan untuk mengulang aksi atau serangkaian perintah adalah kunci utama untuk meningkatkan efisiensi dan fleksibilitas program.

Pada kesempatan kali ini, kita akan menjelajahi konsep perulangan menggunakan instruksi “for”, “while”, “do while”, serta memahami kegunaan dari “continue” dan “break”. Bersiaplah untuk memasuki dunia magis di mana kita dapat mengatur alur eksekusi program secara repetitif dan efektif. Mari kita mulai petualangan baru ini menuju penguasaan konsep perulangan dalam pemrograman!

a) Perulangan For

Perulangan for digunakan untuk mengulang pengeksekusian terhadap satu atau sejumlah pernyataan. Bentuk penulisan for:

Copied!
For (inisialisasi; kondisi; iterasi) { // pernyataan }

Keterangan: 

  • Inisialisasi => Menginisialisasi variabel dan hanya dapat dieksekusi satu kali. 
  • Kondisi => Jika kondisi bernilai true maka perulangan akan dijalankan dan jika 
  • Kondisi bernilai false maka perulangan akan berhenti. 
  • Iterasi => Untuk memperbaharui nilai variabel yang diinisialisasi dan kembali memeriksa kondisinya.

Contoh 1:

#include <iostream>
using namespace std;
int main()
{
    for (int i = 1; i <= 5; i++)
    {
        cout << i << ".";
    }

    return 0;
}

Output:

Copied!
1.2.3.4.5.

Contoh 2:

#include <iostream>
using namespace std;
int main()
{
    for (int i = 1; i <= 5; i++)
    {
        cout << "Algoritma dan Pemrograman! " << endl;
    }

    return 0;
}

Output:

Copied!
Algoritma dan Pemrograman! Algoritma dan Pemrograman! Algoritma dan Pemrograman! Algoritma dan Pemrograman! Algoritma dan Pemrograman!

Bisa dilihat, pada output di atas, tulisan “Algoritma dan Pemrograman! ” ditampilkan sebanyak 5 kali karena perulangan for tersebut akan terus berulang hingga kondisi yang telah ditentukan tidak lagi terpenuhi, dan itu adalah i <= 5.

b) Perulangan While

Perulangan while digunakan untuk memproses suatu pernyataan atau beberapa pernyataan beberapa kali. Perulangan pada while ini akan terus terjadi hingga kondisi yang ditentukan pada while statement nya sudah tidak terpenuhi lagi. Berikut bentuk dari penulisan while:

Copied!
while(kondisi){ //pernyataan }

Contoh 3:

#include <iostream>
using namespace std;
int main()
{
    int i = 1;
    while (i <= 5)
    {
        cout << i << " ";
        i++;
    }

    return 0;
}

Output:

Copied!
1 2 3 4 5

Contoh 4

#include <iostream>
using namespace std;
int main()
{

    int bil;
    int sum = 0;
    cout << "Masukan bilangan positif: ";
    cin >> bil;
    while (bil >= 0)
    {
        sum += bil;
        cout << "Masukan bilangan positif: ";
        cin >> bil;
    }
    cout << "\nTotal penjumlahan " << sum << endl;
    return 0;
}

Output:

Copied!
Masukan bilangan positif: 5 Masukan bilangan positif: 3 Masukan bilangan positif: 3 Masukan bilangan positif: -1 Total penjumlahan 11

Pada kedua contoh di atas, dapat dilihat, kita tidak menentukan jumlah iterasi nya secara eksplisit, melainkan hanya menyebutkan kondisi tertentu seperti “i <= 5” & “bil >=0”, yang dimana perulangan while tersebut seperti yang sudah disebutkan sebelumnya, akan terus berulang hingga kondisi yang telah ditentukan tersebut tidak terpenuhi lagi.

c) Perulangan Do While 

Perulangan Do While digunakan untuk mengulang proses dan akan dijalankan minimal satu kali. Berikut bentuk penulisannya:

Copied!
do{ //pernyataan } while(kondisi)

Contoh 5:

#include <iostream>
using namespace std;
int main()
{
    int bil = 0;
    int sum = 0;
    do
    {
        sum += bil;
        cout << "Masukan bilangan bulat: ";
        cin >> bil;
    } while (bil > 0);

    cout << "\nTotal Penjumlahan (Menggunakan do while): " << sum << endl;
    return 0;
}

Output:

Copied!
Masukan bilangan bulat: 1 Masukan bilangan bulat: 2 Masukan bilangan bulat: 3 Masukan bilangan bulat: -1 Total Penjumlahan (Menggunakan do while): 6

Sobat bisa lihat pada contoh di atas, meskipun variable “bil” masih bernilai 0 dan kondisi yang ditentukan pada perulangan do while adalah “bil > 0” (Yang artinya kondisi tidak terpenuhi di awal perulangan). Namun, dengan do while ini, meskipun kondisi pada saat awal perulangan tidak terpenuhi, hal tersebut akan tidak dihiraukan sehingga kode yang di dalam do while akan tetap tereksekusi saat pertama kali, dan do while akan mengevaluasi kondisi tersebut saat perulangan yang kedua kalinya.

d) Break

Break digunakan untuk mengakhiri perulangan.

Contoh 6: 

#include <iostream>
using namespace std;
int main()
{
    for (int i = 1; i <= 5; i++)
    {
        if (i == 3)
        {
            break;
        }
        cout << i << endl;
    }
    return 0;
}

Output:

Copied!
1 2

Dengan melihat contoh di atas, sobat bisa melihat, meskipun kondisi for nya masih memenuhi yaitu “i <= 5” pada saat i bernilai 3, karena kita membuat pengkondisian untuk mengeksekusi “break” pada saat i bernilai 3, maka perulangan akan terhenti saat itu juga.

Contoh 7:

#include <iostream>
using namespace std;
int main()
{
    int bil;
    int sum = 0;
    while (true)
    {
        cout << "Masukan bilangan bulat: ";
        cin >> bil;
        if (bil < 0)
        {
            break;
        }
        sum += bil;
    }
    cout << "Total Penjumlahan " << sum << endl;
    return 0;
}

Output:

Copied!
Masukan bilangan bulat: 9 Masukan bilangan bulat: 8 Masukan bilangan bulat: 3 Masukan bilangan bulat: -1 Total Penjumlahan 20

e) Continue

Continue digunakan untuk melanjutkan iterasi perulangan saat ini 

Contoh 8:

#include <iostream>
using namespace std;
int main()
{
    for (int i = 1; i <= 5; i++)
    {
        if (i == 3)
        {
            continue;
        }
        cout << i << endl;
    }
    return 0;
}

Output:

Copied!
1 2 4 5

Pada contoh di atas, dapat dilihat, yang harusnya program menampilkan output “3”, pada kode di atas, angka 3 tidak ditampilkan. karena pada kode tersebut terdapat pengkondisian jika i bernilai 3, maka “continue” akan tereksekusi, yang dimana itu membuat perulangan melanjutkan iterasinya tanpa harus menyelesaikan sisa kode di bawah nya.

Jadi itu pembahasan mengenai perulangan ya sobat, dengan pengetahuan yang kita temukan hari ini tentang perulangan menggunakan “for”, “while”, “do while”, serta kegunaan istimewa dari “continue” dan “break”, kini kita memiliki kunci ajaib untuk mengulang aksi atau perintah dengan lebih terstruktur dan efisien. Ingatlah, kepiawaian dalam mengimplementasikan perulangan menjadi landasan utama dalam menciptakan program yang handal dan responsif terhadap berbagai situasi. Mari terus eksplorasi dan teruskan semangat belajar, karena dunia pemrograman selalu menyajikan tantangan dan penemuan baru. Sampai jumpa di bab berikutnya, sobat informatics!

]]>
https://himtika.cs.unsika.ac.id/__trashed-4/feed/ 0
Belajar C++ #6 : Percabangan https://himtika.cs.unsika.ac.id/dad/ https://himtika.cs.unsika.ac.id/dad/#respond Sun, 10 Mar 2024 12:47:59 +0000 https://himtika.cs.unsika.ac.id/?p=12186 Halo sobat informatics! Selamat datang kembali di dunia informatika yang penuh dengan keajaiban kode dan logika! Pada kesempatan kali ini, kita akan menjelajahi sebuah konsep yang sangat fundamental dalam pemrograman, yaitu penggunaan kondisi “if”.

Melalui pemahaman yang mendalam terhadap cara “if” digunakan untuk mengatur jalannya program, kita akan memperoleh kekuatan baru dalam mengendalikan alur eksekusi. Mari kita mulai dengan memahami bahwa setiap baris kode memiliki perannya sendiri, dan bersama-sama, kita akan memahami bagaimana logika ini dapat membentuk pondasi yang kokoh dalam pengembangan perangkat lunak. Yuk, mari kita jelajahi lebih lanjut!

a) Kondisi If

If dipakai untuk mengatur kapan sebuah program akan dijalankan. Penulisan kondisi if setidaknya butuh 2 bagian, yakni kondisi dan statement. Statement bisa terdiri dari satu, dua atau ratusan baris perintah, baris ini hanya akan dijalankan selama kondisi bernilai true. Kondisi yang ingin diproses haruslah bertipe data bool atau sesuatu yang menghasilkan bool.

Contoh 1:

#include <iostream>
using namespace std;
int main()
{
    int bilangan;
    cout << "Masukkan bilangan bulat: ";
    cin >> bilangan;
    if (bilangan > 0)
    {
        cout << "Anda memasukkan bilangan positif: " << bilangan << endl;
    }
    return 0;
}

Output:

Copied!
Masukkan bilangan bulat: 1 Anda memasukkan bilangan positif: 1

Contoh 2:

#include <iostream>
using namespace std;
int main()
{
    string username;
    string password;
    cout << "Masukkan username: ";
    cin >> username;
    cout << "Masukkan password: ";
    cin >> password;
    if (username == "admin" && password == "admin123")
    {
        cout << "Login berhasil" << endl;
    }
    return 0;
}

Output:

  • Jika if terpenuhi
Copied!
Masukkan username: admin Masukkan password: admin123 Login berhasil
  • Jika tidak terpenuhi
Copied!
Masukkan username: user Masukkan password: user123

Dapat dilihat, output “Login berhasil” tidak ditampilkan, karena kondisi pada if statement tidak terpenuhi

b) Kondisi If…Else

Kondisi else akan dijalankan ketika kondisi if tidak sesuai atau menghasilkan nilai false.

Contoh 3:

#include <iostream>
using namespace std;
int main()
{
    int bilangan;
    cout << "Masukkan bilangan bulat: ";
    cin >> bilangan;
    if (bilangan > 0)
    {
        cout << "Anda memasukkan bilangan positif: " << bilangan << endl;
    }
    else
    {
        cout << "Anda memasukkan bilangan negatif: " << bilangan << endl;
    }
    return 0;
}

Output:

  • If terpenuhi
Copied!
Masukkan bilangan bulat: 1 Anda memasukkan bilangan positif: 1
  • If tidak terpenuhi (Masuk ke else)
Copied!
Masukkan bilangan bulat: -1 Anda memasukkan bilangan negatif: -1

Contoh 4:

#include <iostream>
using namespace std;
int main()
{
    string username;
    string password;
    cout << "Masukkan username: ";
    cin >> username;
    cout << "Masukkan password: ";
    cin >> password;
    if (username == "admin" && password == "admin123")
    {
        cout << "Login berhasil" << endl;
    }
    else
    {
        cout << "Maaf username atau password anda salah" << endl;
    }
    return 0;
}

Output:

  • If terpenuhi
Copied!
Masukkan username: admin Masukkan password: admin123 Login berhasil
  • If tidak terpenuhi (Masuk ke else)
Copied!
Masukkan username: user Masukkan password: user123 Maaf username atau password anda salah

c) Kondisi If … Else If … Else

Kondisi if, else if, & else bisa kita gunakan apabila kita ingin membuat kondisi lebih dari satu

Contoh 5:

#include <iostream>
using namespace std;
int main()
{
    int a, b;
    cout << "Masukkan bilangan 1: ";
    cin >> a;
    cout << "Masukkan bilangan 2: ";
    cin >> b;
    if (a > b)
    {
        cout << a << " lebih besar dari " << b << endl;
    }
    else if (a < b)
    {
        cout << a << " lebih kecil dari " << b << endl;
    }
    else
    {
        cout << a << " sama dengan " << b << endl;
    }
    return 0;
}

Output:

  • Jika if utama yang terpenuhi (a > b)
Copied!
Masukkan bilangan 1: 5 Masukkan bilangan 2: 3 5 lebih besar dari 3
  • Jika else if yang terpenuhi (a < b)
Copied!
Masukkan bilangan 1: 3 Masukkan bilangan 2: 5 3 lebih kecil dari 5
  • Jika else yang terpenuhi (a = b)
Copied!
Masukkan bilangan 1: 5 Masukkan bilangan 2: 5 5 sama dengan 5

d) Switch Case

Switch merupakan sebuah struktur percabangan yang akan memeriksa satu variabel, lalu menjalankan perintah sesuai dengan kondisi.

Contoh 6

#include <iostream>
using namespace std;

int main()
{
    char oper;
    float num1, num2;
    cout << "Masukan operator (+, -, *, /): ";
    cin >> oper;
    cout << "Masukan 2 bilangan: " << endl;
    cin >> num1 >> num2;

    switch (oper)
    {
    case '+':
        cout << num1 << " + " << num2 << " = " << num1 + num2;
        break;
    case '-':
        cout << num1 << " - " << num2 << " = " << num1 - num2;
        break;
    case '*':
        cout << num1 << " * " << num2 << " = " << num1 * num2;
        break;
    case '/':
        cout << num1 << " / " << num2 << " = " << num1 / num2;
        break;
    default:
        cout << "Error! Operator salah";
        break;
    }

    return 0;
}

Output:

Misalnya kita memilih operator ‘+’ (Pertambahan)

Copied!
Masukan operator (+, -, *, /): + Masukan 2 bilangan: 10 5 10 + 5 = 15

Nahh, jadi itu materi pembahasan seputar percabangan, ada “if”, “else if”, “else”, dan “switch case”. Dengan pemahaman mendalam tentang konsep-konsep ini, sobat informatics kini memiliki alat yang kuat untuk mengontrol alur eksekusi program dengan lebih tepat dan efisien. Ingatlah bahwa kekuatan terletak pada pilihan yang bijak, dan setiap percabangan logika memberikan kemampuan untuk menyesuaikan program dengan kebutuhan spesifik.

Semoga perjalanan kita melalui konsep kondisional ini membawa pencerahan dan kejelasan dalam pengembangan perangkat lunak. Teruslah eksplorasi dan teruskan semangat belajar, karena dunia pemrograman selalu menawarkan tantangan baru yang menarik. Sampai jumpa di bab berikutnya, sobat informatics!

]]>
https://himtika.cs.unsika.ac.id/dad/feed/ 0
Belajar C++ #5 : Operator & Komentar https://himtika.cs.unsika.ac.id/belajar-c-5-operator-komentar/ https://himtika.cs.unsika.ac.id/belajar-c-5-operator-komentar/#respond Fri, 08 Mar 2024 15:44:29 +0000 https://himtika.cs.unsika.ac.id/?p=12143 Operator adalah fungsi yang mengambil satu atau lebih ekspresi sebagai input dan mengembalikan ekspresi yang menggunakan simbol infix khusus, bukannya notasi fungsional biasa. Nilai yang dioperasikan operator disebut operand.

Operator Aritmatika

Operator aritmatika digunakan untuk melakukan operasi aritmatika pada variabel dan data.

OperatorKeteranganContoh
+Penjumlahanx + y
Penguranganx – y
*Perkalianx * y
/Pembagianx / y
%Modulusx % y
Operator Aritmatika
Contoh Program :
#include <iostream>

using namespace std;

int main() {
    int a, b;

    a = 18;
    b = 10;

    cout << "a + b = " << (a + b) << endl;
    cout << "a - b = " << (a - b) << endl;
    cout << "a * b = " << (a * b) << endl;
    cout << "a / b = " << (a / b) << endl;
    cout << "a % b = " << (a % b) << endl;

 return 0;
 
}

Output :

a + b = 28
a – b = 8
a * b = 180
a / b = 1
a % b = 8

Operator Penugasan

Operator penugasan digunakan untuk menetapkan nilai ke dalam variabel.

OperatorContohPersamaan
=x = y;x = y;
+=x += y;x = x + y;
-=x -= y;x = x – y;
*=x *= y;x = x * y;
/=x /= y;x = x / y;
%=x = x % y;
Operator Penugasan
Contoh Program :
#include <iostream>

using namespace std;

int main() {
    int a, b;

    a = 25;
    b = 70;

    cout << "a = " << a << endl;
    cout << "b = " << b << endl;
    cout << "\nSetelah a += b;" << endl;

    a += b; // a = a +b
    cout << "a = " << a << endl;

 return 0;
 
}

Output :

a = 25
b = 70

Setelah a += b;
a = 95

Operator Decrement – Increment

Operator penurunan (decrement) dan operator penaikan (increment) kedua operator ini digunakan pada operand bertipe bilangan bulat. Operator increment digunakan untuk menaikkan nilai variabel sebesar satu. Sedangkan operator decrement dipakai untuk menurunkan nilai variabel sebesar satu. Penempatan operator terhadap variabel dapat dilakukan di depan atau dibelakang.

OperatorKeteranganContohContoh
++Operator Increment++xx++
Operator Decrement–yy–
Operator Decrement – Increment

Contoh Program :

#include <iostream>
using namespace std;
int main() {

    int bilangan = 15;
    // increment operator
    ++bilangan;
    cout << "Bilangan: " << bilangan <<endl;
    // decrement operator
    --bilangan;
    cout << "Bilangan: " << bilangan <<endl;
    
 return 0;
}

Output :

Bilangan: 16
Bilangan: 15

Operator Bitwise (Manipulasi Bit)

Operator bitwise digunakan untuk memanipulasi data dalam bentuk bit. Operator bitwise hanya bisa digunakan pada operand bertipe data integer dan karakter.

OperatorKeterangan
&Bitwise operator AND
|Bitwise operator OR
^Bitwise operator XOR
~Bitwise operator Komplemen
<<Bitwise operator shift kiri
>>Bitwise operator shift kanan
Operator Bitwise (Manipulasi Bit)

Operator Relasi

Operator relasi digunakan untuk memeriksa hubungan antara dua operand. Jika relasinya benar, ia akan mengembalikan 1 sedangkan jika relasi nya salah, ia akan mengembalikan 0

OperatorKeteranganContoh
==Sama denganx == y
!=Tidak sama denganx != y
>Lebih besar darix > y
<Kurang darix < y
>=Lebih dari atau sama denganx >= y
<=Kurang dari atau sama denganx <= y
Operator Relasi

Contoh Program :

#include <iostream>
using namespace std;
int main() {
    int a, b;
    a = 3;
    b = 5;
    bool result;
        result = (a == b); // false
        cout << "3 == 5 is " << result << endl;
        result = (a != b); // true
        cout << "3 != 5 is " << result << endl;
        result = a > b; // false
        cout << "3 > 5 is " << result << endl;
        result = a < b; // true
        cout << "3 < 5 is " << result << endl;
        result = a >= b; // false
        cout << "3 >= 5 is " << result << endl;
        result = a <= b; // true
        cout << "3 <= 5 is " << result << endl;
 return 0;
}

Output :

3 == 5 is 0
3 != 5 is 1
3 > 5 is 0
3 < 5 is 1
3 >= 5 is 0
3 <= 5 is 1

Operator Logika

Operator logika digunakan untuk memeriksa apakah suatu ekspresi benar atau salah. Jika ekspresi benar, ia akan mengembalikan 1 sedangkan jika ekspresi salah ia akan mengembalikan 0

OperatorContohKeterangan
&&x && yBenar hanya jika semua operand benar
||x || yBenar jika setidaknya salah satu operand benar
!!xBenar hanya jika operan salah
Operator Logika

Contoh Program :

#include <iostream>
using namespace std;
int main() {
    bool result;
        result = (3 != 5) && (3 < 5); // true
        cout << "(3 != 5) && (3 < 5) is " << result << endl;
        result = (3 == 5) && (3 < 5); // false
        cout << "(3 == 5) && (3 < 5) is " << result << endl;
        result = (3 == 5) && (3 > 5); // false
        cout << "(3 == 5) && (3 > 5) is " << result << endl;
        result = (3 != 5) || (3 < 5); // true
        cout << "(3 != 5) || (3 < 5) is " << result << endl;
        result = (3 != 5) || (3 > 5); // true
        cout << "(3 != 5) || (3 > 5) is " << result << endl;
        result = (3 == 5) || (3 > 5); // false
        cout << "(3 == 5) || (3 > 5) is " << result << endl;
        result = !(5 == 2); // true
        cout << "!(5 == 2) is " << result << endl;
        result = !(5 == 5); // false
        cout << "!(5 == 5) is " << result << endl;
 return 0;
}

Output :

(3 != 5) && (3 < 5) is 1

(3 == 5) && (3 < 5) is 0

(3 == 5) && (3 > 5) is 0

(3 != 5) || (3 < 5) is 1

(3 != 5) || (3 > 5) is 1

(3 == 5) || (3 > 5) is 0

!(5 == 2) is 1

!(5 == 5) is 0

Operator Kondisi

Operator kondisi bisa dipakai untuk mendapatkan sebuah nilai dari dua buah kemungkinan berdasarkan suatu kondisi.

Syntax : Ungkapan1 ? ungkapan2 : ungkapan3

Komentar

Pada bahasa pemrograman c++ komentar diawali dengan dua tanda garis miring (//). Semua tulisan yang terletak sesudah tanda // hingga akhir baris dengan sendirinya akan diperlakukan sebagai keterangan. Bagi compiler hal ini tidak berguna dan akan diabaikan pada saat kompilasi. Selaim menggunakan (//), komentar pada C++ juga dapat ditulis dalam bentuk /*komentar*/

]]>
https://himtika.cs.unsika.ac.id/belajar-c-5-operator-komentar/feed/ 0
Belajar C++ #4 : Input & Output https://himtika.cs.unsika.ac.id/belajar-c-4-input-output/ https://himtika.cs.unsika.ac.id/belajar-c-4-input-output/#respond Thu, 22 Feb 2024 15:40:22 +0000 https://himtika.cs.unsika.ac.id/?p=11933 Selamat datang, sobat informatics! Pada kesempatan kali ini, kita akan menjelajahi dunia input dan output dalam bahasa pemrograman C++. Bagi para pemula, konsep ini mungkin terdengar sedikit rumit, tetapi bersama-sama kita akan menjadikannya sebagai pembelajaran yang menarik untuk mengenal lebih dekat bagaimana program berkomunikasi dengan dunia luar.

Output

Dalam bahasa pemrograman C++ untuk menampilkan output bisa menggunakan perintah cout yang berfungsi untuk menampilkan output ke layar.

1. Output Menampilkan Teks

#include <iostream>
using namespace std;
int main()
{
    cout << "Belajar pemrograman c++ dari dasar hingga mahir";
    return 0;
}

Output:

Copied!
Belajar pemrograman c++ dari dasar hingga mahir [Done] exited with code=0 in 1.901 seconds

2. Output menampilkan angka dan karakter

#include <iostream>
using namespace std;
int main()
{
    int bilanganBulat = 50;
    double bilanganDesimal = 652.378;
    char karakter = 'F';
    cout << bilanganBulat << endl;
    cout << bilanganDesimal << endl;
    cout << "Karakter: " << karakter << endl;
    return 0;
}

Output:

Copied!
50 652.378 Karakter: F [Done] exited with code=0 in 3.68 seconds

Input

Dalam bahasa pemrograman C++ untuk mengambil input yang dilakukan oleh pengguna bisa menggunakan perintah cin yang berfungsi untuk memasukkan data.

1. Mengambil input bilangan bulat

#include <iostream>
using namespace std;
int main()
{
    int keliling, panjang, lebar;
    cout << "Masukkan panjang: ";
    cin >> panjang;
    cout << "Masukkan lebar: ";
    cin >> lebar;
    keliling = 2 * (panjang + lebar);
    cout << "Keliling persegi panjang = " << keliling;
    return 0;
}

Output:

Copied!
Masukkan panjang: 12 Masukkan lebar: 8 Keliling persegi panjang = 40% [Done] exited with code=null in 7.748 seconds

2. Mengambil input teks

#include <iostream>
using namespace std;
int main()
{
    string namaDepan, namaBelakang, namaLengkap;
    cout << "Masukkan nama depan: ";
    cin >> namaDepan;
    cout << "Masukkan nama belakang: ";
    cin >> namaBelakang;
    namaLengkap = namaDepan + " " + namaBelakang;
    cout << "Nama Lengkap anda " << namaLengkap;
    return 0;
}

Output:

Copied!
Masukkan nama depan: John Masukkan nama belakang: Doe Nama Lengkap anda John Doe [Done] exited with code=null in 17.72 seconds

3. Mengambil input ganda (Multiple Input)

#include <iostream>
using namespace std;
int main()
{
    char karakter;
    int bilangan;
    cout << "Masukkan karakter dan bilangan: " << endl;
    cin >> karakter >> bilangan;
    cout << "Karakter: " << karakter << endl;
    cout << "Bilangan: " << bilangan;
    return 0;
}

Output:

Copied!
Masukkan karakter dan bilangan: h 2 Karakter: h Bilangan: 2 [Done] exited with code=null in 18.069 seconds
]]>
https://himtika.cs.unsika.ac.id/belajar-c-4-input-output/feed/ 0
Belajar C++ #3 : Tipe Data Dasar https://himtika.cs.unsika.ac.id/tipe-data-dasar/ https://himtika.cs.unsika.ac.id/tipe-data-dasar/#respond Wed, 15 Sep 2021 15:28:20 +0000 https://himtika.cs.unsika.ac.id/?p=9362 Tipe data

Karena semua data di komputer hanyalah urutan bit, kami menggunakan tipe data (sering disebut “tipe” untuk jangka pendek) untuk memberi tahu kompiler bagaimana menafsirkan isi memori dalam beberapa cara yang berarti. Anda telah melihat satu contoh tipe data: integer. Ketika kita mendeklarasikan variabel sebagai integer, kita memberi tahu compiler “bagian dari memori yang digunakan variabel ini akan ditafsirkan sebagai nilai integer”.

Ketika Anda memberikan suatu nilai pada suatu objek, kompiler dan CPU akan mengkodekan nilai Anda ke dalam urutan bit yang sesuai untuk tipe data tersebut, yang kemudian disimpan dalam memori (ingat: memori hanya dapat menyimpan bit). Misalnya, jika Anda menetapkan objek integer dengan nilai 65 , nilai tersebut dikonversi ke urutan bit 0100 0001dan disimpan dalam memori yang ditetapkan untuk objek tersebut.

Sebaliknya, ketika objek dievaluasi untuk menghasilkan nilai, urutan bit tersebut disusun kembali ke nilai aslinya. Artinya 0100 0001diubah kembali menjadi nilai 65 .

Untungnya, kompiler dan CPU melakukan semua kerja keras di sini, jadi Anda biasanya tidak perlu khawatir tentang bagaimana nilai diubah menjadi urutan bit dan kembali.

Yang perlu Anda lakukan adalah memilih tipe data untuk objek Anda yang paling cocok dengan penggunaan yang Anda inginkan.

Tipe data dasar

C++ hadir dengan dukungan bawaan untuk banyak tipe data yang berbeda. Ini disebut tipe data fundamental , tetapi sering secara informal disebut tipe dasar , tipe primitif , atau tipe bawaan .

Berikut adalah daftar tipe data fundamental, beberapa di antaranya telah Anda lihat:

Void

Void adalah tipe data yang paling mudah untuk dijelaskan. Pada dasarnya, void berarti “tidak ada tipe”!

Akibatnya, variabel tidak dapat didefinisikan dengan tipe void. Void biasanya digunakan dalam beberapa konteks yang berbeda.

Fungsi yang tidak mengembalikan nilai

Paling umum, void digunakan untuk menunjukkan bahwa suatu fungsi tidak mengembalikan nilai:

void bilangan(int x) // void here means no return value
{
    std::cout << "Bilangan x adalah : " << x << '\\n';
    // no return statement, because this function doesn't return a value
}

Jika Anda menggunakan pernyataan pengembalian untuk mencoba mengembalikan nilai dalam fungsi seperti itu, kesalahan kompilasi akan terjadi:

void noReturn(int x) // void here means no return value
{
    return 5; // error
}

Ukuran tipe data dasar

Pertanyaan berikutnya yang jelas adalah “berapa banyak memori yang dibutuhkan variabel dari tipe data yang berbeda?”. Anda mungkin terkejut menemukan bahwa ukuran tipe data tertentu bergantung pada kompiler dan/atau arsitektur komputer!

C++ hanya menjamin bahwa setiap tipe data dasar akan memiliki ukuran minimum:

Namun, ukuran sebenarnya dari variabel mungkin berbeda pada mesin Anda (terutama int, yang lebih sering 4 byte).

Ukuran operator

Untuk menentukan ukuran tipe data pada mesin tertentu, C++ menyediakan operator bernama sizeof . Operator sizeof adalah operator unary yang mengambil baik jenis atau variabel, dan mengembalikan ukurannya dalam bytes. Anda dapat mengkompilasi dan menjalankan program berikut untuk mengetahui seberapa besar beberapa tipe data Anda:

#include <iostream>

int main()
{
    std::cout << "bool:\\t\\t" << sizeof(bool) << " bytes\\n";
    std::cout << "char:\\t\\t" << sizeof(char) << " bytes\\n";
    std::cout << "wchar_t:\\t" << sizeof(wchar_t) << " bytes\\n";
    std::cout << "char16_t:\\t" << sizeof(char16_t) << " bytes\\n";
    std::cout << "char32_t:\\t" << sizeof(char32_t) << " bytes\\n";
    std::cout << "short:\\t\\t" << sizeof(short) << " bytes\\n";
    std::cout << "int:\\t\\t" << sizeof(int) << " bytes\\n";
    std::cout << "long:\\t\\t" << sizeof(long) << " bytes\\n";
    std::cout << "long long:\\t" << sizeof(long long) << " bytes\\n";
    std::cout << "float:\\t\\t" << sizeof(float) << " bytes\\n";
    std::cout << "double:\\t\\t" << sizeof(double) << " bytes\\n";
    std::cout << "long double:\\t" << sizeof(long double) << " bytes\\n";

    return 0;
}

Hasil Anda mungkin berbeda jika Anda menggunakan jenis mesin yang berbeda, atau kompiler yang berbeda. Perhatikan bahwa Anda tidak dapat menggunakan operator sizeof pada tipe void , karena tidak memiliki ukuran (melakukannya akan menyebabkan kesalahan kompilasi).

Anda juga dapat menggunakan operator sizeof pada nama variabel:

#include <iostream>

int main()
{
    int x{};
    std::cout << "x is " << sizeof(x) << " bytes\\n";

    return 0;
}

Bilangan bulat bertanda

Bilangan bulat adalah tipe integral yang dapat mewakili bilangan bulat positif dan negatif, termasuk 0 (misalnya -2, -1, 0, 1, 2). C++ memiliki 4 tipe integer dasar yang berbeda yang tersedia untuk digunakan:

Perbedaan utama antara berbagai tipe bilangan bulat adalah bahwa mereka memiliki ukuran yang bervariasi — bilangan bulat yang lebih besar dapat menampung angka yang lebih besar.

Saat menulis angka negatif dalam kehidupan sehari-hari, kami menggunakan tanda negatif. Misalnya, -3 berarti “negatif 3”. Kami juga biasanya mengenali +3 sebagai “3 positif” (meskipun konvensi umum menyatakan bahwa kami biasanya menghilangkan awalan plus). Atribut ini menjadi positif, negatif, atau nol disebut jumlah ini tanda .

Secara default, bilangan bulat ditandatangani , yang berarti tanda nomor disimpan sebagai bagian dari nomor (menggunakan bit tunggal yang disebut bit tanda ). Oleh karena itu, bilangan bulat bertanda dapat menampung angka positif dan negatif (dan 0).

Mendefinisikan bilangan bulat bertanda

short s;
int i;
long l;
long long ll;

Semua bilangan bulat (kecuali int) dapat mengambil akhiran int opsional :

short int si;
long int li;
long long int lli;

Sufiks ini tidak boleh digunakan. Selain lebih banyak mengetik, menambahkan akhiran int membuat tipe lebih sulit dibedakan dari variabel bertipe int . Ini dapat menyebabkan kesalahan jika pengubah pendek atau panjang secara tidak sengaja terlewatkan.

Tipe integer juga dapat mengambil kata kunci bertanda opsional , yang menurut konvensi biasanya ditempatkan sebelum nama tipe:

signed short ss;
signed int si;
signed long sl;
signed long long sll;

Namun, kata kunci ini tidak boleh digunakan, karena berlebihan.

Range bilangan bulat bertanda

Seperti yang Anda pelajari di bagian terakhir, variabel dengan n bit dapat menampung 2 n nilai yang mungkin. Tapi nilai spesifik yang mana? Kami menyebut kumpulan nilai spesifik yang dapat disimpan oleh tipe data dalam jangkauannya . Rentang variabel integer ditentukan oleh dua faktor: ukurannya (dalam bit), dan apakah itu ditandatangani atau tidak.

Menurut definisi, bilangan bulat bertanda 8-bit memiliki kisaran -128 hingga 127. Ini berarti bilangan bulat bertanda dapat menyimpan nilai bilangan bulat apa pun antara -128 dan 127 (inklusif) dengan aman.

Berikut adalah tabel yang berisi kisaran bilangan bulat bertanda dengan ukuran berbeda:

Pembagian bilangan bulat

Saat membagi dua bilangan bulat, C++ berfungsi seperti yang Anda harapkan ketika hasil bagi adalah bilangan bulat:

#include <iostream>

int main()
{
    std::cout << 20 / 4;
    return 0;
}

Mari kita lihat apa yang terjadi ketika pembagian bilangan bulat menyebabkan hasil pecahan:

#include <iostream>

int main()
{
    std::cout << 8 / 5;
    return 0;
}

Saat melakukan pembagian dengan dua bilangan bulat (disebut pembagian bilangan bulat ), C++ selalu menghasilkan hasil bilangan bulat. Karena bilangan bulat tidak dapat menampung nilai pecahan, bagian pecahan mana pun dibuang begitu saja (tidak dibulatkan!).

Melihat lebih dekat pada contoh di atas, 8/5 menghasilkan nilai 1.6. Bagian pecahan (0,6) dijatuhkan, dan hasil dari 1 tetap.

Demikian pula, -8 / 5 menghasilkan nilai -1.

Bilangan bulat tak bertanda

C++ juga mendukung bilangan bulat yang tidak ditandatangani. Bilangan bulat tidak bertanda adalah bilangan bulat yang hanya dapat menampung bilangan bulat non-negatif.

Mendefinisikan bilangan bulat tak bertanda

Untuk mendefinisikan unsigned integer, kita menggunakan kata kunci unsigned . Dengan konvensi, ini ditempatkan sebelum tipe:

unsigned short us;
unsigned int ui;
unsigned long ul;
unsigned long long ull;

Range bilangan bulat tak bertanda

Bilangan bulat tidak bertanda 1 byte memiliki rentang 0 hingga 255. Bandingkan ini dengan rentang bilangan bulat bertanda 1 byte dari -128 hingga 127. Keduanya dapat menyimpan 256 nilai yang berbeda, tetapi bilangan bulat bertanda menggunakan setengah dari rentangnya untuk bilangan negatif, sedangkan bilangan bulat tidak bertanda dapat menyimpan bilangan positif yang dua kali lebih besar.

Berikut adalah tabel yang menunjukkan rentang untuk bilangan bulat yang tidak bertanda:

Bila tidak ada angka negatif yang diperlukan, bilangan bulat tidak bertanda sangat cocok untuk jaringan dan sistem dengan sedikit memori, karena bilangan bulat tidak bertanda dapat menyimpan lebih banyak bilangan positif tanpa menggunakan memori tambahan.

Notasi ilmiah

Notasi ilmiah adalah singkatan yang berguna untuk menulis angka panjang secara ringkas. Dan meskipun notasi ilmiah mungkin tampak asing pada awalnya, memahami notasi ilmiah akan membantu Anda memahami cara kerja bilangan floating point, dan yang lebih penting, apa batasannya.

Bilangan dalam notasi ilmiah berbentuk sebagai berikut: signifikan dan x 10 eksponen . Misalnya, dalam notasi ilmiah 1.2 x 10⁴1.2adalah signifikan dan 4eksponen. Karena 10⁴ bernilai 10.000, 1,2 x 10⁴ bernilai 12.000.

Menurut konvensi, angka dalam notasi ilmiah ditulis dengan satu digit sebelum koma, dan digit lainnya sesudahnya.

Pertimbangkan massa Bumi. Dalam notasi desimal, kami akan menulis ini sebagai 5973600000000000000000000 kg. Itu jumlah yang sangat besar (terlalu besar untuk muat bahkan dalam bilangan bulat 8 byte). Ini juga sulit dibaca (apakah itu 19 atau 20 nol?). Bahkan dengan pemisah (5.973.600.000.000.000.000.000.000) jumlahnya masih sulit dibaca.

Dalam notasi ilmiah, ini akan ditulis sebagai 5.9736 x 10²⁴ kg, yang lebih mudah dibaca. Notasi ilmiah memiliki manfaat tambahan untuk mempermudah membandingkan besaran dua bilangan yang sangat besar atau sangat kecil hanya dengan membandingkan eksponennya.

Karena mungkin sulit untuk mengetik atau menampilkan eksponen dalam C++, kami menggunakan huruf ‘e’ (atau terkadang ‘E’) untuk mewakili bagian “kali 10 pangkat” dari persamaan. Misalnya, 1.2 x 10⁴akan ditulis sebagai 1.2e4, dan 5.9736 x 10²⁴akan ditulis sebagai 5.9736e24.

Untuk angka yang lebih kecil dari 1, eksponennya bisa negatif. Angka 5e-2tersebut setara dengan 5 * 10⁻², yaitu 5 / 10², atau 0.05. Massa elektron adalah 9.1093822e-31 kg.

Cara mengubah angka menjadi notasi ilmiah

Gunakan prosedur berikut:

  • Eksponen Anda dimulai dari nol.
  • Geser desimal sehingga hanya ada satu angka bukan nol di sebelah kiri desimal.
    • Setiap tempat Anda menggeser desimal ke kiri meningkatkan eksponen sebesar 1.
    • Setiap tempat Anda menggeser desimal ke kanan mengurangi eksponen sebesar 1.
  • Pangkas semua nol di depan (di ujung kiri signifikan dan)
  • Pangkas semua angka nol yang tertinggal (di ujung kanan tanda dan) hanya jika angka aslinya tidak memiliki titik desimal. Kami berasumsi mereka tidak signifikan kecuali ditentukan lain.

Presisi dan angka nol setelah desimal

Pertimbangkan kasus di mana kami meminta dua asisten lab masing-masing untuk menimbang apel yang sama. Seseorang kembali dan mengatakan apel itu beratnya 87 gram. Yang lain kembali dan mengatakan apel itu berbobot 87,00 gram. Mari kita asumsikan penimbangannya benar. Dalam kasus sebelumnya, berat sebenarnya apel bisa berkisar antara 86,50 dan 87,49 gram. Mungkin skalanya hanya tepat untuk gram terdekat. Atau mungkin asisten kami sedikit membulat. Dalam kasus terakhir, kami yakin tentang berat sebenarnya apel ke tingkat yang jauh lebih tinggi (beratnya antara 86.9950 dan 87.0049 gram, yang memiliki variabilitas jauh lebih sedikit).

Jadi, dalam notasi ilmiah standar, kami lebih memilih untuk tetap mengikuti angka nol setelah titik desimal, karena angka tersebut memberikan informasi yang berguna tentang ketepatan angka.

Namun, dalam C++, 87 dan 87.000 diperlakukan sama persis, dan kompiler akan menyimpan nilai yang sama untuk masing-masing. Tidak ada alasan teknis mengapa kita harus lebih memilih satu daripada yang lain (meskipun mungkin ada alasan ilmiah, jika Anda menggunakan kode sumber sebagai dokumentasi).

Sekarang kita telah membahas notasi ilmiah, kita siap untuk membahas bilangan floating point.

Floating Point

Bilangan bulat sangat bagus untuk menghitung bilangan bulat, tetapi terkadang kita perlu menyimpan bilangan yang sangat besar, atau bilangan dengan komponen pecahan. Sebuah floating point variabel jenis adalah variabel yang dapat menyimpan sejumlah nyata, seperti 4320,0, -3,33, atau 0,01226. Bagian floating dari nama floating point mengacu pada fakta bahwa titik desimal dapat “mengambang”; yaitu, dapat mendukung sejumlah variabel digit sebelum dan sesudah titik desimal.

Ada tiga tipe data floating point yang berbeda: float , double , dan long double . Seperti halnya bilangan bulat, C++ tidak menentukan ukuran sebenarnya dari jenis ini (tetapi menjamin ukuran minimum). Pada arsitektur modern, representasi floating point hampir selalu mengikuti format biner IEEE 754. Dalam format ini, float adalah 4 byte, double adalah 8, dan double panjang dapat setara dengan double (8 byte), 80-bit (sering diisi hingga 12 byte), atau 16 byte.

Tipe data floating point selalu bertanda (dapat menyimpan nilai positif dan negatif).

float fValue;
double dValue;
long double ldValue;

Saat menggunakan literal floating point, selalu sertakan setidaknya satu tempat desimal (bahkan jika desimalnya adalah 0). Ini membantu kompiler memahami bahwa angka tersebut adalah angka floating point dan bukan bilangan bulat.

Mencetak angka floating point

#include <iostream>

int main()
{
	std::cout << 5.0 << '\\n';
	std::cout << 6.7f << '\\n';
	std::cout << 9876543.21 << '\\n';

	return 0;
}

Floating point range

Presisi floating point

Perhatikan pecahan 1/3. Representasi desimal dari angka ini adalah 0,33333333333333… dengan 3 keluar hingga tak terhingga. Jika Anda menulis nomor ini di selembar kertas, lengan Anda akan lelah di beberapa titik, dan Anda akhirnya akan berhenti menulis. Dan angka yang tersisa akan mendekati 0,3333333333…. (dengan 3 keluar hingga tak terbatas) tetapi tidak persis.

Di komputer, jumlah panjang tak terbatas akan membutuhkan memori tak terbatas untuk disimpan, dan biasanya kita hanya memiliki 4 atau 8 byte. Memori yang terbatas ini berarti bilangan floating point hanya dapat menyimpan sejumlah digit signifikan tertentu — dan bahwa setiap digit signifikan tambahan akan hilang. Angka yang sebenarnya disimpan akan mendekati angka yang diinginkan, tetapi tidak tepat.

presisi dari sejumlah floating point mendefinisikan berapa banyak angka yang signifikan dapat mewakili tanpa kehilangan informasi.

Saat mengeluarkan angka floating point, std::cout memiliki presisi default 6 — yaitu, mengasumsikan semua variabel floating point hanya signifikan hingga 6 digit (presisi minimum float), dan karenanya akan memotong apa pun setelah itu .

Program berikut menunjukkan std::cout terpotong menjadi 6 digit:

#include <iostream>

int main()
{
    std::cout << 9.87654321f << '\\n';
    std::cout << 987.654321f << '\\n';
    std::cout << 987654.321f << '\\n';
    std::cout << 9876543.21f << '\\n';
    std::cout << 0.0000987654321f << '\\n';

    return 0;
}

Boolean

Dalam kehidupan nyata, pertanyaan atau pertanyaan yang bisa dijawab dengan “ya” atau “tidak” adalah hal yang biasa. “Apakah apel itu buah?” Ya. “Apakah kamu suka asparagus?” Tidak.

Sekarang perhatikan pernyataan serupa yang dapat dijawab dengan “benar” atau “salah”: “Apel adalah buah”. Ini jelas benar. Atau bagaimana dengan, “Saya suka asparagus”. Benar-benar salah.

Kalimat seperti ini yang hanya memiliki dua kemungkinan hasil: ya/benar, atau tidak/salah adalah sangat umum, sehingga banyak bahasa pemrograman menyertakan tipe khusus untuk menanganinya. Tipe itu disebut tipe Boolean (catatan: Boolean dikapitalisasi dengan benar dalam bahasa Inggris karena dinamai menurut penemunya, George Boole).

Variabel boolean

Variabel Boolean adalah variabel yang hanya memiliki dua kemungkinan nilai: true , dan false .

Untuk mendeklarasikan variabel Boolean, kita menggunakan kata kunci bool .

bool b;

Untuk menginisialisasi atau menetapkan nilai true atau false ke variabel Boolean, kami menggunakan kata kunci true dan false .

bool b1 { true };
bool b2 { false };
b1 = false;
bool b3 {}; // default initialize to false

Sama seperti operator unary (-) dapat digunakan untuk membuat bilangan bulat negatif, operator NOT (!) dapat digunakan untuk membalik nilai Boolean dari true ke false , atau false ke true :

bool b1 { !true }; // b1 will be initialized with the value false
bool b2 { !false }; // b2 will be initialized with the value true

Nilai Boolean sebenarnya tidak disimpan dalam variabel Boolean sebagai kata “benar” atau “salah”. Sebaliknya, mereka disimpan sebagai bilangan bulat: true menjadi bilangan bulat 1 , dan false menjadi bilangan bulat 0 . Demikian pula, ketika nilai Boolean dievaluasi, mereka tidak benar-benar mengevaluasi ke “benar” atau “salah”. Mereka mengevaluasi ke bilangan bulat 0 (salah) atau 1 (benar). Karena Boolean sebenarnya menyimpan bilangan bulat, mereka dianggap sebagai tipe integer.

Mencetak variabel boolean

Saat kita mencetak nilai Boolean dengan std::cout, std::cout mencetak 0 untuk false , dan 1 untuk true :

#include <iostream>

int main()
{
    std::cout << true << '\\n'; // true evaluates to 1
    std::cout << !true << '\\n'; // !true evaluates to 0

    bool b{false};
    std::cout << b << '\\n'; // b is false, which evaluates to 0
    std::cout << !b << '\\n'; // !b is true, which evaluates to 1
    return 0;
}

Char

Char tipe data dirancang untuk membuatcharacter. Sebuah karakter dapat menjadi satu huruf, angka, simbol, atau spasi.

Tipe data char adalah tipe integral, artinya nilai yang mendasari disimpan sebagai integer. Mirip dengan bagaimana nilai Boolean 0ditafsirkan sebagai falsedan bukan nol ditafsirkan sebagai true, bilangan bulat yang disimpan oleh charvariabel ditafsirkan sebagai ASCII character.

ASCII singkatan dari American Standard Code for Information Interchange, dan mendefinisikan cara tertentu untuk mewakili karakter bahasa Inggris (ditambah beberapa simbol lainnya) sebagai angka antara 0 dan 127 (disebut kode ASCII atau titik kode ). Misalnya, kode ASCII 97 ditafsirkan sebagai karakter ‘a’.

Literal karakter selalu ditempatkan di antara tanda kutip tunggal (misalnya ‘g’, ‘1’, ‘ ‘).

Inisialisasi karakter

Anda dapat menginisialisasi variabel char menggunakan literal karakter:

char ch2{ 'a' };

Mencetak karakter

Saat menggunakan std::cout untuk mencetak char, std::cout menampilkan variabel char sebagai karakter ASCII:

#include <iostream>

int main()
{
    char ch1{ 'a' }; // (preferred)
    std::cout << ch1; // cout prints a character

    char ch2{ 98 }; // code point for 'b' (not preferred)
    std::cout << ch2; // cout prints a character ('b')

    return 0;
}

Mencetak karakter sebagai bilangan bulat melalui type casting

Jika kita ingin menampilkan char sebagai angka, bukan karakter, kita harus memberi tahu std::cout untuk mencetak char seolah-olah itu bilangan bulat. Salah satu cara (buruk) untuk melakukan ini adalah dengan menetapkan karakter ke bilangan bulat, dan mencetak bilangan bulat:

#include <iostream>

int main()
{
    char ch { 97 } ;
    int i { ch }; // initialize an integer with the value of ch
    std::cout << i << '\\n'; // print the integer value
    return 0;
}

Namun, ini aneh. Cara yang lebih baik adalah dengan menggunakan tipe cast . Sebuah tipe cast menciptakan nilai dari satu jenis dari nilai tipe lain. Untuk mengonversi antara tipe data dasar (misalnya, dari char ke int, atau sebaliknya), kami menggunakan tipe cast yang disebut static cast .

Sintaks untuk pemain statis terlihat sedikit lucu:

static_cast<new_type>(ekspresi)

static_cast mengambil nilai dari ekspresi sebagai input, dan mengubahnya menjadi tipe dasar apa pun yang direpresentasikan new_type (misalnya int, bool, char, double).

#include <iostream>

int main()
{
    char ch{ 'a' };
    std::cout << ch << '\\n';
    std::cout << static_cast<int>(ch) << '\\n';
    std::cout << ch << '\\n';
    return 0;
}

Penting untuk dicatat bahwa parameter ke static_cast dievaluasi sebagai ekspresi. Ketika kita memasukkan sebuah variabel, variabel tersebut dievaluasi untuk menghasilkan nilainya, yang kemudian diubah menjadi tipe baru. Variabel tidak terpengaruh oleh casting nilainya ke tipe baru. Dalam kasus di atas, variabel ch masih berupa char, dan masih memiliki nilai yang sama.

Perhatikan juga bahwa casting statis tidak melakukan pemeriksaan rentang apa pun, jadi jika Anda memasukkan bilangan bulat besar ke dalam char, Anda akan membanjiri char Anda.

Memasukkan karakter

Program berikut meminta pengguna untuk memasukkan karakter, lalu mencetak karakter dan kode ASCII-nya:

#include <iostream>

int main()
{
    std::cout << "Input a keyboard character: ";

    char ch{};
    std::cin >> ch;
    std::cout << ch << " has ASCII code " << static_cast<int>(ch) << '\\n';

    return 0;
}

Perhatikan bahwa std::cin akan memungkinkan Anda memasukkan banyak karakter. Namun, variabel ch hanya dapat menampung 1 karakter. Akibatnya, hanya karakter input pertama yang diekstraksi ke dalam variabel ch . Sisa input pengguna dibiarkan di buffer input yang digunakan std::cin, dan dapat diekstraksi dengan panggilan berikutnya ke std::cin.

Anda dapat melihat perilaku ini dalam contoh berikut:

#include <iostream>

int main()
{
    std::cout << "Input a keyboard character: "; // assume the user enters "abcd" (without quotes)

    char ch{};
    std::cin >> ch; // ch = 'a', "bcd" is left queued.
    std::cout << ch << " has ASCII code " << static_cast<int>(ch) << '\\n';

    // Note: The following cin doesn't ask the user for input, it grabs queued input!
    std::cin >> ch; // ch = 'b', "cd" is left queued.
    std::cout << ch << " has ASCII code " << static_cast<int>(ch) << '\\n';

    return 0;
}

Escape

Ada beberapa karakter dalam C++ yang memiliki arti khusus. Karakter ini disebut escape sequence . Urutan escape dimulai dengan karakter ‘\’ (garis miring terbalik), dan kemudian huruf atau angka berikutnya.

Anda telah melihat urutan escape yang paling umum: ‘\n’, yang dapat digunakan untuk menyematkan baris baru dalam string teks:

Berikut adalah tabel dari semua urutan escape:

std::string

Untuk menggunakan string dalam C++, pertama-tama kita perlu #include <string> header untuk membawa deklarasi untuk std::string. Setelah selesai, kita dapat mendefinisikan variabel bertipe std::string.

#include <string> // allows use of std::string

std::string myName {}; // empty string

Sama seperti variabel normal, Anda dapat menginisialisasi atau menetapkan nilai ke string seperti yang Anda harapkan:

std::string name{ "Jony" }; // initialize myName with string literal "Alex"
name = "Erik"; // assign variable myName the string literal "John"

Perhatikan bahwa string juga dapat menampung angka:

std::string myID{ "45" }; // "45" is not the same as integer 45!

Dalam bentuk string, angka diperlakukan sebagai teks, bukan angka, dan dengan demikian angka tidak dapat dimanipulasi sebagai angka (misalnya Anda tidak dapat mengalikannya). C++ tidak akan secara otomatis mengonversi nomor string menjadi nilai integer atau floating point.

Output string

String dapat menjadi output seperti yang diharapkan menggunakan std::cout:

#include <iostream>
#include <string>

int main()
{
    std::string name{ "Sahru" };
    std::cout << "Nama saya adalah  " << name << '\\n';

    return 0;
}

String kosong tidak akan mencetak apa pun:

#include <iostream>
#include <string>

int main()
{
    std::string empty{ };
    std::cout << '[' << empty << ']';

    return 0;
}

Masukan string dengan std::cin

Menggunakan string dengan std::cin dapat menghasilkan beberapa kejutan! Perhatikan contoh berikut:

#include <iostream>
#include <string>

int main()
{
    std::cout << "Enter your full name: ";
    std::string name{};
    std::cin >> name; // this won't work as expected since std::cin breaks on whitespace

    std::cout << "Enter your age: ";
    std::string age{};
    std::cin >> age;

    std::cout << "Your name is " << name << " and your age is " << age << '\\n';

    return 0;
}

Berikut hasil dari contoh run program ini:

Hmm, itu tidak benar! Apa yang terjadi? Ternyata ketika menggunakan operator>> untuk mengekstrak string dari cin, operator>> hanya mengembalikan karakter hingga spasi putih pertama yang ditemuinya. Karakter lain dibiarkan di dalam std::cin, menunggu ekstraksi berikutnya.

Jadi ketika kami menggunakan operator>> untuk mengekstrak string ke dalam variabel name, hanya "John"diekstraksi, meninggalkan " Doe"di dalam std::cin. Ketika kami kemudian menggunakan operator>> untuk mendapatkan variabel age, itu diekstraksi "Doe"alih-alih menunggu kami memasukkan usia. Kemudian program berakhir.

Gunakan std::getline() untuk memasukkan teks

Untuk membaca baris input lengkap ke dalam string, Anda sebaiknya menggunakan std::getline()fungsi sebagai gantinya. std::getline() mengambil dua parameter: yang pertama adalah std::cin, dan yang kedua adalah variabel string Anda.

Berikut program yang sama seperti di atas menggunakan std::getline():

#include <string> // For std::string and std::getline
#include <iostream>

int main()
{
    std::cout << "Enter your full name: ";
    std::string name{};
    std::getline(std::cin >> std::ws, name); // read a full line of text into name

    std::cout << "Enter your age: ";
    std::string age{};
    std::getline(std::cin >> std::ws, age); // read a full line of text into age

    std::cout << "Your name is " << name << " and your age is " << age << '\\n';

    return 0;
}

Terimakasih, semoga tutorial ini bermanfaat apabila ada pertanyaan silahkan untuk bertanya di kolom komentar.

]]>
https://himtika.cs.unsika.ac.id/tipe-data-dasar/feed/ 0
Belajar C++ #2 : Dasar Dasar C++ https://himtika.cs.unsika.ac.id/dasar-dasar-cpp/ https://himtika.cs.unsika.ac.id/dasar-dasar-cpp/#respond Wed, 15 Sep 2021 09:36:12 +0000 https://himtika.cs.unsika.ac.id/?p=9354 Hallo sobat informatics, pada tutorial ini kita mulai membahas C++. Program komputer merupakan urutan instruksi yang memberi tahu komputer apa yang harus dilakukan. Sebuah pernyataan adalah jenis instruksi yang menyebabkan program untuk melakukan beberapa tindakan .

Pernyataan sejauh ini merupakan jenis instruksi yang paling umum dalam program C++. Ini karena mereka adalah unit komputasi independen terkecil dalam bahasa C++. Dalam hal itu, mereka bertindak seperti kalimat dalam bahasa alami. Ketika kita ingin menyampaikan ide kepada orang lain, kita biasanya menulis atau berbicara dalam kalimat (bukan dalam kata atau suku kata acak). Di C++, ketika kita ingin program kita melakukan sesuatu, kita biasanya menulis pernyataan.

Sebagian besar (tetapi tidak semua) pernyataan dalam C++ diakhiri dengan titik koma. Jika Anda melihat garis yang diakhiri dengan titik koma, itu mungkin sebuah pernyataan.

Dalam bahasa tingkat tinggi seperti C++, satu pernyataan dapat dikompilasi menjadi banyak instruksi bahasa mesin.

Ada banyak pernyataan dalam C++ diantaranya yakni:

  1. Declaration statements
  2. Jump statements
  3. Expression statements
  4. Compound statements
  5. Selection statements (conditionals)
  6. Iteration statements (loops)
  7. Try blocks

Function dan Main Function

Dalam C++, pernyataan biasanya dikelompokkan ke dalam unit yang disebut fungsi. Sebuah fungsi adalah kumpulan pernyataan yang mengeksekusi secara berurutan (dalam urutan, dari atas ke bawah). Saat Anda belajar menulis program Anda sendiri, Anda akan dapat membuat fungsi Anda sendiri dan mencampur dan mencocokkan pernyataan dengan cara apa pun yang Anda inginkan (kami akan menunjukkan caranya di pelajaran mendatang).

Aturan

Setiap program C++ harus memiliki fungsi khusus bernama main (semua huruf kecil). Ketika program dijalankan, pernyataan di dalam main dieksekusi secara berurutan.

Program biasanya berhenti (selesai berjalan) ketika pernyataan terakhir di dalam fungsi main telah dieksekusi (meskipun program mungkin dibatalkan lebih awal dalam beberapa keadaan, atau melakukan pembersihan setelahnya).

Fungsi biasanya ditulis untuk melakukan pekerjaan tertentu. Misalnya, fungsi bernama “max” mungkin berisi pernyataan yang menentukan mana dari dua angka yang lebih besar. Sebuah fungsi bernama “calculateGrade” mungkin menghitung nilai siswa dari sekumpulan nilai ujian. Kami akan berbicara lebih banyak tentang fungsi segera, karena mereka adalah alat pengorganisasian yang paling umum digunakan dalam suatu program.

Hello World

Sekarang setelah Anda memiliki pemahaman singkat tentang apa pernyataan dan fungsi, mari kembali ke program “Hello world” dan lihat apa yang dilakukan setiap baris secara lebih rinci.

#include <iostream>

int main()
{
   std::cout << "Hello world!";
   return 0;
}

Baris 1 adalah jenis jalur khusus yang disebut direktif preprosesor. Direktif preprocessor ini menunjukkan bahwa kita ingin menggunakan konten library iostream, yang merupakan bagian dari library standar C++ yang memungkinkan kita membaca dan menulis teks dari/ke konsol. Kita membutuhkan baris ini untuk menggunakan std::cout pada baris 5. Mengecualikan baris ini akan mengakibatkan kesalahan kompilasi pada baris 5, karena kompilator tidak akan mengetahui apa itu std::cout.

Baris 2 kosong, dan diabaikan oleh kompilator. Baris ini hanya ada untuk membantu membuat program lebih mudah dibaca oleh manusia (dengan memisahkan #include preprocessor directive dan bagian selanjutnya dari program).

Baris 3 memberitahu compiler bahwa kita akan menulis (mendefinisikan) sebuah fungsi yang disebut main . Seperti yang Anda pelajari di atas, setiap program C++ harus memiliki fungsi utama atau akan gagal untuk ditautkan.

Baris 4 dan 7 memberitahu compiler baris mana yang merupakan bagian dari fungsi utama . Segala sesuatu antara kurung kurawal pembukaan pada baris 4 dan kurung kurawal penutup pada baris 7 dianggap sebagai bagian dari fungsi utama . Ini disebut badan fungsi.

Baris 5 adalah pernyataan pertama dalam fungsi main , dan merupakan pernyataan pertama yang akan dijalankan ketika kita menjalankan program kita. std::cout (yang merupakan singkatan dari “character output”) dan <<operator mengizinkan kita untuk mengirim huruf atau angka ke konsol untuk menjadi output. Dalam hal ini, kami mengirimkan teks “Hello world!”, yang akan ditampilkan ke konsol. Pernyataan ini menciptakan output program yang terlihat.

Baris 6 adalah pernyataan kembali. Ketika program yang dapat dieksekusi selesai berjalan, program mengirimkan nilai kembali ke sistem operasi untuk menunjukkan apakah itu berjalan dengan sukses atau tidak. Pernyataan pengembalian khusus ini mengembalikan nilai 0 ke sistem operasi, yang berarti “semuanya berjalan baik-baik saja!”. Ini adalah pernyataan terakhir dalam program yang dijalankan.

Anda dapat mengompilasi dan menjalankan program ini sendiri, dan Anda akan melihat bahwa program ini menampilkan yang berikut ke konsol:

Halo Dunia!

Sintaks dan kesalahan sintaks

Dalam bahasa Inggris, kalimat dibangun menurut aturan tata bahasa tertentu yang mungkin Anda pelajari di kelas bahasa Inggris di sekolah. Misalnya, kalimat normal diakhiri dengan titik. Aturan yang mengatur bagaimana kalimat dibangun dalam bahasa disebut sintaks . Jika Anda lupa titik dan menjalankan dua kalimat bersama-sama, ini merupakan pelanggaran sintaks bahasa Inggris.

C++ juga memiliki sintaks: aturan tentang bagaimana program Anda harus dibuat agar dianggap valid. Saat Anda mengkompilasi program Anda, kompiler bertanggung jawab untuk memastikan program Anda mengikuti sintaks dasar bahasa C++. Jika Anda melanggar aturan, kompilator akan mengeluh ketika Anda mencoba mengkompilasi program Anda, dan memberi Anda kesalahan sintaksis .

Mari kita lihat apa yang terjadi jika kita menghilangkan titik koma pada baris 5 dari program “Hello world”, seperti ini:

#include <iostream>

int main()
{
   std::cout << "Hello world!"
   return 0;
}

Komentar

Sebuah komentar adalah catatan programmer dapat dibaca yang dimasukkan langsung ke dalam kode sumber program. Komentar diabaikan oleh kompiler dan hanya untuk penggunaan programmer.

Di C++ ada dua gaya komentar yang berbeda, keduanya memiliki tujuan yang sama: untuk membantu pemrogram mendokumentasikan kode dalam beberapa cara.

Komentar satu baris

Simbol // memulai C ++ single-line komentar, yang memberitahu compiler untuk mengabaikan segala sesuatu dari // simbol ke akhir baris. Sebagai contoh:

std::cout << "Hello world!"; // Ini merupakan Komentar

Komentar multi baris

/*dan */sepasang simbol menunjukkan C-gaya multi-baris komentar. Segala sesuatu di antara simbol diabaikan.

/* Ini merupakan contoh komentar
   multi baris. Komentar
   ini akan diabaikan oleh compiler. */

Ketika kompiler mencoba mengkompilasi ini, ia akan mengabaikan semuanya mulai dari /* pertama hingga */ pertama. Karena ” ini tidak ada di dalam komentar */ ” tidak dianggap sebagai bagian dari komentar, kompiler akan mencoba mengompilasinya. Itu pasti akan menghasilkan kesalahan kompilasi.

Data

Dalam komputasi, data adalah segala informasi yang dapat dipindahkan, diproses, atau disimpan oleh komputer.

Sebuah program dapat memperoleh data untuk bekerja dengan banyak cara: dari file atau database, melalui jaringan, dari pengguna yang memberikan input pada keyboard, atau dari programmer yang memasukkan data langsung ke kode sumber program itu sendiri. Dalam program “Hello world” dari pelajaran yang disebutkan di atas, teks “Hello world!” dimasukkan langsung ke dalam kode sumber program, menyediakan data untuk digunakan program. Program kemudian memanipulasi data ini dengan mengirimkannya ke monitor untuk ditampilkan.

Data di komputer biasanya disimpan dalam format yang efisien untuk penyimpanan atau pemrosesan (dan karenanya tidak dapat dibaca manusia). Jadi, ketika program “Hello World” dikompilasi, teks “Hello world!” diubah menjadi format yang lebih efisien untuk digunakan program (biner, yang akan kita bahas di pelajaran mendatang).

Objek dan Variabel

Semua komputer memiliki memori, yang disebut RAM (singkatan dari memori akses acak), yang tersedia untuk digunakan oleh program Anda. Anda dapat menganggap RAM sebagai serangkaian kotak surat bernomor yang masing-masing dapat digunakan untuk menyimpan sepotong data saat program sedang berjalan. Sepotong data, disimpan dalam memori di suatu tempat, disebut nilai .

Di C++, akses memori langsung tidak diperbolehkan. Sebagai gantinya, kami mengakses memori secara tidak langsung melalui suatu objek. Sebuah objek merupakan wilayah penyimpanan (biasanya memori) yang memiliki nilai dan sifat yang terkait lainnya (yang akan kita bahas pada pelajaran di masa depan). Cara kerja kompiler dan sistem operasi untuk menetapkan memori ke objek berada di luar cakupan pelajaran ini. Tetapi poin kuncinya di sini adalah bahwa alih-alih mengatakan go get the value stored in mailbox number 7532 , kita dapat mengatakan, go get value yang disimpan oleh objek ini . Ini berarti kita dapat fokus menggunakan objek untuk menyimpan dan mengambil nilai, dan tidak perlu khawatir tentang di mana sebenarnya mereka ditempatkan dalam memori.

Objek dapat diberi nama atau tanpa nama (anonim). Objek bernama disebut variabel , dan nama objek disebut identifier. Dalam program kami, sebagian besar objek yang kami buat dan gunakan akan menjadi variabel.

Instansiasi Variabel

Untuk membuat variabel, kami menggunakan jenis pernyataan deklarasi khusus yang disebut definisi (kami akan mengklarifikasi perbedaan antara deklarasi dan definisi nanti). Berikut ini contoh pendefinisian variabel bernama x:

int x; // define a variable named x, of type int

Pada waktu kompilasi, ketika kompilator melihat pernyataan ini, ia membuat catatan untuk dirinya sendiri bahwa kita mendefinisikan sebuah variabel, memberinya nama x , dan itu bertipe int (lebih lanjut tentang tipe data sebentar lagi). Setiap kali kompiler melihat identififer x , ia akan tahu bahwa kita mereferensikan variabel ini.

Ketika program dijalankan (disebut runtime ), variabel akan dipakai. Instansiasi adalah kata mewah yang berarti objek akan dibuat dan diberi alamat memori. Variabel harus diinstansiasi sebelum dapat digunakan untuk menyimpan nilai. Sebagai contoh, katakanlah variabel x dibuat di lokasi memori 140. Setiap kali program kemudian menggunakan variabel x, ia akan mengakses nilai di lokasi memori 140. Objek yang dipakai terkadang juga disebut instance .

Tipe Data

Sejauh ini, kita telah membahas bahwa variabel adalah tempat penyimpanan bernama yang dapat menyimpan nilai data (bagaimana tepatnya data disimpan adalah topik untuk pelajaran mendatang). Sebuah tipe data (lebih sering hanya disebut jenis ) memberitahu compiler jenis nilai (misalnya nomor, surat, teks, dll …) variabel akan menyimpan.

Dalam contoh di atas, variabel x kita diberi tipe int , yang berarti variabel x akan mewakili nilai integer. Bilangan bulat adalah bilangan yang dapat ditulis tanpa komponen pecahan, seperti 4, 27, 0, -2, atau -12. Singkatnya, kita dapat mengatakan bahwa x adalah variabel integer .

Dalam C++, tipe variabel harus diketahui pada waktu kompilasi (saat program dikompilasi), dan tipe tersebut tidak dapat diubah tanpa mengkompilasi ulang program. Ini berarti variabel integer hanya dapat menyimpan nilai integer. Jika Anda ingin menyimpan beberapa jenis nilai lain, Anda harus menggunakan variabel yang berbeda.

Bilangan bulat hanyalah salah satu dari banyak jenis yang didukung C++ di luar kotak. Untuk tujuan ilustrasi, berikut adalah contoh lain untuk mendefinisikan variabel menggunakan tipe data double :

double width; // define a variable named width, of type double

Mendefinisikan Beberapa Variabel

Dimungkinkan untuk mendefinisikan beberapa variabel dengan tipe yang sama dalam satu pernyataan dengan memisahkan nama dengan koma. 2 cuplikan kode berikut secara efektif sama:

int a;
int b;

Sama dengan:

int a,b;

Saat mendefinisikan banyak variabel dengan cara ini, ada dua kesalahan umum yang cenderung dilakukan oleh pemrogram baru (tidak terlalu serius, karena kompiler akan menangkapnya dan meminta Anda untuk memperbaikinya):

Kesalahan pertama adalah memberikan setiap variabel jenis ketika mendefinisikan variabel secara berurutan.

int a, int b; // salah (compiler error)

int a, b; // benar

Kesalahan kedua adalah mencoba mendefinisikan variabel dari tipe yang berbeda dalam pernyataan yang sama, yang tidak diperbolehkan. Variabel dari jenis yang berbeda harus didefinisikan dalam pernyataan terpisah.

int a, double b; // salah (compiler error)

int a; double b; // benar (but not recommended)

// benar dan direkomendasikan (easier to read)
int a;
double b;

Inisialisasi Variabel

Tugas variabel

Setelah variabel didefinisikan, Anda dapat memberikan nilai (dalam pernyataan terpisah) menggunakan operator = . Proses ini disebut copy assignment (atau hanya assignment ) untuk jangka pendek.

int width; // define an integer variable named width
width = 5; // copy assignment of value 5 into variable width

// variable width now has value 5

Copy assignent dinamai demikian karena menyalin nilai di sisi kanan operator = ke variabel di sisi kiri operator. Simbol = operator disebut operator penugasan/operator assignment.

Berikut adalah contoh di mana kami menggunakan assignment dua kali:

#include <iostream>

int main()
{
	int width;
	width = 5; // copy assignment of value 5 into variable width

	// variable width now has value 5

	width = 7; // change value stored in variable width to 7

	// variable width now has value 7

	return 0;
}

Salah satu kesalahan paling umum yang dilakukan programmer baru adalah membingungkan operator assignment ( =) dengan operator equality ( ==). Assignment ( =) digunakan untuk memberikan nilai pada sebuah variabel. Equality ( ==) digunakan untuk menguji apakah dua operan memiliki nilai yang sama.

Inisialisasi

Satu kelemahan dari assignment adalah membutuhkan setidaknya dua pernyataan: satu untuk mendefinisikan variabel, dan satu untuk menetapkan nilai.

Kedua langkah ini dapat digabungkan. Ketika sebuah variabel didefinisikan, Anda juga dapat memberikan nilai awal untuk variabel tersebut pada saat yang sama. Ini disebut inisialisasi . Nilai yang digunakan untuk menginisialisasi variabel disebut inisialisasi .

Inisialisasi dalam C++ sangat kompleks, jadi kami akan menyajikan tampilan yang disederhanakan di sini.

Ada 4 cara dasar untuk menginisialisasi variabel dalam C++:

int a; // no initializer
int b = 5; // initializer after equals sign
int c( 6 ); // initializer in parenthesis
int d { 7 }; // initializer in braces

Mengenal iostream: cout,cin, dan endl

Library input / output

Library input / output (perpustakaan io) adalah bagian dari perpustakaan C ++ standar yang berhubungan dengan masukan dasar dan output. Kami akan menggunakan fungsionalitas di perpustakaan ini untuk mendapatkan input dari keyboard dan data output ke konsol. Bagian io dari iostream adalah singkatan dari input/output .

Untuk menggunakan fungsionalitas yang ditentukan dalam pustaka iostream , kita perlu menyertakan header iostream di bagian atas file kode apa pun yang menggunakan konten yang ditentukan dalam iostream , seperti:

#include <iostream>

std::cout

Library iostream berisi variabel yang telah ditetapkan beberapa bagi kita untuk menggunakan. Salah satu yang paling berguna adalah std::cout , yang memungkinkan kita mengirim data ke konsol untuk dicetak sebagai teks. cout adalah singkatan dari “keluaran karakter”.

Sebagai pengingat, inilah program Hello world kami :

#include <iostream> // for std::cout

int main()
{
    std::cout << "Hello world!"; // print Hello world! to console

    return 0;
}

Dalam program ini, kami telah menyertakan iostream sehingga kami memiliki akses ke std::cout . Di dalam fungsi utama kami , kami menggunakan std::cout , bersama dengan operator penyisipan ( <<) , untuk mengirim teks Hello world! ke konsol yang akan dicetak.

std::cout tidak hanya dapat mencetak teks, tetapi juga dapat mencetak angka:

#include <iostream> // for std::cout

int main()
{
    std::cout << 4; // print 4 to console

    return 0;
}

Itu juga dapat digunakan untuk mencetak nilai variabel:

#include <iostream> // for std::cout

int main()
{
    int x = 5; // define integer variable x, initialized with value 5
    std::cout << x; // print value of x (5) to console
    return 0;
}

Untuk mencetak lebih dari satu hal pada baris yang sama, operator penyisipan ( <<) dapat digunakan beberapa kali dalam satu pernyataan untuk menggabungkan (menghubungkan bersama) beberapa bagian keluaran. Sebagai contoh:

#include <iostream> // for std::cout

int main()
{
    std::cout << "Hello" << " world!";
    return 0;
}

Berikut contoh lain di mana kami mencetak teks dan nilai variabel dalam pernyataan yang sama:

#include <iostream> // for std::cout

int main()
{
    int x{ 5 };
    std::cout << "x is equal to: " << x;
    return 0;
}

std::endl

Apa yang Anda harapkan dari program ini untuk dicetak?

#include <iostream> // for std::cout

int main()
{
    std::cout << "Hi!";
    std::cout << "My name is HIMTIKA.";
    return 0;
}

Jika kita ingin mencetak baris output yang terpisah ke konsol, kita perlu memberi tahu konsol kapan harus memindahkan kursor ke baris berikutnya.

Salah satu cara untuk melakukannya adalah dengan menggunakan std::endl . Ketika output dengan std::cout , std::endl mencetak karakter baris baru ke konsol (menyebabkan kursor menuju ke awal baris berikutnya). Dalam konteks ini, endl berarti “garis akhir”.

Sebagai contoh:

#include <iostream> // for std::cout and std::endl

int main()
{
    std::cout << "Hi!" << std::endl; // std::endl will cause the cursor to move to the next line of the console
    std::cout << "My name is Alex." << std::endl;

    return 0;
}

std::endl vs ‘\n’

Menggunakan std::endl bisa sedikit tidak efisien, karena sebenarnya melakukan dua pekerjaan: memindahkan kursor ke baris berikutnya, dan “membilas” output (memastikan itu segera muncul di layar). Saat menulis teks ke konsol menggunakan std::cout, std::cout biasanya mengeluarkan output (dan jika tidak, biasanya tidak masalah), jadi memiliki std::endl flush jarang penting.

Karena itu, penggunaan karakter ‘\n’ biasanya lebih disukai. Karakter ‘\n’ memindahkan kursor ke baris berikutnya, tetapi tidak melakukan pembilasan yang berlebihan, sehingga kinerjanya lebih baik. Karakter ‘\n’ juga cenderung lebih mudah dibaca karena lebih pendek dan dapat disematkan ke dalam teks yang ada.

Berikut adalah contoh yang menggunakan ‘\n’ dalam dua cara berbeda:

#include <iostream> // for std::cout

int main()
{
    int x = 5;
    std::cout << "x is equal to: " << x << '\\n'; // Using '\\n' standalone
    std::cout << "And that's all, folks!\\n"; // Using '\\n' embedded into a double-quoted piece of text (note: no single quotes when used this way)
    return 0;
}

Perhatikan bahwa ketika ‘\n’ digunakan dengan sendirinya untuk memindahkan kursor ke baris berikutnya, tanda kutip tunggal diperlukan. Saat disematkan ke dalam teks yang sudah dikutip ganda, tanda kutip tunggal tidak diperlukan.

std::cin

std::cinadalah variabel standar lain yang didefinisikan di iostream. Sedangkan std::cout mencetak data ke konsol menggunakan operator penyisipan ( <<), std::cin(yang merupakan singkatan dari “input karakter”) membaca input dari keyboard menggunakan operator ekstraksi ( >>) . Input harus disimpan dalam variabel yang akan digunakan.

#include <iostream>  // for std::cout and std::cin

int main()
{
    std::cout << "Enter a number: "; // ask user for a number

    int x{ }; // define variable x to hold user input (and zero-initialize it)
    std::cin >> x; // get number from keyboard and store it in variable x

    std::cout << "You entered " << x << '\\n';
    return 0;
}

Operator

Dalam matematika, operasi adalah perhitungan matematis yang melibatkan nol atau lebih nilai input (disebut operan ) yang menghasilkan nilai baru (disebut nilai output). Operasi spesifik yang akan dilakukan dilambangkan dengan konstruksi (biasanya simbol atau pasangan simbol) yang disebut operator .

Misalnya, sebagai anak-anak kita semua belajar bahwa 2 + 3 sama dengan 5 . Dalam hal ini, literal 2 dan 3 adalah operan, dan simbol + adalah operator yang memberi tahu kita untuk menerapkan penjumlahan matematis pada operan untuk menghasilkan nilai baru 5

Anda mungkin sudah cukup familiar dengan operator aritmatika standar dari penggunaan umum dalam matematika, termasuk penambahan (+), pengurangan (-), perkalian (*), dan pembagian (/). Dalam C++, penugasan (=) juga merupakan operator, seperti halnya << (penyisipan) dan >> (ekstraksi). Beberapa operator menggunakan lebih dari satu simbol, seperti operator kesetaraan (==), yang memungkinkan kita membandingkan dua nilai untuk melihat apakah keduanya sama. Ada juga sejumlah operator yang berupa kata-kata (misalnya new, delete, dan throw).

Jumlah operan yang diambil operator sebagai input disebut arity operator (hampir tidak ada yang tahu apa arti kata ini, jadi jangan masukkan dalam percakapan dan berharap siapa pun tahu apa yang Anda bicarakan). Operator di C++ datang dalam tiga arities yang berbeda :

Operator unary bekerja pada satu operan. Contoh dari operator unary adalah – Operator . Sebagai contoh, diberikan -5operator- mengambil operan literal 5 dan membalik tandanya untuk menghasilkan nilai keluaran baru -5 .

Operator biner bekerja pada dua operan (dikenal sebagai left dan right ). Contoh operator biner adalah operator + . Misalnya, diberikan 3 + 4operator+ mengambil operan kiri (3) dan operan kanan (4) dan menerapkan penjumlahan matematis untuk menghasilkan nilai keluaran baru 7 . Operator penyisipan (<<) dan ekstraksi (>>) adalah operator biner, mengambil std::cout atau std::cin di sisi kiri, dan item ke output atau variabel ke input di sisi kanan.

Terimakasih, semoga tutorial ini dapat bermanfaat dan apabila ada yang ingin ditanyakan. Silahkan untuk bertanya di kolom komentar. Terima kasih

]]>
https://himtika.cs.unsika.ac.id/dasar-dasar-cpp/feed/ 0
Belajar C++ #1 : Mengenal Bahasa Pemrograman https://himtika.cs.unsika.ac.id/mengenal-bahasa-pemrograman/ https://himtika.cs.unsika.ac.id/mengenal-bahasa-pemrograman/#respond Wed, 15 Sep 2021 07:57:19 +0000 https://himtika.cs.unsika.ac.id/?p=9334 Hallo sobat, Informatics pada tutorial c++ yang pertama kita harus tahu terlebih dahulu mengenai bahasa pemrograman, sebelum kita belajar c++ lebih lanjut. Pada era modern saat ini komputer sangat cepat, dan akan semakin cepat setiap saat. Akan tetapi, komputer memiliki beberapa masalah yang signifikan. Mereka hanya memahami serangkaian perintah yang terbatas dan harus diberitahu dengan tepat apa yang harus dilakukan.

Sebuah program komputer (juga biasa disebut aplikasi) merupakan kumpulan instruksi yang komputer dapat melakukan beberapa tugas. Proses pembuatan program disebut pemrograman. Pemrograman biasanya membuat program dengan menghasilkan kode sumber (biasanya disingkat menjadi kode) yang merupakan daftar perintah yang diketik ke dalam satu atau lebih file teks.

Kumpulan bagian fisik komputer yang membentuk komputer dan menjalankan program disebut dengan perangkat keras. Ketika sebuah program komputer dimuat ke dalam memori dan perangkat keras secara berurutan mengeksekusi setiap instruksi, ini disebut menjalankan atau mengeksekusi program.

Bahasa Mesin

CPU komputer tidak mampu berbicara C++. Serangkaian instruksi terbatas yang dapat dipahami CPU secara langsung disebut kode mesin (atau bahasa mesin atau set instruksi).

Berikut adalah contoh instruksi bahasa mesin: 10110000 0110001

Kilas balik pada saat komputer pertama kali ditemukan, programmer harus menulis program secara langsung dalam bahasa mesin, yang merupakan hal yang sangat sulit dan memakan waktu untuk dilakukan.

Bagaiamana instruksi ini diatur berada di luar cakupan pendahuluan ini, tetapi sangat menarik untuk dicatat dua hal tersebut. Pertama, setap instruksi terdiri dari urutan 1 dan 0. Setiap individu 0 atau 1 disebut digit biner, atau bit untuk jangka pendek. Jumlah bit yang membentuk satu perintah bervariasi, misalnya, beberapa CPU memproses instruksi yang selalu sepanjang 32bit, sedangkan beberapa CPU lain (seperti keluarga x86) memiliki instruksi yang dapat berupa panjang variabel.

Kedua, setiap set digit biner ditafsikan oleh CPU menjadi perintah untuk melakukan pekerjaan yang sangat spesifik, seperti membandingkan dua angka ini, atau meletakkan angka ini di lokasi memori tersebut. Namun, karena CPU yang berbeda memiliki set instruksi yang berbeda, instruksi yang ditulis untuk satu jenis CPU tidak dapat digunakan pada CPU yang tidak berbagi set instruksi yang sama. Ini berarti program umumnya tidak portabel (dapat digunakan tanpa pengerjaan ulang besar-besaran) untuk berbagai jenis sistem, dan harus ditulis dari awal lagi

Bahasa Assembly

Karena bahasa mesin sangat sulit untuk dibaca dan dipahami manusia, bahasa assembly diciptakan. Dalam bahasa assembly, setiap instruksi diidentifikasi dengan singkatan (bukan satu set bit), dan nama dan nomor lain dapat digunakan.

Berikut adalah instruksi yang sama seperti di atas dalam bahasa assembly: mov al, 061h

Ini membuat perakitan lebih mudah dibaca dan ditulis daripada menggunakan bahasa mesin. Namun, CPU tidak dapat memahami bahasa assembly secara langsung. Sebaliknya, program assembly harus diterjemahkan ke dalam bahasa mesin sebelum dapat dieksekusi oleh komputer. Ini dilakukan dengan menggunakan program yang disebut assembler. Program yang ditulis dalam bahasa assembly cenderung sangat cepat, dan assembly masih digunakan sampai sekarang ketika kecepatan sangat penting.

Namun, assembly memiliki beberapa kelemahan. Pertama, bahasa assembly masih memerlukan banyak instruksi untuk melakukan tugas-tugas sederhana sekalipun. Sementara instruksi individu itu sendiri agar dapat dibaca manusia, memahami apa yang dilakukan seluruh program dapat menjadi tantangan (seperti mencoba memahami kalimat dengan melihat setiap huruf satu per satu). Kedua, bahasa assembly masih belum terlalu portabel, program yang ditulis dalam bahasa assembly untuk satu CPU kemungkinan besar tidak akan bekerja pada perangkat keras yang menggunakan set instruksi yang berbeda, dan harus ditulis ulang atau dimodifikasi secara ekstensif.

Bahasa Tingkat Tinggi

Untuk mengatasi permasalahan keterbacaan dan portabilitas, bahasa pemrograman baru seperti C,C++, Java, Javascript, PHP dan lain sebagainya. Bahasa ini disebut bahasa tingkat tinggi, karena dirancang untuk memungkinkan pemrograman untuk menulis program tanpa harus khawatir tentang jenis komputer yang menjalankan program.

Sama seperti program assembly, program yang ditulis dalam bahasa tingkat tinggi harus diterjemahkan ke dalam format yang dapat dipahami komputer sebelum dapat dijalankan. Ada dua cara utama untuk melakukan ini: Kompilasi dan Interpretasi.

Sebuah compiler adalah sebuah program yang membaca kode sumber dan menghasilkan program executable yang berdiri sendiri yang kemudian dapat dijalankan. Setelah kode anda diubah menjadi executable, Anda tidak memerlukan compiler untuk menjalankan program. Pada awalnya, kompiler primitif menghasilkan kode yang lambat dan tidak dioptimalkan. Namun, selama bertahun-tahun, kompiler menjadi sangat baik dalam menghasilkan kode yang cepat dan dioptimalkan, dan dalam beberapa kasus dapat melakukan pekerjaan yang lebih baik daripada yang dapat dilakukan manusia dalam bahasa assembly.

Berikut adalah representasi sederhana dari proses kompilasi:

Bahasa Pemrograman

Sebuah interpreter adalah program yang langsung mengeksekusi instruksi dalam kode sumber tanpa mengharuskan mereka untuk dikompilasi ke dalam executable pertama. Interpreter cenderung lebih fleksibel dibandingkan compiler, namun kurang efisien saat menjalankan program karena proses interpreting perlu dilakukan setiap kali program dijalankan. Artinya interpreter dibutuhkan setiap kali program dijalankan. Berikut adalah representasi sederhana dari proses interpretasi:

Bahasa Pemrograman

Sebagian besar bahasa dapat dikompilasi atau diinterpretasi, namun, bahasa tradisional seperti C,C++, dan pascal dikompilasi, sedangkan bahasa “scripting” seperti PHP dan Javascript cenderung ditafsirkan. Beberapa bahasa, seperti Java, menggunakan campuran keduanya.

Bahasa tingkat tinggi memiliki banyak properti yang diinginkan

Pertama, bahasa tingkat tinggi jauh lebih mudah dibaca dan ditulis karena perintahnya lebih dekat dengan bahasa alami yang kita gunakan setiap hari. Kedua, bahasa tingkat tinggi memerlukan lebih sedikit instruksi untuk melakukan tugas yang sama seperti bahasa tingkat rendah, membuat program lebih ringkas dan lebih mudah dipahami. Di C++ Anda dapat melakukan sesuatu seperti a = b * 2 + 5;dalam satu baris. Dalam bahasa assembly, ini akan membutuhkan 5 atau 6 instruksi berbeda.

Ketiga, program dapat dikompilasi (atau diinterpretasikan) untuk banyak sistem yang berbeda, dan Anda tidak perlu mengubah program untuk berjalan pada CPU yang berbeda (Anda cukup mengkompilasi ulang untuk CPU tersebut). Sebagai contoh:

Bahasa Pemrograman

Ada dua pengecualian umum untuk portabilitas. Yang pertama adalah bahwa banyak sistem operasi, seperti Microsoft Windows, berisi kemampuan khusus platform yang dapat Anda gunakan dalam kode Anda. Ini dapat membuatnya lebih mudah untuk menulis program untuk sistem operasi tertentu, tetapi dengan mengorbankan portabilitas.

Perbedaan Bahasa Yang Dikompilasi dan Diinterpretasi

Secara umum , kompiler menawarkan keuntungan sebagai berikut:

  1. Karena mereka dapat melihat semua kode di awal, mereka dapat melakukan sejumlah analisis dan pengoptimalan saat membuat kode yang membuat versi final kode dieksekusi lebih cepat daripada hanya menafsirkan setiap baris satu per satu.
  2. Kompiler sering dapat menghasilkan kode tingkat rendah yang melakukan setara dengan ide tingkat tinggi seperti “dynamic dispatch” atau “inheritance” dalam hal pencarian memori di dalam tabel. Ini berarti bahwa program yang dihasilkan perlu mengingat lebih sedikit informasi tentang kode asli, menurunkan penggunaan memori dari program yang dihasilkan.
  3. Kode yang dikompilasi umumnya lebih cepat daripada kode yang ditafsirkan karena instruksi yang dieksekusi biasanya hanya untuk program itu sendiri, daripada program itu sendiri ditambah overhead dari interpreter.

Secara umum, compiler memiliki kelemahan sebagai berikut:

  1. Beberapa fitur bahasa, seperti pengetikan dinamis, sulit untuk dikompilasi secara efisien karena kompilator tidak dapat memprediksi apa yang akan terjadi sampai program benar-benar dijalankan. Ini berarti bahwa kompiler mungkin tidak menghasilkan kode yang sangat baik.
  2. Kompiler umumnya memiliki waktu “start-up” yang lama karena biaya untuk melakukan semua analisis yang mereka lakukan. Ini berarti bahwa dalam pengaturan seperti browser web di mana penting untuk memuat kode dengan cepat, kompiler mungkin lebih lambat karena mereka mengoptimalkan kode pendek yang tidak akan dijalankan berkali-kali.

Secara umum , interpreter memiliki keuntungan sebagai berikut:

  1. Karena mereka dapat membaca kode seperti yang tertulis dan tidak perlu melakukan operasi mahal untuk menghasilkan atau mengoptimalkan kode, mereka cenderung memulai lebih cepat daripada kompiler.
  2. Karena interpreter dapat melihat apa yang dilakukan program saat berjalan, interpreter dapat menggunakan sejumlah optimisasi dinamis yang mungkin tidak dapat dilihat oleh kompiler.

Secara umum , interpreter memiliki kelemahan sebagai berikut:

  1. Interpreter biasanya memiliki penggunaan memori yang lebih tinggi daripada compiler karena interpreter perlu menyimpan lebih banyak informasi tentang program yang tersedia saat runtime.
  2. Interpreter biasanya menghabiskan waktu CPU di dalam kode untuk interpreter, yang dapat memperlambat program yang sedang dijalankan.

Cukup sekian materi tentang “Mengenal Bahasa Pemrograman” semoga dapat dipahami, dan apabila ada yang ingin ditanyakan silahkan untuk bertanya di kolom komentar. Terimakasih

]]>
https://himtika.cs.unsika.ac.id/mengenal-bahasa-pemrograman/feed/ 0
Javascript #1 – Pengenalan https://himtika.cs.unsika.ac.id/javascript-1-pengenalan/ https://himtika.cs.unsika.ac.id/javascript-1-pengenalan/#respond Fri, 23 Jul 2021 02:40:54 +0000 https://himtika.cs.unsika.ac.id/?p=9054 Hallo, kita akan belajar mengenai bahasa pemrograman Javascript dari awal hingga mahir. Sebelumnya, mungkin pasti diantara kalian yang belum pernah belajar bahasa pemrograman, pasti bertanya-tanya, apa sih itu Javascript?, Javascript untuk apa ?, Bagaimana membuat javascript ? Dalam artikel ini kita akan membahas itu semua, dan satu yang harus kalian ketahui, Javascript merupakan salah satu yang paling utama bagi seorang web developer, kenapa ? karena Javascript dapat menyempurnakan tampilan dan sistem halaman web

Pengertian Javascript

Javascript merupakan bahasa pemrograman yang dapat membuat sebuah website menjadi lebih interaktif dan juga menarik. Javascript dapat melakukan manipulasi terhadap elemen HTML dan membuat interaksi. Javascript termasuk ke dalam clien side programming language itu berarti Javascript di proses di dalam web browser, sama seperti HTML dan CSS. Dengan adanya Javascript menambahkan aspek pemrograman ke dalam HTML dan CSS.

Seperti yang sudah dijelaskan sebelumnya, Javascript dapat melakukan manipulasi terhadap elemen HTML, dengan adanya Javascript ini misalnya kita ingin melakukan manipulasi terhadap sebuah tombol, apa yang terjadi jika tombol tersebut di klik ? mungkin kita bisa membuat background pada body berubah warna ketika tombol tersebut di klik, atau merubah warna pada teks, itu semua bisa kita lakukan dengan javascript dengan mudah.

Berikut merupakan pengertian menurut wikipedia

“JavaScript (disingkat JS) adalah bahasa pemrograman tingkat tinggi dan dinamis. JavaScript populer di internet dan dapat bekerja di sebagian besar penjelajah web populer seperti Google Chrome, Internet Explorer (IE), Mozilla Firefox, Netscape dan Opera. Kode JavaScript dapat disisipkan dalam halaman web menggunakan tag SCRIPT. JavaScript merupakan salah satu teknologi inti World Wide Web selain HTML dan CSS. JavaScript membantu membuat halaman web interaktif dan merupakan bagian aplikasi web yang esensial.”

Wikipedia

Javascript termasuk ke dalam bahasa pemrogram tingkat tinggi, karena kode program yang ada dalam bahasa pemrograman Javascript sudah sangat mirip sekali dengan bahasa sehari-sehari yang kita gunakan (dalam bahasa Inggris). Pada umumnya hampir semua bahasa pemrograman modern seperti Javascript, PHP, C++, Java termasuk ke dalam bahasa pemrograman tingkat tinggi.

Bahasa pemrograman Javascript berbeda dengan c++, dan java yang dimana ketika mendeklarasikan sebuah variabel maka harus mendefinisikan tipe datanya terlebih dahulu, ini sangat berbeda dengan javascript. Dalam Javascript ketika kita ingin membuat sebuah variabel kita tidak harus mendefinisikan sebuah tipe datanya terlebih dahulu dan ini sangat mirip dengan bahasa pemrograman PHP. Kemudian, dalam bahasa pemrograman Javascript banyak sekali memiliki fitus dinamis, tidak usah mendefinisikan tipe data dan juga di proses secara interpreted. Kenapa bahasa pemrograman javascript memiliki fitur dinamis ? seperti yang di jelaskan sebelumnya, itu karena dalam Javascript kita tidak harus mendefinisikan sebuah tipe data dalam membuat variabel, karena di dalam Javascript variabel yang kita buat bebas bisa diisi dengan tipe data apa saja dan kapan saja.

Jika HTML menggunakan spesifikasi World Wide Web Consortium, W3C. Maka Javascript menggunakan spesifikasi ECMASCRIPT. ECMA merupakan singkatan dari European Computer Manufactures Association, yaitu merupakan sebuah lembaga standarisasi eropa khusus komputer.

Sejarah Javascript

Pada awalnya Javascript dikembangkan oleh Brendan Eich, seorang programmer yang pada saat itu bekerja di MicroUnity System Engineering. Pada bulan Mei 1995 Brendan Eich membuah sebuah prototype bahasa pemrograman baru yang bernama Mocha, nama Mocha sendiri di pilih oleh March Andreessen. Bahasa pemrograman Mocha pertama kali di rilis pada bulan September 1995, akan tetapi kemudian namanya dirubah menjadi Livescript ketika pertama kali dikirim dalam rilis beta Netscape Navigator 2.0, tetapi setelah itu namanya diganti kembali menjadi Javascript. Dan ternyata nama Javascript ini terlahir dari sebuah strategi marketing supaya lebih dikenal karena pada saat itu bahasa pemrograman Java sangat populer di kalangan programmer. Javascript sangat berbeda sekali dengan Java yang mempunya sejarah unik dari namanya dan keduanya merupakan bahasa pemrograman yang sangat berbeda.

Javascript termasuk ke dalam bahasa pemrograman yang mudah untuk dipelajari, jika kita bandingkan Javascript dengan Java yang sangat kompleks. dengan OOPnya. Berbeda dengan javascript yang termasuk sebagai typeless programming language, tidak membutuhkan compiler, dan berjalan di web browser itu yang menjadikan Javascript disukai oleh web designer dan programmer pemula.

Kelebihan Javascript

Javascript memiliki beberapa kelebihan diantaranya sebagai berikut:

  1. Tidak membutuhkan compiler untuk menjalankan kode program Javascript karena web browser mampu untuk menjalankan kode Javascript
  2. Mudah untuk dipelajari oleh programmer pemula
  3. Dapat berfungsi sebagai elemen halaman web atau event tertentu, misalnya click atau mouseover
  4. Dapat berfungsi di berbagai browser, platform, dan lain-lain
  5. Dengan adanya Javascript dapat membuat proses validasi pada inputan form
  6. Dapat dengan mudah melakukan manipulasi elemen HTML
  7. Lebih cepat dan juga ringan daripada bahasa pemrograman lainnya

Document Object Model (DOM)

Setelah kita mengenal Javascript, selanjutnya kita juga harus mengetahui tentang DOM (Document Object Model). Javascript merupakan sebuah bahasa pemrograman sedangkan DOM merupakan objek HTML yang nantinya akan kita manipulasi seperti tombol, form, gambar, event dll. Javascript dikembangkan oleh ECMA, sedangkan DOM dikembangkan oleh W3C

Apa itu DOM di Javascript
Apa itu DOM di Javascript

Untuk pembahasan DOM, akan kita pelajari dalam artikel tersendiri, karena cukup panjang pembahasan materi tentang DOM (Document Object Model)

Hello Himtika.js

Sebelum membuat kode javascript ada beberapa yang harus anda siapkan terlebih dahulu

  1. Text Editor
  2. Browser

Text editor ada banyak sekali yang bisa anda gunakan, namun apabila bingung. Berikut kami sudah membuat rekomendasi text editor yang bisa anda undah dan install pada laptop/komputer anda

Baca Juga : 5 Rekomendasi Text Editor

Setelah menginstall text editor yang anda pilih dan juga sudah terdapat web browser dalam laptop/pc anda, sekarang saatnya untuk membuat kode Javascript pertama anda. Dalam contoh sederhana ini kita akan membuat menampilkan alert “Hello Himtika”.

Sebelum itu siapkan sebuah folder untuk menyimpan file Javascript pertama kita, misalnya kita membuat folder “himtika_javascript”. Kemudian kita buka folder tersebut di text editor kita. Selanjutnya kita buat file baru dengan nama hello_himtika.html . Kemudian kita bisa langsung ikuti kode program berikut.

<!DOCTYPE html>
<html>
<head>
<title> JavaScript #1 - Pengenalan </title>
</head>
<body>
<h1>Javascript #1 - Pengenalan </h1>
<script>
alert("Hello Himtika");
</script>
</body>
</html>

Jangan lupa untuk save, kemudian jalankan di web browser. Maka hasilnya seperti berikut:

Okey, mungkin cukup sekian pembahasan artikel mengenai pengenalan Javascript. Semoga bermanfaat Terimakasih

]]>
https://himtika.cs.unsika.ac.id/javascript-1-pengenalan/feed/ 0