Hazard Prayoga

Jumat, 21 Juli 2023

Video Tugas Algoritma Pemrograman Insertion Short

Implementasi dan Penjelasan Algoritma Insertion Sort

Pendahuluan

Pada tugas kali ini, saya membahas salah satu algoritma pengurutan (sorting) dalam pemrograman, yaitu Insertion Sort.
Algoritma ini termasuk metode pengurutan sederhana yang sering digunakan untuk memahami konsep dasar sorting sebelum mempelajari algoritma yang lebih kompleks.

Insertion Sort bekerja dengan cara menyusun data satu per satu ke posisi yang tepat, mirip seperti kita menyusun kartu di tangan.


Pengertian Insertion Sort

Insertion Sort adalah algoritma pengurutan yang bekerja dengan membagi array menjadi dua bagian:

  • Bagian kiri → sudah terurut

  • Bagian kanan → belum terurut

Setiap elemen dari bagian yang belum terurut akan diambil, lalu dibandingkan dengan elemen di bagian terurut dan ditempatkan pada posisi yang sesuai.



Berikut ini adalah video penjelasan mengenai algoritma Insertion Sort, mulai dari konsep dasar, cara kerja, hingga contoh implementasinya dalam pemrograman.



 

Tugas Alpro Object Oriented Programing




Berikut Ini adalah Tugas Membuat Object Oriented Programming yang saya buat
Disini saya membuat aplikasi pemesanan Lapangan Futsal.

SISTEM PEMESANAN LAPANGAN FUTSAL
 
Ini adalah bagian dari Method.
    
#include <iostream>

#include <fstream>

#include <string>

#include <conio.h>

using namespace std;

//method

class pesanlapangan{


private:

    int kode;

    string nama;

    string lama;

    string harga;

    string nomer;

    string tanggal;

    string jam;


public:

    void put_pesan();

    void get_pesan();

    int get_code (){

        return kode;

    }

};


void pesanlapangan::get_pesan(){  //menginputkan data pesanan

        cout << "Kode Pesanan: ";

        cin >> kode;

        cout << "Nama Pemesan: ";

        cin >> nama;

        cout << "Lama Main : ";

        cin >> lama;

        cout << "Harga : ";

        cin >> harga;

        cout << "Tanggal (dd/mm/yyyy:";

        cin >> tanggal;

        cout << "Jam :";

        cin >> jam;

        cout << "Nomer Telp: ";

        cin >> nomer;

        cout << endl;

    }


void pesanlapangan::put_pesan(){ //inputan hasil pesanan

    cout<< "   " << kode << "\t" << nama << "\t\t" << lama << "\t\t" << harga << "\t\t"     << tanggal << "\t" <<jam << "\t\t" << nomer  << endl;

}
 Ini adalah bagian dari Function

