Tugas Pendahuluan #3
Array
Tim Materi Pengenalan Komputasi 2020/2021
Petunjuk
1. Kerjakan modul ini sesuai dengan materi yang diujikan (Input, Output, dan Percabangan). Tidak
perlu menggunakan materi yang belum diujikan.
2. Perhatikan penamaan file terutama untuk ekstensi file (*.py). File tanpa ekstensi beresiko tidak
dapat dibuka oleh asisten sehingga kode program tidak dapat dikoreksi (nilai 0)
3. Pastikan program lulus compile dan dapat dijalankan.
4. Untuk setiap file source code program berikan identitas, minimum:
# NIM/ Nama :
# Tanggal :
# Deskripsi :
5. Seluruh file kode program di-compress dengan nama H03 [Link] sebelum dikumpulkan.
6. Kecuali dituliskan secara khusus, Anda dapat menganggap masukan user sesuai dengan
kehendak program.
7. Penulisan kode sebaiknya menggunakan indentasi yang baik dan menambahkan komentar
(kegunaan sebuah variabel, percabangan, pengulangan, fungsi dan prosedur) sehingga
mempermudah proses pen-carian kesalahan pada program (debugging)
8. Kecurangan berupa copy-paste kode program dari peserta atau sumber lain akan memperoleh
sanksi tegas.
9. Jika ada perbedaan antara instruksi di sini dan instruksi asisten, ikuti instruksi asisten.
10. Selamat Mengerjakan!
Solusi Problem 1
#NIM/Nama :
#Tanggal :
#Deskripsi :
# Menuliskan kebalikan urutan inputan angka
# Menerima input N buah integer
# Prekondisi : N valid (N > 0)
‘’’
KAMUS
N : integer
arr : array [1..N] of integer
i : integer {increment}
‘’’
#ALGORITMA
N = int(input(“Masukkan N: “))
arr = [0 for i in range(N)] #inisialisasi array
#Mengisi array
for i in range(N):
arr[i] = int(input())
#Mencetak array dari belakang
for i in range(N-1, -1, -1):
print(arr[i])
Solusi Problem 2
#Deskripsi :
# Program memeriksa anagram dari dua buah array
# Menerima input 2 buah array berukuran A dan B
# Prekondisi : A dan B valid (> 0)
# Nilai maks elemen A dan B adalah 10
‘’’
KAMUS
A, B , i : integer
arrA , freqA : array [1..A] of integer
arrB, freqB : array [1..B] of integer
‘’’
#ALGORITMA
A = int(input(“Masukkan banyaknya elemen A: “))
arrA = [0 for i in range(A)] #inisialisasi
freqA = [0 for i in range(A)]
#ISI arrA
for i in range(A):
arrA[i] = int(input(“A ke-{}: ”.format(i+1)))
#Menambahkan frequensi nilai
freqA[arrA[i]] += 1
B = int(input(“Masukkan banyaknya elemen B: “))
arrB = [0 for i in range(B)] #inisialisasi
freqB = [0 for i in range(B)]
#ISI arrB
for i in range(B):
arrB[i] = int(input(“B ke-{}: ”.format(i+1)))
#Menambahkan frequensi nilai
freqB[arrB[i]] += 1
if(freqA == freqB):
print(“B anagram dari A)
else:
print(“B bukan anagram dari A”)
Solusi Problem 3 (Alternatif 1)
#NIM/Nama :
#Tanggal :
#Deskripsi :
# Memeriksa sebuah kata palindrom atau bukan
# Menerima input kata sepanjang N
# Mencetak apakah kata tersebut palindrom / bukan
# Prekondisi : N valid (> 0) dan kata lowercase
‘’’
KAMUS
N,i : integer
kata : array [1..N] of character
isPalindrom : boolean
‘’’
#ALGORITMA
N = int(input(“Masukkan panjang string: “))
kata = input(“Masukkan string”)
#Bandingkan kata mulai dari depan dan belang hingga
#ke tengah kata
#inisialisasi
isPalindrom = True
i = 1
while((i < N//2) and (isPalindrom)):
if(kata[i] != kata[N-1-i]):
isPalindrom = False
else:
i += 1
#endwhile
if(isPalindrom):
print(kata, “merupakan palindrom”)
else:
print(kata, “bukan palindrom”)
Solusi Problem 3 (Alternatif 2)
#NIM/Nama :
#Tanggal :
#Deskripsi :
# Memeriksa sebuah kata palindrom atau bukan
# Menerima input kata sepanjang N
# Mencetak apakah kata tersebut palindrom / bukan
# Prekondisi : N valid (> 0) dan kata lowercase
‘’’
KAMUS
N,i : integer
kata , kata_inv : array [1..N] of character
‘’’
#ALGORITMA
N = int(input(“Masukkan panjang string: “))
kata = input(“Masukkan string”)
#Buat kata invers (kata yang dibaca dari kanan)
#Bandingkan kata dengan inversnya
#inisialisasi
kata_inv = [‘*’ for i in range(N)]
for i in range(N):
kata_inv[i] = kata[N-1-i]
if(kata_inv == kata):
print(kata, “merupakan palindrom”)
else:
print(kata, “bukan palindrom”)