initial commit

This commit is contained in:
Syahdan Hafiz Ashari 2025-08-20 01:17:32 +07:00
commit 1f2a330e69
8 changed files with 319 additions and 0 deletions

29
.gitignore vendored Normal file
View File

@ -0,0 +1,29 @@
### IntelliJ IDEA ###
out/
!**/src/main/**/out/
!**/src/test/**/out/
### Eclipse ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
bin/
!**/src/main/**/bin/
!**/src/test/**/bin/
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
### VS Code ###
.vscode/
### Mac OS ###
.DS_Store

8
.idea/.gitignore vendored Normal file
View File

@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

6
.idea/misc.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="temurin-21" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

8
.idea/modules.xml Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/remedial_syahdan.iml" filepath="$PROJECT_DIR$/remedial_syahdan.iml" />
</modules>
</component>
</project>

6
.idea/vcs.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

11
remedial_syahdan.iml Normal file
View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View File

@ -0,0 +1,100 @@
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Soal1_Calculator_SYAHDAN extends JFrame implements ActionListener {
private JTextField bilangan1Field, bilangan2Field, hasilField;
private JButton tambahBtn, kurangBtn, kaliBtn, bagiBtn;
public Soal1_Calculator_SYAHDAN() {
setTitle("CALCULATOR");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400, 200);
setLocationRelativeTo(null);
initComponents();
layoutComponents();
}
private void initComponents() {
bilangan1Field = new JTextField(15);
bilangan2Field = new JTextField(15);
hasilField = new JTextField(15);
hasilField.setEditable(false);
tambahBtn = new JButton("+");
kurangBtn = new JButton("-");
kaliBtn = new JButton("x");
bagiBtn = new JButton(":");
tambahBtn.addActionListener(this);
kurangBtn.addActionListener(this);
kaliBtn.addActionListener(this);
bagiBtn.addActionListener(this);
}
private void layoutComponents() {
setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.insets = new Insets(5, 5, 5, 5);
gbc.gridx = 0; gbc.gridy = 0;
add(new JLabel("Bilangan1"), gbc);
gbc.gridx = 1; gbc.gridwidth = 3;
add(bilangan1Field, gbc);
gbc.gridx = 0; gbc.gridy = 1; gbc.gridwidth = 1;
add(new JLabel("Bilangan2"), gbc);
gbc.gridx = 1; gbc.gridwidth = 3;
add(bilangan2Field, gbc);
gbc.gridx = 0; gbc.gridy = 2; gbc.gridwidth = 1;
add(tambahBtn, gbc);
gbc.gridx = 1;
add(kurangBtn, gbc);
gbc.gridx = 2;
add(kaliBtn, gbc);
gbc.gridx = 3;
add(bagiBtn, gbc);
gbc.gridx = 0; gbc.gridy = 3;
add(new JLabel("Hasil"), gbc);
gbc.gridx = 1; gbc.gridwidth = 3;
add(hasilField, gbc);
}
@Override
public void actionPerformed(ActionEvent e) {
try {
double bil1 = Double.parseDouble(bilangan1Field.getText());
double bil2 = Double.parseDouble(bilangan2Field.getText());
double hasil = 0;
if (e.getSource() == tambahBtn) {
hasil = bil1 + bil2;
} else if (e.getSource() == kurangBtn) {
hasil = bil1 - bil2;
} else if (e.getSource() == kaliBtn) {
hasil = bil1 * bil2;
} else if (e.getSource() == bagiBtn) {
if (bil2 != 0) {
hasil = bil1 / bil2;
} else {
hasilField.setText("Error: Division by zero");
return;
}
}
hasilField.setText(String.valueOf(hasil));
} catch (NumberFormatException ex) {
hasilField.setText("Error: Invalid input");
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
new Soal1_Calculator_SYAHDAN().setVisible(true);
});
}
}

View File