//function void tambahData(); void tampilkan(); void hapusPesan(); void tabel(); pesanlapangan ini; fstream file; //fstream adalah file stream tipe data operasi file membuat file,membuka file,menambahkan isi file int main() { int pilihan; while(1){ cout << "===== Corner Futsal ====\n"; cout << "1. Pesan Lapangan\n"; cout << "2. Data Pesanan\n"; cout << "3. Hapus Pesanan\n"; cout << "4. Keluar\n"; cout << "========================\n"; cout << "Pilih: "; cin >> pilihan; cout<<endl; switch(pilihan){ case 1:{ pil1: tambahData(); break; } case 2:{ tabel(); break; } case 3:{ tabel(); hapusPesan(); break; } case 4:{ exit(0); } default:{ cout<<"Pilihanmu tidak ada..."; break; } } } return 0; } void tabel(){ cout << "\t\t\t\t\t=== HASIL PESANAN ===\n"; cout << "-----------------------------------------------------------------------------------------------------------\n"; cout << " Kode\t\t" << "Nama\t\t" << "Lama Main\t" << "Harga\t\t" << "Tanggal\t\t" << "Jam\t\t" << "No Handphone" << endl; cout << "-----------------------------------------------------------------------------------------------------------\n"; tampilkan(); cout << "-----------------------------------------------------------------------------------------------------------\n"; cout << endl; }; void tambahData(){ file.open("lapangan.txt",ios::app|ios::binary); ini.get_pesan(); file.write((char*)&ini, sizeof(ini)); cout << "Pesanan berhasil dibuat!\n"; cout << endl; file.close(); } void tampilkan(){ file.open("lapangan.txt", ios::in|ios::binary); //FILE YANG SUDDAH ADA MAU DITAMBAHKAN DI BAGIAN AKHIR if(!file) { cout << "Belum menginputkan data"; exit(0); }else{ file.read((char*)&ini, sizeof(ini)); while (!file.eof()){ ini.put_pesan(); file.read((char*)&ini, sizeof(ini)); } } file.close(); } void hapusPesan(){ int hapus; cout << "Masukkan Kode pesanan yang ingin anda hapus: " ; cin >> hapus; cout << endl; fstream file2; //membuat file dan mengisi file tersebut file2.open("temp.txt", ios::out | ios::binary); //iosout artinya membuaka file isinya mau kita tulis,iosbinary artinya membuaka file database file.open("lapangan.txt", ios::in | ios::binary); //iosin membuka file untuk dibaca if(!file) //gagal membuka file { cout << "tidak ditemukan"; exit(0); }else{ //membaca data file lapangan.txt ke dalam objek file.read((char*)&ini, sizeof(ini)); while(!file.eof()){ if(hapus != ini.get_code()){ file2.write((char*)&ini, sizeof(ini)); } file.read((char*)&ini, sizeof(ini)); } } file2.close(); file.close(); remove("lapangan.txt"); rename("temp.txt","lapangan.txt"); }

Kamis, 06 Juli 2023

Tugas Alpro Pointer


 POINTER

Pointer adalah variabel yang menyimpan alamat memori dari suatu variabel lain. Dengan menggunakan pointer, Anda dapat mengakses dan memanipulasi nilai dari variabel yang ditunjuk oleh pointer tersebut.

#include <iostream>using namespace std;
int main() {
    int num = 10;
    int* ptr = &num; // pointer yang menunjuk ke alamat variabel num

    cout << "Nilai dari num: " << num << endl;
    cout << "Alamat dari num: " << &num << endl;
    cout << "Nilai dari ptr: " << ptr << endl; // akan menampilkan alamat dari num
    cout << "Nilai yang ditunjuk oleh ptr: " << *ptr << endl; // akan menampilkan nilai dari num melalui ptr

    // Mengubah nilai variabel num melalui pointer
    *ptr = 20;

    cout << "Nilai dari num setelah diubah melalui ptr: " << num << std::endl;

    return 0;
}
  1. Program ini mendeklarasikan sebuah variabel num dengan nilai 10 dan sebuah pointer ptr yang menunjuk ke alamat variabel num.
  2. Operator & digunakan untuk mendapatkan alamat dari variabel.
  3. ptr menyimpan alamat dari num, dan *ptr digunakan untuk mengakses nilai yang disimpan di alamat tersebut.
  4. Kemudian, program menampilkan nilai dari num, alamat dari num, nilai dari ptr (alamat num), dan nilai yang ditunjuk oleh ptr.
  5. Selanjutnya, nilai num diubah melalui pointer ptr dengan menggunakan operator dereference *ptr.
  6. Terakhir, program mencetak nilai num lagi untuk menunjukkan perubahan yang telah terjadi melalui pointer.

Tugas Alpro Perkalian,Penjumlahan,dan Perpangkatan menggunakan Rekursif


REKURSIF

Rekursif adalah suatu pendekatan dalam pemerograman dimana suatu fungsi atau prosedur memanggil dirinya sendiri secara berulang untuk menyelesaikan masalah.Masalah besar dibagi menjadi masalah submasalah yang lebih kecil yang kemudian diselesaikan.

Operasi Hitung Perkalian secara rekursif:
contoh Sourcecode:
#include <iostream>
using namespace std;

//Kamus :
int angka1;
int angka2;
int hasil;

int perkalian (int angka1, int angka2){
    if (angka2 == 1){
        return angka1;
    } else {
        return angka1 + perkalian (angka1, angka2-1);
    }
}

