Tugas 3 Bahasa Pemrograman

Tugas 3 Bahasa Pemrograman

Yayay…tugas 3 udah muncul nih…

Kali ini bukan resume lagi, tapi kita disuruh buat bikin fungsi-fungsi dalam bahasa Scheme.

Lha, mungkin pada heran, kenapa langsung  tugas 3 ajah, tugas 2 nya mana??

Berhubung aku ragu sama jawaban yang kuberikan saat tugas 2 kemaren, jadinya aku nggak post.

Tugas 3 basprog kali ini berisi 6 permasalahan yang harus dituliskan dalam bahasa scheme, aku udah coba semua coding di bawah ini, dan jalan. Semoga, berguna ya!

Memeriksa apakah bilangan ketiga merupakan hasil kali bilangan pertama dan kedua. Contoh:

> (hasilkali? 2 5 8  )

TIDAK

> (hasilkali? 2 5 10)

YA

(define (hasilkali? a b c)

(if (= c (* a b))

“YA”

“TIDAK”

)

)


Menghitung banyaknya huruf dari suatu string. Contoh:

> (hitung “t” “toko itu sabtu tidak tutup”)

6

(define (hitung x str)

(if (equal? str “”)

0

(if (equal? x (substring str 0 1))

(+ 1 (hitung x (substring str 1)))

(hitung x (substring str 1))

)

)

)


Menentukan digit paling depan dari suatu bilangan bulat

> (depan 123 )

1

> (depan 5021)

5

(define (depan i)

(if (< i 10)

i

(depan (floor (/ i  10)))

)

)


Membuat sebuah list sederhana yang berisi elemen 1 2 3 … n. Jika n=0,

maka list yang dihasilkan adalah list kosong. Contoh:

> (buatlist 5)

(1 2 3 4 5)

>  (buatlist 0)

()

(define (buatlist n)

(if (= n 0)

‘()

(if (= n 1)

(cons 1 empty )

(append (buatlist (- n 1)) (cons n empty))

)

)

)


Mengambil beberapa elemen dari sebuah list x dimulai pada posisi ke-a

sampai dengan posisi ke-b. Contoh:

> (ambil (list 3 5 7 2 6 5 8 ) 3 5) ; a=3, b=5

(7 2 6)

> (ambil (list 3 5 7 2 6 5 8  ) 3 3) ;a=3, n=3

(7)

(define (ambil1 x a b)

(list-tail (take x b) (- a 1))

)

(define (ambil x a b)

(if (= a  b)

(list-ref x (- a 1))

(ambil1 x a b)

)

)


Membuat sebuah list baru yang berisi dua elemen, yaitu elemen paling depan

dan paling belakang dari suatu list lainnya. Contoh:

> (anaklist (list 3 5 9))

(3 9)

> (anaklist (list 1 2 4 3 5 9 7 8 ))

(1 8 )

(define (anaklist x)

(if (empty? x) ‘()

(cons (first x) (cons (first(reverse x)) empty))

)

)

9 thoughts on “Tugas 3 Bahasa Pemrograman

  1. mw tanya lagi… Mengambil beberapa elemen dari sebuah list x dimulai pada posisi ke-a

    sampai dengan posisi ke-b,.. kok masih error y mas,.. pilihan language dalam scheme itu ngaruh g??

    1. Pilihan bahasa itu maksudnya nama fungsi? Nama fungsi bebas pake bahasa apa aja kok, pake bahasa minang juga boleh. . Hehe

      coba cek sintaks nya lagi, biasanya kurang tanda kurungnya, soalnya di saya jalan kok. .

      On Mon Mar 14th, 2011 7:09 AM GMT

  2. Udah bener kok mas,.. sama persis ma yg di atas malah,. ‘^_^
    permasalahanya itu da di ‘take’ reference to undefined identifier: take,..
    mohon pencerahanya kang,..

    1. hoho….gimana yak,, udah lama ga nge-scheme nih, itu juga postingan setahun yang lalu,
      tapi pas saya coba bisa kok,, ,
      schemenya mungkin?

  3. iia mas, permasalahan-y d “take”, but kalo “take” di ganti jadi “ambil”, now permasalahan-y berubah pada “list-tail”, mohon bantuan-y mas..

    1. Ah, iya , sepertinya dulu saya sudah mendefinisikan fungsi take terlebih dahulu…
      Detailnya saya sudah lupa, maap ya, coba baca lagi aja manualnya scheme, yang penting konsep logika seperti itu…
      udah ga pernah make scheme lagi soalnya…

  4. nanya gi donk mas, kalo menentukan faktor persekutuan terbesar (fpb) dari dua bilangan, yaitu sebuah bilangan bulat terbesar yang habis membagi dua bilangan. Contoh:
    > (fpb 12 18)
    6
    kira2 codingan-y gimana ya mas?
    hehehehehhehe😀

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s