Showing posts with label Tantangan. Show all posts
Showing posts with label Tantangan. Show all posts

Cara convert angka romawi ke angka desimal dengan bahasa pemrograman dart

Di tutorial kali ini saya ingin membagi sedikit ilmu bagaimana cara convert angka romawi ke angka desimal menggunakan bahasa pemrograman Dart,




Adapun code nya bisa dilihat dibawah ini:

void main() {
  print(convertRomawiToNumber("III"));
}

String convertRomawiToNumber(String? romawi) {
  Map<String, int> romawiToNumber = {
    "I": 1,
    "V": 5,
    "X": 10,
    "L": 50,
    "C": 100,
    "D": 500,
    "M": 1000
  };
  int total = 0;
  List<int> listRomawiToNumber = [];

  //cek invalid INPUT
  if (romawi == null || romawi.length < 1) {
    return "INVALID INPUT";
  }
  
  //cek invalid ROMAWI
  for (int i = 0; i < romawi.length; i++) {
    if (!(romawiToNumber.keys.toList().contains(romawi.split("")[i]))) {
      return "INVALID ROMAWI";
    }
  }

  //Convert ROMAWI TO NUMBER
  for (int i = 0; i < romawi.length; i++) {
    listRomawiToNumber.add(romawiToNumber[romawi.split("")[i]]!);
  }

  //SET DEFAULT TOTAL WITH LAST VALUE LIST RESULT ROMAWI TO NUMBER
  total += listRomawiToNumber[listRomawiToNumber.length - 1];
  
  //LOGIC CHECK ROMAWI
  for (int i = listRomawiToNumber.length - 1; i >= 0; i--) {
    if (i >= 1) {
      if (listRomawiToNumber[i] <= listRomawiToNumber[i - 1]) {
        total += listRomawiToNumber[i - 1];
      } else {
        total -= listRomawiToNumber[i - 1];
      }
    }
  }
  
  //RETURN TOTAL
  return total.toString();
}

Dari kode diatas jika dijalankan maka akan keluar hasil convert angka romawi III menjadi angka desimal 3 

Mengerjakan challenge SOAL dengan menggunakan bahasa pemrograman C++

Hari ini saya akan mengerjakan sebuah soal dengan menggunakan bahasa pemrograman C++. Adapun soal yang akan saya kerjakan adalah sebagai berikut:

25 / 100

Keterangan:

- dibutuhkan 25 hari untuk membangun sebuah kebiasaan
- dibutuhkan 100 hari untuk membangun sebuah gaya hidup

Berdasarkan rumus di atas, seorang lelaki sebut saja si Aldi bertekad membuat kegiatan lari pagi sebagai gaya hidupnya. Jika lari pagi sudah tercatat sebagai kebiasaannya sejak Minggu, 1 Januari 2021 maka pada hari dan tanggal berapakah dia mulai lari pagi dan lari pagi menjadi gaya hidupnya? 

Ketentuan:

1. Tiap bulan memiliki 30 hari, tiap tahun memiliki 12 bulan.

2. Menggunakan maksimal 7 variabel. 

3. Terdapat 4 input-an untuk hari, tanggal, bulan dan tahun. 

4. Minimal terdapat dua penggunaan switch-case.

5. Terdapat penggunaan statement looping.


Berikut saya tampilkan source code nya:

#include <iostream>

using namespace std;

string KonversiHari (int inputHari){
  switch (inputHari){
    case 0:
      return "Minggu";
      break;
    case 1:
      return "Senin";
      break;
    case 2:
      return "Selasa";
      break;
    case 3:
      return "Rabu";
      break;
    case 4:
      return "Kamis";
      break;
    case 5:
      return "Jumat";
      break;
    case 6:
      return "Sabtu";
      break;
    default:
      return "Hari salah";
    }


}

string KonversiBulan (int inputBulan){
  switch (inputBulan){
    case 1:
      return "Januari";
      break;
    case 2:
      return "Februari";
      break;
    case 3:
      return "Maret";
      break;
    case 4:
      return "April";
      break;
    case 5:
      return "Mei";
      break;
    case 6:
      return "Juni";
      break;
    case 7:
      return "Juli";
      break;
    case 8:
      return "Agustus";
      break;
    case 9:
      return "September";
      break;
    case 10:
      return "Oktober";
      break;
    case 11:
      return "November";
      break;
    case 12:
      return "Desember";
      break;
    default:
      return "Bulan salah";
    }


}