int main(){
    cout << "Operasi Hitung Perkalian" << endl;
    cout << endl;

    cout << "Masukkan Angka pertama : ";
    cin >> angka1;
    cout << "Masukkan Angka kedua : ";
    cin >> angka2;
    hasil = perkalian (angka1, angka2);
    cout << "Hasil perkalian dari " << angka1 << " x " << angka2 << " adalah " << hasil << endl;

}
Hasil Running:


Operasi Hitung Penjumlahan secara rekursif:
Contoh Sourcode:


 #include <iostream>
using namespace std;
int penjumlahan(int x, int y)
{
    int hasil;
    if(x == 0)
    {
        hasil = y;
    }else
    {
        hasil = penjumlahan (x-1,y)+1;
    }

    return hasil;
}

// Kamus
int a,b;
int hasil;
int penjumlahan(int a, int b);
int main ()
{
    cout << " Operasi Penjulahan dengan Rekursif "<<endl;
    cout << " Masukkan angka pertama = ";
    cin>>a;
    cout << " Masukkan angka kedua = ";
    cin>>b;
    cout << " Hasil penjumlahan rekursif = " <<penjumlahan(a,b)<<endl;
    cout<<endl;
}
Hasil Running:



Operasi Hitung Perpangkatan secara rekursif:
Contoh Sourcode:

#include <iostream>
using namespace std;

//Kamus :
int X;
int Y;
int hasil;

int perpangkatan (int x, int y){
    if (y == 1){
        return x;
    } else {
        return x * perpangkatan (x, y-1);
    }
}

int main(){
    cout << "Operasi perpangkatan dengan rekursif " << endl;
    cout << "Masukkan angka : ";
    cin >> X;
    cout << "Masukkan pangkat berapa : ";
    cin >> Y;
    hasil = perpangkatan (X, Y);
    cout << "hasil dari " << X << " pangkat " << Y << " adalah " << hasil << endl;
    cout << endl;

}

Hasil Running:




Tugas Alpro Menghitung Volume Sebuah Tabung


TUGAS MENGHITUNG VOLUME SEBUAH TABUNG

Berikut adalah Sourcecode untuk menghitung volume sebuah tabung.

 #include <iostream>
using namespace std;
 
 
//kamus
struct lingkaran
{
    float phi;
    float r;
    float Keliling;
};
 
struct tabung
{
    struct lingkaran circle;
    float t;
    float vol;
};
 
struct selimut
{
    struct tabung P;
    struct lingkaran L;
};
 
struct lingkaran bulet;
struct tabung tube[100];
int x;
 
//nilai phi untuk semua tube
void phiTabung(int jumlah_tabung)
{
    x = 0;
    while (x < jumlah_tabung)
    {
        tube[x].circle.phi = 3.14;
        x++;
    }
}
 
// input data dan hitung volume masing-masing tabung
void hitungVolume(int jumlah_tabung)
{
    x = 0;
    while (x < jumlah_tabung)
    {
        cout << "Tabung ke-" << x + 1 << endl;
        cout << "Masukkan jari-jari tabung ke-" << x + 1 << " : ";
        cin >> tube[x].circle.r;
        cout << "Masukkan tinggi tabung ke-" << x + 1 << " : ";
        cin >> tube[x].t;
 
        tube[x].vol = tube[x].circle.phi * tube[x].circle.r * tube[x].t;
        cout << "Maka volumenya adalah: " << tube[x].vol << endl;
        cout << endl;
        x++;
    }
}
 
// Function untuk sorting menggunakan bubble
void bubbleSort(int jumlah_tabung)
{
    int i = 0;
    while (i < jumlah_tabung - 1)
    {
        int j = 0;
        while (j < jumlah_tabung - i - 1)
        {
            if (tube[j].vol > tube[j + 1].vol)
            {
                // Swap the tubes
                tabung temp = tube[j];
                tube[j] = tube[j + 1];
                tube[j + 1] = temp;
            }
            j++;
        }
        i++;
    }
}
 