@ -0,0 +1,151 @@
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Soal2_Biodata_SYAHDAN extends JFrame implements ActionListener {
private JTextField namaField, alamatField;
private JRadioButton lakiRadio, perempuanRadio;
private ButtonGroup genderGroup;
private JComboBox<String> agamaCombo;
private JTextArea outputArea;
private JButton simpanBtn, resetBtn;
private JLabel titleLabel; // Added title label
public Soal2_Biodata_SYAHDAN() {
setTitle("BIODATA");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400, 500);
setLocationRelativeTo(null);
initComponents();
layoutComponents();
}
private void initComponents() {
// Initialize title label
titleLabel = new JLabel("BIODATA", JLabel.CENTER);
titleLabel.setFont(new Font("Arial", Font.BOLD, 28));
titleLabel.setForeground(new Color(0, 100, 200));
namaField = new JTextField(20);
alamatField = new JTextField(20);
lakiRadio = new JRadioButton("Laki-laki");
perempuanRadio = new JRadioButton("Perempuan");
genderGroup = new ButtonGroup();
genderGroup.add(lakiRadio);
genderGroup.add(perempuanRadio);
String[] agamaList = {"Islam", "Kristen", "Katolik", "Hindu", "Buddha", "Konghucu"};
agamaCombo = new JComboBox<>(agamaList);
outputArea = new JTextArea(8, 30);
outputArea.setEditable(false);
outputArea.setBorder(BorderFactory.createLoweredBevelBorder());
simpanBtn = new JButton("Simpan");
resetBtn = new JButton("Reset");
simpanBtn.addActionListener(this);
resetBtn.addActionListener(this);
}
private void layoutComponents() {
setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.insets = new Insets(5, 5, 5, 5);
gbc.anchor = GridBagConstraints.WEST;
// Title Label
gbc.gridx = 0; gbc.gridy = 0;
gbc.gridwidth = 2;
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.anchor = GridBagConstraints.CENTER;
add(titleLabel, gbc);
// Reset for other components
gbc.gridwidth = 1;
gbc.fill = GridBagConstraints.NONE;
gbc.anchor = GridBagConstraints.WEST;
// Nama
gbc.gridx = 0; gbc.gridy = 1;
add(new JLabel("Nama"), gbc);
gbc.gridx = 1;
add(namaField, gbc);
// Alamat
gbc.gridx = 0; gbc.gridy = 2;
add(new JLabel("Alamat"), gbc);
gbc.gridx = 1;
add(alamatField, gbc);
// Gender
gbc.gridx = 0; gbc.gridy = 3;
add(new JLabel("Gender"), gbc);
gbc.gridx = 1;
JPanel genderPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
genderPanel.add(lakiRadio);
genderPanel.add(perempuanRadio);
add(genderPanel, gbc);
// Agama
gbc.gridx = 0; gbc.gridy = 4;
add(new JLabel("Agama"), gbc);
gbc.gridx = 1;
add(agamaCombo, gbc);
// Output Area
gbc.gridx = 0; gbc.gridy = 5;
gbc.gridwidth = 2;
gbc.fill = GridBagConstraints.BOTH;
add(new JScrollPane(outputArea), gbc);
// Buttons
gbc.gridx = 0; gbc.gridy = 6;
gbc.gridwidth = 2;
gbc.fill = GridBagConstraints.NONE;
JPanel buttonPanel = new JPanel(new FlowLayout());
buttonPanel.add(simpanBtn);
buttonPanel.add(resetBtn);
add(buttonPanel, gbc);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == simpanBtn) {
String nama = namaField.getText();
String alamat = alamatField.getText();
String gender = "";
if (lakiRadio.isSelected()) {
gender = "Laki-laki";
} else if (perempuanRadio.isSelected()) {
gender = "Perempuan";
}
String agama = (String) agamaCombo.getSelectedItem();
String output = "Nama\t\t:" + nama + "\n" +
"Alamat\t\t:" + alamat + "\n" +
"Gender\t\t:" + gender + "\n" +
"Agama\t\t:" + agama;
outputArea.setText(output);
} else if (e.getSource() == resetBtn) {
namaField.setText("");
alamatField.setText("");
genderGroup.clearSelection();
agamaCombo.setSelectedIndex(0);
outputArea.setText("");
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
new Soal2_Biodata_SYAHDAN().setVisible(true);
});
}
}