int CekHari (int hari, int hitungan){
  if (hari == 0){
      if (((hitungan + hari) % 7) == 0){
	  return hari;
      }else{
	  return 7 - ((hitungan + hari) % 7);
      }
      return hari;
    }else
     return hari - (hitungan % 7);
}


void CekKebiasaan (string keterangan, int hari, int hitungan,
	      int inputTanggal, int inputBulan, int inputTahun, bool mulai){
  int tanggal = inputTanggal;
  int bulan = inputBulan;
  int tahun = inputTahun;
  if (mulai)
    {
      for (int i = hitungan; i >= 1; i--)
	{
	  tanggal--;
	  if (tanggal < 1)
	    {

	      tanggal = 30;
	      bulan--;
	      if (bulan < 1)
		{
		  bulan = 12;
		  tahun--;
		}
	    }

	}
    }
  else
    {

      for (int i = 1; i <= hitungan; i++)
	{

	  tanggal++;
	  if (tanggal > 30)
	    {
	      tanggal = 1;
	      bulan++;
	      if (bulan > 12)
		{

		  bulan = 1;
		  tahun++;
		}
	    }
	}

    }

  cout << keterangan <<
    KonversiHari (mulai ? CekHari (hari, hitungan)
		  : ((hitungan +
		      hari) %
		     7)) << ", " << tanggal << " " <<
    KonversiBulan (bulan) << " " << tahun;
}



int main (){
  int inputHari, inputTanggal, inputBulan, inputTahun;
  cout << "Masukkan hari (0 = Minggu..... 6 = Sabtu)" << endl;
  cout << "Pilihan Anda: ";
  cin >> inputHari;
  cout << "\nMasukkan tanggal: ";
  cin >> inputTanggal;
  cout << "\nMasukkan bulan: ";
  cin >> inputBulan;
  cout << "\nMasukkan tahun: ";
  cin >> inputTahun;
  CekKebiasaan ("\nAldi mulai pada hari ", inputHari, 25,
		inputTanggal, inputBulan, inputTahun, true);
  cout << "\nMenjadi kebiasaan pada hari " <<
    KonversiHari (inputHari) << ", " << inputTanggal << " " <<
    KonversiBulan (inputBulan) << " " << inputTahun;
  CekKebiasaan ("\nMenjadi gaya hidup pada hari ", inputHari, 75,
		inputTanggal, inputBulan, inputTahun, false);
  return 0;
}








Catatan Nolsatu : Kelas Orientasi


Setelah ditunggu-tunggu beberapa bulan akhirnya kelas pertama nolsatu dibuka dengan batch ke 9. Alhamdulillah saya terpilih sebagai salah satu peserta training kelas nolsatu.

Berdasarkan situs aslinya nolsatu.id mengenai bagian 'tentang kami' menjelaskan :

“NolSatu hadir sebagai usaha untuk merespon masalah bersama yaitu banyak lulusan TI atau profesional TI yang kemampuannya kurang sementara perusahaan-perusahaan membutuhkan profesional TI terbaik dengan kemampuan terkini. Selain itu, perkembangan TI global berlangsung sangat cepat dan kemampuan profesional TI disarankan selaras dengan perkembangan tersebut. Profesional TI diharapkan dapat membantu perusahaan dalam mengadopsi TI terkini untuk mendorong proses bisnis perusahaan. Imbal balik bagi profesional TI dari proses ini adalah penghasilan yang cukup dan kesejahteraan yang baik yang diberikan oleh perusahaan. “

Setelah masuk ke group telegram langsung di berikan tugas pertama salah satunya mengirim public key melalui email untuk akses SSH gateway.
kita juga diberitahu untuk mempelajari terlebih dahulu materi linux dan network fundamental secara mandiri.

Oke, nantikan catatan belajar saya di kelas nolsatu selanjutnya…..semoga teman-teman bisa belajar dari catatan ini


Logo kelas Nol Satu

Source Code listing angka yang habis dibagi 3 atau 7 menggunakan bahasa pemrograman JAVA

Hari ini saya ingin berbagi sedikit source code  listing angka yang habis dibagi 3 atau 7 menggunakan bahasa pemrograman JAVA,Misalkan kita mempunyai kasus Jika kita listing semua angka yang habis dibagi 3 atau 7 dibawah 10, akan kita dapati 3, 6, 7, dan 9.tapi dalam artikel ini untuk inputan range terendah dan range tertinggi kita buat dinamis menggunakan scanner..
berikut contoh programnya :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package ketikanMD;