// Function untuk searching
int cari(float target_volume, int jumlah_tabung)
{
    x = 0;
    while (x < jumlah_tabung)
    {
        if (tube[x].vol == target_volume)
        {
            return x; // mengembalikan index tabung
        }
        x++;
    }
    return -1; // Kembalikan -1 jika volume tidak ditemukan
}
 
 
//deskripsi
int main()
{
    cout << "VOLUME TABUNG" << endl;
    cout << "=============" << endl;
    cout << endl;
    bulet.phi = 3.14;
 
    // Input jumlah tabung yang akan dihitung volumenya
    int jumlah_tabung;
    cout << "Masukkan jumlah tabung: ";
    cin >> jumlah_tabung;
    cout << endl;
 
    // panggil function phitabung
    phiTabung(jumlah_tabung);
 
    // panggil function hitungvolume
    hitungVolume(jumlah_tabung);
 
    // Sorting
    bubbleSort(jumlah_tabung);
 
    // menampilkan tabuung yang sudah diurutkan
    cout << "Tubes setelah diurutkan berdasarkan volume:" << endl;
    x = 0;
    while (x < jumlah_tabung)
    {
        cout << "Tabung ke-" << x + 1 << " dengan volume: " << tube[x].vol << endl;
        x++;
    }
    cout << endl;
 
    // Searching
    float target_volume;
    cout << "Masukkan volume yang ingin dicari: ";
    cin >> target_volume;
    cout << endl;
 
    int ketemu = cari(target_volume, jumlah_tabung);
    if (ketemu != -1)
    {
        cout << "Tube dengan volume " << target_volume << " ditemukan pada tabung ke-" << ketemu + 1 << endl;
        cout << "Jari-jari tabung: " << tube[ketemu].circle.r << endl;
        cout << "Tinggi tabung: " << tube[ketemu].t << endl;
    }
    else
    {
        cout << "Tube dengan volume " << target_volume << " tidak ditemukan dalam tabung manapun." << endl;
    }
 
    return 0;
}

Tugas Alpro Mengkonversi Waktu


Tugas Algoritma Pemerograman tentang konversi waktu:

#include <iostream>
using namespace std;
 
//kamus
void waktu (float jawal, float jakhir, float mawal, float makhir, float dawal, float dakhir){
    float durasi= ((jakhir*3600)-(jawal*3600))+((makhir*60)-(mawal*60))+(dakhir-dawal);
    cout <<"maka durasinya adalah " << durasi << " detik.";
}
 
//deskripsi
int main(){
    float jawal, jakhir, mawal, makhir, dawal, dakhir;
 
 
    cout << "masukkan jam awal: ";
    cin >> jawal;
    cout << "masukkan menit awal: ";
    cin >> mawal;
    cout << "masukkan detik awal: ";
    cin >> dawal;
    cout << "masukkan jam akhir: ";
    cin >> jakhir;
    cout << "masukkan menit akhir: ";
    cin >> makhir;
    cout << "masukkan detik akhir: ";
    cin >> dakhir;
    waktu(jawal, jakhir, mawal, makhir, dawal, dakhir);
}

FUNGSI DAN SHORTING SEBUAH TABUNG


 FUNGSI DAN SORTING TABUNG


#include <iostream>
using namespace std;

// Fungsi untuk menghitung volume tabung
double hitungVolume(double jariJari, double tinggi) {
    return 3.14 * jariJari * jariJari * tinggi;
}

// Fungsi untuk menghitung luas permukaan tabung
double hitungLuasPermukaan(double jariJari, double tinggi) {
    return 2 * 3.14 * jariJari * (jariJari + tinggi);
}

int main() {
    double jariJari, tinggi;

    cout << "Masukkan jari-jari tabung: ";
    cin >> jariJari;

    cout << "Masukkan tinggi tabung: ";
    cin >> tinggi;

    double volume = hitungVolume(jariJari, tinggi);
    double luasPermukaan = hitungLuasPermukaan(jariJari, tinggi);

    cout << "Volume tabung: " << volume << endl;
    cout << "Luas permukaan tabung: " << luasPermukaan << endl;

    return 0;
}
Designed By Blogger Templates