stdcs / 21-ip-assignment

(21H07110202) Introduction to Programming 2021 Course - Assignment Repository
1 stars 37 forks source link

Assignment 6 - Collection #147

Open fitrh opened 2 years ago

fitrh commented 2 years ago

Collection - Material.pdf

1. Template Parser

new String("The {alpha} {do} over the {animal}\n")
        .concat("and feels as if {who} where in {where}\n")
        .concat("of typography together with {with}.\n");

String diatas merupakan sebuah template dan setiap kata yang diapit oleh curly braces ({}) adalah placeholder, placeholder setelah proses parsing akan digantikan oleh nilai dari data yang memiliki identifier atau nama variabel yang sama dengan placeholder tersebut tanpa curly braces, e.g. {alpha} akan digantikan oleh nilai dari variabel alpha.

Buatlah sebuah program untuk melakukan template parsing dengan method berikut:

Contoh

Jika diberikan main method berikut

public static void main(String[] args) {
    String template = new String("The {alpha} {do} over the {animal}\n")
            .concat("and feels as if {who} where in {where}\n")
            .concat("of typography together with {with}.\n");

    Map<String, String> data = new HashMap<>();
    data.put("with", "Hermann Zapf");
    data.put("do", "jumps");
    data.put("alpha", "quick brown fox");
    data.put("animal", "lazy dog");
    data.put("where", "the seventh heaven");
    data.put("who", "he");

    render(parse(template, data));
}

Program akan menghasilkan output berikut

The quick brown fox jumps over the lazy dog
and feels as if he where in the seventh heaven
of typography together with Hermann Zapf.

2. Data Manipulation Language

Dalam Relational Database Management System, Data Manipulation Language (DML) merupakan perintah-perintah yang digunakan untuk memanipulasi struktur data di dalam database, 2 diantaranya adalah INSERT dan SELECT.

Buatlah sebuah program yang mensimulasikan proses INSERT dan SELECT sederhana dengan method berikut

Placeholder file dari tugas ini hanya mendefinisikan method beserta return type tanpa method signature (parameter) Lengkapi method signature yang dibutuhkan sesuai deskripsi method dan main method dibawah

main method berikut

public static void main(String[] args) {
    List<Map<String, String>> student = new ArrayList<>();

    student.add(insert("id, first_name, last_name, gender", "H071171512, Fitrah, Muhammad, Male"));
    student.add(insert("id, first_name, last_name, gender", "H071171510, Amalia, Dwi, Female"));
    student.add(insert("id,first_name,last_name,gender", "H071171504, Rabia,Adaw,Female"));
    student.add(insert("id,first_name, last_name, gender", "H071171308,Babang,Arizk,Male"));

    select(student, "first_name", "last_name", "i").forEach(System.out::println);
    System.out.println();
    prettify(select(student, "id", "first_name", "last_name", "gender"));

}

Menghasilakan output berikut

first_name;last_name;i
Fitrah;Muhammad;NONE
Amalia;Dwi;NONE
Rabia;Adaw;NONE
Babang;Arizk;NONE

| ID         | FIRST_NAME | LAST_NAME  | GENDER     |
 ---------------------------------------------------
| H071171512 | Fitrah     | Muhammad   | Male       |
| H071171510 | Amalia     | Dwi        | Female     |
| H071171504 | Rabia      | Adaw       | Female     |
| H071171308 | Babang     | Arizk      | Male       |
 ---------------------------------------------------

fitrh commented 2 years ago

Manipulasi string pada tugas ini masih menggunakan raw String, bukan StringBufer atau StringBuilder

fitrh commented 2 years ago

Untuk memudahkan manipulasi array, gunakan java.util.Arrays