import java.util.Scanner;

/**
 *
 * @author ketikanMD.blogspot.com
 */
public class Listing {

    public static void main(String[] args) {
        boolean cek = true;
        String jawab;
        do {
            int min, max;
            int count = 0;
            Scanner input = new Scanner(System.in);
            System.out.print("Nilai awal: ");
            min = input.nextInt(); 
            System.out.print("Nilai akhir: ");
            max = input.nextInt();
            for (int i = min; i <= max; i++) {
                if (i % 3 == 0 || i % 7 == 0) {
                    System.out.println(" " + i);
                    count += i;
                }
            }
            System.out.println("hasil penjumlahan semua angka yang habis dibagi 3 dan 7 \nyang berada diantara " + min + "-" + max + " adalah " + count);
            System.out.println("==========================================");
            System.out.println("Apakah anda ingin keluar?");
            System.out.print("Jawab [Y/T]> ");
            jawab = input.next();
            if (jawab.equalsIgnoreCase("Y")) {
                cek = false;
            }
        } while (cek);
    }

}

Output dari Coding diatas:

Source Code Game sederhana Tebak huruf menggunakan bahasa pemrograman JAVA

Hari ini saya ingin berbagi sedikit source code game sederhana tebak huruf,Jika tebakan terlalu kecil, maka orang itu akan mengatakan "kekecilan". sedangkan jika tebakan terlalu besar, maka orang itu akan menjawab "terlalu besar"...
berikut contoh programnya
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package ketikanMD;

import java.util.Random;
import java.util.Scanner;

/**
 *
 * @author ketikanMD.blogspot.com
 */
public class TebakHuruf {

    public static void main(String[] args) {
        //membuat atau menginstansi objek baru input
        Scanner input = new Scanner(System.in);

        //membuat atau menginstansi variabel baru
        boolean jawaban = true;
        String jawab;

        do {
            boolean cek = true;
            //membuat array dengan tipe data String
            String huruf[] = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"};
            int jml, hasil;
            String tebakan;
            int nilaiTebakan = 0;
            jml = huruf.length;//menghitung panjang dari array huruf

            //variabel hasil menampung hasil random jml
            hasil = (int) (Math.random() * jml);
            do {
                System.out.print("Masukkan Tebakanmu: ");
                //mengambil nilai input tipe data String
                //mengubah inputan menjadi huruf kecil atau Lower Case
                tebakan = input.next().toLowerCase();

                //melakukan perulangan sesuai dengan panjang Array huruf
                for (int i = 0; i < jml; i++) {

                    //mengecek apakah tebakan sama dengan elemen yang ada pada array huruf 
                    if (tebakan.equals(huruf[i])) {//jika sama,set variabel nilaiTebakan dengan i(index dari elemen)
                        nilaiTebakan = i;
                    }
                }
                //mengecek tebakan apakah lebih besar,lebih kecil atau tebakan benar
                if (nilaiTebakan > hasil) {
                    System.out.println("terlalu besar");
                    cek = true;
                } else if (nilaiTebakan == hasil) {
                    System.out.println("Huruf Tebakan: " + huruf[hasil]);
                    System.out.println("Selamat,tebakan benar");
                    cek = false;
                } else {
                    System.out.println("terlalu kecil");
                    cek = true;
                }
                System.out.println("==========================================");
            } while (cek);
            System.out.println("Main lagi?");
            System.out.print("Jawab [Y/T]> ");
            jawab = input.next();
            if (jawab.equalsIgnoreCase("T")) {
                jawaban = false;
            }

        } while (jawaban);
    }
}


Output dari Coding diatas:

Source Code untuk mengecek kata atau kalimat palindrome menggunakan bahasa pemrograman JAVA

Hari ini saya ingin berbagi sedikit source code untuk mengecek kata atau kalimat palindrome,akan tetapi dikarenakan adanya spasi dan tanda baca serta huruf kapital kadang yang membuat sulit untuk memprediksi apakah sebuah kata/kalimat itu palindrome atau tidak.
contohnya: Kasur ini rusak
Berikut source codenya semoga bisa membantu teman-teman,silahkan untuk dikembangkan.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package ketikanMD;

/**
 *
 * @author ketikanMD.blogspot.com
 */
import java.util.Scanner;

public class Palindrome{

    public static void main(String[] args) {
        //inisialisasi variabel
        boolean cek = true;
        String jawab;
        do {
            //inisialisasi variabel
            String teksAwal, teksKebalikan = "";
            Scanner in = new Scanner(System.in);
            System.out.println("Masukkan kalimat yang ingin dicek apakah palindrome atau tidak:");
            teksAwal = in.nextLine().toLowerCase();//mengubah String yang diinput menjadi huruf kecil semua

            //membuat array tandaBaca dengan tipe data String
            String tandaBaca[] = {".", ",", " ", "?", "!", "@", "#", "$", "%", "^", "&", "*", "_", "-", "+", "+", "|", ">", "<", "~", "`"};
            int jml = tandaBaca.length;//menghitung panjang dari array tandaBaca
            for (int i = 0; i < jml; i++) {
                //menghilangkan tanda baca
                teksAwal = teksAwal.replace(tandaBaca[i], "");
            }

            int ukuran = teksAwal.length();//variabel untuk menampung ukuran dari teks yang diinput
            for (int i = ukuran - 1; i >= 0; i--) {
                teksKebalikan += teksAwal.charAt(i);
            }
            /*cek apakah teks awal dan teks kebalikan sama tanpa
membandingkan huruf besar dan kecil sebuah string*/
            if (teksAwal.equalsIgnoreCase(teksKebalikan)) {
                System.out.println("ini kalimat PALINDROME.");
            } else {
                System.out.println("ini bukan kalimat PALINDROME.");
            }
            System.out.println("==========================================");
            System.out.println("Apakah anda ingin keluar?");
            System.out.print("Jawab [Y/T]> ");
            jawab = in.nextLine();
            if (jawab.equalsIgnoreCase("Y")) {
                cek = false;
            }
        } while (cek);
    }
}


Output dari coding diatas:

Tantangan Algoritma

tantangan ini dari dosen saya dikampus,pernah saya kerjain iseng iseng buat namba logika.Anggap  saja sebagai pemanasan sebelum mengambil matkul yang berkaitan dengan pemrograman atau mengasah logikanya .berani mencoba kapan lagi kalau bukan sekarang.
Yang sudah berhasil mencoba,silahkan dishare di kolom komentar algoritma pemrogramannya atau programnya(bisa menggunakan bahasa pemrograman apapun).


SOAL:
Sebuah toko kopi menjual kopi dalam kemasan 2kg saja,yaitu seharga 50000 per kemasan. Ketika customer melakukan pemesanan, maka kopi yang dipesan akan dikirim dalam bentuk box. Toko mimiliki 3 jenis box, yaitu box besar mampu menampung 20 kemasan,box sedang mampu menampung 10 kemasan, dan box kecil mampu menampung 5 kemasan. Harga box besar adalah 10000, box sedang 7500, dan box kecil adalah 5000. Dalam melakukan packing,toko menggunakan aturan bahwa box besar dan box sedang tidak boleh memiliki ruang yang kosong(harus penuh),sedangkan box kecil boleh saja kosong. Toko ingin meminimalkan pengguna box, dengan cara melakukan pemilihan box mulai dari box terbesar dulu baru medium dan selanjutnya box terkecil. Misalnya jika customer memesan 52 kemasan kopi, maka akan digunakan 2 box besar, 1 box sedang dan 1 box kecil.
Buatlah program untuk menerima input berupa total kemasan yang dipesan oleh seorang customer dan menentukan berapa jumlah masing-masing tas dan biaya total yang harus dibayar, yaitu harga box
dan harga kopi yang dibeli.


Ayo dicoba,buat melatih logika pemrograman untuk mengasah otak buat menemukan algoritma pemrogramannya.ketentuan progrmam yang dibuat tidak boleh menggunakan kendali program apapun,if,switch case,tidak diperkenankan atau sederhananya tanpa if”.

Contoh screenshot untuk input kemasan 52,45 dan 47 agar memberikan gambaran variasi jenis box yang digunakan untuk mengemas kopi yang dipesan sehingga hasil akhir total bayar bervariasi. program yang saya buat dengan menggunakan programan PHP untuk menyelesaikan kasus diatas.sebagai inspirasi teman-teman dalam menemukan ide algoritma pemrogramannya.
ingat tanpa kendali program “if” ya hehehehe.memang tidak lazim,hanya untuk mengembangkan logika.semoga mencerahkan hehehehe 

Inputan 52 kemasan
Inputan 45 kemasan


Inputan 47 kemasan